:root{
  --ink:#0b0b0c;
  --panel:#141416;
  --panel-2:#1c1c1f;
  --line: rgba(230,220,200,0.14);
  --paper:#f2ede2;
  --steel:#9a9a95;
  --steel-dim:#6b6b67;
  --gold:#c8973f;
  --gold-bright:#e3b563;
  --font-display:'Oswald', sans-serif;
  --font-body:'Work Sans', sans-serif;
  --font-mono:'JetBrains Mono', monospace;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;}
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--gold);display:inline-block;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.01em;
  color:var(--paper);
}
h2{font-size:clamp(28px,4vw,44px);}
h3{font-size:20px;}
p{color:var(--steel);font-weight:300;}
.section{padding:110px 0;border-top:1px solid var(--line);position:relative;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head p{font-size:17px;}
:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px;}

/* ===== NAV ===== */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(11,11,12,0.86);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.navbar{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;max-width:1240px;margin:0 auto;}
.logo{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:.06em;display:flex;align-items:baseline;gap:8px;}
.logo span{color:var(--gold);}
.navlinks{display:flex;gap:34px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-mono);}
.navlinks a{color:var(--steel);transition:color .2s;}
.navlinks a:hover{color:var(--gold-bright);}
.nav-cta{
  border:1px solid var(--gold);color:var(--gold-bright);
  padding:10px 20px;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;transition:.25s;
}
.nav-cta:hover{background:var(--gold);color:var(--ink);}
.navtoggle{display:none;background:none;border:none;color:var(--paper);font-size:26px;cursor:pointer;}

/* ===== HERO ===== */
.hero{
  min-height:100vh;display:flex;align-items:center;position:relative;
  padding:150px 0 80px;
  background:
    radial-gradient(ellipse at 80% 10%, rgba(200,151,63,0.10), transparent 55%),
    repeating-linear-gradient(115deg, rgba(255,255,255,0.018) 0 2px, transparent 2px 46px),
    var(--ink);
  border-top:none;
}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;}
.hero h1{font-size:clamp(38px,5.4vw,68px);line-height:1.04;margin-bottom:26px;}
.hero h1 em{font-style:normal;color:var(--gold-bright);}
.hero p.lead{font-size:18px;max-width:520px;margin-bottom:40px;}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:56px;}
.btn{
  padding:15px 28px;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:10px;transition:.25s;cursor:pointer;border:1px solid transparent;
}
.btn-gold{background:var(--gold);color:var(--ink);}
.btn-gold:hover{background:var(--gold-bright);}
.btn-outline{border-color:var(--line);color:var(--paper);}
.btn-outline:hover{border-color:var(--gold);color:var(--gold-bright);}
.hero-stats{display:flex;gap:0;border-top:1px solid var(--line);padding-top:28px;}
.hero-stats div{flex:1;padding-right:24px;}
.hero-stats strong{font-family:var(--font-display);font-size:30px;color:var(--gold-bright);display:block;}
.hero-stats span{font-size:12px;color:var(--steel-dim);text-transform:uppercase;letter-spacing:.08em;}

.vgroove-visual{position:relative;}
.vgroove-visual svg{width:100%;height:auto;}
.vgroove-caption{font-family:var(--font-mono);font-size:11px;color:var(--steel-dim);letter-spacing:.08em;text-transform:uppercase;margin-top:18px;display:flex;justify-content:space-between;}

/* ===== MARQUEE STRIP ===== */
.strip{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:22px 0;overflow:hidden;white-space:nowrap;background:var(--panel);
}
.strip-track{display:inline-flex;gap:56px;animation:scroll 32s linear infinite;font-family:var(--font-mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);}
.strip-track span{color:var(--gold);margin-right:8px;}
@keyframes scroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.strip-track{animation:none;}}

