
/* =========================
  Vars
========================= */
:root{
  --paper:#fff;
  --ink:#111;
  --sub:#2a2a2a;
  --muted:#5a5a5a;
  --line:rgba(0,0,0,.14);
  --soft:#f6f6f6;
  --gold:#b7923a;
  --gold2:#d8b566;
  --max:1200px;

  /* gutter（最終の効きに合わせる：SP=12 / PC=34 / >=1100=44） */
  --gutter:12px;

  /* Step header offset（最終の効きに合わせる：PC=72 / SP=64） */
  --stepHeaderH:72px;

  /* “ずらし”用（最終の効きに合わせる：SP=64） */
  --spHeaderH:64px;
}

@media (min-width:768px){
  :root{ --gutter:34px; }
}
@media (min-width:1100px){
  :root{ --gutter:44px; }
}
@media (max-width:768px){
  :root{ --stepHeaderH:64px; }
}

/* =========================
  Base / Reset
========================= */
*{ box-sizing:border-box; }

html,body{
  margin:0;
  padding:0;
  background:var(--paper);
  color:var(--ink);
  font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif;
}

img{ max-width:100%; height:auto; display:block; }

a{ color:inherit; text-decoration:none; }
a:hover{
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}

/* スムーススクロール + アンカーのヘッダー隠れ防止 */
html{
  scroll-behavior:smooth;
  scroll-padding-top:var(--stepHeaderH);
}

/* =========================
  Layout
========================= */
.wrap{
  width:min(var(--max), calc(100% - (var(--gutter) * 2)));
  margin:0 auto;
}
.section{ padding:clamp(28px,4vw,56px) 0; }

/* =========================
  STEP規定CSS 影響（現状の効き維持）
========================= */
/* Step規定 main の余白・幅制御をLPでは無効化（現状の効き維持のためグローバルのまま） */
main{
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
main > *:first-child{ margin-top:0 !important; }

/* 余白・ズレ保険 */
html, body{ margin:0 !important; padding:0 !important; }
body{ top:0 !important; position:relative !important; }

/* ヘッダーを“最初から”固定最前面（現状の効き維持） */
#header, #globalHeader, #siteHeader,
header.site-header, header#header,
.header, .site-header, .global-header,
#gnav, #gNav, .gnav, .gNav,
.header_wrap, .header-inner, .head, .top_header, .headerArea{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  margin:0 !important;
  transform:none !important;
  z-index:2147483647 !important;
}
#header *, #globalHeader *, #siteHeader *,
header.site-header *, header#header *,
.header *, .site-header *, .global-header *{
  z-index:2147483647 !important;
}

/* “固定ヘッダー用スペーサー”が居たら無効化（現状の効き維持） */
.header-space, .header_spacer, #headerSpace, #header-spacer{
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
  display:none !important;
}

/* 白帯（ページタイトル帯など）候補を消す（現状の効き維持） */
.page-title,
.pagetitle,
.title_area,
.title-area,
#page_title,
#pageTitle,
.topicpath,
.breadcrumb,
#pan,
.pan,
.h1-area,
.h1_area,
.main_title,
.main-title{
  display:none !important;
}

/* =========================
  LP Scope
========================= */
.kmw{
  font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif;
  color:var(--ink);

  /* ヘッダー分ずらし（PCは --stepHeaderH / SPは --spHeaderH の“後勝ち”に合わせる） */
  padding-top:var(--stepHeaderH);
}
@media (max-width:768px){
  .kmw{ padding-top:var(--spHeaderH) !important; }
}

/* 見出し系：Step規定のSPスタイル干渉対策（現状の効き維持） */
.kmw h1, .kmw h2, .kmw h3{
  margin:0 !important;
  padding:0 !important;
  line-height:1.25 !important;
}

/* LP内h1/h2を取り返す（現状の効き維持） */
.kmw h1{
  margin:12px 0 10px !important;
  font-size:clamp(28px,4vw,46px) !important;
  line-height:1.12 !important;
  letter-spacing:.02em;
}
.kmw h2{
  margin:0 0 14px !important;
  font-size:22px !important;
  font-weight:1000 !important;
  line-height:1.25 !important;
}

/* あなたの見出しデザイン（.h2）最優先 */
.kmw .h2{
  margin:0 0 14px !important;
  font-size:22px !important;
  font-weight:1000 !important;
  letter-spacing:.02em !important;
  border-left:4px solid var(--gold) !important;
  padding-left:12px !important;
  line-height:1.25 !important;
}
@media (max-width:768px){
  .kmw .h2{
    font-size:18px !important;
    margin:0 0 12px !important;
    padding-left:10px !important;
    border-left-width:3px !important;
  }
  .kmw .pad{ padding:14px !important; }
}

/* Step側のpadding二重ガター対策（現状の効き維持） */
main, body{
  padding-left:0 !important;
  padding-right:0 !important;
}
.kmw .wrap{
  width:min(var(--max), calc(100% - (var(--gutter) * 2))) !important;
  margin:0 auto !important;
}

