/* MechNex stylesheet
   Structured for easier maintenance in VS Code.
   Goal: preserve existing visuals while centralizing styles. */

/* ==================== FOUNDATION ==================== */
@font-face {
  font-family: 'Barlow Condensed';
  src: url('../assets/fonts/barlow-condensed-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'Barlow Condensed';
  src: url('../assets/fonts/barlow-condensed-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'Roboto Mono';
  src: url('../assets/fonts/roboto-mono-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Mono';
  src: url('../assets/fonts/roboto-mono-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --blue:#00AAF0;
  --navy:#080F18;
  --mid:#5A7A96;
  --muted:#1E3048;
  --rule:#152030;
  --text:#D8EAF5;
  --green: #27c46b;
  --F:"Roboto Mono","Courier New",monospace;
  --FH:"Barlow Condensed",sans-serif;
  --max:1100px;
}
html { scroll-behavior: smooth; }
body.preload *,
body.preload *::before,
body.preload *::after {
  transition: none !important;
  animation: none !important;
}

body.page-index.preload .hero-wordmark,
body.page-index.preload .hero-label,
body.page-index.preload .hero-title,
body.page-index.preload .hero-sub,
body.page-index.preload .hero-btns,
body.page-index.preload .marquee-section,
body.page-index.preload .form-section,
body.page-index.preload footer {
  opacity: 0;
}

body.page-index .marquee-section,
body.page-index .form-section,
body.page-index footer {
  opacity: 0;
}

body.page-index.ready .hero-wordmark {
  opacity: 1;
  animation: fadeUp 0.7s 0.08s ease both;
}

body.page-index.ready .hero-label {
  opacity: 1;
  animation: fadeUp 0.7s 0.12s ease both;
}

body.page-index.ready .hero-title {
  opacity: 1;
  animation: fadeUp 0.7s 0.22s ease both;
}

body.page-index.ready .hero-sub {
  opacity: 1;
  animation: fadeUp 0.7s 0.32s ease both;
}

body.page-index.ready .hero-btns {
  opacity: 1;
  animation: fadeUp 0.7s 0.42s ease both;
}

body.page-index.home-ready .marquee-section,
body.page-index.home-ready .form-section,
body.page-index.home-ready footer {
  opacity: 1;
  transition: opacity 0.25s ease;
}

body { background: var(--navy); color: var(--text); font-family: var(--F); overflow-x: hidden; }
body.page-about,
body.page-cad,
body.page-calculations,
body.page-contact,
body.page-services,
body.page-tools { display: flex; flex-direction: column; min-height: 100vh; }
html {
  scrollbar-gutter: stable;
}

body {
  margin: 0;
  overflow-y: scroll;
}
/* ==================== SHARED NAVIGATION ==================== */
nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: rgba(8,15,24,0.95); backdrop-filter: blur(8px); border-bottom: 2px solid var(--blue); }
.nav-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 48px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  position: relative;
  left: 0; /* optical alignment to your left content line */
}

.nav-logo img {
  display: block;
  width: auto;
  height: 34px;   /* desktop */
}

/* tablet + mobile */
@media (max-width: 1080px) {
  .nav-links {
    display: none;
  }

  .nav-burger {
    display: flex;
  }

  .nav-inner {
    padding: 0 20px;
  }

  .nav-logo {
    left: -4px;   /* smaller optical offset on tighter padding */
  }

  .nav-logo img {
    height: 30px;
  }
}

/* very small phones */
@media (max-width: 480px) {
  .nav-logo {
    left: -2px;
  }

  .nav-logo img {
    height: 28px;
  }
}
.nav-links { display: flex; align-items: center; list-style: none; }
.nav-links a { display: block; padding: 0 11px; height: 60px; line-height: 60px; font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; font-family: var(--FH); font-weight: 500; color: var(--mid); text-decoration: none; transition: color 0.2s; white-space: nowrap; }
.nav-links a:hover { color: var(--text); }
.nav-links a.active { color: var(--blue); }
.nav-cta { color: var(--navy) !important; background: var(--blue); padding: 0 16px !important; height: 34px !important; line-height: 34px !important; margin-left: 12px; font-family: var(--FH) !important; font-weight: 600 !important; }
.nav-cta:hover { opacity: 0.85; }
.nav-burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; background: none; border: none; }
.nav-burger span { display: block; width: 22px; height: 1px; background: var(--mid); }
.nav-mobile { display: none; flex-direction: column; background: rgba(8,15,24,0.98); border-top: 1px solid var(--rule); padding: 16px 0; }
.nav-mobile a { display: block; padding: 12px 28px; font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; font-family: var(--FH); font-weight: 500; color: var(--mid); text-decoration: none; }
.nav-mobile a:hover { color: var(--text); }
.nav-mobile.open { display: flex; }

/* ==================== SHARED MOBILE NAV ==================== */
@media (max-width: 1080px) {
  .nav-links { display: none; }
  .nav-burger { display: flex; }
  .nav-inner { padding: 0 20px; }
}


/* ==================== INDEX ==================== */
body.page-index .nav-mobile.open { display:flex; }
body.page-index .hero {
  min-height: clamp(760px, 88vh, 980px);
  padding-top: 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
body.page-index .hero-bg { position:absolute; inset:0; z-index:0; pointer-events:none; }
body.page-index .hero-bg img {
  position: absolute;
  right: 0;
  top: 48%;
  transform: translateY(-50%);
  width: 58%;
  height: 64%;
  aspect-ratio: 1280 / 714;
  object-fit: cover;
  object-position: center center;
  opacity: 0.78;
  filter: brightness(1.07) contrast(1.06) saturate(1.08);
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.18) 18%,
    rgba(0, 0, 0, 0.55) 48%,
    black 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.18) 18%,
    rgba(0, 0, 0, 0.55) 48%,
    black 100%
  );
}
body.page-index .hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(8, 15, 24, 0.92) 0%,
      rgba(8, 15, 24, 0.78) 34%,
      rgba(8, 15, 24, 0.40) 62%,
      rgba(8, 15, 24, 0.20) 85%,
      rgba(8, 15, 24, 0.10) 100%
    ),
    linear-gradient(
      180deg,
      rgba(8, 15, 24, 0.82) 0%,
      rgba(8, 15, 24, 0.50) 100%
    );
  pointer-events: none;
}
body.page-index .hero-inner { position:relative; z-index:1; max-width:var(--max); margin:0 auto; padding:80px 48px; width:100%; }
body.page-index .hero-label { font-size:12px; letter-spacing:0.24em; text-transform:uppercase; color:var(--blue); margin-bottom:20px; display:flex; align-items:center; gap:10px;; }
body.page-index .hero-label::before { content:""; width:24px; height:1px; background:var(--blue); display:block; }
body.page-index h1.hero-title { font-family:var(--FH); font-weight:700; font-size:clamp(42px,5vw,72px); line-height:0.92; color:var(--text); margin-bottom:24px;; max-width:650px; }
body.page-index h1.hero-title em { font-style:normal; color:var(--blue); }
body.page-index .hero-sub { font-size:14px; line-height:1.85; color:var(--mid); max-width:480px; margin-bottom:40px;; }
body.page-index .hero-btns { display:flex; gap:12px; flex-wrap:wrap;margin-top: 26px; }
body.page-index .btn-primary { display:inline-block; padding:11px 26px; background:var(--blue); color:var(--navy); font-family:var(--FH); font-size:14px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; transition:opacity 0.2s; }
body.page-index .btn-primary:hover { opacity:0.85; }
body.page-index .btn-secondary { display:inline-block; padding:10px 26px; border:1px solid var(--rule); color:var(--mid); font-family:var(--FH); font-size:14px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; transition:border-color 0.2s, color 0.2s; }
body.page-index .btn-secondary:hover { border-color:var(--mid); color:var(--text); }
body.page-index .marquee-section { padding:0; margin-bottom:0; }
body.page-index .marquee-inner { max-width:var(--max); margin:0 auto; padding:0 48px; }
body.page-index .hero-inner .marquee-inner { padding:0; max-width:100%; }
body.page-index .marquee-clip { overflow:hidden; padding:18px 0; }
body.page-index .marquee-track { display:flex; width:max-content; animation:marquee 48s linear infinite; }
body.page-index .marquee-track:hover { animation-play-state:paused; }
body.page-index .marquee-set { display:flex; align-items:center; }
body.page-index .m-item { font-family:var(--FH); font-size:13px; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; color:var(--mid); white-space:nowrap; padding:0 4px; }
body.page-index .m-dot { display:inline-block; width:4px; height:4px; border-radius:50%; background:var(--mid); margin:0 20px; vertical-align:middle; flex-shrink:0; }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
body.page-index .form-section {
  padding: 34px 0 88px;
  margin-top: 0;
}
body.page-index .form-section::before {
  content: "";
  display: block;
  width: calc(100% - 96px);
  max-width: calc(var(--max) - 96px);
  margin: 0 auto 30px;
  height: 1px;
  background: rgba(0, 170, 240, 0.16);
}
body.page-index .form-inner { max-width:var(--max); margin:0 auto; padding:0 48px; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
body.page-index .form-inner > div:last-child {
  margin-top: 105px;
}
body.page-index .form-intro-label { font-size:12px; letter-spacing:0.3em; text-transform:uppercase; color:var(--blue); margin-bottom:12px; display:flex; align-items:center; gap:10px; }
body.page-index .form-intro-label::before { content:""; width:20px; height:1px; background:var(--blue); display:block; }
body.page-index h2.form-intro-title { font-family:var(--FH); font-weight:700; font-size:clamp(28px,3vw,44px); line-height:1; color:var(--text); margin-bottom:16px; }
body.page-index .form-intro-desc { font-size:13px; line-height:1.85; color:var(--mid); margin-bottom:30px; max-width:520px; }
body.page-index .form-points { border-top:1px solid var(--rule); }
body.page-index .form-point { padding:18px 0; border-bottom:1px solid var(--rule); }
body.page-index .form-point-title { font-family:var(--FH); font-size:12px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--text); margin-bottom:8px; }
body.page-index .form-point p { font-size:12px; line-height:1.8; color:var(--mid); max-width:540px; }
body.page-index .form-point a { color:var(--text); text-decoration:none; border-bottom:1px solid rgba(216,234,245,0.18); transition:color 0.2s, border-color 0.2s; }
body.page-index .form-point a:hover { color:var(--blue); border-color:var(--blue); }
body.page-index .form-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; margin-bottom:12px; }
body.page-index .fg { display:flex; flex-direction:column; gap:5px; min-width:0; }
body.page-index .fg.full { grid-column:1/-1; }
body.page-index label { font-size:12px; letter-spacing:0.2em; text-transform:uppercase; color:var(--mid); }
body.page-index input,
body.page-index textarea,
body.page-index select { background:rgba(255,255,255,0.02); border:1px solid var(--rule); color:var(--text); font-family:var(--F); font-size:12px; padding:9px 11px; outline:none; transition:border-color 0.2s, background 0.2s; width:100%; max-width:100%; border-radius:0; -webkit-appearance:none; appearance:none; letter-spacing:0.03em; box-sizing:border-box; }
body.page-index input::placeholder,
body.page-index textarea::placeholder { color:var(--muted); }
body.page-index input:focus,
body.page-index textarea:focus,
body.page-index select:focus { border-color:var(--blue); background:rgba(0,170,240,0.04); }
body.page-index input:-webkit-autofill,
body.page-index input:-webkit-autofill:hover,
body.page-index input:-webkit-autofill:focus { -webkit-box-shadow:0 0 0 1000px #0D1B2A inset!important; -webkit-text-fill-color:var(--mid)!important; }
body.page-index select { cursor:pointer; color:var(--text); background-image:linear-gradient(45deg, transparent 50%, var(--mid) 50%), linear-gradient(135deg, var(--mid) 50%, transparent 50%); background-position:calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px); background-size:6px 6px, 6px 6px; background-repeat:no-repeat; padding-right:34px; }
body.page-index select option { background:#080F18; color:var(--text); }
body.page-index textarea { resize:none; height:132px; line-height:1.6; }
body.page-index .submit-row { display:flex; flex-direction:column; gap:10px; margin-top:14px; }
body.page-index .submit-note { font-family:var(--F); font-size:11px; color:var(--mid); line-height:1.6; letter-spacing:0.04em; }
body.page-index button[type="submit"] { font-family:var(--FH); font-size:14px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--navy); background:var(--blue); border:none; padding:12px 22px; cursor:pointer; transition:opacity 0.2s; width:100%; }
body.page-index button[type="submit"]:hover { opacity:0.88; }
body.page-index .form-success { display:none; padding:32px 16px; border:1px solid var(--rule); text-align:center; }
body.page-index .form-success .tick { font-size:12px; font-weight:700; color:var(--blue); margin-bottom:12px; letter-spacing:0.15em; }
body.page-index .form-success p { font-size:12px; color:var(--mid); line-height:1.7; }
body.page-index .form-success strong { color:#C0D8E8; font-weight:400; }
body.page-index footer { border-top:2px solid var(--blue); padding:20px 0; }
body.page-index .footer-inner { max-width:var(--max); margin:0 auto; padding:0 48px; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
body.page-index .footer-left p, body.page-index .footer-right p { font-size:13px; color:var(--mid); letter-spacing:0.08em; text-transform:uppercase; line-height:1.9; font-family:var(--FH); font-weight:500; }
body.page-index .footer-right { text-align:right; }
body.page-index .footer-right a, body.page-index .footer-left a { color:var(--mid); text-decoration:none; transition:color 0.2s; font-family:var(--FH); font-weight:500; }
body.page-index .footer-right a:hover, body.page-index .footer-left a:hover { color:var(--blue); }
body.page-index .footer-right a:hover, body.page-index .footer-left a:hover { color:var(--blue); }
@keyframes fadeUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
@media (max-width:860px) {
body.page-index .hero-inner { padding:48px 20px; }
body.page-index .form-inner { grid-template-columns:1fr; gap:40px; padding:0 20px; }
body.page-index .marquee-inner { padding:0 20px; }
body.page-index .footer-inner { flex-direction:column; gap:12px; padding:0 20px; }
body.page-index .footer-right { text-align:left; }
}
@media (max-width:480px) {
body.page-index h1.hero-title { font-size:40px; }
body.page-index .form-grid { grid-template-columns:1fr; }
body.page-index .submit-row { flex-direction:column; align-items:stretch; }
body.page-index button[type="submit"] { text-align:center; }
}
body.page-index footer { margin-top: auto !important; flex-shrink: 0; }
body.page-index ::-webkit-scrollbar-track { background: var(--navy, #080F18); }
body.page-index ::-webkit-scrollbar-thumb { background: var(--mid, #5A7A96); border-radius: 0; }
body.page-index ::-webkit-scrollbar-thumb:hover { background: var(--blue, #00AAF0); }
body.page-index .hero-wordmark {
  font-family: var(--FH);
  font-size: clamp(52px, 8vw, 120px);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text);
  line-height: 1;
  margin-bottom: 20px;
  display: block;
}

body.page-index .hero-wordmark em {
  font-style: normal;
  color: var(--blue);
}
.hero-services {
  margin-top: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 520px;
  font-size: 13px;
  color: rgba(255,255,255,0.82);
}

.hero-services-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.hero-services-row span + span::before {
  content: "•";
  margin: 0 16px;
  color: var(--blue);
}
.hero-trust {
  margin-top: 14px;
  margin-bottom: 26px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  max-width: 480px; /* match services */
  font-size: 12px;
  color: rgba(255,255,255,0.58);
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding-top: 16px;
  padding-bottom: 16px;
}
body.page-index .hero-trust-label {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin-bottom: 6px;
}

body.page-index .hero-trust-lines {
  font-size: 11px;
  line-height: 1.9;
  color: rgba(255,255,255,0.55);
}
body.page-index .hero-trust-lines div {
  opacity: 0.9;
}
.hero-note {
  margin-top: 14px;
  font-size: 12px;
  color: rgba(255,255,255,0.6);
}
body.page-index .home-core {
  padding: 8px 0 0px;
}

body.page-index .home-core-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 48px;
}

body.page-index .home-core-label {
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}

body.page-index .home-core-label::before {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--blue);
  display: block;
}

body.page-index .home-core-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(240px, 1fr));
  gap: 1px;
}

body.page-index .home-core-item {
  display: block;
  text-decoration: none;
    padding-left: 60px;

}

body.page-index .home-core-item h3 {
  font-family: var(--FH);
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

body.page-index .home-core-item p {
  font-size: 12px;
  line-height: 1.85;
  color: var(--mid);
  max-width: 35ch;
}
.home-core-item:first-child h3 {
  color: var(--text);
}
.home-core-item:not(:first-child) h3 {
  color: rgba(255,255,255,0.85);
}
body.page-index .home-core-item:hover h3 {
  color: var(--blue);
}

@media (max-width: 860px) {
  body.page-index .home-core-inner {
    padding: 0 20px;
  }

  body.page-index .home-core-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}
/* ==================== ABOUT ==================== */
body.page-about .nav-mobile.open { display:flex; }
body.page-about .page-header { margin-top:60px; border-top:1px solid var(--rule); }
body.page-about .page-header-inner { max-width:var(--max); margin:0 auto; padding:88px 48px 8px; }
body.page-about .page-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:14px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-about .page-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; align-self:center; }
body.page-about h1.page-title { font-family:var(--FH); font-weight:700; font-size:clamp(36px,4.5vw,64px); line-height:1; color:var(--text); margin-bottom:16px; letter-spacing:0.01em; }
body.page-about .page-desc { font-size:13px; line-height:1.75; color:var(--mid); max-width:620px; margin:0; }
body.page-about .section { padding:64px 0 48px; }
body.page-about .section-inner { max-width:var(--max); margin:0 auto; padding:0 48px; }
body.page-about .section-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:8px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-about .section-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; }
body.page-about h2.section-title { font-family:var(--FH); font-weight:700; font-size:clamp(28px,3.5vw,48px); color:var(--text); margin-bottom:16px; letter-spacing:0.02em; line-height:1.1; }
body.page-about .intro-split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
body.page-about .intro-body p { font-size:13px; line-height:2; color:var(--mid); }
body.page-about .intro-body p + p { margin-top:20px; }
.about-meta {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.about-meta ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.about-meta li {
  position: relative;
  padding-left: 16px;
  margin-bottom: 6px;
  font-size: 13px;
  line-height: 1.8;
  color: var(--mid);
  letter-spacing: 0.02em;
}

.about-meta li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.85em;
  width: 6px;
  height: 1px;
  background: var(--blue);
}
body.page-about .principles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 56px;
  border-top: 1px solid rgba(255,255,255,0.035);
  margin-top: 40px;
  position: relative;
}
body.page-about .principles::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(255,255,255,0.04),
    transparent
  );
  transform: translateX(-50%);
  pointer-events: none;
}

