*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  /* ダークグラファイト＋シアン（精密加工のテクニカル感） */
  --yellow:#06b6d4;--yellow-dark:#0891b2;  /* シアン */
  --charcoal:#1f2937;--charcoal-2:#374151; /* ダークグラファイト */
  --gray:#525252;--gray-light:#737373;
  --cream:#f3f4f6;--white:#fff;
  --text:#111827;--border:#e5e7eb;
  --accent:#ef4444;
}
/* ヒーロー写真カードのキャッチを製造業向けに */
.hero-photo-card::after{content:'PRECISION CRAFT' !important;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;color:var(--text);background:var(--white);line-height:1.7;}

img{display:block;max-width:100%;}
a{color:inherit;}

/* Demo tag */
.demo-tag{position:fixed;top:0;left:0;right:0;background:#1e293b;color:white;text-align:center;padding:6px;font-size:0.7rem;letter-spacing:0.1em;z-index:200;}

/* Header */
header{position:fixed;top:32px;left:0;right:0;background:var(--charcoal);z-index:100;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 56px;border-bottom:4px solid var(--yellow);}
.logo{display:flex;align-items:center;gap:14px;color:white;text-decoration:none;font-size:1.05rem;font-weight:900;}
.logo-mark{width:46px;height:46px;background:var(--yellow);color:var(--charcoal);display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-weight:700;font-size:1.3rem;letter-spacing:-0.05em;border-radius:0;clip-path:polygon(0 0,100% 0,100% 80%,80% 100%,0 100%);}
nav{display:flex;align-items:center;gap:6px;}
nav a{color:rgba(255,255,255,0.7);text-decoration:none;font-size:0.85rem;padding:8px 14px;font-weight:500;}
nav a:hover{color:var(--yellow);}
nav a.current{color:var(--yellow);}
.nav-cta{background:var(--yellow)!important;color:var(--charcoal)!important;font-weight:900!important;padding:11px 22px!important;}

/* Hero (top page) */
.hero{padding:140px 80px 80px;background:var(--charcoal);min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;color:white;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:0;left:0;right:0;height:8px;background:repeating-linear-gradient(45deg,var(--yellow) 0,var(--yellow) 20px,var(--charcoal) 20px,var(--charcoal) 40px);}
.hero::after{content:'';position:absolute;bottom:-100px;right:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(250,204,21,0.1) 0%,transparent 70%);}
.hero-text{position:relative;z-index:1;}
.hero-tag{display:inline-flex;align-items:center;gap:10px;background:var(--yellow);color:var(--charcoal);font-family:'Oswald',sans-serif;font-size:0.95rem;letter-spacing:0.15em;padding:6px 16px;font-weight:700;margin-bottom:28px;}
.hero h1{font-family:'Oswald',sans-serif;font-size:clamp(3rem,5vw,5rem);font-weight:700;line-height:1;margin-bottom:14px;letter-spacing:-0.02em;color:white;text-transform:uppercase;}
.hero-jp{font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:900;color:white;margin-bottom:32px;line-height:1.4;}
.hero-jp em{font-style:normal;color:var(--yellow);background:linear-gradient(transparent 60%,rgba(250,204,21,0.2) 60%);}
.hero p{color:rgba(255,255,255,0.7);font-size:1rem;line-height:2;margin-bottom:36px;max-width:520px;}
.hero-stats{display:flex;gap:14px;margin-bottom:36px;flex-wrap:wrap;}
.hero-stat{background:rgba(255,255,255,0.05);border:2px solid var(--yellow);padding:14px 22px;text-align:center;}
.hero-stat strong{display:block;font-family:'Oswald',sans-serif;font-size:2rem;font-weight:700;color:var(--yellow);line-height:1;}
.hero-stat span{font-size:0.72rem;color:rgba(255,255,255,0.7);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;}
.btn{display:inline-block;background:var(--yellow);color:var(--charcoal);padding:18px 40px;text-decoration:none;font-weight:900;font-size:1rem;text-transform:uppercase;letter-spacing:0.1em;font-family:'Oswald',sans-serif;font-size:1.05rem;letter-spacing:0.15em;transition:background 0.2s;cursor:pointer;border:none;}
.btn:hover{background:var(--yellow-dark);}
.btn-out{background:transparent;border:2px solid white;color:white;margin-left:10px;}
.btn-out:hover{background:white;color:var(--charcoal);}
.hero-visual{display:flex;align-items:center;justify-content:center;position:relative;}
.hero-photo-card{width:100%;max-width:440px;aspect-ratio:4/5;position:relative;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,0.5);}
.hero-photo-card img{width:100%;height:100%;object-fit:cover;filter:contrast(1.05);}
.hero-photo-card::before{content:'';position:absolute;top:0;left:0;right:0;height:8px;background:repeating-linear-gradient(45deg,var(--yellow) 0,var(--yellow) 16px,var(--charcoal) 16px,var(--charcoal) 32px);z-index:2;}
.hero-photo-card::after{content:'SAFETY FIRST';position:absolute;bottom:24px;left:0;right:0;color:var(--yellow);font-family:'Oswald',sans-serif;font-size:1.2rem;letter-spacing:0.3em;font-weight:700;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,0.8);z-index:2;}
.hero-photo-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,transparent 60%,rgba(23,23,23,0.7) 100%);z-index:1;}