/* ===== ABOUT ===== */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;}
.about-copy p{font-size:16px;margin-bottom:20px;}
.about-copy .signature-line{font-family:'Oswald';font-style:normal;color:var(--gold-bright);font-size:22px;margin-top:28px;letter-spacing:.03em;}
.capability-list{display:grid;grid-template-columns:1fr 1fr;gap:14px 30px;margin-top:10px;}
.capability-list li{
  font-size:14px;color:var(--paper);padding:14px 0;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:12px;
}
.capability-list li::before{content:"";width:6px;height:6px;background:var(--gold);flex-shrink:0;transform:rotate(45deg);}

/* ===== SERVICES ===== */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.service-card{background:var(--ink);padding:44px 36px;position:relative;transition:.3s;}
.service-card:hover{background:var(--panel-2);}
.service-num{font-family:var(--font-mono);color:var(--gold);font-size:13px;margin-bottom:22px;display:block;}
.service-card h3{margin-bottom:14px;font-size:22px;}
.service-card p{font-size:14.5px;margin-bottom:20px;}
.service-tags{display:flex;flex-wrap:wrap;gap:8px;}
.service-tags span{font-family:var(--font-mono);font-size:10.5px;border:1px solid var(--line);color:var(--steel-dim);padding:5px 10px;text-transform:uppercase;letter-spacing:.05em;}

/* ===== PRODUCT GRID ===== */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.product-card{
  border:1px solid var(--line);padding:30px 22px;background:var(--panel);
  transition:.3s;
}
.product-card:hover{border-color:var(--gold);transform:translateY(-4px);}
.product-card h4{font-size:15px;margin-bottom:8px;letter-spacing:.02em;}
.product-card p{font-size:13px;line-height:1.5;}

/* ===== INDUSTRIES ===== */
.industries-wrap{display:flex;overflow-x:auto;gap:18px;padding-bottom:16px;scrollbar-width:thin;}
.industry-chip{
  flex:0 0 auto;min-width:210px;border:1px solid var(--line);padding:26px 22px;background:var(--panel);
}
.industry-chip h4{font-size:15px;margin-bottom:6px;}
.industry-chip span{font-family:var(--font-mono);font-size:11px;color:var(--gold);}

/* ===== MATERIALS / FINISHES ===== */
.split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
.split-col{background:var(--ink);padding:56px 44px;}
.mat-row{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);}
.mat-row:last-child{border-bottom:none;}
.mat-swatch{width:34px;height:34px;border:1px solid var(--line);flex-shrink:0;}
.mat-name{font-family:var(--font-display);font-size:16px;letter-spacing:.02em;flex:1;padding:0 18px;}
.mat-desc{font-size:12.5px;color:var(--steel-dim);text-align:right;max-width:180px;}
.finish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:6px;}
.finish-chip{border:1px solid var(--line);padding:16px;text-align:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);}

/* ===== PROCESS ===== */
.process-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);margin-top:56px;}
.process-step{padding:34px 24px 0;border-left:1px solid var(--line);}
.process-step:first-child{border-left:none;}
.process-step .n{font-family:var(--font-mono);color:var(--gold);font-size:12px;}
.process-step h4{font-size:16px;margin:14px 0 10px;}
.process-step p{font-size:13.5px;}

/* ===== CTA BAND ===== */
.cta-band{
  background:linear-gradient(120deg, #171512, #0b0b0c 60%);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:90px 0;text-align:center;
}
.cta-band h2{margin-bottom:18px;}
.cta-band p{max-width:520px;margin:0 auto 40px;}
.cta-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}

