/* Micro Dynamics Aerospace — restyled to Landing Page V2 language */
:root {
  --bg-black: #000; --bg-dark: #111; --bg-white: #fff; --bg-gray: #f5f5f5;
  --text-dark: #000; --text-light: #fff; --text-muted: #555;
  --border-light: #ddd; --border-dark: #333;
  --font-main: "Montserrat", sans-serif; --shell: 1280px;
  --transition-fast: 0.2s ease-in-out; --transition-slow: 0.4s ease-in-out;
  --transition-spring: 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important; scroll-behavior: auto !important;
  }
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 0; overflow-x: hidden; }
body {
  font-family: var(--font-main); background: var(--bg-white); color: var(--text-dark);
  line-height: 1.6; overflow-x: hidden; -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: all var(--transition-fast); }
button, input, select, textarea { font: inherit; }
.shell { width: min(var(--shell), calc(100% - 4rem)); margin: 0 auto; }
h1, h2 { font-weight: 200; text-transform: uppercase; letter-spacing: 2px; line-height: 1.12; }
h3, h4 { font-weight: 700; text-transform: uppercase; letter-spacing: 1px; line-height: 1.2; }
.eyebrow {
  color: var(--text-muted); font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  font-size: 0.75rem; margin-bottom: 1rem; display: inline-block;
  border-bottom: 1px solid var(--text-dark); padding-bottom: 0.25rem;
}
.black .eyebrow, .speed-section .eyebrow, .chip-video-section .eyebrow { color: #888; border-color: #888; }
h1 { font-size: clamp(2.75rem, 5.5vw, 4.75rem); max-width: 16ch; }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); max-width: 22ch; }
h3 { font-size: 1.15rem; }
.lede, .hero-lead { font-size: 1.05rem; color: var(--text-muted); font-weight: 300; line-height: 1.75; }
.section { padding: 6.5rem 0; position: relative; }
.soft { background: var(--bg-gray); }
.black { background: var(--bg-black); color: var(--text-light); }
.black p { color: #aaa; font-weight: 300; }
.black h2 { color: #fff; }
.section-head { max-width: 960px; margin-bottom: 3rem; }
.section-head.centered { text-align: center; margin-inline: auto; }
.section-head.centered h2, .section-head.centered .eyebrow { margin-inline: auto; }
.section-head .lede { margin-top: 1.25rem; }
.pattern-bg { background-image: repeating-linear-gradient(45deg, #f2f2f2 0, #f2f2f2 2px, transparent 2px, transparent 10px); }
.btn, .button {
  display: inline-flex; align-items: center; justify-content: center; padding: 1rem 2rem;
  border-radius: 0; font-family: var(--font-main); font-weight: 700; font-size: 0.85rem;
  text-transform: uppercase; letter-spacing: 1.5px; cursor: pointer;
  transition: all var(--transition-fast); text-align: center; gap: 0.75rem;
  border: 1px solid #000; background: #000; color: #fff;
}
.btn:hover, .button:hover { background: #fff; color: #000; }
.button.ghost, .button.light { background: transparent; color: #111; border-color: #ccc; }
.button.ghost:hover, .button.light:hover { border-color: #000; color: #000; background: transparent; }
.hero-section .button.ghost { color: #333; }
.black .button.ghost, .speed-section .button.ghost { color: #fff; border-color: #fff; }
.black .button.ghost:hover, .speed-section .button.ghost:hover { background: #fff; color: #000; }
.button.full { width: 100%; }

.scroll-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; background: linear-gradient(90deg,#fff,#888,#fff); z-index: 20000; transform: scaleX(0); transform-origin: left; pointer-events: none; }
.site-header { position: fixed; top: 0; left: 0; width: 100%; z-index: 10000; padding: .6rem 0; transition: all var(--transition-fast); background: #000; color: #fff; }
.site-header.scrolled { padding: .35rem 0; background: rgba(0,0,0,.75); backdrop-filter: blur(12px) saturate(180%); border-bottom: 1px solid rgba(255,255,255,.08); }
.nav-wrap { min-height: 52px; display: flex; align-items: center; gap: 1.5rem; }
.brand img { height: 35px; width: auto; filter: invert(1); }
.main-nav { margin-left: auto; display: flex; align-items: center; gap: 1.25rem; }
.main-nav a { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; color: #fff; opacity: .8; }
.main-nav a:hover, .main-nav a.active { opacity: 1; }
.nav-cta { background: #fff !important; color: #000 !important; opacity: 1 !important; padding: .7rem 1.15rem; }
.nav-cta:hover { background: transparent !important; color: #fff !important; outline: 1px solid #fff; }
.nav-toggle { display: none; background: none; border: 0; margin-left: auto; color: #fff; cursor: pointer; }
.nav-toggle span { display: none; }
.nav-toggle i { display: block; font-style: normal; font-size: .7rem; letter-spacing: 2px; text-transform: uppercase; }
.reveal { opacity: 0; transform: translateY(36px); transition: opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo); }
.reveal.visible { opacity: 1; transform: none; }
.hero-section { position: relative; min-height: 92vh; display: flex; align-items: center; overflow: hidden; padding-top: 0; background: #000; color: #fff; }
.hero-video-bg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; }
.hero-carousel-bg .slide.active { opacity: 1; }
.hero-carousel-bg img { filter: grayscale(45%) contrast(.9) brightness(.55); opacity: 1; }
.hero-section .hero-video-overlay { background: linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.42) 58%, rgba(0,0,0,.62) 100%); }
.hero-content { position: relative; z-index: 2; padding: 7rem 0 6rem; max-width: 900px; }
.hero-section h1, .hero-section .hero-lead { color: #fff; }
.hero-section .eyebrow { color: #ccc; border-color: #fff; }
.hero-section .button.ghost { color: #fff; border-color: #fff; }
.hero-section .button.ghost:hover { background: #fff; color: #000; }
.hero-section .button.red:hover { background: #fff; color: #000; border-color: #fff; }
.hero-bg { position: absolute; inset: 0; pointer-events: none; }
.hero-video-bg { position: absolute; top: 0; right: 0; width: 55%; height: 100%; overflow: hidden; }
.hero-carousel-bg { position: absolute; inset: 0; }
.hero-carousel-bg .slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease; }
.hero-carousel-bg .slide.active { opacity: .28; }
.hero-carousel-bg img, .hero-carousel-bg video { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%) contrast(.85) brightness(1.15); }
.hero-video-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.88) 42%, rgba(255,255,255,.35) 100%); }
.hero-bg-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(0,0,0,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,.04) 1px, transparent 1px); background-size: 60px 60px; mask-image: radial-gradient(ellipse 80% 70% at 70% 40%, black 20%, transparent 75%); }
.hero-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 3rem; align-items: center; position: relative; z-index: 2; padding: 3rem 0 1rem; flex: 1; }
.hero-copy { max-width: 560px; }
.hero-eyebrow { display: flex; align-items: center; gap: 1rem; font-size: .7rem; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; color: #888; margin-bottom: 1.25rem; border: 0; padding: 0; }
.hero-eyebrow-line { width: 40px; height: 1px; background: #111; }

.animated-word-container { display: block; position: relative; height: 1.15em; margin: .1em 0; overflow: hidden; }
.animated-word { font-style: normal; font-weight: 700; color: #000; position: absolute; left: 0; top: 0; width: 100%; height: 100%; opacity: 0; transform: translateY(25px); transition: opacity .5s ease, transform .5s cubic-bezier(.19,1,.22,1); }
.animated-word.active { opacity: 1; transform: none; }
.animated-word::after { content: ""; position: absolute; left: 0; bottom: .1em; width: 100%; height: 3px; background: linear-gradient(90deg, #000, transparent); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hero-stage { position: relative; min-height: 420px; display: flex; align-items: center; justify-content: center; }
.hero-carousel { position: relative; width: 100%; min-height: 380px; }
.hero-slide { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: center; opacity: 0; transform: scale(.92) translateY(20px); transition: opacity .7s var(--ease-out-expo), transform .7s var(--ease-out-expo); pointer-events: none; }
.hero-slide.active { opacity: 1; transform: none; pointer-events: auto; }
.hero-slide img { max-height: 380px; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 30px 60px rgba(0,0,0,.18)); }
.hero-slide-label { position: absolute; bottom: 1.5rem; left: 1.5rem; padding: .6rem 1.25rem; background: rgba(255,255,255,.9); border: 1px solid rgba(0,0,0,.08); color: #111; font-size: 1.05rem; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; z-index: 4; }
.hero-slide-series { font-weight: 700; color: #555; font-size: .65rem; display: block; letter-spacing: 4px; margin-bottom: .15rem; }
.hero-carousel-nav { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); display: flex; gap: .35rem; background: rgba(0,0,0,.75); border: 1px solid #333; padding: .35rem; z-index: 5; }
.hero-carousel-btn { padding: .5rem .9rem; background: transparent; border: 0; color: #888; font-family: var(--font-main); font-size: .65rem; font-weight: 700; letter-spacing: 1px; cursor: pointer; text-transform: uppercase; }
.hero-carousel-btn.active, .hero-carousel-btn:hover { background: #fff; color: #000; }
.hero-bottom { position: relative; z-index: 2; border-top: 1px solid rgba(0,0,0,.08); background: rgba(255,255,255,.85); backdrop-filter: blur(12px); }
.hero-bottom-inner { display: flex; align-items: stretch; gap: 2rem; padding: 1.25rem 0; }
.hero-stats { display: flex; flex: 1; }
.hero-stat { flex: 1; padding: 0 2rem; border-right: 1px solid rgba(0,0,0,.08); }
.hero-stat:first-child { padding-left: 0; }
.hero-stat:last-child { border-right: 0; }
.hero-stat .stat-num { font-size: 2rem; font-weight: 900; line-height: 1; }
.hero-stat-label { display: block; font-size: .6rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #777; margin-top: .35rem; }
.scroll-hint { position: absolute; bottom: 6.5rem; left: 2rem; z-index: 3; display: flex; flex-direction: column; gap: .5rem; color: #666; font-size: .65rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; animation: bounceHint 2s ease-in-out infinite; }
@keyframes bounceHint { 0%,100% { transform: translateY(0); } 50% { transform: translateY(8px); } }

.cap-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.25rem; margin-bottom: 2rem; }
.cap-card { background: #111; border: 1px solid var(--border-dark); padding: 2.25rem 1.75rem; color: #fff; transition: all var(--transition-slow); }
.cap-card:hover { background: #222; transform: translateY(-6px); }
.cap-card span { display: block; font-size: .7rem; font-weight: 700; letter-spacing: 3px; color: #888; margin-bottom: 1rem; }
.cap-card h3 { margin-bottom: .75rem; }
.cap-card p { color: #aaa; font-weight: 300; font-size: .95rem; }
.triple-machines { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 2rem; }
.machine-show { margin: 0; background: #fff; border: 1px solid var(--border-light); overflow: hidden; transition: transform var(--transition-spring); }
.machine-show:hover { transform: translateY(-6px); }
.machine-show img, .machine-show-photo { width: 100%; height: 240px; object-fit: contain; background: linear-gradient(180deg,#f7f7f7,#fff); padding: 1.25rem; filter: grayscale(20%); transition: filter .5s, transform .7s var(--ease-out-expo); }
.machine-show:hover img { filter: grayscale(0); transform: scale(1.04); }
.machine-show figcaption { padding: 1.1rem 1.25rem; border-top: 1px solid var(--border-light); }
.machine-show b, .machine-show span { display: block; }
.machine-show b { text-transform: uppercase; letter-spacing: 1px; }
.machine-show span { margin-top: .2rem; color: #777; font-size: .8rem; font-weight: 300; }
.reference-row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--border-light); }
.reference-row > span { font-size: .65rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #888; margin-right: .5rem; }
.reference-row a { padding: .65rem 1rem; border: 1px solid var(--border-light); background: #fff; font-size: .72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.reference-row a:hover { background: #000; color: #fff; border-color: #000; }
.black .reference-row, .speed-section .reference-row, .chip-video-section .reference-row { border-top-color: #333; }
.black .reference-row a, .speed-section .reference-row a, .chip-video-section .reference-row a { background: #111; border-color: #333; color: #ddd; }
.black .reference-row a:hover, .speed-section .reference-row a:hover { background: #fff; color: #000; }
.removal-grid, .dypec-grid, .precision-layout, .contact-panel { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3.5rem; align-items: center; }
.taper-layout { display: grid; grid-template-columns: 1fr .72fr 1fr; gap: 1rem; align-items: stretch; }
.big-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border-light); border: 1px solid var(--border-light); margin: 1.5rem 0; }
.big-specs div { background: #fff; padding: 1.25rem; }
.big-specs b, .big-specs span { display: block; }
.big-specs b { font-size: 1.35rem; }
.big-specs span { margin-top: .25rem; color: #777; font-size: .75rem; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; }
.benefit-list { display: grid; gap: .75rem; }
.benefit-list div { padding: 1.1rem 1.25rem; background: #fff; border-left: 3px solid #000; transition: transform var(--transition-fast), box-shadow var(--transition-fast); }
.benefit-list div:hover { transform: translateX(6px); box-shadow: 0 4px 20px rgba(0,0,0,.06); }
.benefit-list b, .benefit-list span { display: block; }
.benefit-list span { color: #777; font-size: .86rem; font-weight: 300; }
.slideshow, .carousel, .media-frame, .vertical-video, .cycle-video, .workpiece-stage, .dypec-visual { position: relative; overflow: hidden; min-height: 270px; background: #0a0a0a; border: 1px solid var(--border-light); }
.slideshow .slide, .carousel .slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s ease, transform 1.2s var(--ease-out-expo); transform: scale(1.04); }
.slideshow .slide.active, .carousel .slide.active { opacity: 1; transform: none; position: relative; }
.slideshow img, .carousel img, .slideshow video, .carousel video, .media-frame img, .vertical-video img, .cycle-video img, .cycle-video video, .workpiece-stage img, .dypec-visual img { width: 100%; height: 420px; object-fit: cover; display: block; filter: grayscale(30%); }
.slideshow .slide-photo { width: 100%; height: 270px; object-fit: contain; background: #f7f7f7; padding: 1rem; filter: grayscale(15%); }
.slide-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.25rem 1.5rem; background: linear-gradient(transparent, rgba(0,0,0,.85)); color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.carousel-dots { position: absolute; bottom: 1rem; right: 1rem; display: flex; gap: .4rem; z-index: 3; }
.carousel-dots button { width: 8px; height: 8px; border: 0; background: rgba(255,255,255,.35); cursor: pointer; }
.carousel-dots button.active { background: #fff; }
.carousel-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.2); background: rgba(0,0,0,.45); color: #fff; cursor: pointer; z-index: 4; }
.carousel-prev { left: .75rem; } .carousel-next { right: .75rem; }

.taper-card { border: 1px solid var(--border-light); background: #fff; padding: 2rem; }
.taper-card h3 { margin-bottom: 1.25rem; }
.spec-top { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; margin-bottom: 1.5rem; }
.spec-top div, .spec-cell { padding: .9rem .75rem; border-top: 1px solid var(--border-light); }
.spec-top b, .spec-cell strong, .spec-top span, .spec-cell small { display: block; }
.spec-top span, .spec-cell small { color: #777; font-size: .68rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.spec-top b, .spec-cell strong { margin-top: .25rem; font-size: .95rem; }
.materials-core { display: flex; flex-direction: column; justify-content: center; gap: .75rem; margin: 0; }
.material-card { display: grid; grid-template-columns: 92px 1fr; gap: 1rem; align-items: center; border: 1px solid var(--border-light); background: var(--bg-gray); overflow: hidden; }
.material-pic { height: 92px; background-size: cover; background-position: center; filter: grayscale(40%); }
.material-card div { padding-right: 1rem; }
.material-card b { display: block; text-transform: uppercase; letter-spacing: 1px; font-size: .85rem; }
.material-card p { color: #666; font-size: .82rem; font-weight: 300; }
.fiveaxis-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 1.25rem; }
.vt-machines { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.machine-tile { border: 1px solid #333; background: #111; overflow: hidden; }
.machine-tile img, .machine-tile-photo { width: 100%; height: 160px; object-fit: contain; background: #0a0a0a; padding: .75rem; }
.machine-tile figcaption, .machine-tile span { display: block; padding: .85rem 1rem; font-size: .75rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.dypec-points { display: grid; gap: .85rem; margin: 1.5rem 0; }
.dypec-points div { padding: 1.15rem 1.25rem; background: var(--bg-gray); border-left: 3px solid #000; }
.dypec-points b, .dypec-points span { display: block; }
.dypec-points span { color: #666; font-size: .88rem; font-weight: 300; }
.precision-hero-specs, .speed-dashboard { display: grid; grid-template-columns: repeat(4,1fr); gap: .75rem; }
.precision-hero-specs div, .speed-card { padding: 1.5rem 1.25rem; background: #fff; border: 1px solid var(--border-light); }
.precision-hero-specs b, .speed-card strong { display: block; font-size: 1.65rem; letter-spacing: -.03em; margin-bottom: .5rem; }
.precision-hero-specs span, .speed-card span, .speed-card small { display: block; color: #777; font-size: .72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.precision-tech { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 1.25rem; }
.precision-tech div { border-top: 1px solid var(--border-light); padding: 1rem .4rem .6rem; }
.precision-tech b, .precision-tech span { display: block; }
.precision-tech span { margin-top: .3rem; color: #666; font-size: .84rem; font-weight: 300; }
.precision-probe-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.precision-probe-gallery figure { margin: 0; border: 1px solid var(--border-light); overflow: hidden; background: #fff; }
.precision-probe-gallery img { width: 100%; height: 220px; object-fit: cover; filter: grayscale(50%); transition: filter .5s, transform .7s var(--ease-out-expo); }
.precision-probe-gallery figure:hover img { filter: grayscale(0); transform: scale(1.06); }
.precision-probe-gallery figcaption { padding: 1rem 1.1rem; }
.precision-probe-gallery figcaption b, .precision-probe-gallery figcaption span { display: block; }
.precision-probe-gallery figcaption span { margin-top: .2rem; font-size: .78rem; color: #666; font-weight: 300; }
.precision-probe-gallery .probe-wide { grid-column: 1/-1; }
.precision-disclaimer { margin-top: 1.5rem; padding: 1.1rem 1.25rem; border-left: 3px solid #000; background: var(--bg-gray); font-size: .84rem; color: #5f5f5f; font-weight: 300; }
.speed-section { background: #0a0a0a; color: #fff; }
.speed-card { background: #fff; color: #111; border-color: var(--border-light); min-height: 150px; }
.speed-card strong { color: #111; }
.speed-card span, .speed-card small { color: #555; }
.speed-card.primary { background: #fff; color: #000; }
.speed-card.primary span, .speed-card.primary small { color: #555; }
.speed-two-col { display: grid; grid-template-columns: 1.25fr .75fr; gap: 1.25rem; margin-top: 1.5rem; }
.speed-process, .rotary-speed { border: 1px solid #333; padding: 1.5rem; background: #111; }
.speed-process h3, .rotary-speed h3 { margin-bottom: 1.1rem; }
.speed-flow { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.speed-flow div { flex: 1 1 120px; min-height: 86px; padding: .9rem; background: #1a1a1a; }
.speed-flow b, .speed-flow span { display: block; }
.speed-flow span { margin-top: .25rem; color: #999; font-size: .75rem; font-weight: 300; }
.speed-flow i { color: #fff; font-style: normal; font-weight: 700; }
.rotary-speed { display: grid; align-content: start; gap: .5rem; }
.rotary-speed > div { padding-top: .75rem; border-top: 1px solid #303030; }
.rotary-speed b, .rotary-speed span { display: block; }
.rotary-speed span { margin-top: .15rem; color: #999; font-size: .83rem; font-weight: 300; }

.chip-video-section { position: relative; min-height: 640px; color: #fff; overflow: hidden; background: #000; }
.diag-media { position: absolute; inset: 0; }
.diag-media img, .diag-media video { width: 100%; height: 100%; object-fit: cover; filter: grayscale(40%) brightness(.45); }
.diag-media.left { clip-path: polygon(0 0, 58% 0, 42% 100%, 0 100%); }
.diag-media.right { clip-path: polygon(58% 0, 100% 0, 100% 100%, 42% 100%); }
.diag-label { position: absolute; bottom: 1.5rem; padding: .65rem 1rem; background: rgba(0,0,0,.65); border: 1px solid #333; font-size: .65rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.diag-media.left .diag-label { left: 1.5rem; }
.diag-media.right .diag-label { right: 1.5rem; }
.chip-content { position: relative; z-index: 2; max-width: 720px; padding: 4rem 0; }
.chip-content h2 { color: #fff; }
.tool-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: .75rem; }
.tool-grid article { border: 1px solid var(--border-light); background: #fff; padding: 1.25rem 1rem; min-height: 140px; transition: transform var(--transition-fast), box-shadow var(--transition-fast); }
.tool-grid article:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,.06); }
.tool-grid span { display: block; font-size: .65rem; font-weight: 700; letter-spacing: 2px; color: #888; margin-bottom: .7rem; }
.tool-grid h3 { font-size: .92rem; margin-bottom: .35rem; }
.tool-grid p { color: #666; font-size: .8rem; font-weight: 300; }
.size-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.size-grid article { background: #fff; border: 1px solid var(--border-light); overflow: hidden; transition: transform var(--transition-spring); }
.size-grid article:hover { transform: translateY(-6px); }
.size-grid img, .size-photo { width: 100%; height: 220px; object-fit: cover; filter: grayscale(40%); transition: filter .5s, transform .7s var(--ease-out-expo); }
.size-grid article:hover img { filter: grayscale(0); transform: scale(1.06); }
.size-grid article > div { padding: 1.35rem 1.4rem; }
.size-grid small { display: block; font-size: .65rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #888; margin-bottom: .4rem; }
.size-grid p { color: #666; font-weight: 300; margin-top: .4rem; }
.selector-table { width: 100%; border-collapse: collapse; }
.selector-table th, .selector-table td { padding: 1rem; text-align: left; border-bottom: 1px solid #222; font-size: .88rem; }
.selector-table th { background: #111; font-weight: 700; text-transform: uppercase; font-size: .72rem; letter-spacing: 1px; }
.sel-row:hover td { background: #151515; }

.spec-top-bar { display: block; margin-bottom: 2rem; }
.catalog-card { display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; width: 100%; max-width: none; margin-top: 1.5rem; padding: 1.35rem 1.5rem; border: 1px solid var(--border-light); background: #fff; }
.catalog-card img { display: none; }
.catalog-card b, .catalog-card span { display: block; }
.catalog-card span { color: #666; font-size: .9rem; font-weight: 300; margin: .35rem 0 0; }
.size-section .size-grid { margin-top: 0.5rem; }
.size-section .size-grid article { padding-top: 0; }
.machine-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.machine-filter button { padding: .85rem 1.25rem; background: #fff; border: 1px solid var(--border-light); color: #000; font-family: var(--font-main); font-weight: 700; text-transform: uppercase; letter-spacing: 1px; font-size: .72rem; cursor: pointer; }
.machine-filter button:hover, .machine-filter button.active { background: #000; color: #fff; border-color: #000; }
.machine-stack { display: grid; gap: .65rem; }
.machine-panel { border: 1px solid var(--border-light); background: #fff; }
.machine-panel[open] { border-color: #000; }
.machine-panel summary { display: grid; grid-template-columns: 48px 1fr auto auto; gap: 1rem; align-items: center; padding: 1.1rem 1.25rem; cursor: pointer; list-style: none; }
.machine-panel summary::-webkit-details-marker { display: none; }
.machine-panel .num { font-weight: 700; letter-spacing: 2px; font-size: .75rem; color: #888; }
.machine-panel .title b { display: block; text-transform: uppercase; letter-spacing: 1px; }
.machine-panel .title small { color: #777; font-size: .72rem; letter-spacing: 1px; text-transform: uppercase; }
.summary-chips { display: flex; gap: .4rem; flex-wrap: wrap; }
.summary-chips em { font-style: normal; font-size: .68rem; font-weight: 700; padding: .35rem .55rem; border: 1px solid var(--border-light); background: var(--bg-gray); }
.plus { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #000; font-weight: 700; transition: transform var(--transition-fast); }
.machine-panel[open] .plus { transform: rotate(45deg); background: #000; color: #fff; }
.machine-panel-body { display: grid; grid-template-columns: .85fr 1.15fr; gap: 1.5rem; padding: 1.25rem; border-top: 1px solid var(--border-light); }
.machine-panel-photo { width: 100%; height: 280px; object-fit: contain; background: var(--bg-gray); border: 1px solid var(--border-light); padding: 1rem; }
.machine-panel-photo.ph { display: flex; flex-direction: column; align-items: center; justify-content: center; color: #777; }
.mini-link { display: inline-block; margin-top: .75rem; font-size: .72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; border-bottom: 1px solid #000; }
.spec-grid { display: grid; grid-template-columns: repeat(3,1fr); }
.parts-under { margin-top: 1.25rem; }
.mini-heading { font-size: .68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #888; margin-bottom: .75rem; }
.part-box-row { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; }
.part-art { display: none; }
.part-box { border: 1px solid var(--border-light); background: var(--bg-gray); min-height: 0; display: block; padding: 0.85rem 0.9rem; font-size: .75rem; font-weight: 700; }
.contact-section { background: var(--bg-gray); }
.contact-panel { background: #fff; border: 1px solid var(--border-light); padding: 3rem; align-items: start; }
.send-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.send-tags span { padding: .55rem .85rem; border: 1px solid var(--border-light); font-size: .68rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; background: var(--bg-gray); }
form label { display: block; margin-bottom: 1.25rem; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
form input, form select, form textarea { width: 100%; padding: 1rem; background: #fff; border: 1px solid var(--border-light); color: #000; font-family: var(--font-main); border-radius: 0; margin-top: .45rem; font-weight: 400; text-transform: none; letter-spacing: 0; }
form input:focus, form select:focus, form textarea:focus { outline: none; border-color: #000; }
.upload-disabled small { display: block; margin-top: .4rem; color: #888; font-weight: 300; text-transform: none; letter-spacing: 0; }

footer { background: unset; padding: unset; border-top: unset; color: unset; }
.footer-grid, .footer-inner { display: unset; grid-template-columns: unset; gap: unset; margin-bottom: unset; align-items: unset; }
.footer-col p { color: unset; font-weight: unset; letter-spacing: unset; margin-bottom: unset; text-transform: unset; font-size: unset; }
.footer-links { display: unset; flex-direction: unset; gap: unset; }
.footer-links a, .footer-inner a { color: unset; font-weight: unset; font-size: unset; }
.footer-links a:hover { color: unset; }
.footer-bottom { text-align: unset; color: unset; font-size: unset; font-weight: unset; padding-top: unset; border-top: unset; }
footer .logo img, footer img { height: unset; width: unset; filter: none; margin-bottom: unset; }
footer .brand-blurb { color: #aaa; font-size: .9rem; max-width: 300px; font-weight: 300; }
.toast { position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%) translateY(20px); background: #000; color: #fff; padding: 1rem 1.5rem; font-size: .8rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; opacity: 0; pointer-events: none; transition: .3s var(--ease-out-expo); z-index: 30000; max-width: min(520px, calc(100% - 2rem)); text-align: center; }
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.h-scroll-wrap { overflow-x: auto; padding: .5rem 0 1.5rem; cursor: grab; }
.h-scroll-wrap::-webkit-scrollbar { height: 6px; }
.h-scroll-wrap::-webkit-scrollbar-thumb { background: #444; }
.h-scroll-track { display: flex; gap: 1.25rem; width: max-content; }
.h-scroll-card { flex: 0 0 340px; position: relative; overflow: hidden; border: 1px solid var(--border-dark); }
.h-scroll-card img { width: 100%; height: 240px; object-fit: cover; filter: grayscale(40%); transition: filter .5s, transform .6s var(--ease-out-expo); }
.h-scroll-card:hover img { filter: grayscale(0); transform: scale(1.08); }
.h-scroll-card .card-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.25rem; background: linear-gradient(transparent, rgba(0,0,0,.9)); color: #fff; }
.h-scroll-card .card-caption h4 { font-size: .85rem; margin-bottom: .2rem; }
.h-scroll-card .card-caption p { font-size: .78rem; color: #aaa; font-weight: 300; }
.cycle-video-inner, .vertical-video-inner, .bg-video-label, .probe-placeholder { min-height: 280px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #aaa; padding: 2rem; }
@media (max-width: 1100px) {
  .hero-layout, .removal-grid, .dypec-grid, .precision-layout, .taper-layout, .contact-panel, .fiveaxis-grid, .speed-two-col, .machine-panel-body, .footer-grid, .footer-inner { grid-template-columns: 1fr; }
  .materials-core { display: grid; grid-template-columns: 1fr; }
  .hero-video-bg { width: 100%; }
  .hero-video-overlay { background: linear-gradient(#fff, rgba(255,255,255,.88)); }
  .cap-grid, .triple-machines, .precision-hero-specs, .speed-dashboard, .size-grid { grid-template-columns: 1fr 1fr; }
  .tool-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #000; flex-direction: column; align-items: flex-start; padding: 1.5rem 2rem 2rem; gap: 1.1rem; border-top: 1px solid #222; }
  body.nav-open .main-nav { display: flex; }
  .nav-toggle { display: block; }
  .shell { width: min(var(--shell), calc(100% - 2rem)); }
  .section { padding: 4.5rem 0; }
  .cap-grid, .triple-machines, .precision-hero-specs, .speed-dashboard, .size-grid, .spec-top, .spec-grid, .part-box-row, .form-row, .precision-tech, .precision-probe-gallery, .vt-machines { grid-template-columns: 1fr; }
  .machine-panel summary { grid-template-columns: 36px 1fr auto; }
  .summary-chips { display: none; }
  .hero-bottom-inner, .hero-stats { flex-direction: column; }
  .diag-media.left, .diag-media.right { clip-path: none; height: 50%; }
  .diag-media.right { top: 50%; }
  .chip-video-section { min-height: 820px; }
  .contact-panel { padding: 1.5rem; }
}

.selector-table { display: grid; gap: 0; border: 1px solid #222; }
.sel-head, .sel-row { display: grid; grid-template-columns: 1.1fr 1.4fr .9fr 1.1fr; gap: 1rem; padding: 1rem 1.15rem; border-bottom: 1px solid #222; }
.sel-head { background: #111; font-size: .72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #888; }
.sel-row { font-size: .88rem; font-weight: 300; color: #ccc; }
.sel-row:hover { background: #151515; }
.sel-row span:first-child, .sel-head span:first-child { color: #fff; font-weight: 700; }
.precision-hero-specs article, .speed-dashboard article { padding: 1.5rem 1.25rem; background: #fff; border: 1px solid var(--border-light); }
.precision-hero-specs article strong, .speed-dashboard article strong { display: block; font-size: 1.65rem; margin-bottom: .5rem; }
.precision-hero-specs article span, .speed-dashboard article span, .precision-hero-specs article small, .speed-dashboard article small { display: block; color: #777; font-size: .72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.tool-grid article div { font-size: .65rem; font-weight: 700; letter-spacing: 2px; color: #888; margin-bottom: .7rem; }
.tool-grid article b { display: block; text-transform: uppercase; letter-spacing: 1px; margin-bottom: .25rem; }
.tool-grid article span { color: #666; font-size: .8rem; font-weight: 300; text-transform: none; letter-spacing: 0; }
.size-grid article span { display: block; color: #666; font-weight: 300; margin-top: .4rem; }
.slideshow video, .cycle-video video { width: 100%; height: 420px; object-fit: cover; display: block; }
.footer-inner { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 3rem; }
@media (max-width: 1100px) {
  .sel-head, .sel-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .sel-head { display: none; }
  .sel-row { grid-template-columns: 1fr; }
}

/* Live-site integration. Keeps the shared header, utility bar and footer intact. */
body.aero-page .hero-section {
  min-height: calc(92vh - var(--md-utility-h, 36px));
  padding-top: calc(72px + var(--md-utility-h, 36px));
}
body.aero-page .site-header { display: none; }
body.aero-page > #header .nav-toggle,
body.aero-page header#header .nav-toggle { display: flex; }
body.aero-page h1 .unit-val,
body.aero-page h2 .unit-val,
body.aero-page .precision-hero-specs article strong .unit-val,
body.aero-page .speed-dashboard article strong .unit-val,
body.aero-page .big-specs strong .unit-val,
body.aero-page .spec-cell strong .unit-val {
  display: inline;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: none;
}
body.aero-page #quoteForm label {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: .85rem 0 .35rem;
}
body.aero-page #quoteForm input,
body.aero-page #quoteForm select,
body.aero-page #quoteForm textarea {
  width: 100%;
  border: 1px solid #ccc;
  background: #fff;
  color: #111;
  padding: .75rem .8rem;
  font: inherit;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
body.aero-page #quoteForm .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
body.aero-page #quoteForm small {
  display: block;
  margin-top: .35rem;
  color: #777;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
@media (max-width: 860px) {
  body.aero-page #quoteForm .form-row { grid-template-columns: 1fr; }
}