/* Page hero (other pages) */
.page-hero{padding:160px 80px 80px;background:var(--charcoal);color:white;position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:8px;background:repeating-linear-gradient(45deg,var(--yellow) 0,var(--yellow) 20px,var(--charcoal) 20px,var(--charcoal) 40px);}
.page-hero-bg{position:absolute;inset:0;opacity:0.25;}
.page-hero-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(0.3) contrast(1.1);}
.page-hero-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;}
.page-hero .crumb{font-family:'Oswald',sans-serif;color:var(--yellow);font-size:0.8rem;letter-spacing:0.2em;font-weight:700;margin-bottom:14px;text-transform:uppercase;}
.page-hero h1{font-family:'Oswald',sans-serif;font-size:clamp(2.4rem,4.5vw,4rem);font-weight:700;line-height:1;letter-spacing:-0.02em;margin-bottom:14px;text-transform:uppercase;}
.page-hero .h1-jp{font-size:1.4rem;font-weight:900;color:white;}
.page-hero p{color:rgba(255,255,255,0.7);font-size:0.95rem;line-height:2;max-width:640px;margin-top:18px;}

/* Section */
.section{padding:120px 80px;}
.section-tag{display:inline-flex;align-items:center;gap:10px;background:var(--charcoal);color:var(--yellow);font-family:'Oswald',sans-serif;font-size:0.85rem;letter-spacing:0.2em;padding:5px 14px;font-weight:700;margin-bottom:18px;text-transform:uppercase;}
.section h2{font-family:'Oswald',sans-serif;font-size:clamp(2.4rem,4vw,3.6rem);font-weight:700;line-height:1.05;margin-bottom:14px;text-transform:uppercase;letter-spacing:-0.01em;}
.section h2 em{font-style:normal;color:var(--yellow-dark);}
.section-jp{font-size:1.4rem;font-weight:900;margin-bottom:18px;}
.section-lead{color:var(--gray);font-size:0.95rem;line-height:2;max-width:560px;margin-bottom:48px;}

/* Services */
.services{background:var(--cream);}
.services-head{text-align:center;}
.services-head .section-lead{margin:0 auto 56px;}
.services-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.service-item{background:white;padding:48px 36px;border-bottom:6px solid var(--yellow);position:relative;transition:transform 0.2s;}
.service-item:hover{transform:translateY(-4px);}
.service-item::before{content:attr(data-num);position:absolute;top:24px;right:24px;font-family:'Oswald',sans-serif;font-size:3rem;color:var(--cream);font-weight:700;line-height:1;}
.service-icon{width:64px;height:64px;background:var(--charcoal);color:var(--yellow);display:flex;align-items:center;justify-content:center;margin-bottom:24px;}
.service-icon svg{width:32px;height:32px;}
.service-item h3{font-family:'Oswald',sans-serif;font-size:1.6rem;font-weight:700;margin-bottom:6px;text-transform:uppercase;}
.service-item .h3-jp{font-size:1.05rem;font-weight:900;margin-bottom:14px;}
.service-item p{color:var(--gray);font-size:0.88rem;line-height:1.9;}