body.page-about .principle {
  padding: 32px 18px 28px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  transition: background 0.18s ease;
}
body.page-about .principle:nth-child(even) {
  padding: 32px 18px 28px;
  border-left: none;
}
body.page-about .principle:hover {
  background: rgba(255,255,255,0.01);
}
body.page-about .principle-num {
  font-size: 18px;
  letter-spacing: 0.2em;
  color: var(--blue);
  font-family: var(--FH);
  font-weight: 600;
  margin-bottom: 12px;
}
body.page-about .principle-title {
  font-family: var(--FH);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.05em;
  color: var(--text);
  text-transform: uppercase;
  margin-bottom: 12px;
  line-height: 1.15;
}

body.page-about .principle-body {
  font-size: 12px;
  line-height: 1.9;
  color: var(--mid);
}
body.page-about .note-band { border:1px solid var(--rule); border-left:2px solid var(--blue); padding:28px 32px; margin-top:0; }
body.page-about .note-band h3 { font-family:var(--FH); font-size:20px; font-weight:700; color:var(--text); margin-bottom:8px; letter-spacing:0.04em; }
body.page-about .note-band p { font-size:13px; line-height:1.8; color:var(--mid); }
body.page-about .btn-primary { display:inline-block; padding:11px 26px; background:var(--blue); color:var(--navy); font-family:var(--FH); font-size:14px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; transition:opacity 0.2s; }
body.page-about .btn-primary:hover { opacity:0.85; }
body.page-about .btn-secondary { display:inline-block; padding:10px 26px; border:1px solid var(--rule); color:var(--mid); font-family:var(--FH); font-size:14px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; transition:border-color 0.2s,color 0.2s; }
body.page-about .btn-secondary:hover { border-color:var(--mid); color:var(--text); }
body.page-about footer { border-top:2px solid var(--blue); padding:20px 0; margin-top:auto; flex-shrink:0; }
body.page-about .footer-inner { max-width:var(--max); margin:0 auto; padding:0 48px; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
body.page-about .footer-left p, body.page-about .footer-right p { font-size:13px; color:var(--mid); letter-spacing:0.08em; text-transform:uppercase; line-height:1.9; font-family:var(--FH); font-weight:500; }
body.page-about .footer-right { text-align:right; }
body.page-about .footer-right a, body.page-about .footer-left a { color:var(--mid); text-decoration:none; transition:color 0.2s; font-family:var(--FH); font-weight:500; }
body.page-about .footer-right a:hover, body.page-about .footer-left a:hover { color:var(--blue); }
body.page-about ::-webkit-scrollbar { width:6px; height:6px; }
body.page-about ::-webkit-scrollbar-track { background:var(--navy); }
body.page-about ::-webkit-scrollbar-thumb { background:var(--mid); border-radius:0; }
body.page-about ::-webkit-scrollbar-thumb:hover { background:var(--blue); }
@media (max-width:860px) {
body.page-about .page-header-inner { padding:64px 20px 8px; }
body.page-about .section-inner { padding:0 20px; }
body.page-about .intro-split { grid-template-columns:1fr; gap:32px; }
body.page-about .stats-row { grid-template-columns:1fr; }
body.page-about .stat-block { border-right:none; border-bottom:1px solid var(--rule); }
body.page-about .stat-block:last-child { border-bottom:none; }
body.page-about .principles { grid-template-columns:1fr; }
body.page-about .principle { padding-right:0; }
body.page-about .principle:nth-child(even) { padding-left:0; border-left:none; }
body.page-about .footer-inner { flex-direction:column; gap:12px; padding:0 20px; }
body.page-about .footer-right { text-align:left; }
}
body.page-about .team-photo { width:80px; height:80px; border-radius:50%; object-fit:cover; border:2px solid var(--blue); margin-bottom:16px; display:block; }
body.page-about .team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--rule); margin-top:48px; }
body.page-about .team-card {
  padding:32px 28px;
  border-right: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid var(--rule);
}

/* Desktop: 3 columns */
body.page-about .team-card:nth-child(3n) {
  border-right: none;
}

/* Remove bottom border only on LAST ROW */
body.page-about .team-card:nth-last-child(-n+3) {
  border-bottom: none;
}
body.page-about .team-header { margin-bottom:14px; }
body.page-about .team-name { font-family:var(--FH); font-weight:700; font-size:20px; color:var(--text); letter-spacing:0.04em; text-transform:uppercase; margin-bottom:4px; }
body.page-about .team-role { font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--blue); font-family:var(--FH); font-weight:600; }
body.page-about .team-bio {
  font-size: 12px;
  line-height: 1.82;
  color: var(--mid);
  margin-bottom: 12px;
  max-width: 36ch;
}
body.page-about .team-note {
  font-size: 13px;
  line-height: 1.8;
  color: var(--mid);
  max-width: 620px;
  margin-bottom: 28px;
}
body.page-about .team-skills { list-style:none; margin-bottom:20px; display:flex; flex-direction:column; gap:0; }
body.page-about .team-skills li {
  font-size: 11px;
  color: var(--text);
  padding: 5px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  display: flex;
  align-items: baseline;
  gap: 8px;
  letter-spacing: 0.04em;
}
body.page-about .team-skills li:last-child { border-bottom:none; }
body.page-about .team-skills li::before { content:"—"; color:var(--blue); font-size:11px; flex-shrink:0; }
body.page-about .team-links {
  display: flex;
  flex-direction: row;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.05);
}
body.page-about .team-link { display:inline-flex; align-items:center; gap:7px; text-decoration:none; color:var(--mid); transition:color 0.2s; }
body.page-about .team-link:hover { color:var(--blue); }
body.page-about .team-link:hover .tl-icon { border-color:var(--blue); }
body.page-about .tl-icon { width:36px; height:36px; border:1px solid var(--rule); border-radius:2px; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:border-color 0.2s; }
body.page-about .tl-icon svg { width:18px; height:18px; fill:currentColor; }
body.page-about .tl-label { display:none; }
@media (max-width: 860px) and (min-width: 601px) {
  body.page-about .team-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-about .team-card {
    border-right: 1px solid rgba(255,255,255,0.05);
    border-bottom: 1px solid var(--rule);
  }

  body.page-about .team-card:nth-child(2n) {
    border-right: none;
  }
}

@media (max-width: 600px) {
  body.page-about .team-grid {
    grid-template-columns: 1fr;
    margin-top: 40px;
  }

  body.page-about .team-card {
    padding: 30px 20px 26px;
    border-right: none;
    border-bottom: 1px solid var(--rule);
  }

  body.page-about .team-card:last-child {
    border-bottom: none;
  }

  body.page-about .team-bio {
    max-width: none;
  }
}
@media (min-width: 1200px) {
  body.page-index .hero-bg img {
    right: 50px;
    width: 1200px;
    height: 70%;
    top: 50%;
    transform: translateY(-50%);
    object-position: center right;
  }
}
@media (min-width: 1800px) {
  body.page-index .hero-bg img {
    right: 60px;
    width: 1200px;
    height: 70%;
    top: 50%;
    transform: translateY(-50%);
    object-position: center right;
  }
}
@media (min-width: 2400px) {
  body.page-index .hero-bg img {
    right: 460px;
    width: 1300px;
    height: 70%;
    top: 50%;
    transform: translateY(-50%);
    object-position: center right;
  }
}

