/* Rev04 / Industrial Precision. Local type, real CAD, conceptual service art.
   Loaded last: replaces Rev03's light/orange skin without changing action code. */
:root {
  --bg:#111719; --surface:#1a2226; --stage:#1a1d22;
  --ink:#eff3f2; --muted:#b8c5cb; --line:#43545d;
  --accent:#b0e0e8; --signal:#b0e0e8;
  color-scheme:dark;
}
body { background:var(--bg); color:var(--ink); }
h1,h2,h3 { font-weight:500; letter-spacing:-.045em; }
h2 { font-size:clamp(32px,3.5vw,48px); line-height:1.12; }
.eyebrow,.route-label { color:var(--accent); font-weight:500; letter-spacing:.075em; }
.section { padding-block:88px; }
.button,nav .nav-contact {
  background:var(--accent); color:#111719; border-color:var(--accent);
  border-radius:3px; font-weight:500;
}
.button:hover,nav .nav-contact:hover { background:#d1f0f5; border-color:#d1f0f5; color:#111719; }
.text-link { text-decoration-color:#708b96; }
.text-link:hover { color:var(--accent); }
.site-header,.site-footer {
  --ink:#eff3f2; --muted:#b8c5cb; --accent:#b0e0e8;
  background:#1b1b1b; color:var(--ink);
}
.site-header { border-bottom:1px solid #35434a; }
.nav-wrap { height:84px; }
.brand { width:218px; }
nav a { font-size:14px; }
nav .nav-contact { padding:12px 18px; }

/* Editorial introduction; the parent-owned process study occupies the right. */
.hero {
  grid-template-columns:1fr 1fr; gap:42px 56px;
  align-items:center; padding-top:48px; padding-bottom:42px;
}
.hero-copy { grid-column:1; grid-row:1; min-width:0; }
.hero .eyebrow { font-size:12px; margin-bottom:22px; max-width:none; }
.hero h1 { font-size:clamp(46px,4.7vw,66px); line-height:1.06; letter-spacing:-.06em; font-weight:500; }
.hero h1 span,.contact-copy h2 span { color:var(--accent); }
.hero-lead { font-size:22px; line-height:1.4; margin:22px 0 14px; max-width:34ch; }
.hero-description { font-size:18px; line-height:1.55; color:var(--muted); max-width:44ch; margin-bottom:0; }
.hero-actions { display:flex; margin-top:24px; gap:22px; }
.hero-actions .button { padding:13px 18px; }
.hero-location { display:block; color:var(--muted); margin:18px 0 0; font-size:14px; }
.process-slot { grid-column:2; grid-row:1; min-width:0; align-self:stretch; }
.service-entry { grid-column:1/-1; grid-row:2; min-width:0; align-self:auto; }
.service-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:18px; }
.service-heading h2 { font-size:23px; letter-spacing:-.025em; }
.service-heading>span { display:block; font-size:14px; color:var(--muted); }
.primary-services { grid-template-columns:1fr 1fr; gap:20px; }

/* Real layout tracks reserve illustration space, including enlarged hover art.
   No absolute-positioned text/art collision and no overflow mask as a repair. */
.service-choice {
  --ink:#eff3f2; --muted:#b8c5cb; --accent:#b0e0e8;
  display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:22px;
  min-height:266px; padding:26px; overflow:visible;
  background:var(--surface); border:1px solid var(--line); border-radius:4px;
  color:var(--ink); box-shadow:none;
}
.service-choice[aria-pressed=true] { border-color:var(--accent); }
.service-choice .service-copy { width:auto; min-width:0; gap:9px; }
.service-choice strong { font-size:30px; line-height:1.15; font-weight:500; letter-spacing:-.035em; }
.service-choice .route-label { font-size:10px; color:var(--accent); letter-spacing:.075em; }
.service-choice .service-description { font-size:16px; line-height:1.45; color:var(--muted); max-width:25ch; }
.service-choice .service-action { font-size:14px; line-height:1.5; color:var(--accent); gap:14px; margin-top:10px; }
.device-stage {
  position:relative; inset:auto; width:100%; min-width:0; height:210px;
  display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr);
  place-items:center; pointer-events:none;
}
.device-stage::before { background:radial-gradient(circle,#b0e0e812,transparent 68%); }
.service-device { width:100%; height:100%; max-height:none; object-fit:contain; transform-origin:50% 55%; }
.service-choice:focus-visible { outline:3px solid var(--accent); outline-offset:5px; box-shadow:none; }
.service-choice:focus-visible .service-device { transform:translateY(-3px) scale(1.05); }
@media(hover:hover) and (pointer:fine) {
  .service-choice:not(:disabled):hover { background:#202c31; border-color:var(--accent); box-shadow:0 12px 28px #0003; }
  .service-choice:not(:disabled):hover .service-device {
    transform:translate3d(var(--device-x,0px),calc(var(--device-y,0px) - 4px),0) rotateX(var(--device-rx,0deg)) rotateY(var(--device-ry,0deg)) scale(1.07);
    filter:drop-shadow(0 12px 10px #0007) brightness(1.09);
  }
}
.other-routes { margin-top:10px; }
.other-routes>summary { color:var(--muted); font-size:15px; font-weight:400; }
.secondary-services p { color:var(--muted); font-size:15px; }
.secondary-services button { --accent:#b0e0e8; background:var(--surface); color:var(--ink); border-color:var(--line); border-radius:3px; }
.secondary-services button:hover,.secondary-services button[aria-pressed=true] { border-color:var(--accent); }
.secondary-services button img { width:96px; height:72px; }
.no-script { color:var(--muted); }
.no-script a { color:var(--accent); text-decoration:underline; }

/* Portfolio is evidence, not a gallery of claimed manufactured products. */
.work-section { background:var(--surface); border-block:1px solid #35434a; }
.section-heading { grid-template-columns:1.1fr 1fr; gap:64px; margin-bottom:32px; }
.section-heading>p { color:var(--muted); font-size:17px; max-width:49ch; }
.filters button { background:transparent; color:var(--ink); border-color:#617580; border-radius:3px; font-size:14px; }
.filters button.active { background:var(--accent); color:var(--bg); border-color:var(--accent); }
.filters button.active span { color:var(--bg); }
.filters button:not(.active):hover { background:#253239; border-color:var(--accent); }
#result-count { color:var(--muted); }
.project-bench {
  --bg:#111719; --surface:#1a2226; --ink:#eff3f2; --muted:#b8c5cb; --accent:#b0e0e8;
  grid-template-columns:1.45fr 1fr; background:var(--bg); color:var(--ink);
  border:1px solid #43545d; border-radius:4px; box-shadow:none;
}
.project-detail { padding:32px; }
.project-detail h3 { font-size:30px; font-weight:500; }
.project-detail .eyebrow,.project-detail .text-link:hover { color:var(--accent); }
.project-detail>p:not(.eyebrow),.project-detail dd { color:var(--muted); }
.inspection-heading { font-size:11px; color:var(--muted); }
.model-stage { height:390px; }
.stage-controls { border-color:var(--line); }
.outline-button,.project-bench .outline-button,.draft-actions .outline-button { color:var(--accent); border-color:#8aacb8; border-radius:3px; }
.outline-button:hover,.project-bench .outline-button:hover,.draft-actions .outline-button:hover { background:#293b43; }
.project-choice { background:var(--bg); color:var(--ink); border:1px solid #43545d; border-radius:3px; }
.project-choice[aria-pressed=true] { border-color:var(--accent); box-shadow:inset 0 -2px var(--accent); }
.project-choice:hover { background:#26363e; border-color:#8aacb8; }
.project-choice img { height:150px; }
.choice-name { color:var(--ink); font-size:15px; padding:16px 18px; }

.approach,.workshop-layout { gap:80px; }
.approach-intro>p:not(.eyebrow),.process-list p { color:var(--muted); }
.process-list li { border-color:var(--line); padding-block:24px; }
.process-list li>span { color:var(--accent); font-weight:400; }
.process-list h3 { font-size:23px; }
.workshop-band { --ink:#eff3f2; --muted:#b8c5cb; --accent:#b0e0e8; background:var(--surface); color:var(--ink); border-block:1px solid #35434a; padding-block:64px; }
.workshop-layout h2 { font-size:clamp(32px,3.5vw,46px); }
.workshop-layout .muted { color:var(--muted); }
.contact-section { background:var(--bg); }
.contact-layout { gap:80px; }
.contact-copy h2 { font-size:clamp(36px,4vw,52px); }
.contact-copy>p:not(.eyebrow),.privacy-note { color:var(--muted); }
.email-link { color:var(--accent); font-size:24px; }
.email-link:hover { color:#d1f0f5; }
.privacy-note { border-color:var(--line); }
.privacy-note strong { color:var(--ink); }
input,select,textarea { background:var(--surface); color:var(--ink); border-color:#8398a3; border-radius:3px; font-size:17px; }
input::placeholder,textarea::placeholder { color:#b4c2ca; }
label { font-weight:400; font-size:15px; }
label span,.field-hint,.form-status,.route-summary p { color:var(--muted); }
.form-status.error { color:#ffc6b8; }
[aria-invalid=true] { border-color:#ffc6b8; }
.button[aria-disabled=true] { color:var(--muted); background:transparent; border-color:var(--line); }
.site-footer { border-top:1px solid #35434a; padding-block:32px; }
.site-footer p { color:var(--muted); }
.site-footer .text-link { color:var(--ink); }
.site-footer .text-link:hover { color:var(--accent); }
.prose { color:var(--ink); padding-block:56px 80px; }
.prose>p { color:var(--muted); }
.prose a { color:var(--accent); text-underline-offset:4px; }
.prose h1 { font-weight:500; line-height:1.12; }
.prose h2 { letter-spacing:-.025em; }
.prose .button { color:var(--bg); text-decoration:none; }
.error-page { min-height:calc(100svh - 190px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }

@media(max-width:1100px) {
  .hero { gap:32px; padding-top:38px; }
  .hero h1 { font-size:52px; }
  .service-choice { padding:22px; min-height:256px; }
  .service-choice strong { font-size:27px; }
  .service-choice .service-description { font-size:16px; }
  .device-stage { height:210px; }
  .contact-layout,.approach,.workshop-layout { gap:44px; }
}
@media(min-width:761px) and (max-width:980px) {
  .hero { grid-template-columns:1fr 1fr; gap:32px 28px; }
  .hero h1 { font-size:44px; }
  .hero-lead { font-size:20px; }
  .hero-actions { gap:12px; }
  .service-choice { grid-template-columns:1fr; gap:0; align-content:start; padding:24px; }
  .service-choice .service-copy { width:auto; grid-row:2; }
  .device-stage { grid-row:1; height:208px; margin-bottom:18px; }
  .service-choice .route-label { font-size:10px; }
  .section { padding-block:68px; }
  .section-heading { gap:36px; }
  .project-detail { padding:24px; }
  .project-detail h3 { font-size:26px; }
  .model-stage { height:350px; }
}
@media(max-width:760px) {
  .section { padding-block:56px; }
  .nav-wrap { height:72px; }
  .brand { width:195px; }
  .site-header nav { --ink:#eff3f2; --accent:#b0e0e8; top:72px; background:var(--surface); color:var(--ink); border-color:var(--line); }
  .menu-toggle:not([hidden]) { color:var(--ink); border-color:#8398a3; border-radius:3px; }
  .hero { grid-template-columns:minmax(0,1fr); gap:24px; padding-top:28px; padding-bottom:32px; }
  .hero-copy { grid-column:1; grid-row:1; }
  .hero .eyebrow { font-size:11px; margin-bottom:14px; letter-spacing:.055em; }
  .hero h1 { font-size:clamp(36px,9.5vw,46px); line-height:1.06; }
  .hero-description { font-size:17px; line-height:1.45; margin:18px 0 0; max-width:48ch; }
  .hero-actions,.hero-location,.hero-lead { display:none; }
  .service-entry { grid-column:1; grid-row:2; }
  .process-slot { grid-column:1; grid-row:3; }
  .service-heading { margin-bottom:14px; }
  .service-heading h2 { font-size:21px; }
  .service-heading>span { display:none; }
  .primary-services { grid-template-columns:1fr; gap:12px; }
  .service-choice { grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:10px; padding:18px; min-height:174px; }
  .service-choice .service-copy { width:auto; gap:7px; }
  .service-choice strong { font-size:26px; }
  .service-choice .route-label { display:none; }
  .service-choice .service-description { font-size:15px; line-height:1.35; }
  .service-choice .service-action { font-size:13px; margin-top:5px; gap:9px; }
  .device-stage { width:100%; height:138px; margin:0; inset:auto; }
  .service-device { max-height:none; }
  .other-routes { margin-top:8px; }
  .secondary-services { align-items:stretch; }
  .secondary-services button { flex:1 1 220px; justify-content:flex-start; }
  .section-heading { grid-template-columns:1fr; gap:20px; }
  .section-heading>p { font-size:17px; }
  .project-bench { grid-template-columns:minmax(0,1fr); }
  .project-detail { padding:24px; }
  .project-detail h3 { font-size:27px; }
  .model-stage { height:330px; }
  .project-choice img { height:126px; }
  .choice-name { padding:12px; font-size:14px; }
  .approach,.workshop-layout,.contact-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
  .workshop-band { padding-block:44px; }
  .contact-copy h2 { font-size:40px; }
  .email-link { font-size:23px; }
  .site-footer { padding:28px 20px; gap:22px; }
  .prose { padding-block:32px 56px; }
  .prose h1 { font-size:34px; }
}
@media(max-width:360px) {
  .brand { width:177px; }
  .hero { padding-top:24px; gap:22px; }
  .hero h1 { font-size:36px; }
  .hero-description { font-size:16px; margin-top:16px; }
  .service-heading h2 { font-size:20px; }
  .service-choice { padding:14px; gap:8px; min-height:176px; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
  .service-choice strong { font-size:23px; }
  .service-choice .service-description { font-size:15px; }
  .service-choice .service-action { font-size:12px; gap:7px; }
  .device-stage { height:130px; }
  .model-stage { height:290px; }
  .contact-copy h2 { font-size:36px; }
  .email-link { font-size:21px; }
}
@media(prefers-reduced-motion:reduce) {
  .service-choice .service-device,.service-choice:not(:disabled):hover .service-device,
  .service-choice:focus-visible .service-device,.secondary-services button:hover img { transform:none!important; }
}
@media print {
  .process-slot { display:none; }
  body,.work-section,.workshop-band,.contact-section { background:white; color:black; }
  .project-detail,.prose,.choice-name { color:black; }
}