/* Works */
.works{background:white;}
.works-head{text-align:center;}
.works-head .section-lead{margin:0 auto 56px;}
.works-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;}
.work-card{position:relative;aspect-ratio:1;overflow:hidden;background:linear-gradient(135deg,var(--charcoal-2),var(--charcoal));display:flex;align-items:flex-end;padding:24px;color:white;cursor:pointer;text-decoration:none;}
.work-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(0.5) contrast(1.1);transition:transform 0.4s,filter 0.4s;}
.work-card:hover img{transform:scale(1.05);filter:brightness(0.65) contrast(1.1);}
.work-card::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,transparent 50%,rgba(0,0,0,0.7) 100%);z-index:1;}
.work-card-content{position:relative;z-index:2;}
.work-cat{font-family:'Oswald',sans-serif;color:var(--yellow);font-size:0.78rem;letter-spacing:0.2em;font-weight:700;margin-bottom:10px;text-transform:uppercase;}
.work-card h3{font-size:1.05rem;font-weight:900;margin-bottom:6px;}
.work-card p{font-size:0.78rem;color:rgba(255,255,255,0.7);}

/* Numbers */
.numbers{background:var(--charcoal);color:white;padding:96px 80px;border-top:8px solid var(--yellow);border-bottom:8px solid var(--yellow);}
.numbers-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.num-card{padding:24px;text-align:center;border-right:1px solid rgba(255,255,255,0.15);}
.num-card:last-child{border-right:none;}
.num-card .big{font-family:'Oswald',sans-serif;font-size:3.6rem;font-weight:700;color:var(--yellow);line-height:1;}
.num-card .big span{font-size:1.3rem;}
.num-card .lbl{color:rgba(255,255,255,0.7);font-family:'Oswald',sans-serif;font-size:0.85rem;letter-spacing:0.1em;text-transform:uppercase;margin-top:10px;font-weight:700;}

/* Why */
.why{background:var(--cream);}
.why-head{text-align:center;}
.why-head .section-lead{margin:0 auto 56px;}
.why-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.why-card{background:white;padding:36px 28px;border-top:4px solid var(--yellow);}
.why-num{font-family:'Oswald',sans-serif;color:var(--yellow-dark);font-size:1.2rem;letter-spacing:0.2em;font-weight:700;margin-bottom:14px;}
.why-card h3{font-size:1.1rem;font-weight:900;margin-bottom:10px;}
.why-card p{font-size:0.85rem;color:var(--gray);line-height:1.9;}

/* CTA */
.cta-section{background:var(--yellow);color:var(--charcoal);padding:96px 40px;text-align:center;position:relative;overflow:hidden;}
.cta-section::before{content:'';position:absolute;top:0;left:0;right:0;height:8px;background:repeating-linear-gradient(45deg,var(--charcoal) 0,var(--charcoal) 20px,var(--yellow) 20px,var(--yellow) 40px);}
.cta-section h2{color:var(--charcoal);font-family:'Oswald',sans-serif;font-size:clamp(2rem,3.5vw,3.4rem);margin-bottom:14px;text-transform:uppercase;}
.cta-section p{color:rgba(0,0,0,0.7);font-size:1rem;margin-bottom:32px;font-weight:700;}
.cta-section .btn{background:var(--charcoal);color:white;}
.cta-section .btn:hover{background:var(--charcoal-2);color:var(--yellow);}

/* Generic content blocks */
.container{max-width:1100px;margin:0 auto;}
.container-narrow{max-width:840px;margin:0 auto;}

/* About: greeting */
.greeting{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:start;max-width:1100px;margin:0 auto;}
.greeting-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--charcoal);}
.greeting-photo img{width:100%;height:100%;object-fit:cover;}
.greeting-photo::after{content:'';position:absolute;left:0;bottom:0;width:60%;height:8px;background:var(--yellow);}
.greeting-text h3{font-size:1.4rem;font-weight:900;margin-bottom:10px;line-height:1.5;}
.greeting-text .ceo-en{font-family:'Oswald',sans-serif;color:var(--yellow-dark);font-size:0.95rem;letter-spacing:0.2em;font-weight:700;margin-bottom:24px;display:block;text-transform:uppercase;}
.greeting-text p{color:var(--gray);font-size:0.95rem;line-height:2;margin-bottom:18px;}
.greeting-sign{margin-top:28px;font-weight:900;font-size:1rem;}
.greeting-sign small{display:block;color:var(--gray);font-weight:500;font-size:0.78rem;margin-bottom:6px;}

