
  /* ===== CSS Variables (指示書の色/タイポ) ===== */

html { scroll-behavior:smooth; }

:root{ --headerH: 72px; }              
.anchor-target{ scroll-margin-top: var(--headerH); }
  :root{
    --blue:#2E6F96;           /* 見出し・ロゴ系 */
    --light-blue:#6FB5D1;     /* 大きな帯 */
    --pale-blue:#E6F1F6;      /* セクション背景 */
    --rule:#E6EAEF;           /* 罫線 */
    --news-rule:#CFD7DF;      /* NEWS仕切り */
    --body:#2D3136;           /* 本文色 */
    --page-w-min:800px;
    --page-w-max:1050px; /* 指示書は1050px固定だが、800〜1300可変にも配慮 */
  }

  /* ===== Reset (最小限) ===== */
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}

  /* ===== Base ===== */
  body{
    font-family:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN","Yu Gothic", "メイリオ", sans-serif;
    color:var(--body);
    font-size:15.5px; line-height:1.9;
    background:#fff;
    scroll-behavior:smooth;
  }
.wrap{
  width: min(92vw, var(--page-w-max)); /* ← 最小幅の縛りを排除 */
  margin: 0 auto;
}

  h1,h2{letter-spacing:.14em; margin:0 0 16px}
  h1{font-size:22px; line-height:1.4; font-weight:800; color:#fff}
  h2{font-size:14px; line-height:1.4; font-weight:700; color:var(--blue)}

  /* ===== New Header / Menu (standalone) ===== */
.mh-menu-btn{
  position:fixed; right:18px; top:16px;
  height:44px; padding:0 14px 0 16px;
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--rule, #E6EAEF); border-radius:9999px;
  background:#fff; z-index:1000; cursor:pointer;
}
.mh-menu-btn .label{
  font-size:12px; letter-spacing:.12em; font-weight:700;
  color:var(--blue, #2E6F96); text-transform:uppercase; line-height:1;
}
/* アイコンは currentColor を使うので、色は親の color に追随 */
.mh-menu-btn .ku-icn{
  display:inline-block; color:var(--blue, #2E6F96);
  width:18px; height:18px;
  transform:rotate(0deg);            /* 閉＝下向き（初期） */
  transform-origin:50% 50%;
  transition:transform .25s ease;
}
/* 開＝上向き（180°回転） */
.mh-menu-btn.is-open .ku-icn{ transform:rotate(180deg); }

/* ===== New Header / Menu (force transparent overlay) ===== */
.mh-menu{
  position:fixed; left:0; right:0; top:0;
  z-index:999;
  /* 本体は透明にして、擬似要素で半透明を敷く */
  background:transparent !important;
  border-bottom:1px solid var(--rule, #51a7ff);
  transform:translateY(-100%);
  transition:transform .35s ease;
  isolation:isolate;                 /* 背景効果のための分離 */
}
.mh-menu.is-open{ transform:translateY(0); }

/* 半透明の白＋ガラス感（blur）はココで表現 */
.mh-menu::before{
  content:"";
  position:absolute; inset:0;
  background:rgba(255,255,255,.92);   /* ← 透過度の調整はここ（.85〜.95 推奨） */
  backdrop-filter:saturate(120%) blur(6px);
  -webkit-backdrop-filter:saturate(120%) blur(6px);
  pointer-events:none;                /* クリックを邪魔しない */
  z-index:0;
}
.mh-menu::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  background: var(--blue, #51a7ff); /* 指定の濃青 */
  pointer-events:none;               /* クリックを邪魔しない */
  z-index:2;                         /* ::before(0) と内容(1)より上 */
}
/* 中身（リンクなど）は擬似要素の上に */
.mh-menu .wrap{ padding:18px 0; position:relative; z-index:1; }

.mh-nav-list{
  list-style:none; padding:0; margin:0;
  display:flex; gap:24px; flex-wrap:wrap;
}
.mh-nav-list a{
  color:var(--blue, #2E6F96); font-weight:700; font-size:14px; padding:8px 0;
  text-decoration:none;
}


 /* ===== HERO（Block1） exact spec ===== */
.hero{
  position:relative;
  width:100%;
  height:600px;                           /* 指示書：高さ600px */
  background:#000 url("assets/index01.png") center/cover no-repeat;
}
/* 読みやすさ確保：左から薄く暗いグラデ（デザイン見本準拠） */
.hero::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.35), rgba(0,0,0,0) 55%);
  pointer-events:none;
}

/* 左上ロゴ */
.hero .logo{
  position:absolute; left:24px; top:24px;
  width:130px; height:auto;                /* 見本の比率感に合わせて少し大きめ */
   filter:
    drop-shadow(0 0 1px #fff)
    drop-shadow(0 0 1px #fff)
    drop-shadow(0 0 1px #fff);
}

/* 左下コピー（白文字） */
.hero .copy{
  position:absolute; left:24px; bottom:50px;
  color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.35);
}
/* 見出し：14px + 下線（指示書のブロック1指定を優先） */
.hero .copy h1{
  font-size:16px; line-height:1.4;
  letter-spacing:.14em; font-weight:700;
  display:inline-block; padding-bottom:6px;
  border-bottom:2px solid rgba(255,255,255,.95); /* 下線 */
  margin:0;
}
/* 説明文：12px / 改行維持 */
.hero .copy .sub{
  font-size:14px; line-height:1.9; margin-top:10px;
}

/* ===== Block2: 斜めカット（背景も拡大＆フェード対応） ===== */

section.blk2{ padding: 0 !important; }
.blk2{
  position: relative;
  overflow: hidden;
  transform: translateY(16px);
  opacity: 0;
--bandH: 80px;                       
  padding-bottom: var(--bandH) !important;
  transition: transform .6s ease, opacity .6s ease;
  /* JSが更新するCSS変数 */
  --cScale: 1;   /* content scale */
  --cOpacity: 1; /* content opacity */
  --bScale: 1;   /* background scale */
  --bOpacity: 1; /* background opacity */
}
.blk2.is-in{
  transform: none;
  opacity: 1;
}
/* 背景：下端だけ斜め */
.blk2-bg{
  --cut: 96px; /* 斜めの段差(px) */
  position: absolute; inset: -1px 0 -1px 0;
  background: #c5e6f3;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--cut)), 0 100%);
  transform: scale(var(--bScale));
  opacity: var(--bOpacity);
  transform-origin: 50% 50%;
  z-index: 0; pointer-events: none;
}
/* 本文 */
.blk2-body{
  position: relative; z-index: 1;
  padding-top: 16px;
  padding-bottom: 80px; 
  transform: scale(var(--cScale));
  opacity: var(--cOpacity);
  transform-origin: 50% 50%;
  text-align: center;
}
/* スクロール追従でカクつき防止 */
.blk2.is-anim .blk2-bg,
.blk2.is-anim .blk2-body{
  transition: none !important;
  will-change: transform, opacity;
}
.blk2-text{
  text-align: center;
	font-size: 20px;
}



  /* ===== Section spacing ===== */
  section{padding:52px 0}
  section.news{padding:0 0 36px}

  /* ===== Section titles ===== */
  .sec-head{margin-bottom:16px}

/* ===== Block3: BUSINESS Cards (replace all) ===== */
.blk3{ padding:52px 0; }


/* 画面両端の余白を広げる：グリッド自体を狭くして中央に */
.blk3-grid{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr));
  gap: 35px; 
  max-width: 880px;          /* ← ここでカード領域を狭める（例：880px） */
  margin-inline: auto;       /* 中央寄せ */
}



/* 枠ぴったりに：パディング0 / 画像は100%幅・自動高 */
.blk3-fig{
  position: relative;
  margin: 0;
  padding: 0;
  border-radius: inherit;     /* ← カードの角丸を継承 */
  --bandH: 20%;               /* ← 帯の高さ：25%→50% など自由に変更 */
}

/* 画像を角丸までぴったり＆隙間なし */
.blk3-card{
  overflow: hidden;
  border-radius: 6px;    /* 角丸をカードと画像で一致させる */

}
.blk3-fig img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: inherit; /* 画像にも角丸を継承 */
}

/* グラデ削除 → 画像の下1/4に黒ベタ(透過80%) */
.blk3-fig::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;   /* ← 0 で内側ピタ */
  height: var(--bandH);                           /* ← figure 由来の変数を使用 */
  background: rgba(0,0,0,.50);
  z-index:1; pointer-events:none;
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
}

