/*
Theme Name: Easy Electric Mechanical — Sol
Theme URI: https://easyelectricmechanical.co.za
Author: Cross Projects Media
Description: A modern, mobile-first engineering theme for Easy Electric Mechanical (Pty) Ltd. Built around machining, fabrication and furnace thermal insulation capabilities.
Version: 5.3.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: eem-sol
*/

:root {
  --bg: #0b1110;
  --bg-soft: #101816;
  --panel: #141e1b;
  --panel-2: #18231f;
  --paper: #edf1ec;
  --paper-2: #dfe5de;
  --ink: #111715;
  --muted: #728078;
  --muted-light: #aab5af;
  --accent: #84ff9a;
  --accent-2: #2dc46a;
  --accent-dark: #0e6f39;
  --white: #fff;
  --line: rgba(255,255,255,.11);
  --line-dark: rgba(17,23,21,.12);
  --shadow: 0 26px 80px rgba(0,0,0,.28);
  --radius-sm: 12px;
  --radius: 20px;
  --radius-lg: 30px;
  --container: 1280px;
  --display: "Space Grotesk", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
ul { list-style: none; padding: 0; margin: 0; }
p { margin: 0 0 18px; color: #4e5b55; max-width: 64ch; }
h1,h2,h3,h4 { margin: 0; font-family: var(--display); letter-spacing: -.045em; line-height: 1.02; }
h1 { font-size: clamp(50px, 7vw, 106px); }
h2 { font-size: clamp(38px, 5vw, 72px); }
h3 { font-size: clamp(24px, 2.1vw, 34px); }
::selection { background: var(--accent); color: var(--ink); }
:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 4px; }

.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.section { padding: clamp(76px, 9vw, 132px) 0; position: relative; }
.section--dark { background: var(--bg); color: var(--white); }
.section--soft { background: var(--paper-2); }
.kicker {
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 22px; font: 600 12px/1 var(--mono); letter-spacing: .11em; text-transform: uppercase;
  color: var(--accent-dark);
}
.kicker::before { content: ""; width: 24px; height: 1px; background: currentColor; }
.kicker--light { color: var(--accent); }
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 440px); gap: 56px; align-items: end; margin-bottom: 54px; }
.section-head p { margin: 0; font-size: 17px; }
.section-head--dark p { color: var(--muted-light); }
.eyebrow-code { font: 500 11px/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; }