/* History */
.history{max-width:840px;margin:0 auto;}
.history-row{display:grid;grid-template-columns:120px 1fr;gap:32px;padding:22px 0;border-bottom:1px solid var(--border);}
.history-row:last-child{border-bottom:none;}
.history-year{font-family:'Oswald',sans-serif;color:var(--yellow-dark);font-size:1.2rem;font-weight:700;}
.history-event{font-size:0.95rem;color:var(--text);line-height:1.7;}

/* Info table */
.info-table{width:100%;border-collapse:collapse;}
.info-table th,.info-table td{text-align:left;padding:18px 12px;border-bottom:1px solid var(--border);font-size:0.92rem;}
.info-table th{width:200px;color:var(--gray);font-weight:700;background:var(--cream);padding-left:20px;}
.info-table td{color:var(--text);line-height:1.8;}

/* News */
.news-list{max-width:920px;margin:0 auto;}
.news-row{display:grid;grid-template-columns:120px 100px 1fr;gap:24px;align-items:start;padding:24px 0;border-bottom:1px solid var(--border);}
.news-date{font-family:'Oswald',sans-serif;color:var(--gray-light);font-size:0.92rem;font-weight:700;letter-spacing:0.05em;}
.news-cat{font-family:'Oswald',sans-serif;font-size:0.7rem;letter-spacing:0.15em;font-weight:700;text-transform:uppercase;background:var(--charcoal);color:var(--yellow);padding:4px 8px;text-align:center;}
.news-cat.notice{background:var(--yellow);color:var(--charcoal);}
.news-cat.media{background:var(--accent);color:white;}
.news-title{font-size:0.98rem;font-weight:700;color:var(--text);}

/* Contact form */
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;max-width:1100px;margin:0 auto;}
.contact-info h3{font-size:1.05rem;font-weight:900;margin-bottom:14px;}
.contact-info-block{margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid var(--border);}
.contact-info-block .lbl{font-family:'Oswald',sans-serif;color:var(--yellow-dark);font-size:0.78rem;letter-spacing:0.2em;font-weight:700;margin-bottom:6px;text-transform:uppercase;}
.contact-info-block .v{font-size:1.1rem;font-weight:900;line-height:1.6;}
.contact-info-block .v small{display:block;font-size:0.78rem;font-weight:500;color:var(--gray);margin-top:4px;}
.contact-form{background:var(--cream);padding:48px;}
.field{margin-bottom:22px;}
.field label{display:block;font-size:0.85rem;font-weight:900;margin-bottom:8px;}
.field label .req{color:var(--accent);font-size:0.75rem;margin-left:6px;}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:2px solid var(--border);font-family:inherit;font-size:0.95rem;background:white;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--yellow);}
.field textarea{min-height:140px;resize:vertical;}
.contact-form .btn{width:100%;padding:18px;border:none;cursor:pointer;}

/* Footer */
footer{background:var(--charcoal);color:rgba(255,255,255,0.6);padding:64px 80px 32px;}
.footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,0.1);margin-bottom:24px;}
.footer-logo{display:flex;align-items:center;gap:14px;color:white;font-size:1rem;font-weight:900;margin-bottom:14px;}
.footer-info{font-size:0.82rem;line-height:2;}
.footer-nav{display:flex;flex-direction:column;gap:8px;}
.footer-nav a{color:rgba(255,255,255,0.5);text-decoration:none;font-size:0.85rem;}
.footer-nav a:hover{color:var(--yellow);}
.footer-copy{font-size:0.72rem;color:rgba(255,255,255,0.3);text-align:center;}

/* Mobile */
@media(max-width:900px){
  header{padding:0 24px;}
  nav a:not(.nav-cta){display:none;}
  .hero{grid-template-columns:1fr;padding:130px 24px 60px;}
  .page-hero{padding:130px 24px 60px;}
  .section,.numbers{padding:64px 24px;}
  .services-grid,.works-grid{grid-template-columns:1fr;}
  .numbers-grid{grid-template-columns:1fr 1fr;}
  .num-card{border-right:0;border-bottom:1px solid rgba(255,255,255,0.15);}
  .why-grid{grid-template-columns:1fr;}
  .cta-section{padding:64px 24px;}
  footer{padding:48px 24px 24px;}
  .greeting,.contact-grid{grid-template-columns:1fr;gap:36px;}
  .news-row{grid-template-columns:1fr;gap:6px;}
  .history-row{grid-template-columns:80px 1fr;gap:16px;}
  .info-table th{width:100px;padding-left:10px;font-size:0.82rem;}
  .contact-form{padding:32px 24px;}
}