/* 帯の上に白文字キャプション */
.blk3-cap{
position:absolute; left:10px; right:10px; bottom:0;
  height: var(--bandH);
  display:flex; align-items:center;               /* 縦中央 */
  padding: 0 12px;
  z-index:2; color:#fff; font-size:14px; font-weight:700;
}

/* ほんのりホバー（任意） */
.blk3-card:hover .blk3-fig img{ transform:scale(1.02); }

/* Block3 見出し */
/* Font Awesomeアイコンのサイズ/並びを見出しにフィット */
.blk3 .sec-head{
  display:flex; align-items:center; gap:10px;
  font-size:28px; line-height:1.2;
  color:var(--blue, #2E6F96); margin:0 0 40px 0;
 justify-content: flex-end;
  text-align: right;
}
.blk3 .sec-head .sec-label{
  letter-spacing:.14em; font-weight:800;
}
.blk3 .sec-head .sec-icn{
  font-size:1.2em;      /* 見出し文字に対して少し大きめ */
  line-height:1;        /* 上下のズレ防止 */
}
/* ==== Block3：スクロール出現（左右スライド） ==== */
.blk3-card.reveal{
  opacity: 0;
  transform: translateX(var(--reveal-x, 0));
  transition:
    transform .6s cubic-bezier(.16,1,.3,1),
    opacity   .6s ease;
  transition-delay: 0ms;                 /* フェードアウトは遅延なし */
  will-change: transform, opacity;
}
/* 左列＝左→右、右列＝右→左 */
.blk3-grid > li.reveal:nth-child(odd){  --reveal-x: -32px; }
.blk3-grid > li.reveal:nth-child(even){ --reveal-x:  32px; }

.blk3-card.reveal.is-show{
  opacity: 1;
  transform: none;
  transition-delay: var(--delay, 0ms);   /* フェードインだけ段差を付ける */
}









  /* ===== Block4: NEWS ===== */
.blk4{ padding:52px 0; }

.blk4 .sec-head{
  display:flex; align-items:center; gap:10px;
  font-size:14px; line-height:1.4;
  color:var(--blue, #2E6F96);
  letter-spacing:.14em; font-weight:700;
  margin:0 0 16px;
}
.blk4 .sec-head .sec-icn{ font-size:1.1em; line-height:1; }

/* リスト枠：上下に罫線、行ごとにも罫線 */
.blk4-list{
  list-style:none; padding:0; margin:0;
  border-top:1px solid #CFD7DF;
  border-bottom:1px solid #CFD7DF;
  width:100%;             /* ← 固定幅をやめる */
  max-width:880px;        /* ← 上限だけ 880px */
  margin-inline:auto;     /* 中央寄せ */
}
.blk4-list > li{ border-top:1px solid #CFD7DF; }
.blk4-list > li:first-child{ border-top:none; }

/* 行：高さ48px、日付140px幅＋本文 */
.blk4-row{
  display:grid; grid-template-columns:140px 1fr;
  align-items:center; min-height:48px;
  padding:0 8px;
  text-decoration:none; color:inherit;
}
.blk4-date{ color:#6b7680; font-size:14px; }
.blk4-txt{ font-size:14px; }

/* ホバー：背景わずかに */
.blk4-row:hover{ background:#f6f8fa; }

.blk4 .sec-head{
  font-size: 28px;
  line-height: 1.2;
}



/* ===== Block5: 会社概要 ===== */
.blk5{ padding:52px 0; }
.blk5 .sec-head{
  display:flex; align-items:center; gap:10px;
  font-size:28px; line-height:1.2;
	
  color:var(--blue, #2E6F96);
  letter-spacing:.14em; font-weight:700;
  margin:0 0 16px;
}


/* 基本テーブル：2カラム（160px / 1fr） */
.blk5-table{
  display:block; background:#fff;
  border:1px solid var(--rule, #E6EAEF);
  border-radius:3px; overflow:hidden;
max-width: 880px;
	margin: auto;
}
.blk5-table .row{
  display:grid; grid-template-columns:160px 1fr;
  border-top:1px solid var(--rule, #E6EAEF);
}
.blk5-table .row:first-child{ border-top:none; }
.blk5-table .key{
  padding:14px; font-weight:700; color:var(--blue, #2E6F96);
  background:#fff; border-right:1px solid var(--rule, #E6EAEF);
}
.blk5-table .val{ padding:14px; background:#fff; }

/* 事業内容：列結合（常に1カラム固定） */
.blk5-table--biz .row--full-head,
.blk5-table--biz .row--full{
  display:grid;
  grid-template-columns:1fr !important;   /* ← ここで1カラムを強制 */
}
.blk5-table--biz .row--full-head{ border-top:1px solid var(--rule, #E6EAEF); }
.blk5-table--biz .row--full-head .key{
  padding:14px; font-weight:700; color:var(--blue, #2E6F96);
  background:#fff; border-right:none;
}
.blk5-table--biz .row--full .val{ padding:14px; background:#fff; }
.blk5-list{ margin:0; padding-left:18px; }
.blk5-list li{ list-style:disc; line-height:1.9; }

/* MAP埋め込み */
.blk5-map-embed{
  max-width:880px; margin:16px auto 0;
  border:1px solid var(--rule, #E6EAEF); border-radius:6px; overflow:hidden;
}
.blk5-map-embed iframe{ display:block; width:100%; aspect-ratio:16/9; border:0; }



/* ===== Block6: お問い合わせ ===== */
.blk6{ padding:52px 0; }
.blk6 .sec-head{
  display:flex; align-items:center; gap:10px;
  font-size:28px; line-height:1.2;
	
  color:var(--blue, #2E6F96);
  letter-spacing:.14em; font-weight:700;
  margin:0 0 16px;
}
.blk6 .sec-head .sec-label{ letter-spacing:.14em; font-weight:800; }
.blk6 .sec-head .sec-icn{ font-size:1.2em; line-height:1; }

.blk6-form{
  max-width:880px; margin:0 auto;
  background:#F7FAFC; border:1px solid var(--rule, #E6EAEF);
  border-radius:6px; padding:16px;
}
.blk6-form .row{ margin-bottom:14px; }
.blk6-form label{ display:block; font-weight:700; color:var(--blue, #2E6F96); margin-bottom:6px; }

.blk6-form input[type="text"],
.blk6-form input[type="email"],
.blk6-form input[type="tel"],
.blk6-form textarea{
  width:100%; font-size:14px;
  border:1px solid var(--rule, #E6EAEF); border-radius:6px;
  background:#fff; padding:12px 12px; line-height:1.6;
  outline: none; transition:border-color .15s ease, box-shadow .15s ease;
}
.blk6-form textarea{ resize:vertical; min-height:160px; }
.blk6-form input::placeholder, .blk6-form textarea::placeholder{ color:#9AA6B2; }

.blk6-form input:focus, .blk6-form textarea:focus{
  border-color:var(--blue, #2E6F96);
  box-shadow:0 0 0 3px rgba(46,111,150,.15);
}

/* チェックボックス */
.blk6-form .chk{ display:flex; gap:8px; align-items:center; font-weight:700; color:#2b3a45; }
.blk6-form .chk input{ width:18px; height:18px; }

/* 送信ボタン */
.blk6-form .btn{
  display:inline-block; min-width:160px; height:44px;
  padding:0 18px; border-radius:9999px; border:0;
  background:var(--blue, #2E6F96); color:#fff; font-weight:800; letter-spacing:.06em;
  cursor:pointer; transition:filter .2s ease, transform .06s ease;
}
.blk6-form .btn:hover{ filter:brightness(1.05); }
.blk6-form .btn:active{ transform:translateY(1px); }
.blk6-form .btn:disabled{ opacity:.45; cursor:not-allowed; }

/* エラーメッセージ */
.blk6-form .err{ display:none; color:#d33; font-size:12px; margin-top:6px; }
.blk6-form .invalid + .err{ display:block; }

/* 送信行・結果 */
.blk6-form .row-submit{ margin-top:18px; text-align: center;}
.blk6-result{ max-width:880px; margin:12px auto 0; font-weight:700; }

/* 蜜壺を隠す */
.blk6-form .hp{ position:absolute; left:-9999px; opacity:0; pointer-events:none; }



 /* ===== Footer (PC / 通常表示) ===== */
.site-footer{
  border-top:1px solid var(--rule, #e5e7eb);
  background:#f9fafb;
  color:#2b2b2b;
  padding:28px 16px 20px;
  font-size:14px;
  line-height:1.6;
}

.site-footer .ft-inner{
  max-width:800px;        
  margin:0 auto;
  display:grid;
   grid-template-columns: 3fr 2fr; 
  align-items: stretch;    
}

/* 左：ロゴ＋会社情報 */
.ft-left{
  display:flex;
  align-items:center;              /* 縦中央 */
  gap:20px;
  padding-right:24px;
  border-right:1px solid #ddd;    
}
.ft-logo img{
  width:100px;
  height:auto;
}
.ft-info{
  font-style:normal;
}
.ft-info .ft-name{
  font-weight:700;
  font-size:15px;
  margin:0 0 6px;
}
.ft-info .ft-addr{
  margin:0;
  color:#555;
}

/* 右：ナビ（2段×4項目） */
.ft-nav{
  display:flex;
  align-items:center;              
  justify-content:center;         
  padding-left:24px;
  min-height:100%;                
}
.ft-nav ul{
  display:grid;
  grid-template-columns: repeat(2, 1fr);  /* 2列×2段 */
  gap:10px 18px;
  margin:0; padding:0; list-style:none;   /* 余白のズレ要因を除去 */
}
.ft-nav a{
  text-decoration:none;
  color:#1f3a56;
  font-weight:700;
}
.ft-nav a:hover{
  border-color:#1f3a56;
  opacity:.85;
}
.ft-info{ font-style:normal; }
.ft-info p{ margin:0; }
.ft-info .ft-name{ margin:0 0 6px; }

/* コピーライト */
.ft-copy{
  display:block;
  max-width:1100px;
  margin:18px auto 0;
  padding-top:12px;
  border-top:1px solid #e5e7eb;
  color:#777;
  font-size:12px;
  text-align:center;
}



/* BUSINESSページ用の最小スタイル */
.blkB{ padding:40px 16px; }
.blkB .sec-head{
  max-width:800px; margin:0 auto 16px;
  font-size:28px; line-height:1.2; letter-spacing:.14em; font-weight:700;
}
.blkB .sec-head .sec-label{ display:block; font-weight:800; color:#1f3a56; }
.blkB .sec-title{ margin:6px 0 0; font-size:28px; font-weight:800; }
.blkB .sec-body{ max-width:800px; margin:0 auto; line-height:1.9; }
.blkB .sec-body h2{ margin:24px 0 8px; font-size:18px; }

/* ナビのアクティブ表示（ヘッダー） */
.mh-nav-list a.is-active{ border-bottom:2px solid currentColor; }






@media (max-width:768px){

  /* ---- ベース ---- */
  html{ font-size:15px; }
  body{ line-height:1.8; -webkit-text-size-adjust:100%; }
  img{ display:block; max-width:100%; height:auto; }
  .wrap{ padding-left:16px; padding-right:16px; }
  section{ padding-top:40px; padding-bottom:40px; }

  /* ---- Header / Menu ---- */
  .mh-menu-btn{ height:42px; padding:0 12px 0 14px; }
  .mh-menu .wrap{ padding:14px 0; }
  .mh-nav-list{ gap:16px; }
  .mh-nav-list{
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* ← 2列固定 */
    gap: 12px 16px;                        /* 行・列の間隔 */
    padding: 0;
    margin: 0;
  }
.mh-nav-list li:nth-child(2),
  .mh-nav-list li:nth-child(4){
    margin-left: -68px; 
  }	
	
	
  /* ---- Block1：ヒーロー ---- */
  .hero{
    /* 画像ソース切替（拡張子は実ファイルに合わせて変更してOK） */
    background-image:
      image-set(
        url("assets/index01m.png") 1x,
      ) !important;

    /* iOSの黒化バグ回避＋前回の位置/縮小調整も維持 */
    background-attachment: scroll !important;
    background-repeat: no-repeat !important;

   background-size: cover !important;

    /* 見せたい位置（お好みで微調整） */
    background-position: 80% 40% !important; /* 横80%・縦40% */

    /* ちょい“引き”で見せたい場合は高さを控えめに */
    height: clamp(440px, 58vh, 520px); /* 以前より少し低めに */
  }
	
  .hero .logo{
    width:90px;   
    height:auto;
  }
  .hero .copy{ left:16px; right:16px; bottom:30px; }
  .hero .copy h1{ font-size:14px; line-height:1.5; }
  .hero .copy .sub{ font-size:12px; line-height:1.9; }

  /* ---- Block2：斜め帯 (.blk2) ---- */
   .blk2{ 
　--bandH: 20px; 
　--cScale: 1;
  --cOpacity: 1;
  --bScale: 1;
  --bOpacity: 1;
  --cShift: 0px;
	}      
  .blk2 .blk2-body{ 
	  transform: translateY(var(--cShift)) scale(var(--cScale)); 
	padding-bottom: 0;
	}
  .blk2 .blk2-text{ font-size:13.5px; }
  .blk2-bg{ --cut:82px; }

  /* ---- Block3：BUSINESS カード ---- */
  .blk3{ padding:40px 0; }
  .blk3 .sec-head{
    font-size:24px; max-width:640px; margin:0 auto 16px;
    display:flex; gap:10px; align-items:center;
    justify-content:flex-end; text-align:right;
  }
  .blk3-grid{
    grid-template-columns:1fr; gap:18px; max-width:640px; margin-inline:auto;
  }

  /* 画像は枠いっぱい＆比率を統一（高さブレ防止） */
  .blk3-fig{ margin:0; padding:0; position:relative; border-radius:6px; --bandH:42%; }
  .blk3-fig img{
    width:100%; aspect-ratio: 16 / 10;   /* ← 高さを揃える */
    object-fit:cover; border-radius:inherit;
  }

  /* 黒帯＋キャプション（読みやすく幅いっぱい） */
  .blk3-fig::after{
    content:""; position:absolute; left:0; right:0; bottom:0;
    height:var(--bandH); background:rgba(0,0,0,.48);
    border-bottom-left-radius:inherit; border-bottom-right-radius:inherit; z-index:1;
  }
  .blk3-cap{
    position:absolute; left:10px; right:10px; bottom:0; height:var(--bandH);
    display:flex; align-items:center; padding:0 12px;
    color:#fff; font-size:13.5px; font-weight:700; z-index:2;
  }

  /* ホバーはタッチ端末で無効化 */
  .blk3-card:hover .blk3-fig img{ transform:none; }

  /* スライド出現は上下に簡略化（負荷軽減＆視認性） */
  .blk3-card.reveal{ transform: translateY(18px); }
  .blk3-grid > li.reveal:nth-child(odd),
  .blk3-grid > li.reveal:nth-child(even){ --reveal-x:0; }

  /* ---- Block4：NEWS ---- */
  .blk4{ padding:40px 0; }

  .blk4-list{ border-top:1px solid #CFD7DF; border-bottom:1px solid #CFD7DF; }
  .blk4-row{
    grid-template-columns:110px 1fr; min-height:56px; padding:0 8px;
  }
  .blk4-date, .blk4-txt{ font-size:14px; }

  /* ---- Block5：会社概要 ---- */
	.blk5 .wrap{
    width: 100% !important;           /* 92vw 等の既存指定を無効化 */
    padding-left: 5vw !important;     /* ← 左右5vwずつ = 中身は90% */
    padding-right: 5vw !important;
  }
  .blk5{ padding:40px 0; 
	--keyW: 75px;}

.blk5-table{ width: 100%; }
  .blk5-body{ width: 90vw;
    max-width: none;
    margin: 0 auto;
    padding: 12px;}
  .blk5-table .row{ grid-template-columns: var(--keyW) 1fr;}
  .blk5-table .key{ font-size:12px; }
  .blk5-table .val{ font-size:13px; }
  /* 事業内容（列結合は常に1カラム） */
  .blk5-table--biz .row--full-head,
  .blk5-table--biz .row--full{ grid-template-columns:1fr !important; }
  .blk5-list{ margin:0; padding-left:18px; }
  .blk5-list li{ list-style:disc; line-height:1.9; }
  /* 変な分割を防ぐ */
  .blk5 .val, .blk5-list{ word-break: break-word; overflow-wrap: anywhere; }

  /* MAPは4:3で見やすく */
  .blk5-map-embed{ max-width:640px; margin:16px auto 0; }
  .blk5-map-embed iframe{ aspect-ratio:4 / 3; }

  /* ---- Block6：お問い合わせ ---- */
  .blk6{ padding:40px 0; }

  .blk6-form{ padding:12px; max-width:640px; margin:0 auto; }
  .blk6-form .row{ margin-bottom:12px; }
  /* iOSの勝手にズーム防止：16px以上 */
  .blk6-form input[type="text"],
  .blk6-form input[type="email"],
  .blk6-form input[type="tel"],
  .blk6-form textarea{
    font-size:16px; min-height:44px;
  }
  .blk6-form textarea{ min-height:150px; }
  .blk6-form .btn{ width:100%; height:48px; }

  /* スクロール演出の負荷軽減 */
  .blk3-card.reveal{ transition-duration:.5s; }
	  .wrap{ width: calc(100% - 32px); }     /* 両端16pxの余白を強制 */
  .blk3 .sec-head,
  .blk4 .sec-head,
  .blk5 .sec-head,
  .blk6 .sec-head{ max-width:640px; margin:0 auto 16px; }
  .blk3-grid{ max-width:640px; }
  .blk5-table, .blk5-map-embed, .blk6-form{ max-width:640px; }
}
@media (hover:hover) and (pointer:fine){
  .blk3-fig img{
    transform-origin: 50% 50%;
    transition: transform .45s cubic-bezier(.16,1,.3,1); /* しっとり減速 */
    will-change: transform;
    backface-visibility: hidden;
  }
  .blk3-card:hover .blk3-fig img,
  .blk3-card:focus-within .blk3-fig img{
    transform: translateZ(0) scale(1.03); /* お好みで 1.02〜1.05 */
  }
}