/* ==================== SERVICES ==================== */
body.page-services .nav-mobile.open { display:flex; }
body.page-services .page-header { margin-top:60px; border-top:1px solid var(--rule); }
body.page-services .page-header-inner { max-width:var(--max); margin:0 auto; padding:88px 48px 8px; }
body.page-services .page-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:14px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-services .page-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; align-self:center; }
body.page-services h1.page-title { font-family:var(--FH); font-weight:700; font-size:clamp(36px,4.5vw,64px); line-height:1; color:var(--text); margin-bottom:16px; letter-spacing:0.01em; }
body.page-services .page-desc { font-size:13px; line-height:1.75; color:var(--mid); max-width:620px; margin:0; }
body.page-services .accordion { max-width:var(--max); width:100%; margin:0 auto; padding:64px 48px 96px; box-sizing:border-box; }
body.page-services .btn-primary { display:inline-block; padding:11px 26px; background:var(--blue); color:var(--navy); font-family:var(--F); font-size:12px; font-weight:700; letter-spacing:0.24em; text-transform:uppercase; text-decoration:none; transition:opacity 0.2s; }
body.page-services .btn-primary:hover { opacity:0.85; }
body.page-services .btn-ghost { font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--mid); text-decoration:none; transition:color 0.2s; }
body.page-services .btn-ghost:hover { color:var(--text); }
body.page-services footer { border-top:2px solid var(--blue); padding:20px 0; }
body.page-services .footer-inner { max-width:var(--max); margin:0 auto; padding:0 48px; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
body.page-services .footer-left p, body.page-services .footer-right p { font-size:13px; color:var(--mid); letter-spacing:0.08em; text-transform:uppercase; line-height:1.9; font-family:var(--FH); font-weight:500; }
body.page-services .footer-right { text-align:right; }
body.page-services .footer-right a, body.page-services .footer-left a { color:var(--mid); text-decoration:none; transition:color 0.2s; font-family:var(--FH); font-weight:500; }
body.page-services .footer-right a:hover, body.page-services .footer-left a:hover { color:var(--blue); }
@media (max-width:700px) {
body.page-services .footer-inner { flex-direction:column; gap:12px; }
body.page-services .footer-right { text-align:left; }
}
body.page-services footer { margin-top: auto !important; flex-shrink: 0; }
body.page-services ::-webkit-scrollbar { width: 6px; height: 6px; }
body.page-services ::-webkit-scrollbar-track { background: var(--navy, #080F18); }
body.page-services ::-webkit-scrollbar-thumb { background: var(--mid, #5A7A96); border-radius: 0; }
body.page-services ::-webkit-scrollbar-thumb:hover { background: var(--blue, #00AAF0); }
body.page-services .acc-item { border-bottom:1px solid var(--rule); position:relative; width:100%; box-sizing:border-box; }
body.page-services .acc-item:first-child { border-top:1px solid var(--rule); }
body.page-services .acc-item::before { content:""; position:absolute; top:0; left:0; width:2px; height:0; background:var(--blue); transition:height 0.35s; z-index:2; }
body.page-services .acc-item:hover::before { height:100%; }
body.page-services .acc-item.open::before { height:100%; }
body.page-services .acc-trigger { width:100%; background:none; border:none; cursor:pointer; display:grid; grid-template-columns:36px 1fr; align-items:center; gap:16px; padding:24px 0 24px 16px; text-align:left; transition:background 0.2s; }
body.page-services .acc-trigger:hover { background:rgba(0,170,240,0.04); }
body.page-services .acc-item.open .acc-trigger { background:rgba(0,170,240,0.04); }
body.page-services .acc-num { font-size:18px; letter-spacing:0.2em; text-transform:uppercase; color:var(--blue); font-family:var(--F); }
body.page-services .acc-title-wrap { display:flex; flex-direction:column; gap:6px; }
body.page-services .acc-title { font-family:var(--FH); font-weight:700; font-size:clamp(18px,2vw,26px); color:var(--text); text-transform:uppercase; letter-spacing:0.04em; }
body.page-services .acc-codes { display:flex; flex-direction:column; gap:5px; }
body.page-services .acc-codes-row { display:flex; flex-wrap:nowrap; overflow:hidden; white-space:nowrap; align-items:center; }
body.page-services .code-badge { font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--blue); opacity:0.85; font-family:var(--FH); font-weight:600; }
body.page-services .code-badge + .code-badge::before { content:"·"; color:var(--blue); opacity:0.7; font-size:20px; font-weight:700; line-height:0; vertical-align:-0.05em; margin:0 4px; }
body.page-services .std-badge { font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--mid); font-family:var(--FH); font-weight:600; }
body.page-services .std-badge + .std-badge::before { content:"·"; color:var(--mid); opacity:0.7; font-size:20px; font-weight:700; line-height:0; vertical-align:-0.05em; margin:0 4px; }
body.page-services .acc-panel { display:none; padding:24px 0 36px 52px; width:100%; box-sizing:border-box; }
body.page-services .acc-item.open .acc-panel { display:block !important; }
body.page-services .acc-desc { font-size:13px; line-height:1.85; color:var(--mid); hyphens:none; text-align:left; }
body.page-services .acc-desc + .acc-desc { font-size:13px; line-height:1.85; color:var(--mid); hyphens:none; text-align:left; }
body.page-services .acc-desc + div { margin-top:28px; }
body.page-services .acc-list-title { font-size:12px; letter-spacing:0.24em; text-transform:uppercase; color:var(--blue); margin-bottom:16px; padding-bottom:8px; border-bottom:1px solid var(--rule); font-family:var(--FH); font-weight:600; }
body.page-services .acc-list { list-style:none; display:flex; flex-direction:column; }
body.page-services .acc-list li { font-size:12px; color:var(--text); padding:7px 0; border-bottom:1px solid var(--rule); display:flex; align-items:baseline; gap:10px; line-height:1.6; }
body.page-services .acc-list li:last-child { border-bottom:none; }
body.page-services .acc-list li::before { content:"—"; color:var(--blue); font-size:12px; flex-shrink:0; }
body.page-services .acc-cta { margin-top:28px; display:flex; align-items:center; gap:16px; padding-top:24px; border-top:1px solid var(--rule); }
body.page-services .codes-sep { color:var(--mid); font-size:16px; opacity:0.8; margin:0 8px; font-weight:300; line-height:1; }
body.page-services .core-deliverables { padding:0; margin-top:0; }
body.page-services .cd-inner { max-width:var(--max); margin:0 auto; padding:64px 48px;  border-bottom:1px solid var(--rule); }
body.page-services .cd-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--blue); margin-bottom:8px;
  font-family:var(--FH); font-weight:600;
  display:flex; align-items:center; gap:12px; }
body.page-services .cd-label-line { display:block; width:28px; height:1px; background:var(--blue); flex-shrink:0; }
body.page-services .cd-grid { display:grid;
  grid-template-columns:1fr 1px 1fr;
  gap:0 56px;
  align-items:start; }
body.page-services .cd-divider { background:var(--rule); align-self:stretch; }
body.page-services .cd-block-header { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
body.page-services .cd-icon { flex-shrink:0; opacity:0.9; }
body.page-services .cd-title { font-family:var(--FH); font-weight:700; font-size:clamp(22px,2.6vw,30px); color:var(--text); letter-spacing:0.02em; line-height:1.1; white-space:nowrap; margin-bottom:16px; }
body.page-services .cd-desc { font-size:13px; line-height:1.85; color:var(--mid);
  margin-bottom:24px; hyphens:none; }
body.page-services .cd-list { list-style:none; display:flex; flex-direction:column; }
body.page-services .cd-list li { font-size:12px; color:var(--text); padding:9px 0;
  border-bottom:1px solid var(--rule);
  display:flex; align-items:baseline; gap:12px;
  line-height:1.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.page-services .cd-list li:last-child { border-bottom:none; }
body.page-services .cd-list li::before { content:"—"; color:var(--blue); font-size:12px; flex-shrink:0; }
body.page-services .applications-header { padding:80px 0 0; }
body.page-services .applications-inner { max-width:var(--max); margin:0 auto; padding:0 48px; }
@media (max-width:700px) {
body.page-services .cd-grid { grid-template-columns:1fr; gap:48px 0; }
body.page-services .cd-divider { display:none; }
body.page-services .cd-inner, body.page-services .applications-inner { padding-left:20px; padding-right:20px; }
}
body.page-services .acc-panel-inner { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
@media (max-width:700px) {
body.page-services .acc-panel-inner { grid-template-columns:1fr; gap:28px; }
}
body.page-services .applications-title { font-family:var(--FH); font-weight:700;
  font-size:clamp(26px,3vw,40px);
  color:var(--text); letter-spacing:0.02em; line-height:1.1;
  margin-bottom:16px; }
body.page-services .applications-desc { font-size:13px; line-height:1.85; color:var(--mid);
  max-width:640px; text-align:justify; hyphens:auto;
  margin-bottom:0; }
body.page-services .cd-link { display:inline-block;
  margin-top:20px;
  font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
  font-family:var(--FH); font-weight:600;
  color:var(--blue);
  text-decoration:none;
  transition:opacity 0.2s; }
body.page-services .cd-link:hover { opacity:0.7; }
body.page-services .cd-footnote { font-size:11px; color:var(--mid); opacity:0.7; margin-top:14px; font-style:italic; flex-shrink:0; }
body.page-services .cd-list-sep { border-bottom:none !important;
  padding:16px 0 6px !important;
  display:block !important; }
body.page-services .cd-list-sep::before { display:none !important; }
body.page-services .cd-list-sep-label { font-size:10px; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--blue); opacity:0.6;
  font-family:var(--FH); font-weight:600; }
body.page-services .cd-link-c { display:inline-flex; align-items:center; gap:10px;
  font-family:var(--FH); font-size:20px; font-weight:700;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--blue); text-decoration:none;
  margin-top:auto; padding-top:20px; margin-top:28px;
  border-top:1px solid var(--rule);
  width:100%; transition:opacity 0.2s; }
body.page-services .cd-link-c:hover { opacity:0.7; }
body.page-services .cd-link-c-text { flex:none; }
body.page-services .cd-link-c-arrow { font-size:24px; transition:transform 0.2s; flex:none; line-height:1; align-self:center; position:relative; top:-2px; }
body.page-services .cd-link-c:hover .cd-link-c-arrow { transform:translateX(4px) translateY(0); }
body.page-services .cap-grid { display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:40px;
  border-top:1px solid var(--rule); }
body.page-services .cap-card { padding:28px 24px;
  border-bottom:1px solid var(--rule);
  border-right:1px solid var(--rule);
  cursor:pointer;
  position:relative;
  transition:background 0.25s;
  background:var(--navy); }
body.page-services .cap-card:nth-child(3n) { border-right:none; }
body.page-services .cap-card::before { content:""; position:absolute;
  top:0; left:0; width:0; height:2px;
  background:var(--blue);
  transition:width 0.35s ease; }
body.page-services .cap-card:hover::before, body.page-services .cap-card.active::before { width:100%; }
body.page-services .cap-card:hover { background:rgba(255,255,255,0.02); }
body.page-services .cap-card.active { background:rgba(0,170,240,0.07);
  box-shadow:inset 0 0 0 1px rgba(0,170,240,0.25); }
body.page-services .cap-title { font-family:var(--FH); font-weight:700;
  font-size:15px; color:var(--mid);
  text-transform:uppercase; letter-spacing:0.02em;
  line-height:1.4; transition:color 0.2s; }
body.page-services .cap-card:hover .cap-title, body.page-services .cap-card.active .cap-title { color:var(--text); }
body.page-services .cap-detail { display:grid;
  grid-template-columns:1fr 340px;
  gap:56px;
  margin-top:2px;
  border-top:2px solid var(--blue);
  padding:40px 32px;
  background:rgba(0,170,240,0.03);
  transition:opacity 0.2s, transform 0.2s; }
body.page-services .cap-detail.fade { opacity:0;
  transform:translateY(8px); }
body.page-services .detail-tags { display:flex; gap:8px; flex-wrap:wrap;
  margin-bottom:16px; }
body.page-services .detail-tag { font-family:var(--FH); font-size:11px;
  font-weight:600; letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--blue); opacity:0.75;
  border:1px solid rgba(0,170,240,0.25);
  padding:3px 10px; }
body.page-services .cap-detail-title { font-family:var(--FH); font-weight:700;
  font-size:clamp(20px,2.2vw,30px);
  color:var(--text); text-transform:uppercase;
  letter-spacing:0.02em; margin-bottom:16px;
  line-height:1.15; }
body.page-services .cap-detail-desc { font-size:13px; line-height:2;
  color:rgba(216,234,245,0.75); }
body.page-services .cap-detail-visual video, body.page-services .cap-detail-visual img { width:100%; height:220px;
  object-fit:cover;
  background:#0D1620;
  border:1px solid rgba(0,170,240,0.15);
  border-radius:3px;
  display:block; }
@media (max-width:700px) {
body.page-services .cap-grid { grid-template-columns:1fr; }
body.page-services .cap-card { border-right:none; }
body.page-services .cap-detail { grid-template-columns:1fr; }
body.page-services .cap-detail-visual { display:none; }
}
body.page-services .section { padding:64px 0 48px; }
body.page-services .section.has-label { padding-top:80px; }
body.page-services .section-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:8px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-services .section-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; align-self:center; }
body.page-services .section-title { font-family:var(--FH); font-weight:700; font-size:clamp(28px,3.5vw,48px); color:var(--text); margin-bottom:16px; letter-spacing:0.02em; line-height:1.1; }
body.page-services .section-desc { font-size:13px; line-height:1.8; color:var(--mid); max-width:640px; margin-bottom:40px; }
body.page-services .section-inner { max-width:var(--max); margin:0 auto; padding:0 48px; }


/* ==================== CALCULATIONS ==================== */
body.page-calculations ::-webkit-scrollbar { width:6px; }
body.page-calculations ::-webkit-scrollbar-track { background:var(--navy); }
body.page-calculations ::-webkit-scrollbar-thumb { background:var(--mid); }
body.page-calculations ::-webkit-scrollbar-thumb:hover { background:var(--blue); }
body.page-calculations footer { border-top:2px solid var(--blue); margin-top:auto; flex-shrink:0; }
body.page-calculations .nav-mobile.open { display:flex; }
body.page-calculations .page-header { margin-top:60px; border-top:1px solid var(--rule); }
body.page-calculations .page-header-inner { max-width:var(--max); margin:0 auto; padding:88px 48px 8px; }
body.page-calculations .page-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:14px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-calculations .page-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; align-self:center; }
body.page-calculations h1.page-title { font-family:var(--FH); font-weight:700; font-size:clamp(36px,4.5vw,64px); line-height:1; color:var(--text); margin-bottom:16px; letter-spacing:0.01em; }
body.page-calculations .page-desc { font-size:13px; line-height:1.75; color:var(--mid); max-width:620px; margin:0; }
body.page-calculations .intro-split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; max-width:var(--max); margin:0 auto; padding:40px 48px 0; }
body.page-calculations .intro-