/* =========================
  Hero（背景画像+オーバーレイ：現状の“最終の効き”）
========================= */
.hero{
  position:relative;
  min-height:520px;
  display:flex;
  align-items:center;
  border-bottom:1px solid var(--line);
  background:#000;
  overflow:hidden;

  /* 既存の z-index/padding-top の最終状態を統合 */
  z-index:5;
  padding-top:84px;
}
@media (max-width:768px){
  .hero{ padding-top:72px; }
}

.hero-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
  opacity:.92;
  z-index:0;
}

.hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(
    90deg,
    rgba(0,0,0,.62) 0%,
    rgba(0,0,0,.42) 55%,
    rgba(0,0,0,.22) 100%
  );
}

.hero-inner{
  position:relative;
  z-index:2;
  width:100%;
  padding:60px 0 72px;
  color:#fff;
}

.hero-badge{
  display:inline-block;
  border:1px solid rgba(255,255,255,.40);
  padding:6px 10px;
  font-size:12px;
  letter-spacing:.08em;
  background:transparent !important;
  box-shadow:none !important;
  color:#fff;
}

.hero h1{
  color:#fff !important;
  text-shadow:0 2px 14px rgba(0,0,0,.60);
  background:transparent !important;
  box-shadow:none !important;
}
.hero h1::before,
.hero h1::after{
  content:none !important;
  display:none !important;
}

.hero-lead{
  margin:0;
  max-width:66ch;
  font-size:clamp(14px,1.6vw,17px);
  line-height:1.85;
  color:rgba(255,255,255,.92) !important;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
  background:transparent !important;
  box-shadow:none !important;
}

.hero-cta{
  margin-top:16px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:180px;
  padding:12px 16px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(0,0,0,.25);
  color:#fff;
  font-weight:900;
  letter-spacing:.02em;
  transition:.15s ease;
}
.btn:hover{ border-color:var(--gold2); }
.btn.primary{
  background:var(--gold2);
  border-color:var(--gold2);
  color:#1b1407;
}

.hero-meta{
  margin-top:14px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  font-size:13px;
}
.pill{
  border:1px solid rgba(255,255,255,.35);
  padding:6px 10px;
  background:rgba(0,0,0,.22);
  color:rgba(255,255,255,.92);
}

/* =========================
  Card / Text
========================= */
.card{
  border:1px solid var(--line);
  background:#fff;
  box-shadow:none;
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.pad{ padding:18px; }

.lead{
  margin:0;
  color:var(--sub);
  line-height:1.95;
  font-size:15px;
}
.lead strong{ color:var(--ink); font-weight:900; }

/* =========================
  Stage layout（Gallery + Spec）
========================= */
.kmw-stage{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:18px;
  align-items:stretch;
}
@media (max-width:980px){
  .kmw-stage{ grid-template-columns:1fr; }
}

/* stagebar */
.kmw-stagebar{
  border:1px solid var(--line);
  background:#fff;
  padding:14px 18px;
  margin:0 0 14px;
  display:flex;
  align-items:center;
}
.kmw-stagebar__title{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:24px;
  font-weight:1000;
  letter-spacing:.02em;
}
.kmw-stagebar__title::before{
  content:"";
  width:4px;
  height:22px;
  background:var(--gold);
  display:block;
}
@media (max-width:768px){
  .kmw-stagebar{ padding:12px 14px; margin-bottom:12px; }
  .kmw-stagebar__title{ font-size:16px; }
  .kmw-stagebar__title::before{ width:3px; height:18px; }
}

/* Gallery */
.kmw-galleryBody{
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1;
  min-height:520px;
}
.kmw-main{
  border:1px solid var(--line);
  background:var(--soft);
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;

  /* 最終の効き（4:3→3:4の上書きが後半にあったため3:4を採用） */
  aspect-ratio:3 / 4;
  min-height:0;
}
.kmw-main img{
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:1;
  transform:scale(1);
  transition:opacity .22s ease, transform .22s ease;
  will-change:opacity, transform;
}
.kmw-main img.is-switching{
  opacity:0;
  transform:scale(.985);
}

.kmw-thumbs{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
}
@media (max-width:860px){
  .kmw-thumbs{ grid-template-columns:repeat(3, 1fr); }
}
.kmw-thumb{
  border:1px solid var(--line);
  background:var(--soft);
  cursor:pointer;
  position:relative;
}
.kmw-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  aspect-ratio:4 / 3;
}
.kmw-thumb.active{
  outline:2px solid var(--gold2);
  outline-offset:2px;
}
.kmw-cap{
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
  margin:0;
}

/* サムネ：SP左表示 */
.kmw-thumbs--sp{ display:none; }
@media (max-width:980px){
  .kmw-thumbs--sp{ display:grid; }
  .spec .kmw-thumbs:not(.kmw-thumbs--sp){ display:none; }

  .kmw-galleryBody{ min-height:auto; }
  .kmw-main{ aspect-ratio:4 / 3; } /* SPだけは現状の最終意図に合わせて4:3 */
}

