*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:#050505;color:#fff;font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Arial,sans-serif;line-height:1.8}
img{max-width:100%;display:block}
#menu{display:none}.menu-btn{display:none}

.sidebar{
  position:fixed;left:0;top:0;width:245px;height:100vh;z-index:20;
  padding:24px 20px;background:linear-gradient(180deg,#020203,#071b3b 70%,#020203);
  border-right:1px solid rgba(255,255,255,.12)
}
.brand{text-align:center;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.14)}
.brand img{width:112px;height:112px;object-fit:cover;border-radius:8px;margin:0 auto 14px}
.brand h1{font-size:26px;letter-spacing:.08em}
.brand p{font-size:11px;letter-spacing:.12em;color:#9fc7ff}
.sidebar nav{margin-top:22px}
.sidebar nav a{display:block;color:#fff;text-decoration:none;padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.1);transition:.25s}
.sidebar nav a:hover{background:#0e2b5c;transform:translateX(4px)}
.side-contact{position:absolute;bottom:22px;left:20px;right:20px;font-size:14px;color:#e4eaf5}
.side-contact p{margin-top:14px}.side-contact span{color:#62a8ff;font-weight:bold}

.main{margin-left:245px}
.hero{
  min-height:560px;display:flex;align-items:center;padding:70px 7vw;
  background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.45),rgba(0,0,0,.85)),
  url("assets/tool_turret.jpg") center/cover no-repeat
}
.hero-copy{max-width:680px}.en{letter-spacing:.22em;color:#a8c8ff;font-size:14px;margin-bottom:18px}
.hero h2{font-size:clamp(48px,7vw,86px);line-height:1.15;letter-spacing:.06em;margin-bottom:28px;font-family:serif}
.hero p{font-size:20px;color:#e4e8ef}

.strength{display:grid;grid-template-columns:repeat(3,1fr);background:linear-gradient(90deg,#06142b,#0e2b5c,#06142b);border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}
.strength div{padding:34px 36px;border-right:1px solid rgba(255,255,255,.18)}
.strength span{display:block;font-size:42px;color:#d8e9ff}.strength h3{font-size:22px}.strength p{font-size:15px;color:#c7d4e7}

.section{padding:68px 6vw}.light{background:#f4f4f1;color:#111}.black{background:#050505;color:#fff}
.title{display:flex;align-items:end;gap:18px;margin-bottom:28px;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:12px}
.dark-title{border-color:rgba(255,255,255,.16)}.title h2{font-size:34px;font-family:serif;letter-spacing:.08em}.title p{color:#55739c;letter-spacing:.18em;font-size:12px}

.equipment{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.equipment article{background:#fff;box-shadow:0 18px 35px rgba(0,0,0,.16)}
.equipment img{height:230px;width:100%;object-fit:cover}.equipment h3,.equipment p{background:#0e2b5c;color:#fff;text-align:center}.equipment h3{padding:18px 12px 4px}.equipment p{padding:0 18px 22px;color:#dce9ff}

.works{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.works article{background:#111;border:1px solid rgba(255,255,255,.14)}
.works img{height:180px;width:100%;object-fit:cover;filter:grayscale(.18)}.works h3{padding:14px;text-align:center;font-size:16px}

.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.gallery img{height:170px;width:100%;object-fit:cover;box-shadow:0 12px 26px rgba(0,0,0,.22)}

.split{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.box{padding:58px 6vw;background:#050505;border-right:1px solid rgba(255,255,255,.14)}.company{background:linear-gradient(rgba(0,0,0,.8),rgba(0,0,0,.8)),url("assets/dmg_mori.jpg") center/cover}
.box h2,.bottom-box h2{font-size:32px;font-family:serif;letter-spacing:.08em;margin-bottom:20px}.box p{margin-bottom:14px;color:#e8edf5}
dl{display:grid;grid-template-columns:90px 1fr;gap:8px 18px;margin-top:22px}dt{color:#79b7ff}

.bottom{display:grid;grid-template-columns:1fr 1.2fr}.bottom-box{padding:54px 6vw;background:#060606;border-right:1px solid rgba(255,255,255,.14)}
.bottom-box iframe{width:100%;height:240px;border:0;margin-top:22px;filter:grayscale(.2)}
.contact{background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(5,20,45,.86)),url("assets/main_machine.jpg") center/cover}
.contact a{display:inline-block;margin-top:26px;background:#0e2b5c;color:#fff;text-decoration:none;padding:18px 34px;border:1px solid rgba(255,255,255,.35);transition:.25s}
.contact a:hover{background:#fff;color:#0e2b5c}footer{text-align:center;padding:26px;color:#9aa8bb;background:#030303}

@media(max-width:980px){
.menu-btn{display:flex;position:fixed;top:14px;right:14px;width:52px;height:52px;align-items:center;justify-content:center;background:#0e2b5c;border-radius:50%;z-index:99;font-size:28px}
.sidebar{transform:translateX(-100%);transition:.3s}.side-contact{position:static;margin-top:24px}#menu:checked~.sidebar{transform:translateX(0)}
.main{margin-left:0}.hero{min-height:78vh;padding:90px 24px 60px}
.strength,.equipment,.works,.gallery,.split,.bottom{grid-template-columns:1fr}.section,.box,.bottom-box{padding:52px 24px}
.gallery img,.works img,.equipment img{height:240px}
}


/* ===== sidebar layout fix ===== */
@media (min-width:981px){
  .sidebar{
    width:245px;
    height:100vh;
    overflow-y:auto;
    padding:14px 16px;
  }

  .brand{
    padding-bottom:12px;
  }

  .brand img{
    width:88px;
    height:88px;
    margin-bottom:8px;
  }

  .brand h1{
    font-size:24px;
  }

  .brand p{
    font-size:10px;
  }

  .sidebar nav{
    margin-top:12px;
  }

  .sidebar nav a{
    padding:8px 10px;
    font-size:14px;
  }

  .side-contact{
    position:static;
    margin-top:12px;
    font-size:12px;
    line-height:1.55;
    word-break:break-word;
  }

  .side-contact p{
    margin-top:8px;
  }

  .side-contact span{
    display:block;
    margin-bottom:2px;
  }

  .main{
    margin-left:245px;
    width:calc(100% - 245px);
  }
}


/* ===== contact form ===== */
.contact-form{
  margin-top:26px;
  display:flex;
  flex-direction:column;
  gap:12px;
  max-width:720px;
}
.contact-form label{
  font-weight:bold;
  color:#eaf3ff;
}
.contact-form label span{
  color:#9fc7ff;
  font-size:12px;
  margin-left:6px;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(0,0,0,.55);
  color:#fff;
  border-radius:6px;
  font-size:16px;
}
.contact-form input[type="file"]{
  background:rgba(255,255,255,.08);
}
.contact-form button{
  margin-top:10px;
  padding:16px 28px;
  background:#0e2b5c;
  color:#fff;
  border:1px solid rgba(255,255,255,.35);
  cursor:pointer;
  font-size:16px;
  font-weight:bold;
  transition:.25s;
}
.contact-form button:hover{
  background:#fff;
  color:#0e2b5c;
}


/* ===== premium access / contact redesign ===== */
.premium-contact-section{
  margin-left:0;
  padding:72px 4vw 34px;
  min-height:100vh;
  background:
    linear-gradient(rgba(0,0,0,.78),rgba(0,0,0,.86)),
    url("assets/tool_turret.jpg") center/cover fixed;
  color:#fff;
}

.premium-heading{
  text-align:center;
  max-width:980px;
  margin:0 auto 42px;
}

.premium-heading > p:first-child{
  color:#c3a24d;
  letter-spacing:.18em;
  font-size:14px;
  margin-bottom:4px;
}

.premium-heading h2{
  font-family:serif;
  font-size:clamp(34px,4.6vw,58px);
  letter-spacing:.08em;
  margin:0;
}

.premium-heading span{
  display:block;
  width:70px;
  height:2px;
  background:#b79338;
  margin:22px auto;
}

.premium-heading .lead{
  color:#f1f4f8;
  font-size:17px;
}

.premium-panels{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  max-width:1180px;
  margin:0 auto;
}

.premium-panel{
  background:#f7f7f4;
  color:#111;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 30px 70px rgba(0,0,0,.35);
}

.panel-title{
  display:flex;
  align-items:center;
  gap:16px;
  padding:26px 32px;
  background:linear-gradient(90deg,#05080d,#101923);
  color:#fff;
}

.panel-title span{
  color:#c3a24d;
  font-size:32px;
}

.panel-title h3{
  font-family:serif;
  font-size:32px;
  letter-spacing:.05em;
  margin:0;
}

.address{
  padding:28px 34px 16px;
  font-size:17px;
  line-height:1.9;
}

.map-frame{
  margin:0 34px 24px;
  border:1px solid #d5d5d5;
  overflow:hidden;
}

.map-frame iframe{
  width:100%;
  height:290px;
  border:0;
  display:block;
}

.access-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:0 34px 24px;
}

.access-cards div{
  border:1px solid #ddd;
  padding:18px;
  background:#fff;
}

.access-cards strong{
  display:block;
  margin-bottom:10px;
}

.access-cards b{
  color:#b79338;
  font-size:20px;
}

.map-button{
  display:block;
  margin:0 34px 34px;
  text-align:center;
  text-decoration:none;
  color:#fff;
  background:linear-gradient(90deg,#05080d,#141414);
  border:1px solid #b79338;
  padding:16px;
  font-weight:bold;
  letter-spacing:.05em;
}

.form-intro{
  padding:26px 34px 10px;
  color:#333;
}

.premium-form{
  padding:0 34px 34px;
  display:flex;
  flex-direction:column;
  gap:11px;
}

.premium-form label{
  font-weight:bold;
  color:#111;
  margin-top:5px;
}

.premium-form em{
  font-style:normal;
  background:#b83a32;
  color:#fff;
  font-size:12px;
  padding:2px 5px;
  margin-left:6px;
}

.premium-form input,
.premium-form textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid #d0d0d0;
  background:#fff;
  color:#111;
  font-size:15px;
  border-radius:4px;
  font-family:inherit;
}

.premium-form input[type="file"]{
  padding:10px;
  background:#fff;
}

.premium-form textarea{
  resize:vertical;
  min-height:150px;
}

.file-note{
  font-size:13px;
  color:#444;
  margin:-4px 0 2px;
}

.premium-form button{
  margin-top:10px;
  padding:16px;
  border:0;
  background:linear-gradient(90deg,#9b7a2f,#c2a24e);
  color:#fff;
  font-size:17px;
  font-weight:bold;
  cursor:pointer;
  border-radius:4px;
  box-shadow:0 10px 20px rgba(0,0,0,.18);
}

.premium-form small{
  display:block;
  text-align:center;
  color:#444;
  margin-top:2px;
}

@media(max-width:1100px){
  .premium-panels{
    grid-template-columns:1fr;
  }
}

@media(max-width:980px){
  .premium-contact-section{
    padding:72px 24px 34px;
  }

  .panel-title,
  .address,
  .form-intro,
  .premium-form{
    padding-left:22px;
    padding-right:22px;
  }

  .map-frame,
  .access-cards,
  .map-button{
    margin-left:22px;
    margin-right:22px;
  }

  .access-cards{
    grid-template-columns:1fr;
  }
}


/* ===== CLEAN PREMIUM ACCESS / CONTACT OVERRIDE ===== */
.premium-contact-section{
  padding:72px 4vw 38px !important;
  min-height:100vh;
  background:
    linear-gradient(rgba(0,0,0,.78),rgba(0,0,0,.88)),
    url("assets/tool_turret.jpg") center/cover fixed !important;
  color:#fff;
}

.premium-heading{
  text-align:center;
  max-width:980px;
  margin:0 auto 42px;
}

.premium-heading > p:first-child{
  color:#c3a24d;
  letter-spacing:.18em;
  font-size:14px;
  margin-bottom:4px;
}

.premium-heading h2{
  color:#fff;
  font-family:serif;
  font-size:clamp(34px,4.6vw,58px);
  letter-spacing:.08em;
  margin:0;
}

.premium-heading span{
  display:block;
  width:70px;
  height:2px;
  background:#b79338;
  margin:22px auto;
}

.premium-heading .lead{
  color:#f1f4f8;
  font-size:17px;
}

.premium-panels{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:18px;
  max-width:1180px;
  margin:0 auto;
}

.premium-panel{
  background:#f7f7f4 !important;
  color:#111 !important;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 30px 70px rgba(0,0,0,.35);
  overflow:hidden;
}

.panel-title{
  display:flex;
  align-items:center;
  gap:16px;
  padding:24px 32px;
  background:linear-gradient(90deg,#05080d,#101923) !important;
  color:#fff !important;
}

.panel-title span{
  color:#c3a24d;
  font-size:30px;
}

.panel-title h3{
  color:#fff !important;
  font-family:serif;
  font-size:32px;
  letter-spacing:.05em;
  margin:0;
}

.panel-body{
  padding:28px 34px 34px;
}

.address{
  padding:0 !important;
  margin:0 0 18px !important;
  font-size:17px;
  line-height:1.9;
  color:#111 !important;
}

.map-frame{
  margin:0 0 24px !important;
  border:1px solid #d5d5d5;
  overflow:hidden;
}

.map-frame iframe{
  width:100% !important;
  height:300px !important;
  border:0;
  display:block;
}

.map-button{
  display:block;
  text-align:center;
  text-decoration:none;
  color:#fff !important;
  background:linear-gradient(90deg,#05080d,#141414);
  border:1px solid #b79338;
  padding:16px;
  font-weight:bold;
  letter-spacing:.05em;
}

.form-intro{
  padding:0 !important;
  margin:0 0 20px !important;
  color:#333 !important;
}

.premium-form{
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:11px !important;
  max-width:none !important;
}

.premium-form label{
  display:block;
  font-weight:bold;
  color:#111 !important;
  margin:6px 0 0 !important;
  font-size:15px;
}

.premium-form em{
  font-style:normal;
  background:#b83a32;
  color:#fff;
  font-size:12px;
  padding:2px 5px;
  margin-left:6px;
}

.premium-form input,
.premium-form textarea{
  display:block;
  width:100% !important;
  padding:13px 14px !important;
  border:1px solid #d0d0d0 !important;
  background:#fff !important;
  color:#111 !important;
  font-size:15px !important;
  border-radius:4px;
  font-family:inherit;
  box-sizing:border-box;
}

.premium-form input[type="file"]{
  padding:10px !important;
}

.premium-form textarea{
  resize:vertical;
  min-height:155px;
}

.file-note{
  font-size:13px;
  color:#444 !important;
  margin:-4px 0 2px !important;
}

.premium-form button{
  margin-top:10px;
  padding:16px;
  border:0;
  background:linear-gradient(90deg,#9b7a2f,#c2a24e);
  color:#fff;
  font-size:17px;
  font-weight:bold;
  cursor:pointer;
  border-radius:4px;
  box-shadow:0 10px 20px rgba(0,0,0,.18);
}

.premium-form small{
  display:block;
  text-align:center;
  color:#444 !important;
  margin-top:2px;
}

@media(max-width:1100px){
  .premium-panels{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:980px){
  .premium-contact-section{
    padding:72px 24px 34px !important;
  }

  .panel-title{
    padding:22px;
  }

  .panel-body{
    padding:22px;
  }

  .map-frame iframe{
    height:250px !important;
  }
}