/* SECTION */
.section { padding:64px 0 48px; }
body.page-calculations .section.has-label { padding-top:80px; }
body.page-calculations .section-inner { max-width:var(--max); margin:0 auto; padding:0 48px; }
body.page-calculations .section-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:8px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-calculations .section-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; align-self:center; }
body.page-calculations h2.section-title { font-family:var(--FH); font-weight:700; font-size:clamp(28px,3.5vw,48px); color:var(--text); margin-bottom:16px; letter-spacing:0.02em; line-height:1.1; }
body.page-calculations h3






/* ── GIF — absolutely fills the space below title/codes on hover ── */



/* ── DEFAULT STATE — show everything, body.page-calculations hide gif ── */



/* ── HOVER STATE — hide desc & codes, body.page-calculations show gif in remaining space ── */




/* Position gif to start BELOW the num+title block — using padding-top on gif */


/* No-gif: tint on hover */


/* NOTE */
.note-band { border:1px solid var(--rule); border-left:2px solid var(--blue); padding:28px 32px; margin-top:48px; }
body.page-calculations .note-band h3 { font-family:var(--FH); font-size:20px; font-weight:700; color:var(--text); margin-bottom:8px; letter-spacing:0.04em; }
body.page-calculations .note-band p { font-size:13px; line-height:1.8; color:var(--mid); }
body.page-calculations .btn-primary { display:inline-block; padding:11px 26px; background:var(--blue); color:var(--navy); font-family:var(--F); font-size:12px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; text-decoration:none; transition:opacity 0.2s; }
body.page-calculations .btn-primary:hover { opacity:0.85; }
body.page-calculations .btn-secondary { display:inline-block; padding:10px 26px; border:1px solid var(--rule); color:var(--mid); font-family:var(--F); font-size:12px; letter-spacing:0.2em; text-transform:uppercase; text-decoration:none; transition:border-color 0.2s,color 0.2s; }
body.page-calculations .btn-secondary:hover { border-color:var(--mid); color:var(--text); }
body.page-calculations footer { border-top:2px solid var(--blue); padding:20px 0; }
body.page-calculations .footer-inner { max-width:var(--max); margin:0 auto; padding:0 48px; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
body.page-calculations .footer-left p, body.page-calculations .footer-right p { font-size:13px; color:var(--mid); letter-spacing:0.08em; text-transform:uppercase; line-height:1.9; font-family:var(--FH); font-weight:500; }
body.page-calculations .footer-right { text-align:right; }
body.page-calculations .footer-right a, body.page-calculations .footer-left a { color:var(--mid); text-decoration:none; transition:color 0.2s; font-family:var(--FH); font-weight:500; }
body.page-calculations .footer-right a:hover, body.page-calculations .footer-left a:hover { color:var(--blue); }
body.page-calculations .footer-right a:hover, body.page-calculations .footer-left a:hover { color:var(--blue); }
@media (max-width:900px) {
body.page-calculations .intro-split { grid-template-columns:1fr; gap:32px; padding:60px 20px 0; }
}
@media (max-width:700px) {
body.page-calculations .footer-inner { flex-direction:column; gap:12px; }
body.page-calculations .footer-right { text-align:left; }
}
body.page-calculations .intro-codes { margin-top:8px; margin-bottom:48px; }
body.page-calculations .acc-codes-row { display:flex; flex-wrap:wrap; align-items:center; row-gap:6px; }
body.page-calculations .intro-body { max-width:640px; }
body.page-calculations .intro-body p { font-size:13px; line-height:1.85; color:var(--mid); margin-bottom:16px; }
body.page-calculations .intro-body p:last-of-type { margin-bottom:20px; }
body.page-calculations .section-desc { font-size:13px; line-height:1.8; color:var(--mid); max-width:640px; margin-bottom:40px; }
body.page-calculations .cap-grid { display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:40px;
  border-top:1px solid var(--rule); }
body.page-calculations .cap-card { padding:28px 24px;
  border-bottom:1px solid var(--rule);
  border-right:1px solid var(--rule);
  cursor:pointer;
  position:relative;
  transition:background 0.25s;
  background:var(--navy); }
body.page-calculations .cap-card:nth-child(3n) { border-right:none; }
body.page-calculations .cap-card::before { content:""; position:absolute;
  top:0; left:0; width:0; height:2px;
  background:var(--blue);
  transition:width 0.35s ease; }
body.page-calculations .cap-card:hover::before, body.page-calculations .cap-card.active::before { width:100%; }
body.page-calculations .cap-card:hover { background:rgba(255,255,255,0.02); }
body.page-calculations .cap-card.active { background:rgba(0,170,240,0.07);
  box-shadow:inset 0 0 0 1px rgba(0,170,240,0.25); }
body.page-calculations .cap-title { font-family:var(--FH); font-weight:700;
  font-size:15px; color:var(--mid);
  text-transform:uppercase; letter-spacing:0.02em;
  line-height:1.4; transition:color 0.2s; }
body.page-calculations .cap-card:hover .cap-title, body.page-calculations .cap-card.active .cap-title { color:var(--text); }
body.page-calculations .cap-detail { display:grid;
  grid-template-columns:1fr 420px;
  gap:48px;
  align-items:start;
  margin-top:2px;
  margin-bottom:50px;
  border-top:2px solid var(--blue);
  padding:40px 32px;
  background: transparent;
  transition:opacity 0.2s, transform 0.2s; }
body.page-calculations .cap-detail.fade { opacity:0;
  transform:translateY(8px); }
body.page-calculations .detail-tags { display:flex; gap:8px; flex-wrap:wrap;
  margin-bottom:16px; }
body.page-calculations .detail-tag { font-family:var(--FH); font-size:11px;
  font-weight:600; letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--blue); opacity:0.75;
  border:1px solid rgba(0,170,240,0.25);
  padding:3px 10px; }
body.page-calculations .cap-detail-title { font-family:var(--FH); font-weight:700;
  font-size:clamp(20px,2.2vw,30px);
  color:var(--text); text-transform:uppercase;
  letter-spacing:0.02em; margin-bottom:16px;
  line-height:1.15; }
body.page-calculations .cap-detail-desc { font-size:13px; line-height:2;
  color:rgba(216,234,245,0.75); }
body.page-calculations .cap-detail-visual { display:block;
  width:420px;
  height:280px;
  flex-shrink:0; }
body.page-calculations .cap-detail-visual video, body.page-calculations .cap-detail-visual img, body.page-calculations #detail-media { width:420px;
  height:280px;
  object-fit:cover;
  object-position:center center;
  background: transparent;
  display:block; }
body.page-calculations #detail-media { width:420px;
  height:280px; }
  body.page-calculations .cap-detail-visual,