/* Spec */
.spec{
  display:flex;
  flex-direction:column;
  gap:14px;
  flex:1;
}
.price{
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  padding:14px;
}
.price .p1{
  margin:0;
  font-size:18px;
  font-weight:1000;
  letter-spacing:.02em;
  color:var(--ink);
  line-height:1.35;
}
.price .p2{
  margin:8px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
}

.spec-table{
  width:100%;
  border-collapse:collapse;
  border:1px solid var(--line);
  background:#fff;
}
.spec-table th,
.spec-table td{
  padding:12px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  line-height:1.85;
  font-size:14px;
}
.spec-table th{
  width:34%;
  background:var(--soft);
  color:var(--ink);
  font-weight:1000;
  letter-spacing:.02em;
}
.spec-table tr:last-child th,
.spec-table tr:last-child td{ border-bottom:none; }

.bullets{
  margin:0;
  padding-left:18px;
  color:var(--sub);
  line-height:1.9;
}
.note{
  border:1px solid rgba(183,146,58,.22);
  background:rgba(183,146,58,.08);
  padding:12px;
  color:var(--ink);
  line-height:1.9;
  font-size:14px;
}

/* Spec CTA */
.spec-cta{
  margin-top:auto;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.spec-cta .btn{
  background:#fff;
  color:var(--ink);
  border:1px solid rgba(0,0,0,.25);
  min-width:180px;
}
.spec-cta .btn.primary{
  background:var(--gold2);
  border-color:var(--gold2);
  color:#1b1407;
}

/* =========================
  Bottom CTA
========================= */
.cta{
  padding:18px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:center;
}
@media (max-width:720px){
  .cta{ grid-template-columns:1fr; }
}
.cta-title{
  margin:0 0 6px;
  font-size:18px;
  font-weight:1000;
  letter-spacing:.02em;
  color:var(--ink);
}
.cta-text{
  margin:0;
  color:var(--sub);
  line-height:1.9;
  font-size:14px;
}

/* =========================
  Contact
========================= */
.kmw-contact{
  padding:46px 0;
  background:#fff;
  border-top:1px solid var(--line);
}
.kmw-contactGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.kmw-contactGrid .kmw-contactCta{ grid-column:1 / -1; }
@media (max-width:820px){
  .kmw-contactGrid{ grid-template-columns:1fr; }
}
.kmw-contactCard{
  border:1px solid var(--line);
  background:#fff;
  padding:18px;
  display:grid;
  grid-template-columns:54px 1fr;
  gap:14px;
  align-items:center;
}
.kmw-contactIcon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
}
.kmw-contactIcon img{
  width:46px;
  height:46px;
  object-fit:contain;
}
.kmw-contactLabel{
  margin:0 0 4px;
  font-size:12px;
  letter-spacing:.10em;
  color:rgba(0,0,0,.60);
  font-weight:900;
}
.kmw-contactValue{
  margin:0;
  font-size:26px;
  font-weight:1000;
  letter-spacing:.02em;
  line-height:1.15;
  color:var(--ink);
}
.kmw-contactSub{
  margin:8px 0 0;
  font-size:13px;
  line-height:1.75;
  color:var(--sub);
}

/* 見積もりCTA内のボタン位置（最終の効き：縦並び中央） */
.kmw-contactCta .hero-cta{
  justify-content:center !important;
  flex-direction:column;
  align-items:center;
}

/* =========================
  Footer
========================= */
footer{
  padding:22px 0 44px;
  border-top:1px solid var(--line);
  color:rgba(0,0,0,.55);
  font-size:12px;
  background:#fff;
}
.foot{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
}

/* =========================
  Top Banner（コンテナ幅 / SP full-bleed）
========================= */
.kmw .kmw-topbnr{
  border-bottom:1px solid var(--line);
  background:#fff;
}
.kmw .kmw-topbnr img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
}

@media (max-width:768px){
  .kmw .kmw-topbnr > .wrap{
    width:100% !important;
    max-width:1200px !important;
    margin:0 auto !important;
  }

  .kmw .kmw-topbnr img{
    width:100%;
    height:auto;
    object-fit:contain;
    object-position:center center;
  }
}

/* =========================
  Radius OFF（角丸完全なし）
========================= */
.card, .btn, .pill, .hero-badge,
.kmw-main, .kmw-thumb,
.price, .spec-table, .note, .kmw-contactCard{
  border-radius:0 !important;
}

#breadcrumbs{
  display: block !important;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 18px;
  padding: 18px 20px 0;
  box-sizing: border-box;
  font-size: 13px;
}

#breadcrumbs ol{
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#breadcrumbs li{
  display: flex !important;
  align-items: center;
  gap: 8px;
  color: #666;
}

#breadcrumbs li:not(:last-child)::after{
  content: ">";
  color: #999;
  font-size: 11px;
}

#breadcrumbs a{
  color: #666;
  text-decoration: none;
}

#breadcrumbs a:hover{
  color: #222;
}