:root {
  /* 面 */
  --c-base: #F6F2EA;        /* S1/S3/S5/S8/S10 背景・body */
  --c-alt: #EBE4D6;         /* S2/S4/S6/S9 背景 */
  --c-surface: #FCFAF5;     /* 浮きカード */
  --c-dark: #2C2824;        /* S7 暗転面 */
  --c-header: oklch(.29 .045 158);
  --c-footer: oklch(.27 .045 158);
  --c-footer-deep: #252019; /* フッター最下段 */
  /* 文字 */
  --c-ink: #2C2824;
  --c-ink-2: #3f3933;
  --c-ink-3: #544c43;
  --c-muted: #8a8278;
  --c-on-dark: #b3c0b7;     /* 暗面上の淡文字 */
  /* ブランド緑 */
  --c-green: oklch(.40 .05 158);
  --c-green-mid: oklch(.44 .05 158);
  --c-green-bright: oklch(.50 .055 158);
  /* 線・境界 */
  --c-line: #E4DCD0;
  --c-line-footer: oklch(.36 .04 158);
  /* 字体 */
  --font-body: 'Noto Sans JP', sans-serif;
  --font-en: 'Mulish', sans-serif;
  --font-serif: 'Noto Serif JP', serif;
}

/* ==================== ベースリセット（トップの<style>ブロックより移植） ==================== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: "Noto Sans JP", sans-serif; background: #F6F2EA; color: #2C2824; -webkit-font-smoothing: antialiased; }
::selection { background: oklch(.50 .055 158 / .20); }

/* ==================== ヘッダー（_header.html） ==================== */
.msb-header { position:sticky; top:0; z-index:60; background:oklch(.29 .045 158); border-bottom:1px solid oklch(.37 .045 158); box-shadow:none; }
.msb-header-inner { max-width:1180px; margin:0 auto; padding:11px 32px; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:64px; }
.msb-logo { display:flex; flex-direction:column; line-height:1; text-decoration:none; flex-shrink:0; }
.msb-logo-main { font-family:'Mulish',sans-serif; font-size:21px; font-weight:800; letter-spacing:-.015em; }
.msb-logo-meister { color:#F3EFE7; }
.msb-logo-support { color:#9db0a4; font-weight:600; }
.msb-logo-sub { font-family:'Noto Sans JP',sans-serif; font-size:8.5px; letter-spacing:.2em; color:#93a397; margin-top:6px; }
.msb-nav { display:flex; align-items:center; gap:26px; }
.msb-biz-trigger { position:relative; }
.msb-biz-btn { font-family:'Noto Sans JP',sans-serif; font-size:13.5px; color:#dbe2dc; background:none; border:none; cursor:pointer; padding:6px 0; display:inline-flex; align-items:center; gap:5px; }
.msb-biz-btn-arrow { font-size:9px; color:#8fa79a; }
.msb-biz-panel { position:absolute; top:100%; left:-24px; padding-top:14px; }
.msb-biz-panel-inner { width:640px; background:#FCFAF5; border:1px solid #E4DCD0; border-radius:14px; box-shadow:0 20px 48px rgba(40,36,30,.16); padding:26px 28px; display:grid; grid-template-columns:1fr 1fr; gap:12px 34px; }
.msb-biz-group-title { grid-column:1 / -1; font-size:11.5px; font-weight:700; letter-spacing:.06em; color:#2C2824; border-bottom:1px solid #ECE6DB; padding-bottom:10px; }
.msb-biz-group-title--spaced { margin-top:8px; }
.msb-biz-item { text-decoration:none; padding:9px 8px; border-radius:8px; display:block; }
.msb-biz-item-title { font-size:14px; font-weight:700; color:#2C2824; }
.msb-biz-item-desc { font-size:11.5px; color:#8a8278; margin-top:2px; }
.msb-nav-link { font-size:13.5px; color:#dbe2dc; text-decoration:none; }
.msb-cta { font-size:13.5px; font-weight:700; color:oklch(.30 .05 158); background:#FBF7F0; padding:11px 20px; border-radius:9px; text-decoration:none; box-shadow:0 4px 12px rgba(12,28,20,.28); }
.msb-hamburger-wrap { align-items:center; gap:12px; }
.msb-cta-mobile { font-size:12.5px; font-weight:700; color:oklch(.30 .05 158); background:#FBF7F0; padding:9px 15px; border-radius:8px; text-decoration:none; }
.msb-hamburger-btn { width:40px; height:40px; border:1px solid oklch(.41 .045 158); border-radius:9px; background:oklch(.34 .045 158); cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.msb-hamburger-line { width:18px; height:2px; background:#dbe2dc; display:block; }
.msb-mobile-menu { border-top:1px solid #E4DCD0; background:#FCFAF5; padding:16px 28px 24px; display:none; flex-direction:column; gap:2px; }
.msb-mobile-group-label { padding:13px 4px 8px; font-size:12px; font-weight:700; letter-spacing:.05em; color:#8a8278; }
.msb-mobile-link { font-size:14px; color:#3f3933; text-decoration:none; padding:9px 12px; }
.msb-mobile-link-strong { font-size:15px; font-weight:700; color:#2C2824; text-decoration:none; padding:13px 4px; border-top:1px solid #ECE6DB; }
.msb-mobile-link-strong--first { margin-top:8px; }

/* ==================== フッター（_footer.html） ==================== */
.msb-footer { background:oklch(.27 .045 158); color:#b3c0b7; padding:52px 32px 30px; }
.msb-footer-inner { max-width:1180px; margin:0 auto; }
.msb-footer-top { display:flex; align-items:flex-start; justify-content:space-between; gap:48px; padding-bottom:26px; border-bottom:1px solid oklch(.36 .04 158); margin-bottom:30px; }
.msb-footer-logo-wrap { display:flex; flex-direction:column; line-height:1; margin-bottom:12px; }
.msb-footer-logo { font-family:'Mulish',sans-serif; font-size:22px; font-weight:800; letter-spacing:-.015em; }
.msb-footer-logo-meister { color:#EFEAE0; }
.msb-footer-logo-support { color:#9db0a4; font-weight:600; }
.msb-footer-tagline { margin:0; font-size:13.5px; line-height:1.8; color:#93a397; }
.msb-footer-credit { flex-shrink:0; font-size:12.5px; line-height:1.9; color:#93a397; font-style:normal; }
.msb-footer-credit-name { color:#cdd6ce; font-weight:700; letter-spacing:.01em; }
.msb-footcols { display:grid; grid-template-columns:1.7fr 1fr 1.1fr; gap:40px; padding-bottom:30px; border-bottom:1px solid oklch(.36 .04 158); }
.msb-footcol-title { font-size:12px; font-weight:700; letter-spacing:.08em; color:#EFEAE0; margin-bottom:16px; }
.msb-footcol-title--spaced { margin-top:26px; }  /* 関連事業ラベル（構成v3 §8-3） */
.msb-footcol-links { display:flex; flex-direction:column; gap:11px; font-size:13px; }
.msb-footcol-links--2col { display:grid; grid-template-columns:1fr 1fr; gap:11px 24px; }  /* 事業紹介8項目を2列組み（縦の間延び対策） */
.msb-footcol-links--2col .msb-footcol-sublabel { grid-column:1 / -1; }
.msb-footcol-sublabel { font-size:11.5px; color:#6f685c; }
.msb-footcol-link { color:#b3c0b7; text-decoration:none; }
.msb-footcol-link--indent { padding-left:10px; }
.msb-footcol-link--ext { display:inline-flex; align-items:center; gap:6px; }
.msb-footcol-ext-icon { font-size:11px; color:#6f685c; }
.msb-footer-bottom { display:flex; align-items:center; justify-content:space-between; padding-top:20px; gap:16px; flex-wrap:wrap; }
.msb-footer-privacy { font-size:12px; color:#8a8278; text-decoration:none; }
.msb-footer-copyright { font-size:12px; color:#6f685c; }

/* ==================== レスポンシブ規則（トップの<style>ブロックより移植・1字も変えず） ==================== */
[data-hamburger] { display: none; }
@media (max-width: 900px) {
  [data-desktop-nav] { display: none !important; }
  [data-hamburger] { display: flex !important; }
  [data-stack] { grid-template-columns: 1fr !important; }
  [data-fv] { grid-template-columns: 1fr !important; }
  [data-fv-photo] { max-width: 420px !important; }
  [data-s8] { grid-template-columns: 1fr !important; }
  [data-s8-photo] { width: 260px !important; }
  [data-bridge-grid] { grid-template-columns: 1fr !important; }
  [data-bridge-head] { display: none !important; }
  [data-bridge-mid] { display: none !important; }
  [data-biz3] { grid-template-columns: 1fr !important; }
  [data-articles] { grid-template-columns: 1fr !important; }
  [data-footcols] { grid-template-columns: 1fr !important; gap: 34px !important; }
  [data-foottop] { flex-direction: column !important; gap: 22px !important; }
  [data-foot2col] { grid-template-columns: 1fr !important; }
  [data-flow] { grid-template-columns: 1fr 1fr !important; row-gap: 30px !important; }
  [data-flow-line] { display: none !important; }
  [data-s4-head] { flex-direction: column !important; align-items: flex-start !important; }
  [data-s4-head] > div:last-child { width: 180px !important; height: 180px !important; }
}
@media (max-width: 560px) {
  [data-flow] { grid-template-columns: 1fr !important; }
}