body.page-calculations .cap-detail-visual *,
body.page-calculations #detail-media,
body.page-calculations #detail-media * {
  background: transparent !important;
  box-shadow: none !important;
}
@media (max-width:700px) {
body.page-calculations .cap-grid { grid-template-columns:1fr; }
body.page-calculations .cap-card { border-right:none; }
body.page-calculations .cap-detail { grid-template-columns:1fr; }
body.page-calculations .cap-detail-visual { display:none; }
}
.calc-footer {
  margin-top: 56px;
  padding-top: 24px;
  padding-bottom: 24px;
  font-size: 0.9rem;
  line-height: 1.8;
  color: rgba(120, 160, 200, 0.75);

  border-top: 1px solid rgba(0, 180, 255, 0.15);

  /* alignment */
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* ==================== CAD ==================== */
body.page-cad ::-webkit-scrollbar { width:6px; }
body.page-cad ::-webkit-scrollbar-track { background:var(--navy); }
body.page-cad ::-webkit-scrollbar-thumb { background:var(--mid); }
body.page-cad ::-webkit-scrollbar-thumb:hover { background:var(--blue); }
body.page-cad footer { border-top:2px solid var(--blue); margin-top:auto; flex-shrink:0; }
body.page-cad .nav-mobile.open { display:flex; }
body.page-cad .page-header { margin-top:60px; border-top:1px solid var(--rule); }
body.page-cad .page-header-inner { max-width:var(--max); margin:0 auto; padding:88px 48px 8px; }
body.page-cad .page-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:14px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-cad .page-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; align-self:center; }
body.page-cad h1.page-title { font-family:var(--FH); font-weight:700; font-size:clamp(36px,4.5vw,64px); line-height:1; color:var(--text); margin-bottom:16px; letter-spacing:0.01em; }
body.page-cad .page-desc { font-size:13px; line-height:1.75; color:var(--mid); max-width:620px; margin:0; }
body.page-cad .intro-split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; max-width:var(--max); margin:0 auto; padding:40px 48px 0; }
body.page-cad .section { padding:64px 0 48px; }
body.page-cad .section.has-label { padding-top:80px; }
body.page-cad .section-inner { max-width:var(--max); margin:0 auto; padding:0 48px; }
body.page-cad .section-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:8px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-cad .section-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; align-self:center; }
body.page-cad h2.section-title { font-family:var(--FH); font-weight:700; font-size:clamp(28px,3.5vw,48px); color:var(--text); margin-bottom:16px; letter-spacing:0.02em; line-height:1.1; }
body.page-cad .note-band { border:1px solid var(--rule); border-left:2px solid var(--blue); padding:28px 32px; margin-top:48px; }
body.page-cad .note-band h3 { font-family:var(--FH); font-size:20px; font-weight:700; color:var(--text); margin-bottom:8px; letter-spacing:0.04em; }
body.page-cad .note-band p { font-size:13px; line-height:1.8; color:var(--mid); }
body.page-cad .btn-primary { display:inline-block; padding:11px 26px; background:var(--blue); color:var(--navy); font-family:var(--F); font-size:12px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; text-decoration:none; transition:opacity 0.2s; }
body.page-cad .btn-primary:hover { opacity:0.85; }
body.page-cad .btn-secondary { display:inline-block; padding:10px 26px; border:1px solid var(--rule); color:var(--mid); font-family:var(--F); font-size:12px; letter-spacing:0.2em; text-transform:uppercase; text-decoration:none; transition:border-color 0.2s,color 0.2s; }
body.page-cad .btn-secondary:hover { border-color:var(--mid); color:var(--text); }
body.page-cad footer { border-top:2px solid var(--blue); padding:20px 0; }
body.page-cad .footer-inner { max-width:var(--max); margin:0 auto; padding:0 48px; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
body.page-cad .footer-left p, body.page-cad .footer-right p { font-size:13px; color:var(--mid); letter-spacing:0.08em; text-transform:uppercase; line-height:1.9; font-family:var(--FH); font-weight:500; }
body.page-cad .footer-right { text-align:right; }
body.page-cad .footer-right a, body.page-cad .footer-left a { color:var(--mid); text-decoration:none; transition:color 0.2s; font-family:var(--FH); font-weight:500; }
body.page-cad .footer-right a:hover, body.page-cad .footer-left a:hover { color:var(--blue); }
body.page-cad .footer-right a:hover, body.page-cad .footer-left a:hover { color:var(--blue); }
@media (max-width:900px) {
body.page-cad .intro-split { grid-template-columns:1fr; gap:32px; padding:60px 20px 0; }
}
@media (max-width:700px) {
body.page-cad .footer-inner { flex-direction:column; gap:12px; }
body.page-cad .footer-right { text-align:left; }
}
body.page-cad .intro-codes { margin-top:8px; margin-bottom:48px; }
body.page-cad .acc-codes-row { display:flex; flex-wrap:wrap; align-items:center; row-gap:6px; }
body.page-cad .intro-body { max-width:640px; }
body.page-cad .intro-body p { font-size:13px; line-height:1.85; color:var(--mid); margin-bottom:16px; }
body.page-cad .intro-body p:last-child { margin-bottom:0; }
body.page-cad .intro-body p:last-of-type { margin-bottom:20px; }
body.page-cad .section-desc { font-size:13px; line-height:1.8; color:var(--mid); max-width:640px; margin-bottom:40px; }
body.page-cad .cap-grid { display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:40px;
  border-top:1px solid var(--rule); }
body.page-cad .cap-card { padding:28px 24px;
  border-bottom:1px solid var(--rule);
  border-right:1px solid var(--rule);
  cursor:pointer;
  position:relative;
  transition:background 0.25s;
  background:var(--navy); }
body.page-cad .cap-card:nth-child(3n) { border-right:none; }
body.page-cad .cap-card::before { content:""; position:absolute;
  top:0; left:0; width:0; height:2px;
  background:var(--blue);
  transition:width 0.35s ease; }
body.page-cad .cap-card:hover::before, body.page-cad .cap-card.active::before { width:100%; }
body.page-cad .cap-card:hover { background:rgba(255,255,255,0.02); }
body.page-cad .cap-card.active { background:rgba(0,170,240,0.07);
  box-shadow:inset 0 0 0 1px rgba(0,170,240,0.25); }
body.page-cad .cap-title { font-family:var(--FH); font-weight:700;
  font-size:15px; color:var(--mid);
  text-transform:uppercase; letter-spacing:0.02em;
  line-height:1.4; transition:color 0.2s; }
body.page-cad .cap-card:hover .cap-title, body.page-cad .cap-card.active .cap-title { color:var(--text); }
body.page-cad .cap-detail { display:grid;
  grid-template-columns:1fr 340px;
  gap:56px;
  margin-top:2px;
  border-top:2px solid var(--blue);
  padding:40px 32px;
  background:rgba(0,170,240,0.03);
  transition:opacity 0.2s, transform 0.2s; }
body.page-cad .cap-detail.fade { opacity:0;
  transform:translateY(8px); }
body.page-cad .detail-tags { display:flex; gap:8px; flex-wrap:wrap;
  margin-bottom:16px; }
body.page-cad .detail-tag { font-family:var(--FH); font-size:11px;
  font-weight:600; letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--blue); opacity:0.75;
  border:1px solid rgba(0,170,240,0.25);
  padding:3px 10px; }
body.page-cad .cap-detail-title { font-family:var(--FH); font-weight:700;
  font-size:clamp(20px,2.2vw,30px);
  color:var(--text); text-transform:uppercase;
  letter-spacing:0.02em; margin-bottom:16px;
  line-height:1.15; }
body.page-cad .cap-detail-desc { font-size:13px; line-height:2;
  color:rgba(216,234,245,0.75); }
body.page-cad .cap-detail-visual video, body.page-cad .cap-detail-visual img { width:100%; height:220px;
  object-fit:cover;
  background:#0D1620;
  border:1px solid rgba(0,170,240,0.15);
  border-radius:3px;
  display:block; }
@media (max-width:700px) {
body.page-cad .cap-grid { grid-template-columns:1fr; }
body.page-cad .cap-card { border-right:none; }
body.page-cad .cap-detail { grid-template-columns:1fr; }
body.page-cad .cap-detail-visual { display:none; }
}
body.page-cad .cad-timeline { position:relative;
  padding-left:0;
  margin-top:48px; }
body.page-cad .cad-spine { position:absolute;
  left:27px; top:0; bottom:0;
  width:2px; background:var(--rule); }
body.page-cad .cad-step { display:grid;
  grid-template-columns:56px 1fr;
  gap:0;
  margin-bottom:0;
  position:relative; }
body.page-cad .cad-step-num { width:56px; height:56px;
  background:var(--navy);
  border:2px solid var(--rule);
  border-radius:50%;
  font-family:var(--FH); font-size:20px; font-weight:700;
  color:var(--mid);
  display:flex; align-items:center; justify-content:center;
  transition:all 0.3s;
  flex-shrink:0;
  z-index:1; }
body.page-cad .cad-step:hover .cad-step-num { border-color:var(--blue);
  color:var(--blue);
  background:rgba(0,170,240,0.06); }
body.page-cad .cad-step-body { padding:0 0 56px 28px; }
body.page-cad .cad-step:last-child .cad-step-body { padding-bottom:40px; }
body.page-cad .cad-step-label { font-family:var(--FH); font-size:11px; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--blue); opacity:0.7;
  margin-bottom:6px; margin-top:14px; }
body.page-cad .cad-step-title { font-family:var(--FH); font-weight:700;
  font-size:clamp(20px,2.2vw,28px);
  color:var(--text); text-transform:uppercase;
  letter-spacing:0.02em; margin-bottom:14px; line-height:1.1; }
body.page-cad .cad-step-desc { font-size:13px; line-height:1.85;
  color:rgba(216,234,245,0.75);
  max-width:580px; }
  body.page-cad .cad-step-image {
  margin-top: 22px;
  max-width: 580px;
  width: 100%;
}

body.page-cad .cad-step-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;

}
body.page-cad .del-grid { display:grid; grid-template-columns:1fr 1fr;
  gap:48px; margin-top:32px; }
body.page-cad .del-group-title { font-family:var(--FH); font-size:12px; font-weight:600;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--blue); opacity:0.7; margin-bottom:14px; }
body.page-cad .del-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0; }
body.page-cad .del-list li { font-size:13px; line-height:1.7; color:var(--mid); padding:8px 0; border-bottom:1px solid var(--rule); }
body.page-cad .del-standards { display:flex; gap:48px; flex-wrap:wrap; padding-top:24px; margin-bottom:50px; }
body.page-cad .del-std-group { display:flex; flex-direction:column; gap:8px; }
body.page-cad .del-std-label { font-family:var(--FH); font-size:11px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--mid); opacity:0.6; }
@media (max-width:700px) {
body.page-cad .del-grid { grid-template-columns:1fr; }
body.page-cad .del-standards { flex-direction:column; gap:24px; }
}
body.page-cad .code-badge { font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--blue); opacity:0.85; font-family:var(--FH); font-weight:600; }
body.page-cad .code-badge + .code-badge::before { content:"·"; color:var(--blue); opacity:0.7; font-size:20px; font-weight:700; line-height:0; vertical-align:-0.05em; margin:0 4px; }
body.page-cad .std-badge { font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--mid); font-family:var(--FH); font-weight:600; }
body.page-cad .std-badge + .std-badge::before { content:"·"; color:var(--mid); opacity:0.7; font-size:20px; font-weight:700; line-height:0; vertical-align:-0.05em; margin:0 4px; }
body.page-cad .acc-codes-row { display:flex; flex-wrap:wrap; align-items:center; row-gap:6px; }
/* tighten timeline visuals on mobile */
@media (max-width: 700px) {
  body.page-cad .cad-step-image {
    max-width: 420px;
    margin-top: 16px;
  }

  body.page-cad .cad-step-image img {
    width: 100%;
    height: auto;
  }
}

@media (max-width: 520px) {
  body.page-cad .cad-step-image {
    max-width: 300px;
    margin-top: 14px;
  }
}

@media (max-width: 420px) {
  body.page-cad .cad-step-image {
    max-width: 260px;
  }
}

/* ==================== CONTACT ==================== */
body.page-contact .nav-mobile.open { display:flex; }

body.page-contact .page-header {
  margin-top: 60px;
  border-top: 1px solid var(--rule);
}

body.page-contact .page-header-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 88px 48px 16px;
}

body.page-contact .page-label {
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 14px;
  font-family: var(--FH);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 12px;
}

body.page-contact .page-label::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--blue);
  flex-shrink: 0;
}

body.page-contact h1.page-title {
  font-family: var(--FH);
  font-weight: 700;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 1;
  color: var(--text);
  margin-bottom: 16px;
  letter-spacing: 0.01em;
}

body.page-contact .page-desc {
  font-size: 13px;
  line-height: 1.85;
  color: var(--mid);
  max-width: 620px;
  margin: 0;
}

body.page-contact .contact-section {
  padding: 40px 0 88px;
}

body.page-contact .contact-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 64px;
  align-items: start;
}

body.page-contact .contact-info {
  border-top: 1px solid rgba(255,255,255,0.05);
}

body.page-contact .info-block {
  padding: 18px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

body.page-contact .info-label {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text);
  font-family: var(--FH);
  font-weight: 600;
  margin-bottom: 8px;
}

body.page-contact .info-value {
  font-size: 12px;
  line-height: 1.85;
  color: var(--mid);
}

body.page-contact .info-value a {
  color: var(--text);
  text-decoration: none;
  border-bottom: 1px solid rgba(216,234,245,0.18);
  transition: color 0.2s, border-color 0.2s;
}

body.page-contact .info-value a:hover {
  color: var(--blue);
  border-color: var(--blue);
}

body.page-contact .contact-form-wrap {
  min-width: 0;
}

body.page-contact .form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}

body.page-contact .fg {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

body.page-contact .fg.full {
  grid-column: 1 / -1;
}

body.page-contact label {
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--mid);
}

body.page-contact input,
body.page-contact textarea,
body.page-contact select {
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--rule);
  color: var(--text);
  font-family: var(--F);
  font-size: 12px;
  padding: 9px 11px;
  outline: none;
  transition: border-color 0.2s, background 0.2s;
  width: 100%;
  max-width: 100%;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
  letter-spacing: 0.03em;
  box-sizing: border-box;
}

body.page-contact input::placeholder,
body.page-contact textarea::placeholder {
  color: var(--muted);
}

body.page-contact input:focus,
body.page-contact textarea:focus,
body.page-contact select:focus {
  border-color: var(--blue);
  background: rgba(0,170,240,0.04);
}

body.page-contact input:-webkit-autofill,
body.page-contact input:-webkit-autofill:hover,
body.page-contact input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #0D1B2A inset !important;
  -webkit-text-fill-color: var(--mid) !important;
}

body.page-contact select {
  cursor: pointer;
  color: var(--text);
  background-image:
    linear-gradient(45deg, transparent 50%, var(--mid) 50%),
    linear-gradient(135deg, var(--mid) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 2px),
    calc(100% - 12px) calc(50% - 2px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 34px;
}

body.page-contact select option {
  background: #080F18;
  color: var(--text);
}

body.page-contact textarea {
  resize: none;
  min-height: 130px;
  line-height: 1.7;
}

body.page-contact .submit-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}

body.page-contact .submit-note {
  font-family: var(--F);
  font-size: 11px;
  color: var(--mid);
  line-height: 1.6;
  letter-spacing: 0.04em;
}

body.page-contact button[type="submit"] {
  font-family: var(--FH);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--navy);
  background: var(--blue);
  border: none;
  padding: 12px 22px;
  cursor: pointer;
  transition: opacity 0.2s;
  width: 100%;
}

body.page-contact button[type="submit"]:hover {
  opacity: 0.88;
}

body.page-contact .form-success {
  display: none;
  padding: 32px 16px;
  border: 1px solid var(--rule);
  text-align: center;
}

body.page-contact .form-success .tick {
  font-size: 12px;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 12px;
  letter-spacing: 0.15em;
}

body.page-contact .form-success p {
  font-size: 12px;
  color: var(--mid);
  line-height: 1.7;
}

body.page-contact .form-success strong {
  color: #C0D8E8;
  font-weight: 400;
}

body.page-contact footer {
  border-top: 2px solid var(--blue);
  padding: 20px 0;
  margin-top: auto;
  flex-shrink: 0;
}

