/* =====================================================================
   makeover.css — v128 衣装替えレイヤー（hub.css の後に読み込む）
   DNA: 写真が主役／白＋墨＋茜1色／明朝の品／余白／ずらして重ねる
   内容・数字は一切変更しない。見た目だけを差し替える。
   ===================================================================== */

:root {
  --ink: #26211D;
  --ink-soft: #5C5346;   /* 文字が薄い問題→ひと段階濃く */
  --paper: #FFFFFF;
  --kinari: #F5F1E9;     /* 白との差をわずかに強く */
  --akane: #A63125;
  --akane-deep: #8A2318;
  --hairline: #DCD3C2;   /* 境目が分かる濃さに */
  /* 旧テーマ変数の上書き（金・ターコイズを引退させ、1色に集約） */
  --gold: #A63125;
  --dark: #26211D;
}

/* =====================================================================
   v133 editorial refinement
   写真作品の余韻と、4事業の理解しやすさを両立する編集デザイン
   ===================================================================== */
:root {
  --ink: #1f2421;
  --ink-soft: #59615b;
  --paper: #fffefa;
  --kinari: #f3f0e8;
  --akane: #9e3428;
  --akane-deep: #76251d;
  --hairline: #d8d4ca;
}

body { background: var(--paper); }
.site-header { background: rgba(255,254,250,.94); }

/* Hero: 写真に文章を載せず、作品と説明を並べる */
.hub-hero {
  min-height: min(820px, calc(100vh - 88px));
  display: grid;
  grid-template-columns: minmax(0, 57%) minmax(430px, 43%);
  align-items: stretch;
  background: var(--paper);
  overflow: visible;
}
.hero2-photo { position: relative; inset: auto; min-height: 720px; overflow: hidden; }
.hero2-photo img { object-position: 43% 66%; }
.hero2-photo::after { display: none; }
.hero2-inner {
  width: auto; max-width: none; margin: 0;
  padding: clamp(72px,8vw,122px) clamp(42px,6vw,92px) 72px;
  color: var(--ink); display: flex; flex-direction: column; justify-content: center;
  background: var(--paper);
}
.hero2-inner > * { max-width: 620px; }
.hero2-eyebrow { color: var(--akane); margin-bottom: 26px; text-shadow: none; font-size: 11px; letter-spacing: .25em; }
.hero2-eyebrow::before { background: var(--akane); }
.hub-hero .hub-hero-title { color: var(--ink); text-shadow: none; font-size: clamp(36px,4.25vw,62px); line-height: 1.48; margin-bottom: 24px; }
.hub-hero .hub-hero-title .accent-red,
.hub-hero .hub-hero-title .accent-tq { color: var(--ink); }
.hub-hero .hub-hero-title .accent-red { border-bottom-color: var(--akane); }
.hub-hero .hub-hero-sub { color: var(--ink-soft); text-shadow: none; line-height: 2; margin-bottom: 24px; }
.hub-hero .hub-hero-sub strong { color: var(--ink); }
.hero2-eyebrow, .hub-hero-formula, .hero-check li, .hub-hero-trust { text-shadow: none; }
.hub-hero-formula { color: var(--ink); border-color: var(--hairline) !important; margin-bottom: 24px; font-size: 13px; letter-spacing: .18em; }
.hub-hero-formula span { color: var(--ink); }
.hub-hero-formula .formula-x { color: var(--akane); }
.hero-check { grid-template-columns: 1fr; gap: 9px; margin-bottom: 30px; }
.hero-check li { color: var(--ink-soft); text-shadow: none; font-size: 13px; padding-left: 18px; }
.hero-check li strong { color: var(--ink); font-weight: 600; }
.hero-check li::before { background: var(--akane); }
.hub-hero .btn-secondary { color: var(--ink); border-color: var(--ink); }
.hub-hero .btn-secondary:hover { color: var(--paper); background: var(--ink); }
.hub-hero-trust { color: var(--ink-soft); text-shadow: none; }
.hub-hero-trust *, .hub-hero-trust strong { color: var(--ink-soft); }
.hub-hero-trust .stars { color: var(--akane); }
.hero2-portrait { left: calc(57% - 72px); bottom: 34px; width: 138px; border-width: 5px; }

