

/* =========================
   共通CSSの変数を、このページの世界観に合わせて上書き
========================= */
:root{
  --bg-body:#000;
  --bg-card:#000;
  --text-primary:#fff;
  --text-secondary:#88888b;
  --accent:#ff6b00;
  --easing:cubic-bezier(0.25, 1, 0.5, 1);

  /* このページ固有 */
  --accent-glow: rgba(255, 107, 0, 0.3);
  --line: rgba(255, 255, 255, 0.1);
}

/* =========================
   Base
========================= */
html{ scroll-behavior:smooth; }

body{
  background:var(--bg-body);
  color:var(--text-primary);
  font-family:"Inter", sans-serif;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{
  max-width:100%;
  height:auto;
  display:block;
  filter:saturate(0.8) contrast(1.1);
}

.dot{ color:var(--accent); }

/* =========================
   Decoration
========================= */
.ambient-glow{
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  background:radial-gradient(circle at 80% 20%, rgba(255, 107, 0, 0.04) 0%, transparent 40%);
  z-index:-1;
  pointer-events:none;
}

/* =========================
   Navigation（共通ナビを元デザインに上書き）
========================= */
.nav.nav--welding{
  height:auto;              /* commonの80px固定を解除 */
  padding:40px;
 background: #000000;  /* commonのガラス背景を解除 */
  border-bottom:none;
  mix-blend-mode:difference;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  z-index: 1000;
  
}

.nav.nav--welding .nav__container{
  max-width:1400px; /* 元デザイン */
  padding:0;        /* commonの左右paddingを打ち消す */
}

.nav__logo--welding{
  font-weight:900;
  font-size:1.2rem;
  letter-spacing:0.2em;
  color:#fff;
}

.nav__menu--welding{
  display:flex;
  gap:40px;
  list-style:none;
}

.nav__link--welding{
  font-size:0.75rem;
  text-transform:uppercase;
  letter-spacing:0.2em;
  color:#fff;
  opacity:0.6;
  transition:0.4s;
}
.nav__link--welding:hover{
  opacity:1;
  color:var(--accent);
}

/* トグルはPCでは不要なので非表示（commonはSPで表示になる） */
.nav.nav--welding .nav__toggle{ display:none; }

/* =========================
   Hero
========================= */
.hero.hero--welding{
  height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  position:relative;
  overflow:hidden;
}

.hero__bg{
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  z-index:-1;
}
.hero__bg img{
  width:100%; height:100%;
  object-fit:cover;
  opacity:0.4;
  filter:grayscale(0.5) contrast(1.2) brightness(0.8);
}

.hero__inner{ position:relative; z-index:1; }

.hero__eyebrow{
  font-size:0.75rem;
  letter-spacing:0.5em;
  text-transform:uppercase;
  color:var(--text-secondary);
  margin-bottom:20px;
}

.hero__title{
  font-size:clamp(4rem, 15vw, 10rem);
  line-height:0.85;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-0.04em;
}
.hero__title .stroke{
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,0.4);
}
.hero__title .orange{
  color:var(--accent);
  text-shadow:0 0 50px var(--accent-glow);
}

.hero__desc{
  margin-top:40px;
  font-size:1rem;
  color:var(--text-secondary);
  letter-spacing:0.1em;
}

.scroll-hint{
  position:absolute;
  bottom:40px;
  font-size:0.7rem;
  text-transform:uppercase;
  letter-spacing:0.3em;
  color:var(--text-secondary);
  text-decoration:none;
  writing-mode:vertical-rl;
  z-index:1;
}

/* =========================
   Sections / Typography
========================= */
.section{ padding:180px 0; }

/* commonのcontainerを元デザインに上書き */
.container{
  max-width:1200px;
  margin:0 auto;
  padding:0 40px;
}

.label{
  font-size:0.75rem;
  color:var(--accent);
  font-weight:700;
  letter-spacing:0.4em;
  text-transform:uppercase;
  margin-bottom:20px;
}

.section-title{
  font-family:"Playfair Display", serif;
  font-size:4rem;
  line-height:1.1;
  font-weight:400;
  margin-bottom:40px;
}
.section-title i{ font-style:italic; font-weight:700; }

.section-title-md{
  font-size:3rem;
  font-weight:900;
  margin-bottom:60px;
}

/* =========================
   Philosophy split
========================= */
.split-content{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}