body.page-contact .footer-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 48px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
}

body.page-contact .footer-left p,
body.page-contact .footer-right p {
  font-size: 13px;
  color: var(--mid);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.9;
  font-family: var(--FH);
  font-weight: 500;
}

body.page-contact .footer-right {
  text-align: right;
}

body.page-contact .footer-right a,
body.page-contact .footer-left a {
  color: var(--mid);
  text-decoration: none;
  transition: color 0.2s;
  font-family: var(--FH);
  font-weight: 500;
}

body.page-contact .footer-right a:hover,
body.page-contact .footer-left a:hover {
  color: var(--blue);
}

@media (max-width: 860px) {
  body.page-contact .page-header-inner {
    padding: 64px 20px 12px;
  }

  body.page-contact .contact-inner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 0 20px;
  }

  body.page-contact .footer-inner {
    flex-direction: column;
    gap: 12px;
    padding: 0 20px;
  }

  body.page-contact .footer-right {
    text-align: left;
  }
}

@media (max-width: 480px) {
  body.page-contact .form-grid {
    grid-template-columns: 1fr;
  }

  body.page-contact .submit-row {
    flex-direction: column;
    align-items: stretch;
  }

  body.page-contact button[type="submit"] {
    text-align: center;
  }
}
/* ==================== TOOLS ==================== */
body.page-tools .nav-mobile.open { display:flex; }
body.page-tools .page-header { margin-top:60px; border-top:1px solid var(--rule); }
body.page-tools .page-header-inner { max-width:var(--max); margin:0 auto; padding:88px 48px 48px; }
body.page-tools .page-label { font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--blue); margin-bottom:14px; font-family:var(--FH); font-weight:600; display:flex; align-items:center; gap:12px; }
body.page-tools .page-label::before { content:""; width:28px; height:1px; background:var(--blue); flex-shrink:0; align-self:center; }
body.page-tools h1.page-title { font-family:var(--FH); font-weight:700; font-size:clamp(36px,4.5vw,64px); line-height:1; color:var(--text); margin-bottom:16px; }
body.page-tools .page-desc { font-size:13px; line-height:1.75; color:var(--mid); max-width:620px; margin:0; }
body.page-tools .tools-content { max-width:var(--max); margin:0 auto; padding:64px 48px 96px; }
body.page-tools .tools-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); margin-bottom:64px; }
body.page-tools .tool-card { background:var(--navy); padding:32px 28px; text-decoration:none; display:flex; flex-direction:column; position:relative; transition:background 0.2s; min-height:320px; }
body.page-tools .tool-desc { flex:1; font-size:12px; line-height:1.8; color:var(--mid); margin-bottom:20px; }
body.page-tools .tool-card:hover { background:rgba(0,170,240,0.04); }
body.page-tools .tool-card::after { content:""; position:absolute; top:0; left:0; width:2px; height:0; background:var(--blue); transition:height 0.3s ease; }
body.page-tools .tool-card:hover::after { height:100%; }
body.page-tools .tool-card-coming {
  cursor: default;
  opacity: 0.9;
}

body.page-tools .tool-card-coming:hover {
  background: inherit;
}
body.page-tools .tool-card-coming::after { display:none; }
body.page-tools .tool-card-live {
  cursor: pointer;
}
body.page-tools .tool-card-live:hover {
  background: rgba(255, 255, 255, 0.02);
}
body.page-tools .tool-card-review {
  cursor: pointer;
}
body.page-tools .tool-card-review,
body.page-tools .tool-card-live {
  text-decoration: none;
  color: inherit;
}
body.page-tools .tool-card-review .tool-name::after {
  content: "";
}

body.page-tools .tool-card-review:hover {
  background: rgba(255, 255, 255, 0.02);
}
body.page-tools .tool-num {
  font-size: 18px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--blue);
  font-family: var(--F);
  line-height: 1;
  margin-bottom: 12px;
}

body.page-tools .tool-name {
  margin-bottom: 14px;
}

body.page-tools .tool-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;

  padding: 3px 8px;   /* smaller */
  margin-bottom: 14px;

  font-family: var(--FH);
  font-weight: 600;

  border-radius: 2px;
}