.btn {
  --btn-bg: transparent; --btn-color: var(--ink); --btn-border: var(--line-dark);
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 52px; padding: 0 22px; border: 1px solid var(--btn-border); border-radius: 999px;
  background: var(--btn-bg); color: var(--btn-color); font-weight: 700; font-size: 14px;
  transition: transform .22s ease, background .22s ease, color .22s ease, border-color .22s ease;
  cursor: pointer;
}
.btn svg { width: 18px; height: 18px; transition: transform .22s ease; }
.btn:hover { transform: translateY(-2px); }
.btn:hover svg { transform: translateX(3px); }
.btn--accent { --btn-bg: var(--accent); --btn-color: #07100a; --btn-border: var(--accent); }
.btn--accent:hover { --btn-bg: #a5ffb4; }
.btn--dark { --btn-bg: var(--bg); --btn-color: var(--white); --btn-border: var(--bg); }
.btn--ghost-light { --btn-color: var(--white); --btn-border: rgba(255,255,255,.2); }
.btn--ghost-light:hover { border-color: rgba(255,255,255,.5); }

/* HEADER */
.site-header {
  position: fixed; left: 0; right: 0; top: 0; z-index: 1000;
  color: var(--white); transition: background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
  border-bottom: 1px solid transparent;
}

/* Keep the fixed navigation clear of the WordPress admin toolbar while logged in. */
.admin-bar .site-header { top: 32px; }
.admin-bar .header-inner { padding-top: 0; }
@media screen and (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

.site-header.is-scrolled { background: rgba(7,12,10,.84); border-color: var(--line); backdrop-filter: blur(18px); }
.header-inner { width: min(calc(100% - 48px), 1380px); min-height: 82px; margin-inline: auto; display: flex; align-items: center; gap: 26px; padding-top: env(safe-area-inset-top, 0px); }
.site-branding { display: inline-flex; align-items: center; gap: 13px; min-width: 235px; }
.site-branding .custom-logo, .eem-original-logo { max-height: 52px; width: auto; object-fit: contain; }
.eem-original-logo-link { display:inline-flex; align-items:center; line-height:0; }
.eem-original-logo { max-width:190px; border-radius:5px; }
.brand-symbol {
  width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center;
  border: 1px solid rgba(132,255,154,.45); background: rgba(132,255,154,.08); color: var(--accent);
  font: 700 13px/1 var(--mono); letter-spacing: -.04em;
}
.brand-copy strong { display: block; font-family: var(--display); font-size: 16px; letter-spacing: -.02em; line-height: 1.1; }
.brand-copy span { display: block; margin-top: 4px; color: #8f9c95; font: 500 9px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.main-navigation { margin-left: auto; }
.main-navigation ul { display: flex; align-items: center; gap: 3px; }
.main-navigation a { display: block; padding: 10px 13px; color: #cbd4cf; font-size: 14px; font-weight: 600; border-radius: 999px; transition: color .2s ease, background .2s ease; }
.main-navigation a:hover, .main-navigation .current-menu-item > a { color: var(--white); background: rgba(255,255,255,.06); }
.header-actions { display: flex; align-items: center; gap: 12px; }
.header-status { display: flex; align-items: center; gap: 8px; color: #aeb8b2; font: 500 10px/1 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.header-status i { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(132,255,154,.08); }
.menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 50%; background: rgba(255,255,255,.05); cursor: pointer; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content:""; display:block; width:19px; height:1px; background:#fff; margin:5px auto; transition:transform .25s ease, opacity .25s ease; }
.menu-toggle.is-active span { opacity:0; }
.menu-toggle.is-active::before { transform: translateY(6px) rotate(45deg); }
.menu-toggle.is-active::after { transform: translateY(-6px) rotate(-45deg); }

/* HERO */
.hero {
  min-height: 760px; padding: 146px 0 46px; position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 72% 34%, rgba(42,168,90,.18), transparent 27%),
    radial-gradient(circle at 19% 88%, rgba(132,255,154,.08), transparent 25%),
    var(--bg);
  color: var(--white);
}
.hero::before {
  content:""; position:absolute; inset:0; opacity:.36; pointer-events:none;
  background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(to bottom, #000 0 72%, transparent 100%);
}
.hero::after { content:""; position:absolute; width:630px; height:630px; border:1px solid rgba(132,255,154,.13); border-radius:50%; right:-230px; top:120px; box-shadow: 0 0 0 80px rgba(132,255,154,.025), 0 0 0 160px rgba(132,255,154,.018); }
.hero-inner { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.04fr) minmax(380px,.82fr); gap:58px; align-items:center; }
.hero-copy { padding-top: 24px; }
.hero-meta { display:flex; align-items:center; flex-wrap:wrap; gap:11px; margin-bottom:30px; }
.hero-chip { border:1px solid rgba(255,255,255,.13); border-radius:999px; padding:8px 11px; color:#aebbb4; font:500 10px/1 var(--mono); letter-spacing:.055em; text-transform:uppercase; background:rgba(255,255,255,.025); }
.hero-chip--live { color:var(--accent); border-color:rgba(132,255,154,.28); }
.hero h1 { max-width: 850px; color: var(--white); }
.hero h1 .accent-line { color: transparent; -webkit-text-stroke: 1px rgba(132,255,154,.85); }
.hero-lead { margin-top: 28px; max-width: 660px; color: #aeb9b3; font-size: clamp(17px, 1.35vw, 20px); }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.hero-trust { display:flex; gap:30px; flex-wrap:wrap; margin-top:50px; padding-top:26px; border-top:1px solid var(--line); }
.hero-trust-item strong { display:block; color:var(--white); font-family:var(--display); font-size:22px; letter-spacing:-.04em; line-height:1; }
.hero-trust-item span { display:block; margin-top:7px; color:#77857d; font:500 10px/1.25 var(--mono); letter-spacing:.07em; text-transform:uppercase; }

.hero-visual { position:relative; min-height:540px; perspective:1100px; }
.machine-card {
  position:absolute; inset:0 0 36px 22px; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:var(--radius-lg);
  background:#101714; box-shadow:var(--shadow); transform:rotateY(-2deg) rotateX(1deg); transform-style:preserve-3d; transition: transform .3s ease;
}
.machine-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 42%,rgba(5,10,8,.84) 100%), linear-gradient(90deg,rgba(3,8,6,.22),transparent 35%); }
.machine-card img { width:100%; height:100%; object-fit:cover; filter:saturate(.75) contrast(1.08); }
.machine-overlay { position:absolute; z-index:2; inset:0; pointer-events:none; }
.scan-line { position:absolute; left:0; right:0; height:1px; top:28%; background:linear-gradient(90deg,transparent,var(--accent),transparent); opacity:.7; box-shadow:0 0 18px var(--accent); animation:scan 6s ease-in-out infinite; }
@keyframes scan { 0%,100%{transform:translateY(-90px);opacity:.12} 50%{transform:translateY(220px);opacity:.75} }
.machine-label { position:absolute; top:20px; left:20px; padding:9px 11px; border:1px solid rgba(132,255,154,.28); background:rgba(7,12,10,.72); backdrop-filter:blur(8px); border-radius:8px; color:var(--accent); font:500 10px/1 var(--mono); letter-spacing:.05em; }
.machine-coordinates { position:absolute; right:18px; top:19px; text-align:right; color:#c2cdc7; font:500 9px/1.5 var(--mono); letter-spacing:.06em; }
.machine-spec { position:absolute; z-index:3; right:-12px; bottom:0; width:min(315px,72%); padding:18px; border:1px solid rgba(255,255,255,.13); border-radius:16px; background:rgba(12,18,16,.88); backdrop-filter:blur(14px); box-shadow:0 18px 40px rgba(0,0,0,.35); }
.machine-spec-top { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:14px; color:#dbe3df; font:600 10px/1 var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.machine-spec-top span:last-child { color:var(--accent); }
.signal-bars { display:grid; grid-template-columns:repeat(12,1fr); gap:4px; align-items:end; height:38px; }
.signal-bars i { display:block; height:var(--h); min-height:6px; border-radius:2px 2px 0 0; background:linear-gradient(to top,var(--accent-dark),var(--accent)); opacity:.78; animation:pulsebar 2.8s ease-in-out infinite alternate; animation-delay:calc(var(--i) * -90ms); }
@keyframes pulsebar { to { transform:scaleY(.55); opacity:.42; } }
.hero-scroll { position:absolute; z-index:3; left:50%; bottom:16px; transform:translateX(-50%); color:#69776f; font:500 9px/1 var(--mono); letter-spacing:.1em; text-transform:uppercase; }

/* TICKER */
.capability-ticker { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#0e1513; color:#718078; }
.ticker-track { display:flex; width:max-content; animation:ticker 32s linear infinite; }
.ticker-track span { display:flex; align-items:center; gap:18px; padding:16px 20px; font:600 11px/1 var(--mono); letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.ticker-track span::after { content:"+"; color:var(--accent); font-size:16px; }
@keyframes ticker { to { transform:translateX(-50%); } }

/* CAPABILITIES */
.cap-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line-dark); border-radius:var(--radius-lg); overflow:hidden; background:rgba(255,255,255,.45); }
.cap-card { position:relative; min-height:450px; padding:28px; border-right:1px solid var(--line-dark); overflow:hidden; transition:background .3s ease; }
.cap-card:last-child { border-right:0; }
.cap-card::before { content:""; position:absolute; inset:auto -45px -60px auto; width:180px; height:180px; border-radius:50%; border:1px solid rgba(14,111,57,.13); box-shadow:0 0 0 32px rgba(14,111,57,.025),0 0 0 64px rgba(14,111,57,.018); transition:transform .5s ease; }
.cap-card:hover { background:#f8faf7; }
.cap-card:hover::before { transform:scale(1.18); }
.cap-num { display:flex; justify-content:space-between; color:#7c8a83; font:500 10px/1 var(--mono); letter-spacing:.07em; }
.cap-icon { width:48px; height:48px; margin:42px 0 24px; border-radius:13px; background:#0d1713; color:var(--accent); display:grid; place-items:center; }
.cap-icon svg { width:24px; height:24px; }
.cap-card p { margin-top:18px; font-size:15px; }
.cap-specs { position:absolute; left:28px; right:28px; bottom:28px; display:grid; gap:7px; }
.cap-spec { display:flex; justify-content:space-between; gap:16px; padding-top:9px; border-top:1px solid var(--line-dark); font:500 10px/1.4 var(--mono); color:#7b8781; }
.cap-spec b { color:#26332d; font-weight:600; text-align:right; }

/* FEATURE / ABOUT */
.feature-grid { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:70px; align-items:center; }
.feature-media { position:relative; }
.feature-image { min-height:600px; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.feature-image img { width:100%; height:100%; min-height:600px; object-fit:cover; }
.feature-badge { position:absolute; right:-24px; bottom:36px; width:172px; aspect-ratio:1; display:grid; place-items:center; text-align:center; border-radius:50%; background:var(--accent); color:#07100a; box-shadow:0 18px 42px rgba(0,0,0,.22); }
.feature-badge strong { display:block; font-family:var(--display); font-size:46px; line-height:.9; letter-spacing:-.06em; }
.feature-badge span { display:block; max-width:95px; margin:8px auto 0; font:600 9px/1.3 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.feature-copy h2 { max-width:770px; }
.feature-copy > p { margin-top:26px; font-size:17px; }
.proof-list { display:grid; gap:0; margin:34px 0 36px; border-top:1px solid var(--line-dark); }
.proof-item { display:grid; grid-template-columns:46px 1fr auto; gap:15px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line-dark); }
.proof-index { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:#d8e0da; color:#34413a; font:600 9px/1 var(--mono); }
.proof-item strong { font-family:var(--display); font-size:18px; letter-spacing:-.02em; }
.proof-item span:last-child { color:#76857d; font:500 10px/1 var(--mono); letter-spacing:.04em; text-transform:uppercase; text-align:right; }

/* COMPANY PROFILE */
.company-profile-section { background:#111815; color:var(--white); padding-top:clamp(64px,7vw,96px); padding-bottom:clamp(64px,7vw,96px); }
.profile-card { position:relative; overflow:hidden; display:grid; grid-template-columns:120px minmax(0,1fr) minmax(280px,380px); gap:42px; align-items:center; padding:46px 50px; border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-lg); background:linear-gradient(135deg,rgba(255,255,255,.035),rgba(132,255,154,.025)); }
.profile-card::after { content:""; position:absolute; width:360px; height:360px; right:-150px; top:-160px; border-radius:50%; border:1px solid rgba(132,255,154,.14); box-shadow:0 0 0 56px rgba(132,255,154,.018),0 0 0 112px rgba(132,255,154,.012); pointer-events:none; }
.profile-card-code { position:relative; z-index:1; color:#6d7a73; font:600 9px/1.45 var(--mono); letter-spacing:.1em; text-transform:uppercase; writing-mode:vertical-rl; transform:rotate(180deg); }
.profile-card-copy, .profile-card-action { position:relative; z-index:1; }
.profile-card-copy h2 { color:var(--white); font-size:clamp(38px,4.2vw,64px); max-width:760px; }
.profile-card-copy p { margin-top:18px; color:#95a29b; }
.profile-card-action { display:grid; justify-items:start; gap:14px; }
.profile-card-action small { color:#75827b; font:500 9px/1.45 var(--mono); max-width:34ch; }
.pdf-mark { width:74px; height:92px; display:grid; place-items:center; position:relative; border:1px solid rgba(132,255,154,.32); border-radius:10px; background:rgba(132,255,154,.06); color:var(--accent); font:700 15px/1 var(--mono); overflow:hidden; }
.pdf-mark::before { content:""; position:absolute; top:-1px; right:-1px; width:24px; height:24px; background:#111815; border-left:1px solid rgba(132,255,154,.32); border-bottom:1px solid rgba(132,255,154,.32); transform:translate(8px,-8px) rotate(45deg); }
.pdf-mark i { position:absolute; left:14px; right:14px; bottom:17px; height:1px; background:rgba(132,255,154,.32); box-shadow:0 -8px rgba(132,255,154,.18); }

/* METRICS */
.metrics { background:var(--accent); color:#07100a; }
.metrics-grid { display:grid; grid-template-columns:1.5fr repeat(3,1fr); min-height:205px; }
.metric-intro, .metric { padding:38px 34px; border-right:1px solid rgba(7,16,10,.15); display:flex; flex-direction:column; justify-content:center; }
.metric:last-child { border-right:0; }
.metric-intro { font-family:var(--display); font-size:24px; line-height:1.05; letter-spacing:-.04em; }
.metric strong { font-family:var(--display); font-size:clamp(44px,5vw,72px); letter-spacing:-.07em; line-height:.9; }
.metric span { margin-top:13px; font:600 9px/1.4 var(--mono); text-transform:uppercase; letter-spacing:.08em; }

/* PROCESS */
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:55px; }
.process-step { position:relative; padding:26px 24px 10px 0; border-top:1px solid var(--line); }
.process-step:not(:last-child)::after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; background:var(--accent); top:-4px; right:18px; box-shadow:0 0 0 6px rgba(132,255,154,.07); }
.process-step .no { color:var(--accent); font:600 10px/1 var(--mono); letter-spacing:.07em; }
.process-step h3 { margin-top:22px; color:var(--white); font-size:24px; }
.process-step p { margin-top:12px; color:#84918a; font-size:14px; }

/* GALLERY */
.gallery-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; grid-template-rows:260px 260px; gap:14px; }
.gallery-card { position:relative; border-radius:18px; overflow:hidden; background:#15201c; }
.gallery-card:first-child { grid-row:span 2; }
.gallery-card img { width:100%; height:100%; object-fit:cover; filter:saturate(.8) contrast(1.03); transition:transform .6s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.gallery-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(5,10,8,.78)); }
.gallery-card:hover img { transform:scale(1.045); filter:saturate(1); }
.gallery-caption { position:absolute; z-index:2; left:18px; right:18px; bottom:16px; display:flex; justify-content:space-between; align-items:end; color:var(--white); }
.gallery-caption strong { font-family:var(--display); font-size:18px; letter-spacing:-.03em; }
.gallery-caption span { color:#b2beb7; font:500 9px/1 var(--mono); letter-spacing:.07em; text-transform:uppercase; }

/* CTA */
.cta-shell { position:relative; overflow:hidden; padding:72px; border-radius:var(--radius-lg); background:#0b1110; color:var(--white); }
.cta-shell::before { content:""; position:absolute; width:490px; height:490px; right:-180px; top:-170px; border-radius:50%; border:1px solid rgba(132,255,154,.14); box-shadow:0 0 0 70px rgba(132,255,154,.025),0 0 0 140px rgba(132,255,154,.018); }
.cta-shell::after { content:""; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px); background-size:40px 40px; mask-image:linear-gradient(90deg,#000,transparent 65%); }
.cta-content { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:end; }
.cta-content h2 { max-width:860px; color:var(--white); }
.cta-content p { margin-top:22px; color:#96a39c; }
.cta-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }

/* PAGE HERO + INTERNAL */
.page-hero { position:relative; padding:178px 0 82px; background:var(--bg); color:var(--white); overflow:hidden; }
.page-hero::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(to bottom,#000,transparent); }
.page-hero .container { position:relative; z-index:2; }
.page-hero h1 { color:var(--white); max-width:960px; }
.breadcrumbs { margin-top:25px; color:#7f8e86; font:500 10px/1 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.breadcrumbs a { color:#b6c1bb; }
.internal-intro { max-width:800px; margin-bottom:52px; }
.internal-intro p { margin-top:24px; font-size:18px; }
.service-detail { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center; padding:58px 0; border-top:1px solid var(--line-dark); }
.service-detail:nth-child(even) .service-detail-media { order:2; }
.service-detail-media { min-height:430px; border-radius:22px; overflow:hidden; }
.service-detail-media img { width:100%; height:100%; min-height:430px; object-fit:cover; }
.service-detail-copy .service-code { color:var(--accent-dark); font:600 10px/1 var(--mono); letter-spacing:.08em; }
.service-detail-copy h2 { margin-top:20px; font-size:clamp(36px,4vw,58px); }
.service-detail-copy p { margin-top:22px; }
.material-list { margin-top:26px; display:flex; flex-wrap:wrap; gap:8px; }
.material-list span { padding:8px 10px; border:1px solid var(--line-dark); border-radius:999px; color:#58675f; font:500 10px/1 var(--mono); }

/* CONTACT */
.contact-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:28px; }
.contact-panel, .contact-form { border:1px solid var(--line-dark); border-radius:22px; background:rgba(255,255,255,.52); }
.contact-panel { padding:34px; }
.contact-panel h3, .contact-form h3 { font-size:28px; }
.contact-stack { margin-top:28px; display:grid; }
.contact-row { display:grid; grid-template-columns:42px 1fr; gap:15px; padding:19px 0; border-top:1px solid var(--line-dark); }
.contact-row .code { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:#d9e1db; color:#46554d; font:600 8px/1 var(--mono); }
.contact-row strong { display:block; font-size:13px; }
.contact-row span, .contact-row a { display:block; margin-top:4px; color:#5d6a63; font-size:14px; }
.contact-form { padding:34px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:28px; }
.form-field--full { grid-column:1/-1; }
.form-field label { display:block; margin-bottom:8px; color:#637169; font:600 9px/1 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.form-field input, .form-field textarea { width:100%; border:1px solid #c9d2cc; background:#f9fbf8; border-radius:12px; padding:14px 15px; color:var(--ink); outline:none; transition:border .2s ease, box-shadow .2s ease; }
.form-field textarea { min-height:145px; resize:vertical; }
.form-field input:focus, .form-field textarea:focus { border-color:var(--accent-dark); box-shadow:0 0 0 3px rgba(14,111,57,.08); }
.form-notice { margin:18px 0 0; padding:13px 14px; border-radius:10px; font-size:13px; }
.form-notice--ok { background:#dff4e6; color:#166534; }
.form-notice--bad { background:#f8e2e2; color:#8b2727; }
.eem-hp { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

/* CONTENT */
.content-area { padding:100px 0; }
.entry-content { max-width:800px; }
.entry-content > * + * { margin-top:1.2em; }
.entry-content h2 { font-size:40px; margin-top:1.5em; }
.entry-content h3 { margin-top:1.35em; }

/* FOOTER */
.site-footer { background:#070b0a; color:#d7dfdb; padding:72px 0 24px; }
.footer-grid { display:grid; grid-template-columns:1.15fr .7fr .8fr; gap:65px; padding-bottom:52px; }
.footer-brand p { margin-top:20px; color:#75837b; font-size:14px; }
.footer-title { margin-bottom:18px; color:#7f8c85; font:600 9px/1 var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.footer-nav a, .footer-contact a, .footer-contact span { display:block; padding:6px 0; color:#c1cbc5; font-size:14px; }
.footer-nav a:hover, .footer-contact a:hover { color:var(--accent); }

.footer-social { display:inline-flex !important; align-items:center; gap:9px; margin-top:8px; width:max-content; }
.footer-social svg { width:16px; height:16px; color:var(--accent); flex:0 0 auto; }
.footer-social span { padding:0 !important; color:inherit !important; }

.footer-bottom { display:flex; justify-content:space-between; gap:24px; padding-top:22px; border-top:1px solid var(--line); color:#59675f; font:500 9px/1.5 var(--mono); letter-spacing:.05em; text-transform:uppercase; }

/* MOTION */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }

.mobile-actionbar { display:none; }

@media (max-width: 1080px) {
  .header-status { display:none; }
  .hero-inner { grid-template-columns:1fr .78fr; gap:34px; }
  .cap-grid { grid-template-columns:repeat(3,1fr); }
  .cap-card { padding:25px; min-height:420px; }
  .profile-card { grid-template-columns:80px minmax(0,1fr); }
  .profile-card-action { grid-column:2; }
  .cap-specs { left:25px; right:25px; }
  .feature-grid { gap:42px; }
  .metrics-grid { grid-template-columns:1fr repeat(3,.85fr); }
}

@media (max-width: 900px) {
  .container { width:min(calc(100% - 36px),var(--container)); }
  .header-inner { width:calc(100% - 32px); min-height:72px; }
  .main-navigation {
    position:fixed; inset:0; z-index:-1; display:flex; flex-direction:column; justify-content:center; padding:90px 24px 34px;
    background:rgba(7,11,10,.98); opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
  }
  .main-navigation.is-open { opacity:1; visibility:visible; z-index:999; }
  .main-navigation ul { display:flex; flex-direction:column; align-items:flex-start; width:100%; max-width:560px; margin:auto; }
  .main-navigation li { width:100%; border-bottom:1px solid var(--line); }
  .main-navigation a { padding:17px 0; font-family:var(--display); font-size:clamp(34px,8vw,56px); line-height:1; letter-spacing:-.04em; color:var(--white); background:none !important; }
  .menu-toggle { display:block; position:relative; z-index:1001; }
  .header-actions .btn { display:none; }
  .brand-copy span { display:none; }
  .site-branding { min-width:0; margin-right:auto; }
  .eem-original-logo { max-height:46px; max-width:160px; }

  .hero { min-height:auto; padding:120px 0 60px; }
  .hero-inner { grid-template-columns:1fr; }
  .hero-copy { padding-top:0; }
  .hero-visual { min-height:460px; max-width:680px; width:100%; margin:20px auto 0; }
  .hero::after { right:-380px; }
  .section-head { grid-template-columns:1fr; gap:20px; }
  .cap-grid { grid-template-columns:1fr; }
  .profile-card { grid-template-columns:1fr; padding:40px 32px; }
  .profile-card-code { writing-mode:horizontal-tb; transform:none; }
  .profile-card-action { grid-column:auto; }
  .cap-card { min-height:360px; border-right:0; border-bottom:1px solid var(--line-dark); }
  .cap-card:last-child { border-bottom:0; }
  .cap-icon { margin-top:38px; }
  .feature-grid { grid-template-columns:1fr; }
  .feature-media { max-width:700px; }
  .feature-badge { right:20px; }
  .metrics-grid { grid-template-columns:1fr 1fr; }
  .metric-intro { grid-column:1/-1; border-right:0; border-bottom:1px solid rgba(7,16,10,.15); }
  .metric:nth-child(3) { border-right:0; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:360px 250px 250px; }
  .gallery-card:first-child { grid-column:1/-1; grid-row:auto; }
  .cta-shell { padding:54px 38px; }
  .cta-content { grid-template-columns:1fr; }
  .cta-actions { justify-content:flex-start; }
  .contact-grid { grid-template-columns:1fr; }
  .service-detail { grid-template-columns:1fr; }
  .service-detail:nth-child(even) .service-detail-media { order:0; }
  .footer-grid { grid-template-columns:1.2fr .8fr; }
  .footer-contact { grid-column:1/-1; }
}

@media (max-width: 620px) {
  body { padding-bottom:70px; }
  .container { width:min(calc(100% - 28px),var(--container)); }
  .site-header.is-scrolled { background:rgba(7,12,10,.94); }
  .header-inner { width:calc(100% - 24px); min-height:66px; }
  .brand-symbol { width:38px; height:38px; }
  .eem-original-logo { max-height:42px; max-width:146px; }
  .brand-copy strong { font-size:14px; max-width:160px; }
  .hero { padding-top:104px; }
  .hero-meta { margin-bottom:22px; }
  .hero-chip:nth-child(3) { display:none; }
  .hero h1 { font-size:clamp(47px,15vw,70px); }
  .hero-lead { margin-top:22px; font-size:16px; }
  .hero-actions { display:grid; grid-template-columns:1fr 1fr; }
  .hero-actions .btn { padding-inline:15px; }
  .hero-trust { gap:18px; justify-content:space-between; margin-top:38px; }
  .hero-trust-item { width:29%; }
  .hero-trust-item strong { font-size:19px; }
  .hero-trust-item span { font-size:8px; }
  .hero-visual { min-height:390px; }
  .machine-card { inset:0 8px 34px 0; border-radius:22px; }
  .machine-spec { right:0; width:72%; }
  .hero-scroll { display:none; }
  .section { padding:72px 0; }
  .section-head { margin-bottom:34px; }
  .cap-card { min-height:390px; padding:24px; border-right:0 !important; }
  .cap-card:not(:last-child) { border-bottom:1px solid var(--line-dark); }
  .profile-card { padding:34px 24px; gap:24px; }
  .profile-card-action .btn { width:100%; }
  .cap-specs { left:24px; right:24px; bottom:24px; }
  .feature-image, .feature-image img { min-height:420px; }
  .feature-badge { width:135px; right:12px; bottom:18px; }
  .feature-badge strong { font-size:38px; }
  .proof-item { grid-template-columns:38px 1fr; }
  .proof-item span:last-child { grid-column:2; text-align:left; margin-top:-8px; }
  .metrics-grid { grid-template-columns:1fr; }
  .metric-intro, .metric { min-height:140px; border-right:0; border-bottom:1px solid rgba(7,16,10,.15); padding:28px 24px; }
  .metric:last-child { border-bottom:0; }
  .process-grid { grid-template-columns:1fr; }
  .process-step { padding-bottom:24px; }
  .process-step:not(:last-child)::after { right:auto; left:0; }
  .gallery-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding-bottom:8px; margin-right:-14px; }
  .gallery-card { flex:0 0 84%; height:380px; scroll-snap-align:start; }
  .cta-shell { padding:42px 24px; border-radius:22px; }
  .cta-actions { display:grid; grid-template-columns:1fr; }
  .page-hero { padding:132px 0 60px; }
  .service-detail { gap:28px; padding:42px 0; }
  .service-detail-media, .service-detail-media img { min-height:320px; }
  .form-grid { grid-template-columns:1fr; }
  .form-field--full { grid-column:auto; }
  .contact-panel, .contact-form { padding:24px; }
  .footer-grid { grid-template-columns:1fr; gap:34px; }
  .footer-contact { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
  .mobile-actionbar {
    position:fixed; z-index:1100; left:0; right:0; bottom:0; display:grid; grid-template-columns:.8fr 1.2fr; gap:8px;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(7,11,10,.94); backdrop-filter:blur(16px);
  }
  .mobile-actionbar a { min-height:52px; display:flex; align-items:center; justify-content:center; border-radius:999px; font-size:13px; font-weight:700; }
  .mobile-call { border:1px solid rgba(255,255,255,.16); color:#fff; }
  .mobile-quote { background:var(--accent); color:#07100a; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