.text-block{
  font-size:1.1rem;
  color:var(--text-secondary);
  line-height:2;
}

.split-content__visual{
  height:500px;
  border:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.split-content__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s var(--easing), filter .6s var(--easing);
  filter:grayscale(0.3);
}
.split-content__visual:hover img{
  transform:scale(1.03);
  filter:grayscale(0);
}

/* =========================
   Bento Grid
========================= */
.bento-grid.bento-grid--welding{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2px;
  background:var(--line);
  border:1px solid var(--line);
}

.bento-item{
  background:var(--bg-body);
  transition:.5s;
  overflow:hidden;
}
.bento-item:hover{ background:#0a0a0a; }

.bento-img{
  height:240px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.bento-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s, filter .6s, opacity .6s;
  opacity:0.8;
  filter:grayscale(0.5);
}
.bento-item:hover .bento-img img{
  transform:scale(1.05);
  opacity:1;
  filter:grayscale(0);
}

.bento-content{ padding:40px; }

.bento-num{
  display:block;
  font-size:0.8rem;
  font-weight:700;
  color:var(--accent);
  margin-bottom:20px;
}
.bento-item h3{
  font-size:1.8rem;
  margin-bottom:15px;
  font-family:"Playfair Display", serif;
}
.bento-item p{
  color:var(--text-secondary);
  font-size:0.95rem;
  line-height:1.8;
}

/* =========================
   Contact
========================= */
.contact.contact--welding{
  position:relative;
  overflow:hidden;
}
.contact__bg{
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  z-index:-1;
}
.contact__bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0.2;
  filter:blur(5px) grayscale(0.8);
}

.contact__container{ position:relative; z-index:1; }

.contact__box{
  text-align:center;
  border-top:1px solid var(--line);
  padding-top:100px;
}

.contact__link{
  font-size:clamp(2.5rem, 8vw, 6.5rem);
  font-weight:900;
  color:#fff;
  text-decoration:none;
  transition:.5s;
  display:inline-block;
  line-height:1;
  text-shadow:0 5px 30px rgba(0,0,0,0.5);
}
.contact__link:hover{
  color:var(--accent);
  transform:skewX(-5deg);
}

.contact__sub{
  margin-top:30px;
  color:var(--text-secondary);
  letter-spacing:0.1em;
}

/* =========================
   Image strip
========================= */
.image-strip{
  display:flex;
  width:100%;
  height:120px;
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.image-strip img{
  flex:1;
  min-width:0;
  object-fit:cover;
  filter:grayscale(1) brightness(0.6);
  transition:.4s;
  cursor:crosshair;
}
.image-strip img:hover{
  filter:grayscale(0) brightness(1);
  flex:1.5;
}

/* =========================
   Footer
========================= */
.footer.footer--welding{
  padding:80px 40px 40px;
  border-top:none; /* commonの線はここでは不要 */
  text-align:left; /* commonはcenter寄りなので元デザイン優先 */
}
.footer__container{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
}
.footer__brand{
  font-weight:900;
  letter-spacing:0.2em;
  font-size:1.2rem;
}
.footer__info,
.footer__copy{
  font-size:0.65rem;
  color:#444;
  text-transform:uppercase;
  letter-spacing:0.2em;
}

/* =========================
   Mobile（元デザイン維持：nav links消す）
========================= */
@media (max-width:900px){
  .split-content,
  .bento-grid.bento-grid--welding{
    grid-template-columns:1fr;
  }

  .section{ padding:100px 0; }
  .section-title{ font-size:2.8rem; }

  .nav.nav--welding{ padding:20px; }
  .nav.nav--welding .nav__toggle{ display:flex; } /* スマホはメニュー開閉にする */
  .nav__menu--welding{
    position:fixed;
    top:60px;
    right:0;
    width:100%;
    height:0;
    background:#000;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    transition:height .4s var(--easing);
    gap:20px;
  }
  .nav__menu--welding.is-active{
    height:calc(100vh - 60px);
  }

  .footer__container{
    flex-direction:column;
    align-items:flex-start;
    gap:30px;
  }

  .bento-img{ height:200px; }
  .image-strip{ height:80px; }
}

.top-logo-img {
  width: 30%;        /* ← 100%を無効化 */
  height: 58px;       /* ← 好みで 32〜42px */
  max-width: none;
  display: block;
}