/* 目的別の入口を、4事業同格で読みやすく */
.hub-quicknav { padding: 84px 0 94px; }
.hub-quicknav-label { margin-bottom: 6px; }
.hub-quicknav-title { margin: 0 0 34px; font-family: "Zen Old Mincho",serif; font-size: clamp(27px,3vw,38px); letter-spacing: .08em; }
.hub-quicknav-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.hub-quicknav-card { min-height: 190px; padding: 28px 24px 24px; display: flex; flex-direction: column; align-items: flex-start; }
.hub-quicknav-body h3 { font-size: 18px; line-height: 1.55; }
.hub-quicknav-body p { line-height: 1.8; }
.hub-quicknav-arrow { margin-top: auto; }

/* セクションに作品集らしい呼吸を作る */
.section-label { font-size: 10px; letter-spacing: .4em; }
.section-title { line-height: 1.7; }
.service-card, .hub-pain-card, .hub-subsidy-card { border-radius: 2px; }
.service-card:hover, .hub-quicknav-card:hover { transform: translateY(-2px); }

@media (max-width: 980px) {
  .hub-hero { grid-template-columns: 1fr; min-height: auto; }
  .hero2-photo { min-height: 56vh; order: 1; }
  .hero2-inner { order: 2; padding: 62px 7vw 70px; }
  .hero2-portrait { left: auto; right: 24px; bottom: auto; top: calc(56vh - 64px); width: 120px; }
  .hub-quicknav-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 640px) {
  .hub-hero { display: flex; flex-direction: column; }
  .hero2-photo { min-height: 51vh; height: 51vh; }
  .hero2-photo img { object-position: 38% 67%; }
  .hero2-inner { padding: 56px 22px 62px; }
  .hero2-inner > * { max-width: none; }
  .hero2-eyebrow { margin-bottom: 18px; font-size: 9.5px; }
  .hub-hero .hub-hero-title { font-size: clamp(31px,9vw,42px); line-height: 1.55; letter-spacing: .035em; }
  .hub-hero .hub-hero-sub { font-size: 14px; line-height: 1.95; }
  .hub-hero-formula { width: 100%; justify-content: center; font-size: 11.5px; gap: 10px; }
  .hero-check { gap: 12px; }
  .hero-check li { font-size: 12.5px; line-height: 1.75; }
  .hub-hero-cta { display: grid; grid-template-columns: 1fr; width: 100%; }
  .hub-hero-cta .btn { width: 100%; justify-content: center; }
  .hero2-portrait { top: calc(51vh - 48px); right: 18px; width: 94px; }
  .hub-hero-trust { margin-top: 6px; }
  .hub-quicknav { padding: 62px 0 72px; }
  .hub-quicknav-grid { grid-template-columns: 1fr; }
  .hub-quicknav-card { min-height: 0; padding: 24px 22px; }
}

/* ---------- 土台 ---------- */
html, body { overflow-x: hidden; }  /* 画面外に待機するメニュー等が横スクロールを生む事故の封じ */
body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  color: var(--ink);
  background: var(--paper);
  letter-spacing: .02em;
  line-height: 1.9;
  font-feature-settings: "palt";
}
.serif, h1, h2, .section-title, .hub-hero-title, .logo-mark,
.about-hub-name, .hub-position-box h2 {
  font-family: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 600;
}