body.page-tools .tool-badge.live {
  color: var(--green);
  background: rgba(39, 196, 107, 0.12);
  border: 1px solid rgba(39, 196, 107, 0.25);
}
body.page-tools .tool-badge.soon {
  color: var(--blue);
  background: rgba(0, 170, 240, 0.08);
  border: 1px solid rgba(0, 170, 240, 0.18);
}
body.page-tools .tool-badge.review {
  color: #e0b800;
  background: rgba(224, 184, 0, 0.12);
  border: 1px solid rgba(224, 184, 0, 0.25);
}
body.page-tools h3.tool-name { font-family:var(--FH); font-weight:700; font-size:clamp(16px,1.8vw,22px); letter-spacing:0.04em; color:var(--text); text-transform:uppercase; margin-bottom:10px; }
body.page-tools .tool-card-coming h3.tool-name { color:var(--mid); }
body.page-tools .tool-tags { display:flex; flex-wrap:nowrap; gap:6px; overflow:hidden; }
body.page-tools .tool-tag { font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--mid); border:1px solid rgba(0,170,240,0.25); padding:3px 8px; font-family:var(--FH); font-weight:600; white-space:nowrap; }
body.page-tools .tool-note { border:1px solid var(--rule); border-left:2px solid var(--blue); padding:20px 28px; font-size:12px; color:var(--mid); line-height:1.8; }
body.page-tools .tool-note strong { color:var(--text); font-weight:400; }
body.page-tools footer { border-top:2px solid var(--blue); padding:20px 0; margin-top:auto; flex-shrink:0; }
body.page-tools .footer-inner { max-width:var(--max); margin:0 auto; padding:0 48px; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
body.page-tools .footer-left p, body.page-tools .footer-right p { font-size:13px; color:var(--mid); letter-spacing:0.08em; text-transform:uppercase; line-height:1.9; font-family:var(--FH); font-weight:500; }
body.page-tools .footer-right { text-align:right; }
body.page-tools .footer-right a, body.page-tools .footer-left a { color:var(--mid); text-decoration:none; transition:color 0.2s; font-family:var(--FH); font-weight:500; }
body.page-tools .footer-right a:hover, body.page-tools .footer-left a:hover { color:var(--blue); }
body.page-tools ::-webkit-scrollbar { width:6px; height:6px; }
body.page-tools ::-webkit-scrollbar-track { background:var(--navy); }
body.page-tools ::-webkit-scrollbar-thumb { background:var(--mid); border-radius:0; }
body.page-tools ::-webkit-scrollbar-thumb:hover { background:var(--blue); }
@media (max-width:860px) {
body.page-tools .tools-grid { grid-template-columns:1fr 1fr; margin-bottom:40px; }
body.page-tools .tools-content { padding:48px 20px 80px; }
body.page-tools .page-header-inner { padding:64px 20px 32px; }
body.page-tools .footer-inner { flex-direction:column; gap:12px; padding:0 20px; }
body.page-tools .footer-right { text-align:left; }
body.page-tools .tool-card { min-height:0; padding:26px 22px; }
}
@media (max-width:480px) {
body.page-tools .tools-grid { grid-template-columns:1fr; }
body.page-tools .tools-content { padding:28px 16px 56px; }
body.page-tools .tool-card { padding:20px 18px; }
body.page-tools .tool-num { font-size:13px; margin-bottom:6px; }
body.page-tools .tool-icon { display:none; }
body.page-tools .tool-badge { font-size:9px; padding:2px 7px; margin-bottom:10px; }
body.page-tools h3.tool-name { font-size:16px; margin-bottom:8px; }
body.page-tools .tool-desc { font-size:11px; line-height:1.7; margin-bottom:14px; }
body.page-tools .tool-tags { flex-wrap:wrap; }
body.page-tools .tool-tag { font-size:10px; padding:2px 7px; }
body.page-tools .tool-note { padding:14px 16px; font-size:11px; }
}
body.page-tools .tool-icon {
  display: inline-flex;
  align-items: center;
}

body.page-tools .tool-icon svg {
  width: 12px;
  height: 12px;
  stroke-width: 2;
  opacity: 0.8;
}

/* ==================== TOOL PAGES (INDIVIDUAL TOOLS) ==================== */
body.page-tools.tool-app-page .nav-mobile.open { display:flex; }
body.page-tools.tool-app-page { display:flex; flex-direction:column; min-height:100vh; }
body.page-tools.tool-app-page .tool-app-shell { display:flex; flex-direction:column; flex:1; min-height:100vh; }
body.page-tools.tool-app-page .tool-page-header .page-header-inner {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
}
body.page-tools.tool-app-page .tool-header-main { max-width:720px; }
body.page-tools.tool-app-page .tool-status-badge {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:10px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  padding:3px 8px;
  margin-bottom:14px;
  font-family:var(--FH);
  font-weight:600;
  border-radius:2px;
  white-space:nowrap;
}
body.page-tools.tool-app-page .tool-status-badge.live {
  color:var(--green);
  background:rgba(39, 196, 107, 0.12);
  border:1px solid rgba(39, 196, 107, 0.25);
}
body.page-tools.tool-app-page .tool-status-badge.review {
  color:#e0b800;
  background:rgba(224, 184, 0, 0.12);
  border:1px solid rgba(224, 184, 0, 0.25);
}
body.page-tools.tool-app-page footer { margin-top:auto; }

/* shared scrollbar for tool pages */
body.page-tools.tool-app-page ::-webkit-scrollbar { width:6px; height:6px; }
body.page-tools.tool-app-page ::-webkit-scrollbar-track { background:var(--navy); }
body.page-tools.tool-app-page ::-webkit-scrollbar-thumb { background:var(--mid); }
body.page-tools.tool-app-page ::-webkit-scrollbar-thumb:hover { background:var(--blue); }
body.page-tools.tool-app-page * { scrollbar-width:thin; scrollbar-color:var(--mid) var(--navy); }

/* ---------- UNIT CONVERTER ---------- */
body.page-tools.tool-app-page .tool-unit { max-width:var(--max); margin:0 auto; padding:56px 48px 96px; flex:1; }
body.page-tools.tool-app-page .tool-unit .cat-tabs { display:flex; flex-wrap:wrap; gap:0; border:1px solid var(--rule); margin-bottom:40px; }
body.page-tools.tool-app-page .tool-unit .cat-tab {
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--mid);
  background:none;
  border:none;
  border-right:1px solid var(--rule);
  padding:14px 22px;
  cursor:pointer;
  font-family:var(--F);
  transition:color 0.2s, background 0.2s;
  white-space:nowrap;
}
body.page-tools.tool-app-page .tool-unit .cat-tab:last-child { border-right:none; }
body.page-tools.tool-app-page .tool-unit .cat-tab:hover { color:var(--text); background:rgba(255,255,255,0.02); }
body.page-tools.tool-app-page .tool-unit .cat-tab.active { color:var(--blue); background:rgba(0,170,240,0.05); }
body.page-tools.tool-app-page .tool-unit .cat-panel { display:none; }
body.page-tools.tool-app-page .tool-unit .cat-panel.active { display:block; }
body.page-tools.tool-app-page .tool-unit .input-row {
  display:grid;
  grid-template-columns:1fr 240px;
  gap:1px;
  background:var(--rule);
  border:1px solid var(--rule);
  margin-bottom:1px;
}
body.page-tools.tool-app-page .tool-unit .main-input { background:var(--navy); padding:24px 28px; display:flex; align-items:center; gap:20px; }
body.page-tools.tool-app-page .tool-unit .main-input label { font-size:12px; letter-spacing:0.24em; text-transform:uppercase; color:var(--mid); white-space:nowrap; flex-shrink:0; }
body.page-tools.tool-app-page .tool-unit .main-input input {
  flex:1;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--rule);
  color:var(--text);
  font-family:var(--FH);
  font-size:32px;
  font-weight:700;
  letter-spacing:0.02em;
  padding:4px 0;
  outline:none;
  min-width:0;
  transition:border-color 0.2s;
}
body.page-tools.tool-app-page .tool-unit .main-input input:focus { border-bottom-color:var(--blue); }
body.page-tools.tool-app-page .tool-unit .main-input input::placeholder { color:var(--muted); font-size:24px; font-weight:500; }
body.page-tools.tool-app-page .tool-unit .unit-select-wrap {
  background:var(--navy);
  padding:20px 28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  border-left:2px solid var(--blue);
  position:relative;
}
body.page-tools.tool-app-page .tool-unit .unit-select-wrap label { font-size:12px; letter-spacing:0.24em; text-transform:uppercase; color:var(--blue); }
body.page-tools.tool-app-page .tool-unit .custom-select { position:relative; width:100%; }
body.page-tools.tool-app-page .tool-unit .custom-select-trigger {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border-bottom:1px solid rgba(0,170,240,0.4);
  padding:4px 0;
  cursor:pointer;
  transition:border-color 0.2s;
}
body.page-tools.tool-app-page .tool-unit .custom-select-trigger:hover { border-bottom-color:var(--blue); }
body.page-tools.tool-app-page .tool-unit .custom-select.open .custom-select-trigger { border-bottom-color:var(--blue); }
body.page-tools.tool-app-page .tool-unit .custom-select-value { font-family:var(--FH); font-size:22px; font-weight:700; letter-spacing:0.04em; color:var(--text); line-height:1.2; }
body.page-tools.tool-app-page .tool-unit .select-chevron { flex-shrink:0; transition:transform 0.2s; }
body.page-tools.tool-app-page .tool-unit .custom-select.open .select-chevron { transform:rotate(180deg); }
body.page-tools.tool-app-page .tool-unit .custom-select-dropdown {
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  left:-28px;
  right:-28px;
  z-index:300;
  background:var(--navy);
  border:1px solid var(--rule);
  border-top:2px solid var(--blue);
  max-height:280px;
  overflow-y:auto;
}
body.page-tools.tool-app-page .tool-unit .custom-select.open .custom-select-dropdown { display:block; }
body.page-tools.tool-app-page .tool-unit .custom-option { display:flex; align-items:center; gap:12px; padding:12px 20px; cursor:pointer; border-bottom:1px solid var(--rule); transition:background 0.15s; }
body.page-tools.tool-app-page .tool-unit .custom-option:last-child { border-bottom:none; }
body.page-tools.tool-app-page .tool-unit .custom-option:hover { background:rgba(0,170,240,0.06); }
body.page-tools.tool-app-page .tool-unit .custom-option.selected { background:rgba(0,170,240,0.1); }
body.page-tools.tool-app-page .tool-unit .custom-option-sym { font-family:var(--FH); font-size:20px; font-weight:700; color:var(--text); letter-spacing:0.04em; min-width:90px; }
body.page-tools.tool-app-page .tool-unit .custom-option.selected .custom-option-sym { color:var(--blue); }
body.page-tools.tool-app-page .tool-unit .custom-option-label { font-family:var(--F); font-size:13px; color:var(--mid); letter-spacing:0.04em; }
body.page-tools.tool-app-page .tool-unit .results-list { border:1px solid var(--rule); border-top:none; max-height:60vh; overflow-y:auto; }
body.page-tools.tool-app-page .tool-unit .result-item { display:grid; grid-template-columns:200px 1fr auto; align-items:center; gap:0; border-bottom:1px solid var(--rule); transition:background 0.15s; }
body.page-tools.tool-app-page .tool-unit .result-item:last-child { border-bottom:none; }
body.page-tools.tool-app-page .tool-unit .result-item:hover { background:rgba(0,170,240,0.04); }
body.page-tools.tool-app-page .tool-unit .result-item.active-unit { background:rgba(0,170,240,0.07); border-left:2px solid var(--blue); }
body.page-tools.tool-app-page .tool-unit .result-unit-col { padding:18px 24px; border-right:1px solid var(--rule); }
body.page-tools.tool-app-page .tool-unit .result-unit-sym { font-family:var(--FH); font-size:20px; font-weight:700; color:var(--text); letter-spacing:0.04em; line-height:1.1; }
body.page-tools.tool-app-page .tool-unit .result-unit-label { font-size:12px; color:var(--mid); margin-top:2px; letter-spacing:0.04em; }
body.page-tools.tool-app-page .tool-unit .result-item.active-unit .result-unit-sym { color:var(--blue); }
body.page-tools.tool-app-page .tool-unit .result-val-col { padding:18px 28px; font-family:var(--FH); font-size:32px; font-weight:700; color:var(--text); letter-spacing:0.02em; }
body.page-tools.tool-app-page .tool-unit .result-item.active-unit .result-val-col { color:var(--blue); }
body.page-tools.tool-app-page .tool-unit .result-val-col.empty { font-size:16px; color:#243548; font-family:var(--F); font-weight:400; letter-spacing:0.04em; }
body.page-tools.tool-app-page .tool-unit .result-note-col { padding:18px 24px; font-size:12px; color:#243548; letter-spacing:0.04em; text-align:right; white-space:nowrap; }

/* ---------- THERMAL EXPANSION ---------- */
body.page-tools.tool-app-page .tool-thermal { max-width:var(--max); margin:0 auto; padding:56px 48px 80px; flex:1; }
body.page-tools.tool-app-page .tool-thermal .formula-banner { border:1px solid var(--rule); border-left:2px solid var(--blue); padding:16px 24px; margin-bottom:40px; display:flex; align-items:center; gap:32px; flex-wrap:wrap; }
body.page-tools.tool-app-page .tool-thermal .formula-text { font-family:var(--FH); font-size:20px; font-weight:700; color:var(--mid); letter-spacing:0.04em; }
body.page-tools.tool-app-page .tool-thermal .formula-text em { font-style:normal; color:var(--text); }
body.page-tools.tool-app-page .tool-thermal .formula-note { font-size:12px; color:var(--mid); line-height:1.8; }
body.page-tools.tool-app-page .tool-thermal .formula-source { font-size:11px; color:#243548; letter-spacing:0.08em; text-transform:uppercase; font-family:var(--FH); margin-top:4px; }
body.page-tools.tool-app-page .tool-thermal .tool-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule); border:1px solid var(--rule); margin-bottom:40px; }
body.page-tools.tool-app-page .tool-thermal .inputs-panel,
body.page-tools.tool-app-page .tool-thermal .results-panel { background:var(--navy); }
body.page-tools.tool-app-page .tool-thermal .field { padding:20px 28px; border-bottom:1px solid var(--rule); }
body.page-tools.tool-app-page .tool-thermal .field:last-child { border-bottom:none; }
body.page-tools.tool-app-page .tool-thermal .field-label { font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--blue); margin-bottom:10px; font-family:var(--FH); font-weight:600; }
body.page-tools.tool-app-page .tool-thermal .field-sub { font-size:11px; color:var(--mid); margin-bottom:10px; letter-spacing:0.04em; }
body.page-tools.tool-app-page .tool-thermal .mat-select { width:100%; background:rgba(255,255,255,0.02); border:none; border-bottom:1px solid var(--rule); color:var(--text); font-family:var(--F); font-size:13px; padding:8px 0; outline:none; cursor:pointer; -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235A7A96' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 4px center; }
body.page-tools.tool-app-page .tool-thermal .mat-select:focus { border-bottom-color:var(--blue); }
body.page-tools.tool-app-page .tool-thermal .mat-select option { background:#0D1B2A; color:var(--text); }
body.page-tools.tool-app-page .tool-thermal .cte-display { margin-top:10px; padding:10px 14px; background:rgba(0,170,240,0.06); border-left:2px solid var(--blue); display:flex; align-items:baseline; gap:8px; }
body.page-tools.tool-app-page .tool-thermal .cte-display-label { font-size:12px; color:var(--mid); letter-spacing:0.04em; font-family:var(--F); text-transform:none; }
body.page-tools.tool-app-page .tool-thermal .cte-display-val { font-family:var(--FH); font-size:22px; font-weight:700; color:var(--blue); }
body.page-tools.tool-app-page .tool-thermal .cte-display-unit { font-size:11px; color:var(--mid); }
body.page-tools.tool-app-page .tool-thermal .cte-interp-note { font-size:11px; color:var(--mid); margin-top:6px; letter-spacing:0.04em; }
body.page-tools.tool-app-page .tool-thermal .cte-interp-note em { font-style:normal; color:var(--blue); opacity:0.8; }
body.page-tools.tool-app-page .tool-thermal .num-row { display:flex; align-items:baseline; gap:10px; border-bottom:1px solid var(--rule); padding-bottom:6px; }
body.page-tools.tool-app-page .tool-thermal .num-input { flex:1; background:transparent; border:none; color:var(--text); font-family:var(--FH); font-size:32px; font-weight:700; padding:4px 0; outline:none; min-width:0; }
body.page-tools.tool-app-page .tool-thermal .num-input::placeholder { color:var(--muted); font-size:22px; font-weight:500; }
body.page-tools.tool-app-page .tool-thermal .num-unit { font-size:13px; color:var(--mid); letter-spacing:0.04em; text-transform:none; white-space:nowrap; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-thermal .toggle-row { display:flex; gap:1px; background:var(--rule); border:1px solid var(--rule); margin-top:10px; }
body.page-tools.tool-app-page .tool-thermal .toggle-btn { flex:1; background:var(--navy); border:none; font-family:var(--FH); font-size:13px; font-weight:500; letter-spacing:0.04em; text-transform:none; color:var(--mid); padding:8px; cursor:pointer; transition:all 0.15s; }
body.page-tools.tool-app-page .tool-thermal .toggle-btn.active { background:rgba(0,170,240,0.1); color:var(--blue); }
body.page-tools.tool-app-page .tool-thermal .toggle-btn:hover:not(.active) { color:var(--text); }
body.page-tools.tool-app-page .tool-thermal .result-main { padding:32px 32px 24px; border-bottom:1px solid var(--rule); flex:1; display:flex; flex-direction:column; justify-content:center; }
body.page-tools.tool-app-page .tool-thermal .result-main-label { font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--blue); margin-bottom:10px; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-thermal .result-main-val { font-family:var(--FH); font-size:clamp(44px,5vw,72px); font-weight:700; color:var(--text); line-height:1; }
body.page-tools.tool-app-page .tool-thermal .result-main-unit { font-family:var(--FH); font-size:22px; color:var(--mid); margin-top:6px; }
body.page-tools.tool-app-page .tool-thermal .result-main-empty { font-family:var(--FH); font-size:28px; color:#243548; }
body.page-tools.tool-app-page .tool-thermal .result-sub-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule); }
body.page-tools.tool-app-page .tool-thermal .result-sub-item { background:var(--navy); padding:18px 24px; }
body.page-tools.tool-app-page .tool-thermal .result-sub-label { font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--mid); margin-bottom:6px; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-thermal .result-sub-val { font-family:var(--FH); font-size:22px; font-weight:700; color:var(--text); }
body.page-tools.tool-app-page .tool-thermal .result-sub-unit { font-size:11px; color:var(--mid); margin-top:2px; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-thermal .result-formula-row { padding:18px 28px; border-top:1px solid var(--rule); }
body.page-tools.tool-app-page .tool-thermal .result-formula-label { font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--mid); margin-bottom:6px; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-thermal .result-formula-val { font-size:12px; color:#5A7A96; line-height:1.7; }
body.page-tools.tool-app-page .tool-thermal .ref-table-wrap { border:1px solid var(--rule); }
body.page-tools.tool-app-page .tool-thermal .ref-table-header { padding:14px 20px; border-bottom:1px solid var(--rule); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
body.page-tools.tool-app-page .tool-thermal .ref-table-title { font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--blue); font-family:var(--FH); }
body.page-tools.tool-app-page .tool-thermal .ref-table-source { font-size:10px; color:#243548; letter-spacing:0.1em; text-transform:uppercase; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-thermal table.ref-table { width:100%; border-collapse:collapse; font-size:12px; }
body.page-tools.tool-app-page .tool-thermal table.ref-table th { font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--mid); padding:10px 16px; text-align:left; border-bottom:1px solid var(--rule); font-weight:500; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-thermal table.ref-table td { color:var(--text); padding:10px 16px; border-bottom:1px solid var(--rule); }
body.page-tools.tool-app-page .tool-thermal table.ref-table tr:last-child td { border-bottom:none; }
body.page-tools.tool-app-page .tool-thermal table.ref-table tr.active-mat td { background:rgba(0,170,240,0.07); }
body.page-tools.tool-app-page .tool-thermal table.ref-table tr.active-mat td:first-child { border-left:2px solid var(--blue); }
body.page-tools.tool-app-page .tool-thermal table.ref-table td.temp-cell { color:var(--mid); font-size:11px; }

/* ---------- PV THICKNESS ---------- */
body.page-tools.tool-app-page .tool-pv { max-width:var(--max); margin:0 auto; padding:40px 48px 80px; flex:1; }
body.page-tools.tool-app-page .tool-pv .shared-inputs { border:1px solid var(--rule); margin-bottom:32px; }
body.page-tools.tool-app-page .tool-pv .si-header { padding:16px 24px; border-bottom:1px solid var(--rule); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
body.page-tools.tool-app-page .tool-pv .si-title { font-family:var(--FH); font-size:16px; font-weight:700; color:var(--text); letter-spacing:0.06em; text-transform:uppercase; }
body.page-tools.tool-app-page .tool-pv .unit-toggle { display:flex; gap:1px; background:var(--rule); border:1px solid var(--rule); }
body.page-tools.tool-app-page .tool-pv .unit-btn { font-family:var(--FH); font-size:12px; font-weight:600; letter-spacing:0.12em; background:var(--navy); border:none; color:var(--mid); padding:7px 16px; cursor:pointer; transition:all 0.15s; text-transform:uppercase; }
body.page-tools.tool-app-page .tool-pv .unit-btn.active { background:rgba(0,170,240,0.1); color:var(--blue); }
body.page-tools.tool-app-page .tool-pv .si-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule); }
body.page-tools.tool-app-page .tool-pv .si-field { background:var(--navy); padding:16px 20px; }
body.page-tools.tool-app-page .tool-pv .si-label { font-size:10px; letter-spacing:0.18em; text-transform:uppercase; color:var(--blue); margin-bottom:6px; font-family:var(--FH); font-weight:600; }
body.page-tools.tool-app-page .tool-pv .si-input { width:100%; background:transparent; border:none; border-bottom:1px solid var(--rule); color:var(--text); font-family:var(--F); font-size:18px; font-weight:500; padding:4px 0; outline:none; transition:border-color 0.2s; }
body.page-tools.tool-app-page .tool-pv .si-input:focus { border-bottom-color:var(--blue); }
body.page-tools.tool-app-page .tool-pv .si-input::placeholder { color:var(--muted); font-size:14px; }
body.page-tools.tool-app-page .tool-pv .si-unit { font-size:10px; color:var(--mid); margin-top:4px; font-family:var(--FH); letter-spacing:0.08em; }
body.page-tools.tool-app-page .tool-pv .si-select { width:100%; background:transparent; border:none; border-bottom:1px solid var(--rule); color:var(--text); font-family:var(--F); font-size:13px; padding:4px 16px 4px 0; outline:none; cursor:pointer; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235A7A96' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 2px center; }
body.page-tools.tool-app-page .tool-pv .si-select:focus { border-bottom-color:var(--blue); }
body.page-tools.tool-app-page .tool-pv .si-select option { background:#0D1B2A; color:var(--text); }
body.page-tools.tool-app-page .tool-pv .stress-display { background:rgba(0,170,240,0.05); border-left:2px solid var(--blue); padding:8px 12px; margin-top:6px; display:flex; align-items:baseline; gap:6px; }
body.page-tools.tool-app-page .tool-pv .stress-val { font-family:var(--FH); font-size:20px; font-weight:700; color:var(--blue); }
body.page-tools.tool-app-page .tool-pv .stress-unit { font-size:10px; color:var(--mid); font-family:var(--FH); }
body.page-tools.tool-app-page .tool-pv .comp-tabs { display:flex; gap:0; border:1px solid var(--rule); margin-bottom:1px; flex-wrap:wrap; }
body.page-tools.tool-app-page .tool-pv .comp-tab { font-family:var(--FH); font-size:13px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; background:var(--navy); border:none; border-right:1px solid var(--rule); color:var(--mid); padding:12px 20px; cursor:pointer; transition:all 0.15s; white-space:nowrap; }
body.page-tools.tool-app-page .tool-pv .comp-tab:last-child { border-right:none; }
body.page-tools.tool-app-page .tool-pv .comp-tab:hover { color:var(--text); }
body.page-tools.tool-app-page .tool-pv .comp-tab.active { color:var(--blue); background:rgba(0,170,240,0.06); }
body.page-tools.tool-app-page .tool-pv .comp-panel { display:none; border:1px solid var(--rule); border-top:none; }
body.page-tools.tool-app-page .tool-pv .comp-panel.active { display:block; }
body.page-tools.tool-app-page .tool-pv .comp-inputs { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule); border-bottom:1px solid var(--rule); }
body.page-tools.tool-app-page .tool-pv .results-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--rule); }
body.page-tools.tool-app-page .tool-pv .result-col { background:var(--navy); padding:0; }
body.page-tools.tool-app-page .tool-pv .result-code-header { padding:12px 16px; border-bottom:1px solid var(--rule); text-align:center; }
body.page-tools.tool-app-page .tool-pv .result-code-name { font-family:var(--FH); font-size:14px; font-weight:700; color:var(--text); letter-spacing:0.06em; }
body.page-tools.tool-app-page .tool-pv .result-code-clause { font-size:10px; color:var(--mid); margin-top:2px; font-family:var(--FH); letter-spacing:0.04em; }
body.page-tools.tool-app-page .tool-pv .result-main-val { padding:20px 16px; text-align:center; border-bottom:1px solid var(--rule); }
body.page-tools.tool-app-page .tool-pv .result-t-label { font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--mid); margin-bottom:6px; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-pv .result-t-value { font-family:var(--FH); font-size:32px; font-weight:700; color:var(--blue); line-height:1; }
body.page-tools.tool-app-page .tool-pv .result-t-unit { font-size:11px; color:var(--mid); margin-top:3px; font-family:var(--FH); }
body.page-tools.tool-app-page .tool-pv .result-t-empty { font-family:var(--FH); font-size:24px; color:#243548; }
body.page-tools.tool-app-page .tool-pv .result-sub { padding:12px 16px; }
body.page-tools.tool-app-page .tool-pv .result-row { display:flex; justify-content:space-between; align-items:baseline; padding:5px 0; border-bottom:1px solid var(--rule); gap:8px; }
body.page-tools.tool-app-page .tool-pv .result-row:last-child { border-bottom:none; }
body.page-tools.tool-app-page .tool-pv .result-row-label { font-size:10px; color:var(--mid); letter-spacing:0.06em; font-family:var(--FH); white-space:nowrap; }
body.page-tools.tool-app-page .tool-pv .result-row-val { font-size:12px; color:var(--text); font-weight:500; text-align:right; }
body.page-tools.tool-app-page .tool-pv .result-row-val.warn { color:#F0A500; }
body.page-tools.tool-app-page .tool-pv .result-formula { padding:10px 16px; border-top:1px solid var(--rule); font-size:10px; color:#3A5A76; line-height:1.6; font-family:var(--F); }
body.page-tools.tool-app-page .tool-pv .weight-bar { border:1px solid var(--rule); border-top:2px solid var(--blue); margin-top:1px; }
body.page-tools.tool-app-page .tool-pv .weight-header { padding:12px 20px; border-bottom:1px solid var(--rule); font-family:var(--FH); font-size:13px; font-weight:700; color:var(--mid); letter-spacing:0.1em; text-transform:uppercase; }
body.page-tools.tool-app-page .tool-pv .weight-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--rule); }
body.page-tools.tool-app-page .tool-pv .weight-cell { background:var(--navy); padding:14px 16px; text-align:center; }
body.page-tools.tool-app-page .tool-pv .weight-label { font-size:10px; color:var(--mid); font-family:var(--FH); letter-spacing:0.08em; margin-bottom:4px; }
body.page-tools.tool-app-page .tool-pv .weight-val { font-family:var(--FH); font-size:18px; font-weight:700; color:var(--text); }
body.page-tools.tool-app-page .tool-pv .weight-unit { font-size:10px; color:var(--mid); font-family:var(--FH); }
body.page-tools.tool-app-page .tool-pv .calc-note { font-size:11px; color:var(--mid); margin-top:16px; padding:12px 16px; border-left:2px solid var(--rule); line-height:1.7; }
body.page-tools.tool-app-page .tool-pv .calc-note em { font-style:normal; color:var(--blue); }

/* ---------- responsive ---------- */
@media (max-width:1000px) {
  body.page-tools.tool-app-page .tool-pv .si-grid { grid-template-columns:repeat(3,1fr); }
  body.page-tools.tool-app-page .tool-pv .results-grid,
  body.page-tools.tool-app-page .tool-pv .weight-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:860px) {
  body.page-tools.tool-app-page .tool-thermal .tool-grid { grid-template-columns:1fr; }
  body.page-tools.tool-app-page .tool-thermal .result-sub-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:700px) {
  body.page-tools.tool-app-page .page-header-inner,
  body.page-tools.tool-app-page .tool-unit,
  body.page-tools.tool-app-page .tool-thermal,
  body.page-tools.tool-app-page .tool-pv,
  body.page-tools.tool-app-page .footer-inner { padding-left:20px; padding-right:20px; }
  body.page-tools.tool-app-page .footer-inner { flex-direction:column; gap:12px; }
  body.page-tools.tool-app-page .footer-right { text-align:left; }

  body.page-tools.tool-app-page .tool-unit .input-row { grid-template-columns:1fr; }
  body.page-tools.tool-app-page .tool-unit .unit-select-wrap { border-left:none; border-top:2px solid var(--blue); }
  body.page-tools.tool-app-page .tool-unit .result-item { grid-template-columns:160px 1fr; }
  body.page-tools.tool-app-page .tool-unit .result-note-col { display:none; }

  body.page-tools.tool-app-page .tool-thermal .ref-table-wrap { overflow-x:auto; }

  body.page-tools.tool-app-page .tool-pv .si-grid,
  body.page-tools.tool-app-page .tool-pv .comp-inputs,
  body.page-tools.tool-app-page .tool-pv .results-grid,
  body.page-tools.tool-app-page .tool-pv .weight-grid { grid-template-columns:1fr 1fr; }
}
/* ===== stamp base ===== */
body.page-cad .mnx-stamp {
  display: grid;
  grid-template-columns: 96px 1px 1fr;
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: transparent;
  width: 100%;
  max-width: 520px;
}

body.page-cad .mnx-stamp-logo {
  display: flex;
  align-items: center;
  justify-content: center;
}

body.page-cad .mnx-stamp-logo img {
  display: block;
  width: 78px;
  height: auto;
}

body.page-cad .mnx-stamp-divider {
  width: 1px;
  align-self: stretch;
  background: var(--rule);
}

body.page-cad .mnx-stamp-body {
  min-width: 0;
}

body.page-cad .mnx-stamp-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

body.page-cad .mnx-stamp-title {
  font-family: var(--FH);
  font-size: 34px;
  line-height: 0.95;
  letter-spacing: 0.03em;
  color: var(--green);
}

body.page-cad .mnx-stamp-rev {
  border: 1px solid var(--mid);
  padding: 6px 10px;
  font-family: var(--F);
  font-size: 12px;
  color: var(--text);
  white-space: nowrap;
  flex-shrink: 0;
}

body.page-cad .mnx-stamp-sub {
  margin-top: 8px;
  font-family: var(--F);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--mid);
}

body.page-cad .mnx-stamp-rule {
  height: 1px;
  background: var(--rule);
  margin: 12px 0;
}

body.page-cad .mnx-stamp-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  font-family: var(--F);
  font-size: 10px;
  line-height: 1.6;
  color: var(--text);
}

body.page-cad .mnx-stamp-meta .status {
  color: var(--green);
}
@media (max-width: 700px) {
  body.page-cad .mnx-stamp {
    grid-template-columns: 78px 1px 1fr;
    gap: 12px;
    padding: 12px 14px;
    max-width: 420px;
  }

  body.page-cad .mnx-stamp-logo img {
    width: 60px;
  }

  body.page-cad .mnx-stamp-title {
    font-size: 26px;
  }

  body.page-cad .mnx-stamp-rev {
    font-size: 11px;
    padding: 5px 8px;
  }

  body.page-cad .mnx-stamp-sub {
    font-size: 10px;
    letter-spacing: 0.12em;
    margin-top: 6px;
  }

  body.page-cad .mnx-stamp-rule {
    margin: 10px 0;
  }

  body.page-cad .mnx-stamp-meta {
    gap: 6px 14px;
    font-size: 9px;
    line-height: 1.5;
  }
}

@media (max-width: 520px) {
  body.page-cad .mnx-stamp {
    grid-template-columns: 64px 1px 1fr;
    gap: 10px;
    padding: 10px 12px;
    max-width: 300px;
  }

  body.page-cad .mnx-stamp-logo img {
    width: 48px;
  }

  body.page-cad .mnx-stamp-title {
    font-size: 20px;
  }

  body.page-cad .mnx-stamp-rev {
    font-size: 10px;
    padding: 4px 7px;
  }

  body.page-cad .mnx-stamp-sub {
    font-size: 9px;
    letter-spacing: 0.1em;
    margin-top: 5px;
  }

  body.page-cad .mnx-stamp-meta {
    gap: 4px 10px;
    font-size: 8px;
    line-height: 1.45;
  }
}

@media (max-width: 420px) {
  body.page-cad .mnx-stamp {
    max-width: 260px;
    grid-template-columns: 54px 1px 1fr;
    gap: 8px;
    padding: 9px 10px;
  }

  body.page-cad .mnx-stamp-logo img {
    width: 40px;
  }

  body.page-cad .mnx-stamp-title {
    font-size: 17px;
  }

  body.page-cad .mnx-stamp-rev {
    font-size: 9px;
    padding: 3px 6px;
  }

  body.page-cad .mnx-stamp-sub {
    font-size: 8px;
    letter-spacing: 0.08em;
  }

  body.page-cad .mnx-stamp-meta {
    font-size: 7px;
    gap: 3px 8px;
  }
}