/* ===== CONTACT ===== */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;}
.contact-info li{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);align-items:flex-start;}
.contact-info li strong{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.contact-info li span{color:var(--paper);font-size:15px;}
form{display:flex;flex-direction:column;gap:18px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
input,textarea,select{
  background:var(--panel);border:1px solid var(--line);color:var(--paper);
  padding:15px 16px;font-family:var(--font-body);font-size:14px;width:100%;
}
input:focus,textarea:focus,select:focus{border-color:var(--gold);outline:none;}
label{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel-dim);margin-bottom:6px;display:block;}
textarea{resize:vertical;min-height:110px;}

/* ===== FOOTER ===== */
footer{border-top:1px solid var(--line);padding:70px 0 30px;background:var(--panel);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:60px;}
.footer-col h5{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:20px;}
.footer-col ul li{margin-bottom:11px;}
.footer-col ul li a{font-size:13.5px;color:var(--steel);transition:.2s;}
.footer-col ul li a:hover{color:var(--gold-bright);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:30px;border-top:1px solid var(--line);flex-wrap:wrap;gap:16px;}
.footer-bottom p{font-size:12.5px;}
.social{display:flex;gap:16px;}
.social a{width:36px;height:36px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:.2s;font-size:11px;}
.social a:hover{border-color:var(--gold);color:var(--gold-bright);}

/* ===== IMAGE TREATMENTS ===== */
.ratio{position:relative;overflow:hidden;background:var(--panel-2);}
.ratio img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.ratio:hover img{transform:scale(1.05);}
figure{margin:0;}
figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel-dim);margin-top:12px;}

/* hero photo */
.hero{padding:0;min-height:100vh;display:block;position:relative;overflow:hidden;}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg, rgba(11,11,12,0.97) 0%, rgba(11,11,12,0.86) 42%, rgba(11,11,12,0.55) 68%, rgba(11,11,12,0.25) 100%);}
.hero-inner{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;padding:150px 0 80px;}
.hero-grid{display:block;max-width:640px;}

/* about photo */
.about-photo{position:relative;}
.about-photo .ratio{aspect-ratio:4/5;border:1px solid var(--line);}
.about-grid{grid-template-columns:.85fr 1.15fr;}

/* advantage comparison */
.advantage{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:20px;}
.advantage-col{background:var(--ink);padding:40px 34px;}
.advantage-col h4{font-size:16px;margin-bottom:12px;}
.advantage-col p{font-size:14px;margin-bottom:0;}
.advantage-photo .ratio{aspect-ratio:16/12;}

/* services with photo */
.service-card .ratio{aspect-ratio:4/3;margin-bottom:22px;border:1px solid var(--line);}

/* machinery */
.machinery-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center;}
.machinery-grid .ratio{aspect-ratio:16/10;border:1px solid var(--line);}

/* product accordion (categories) */
.cat-count{font-family:var(--font-mono);font-size:12px;color:var(--steel);margin-bottom:34px;}
.cat-count b{color:var(--gold);font-weight:500;}
details.cat{border:1px solid var(--line);margin-bottom:8px;background:var(--panel);}
details.cat[open]{border-color:var(--gold);}
details.cat summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 22px;font-family:var(--font-display);font-weight:500;font-size:16px;letter-spacing:.02em;text-transform:uppercase;}
details.cat summary::-webkit-details-marker{display:none;}
details.cat summary .idx{font-family:var(--font-mono);font-size:12px;color:var(--steel-dim);width:26px;flex-shrink:0;}
details.cat summary .title{flex:1;}
details.cat summary .count{font-family:var(--font-mono);font-size:11px;color:var(--steel-dim);text-transform:none;letter-spacing:0;}
details.cat summary .notch{width:14px;height:14px;flex-shrink:0;position:relative;}
details.cat summary .notch::before,details.cat summary .notch::after{content:"";position:absolute;background:var(--steel);}
details.cat summary .notch::before{width:14px;height:2px;top:6px;left:0;}
details.cat summary .notch::after{width:2px;height:14px;top:0;left:6px;transition:transform .18s ease, opacity .18s ease;}
details.cat[open] summary .notch::after{transform:rotate(90deg);opacity:0;}
details.cat[open] summary .notch::before{background:var(--gold);}
.cat-body{padding:4px 22px 24px 64px;border-top:1px solid var(--line);}
.cat-body ul{margin:16px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px 18px;}
.cat-body li{font-size:13.5px;color:var(--steel);padding-left:14px;position:relative;}
.cat-body li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:1px;background:var(--gold);}
.cat-kw{font-family:var(--font-mono);font-size:11.5px;color:var(--steel-dim);margin-top:14px;}
.cat-kw b{color:var(--gold);font-weight:500;}

