/* JDA Machining — shared site styles.
   Loaded by every page; cached long-term by the _headers rule for /assets/*.
   Page-specific one-off styling still lives inline in each page's markup. */

:root{
  --bg:#0A0D11; --panel:#10141A; --band:#0C1014;
  --line:#222932; --line2:#2C3540;
  --text:#EEF2F6; --muted:#A2AFBC; --dim:#76828F;
  --blue:#2E6BFF; --blue2:#4D82FF; --gold:#F2A93B;
  --mono:'IBM Plex Mono',monospace;
}

/* ---- base ---- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);-webkit-font-smoothing:antialiased}
::selection{background:var(--blue);color:#fff}
.jhide{display:none}
.page{background:var(--bg);color:var(--text);font-family:'Archivo',system-ui,sans-serif;font-size:16px;line-height:1.65;overflow-x:hidden}
.wrap{max-width:1280px;margin:0 auto;padding-left:clamp(20px,4.5vw,56px);padding-right:clamp(20px,4.5vw,56px)}

@keyframes jdaFade{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes jdaSpin{to{transform:translateY(-50%) rotate(360deg)}}
@keyframes jdaScan{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;font-weight:700;letter-spacing:.03em;text-decoration:none;white-space:nowrap}
.btn-blue{background:var(--blue);color:#fff;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.btn-ghost{border:1px solid var(--line2);color:var(--text)}
.btn-sm{font-size:.82rem;padding:12px 20px}
.btn-md{font-size:.9rem;padding:14px 26px}

/* ---- header ---- */
.site-head{position:sticky;top:0;z-index:200;background:rgba(10,13,17,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.head-in{height:74px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--text)}
.brand img{height:46px;width:auto;display:block}
.brand-txt{display:flex;flex-direction:column;line-height:1.05}
.brand-name{font-weight:900;letter-spacing:.02em;font-size:1.02rem;white-space:nowrap}
.brand-tag{font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;color:var(--dim);text-transform:uppercase;margin-top:3px}
.jdesk{display:flex;gap:30px;align-items:center}
.nav-a{text-decoration:none;font-size:.84rem;font-weight:600;letter-spacing:.03em;color:var(--muted)}
.nav-a.dim{font-size:.78rem;color:var(--dim)}
.nav-a.on{color:var(--text)}
.jburger{display:none;background:none;border:1px solid var(--line2);color:#fff;width:46px;height:44px;cursor:pointer;align-items:center;justify-content:center}
.jburger svg{width:20px;height:20px}
.jmob{display:none;border-top:1px solid var(--line);background:var(--bg);flex-direction:column;padding:6px 0 14px}
.jmob a{padding:14px clamp(20px,4.5vw,56px);text-decoration:none;color:var(--muted);font-weight:600;border-top:1px solid var(--line)}
.jmob a.on{color:var(--text)}
.jmob .mnav-cta{margin:14px clamp(20px,4.5vw,56px) 0;display:inline-flex;align-items:center;justify-content:center;background:var(--blue);color:#fff;font-weight:700;padding:14px 20px;border-top:none}
@media(max-width:1040px){
  .jdesk{display:none!important}
  .jburger{display:inline-flex!important}
  .jmob:not(.jhide){display:flex}
}
@media(min-width:1041px){.jmob{display:none!important}}

/* ---- mobile sticky quote bar ---- */
.jmstk{position:fixed;bottom:0;left:0;right:0;z-index:190;display:none;background:rgba(10,13,17,.94);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:10px clamp(16px,4vw,24px);gap:10px}
.jmstk a{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.88rem;text-decoration:none;white-space:nowrap}
.jmstk .stk-quote{flex:1;background:var(--blue);color:#fff;padding:14px 16px}
.jmstk .stk-call{border:1px solid var(--line2);color:var(--text);padding:14px 18px}
@media(max-width:1040px){.jmstk{display:flex!important}body.jda-pad{padding-bottom:76px}}

/* ---- compact footer (all pages except home) ---- */
.foot{max-width:1280px;margin:0 auto;padding:clamp(48px,7vh,64px) clamp(20px,4.5vw,56px) 38px;border-top:1px solid var(--line)}
.foot-cta{border:1px solid var(--line);background:radial-gradient(70% 130% at 12% 0%,rgba(46,107,255,.08),transparent 55%),var(--panel);padding:clamp(24px,3.5vw,36px);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.foot-cta-h{font-size:clamp(1.1rem,2vw,1.35rem);font-weight:800;letter-spacing:-.02em;line-height:1.2;max-width:28ch}
.foot-cta-p{margin-top:8px;color:var(--dim);font-size:.88rem;max-width:42ch}
.foot-cta-btns{display:flex;gap:12px;flex-wrap:wrap}
.foot-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;align-items:center}
.foot-logo{text-decoration:none;color:var(--text)}
.foot-logo b{font-size:1.05rem;font-weight:900}
.foot-nav{display:flex;gap:18px;flex-wrap:wrap}
.foot-nav a{color:var(--dim);font-size:.82rem;text-decoration:none}
.foot-addr{font-style:normal;color:var(--dim);font-size:.82rem}
.foot-addr a{color:var(--muted);text-decoration:none}

/* ---- full footer (home) ---- */
.bigfoot{max-width:1280px;margin:0 auto;padding:clamp(56px,8vh,72px) clamp(20px,4.5vw,56px) 38px}
.bigfoot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:38px;margin-bottom:48px}
@media(max-width:980px){.bigfoot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.bigfoot-grid{grid-template-columns:1fr}}
.bigfoot-lockup{width:260px;max-width:82%;height:auto;display:block;margin-bottom:16px}
.bigfoot-blurb{color:var(--dim);font-size:.85rem;max-width:300px;line-height:1.75}
.foot-h{font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:18px}
.bigfoot ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.bigfoot ul a,.bigfoot ul li{color:var(--muted);text-decoration:none;font-size:.88rem}
.bigfoot-addr{font-style:normal;color:var(--muted);font-size:.88rem;line-height:1.9}
.bigfoot-addr a{color:var(--text);text-decoration:none}
.bigfoot-bar{border-top:1px solid var(--line);padding-top:26px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.bigfoot-bar span,.bigfoot-bar a{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);text-decoration:none}

/* ---- quote form ---- */
input,select,textarea{font-family:'Archivo',sans-serif}
input::placeholder,textarea::placeholder{color:#5b6573}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue)!important;box-shadow:0 0 0 3px rgba(46,107,255,.14)}
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.in{background:var(--bg);border:1px solid var(--line);color:var(--text);font-size:.92rem;padding:13px 14px;min-height:48px;width:100%}
textarea.in{min-height:128px;resize:vertical}
.qtype{cursor:pointer;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:.84rem;padding:11px 16px;font-weight:600;font-family:'Archivo',sans-serif}

/* ---- page-specific responsive helpers (kept together so every page shares one file) ---- */
.vidstage{display:flex;gap:clamp(14px,2vw,24px);justify-content:center;flex-wrap:wrap}
@media(max-width:1080px){.vidwrap{grid-template-columns:1fr!important}}
@media(max-width:760px){.jherologo{display:none!important}}
@media(max-width:860px){.abhero{grid-template-columns:1fr!important}.ab3{grid-template-columns:1fr!important}}
@media(max-width:880px){.cap2{grid-template-columns:1fr!important}.svhero{grid-template-columns:1fr!important}.sv3{grid-template-columns:1fr!important}}
@media(max-width:620px){.cap3{grid-template-columns:1fr!important}.sv2{grid-template-columns:1fr!important}}
@media(max-width:820px){.indrow{grid-template-columns:1fr!important}}
@media(max-width:900px){.qgrid{grid-template-columns:1fr!important}}
@media(max-width:600px){.f2{grid-template-columns:1fr!important}}
@media(max-width:680px){.shopgrid{grid-template-columns:1fr!important}}
.gtile{position:relative;overflow:hidden;background:var(--bg);border:1px solid var(--line)}
.gtile img{width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform .5s ease}
.gtile:hover img{transform:scale(1.05)}
@media(max-width:760px){.ggrid{grid-template-columns:repeat(2,1fr)!important}}