/* ---------- ヘッダー ---------- */
.site-header {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--hairline);
  box-shadow: none;
}
.logo-mark { color: var(--ink); letter-spacing: .1em; }
.logo-sub  { color: var(--ink-soft); letter-spacing: .22em; font-size: 10px; }
.nav a { color: var(--ink); font-weight: 500; letter-spacing: .06em; }
.nav a:hover { color: var(--akane); }
.nav .nav-cta {
  background: var(--akane); color: #fff; border-radius: 999px;
  padding: 8px 18px;
}
.nav .nav-cta:hover { background: var(--akane-deep); color: #fff; }

/* ---------- HERO（写真が主役・全幅） ---------- */
.hub-hero {
  position: relative; padding: 0; margin: 0;
  min-height: min(92vh, 860px);
  display: flex; align-items: flex-end;
  background: var(--ink);
  overflow: hidden;
}
.hero2-photo {
  position: absolute; inset: 0;
}
.hero2-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 64%;
  display: block;
}
/* 明るい写真でも文字が立つよう、右側を深めに落とす（主役の女の子は左に置いて隠さない） */
/* 写真は明るく見せる。暗くするのは文字の背中だけ（影は文字に、写真には掛けない） */
.hero2-photo::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(255deg, rgba(22,16,12,.62) 0%, rgba(22,16,12,.34) 36%, rgba(22,16,12,0) 58%);
}
.hero2-inner {
  position: relative; z-index: 2; width: 100%;
  max-width: 1160px; margin: 0 auto;
  padding: 120px 28px 96px;
  color: #fff;
  display: grid; grid-template-columns: minmax(0, max-content); justify-content: end;
}
.hero2-inner > * { max-width: min(620px, 100%); }
.hub-hero .hub-hero-sub { overflow-wrap: anywhere; }
.hero2-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 12.5px; letter-spacing: .3em; font-weight: 500;
  color: rgba(255,255,255,.85);
  margin-bottom: 22px;
}
.hero2-eyebrow::before {
  content: ""; width: 34px; height: 1px; background: rgba(255,255,255,.6);
}
.hub-hero .hub-hero-title {
  font-size: clamp(34px, 5.4vw, 62px);
  line-height: 1.5; letter-spacing: .06em;
  color: #fff; margin: 0 0 18px;
  /* 明るい背景でも沈まない二重の影 */
  text-shadow: 0 1px 3px rgba(15,10,8,.55), 0 4px 28px rgba(15,10,8,.45);
  word-break: auto-phrase; text-wrap: balance;
}
.hub-hero .hub-hero-title .accent-red,
.hub-hero .hub-hero-title .accent-tq { color: #fff; }
.hub-hero .hub-hero-title .accent-red { border-bottom: 2px solid rgba(255,255,255,.55); padding-bottom: 2px; }
.hub-hero .hub-hero-sub {
  font-size: clamp(14px, 1.6vw, 16.5px); line-height: 2.1;
  color: rgba(255,255,255,.95); max-width: 640px; margin: 0 0 26px;
  text-shadow: 0 1px 2px rgba(15,10,8,.6), 0 3px 16px rgba(15,10,8,.4);
}
.hero2-eyebrow, .hub-hero-formula, .hero-check li, .hub-hero-trust {
  text-shadow: 0 1px 2px rgba(15,10,8,.55), 0 2px 12px rgba(15,10,8,.35);
}
.hub-hero .hub-hero-sub strong { color: #fff; font-weight: 600; }
.hub-hero-formula {
  display: inline-flex; gap: 14px; align-items: baseline;
  font-family: "Zen Old Mincho", serif;
  font-size: 15px; letter-spacing: .28em; color: rgba(255,255,255,.92);
  background: transparent !important;   /* 旧デザインの白い箱を消す（白地×白文字の事故防止） */
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  border-top: 1px solid rgba(255,255,255,.35) !important;
  border-bottom: 1px solid rgba(255,255,255,.35) !important;
  padding: 10px 6px; margin-bottom: 30px;
}
.hub-hero-formula span { color: rgba(255,255,255,.92); background: transparent; }
.hub-hero-formula .formula-x { color: rgba(255,255,255,.55); }
.hero-check {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 26px; list-style: none; padding: 0; margin: 0 0 30px; max-width: 640px;
}
.hero-check li {
  color: rgba(255,255,255,.88); font-size: 13px; line-height: 1.8;
  padding-left: 18px; position: relative;
}
.hero-check li::before {
  content: ""; position: absolute; left: 0; top: .72em;
  width: 10px; height: 1.5px; background: #E8C56B;
}
@media (max-width: 640px) { .hero-check { grid-template-columns: 1fr; } }
.hub-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 26px; }
.btn { border-radius: 999px; font-weight: 600; letter-spacing: .08em; box-shadow: none; }
.btn-primary {
  background: var(--akane); color: #fff; border: 1px solid var(--akane);
}
.btn-primary:hover { background: var(--akane-deep); transform: none; }
.btn-secondary {
  background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.7);
}
.hub-hero .btn-secondary:hover { background: rgba(255,255,255,.14); color: #fff; }
.hub-hero-trust {
  color: rgba(255,255,255,.9);
  background: transparent !important;  /* 旧デザインの白い箱を消す */
  border: 0 !important; box-shadow: none !important; padding-left: 0;
}
.hub-hero-trust * { color: rgba(255,255,255,.9); }
.hub-hero-trust strong { color: #fff; }
.hub-hero-trust .stars { color: #E8C56B; letter-spacing: .18em; }
/* 重ねる小さなポートレート（コラージュ） */
.hero2-portrait {
  position: absolute; left: clamp(14px, 4vw, 64px); bottom: -54px; z-index: 3;
  width: clamp(120px, 15vw, 190px);
  border: 6px solid #fff; border-radius: 4px;
  box-shadow: 0 18px 50px rgba(30,20,10,.28);
  transform: rotate(2.5deg);
  background: #fff;
}
.hero2-portrait img { width: 100%; display: block; border-radius: 2px; }
.hero2-portrait figcaption {
  font-size: 10.5px; letter-spacing: .12em; color: var(--ink-soft);
  text-align: center; padding: 6px 2px 2px;
}
/* 旧装飾は完全引退 */
.hub-hero-particle, .hero-shape-1, .hero-shape-2, .hub-hero-photo-deco { display: none !important; }

/* ---------- セクション共通 ---------- */
section { position: relative; }
/* 薄い色どうしの境目問題→セクションの継ぎ目に必ず罫線を1本 */
.hub-stats, .hub-quicknav, .hub-pain, .services, .hub-subsidy,
.hub-portfolio, .hub-character, .hub-voices, .hub-track, .about-hub, .hub-faq, .hub-cta {
  border-top: 1px solid var(--hairline);
}
.section-label {
  color: var(--akane); font-size: 11.5px; letter-spacing: .34em; font-weight: 600;
  background: transparent !important;  /* 旧デザインの白い座布団を引退（写真の上で文字が沈む事故防止） */
  border: 0 !important; box-shadow: none !important; padding: 0 !important;
}
.section-title {
  color: var(--ink); font-size: clamp(24px, 3.2vw, 34px);
  letter-spacing: .08em; line-height: 1.6;
}
.section-subtitle { color: var(--ink-soft); }
.section-subtitle strong { color: var(--ink); }

/* ---------- STATS（数字の帯・静かに） ---------- */
.hub-stats { background: var(--kinari); border: 0; padding: 34px 20px; }
.hub-stats-deco { display: none; }
.hub-stats-grid { max-width: 1000px; margin: 0 auto; }
.hub-stat { background: transparent; border: 0; box-shadow: none; }
.hub-stat + .hub-stat { border-left: 1px solid var(--hairline); }
.hub-stat-num {
  font-family: "Zen Old Mincho", serif; color: var(--ink);
  font-size: clamp(26px, 3vw, 36px); font-weight: 600;
}
.hub-stat-num .stat-unit { color: var(--ink-soft); font-size: .5em; margin-left: 2px; }
.hub-stat-label { color: var(--ink-soft); font-size: 12px; letter-spacing: .08em; }

/* ---------- QUICKNAV（罫線のカード） ---------- */
.hub-quicknav { background: var(--paper); }
.hub-quicknav-label { color: var(--akane); letter-spacing: .34em; font-size: 11.5px; }
.hub-quicknav-card {
  background: var(--paper); border: 1px solid var(--hairline); border-radius: 6px;
  box-shadow: none; transition: border-color .25s, transform .25s;
}
.hub-quicknav-card:hover { border-color: var(--akane); transform: translateY(-3px); box-shadow: 0 12px 30px rgba(38,33,29,.08); }
.hub-quicknav-icon { display: none; }
.hub-quicknav-body h3 { font-family: "Zen Old Mincho", serif; color: var(--ink); letter-spacing: .06em; }
.hub-quicknav-body p { color: var(--ink-soft); font-size: 13px; }
.hub-quicknav-arrow { color: var(--akane); }
.hub-quicknav-tag {
  background: var(--akane); color: #fff; border-radius: 3px;
  font-size: 11px; letter-spacing: .1em;
}
.hub-quicknav-card-featured { border-color: var(--akane); background: var(--paper); }

/* ---------- YOUR IDEAL（絵文字を引退させ、静かな列挙へ） ---------- */
.hub-pain { background: var(--kinari); }
.hub-pain-card {
  background: var(--paper); border: 0; border-left: 2px solid var(--akane);
  border-radius: 0 6px 6px 0; box-shadow: none; padding: 18px 20px;
}
.hub-pain-icon { display: none; }
.hub-pain-text { color: var(--ink); font-size: 14.5px; }
.hub-pain-conclusion {
  background: transparent; border: 0; border-top: 1px solid var(--hairline);
  color: var(--ink);
}

/* ---------- SERVICES ---------- */
.services { background: var(--paper); }
.service-card {
  background: var(--paper); border: 1px solid var(--hairline); border-radius: 8px;
  box-shadow: none; overflow: hidden; transition: box-shadow .3s, transform .3s;
}
.service-card:hover { transform: translateY(-4px); box-shadow: 0 18px 44px rgba(38,33,29,.1); }
.service-card.featured { border-color: var(--akane); }
.service-badge { background: var(--akane); color: #fff; letter-spacing: .12em; border-radius: 3px; }
.service-tag { color: var(--akane); letter-spacing: .26em; font-size: 11px; font-weight: 600; }
.service-card-body h3 { font-family: "Zen Old Mincho", serif; letter-spacing: .06em; color: var(--ink); }
.service-features li { color: var(--ink-soft); }
.service-features li::before { color: var(--akane); }
.service-link { color: var(--akane); font-weight: 600; }
.service-trust { color: var(--ink-soft); font-size: 12.5px; }

/* ---------- SUBSIDY ---------- */
.hub-subsidy { background: var(--kinari); }
.hub-subsidy-card {
  background: var(--paper); border: 1px solid var(--hairline); border-radius: 8px; box-shadow: none;
}
.hub-subsidy-card-featured { border: 1.5px solid var(--akane); }
.hub-subsidy-icon { display: none; }
.hub-subsidy-badge { background: var(--ink); color: #fff; border-radius: 3px; letter-spacing: .1em; }
.hub-subsidy-badge-new { background: var(--akane); }
.hub-subsidy-features strong { color: var(--akane); }
.hub-subsidy-link { color: var(--akane); }
.hub-subsidy-disclaimer { background: transparent; border: 1px solid var(--hairline); border-radius: 8px; }

/* ---------- PORTFOLIO（写真は語らせ、飾らない） ---------- */
.hub-portfolio { background: var(--paper); }
.hub-portfolio-item { border-radius: 4px; overflow: hidden; box-shadow: none; }
.hub-portfolio-item img { transition: transform .6s ease; }
.hub-portfolio-item:hover img { transform: scale(1.03); }
.hub-portfolio-caption {
  background: linear-gradient(transparent, rgba(20,15,12,.66));
  color: #fff; font-size: 12px; letter-spacing: .1em;
}
.hub-portfolio-food-link {
  background: var(--kinari); border: 1px solid var(--hairline); border-radius: 8px; box-shadow: none;
  color: var(--ink);  /* 継承で文字が薄くなる事故防止 */
}
.hub-portfolio-food-icon { display: none; }
.hub-portfolio-food-label { color: var(--akane); letter-spacing: .3em; }
.hub-portfolio-food-link .hub-portfolio-food-title { color: var(--ink) !important; font-weight: 600; }
.hub-portfolio-food-link .hub-portfolio-food-sub { color: var(--ink-soft) !important; }
.hub-portfolio-food-arrow { color: var(--akane); }

/* ---------- CHARACTERS ---------- */
.hub-character { background: var(--kinari); }
.hub-character-item { background: var(--paper); border: 1px solid var(--hairline); border-radius: 8px; box-shadow: none; }
.hub-character-item-badge { background: var(--akane); color: #fff; border-radius: 3px; }
.hub-character-item-name { font-family: "Zen Old Mincho", serif; color: var(--ink); }
.hub-character-item-cat { color: var(--ink-soft); }
.hub-character-quote {
  background: var(--paper); border: 0; border-left: 3px solid var(--akane);
  border-radius: 0 8px 8px 0; box-shadow: none;
}
.hub-character-quote-label { color: var(--akane); letter-spacing: .2em; }
.hub-character-quote-author { color: var(--ink-soft); }

/* ---------- POSITION（瀬戸大橋の夕陽に、言葉を重ねる） ---------- */
.hub-position {
  background: url("images/bridge-sunset.jpg") center 62%/cover no-repeat fixed;
  padding: clamp(80px, 12vw, 140px) 20px;
}
@media (max-width: 768px) { .hub-position { background-attachment: scroll; } }
.hub-position::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(rgba(24,16,20,.56), rgba(24,16,20,.48));  /* 明るい空でも文字が立つ濃さに */
}
.hub-position .container { position: relative; z-index: 2; }
.hub-position .section-label { color: #F2D488; text-shadow: 0 1px 10px rgba(0,0,0,.55); }
.hub-position .section-title { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.55); }
.hub-position .section-subtitle { color: rgba(255,255,255,.92); text-shadow: 0 1px 10px rgba(0,0,0,.5); }
.hub-position-box {
  background: rgba(255,255,255,.96); border: 0; border-radius: 8px;
  box-shadow: 0 24px 70px rgba(10,5,8,.35);
  max-width: 780px; margin: 34px auto 0;
  padding: clamp(28px, 5vw, 52px);
}
.hub-position-box h2 { color: var(--ink); font-size: clamp(20px, 2.6vw, 27px); line-height: 1.7; }
.hub-position-box .accent-red { color: var(--akane); }
.position-evidence {
  background: var(--kinari); border: 0; border-left: 3px solid var(--akane);
  border-radius: 0 6px 6px 0;
}

/* ---------- VOICES ---------- */
.hub-voices { background: var(--paper); }
.hub-voice-card {
  background: var(--paper); border: 1px solid var(--hairline); border-radius: 8px; box-shadow: none;
}
.hub-voice-tag { border-radius: 3px; letter-spacing: .1em; font-size: 11px; }
.hub-voice-tag-green, .hub-voice-tag-blue { background: var(--kinari); color: var(--akane); border: 1px solid var(--hairline); }
.hub-voice-stars { color: #E8C56B; letter-spacing: .16em; }
.hub-voice-text { color: var(--ink); }
.hub-voice-avatar { background: var(--kinari); color: var(--akane); font-family: "Zen Old Mincho", serif; }
.hub-voice-author-info p { color: var(--ink); }
.hub-voice-author-info span { color: var(--ink-soft); }

/* ---------- TRACK RECORD（年表の品格） ---------- */
.hub-track { background: var(--kinari); }
.hub-track-card {
  background: var(--paper); border: 1px solid var(--hairline); border-radius: 8px; box-shadow: none;
}
.hub-track-deco { display: none; }
.hub-track-year { font-family: "Zen Old Mincho", serif; color: var(--akane); font-weight: 600; }
.hub-track-tag { background: var(--kinari); color: var(--ink-soft); border-radius: 3px; letter-spacing: .12em; }
.hub-track-title { font-family: "Zen Old Mincho", serif; color: var(--ink); }
.hub-track-desc { color: var(--ink-soft); }
.hub-track-note { color: var(--ink-soft); }

/* ---------- ABOUT ---------- */
.about-hub { background: var(--paper); }
.about-hub-photo img { border-radius: 6px; box-shadow: 24px 24px 0 var(--kinari); }
.about-hub-name { font-size: clamp(22px, 2.6vw, 28px); letter-spacing: .1em; color: var(--ink); }
.about-hub-role { color: var(--akane); letter-spacing: .12em; font-size: 13px; }
.about-hub-story p { color: var(--ink); }
.about-hub-creds { background: var(--kinari); border: 0; border-radius: 8px; }
.about-hub-creds h4 { color: var(--akane); letter-spacing: .2em; }
.about-hub-link { color: var(--akane); font-weight: 600; }

/* ---------- FAQ ---------- */
.hub-faq { background: var(--kinari); }
.hub-faq details, .hub-faq .faq-item {
  background: var(--paper); border: 1px solid var(--hairline); border-radius: 8px; box-shadow: none;
}

/* ---------- CONTACT（黒くしない。生成りの明るい締め） ---------- */
.hub-cta { background: var(--kinari); color: var(--ink); }
.hub-cta .section-label { color: var(--akane); }
.hub-cta h2 { color: var(--ink); font-family: "Zen Old Mincho", serif; letter-spacing: .1em; }
.hub-cta > .container > p { color: var(--ink-soft); }
.diag-box {
  background: var(--paper); border: 1px solid var(--hairline); border-radius: 8px;
}
.diag-box .diag-title { color: var(--akane); letter-spacing: .12em; font-weight: 700; }
.diag-box li { color: var(--ink); }
.hub-cta-card {
  background: var(--paper); border: 1px solid var(--hairline);
  border-radius: 10px; box-shadow: 0 14px 40px rgba(38,33,29,.07);
}
.hub-cta-icon { display: none; }
.hub-cta-card h3 { color: var(--ink); font-family: "Zen Old Mincho", serif; }
.hub-cta-card p { color: var(--ink-soft); }
.cta-reassure { color: var(--ink-soft) !important; font-size: 12px; }
.hub-cta-email-note { color: var(--ink-soft); }
.hub-cta-email { color: var(--akane); font-weight: 600; }

/* ---------- FOOTER（黒→温かい墨茶。茜の細い帯で締める） ---------- */
.site-footer {
  background: #37302A; color: rgba(255,250,243,.82);
  border-top: 3px solid var(--akane);
}
.site-footer h3 { font-family: "Zen Old Mincho", serif; color: #fff; letter-spacing: .12em; }
.site-footer h4 { color: #E8C56B; letter-spacing: .26em; font-size: 11px; }
.site-footer a { color: rgba(255,255,255,.78); }
.site-footer a:hover { color: #fff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.62); }
.footer-bottom p[style] { color: rgba(255,255,255,.62) !important; }

/* ---------- 浮遊LINEボタン ---------- */
.floating-line {
  background: #06C755; color: #fff; border-radius: 999px;
  box-shadow: 0 10px 30px rgba(6,199,85,.4);
  font-weight: 700; letter-spacing: .08em;
}
.floating-line-icon { display: none; }

/* ---------- モバイル微調整 ---------- */
@media (max-width: 640px) {
  .hero2-inner { padding: 96px 18px 84px; display: block; }  /* スマホは1カラム流し込み＝右端切れ防止 */
  .hero2-inner > * { max-width: 100%; }
  .hero2-portrait { bottom: -40px; left: 12px; width: 104px; border-width: 4px; }
  .hub-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;  /* 2×2で必ず収める */
    gap: 16px 10px; padding: 0 8px;
  }
  .hub-stat + .hub-stat { border-left: 0; }
}