/* gallery */
.gallery{columns:4 220px;column-gap:14px;}
.gallery figure{break-inside:avoid;margin-bottom:14px;border:1px solid var(--line);}
.gallery .ratio{aspect-ratio:auto;}
.gallery img{width:100%;height:auto;display:block;}
.gallery figcaption{padding:10px 14px 12px;margin-top:0;}

/* materials with grades */
.mat-grade{font-family:var(--font-mono);font-size:11px;color:var(--steel-dim);}

/* applications grid */
.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.app-item{background:var(--ink);padding:22px 24px;font-size:14px;color:var(--paper);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;font-size:14px;}

/* resource cards */
.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.resource-card{border:1px solid var(--line);padding:26px 24px;background:var(--panel);}
.resource-card .tag{font-family:var(--font-mono);font-size:10.5px;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;}
.resource-card h4{font-size:15px;margin:10px 0 0;line-height:1.4;}

/* ===== SOCIAL ICONS ===== */
.social a{width:38px;height:38px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:.2s;color:var(--steel);}
.social a svg{width:17px;height:17px;}
.social a:hover{border-color:var(--gold);color:var(--gold-bright);background:var(--accent-soft, transparent);}
.social-inline{display:flex;align-items:center;gap:18px;margin-top:34px;padding-top:26px;border-top:1px solid var(--line);}
.social-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel-dim);}
.social-inline .social{display:flex;gap:12px;}

/* ===== MAP ===== */
.map-block{margin-top:70px;}
.map-listing-name{font-size:13px;color:var(--steel-dim);margin:-6px 0 18px;max-width:640px;line-height:1.5;}
.map-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px;}
.map-link{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-bright);border-bottom:1px solid var(--accent-line, var(--gold));padding-bottom:2px;transition:.2s;}
.map-link:hover{color:var(--paper);}
.map-frame{border:1px solid var(--line);position:relative;width:100%;padding-bottom:34%;min-height:320px;overflow:hidden;filter:grayscale(0.35) contrast(1.05) brightness(0.92);}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
@media(max-width:680px){.map-frame{padding-bottom:80%;}}

.sticky-call{
  position:fixed;bottom:22px;right:22px;z-index:90;
  background:var(--gold);color:var(--ink);width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.4);
}

@media(max-width:980px){
  .about-grid{grid-template-columns:1fr;gap:40px;}
  .about-photo .ratio{aspect-ratio:16/9;}
  .services-grid{grid-template-columns:1fr;}
  .product-grid{grid-template-columns:repeat(2,1fr);}
  .split{grid-template-columns:1fr;}
  .process-strip{grid-template-columns:repeat(2,1fr);}
  .process-step{border-left:none;border-top:1px solid var(--line);padding-top:24px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .advantage{grid-template-columns:1fr;}
  .machinery-grid{grid-template-columns:1fr;gap:34px;}
  .app-grid{grid-template-columns:repeat(2,1fr);}
  .resource-grid{grid-template-columns:1fr 1fr;}
  .gallery{columns:3 180px;}
}
@media(max-width:680px){
  .navlinks,.nav-cta{display:none;}
  .navtoggle{display:block;}
  .product-grid{grid-template-columns:1fr 1fr;}
  .form-row{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .hero-stats{flex-wrap:wrap;gap:20px;}
  .app-grid{grid-template-columns:1fr;}
  .resource-grid{grid-template-columns:1fr;}
  .gallery{columns:2 150px;}
  .cat-body{padding-left:22px;}
  details.cat summary{font-size:13.5px;padding:14px 16px;gap:10px;}
}
