/* =========================================================
   コンパス社会保険労務士法人（架空）— コーポレートサイト
   方針：ToB・きちんと感・機能的。インディゴ×シアンの硬質な配色、
        グリッド基調、フラットで情報密度の高い構成。装飾は最小、
        罫線・番号・図解で「整然と仕事ができる」印象を出す。
   デザイントークンは :root に集約。
   ========================================================= */
:root{
  /* 配色 */
  --indigo:      #27408b;   /* 基調：インディゴ */
  --indigo-deep: #1b2c66;
  --indigo-soft: #eef1f9;   /* 薄い背景 */
  --cyan:        #00a3c4;   /* アクセント：シアン */
  --cyan-deep:   #0086a3;
  --cyan-soft:   #e3f5f9;
  --ink:         #1f2733;   /* 本文 */
  --ink-soft:    #5b6678;
  --ink-mute:    #8a94a6;
  --bg:          #ffffff;
  --bg-gray:     #f5f7fb;   /* セクション交互背景 */
  --line:        #e3e8f0;
  --line-strong: #cdd5e3;
  --cta:         #00a3c4;

  /* タイポ（明朝は使わず、サンセリフのみで硬質に） */
  --sans:  "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  --en:    "Barlow", "Noto Sans JP", sans-serif;

  /* レイアウト */
  --maxw: 1160px;
  --radius: 6px;           /* 角は控えめ＝端正 */
  --radius-lg: 10px;
  --shadow: 0 10px 30px rgba(31,39,51,.07);
  --shadow-lg: 0 22px 48px rgba(31,39,51,.12);
  --header-h: 78px;
  --ease: cubic-bezier(.2,.6,.25,1);
}

/* ---------- リセット ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; font-family:var(--sans); color:var(--ink); background:var(--bg);
  line-height:1.85; font-size:16px; letter-spacing:.02em; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
svg{ display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; color:inherit; cursor:pointer; border:none; background:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{ margin:0; line-height:1.45; font-weight:700; }
p{ margin:0 0 1em; }
strong{ color:var(--indigo); }

/* ---------- ユーティリティ ---------- */
.sp-only{ display:none; }
.container{ width:min(92%,var(--maxw)); margin-inline:auto; }
.section{ padding:clamp(66px,8vw,112px) 0; }
.section--gray{ background:var(--bg-gray); }
.section--indigo{ background:var(--indigo); color:#e8edf8; }
.text-center{ text-align:center; }
.lead{ color:var(--ink-soft); font-size:1.04rem; line-height:1.95; }

/* 英字ラベル（番号付きの硬質ラベル） */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--en); font-size:.82rem; font-weight:700;
  letter-spacing:.2em; color:var(--cyan-deep); text-transform:uppercase;
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--cyan); }
.eyebrow--center{ justify-content:center; }
.eyebrow--center::after{ content:""; width:22px; height:2px; background:var(--cyan); }

/* セクション見出し（左寄せ基調＝資料的） */
.sec-head{ margin-bottom:clamp(40px,5vw,60px); }
.sec-head .eyebrow{ margin-bottom:14px; }
.sec-head h2{
  font-weight:700; font-size:clamp(1.6rem,3.4vw,2.3rem);
  color:var(--indigo); letter-spacing:.02em; line-height:1.4;
}
.sec-head h2 .en{ display:block; font-family:var(--en); font-size:.9rem; font-weight:600; letter-spacing:.16em; color:var(--ink-mute); margin-top:6px; }
.section--indigo .sec-head h2{ color:#fff; }
.sec-head .desc{ margin-top:16px; color:var(--ink-soft); max-width:660px; }
.section--indigo .sec-head .desc{ color:#bcc8e4; }
.sec-head--center{ text-align:center; }
.sec-head--center .eyebrow{ justify-content:center; }
.sec-head--center .desc{ margin-inline:auto; }

/* ---------- ボタン（並べたら必ず同サイズ） ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  height:56px; padding:0 30px; border-radius:var(--radius);
  font-weight:700; font-size:.98rem; letter-spacing:.04em;
  border:1.5px solid transparent; white-space:nowrap;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, color .25s, border-color .25s;
}
.btn svg{ width:18px; height:18px; flex:none; }
.btn--cta{ background:var(--cyan); border-color:var(--cyan); color:#fff; box-shadow:0 10px 22px rgba(0,163,196,.28); }
.btn--cta:hover{ background:var(--cyan-deep); border-color:var(--cyan-deep); transform:translateY(-2px); box-shadow:0 14px 28px rgba(0,163,196,.36); }
.btn--indigo{ background:var(--indigo); border-color:var(--indigo); color:#fff; }
.btn--indigo:hover{ background:var(--indigo-deep); transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.btn--ghost{ border-color:rgba(255,255,255,.6); color:#fff; }
.btn--ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; transform:translateY(-2px); }
.btn--ghost-indigo{ border-color:var(--line-strong); color:var(--indigo); background:#fff; }
.btn--ghost-indigo:hover{ border-color:var(--indigo); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn--block{ width:100%; }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; }
.btn-row .btn{ flex:1 1 0; min-width:210px; }

/* =========================================================
   ヘッダー
   ========================================================= */
.header{
  position:fixed; inset:0 0 auto 0; height:var(--header-h); z-index:100;
  display:flex; align-items:center; background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line); transition:height .3s var(--ease), box-shadow .3s;
}
.header.scrolled{ height:66px; box-shadow:0 4px 18px rgba(31,39,51,.07); }
.header__inner{ width:min(94%,1240px); margin-inline:auto; display:flex; align-items:center; justify-content:space-between; }
.brand{ display:flex; align-items:center; gap:11px; }
.brand__mark{ width:40px; height:40px; flex:none; }
.brand__name{ display:flex; flex-direction:column; line-height:1.2; }
.brand__name .ja{ font-weight:700; font-size:1.04rem; letter-spacing:.04em; color:var(--indigo); }
.brand__name .en{ font-family:var(--en); font-size:.68rem; font-weight:600; letter-spacing:.18em; color:var(--ink-mute); text-transform:uppercase; }

.gnav{ display:flex; align-items:center; gap:28px; }
.gnav__list{ display:flex; gap:24px; }
.gnav__list a{ font-size:.9rem; font-weight:500; color:var(--ink); padding:6px 0; position:relative; transition:color .25s; }
.gnav__list a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--cyan); transition:width .25s var(--ease); }
.gnav__list a:hover, .gnav__list a.current{ color:var(--indigo); }
.gnav__list a:hover::after, .gnav__list a.current::after{ width:100%; }
.gnav a.gnav__cta{
  display:inline-flex; align-items:center; gap:8px; height:44px; padding:0 22px;
  background:var(--indigo); color:#fff; font-weight:700; font-size:.86rem; letter-spacing:.04em;
  border-radius:var(--radius); transition:background .25s, transform .25s;
}
.gnav a.gnav__cta:hover{ background:var(--indigo-deep); transform:translateY(-2px); }

.hamburger{ display:none; width:44px; height:44px; position:relative; z-index:120; }
.hamburger span{ position:absolute; left:10px; right:10px; height:2px; background:var(--indigo); transition:transform .3s var(--ease), opacity .2s; }
.hamburger span:nth-child(1){ top:16px; } .hamburger span:nth-child(2){ top:22px; } .hamburger span:nth-child(3){ top:28px; }
body.menu-open .hamburger span{ background:#fff; }
body.menu-open .hamburger span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
body.menu-open .hamburger span:nth-child(2){ opacity:0; }
body.menu-open .hamburger span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* =========================================================
   ヒーロー（左寄せ・資料的）
   ========================================================= */
.hero{ position:relative; padding:calc(var(--header-h) + 56px) 0 70px; background:var(--indigo-deep); color:#fff; overflow:hidden; }
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg svg{ width:100%; height:100%; }
.hero__inner{ position:relative; z-index:2; width:min(92%,var(--maxw)); margin-inline:auto; display:grid; grid-template-columns:1.1fr .9fr; gap:50px; align-items:center; }
.hero__tag{ display:inline-flex; align-items:center; gap:8px; font-family:var(--en); font-size:.8rem; font-weight:700; letter-spacing:.18em; color:var(--cyan); border:1px solid rgba(0,163,196,.5); padding:7px 16px; border-radius:999px; margin-bottom:24px; }
.hero h1{ font-weight:700; font-size:clamp(1.9rem,4.6vw,3.1rem); line-height:1.45; letter-spacing:.02em; margin-bottom:24px; }
.hero h1 .accent{ color:var(--cyan); }
.hero__lead{ font-size:clamp(.98rem,1.5vw,1.12rem); color:#c4cee6; line-height:1.95; margin-bottom:34px; max-width:520px; }
.hero__actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:34px; }
.hero__stats{ display:grid; grid-template-columns:repeat(3,auto); gap:0; border-top:1px solid rgba(255,255,255,.16); padding-top:24px; }
.hero__stats .item{ padding-right:30px; }
.hero__stats .item + .item{ border-left:1px solid rgba(255,255,255,.16); padding-left:30px; }
.hero__stats .num{ font-family:var(--en); font-size:1.9rem; font-weight:700; color:#fff; line-height:1; }
.hero__stats .num small{ font-size:1rem; color:var(--cyan); }
.hero__stats .lbl{ font-size:.74rem; color:#9fabca; margin-top:6px; }
.hero__panel{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius-lg); padding:8px; }
.hero__panel svg{ width:100%; height:auto; border-radius:6px; }

/* =========================================================
   下層ページ：見出し帯
   ========================================================= */
.page-hero{ position:relative; padding:calc(var(--header-h) + 50px) 0 50px; background:var(--indigo); color:#fff; overflow:hidden; }
.page-hero__bg{ position:absolute; inset:0; z-index:0; opacity:.6; }
.page-hero__bg svg{ width:100%; height:100%; }
.page-hero__inner{ position:relative; z-index:1; width:min(92%,var(--maxw)); margin-inline:auto; }
.page-hero .eyebrow{ color:var(--cyan); margin-bottom:12px; }
.page-hero h1{ font-weight:700; font-size:clamp(1.7rem,3.8vw,2.5rem); letter-spacing:.02em; }
.page-hero .crumbs{ margin-top:12px; font-size:.82rem; color:#a9b5d4; }
.page-hero .crumbs a:hover{ color:var(--cyan); }

/* =========================================================
   トップ：課題（チェックリスト型）
   ========================================================= */
.issues{ display:grid; grid-template-columns:1fr 1fr; gap:14px 40px; }
.issue{ display:flex; gap:16px; align-items:flex-start; padding:20px 0; border-bottom:1px solid var(--line); }
.issue .ico{ width:34px; height:34px; flex:none; border-radius:var(--radius); background:var(--cyan-soft); color:var(--cyan-deep); display:flex; align-items:center; justify-content:center; }
.issue .ico svg{ width:20px; height:20px; }
.issue p{ margin:0; font-weight:500; color:var(--ink); font-size:.98rem; }

/* サービス（番号付きテーブル状リスト） */
.svc-list{ border-top:2px solid var(--indigo); }
.svc-row{ display:grid; grid-template-columns:80px 1fr auto; gap:30px; align-items:center; padding:28px 8px; border-bottom:1px solid var(--line); transition:background .25s; }
.svc-row:hover{ background:var(--bg-gray); }
.svc-row .svc-no{ font-family:var(--en); font-size:1.6rem; font-weight:700; color:var(--cyan); }
.svc-row .svc-main h3{ font-size:1.2rem; color:var(--indigo); margin-bottom:6px; }
.svc-row .svc-main p{ margin:0; font-size:.92rem; color:var(--ink-soft); }
.svc-row .svc-arrow{ color:var(--indigo); opacity:.4; transition:opacity .25s, transform .25s; }
.svc-row:hover .svc-arrow{ opacity:1; transform:translateX(4px); }

/* 強み（3カラム・アイコン上） */
.strengths{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.strength{ background:var(--bg); border:1px solid var(--line); border-radius:var(--radius-lg); padding:36px 30px; transition:border-color .25s, box-shadow .25s, transform .25s; }
.strength:hover{ border-color:var(--cyan); box-shadow:var(--shadow); transform:translateY(-4px); }
.strength .sico{ width:56px; height:56px; border-radius:var(--radius); background:var(--indigo); color:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.strength .sico svg{ width:30px; height:30px; }
.strength .snum{ font-family:var(--en); font-size:.78rem; font-weight:700; letter-spacing:.16em; color:var(--cyan-deep); }
.strength h3{ font-size:1.16rem; color:var(--indigo); margin:6px 0 10px; }
.strength p{ margin:0; font-size:.92rem; color:var(--ink-soft); }

/* 顧問プラン（比較カード） */
.plans{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.plan{ background:var(--bg); border:1px solid var(--line); border-radius:var(--radius-lg); padding:34px 30px; display:flex; flex-direction:column; }
.plan.is-feature{ border:2px solid var(--cyan); box-shadow:var(--shadow); position:relative; }
.plan.is-feature::before{ content:"おすすめ"; position:absolute; top:-13px; left:30px; background:var(--cyan); color:#fff; font-size:.74rem; font-weight:700; padding:4px 14px; border-radius:999px; }
.plan .pname{ font-size:1.1rem; font-weight:700; color:var(--indigo); }
.plan .pen{ font-family:var(--en); font-size:.74rem; letter-spacing:.14em; color:var(--ink-mute); text-transform:uppercase; }
.plan .pprice{ margin:18px 0 6px; font-family:var(--en); font-size:2.2rem; font-weight:700; color:var(--indigo); }
.plan .pprice small{ font-size:.9rem; color:var(--ink-soft); font-family:var(--sans); }
.plan .pdesc{ font-size:.88rem; color:var(--ink-soft); padding-bottom:18px; border-bottom:1px solid var(--line); margin-bottom:18px; }
.plan ul{ display:grid; gap:10px; margin-bottom:24px; }
.plan ul li{ position:relative; padding-left:26px; font-size:.9rem; }
.plan ul li::before{ content:""; position:absolute; left:0; top:.5em; width:16px; height:8px; border-left:2px solid var(--cyan); border-bottom:2px solid var(--cyan); transform:rotate(-45deg); }
.plan .btn{ margin-top:auto; }

/* 流れ（横ステップ・番号と線） */
.process{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.proc{ position:relative; padding:0 22px; }
.proc:not(:last-child)::after{ content:""; position:absolute; top:24px; right:-2px; width:calc(100% - 48px); height:2px; left:auto; background:var(--line-strong); transform:translateX(50%); }
.proc .pno{ width:50px; height:50px; border-radius:50%; background:#fff; border:2px solid var(--cyan); color:var(--indigo); font-family:var(--en); font-weight:700; font-size:1.2rem; display:flex; align-items:center; justify-content:center; margin-bottom:18px; position:relative; z-index:1; }
.proc h3{ font-size:1.04rem; color:var(--indigo); margin-bottom:8px; }
.proc p{ margin:0; font-size:.86rem; color:var(--ink-soft); }
.section--indigo .proc .pno{ background:var(--indigo); }
.section--indigo .proc h3{ color:#fff; }
.section--indigo .proc p{ color:#bcc8e4; }
.section--indigo .proc:not(:last-child)::after{ background:rgba(255,255,255,.2); }

/* お知らせ（トップ：テーブル風） */
.news-list{ border-top:2px solid var(--indigo); }
.news-row{ display:flex; align-items:center; gap:24px; padding:18px 6px; border-bottom:1px solid var(--line); transition:background .25s; }
.news-row:hover{ background:var(--bg-gray); }
.news-row time{ font-family:var(--en); font-size:.92rem; color:var(--ink-mute); flex:none; width:104px; }
.news-row .tag{ flex:none; font-size:.72rem; font-weight:700; letter-spacing:.04em; color:var(--cyan-deep); background:var(--cyan-soft); padding:4px 12px; border-radius:4px; }
.news-row .ttl{ flex:1; font-size:.94rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.news-row .arr{ flex:none; color:var(--indigo); opacity:.4; transition:opacity .25s; }
.news-row:hover .arr{ opacity:1; }

/* CTAバンド */
.cta-band{ position:relative; overflow:hidden; background:var(--indigo); color:#fff; }
.cta-band__bg{ position:absolute; inset:0; z-index:0; opacity:.6; }
.cta-band__bg svg{ width:100%; height:100%; }
.cta-band__inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center; }
.cta-band h2{ font-size:clamp(1.5rem,3.2vw,2.2rem); margin-bottom:14px; }
.cta-band p{ color:#bcc8e4; margin:0; }
.cta-band__right{ text-align:right; }
.cta-band__phone{ font-family:var(--en); font-size:2.4rem; font-weight:700; color:#fff; line-height:1; }
.cta-band__hours{ font-size:.82rem; color:#9fabca; margin:6px 0 20px; }
.cta-band__right .btn-row{ justify-content:flex-end; }

/* =========================================================
   サービスページ
   ========================================================= */
.svc-detail{ display:grid; grid-template-columns:64px 1fr; gap:26px; padding:clamp(28px,3.5vw,40px); background:var(--bg); border:1px solid var(--line); border-radius:var(--radius-lg); margin-bottom:22px; }
.svc-detail__no{ font-family:var(--en); font-size:2rem; font-weight:700; color:var(--cyan); line-height:1; }
.svc-detail h3{ font-size:1.35rem; color:var(--indigo); margin-bottom:4px; }
.svc-detail .en{ font-family:var(--en); font-size:.78rem; letter-spacing:.14em; color:var(--ink-mute); text-transform:uppercase; margin-bottom:14px; }
.svc-detail p{ color:var(--ink-soft); font-size:.94rem; }
.svc-detail .ticks{ display:grid; grid-template-columns:1fr 1fr; gap:8px 22px; margin-top:14px; }
.svc-detail .ticks li{ position:relative; padding-left:24px; font-size:.9rem; }
.svc-detail .ticks li::before{ content:""; position:absolute; left:0; top:.5em; width:14px; height:7px; border-left:2px solid var(--cyan); border-bottom:2px solid var(--cyan); transform:rotate(-45deg); }

/* 助成金テーブル */
.fee-table{ width:100%; border-collapse:collapse; background:var(--bg); border:1px solid var(--line); }
.fee-table caption{ text-align:left; font-weight:700; font-size:1.15rem; color:var(--indigo); margin-bottom:12px; }
.fee-table th, .fee-table td{ padding:16px 20px; text-align:left; border-bottom:1px solid var(--line); font-size:.92rem; }
.fee-table thead th{ background:var(--indigo); color:#fff; font-weight:600; letter-spacing:.04em; }
.fee-table tbody th{ background:var(--indigo-soft); color:var(--indigo); font-weight:600; width:42%; }
.fee-table td .price{ font-family:var(--en); font-weight:700; color:var(--cyan-deep); font-size:1.06rem; }
.fee-note{ font-size:.82rem; color:var(--ink-soft); margin-top:12px; }

/* =========================================================
   会社・代表ページ
   ========================================================= */
.profile-hero{ display:grid; grid-template-columns:300px 1fr; gap:50px; align-items:start; }
.profile-hero__art{ background:var(--indigo); border-radius:var(--radius-lg); overflow:hidden; }
.profile-hero__art svg{ width:100%; height:auto; }
.profile-hero__body .role{ font-family:var(--en); font-size:.8rem; letter-spacing:.16em; color:var(--cyan-deep); text-transform:uppercase; margin-bottom:8px; }
.profile-hero__body h2{ font-size:1.8rem; color:var(--indigo); }
.profile-hero__body h2 .en{ display:block; font-family:var(--en); font-size:.86rem; letter-spacing:.14em; color:var(--ink-mute); margin-top:6px; }
.profile-hero__body .msg{ margin-top:20px; }
.profile-hero__body .sign{ font-weight:700; color:var(--indigo); margin-top:16px; }

.info-table{ width:100%; border-collapse:collapse; }
.info-table th, .info-table td{ padding:18px 20px; text-align:left; border-bottom:1px solid var(--line); font-size:.92rem; vertical-align:top; }
.info-table th{ background:var(--indigo-soft); color:var(--indigo); font-weight:600; width:180px; }

.history{ position:relative; }
.history li{ display:grid; grid-template-columns:90px 1fr; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.history .yr{ font-family:var(--en); font-weight:700; color:var(--cyan-deep); font-size:1.04rem; }
.history p{ margin:0; font-size:.92rem; }

.access{ display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:stretch; }
.access__map{ background:var(--bg-gray); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; min-height:300px; display:flex; }
.access__map svg{ width:100%; height:100%; }

/* =========================================================
   お問い合わせ
   ========================================================= */
.contact-grid{ display:grid; grid-template-columns:1fr 1.25fr; gap:46px; align-items:start; }
.contact-aside{ background:var(--indigo); color:#fff; border-radius:var(--radius-lg); padding:38px 34px; }
.contact-aside h3{ font-size:1.2rem; margin-bottom:14px; }
.contact-aside .tel{ font-family:var(--en); font-size:2rem; font-weight:700; color:#fff; }
.contact-aside .hours{ font-size:.82rem; color:#a9b5d4; margin-bottom:22px; }
.contact-aside ul li{ display:flex; gap:12px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.14); font-size:.88rem; color:#d4ddf0; }
.contact-aside ul li svg{ width:18px; height:18px; flex:none; margin-top:3px; color:var(--cyan); }

.form{ display:grid; gap:20px; }
.form .field{ display:flex; flex-direction:column; gap:7px; }
.form label{ font-size:.88rem; font-weight:700; color:var(--indigo); }
.form label .req{ color:#fff; background:var(--cyan-deep); font-size:.68rem; padding:2px 8px; border-radius:4px; margin-left:8px; }
.form input, .form select, .form textarea{ font-family:inherit; font-size:1rem; color:var(--ink); background:var(--bg); border:1.5px solid var(--line-strong); border-radius:var(--radius); padding:13px 15px; transition:border-color .25s, box-shadow .25s; }
.form input:focus, .form select:focus, .form textarea:focus{ outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(0,163,196,.14); }
.form .row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form .consent{ display:flex; gap:12px; align-items:flex-start; font-size:.86rem; color:var(--ink-soft); }
.form .consent input{ margin-top:5px; }

/* =========================================================
   記事
   ========================================================= */
.article{ width:min(92%,760px); margin-inline:auto; }
.article-meta{ display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.article-meta time{ font-family:var(--en); color:var(--ink-mute); }
.article-meta .tag{ font-size:.72rem; font-weight:700; color:var(--cyan-deep); background:var(--cyan-soft); padding:4px 12px; border-radius:4px; }
.article h1{ font-size:clamp(1.4rem,3.2vw,2rem); color:var(--indigo); line-height:1.5; margin-bottom:24px; padding-bottom:22px; border-bottom:2px solid var(--indigo); }
.article-body h2{ font-size:1.2rem; color:var(--indigo); margin:30px 0 12px; padding-left:14px; border-left:3px solid var(--cyan); }
.article-body p{ margin:0 0 1.3em; }
.article-body ul{ margin:0 0 1.3em; }
.article-body ul li{ position:relative; padding-left:22px; margin-bottom:8px; }
.article-body ul li::before{ content:""; position:absolute; left:2px; top:.65em; width:7px; height:7px; background:var(--cyan); }
.article-back{ margin-top:40px; }

/* =========================================================
   フッター
   ========================================================= */
.footer{ background:var(--indigo-deep); color:#a9b5d4; padding:60px 0 26px; }
.footer__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.12); }
.footer__brand .brand__name .ja{ color:#fff; }
.footer__brand .brand__name .en{ color:var(--cyan); }
.footer__brand p{ font-size:.85rem; line-height:1.85; margin-top:14px; }
.footer h4{ font-family:var(--en); font-size:.8rem; letter-spacing:.14em; color:var(--cyan); text-transform:uppercase; margin-bottom:14px; }
.footer__col ul li{ margin-bottom:10px; }
.footer__col ul li a{ font-size:.86rem; transition:color .25s; }
.footer__col ul li a:hover{ color:#fff; }
.footer__bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:22px; flex-wrap:wrap; gap:12px; }
.footer__bottom .copy{ font-family:var(--en); font-size:.78rem; letter-spacing:.04em; }
.footer__disclaimer{ background:rgba(255,255,255,.08); color:#d4ddf0; font-size:.76rem; padding:8px 16px; border-radius:4px; }

/* =========================================================
   reveal
   ========================================================= */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}

/* =========================================================
   レスポンシブ
   ========================================================= */
@media(max-width:960px){
  .hero__inner{ grid-template-columns:1fr; gap:36px; }
  .hero__panel{ max-width:480px; }
  .strengths{ grid-template-columns:1fr; }
  .plans{ grid-template-columns:1fr; }
  .process{ grid-template-columns:1fr 1fr; gap:30px 16px; }
  .proc:not(:last-child)::after{ display:none; }
  .profile-hero{ grid-template-columns:1fr; gap:30px; }
  .profile-hero__art{ max-width:280px; }
  .contact-grid{ grid-template-columns:1fr; gap:30px; }
  .access{ grid-template-columns:1fr; }
  .cta-band__inner{ grid-template-columns:1fr; gap:26px; }
  .cta-band__right{ text-align:left; }
  .cta-band__right .btn-row{ justify-content:flex-start; }
}
@media(max-width:768px){
  .sp-only{ display:revert; }
  .sp-hide{ display:none !important; }
  .sp-left{ text-align:left !important; }

  .gnav{ position:fixed; inset:0; background:var(--indigo-deep); z-index:110; flex-direction:column; justify-content:center; gap:26px; transform:translateX(100%); transition:transform .35s var(--ease); padding:80px 32px; }
  body.menu-open .gnav{ transform:none; }
  .gnav__list{ flex-direction:column; gap:22px; text-align:center; }
  .gnav__list a{ color:#fff; font-size:1.1rem; }
  .gnav a.gnav__cta{ background:var(--cyan); }
  .hamburger{ display:block; }

  .issues{ grid-template-columns:1fr; }
  .strengths{ grid-template-columns:1fr; }
  .process{ grid-template-columns:1fr; }
  .svc-row{ grid-template-columns:60px 1fr; }
  .svc-row .svc-arrow{ display:none; }
  .svc-detail{ grid-template-columns:1fr; gap:14px; }
  .svc-detail .ticks{ grid-template-columns:1fr; }
  .hero__stats .item{ padding-right:18px; }
  .hero__stats .item + .item{ padding-left:18px; }

  .info-table th, .info-table td{ display:block; width:100%; margin:0; padding:16px 0; background:transparent; }
  .info-table tr{ padding:0; margin:0; border-bottom:1px solid var(--line); }
  .info-table th{ padding-bottom:4px; color:var(--cyan-deep); }
  .fee-table thead{ display:none; }
  .fee-table, .fee-table tbody, .fee-table tr, .fee-table th, .fee-table td{ display:block; width:100%; }
  .fee-table tr{ border:1px solid var(--line); margin-bottom:12px; }
  .fee-table th, .fee-table td{ padding:16px 0; border:none; margin:0 16px; border-bottom:1px solid var(--line); }
  .fee-table td:last-child{ border-bottom:none; }
  .fee-table tbody th{ width:auto; background:transparent; }
  .history li{ grid-template-columns:1fr; gap:4px; }
  .footer__top{ grid-template-columns:1fr 1fr; gap:30px; }
}
@media(max-width:430px){
  .btn-row{ flex-direction:column; }
  .btn-row .btn{ min-width:0; }
  .hero__stats{ grid-template-columns:1fr; gap:0; }
  .hero__stats .item{ padding:14px 0; border-left:none !important; border-bottom:1px solid rgba(255,255,255,.16); }
  .hero__stats .item + .item{ padding-left:0; }
}

/* =========================================================
   写真パーツ（コーポレート版で追加）
   既存のインディゴ×シアン基調に馴染ませて写真を織り込む
   ========================================================= */

/* 代表・オフィス等の画像フレーム（プロフィール枠） */
.profile-hero__art img{ display:block; width:100%; height:100%; object-fit:cover; object-position:center 22%; aspect-ratio:300/360; }

/* About（私たちについて） */
.about__inner{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(30px,5vw,64px); align-items:center; }
.about__media{ position:relative; }
.about__media .m-main{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.about__media .m-main img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:16/10; }
.about__media .m-inset{ position:absolute; right:-14px; bottom:-24px; width:42%; border-radius:var(--radius-lg); overflow:hidden; border:5px solid #fff; box-shadow:var(--shadow); }
.about__media .m-inset img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.about__badge{ position:absolute; left:-16px; top:-20px; background:var(--indigo); color:#fff; border-radius:var(--radius); padding:12px 18px; box-shadow:var(--shadow); text-align:left; }
.about__badge .n{ display:block; font-family:var(--en); font-weight:700; font-size:1.7rem; line-height:1; }
.about__badge .n small{ font-size:.8rem; margin-left:2px; font-weight:600; }
.about__badge .l{ display:block; font-size:.72rem; color:var(--cyan); letter-spacing:.05em; margin-top:3px; }
.about__body h2{ font-size:clamp(1.5rem,2.6vw,2rem); color:var(--indigo); line-height:1.45; margin-top:6px; }
.about__body h2 .en{ display:block; font-family:var(--en); font-size:.86rem; letter-spacing:.14em; color:var(--ink-mute); margin-top:8px; font-weight:600; text-transform:uppercase; }
.about__body p{ color:var(--ink-soft); margin:18px 0; }
.about__body .btn{ margin-top:8px; }

/* CTA帯の写真背景 */
.cta-band__photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:.34; }
.cta-band__shade{ position:absolute; inset:0; z-index:0; background:linear-gradient(90deg, rgba(27,44,102,.93) 0%, rgba(27,44,102,.7) 55%, rgba(27,44,102,.52) 100%); }

/* アクセス／問い合わせ等のスポット写真 */
.spot-photo{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); margin-bottom:18px; }
.spot-photo img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:16/9; }

@media (max-width:820px){
  .about__inner{ grid-template-columns:1fr; gap:44px; }
  .about__media .m-inset{ width:38%; right:8px; bottom:-16px; }
}

/* =========================================================
   リニューアル：レイアウト刷新＋レスポンシブ全面調整（後勝ち上書き）
   ========================================================= */

/* ---- ヒーロー：背景画像＋オーバーレイ／1カラム／ボタン・右パネル廃止 ---- */
.hero{ padding:calc(var(--header-h) + 74px) 0 88px; min-height:88vh; display:flex; align-items:center; }
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero__overlay{ position:absolute; inset:0; background:linear-gradient(112deg, rgba(16,26,64,.96) 0%, rgba(24,38,92,.9) 44%, rgba(27,44,102,.62) 100%); }
.hero__grid{ position:absolute; inset:0; width:100%; height:100%; opacity:.5; }
.hero__inner{ grid-template-columns:1fr; }
.hero__copy{ max-width:720px; }
.hero h1{ font-size:clamp(1.9rem,4.4vw,3.05rem); }
.hero h1 .accent{ white-space:nowrap; }   /* スマホで「データと戦略」が途中改行しないように */

/* ヒーロー実績：カード化して主役に */
.hero__stats{ grid-template-columns:repeat(3,1fr); gap:14px; border-top:0; padding-top:0; margin-top:44px; max-width:680px; }
.hero__stats .item{ padding:18px 20px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); border-left:3px solid var(--cyan); border-radius:var(--radius); }
.hero__stats .item + .item{ border-left:3px solid var(--cyan); padding-left:20px; }
.hero__stats .num{ font-size:2.15rem; }
.hero__stats .num small{ font-size:.95rem; }
.hero__stats .lbl{ font-size:.72rem; color:#c4cee6; margin-top:8px; }

/* ---- About：左に「数字＋グラフ」のデータパネル ---- */
.about__inner{ grid-template-columns:1fr 1fr; align-items:center; }
.viz-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:24px 24px 28px; }
.viz-head{ font-family:var(--en); font-size:.72rem; font-weight:700; letter-spacing:.22em; color:var(--ink-mute); text-transform:uppercase; padding-bottom:14px; border-bottom:1px solid var(--line); margin-bottom:18px; display:flex; align-items:center; justify-content:space-between; }
.viz-head::after{ content:"2021 → 2026"; font-size:.66rem; color:var(--cyan-deep); letter-spacing:.1em; }
.viz-kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:22px; }
.viz-kpis .kpi{ background:var(--indigo-soft); border-radius:var(--radius); padding:14px 12px; }
.viz-kpis .kpi:nth-child(2){ background:var(--cyan-soft); }
.viz-kpis .kpi-n{ display:block; font-family:var(--en); font-size:1.55rem; font-weight:700; color:var(--indigo); line-height:1; }
.viz-kpis .kpi:nth-child(2) .kpi-n{ color:var(--cyan-deep); }
.viz-kpis .kpi-l{ display:block; font-size:.68rem; color:var(--ink-soft); margin-top:6px; }
.viz-chart{ width:100%; height:auto; display:block; }
.viz-note{ font-size:.7rem; color:var(--ink-mute); margin:12px 0 0; text-align:right; }

/* ---- 強み：アイコン廃止、大きな番号のエディトリアル ---- */
.strength{ position:relative; overflow:hidden; padding:34px 30px 30px; border-top:3px solid var(--cyan); }
.strength .sico{ display:none; }
.strength__no{ display:block; font-family:var(--en); font-size:3.2rem; font-weight:700; line-height:1; color:var(--indigo); letter-spacing:.02em; margin-bottom:8px; }
.strength__no small{ font-size:.72rem; color:var(--cyan-deep); letter-spacing:.18em; margin-left:10px; font-weight:700; vertical-align:super; text-transform:uppercase; }
.strength h3{ margin:2px 0 10px; }
.strength::after{ content:""; position:absolute; right:-34px; bottom:-34px; width:120px; height:120px; border-radius:50%; background:var(--indigo-soft); opacity:.55; z-index:0; }
.strength > *{ position:relative; z-index:1; }

/* ---- 進め方：ダーク帯で番号が見えるよう白丸に ---- */
.section--indigo .proc .pno{ background:#fff; color:var(--indigo); border-color:var(--cyan); }

/* ---- お知らせ：カテゴリタグ幅を統一 ---- */
.news-row .tag{ min-width:78px; text-align:center; justify-content:center; display:inline-flex; align-items:center; }

/* ---- CTAボタン：幅を詰めて電話番号との間隔を整える ---- */
.cta-band__hours{ margin-bottom:16px; }
.cta-band__right .btn-row .btn{ flex:0 0 auto; min-width:220px; }

/* ---- 会社ページ：代表（顔写真なし・メッセージ主体） ---- */
.profile-hero--nofoto{ grid-template-columns:1fr; }
.profile-hero--nofoto .profile-hero__body{ border-left:3px solid var(--cyan); padding-left:clamp(20px,3vw,34px); max-width:860px; }

/* =========================================================
   レスポンシブ 追加調整
   ========================================================= */
@media(max-width:960px){
  .about__inner{ grid-template-columns:1fr; gap:36px; }
  .hero{ min-height:0; }
}
@media(max-width:768px){
  .gnav .gnav__list a.current{ color:var(--cyan); }              /* ハンバーガー内カレントの可視化 */
  .footer__brand{ grid-column:1 / -1; }                          /* フッター崩れ防止 */
  .info-table th, .info-table td{ padding:12px 18px; }           /* 表の左右余白 */
  .info-table th{ padding-bottom:4px; }
  .form .row2{ grid-template-columns:1fr; }                       /* フォーム1カラム＝横幅ガタつき解消 */
  .form input, .form select, .form textarea{ width:100%; min-width:0; }
  .svc-row{ grid-template-columns:46px 1fr; gap:16px; }          /* サービス番号を小さく */
  .svc-row .svc-no{ font-size:1.2rem; }
}
@media(max-width:560px){
  .hero__stats{ grid-template-columns:repeat(3,1fr) !important; gap:8px; }   /* 実績は横3並びキープ */
  .hero__stats .item{ padding:12px 8px !important; text-align:center; border-left:0 !important; border-top:3px solid var(--cyan); }
  .hero__stats .item + .item{ padding-left:8px !important; border-left:0 !important; }
  .hero__stats .num{ font-size:1.4rem; }
  .hero__stats .num small{ font-size:.7rem; }
  .hero__stats .lbl{ font-size:.6rem; margin-top:5px; line-height:1.4; }
  .news-row{ flex-wrap:wrap; gap:8px 12px; padding:16px 4px; }               /* お知らせ：タイトルを2段目で必ず表示 */
  .news-row time{ width:auto; order:1; }
  .news-row .tag{ order:2; }
  .news-row .ttl{ order:3; flex:1 1 100%; white-space:normal; overflow:visible; font-size:.98rem; line-height:1.6; }
  .news-row .arr{ display:none; }
  .footer__top{ grid-template-columns:1fr; gap:26px; }                       /* フッター1カラム */
  .strength__no{ font-size:2.7rem; }
}
@media(max-width:430px){
  .hero__stats{ grid-template-columns:repeat(3,1fr); }                       /* 旧・縦積みルールを打ち消し */
  .hero__stats .item{ padding:12px 8px; border-bottom:0; }
  .hero__stats .item + .item{ padding-left:8px; }
}

/* 汎用チェックリスト（About等） */
.about__body .ticks{ display:grid; gap:9px; margin:18px 0 22px; }
.about__body .ticks li{ position:relative; padding-left:26px; font-size:.92rem; color:var(--ink); }
.about__body .ticks li::before{ content:""; position:absolute; left:2px; top:.5em; width:14px; height:7px; border-left:2px solid var(--cyan); border-bottom:2px solid var(--cyan); transform:rotate(-45deg); }

/* =========================================================
   v1.4 参考デザイン反映：英語serif見出し・ヒーロー刷新・メニュー等
   ========================================================= */
:root{ --serif:"Cormorant Garamond", "Times New Roman", serif; }

/* 見出し：日本語ラベル小 ＋ 英語serif大（大文字・中央） */
.sec-head{ text-align:center; }
.sec-head .eyebrow{ display:none; }
.sec-head h2{ font-weight:700; font-size:.82rem; letter-spacing:.16em; color:var(--cyan-deep); line-height:1.6; }
.sec-head h2 .en{ display:block; font-family:var(--en); font-weight:700; font-size:clamp(1.55rem,3vw,2.15rem); letter-spacing:.12em; color:var(--indigo); text-transform:uppercase; line-height:1.12; margin-top:8px; }
.sec-head .desc{ margin:18px auto 0; text-align:center; }
.section--indigo .sec-head h2{ color:var(--cyan); }
.section--indigo .sec-head h2 .en{ color:#fff; }

/* ヒーロー刷新（縦長・下揃え・FOR BUSINESS serif） */
.hero{ min-height:94vh; align-items:flex-end; padding:calc(var(--header-h) + 40px) 0 76px; }
.hero__overlay{ background:linear-gradient(108deg, rgba(16,26,64,.92) 0%, rgba(22,34,84,.82) 46%, rgba(24,38,96,.5) 100%); }
.hero__inner{ grid-template-columns:1fr; align-items:end; }
.hero__tag{ display:none; }
.hero__kicker{ font-family:var(--sans); font-size:clamp(.9rem,1.6vw,1.05rem); letter-spacing:.2em; color:#cfe6ee; margin:0 0 16px; font-weight:500; }
.hero__title{ font-family:var(--serif); font-weight:600; text-transform:uppercase; color:#fff; font-size:clamp(3.4rem,9vw,6.6rem); line-height:.94; letter-spacing:.02em; margin:0 0 28px; }
.hero__lead{ color:#dbe3f2; max-width:560px; }
.hero__stats{ display:flex; flex-wrap:wrap; gap:clamp(28px,4vw,54px); margin-top:44px; border:0; padding:0; max-width:none; }
.hero__stats .item{ padding:0 !important; background:none !important; border:0 !important; }
.hero__stats .num{ font-family:var(--en); font-weight:700; font-size:clamp(2.2rem,3.6vw,2.9rem); color:#fff; line-height:1; letter-spacing:.01em; }
.hero__stats .num small{ font-family:var(--sans); font-size:1rem; color:#fff; font-weight:500; margin-left:3px; }
.hero__stats .lbl{ font-size:.76rem; color:#c4cee6; margin-top:10px; letter-spacing:.03em; }

/* ヘッダーナビ英語 */
.gnav__list a{ font-family:var(--en); letter-spacing:.08em; font-size:.84rem; text-transform:uppercase; }

/* 課題：アイコン廃止・左シアンアクセント */
.issue .ico{ display:none; }
.issue{ padding:18px 0 18px 20px; border-left:2px solid var(--cyan); border-bottom:1px solid var(--line); }

/* 強み：シンプルなシャドーボックス（番号/太線/ホバー/装飾円を撤去） */
.strength{ border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:32px 30px; transition:box-shadow .25s; }
.strength:hover{ transform:none; box-shadow:var(--shadow-lg); }
.strength::after{ display:none !important; }
.strength__no{ display:inline-block !important; font-family:var(--en); font-weight:700; font-size:1.5rem; letter-spacing:.08em; color:var(--cyan); line-height:1; margin-bottom:14px; }
.strength__no small{ display:none; }
.strength .sico{ display:none; }
.strength h3{ margin:0 0 12px; font-size:1.18rem; color:var(--indigo); }
.strength p{ font-size:.92rem; color:var(--ink-soft); }

/* 進め方：フロー再設計（番号丸＋接続線） */
.flow-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative; }
.flow-steps::before{ content:""; position:absolute; top:29px; left:12.5%; right:12.5%; height:2px; background:var(--line-strong); z-index:0; }
.flow-step{ text-align:center; position:relative; z-index:1; }
.fs-num{ width:58px; height:58px; margin:0 auto 20px; border-radius:50%; background:var(--indigo); color:#fff; font-family:var(--en); font-weight:700; font-size:1.4rem; letter-spacing:.02em; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(27,44,102,.25); }
.flow-step h3{ font-size:1.04rem; color:var(--indigo); margin-bottom:8px; }
.flow-step p{ font-size:.86rem; color:var(--ink-soft); margin:0; }

/* CTA帯：背景をはっきり見せる（人物なし画像） */
.cta-band__photo{ opacity:.6; }
.cta-band__shade{ background:linear-gradient(90deg, rgba(18,28,64,.92) 0%, rgba(22,34,84,.6) 46%, rgba(22,34,84,.24) 100%); }

/* アクセス地図：画像化 */
.access__map img{ width:100%; height:100%; object-fit:cover; }
/* 代表ポートレート：顔が入るよう上寄せ */
.profile-hero__art img{ object-position:center 16%; }

/* モバイル調整 */
@media(max-width:768px){
  body.menu-open{ overflow:hidden; }                              /* 背景スクロール禁止 */
  .gnav{ background:rgba(18,26,58,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); justify-content:flex-start; gap:0; padding:100px 30px 40px; }
  .gnav__list{ width:100%; flex-direction:column; gap:0; text-align:left; }
  .gnav__list li{ width:100%; border-bottom:1px solid rgba(255,255,255,.14); }
  .gnav__list li:first-child{ border-top:1px solid rgba(255,255,255,.14); }
  .gnav__list a{ display:block; width:100%; padding:18px 2px; font-size:1rem; color:#fff; }
  .gnav .gnav__list a.current{ color:var(--cyan); }
  .gnav a.gnav__cta{ display:flex; width:100%; margin-top:30px; height:54px; background:var(--cyan); color:#fff; border:none; justify-content:center; font-size:.95rem; letter-spacing:.06em; }
  .flow-steps{ grid-template-columns:1fr; gap:0; }               /* フロー：縦タイムライン */
  .flow-steps::before{ top:16px; bottom:16px; left:29px; right:auto; width:2px; height:auto; }
  .flow-step{ text-align:left; display:grid; grid-template-columns:58px 1fr; column-gap:20px; row-gap:6px; align-items:center; padding:10px 0 26px; }
  .flow-step .fs-num{ margin:0; grid-column:1; grid-row:1 / 3; align-self:start; }
  .flow-step h3{ grid-column:2; align-self:center; }
  .flow-step p{ grid-column:2; }
  .hero__title{ font-size:clamp(3rem,15vw,4.6rem); }
}

/* =========================================================
   v1.5 微調整
   ========================================================= */
/* ロゴ：明朝(serif)の英語 */
.brand__name .ja{ font-family:var(--serif); font-weight:600; font-size:1.55rem; letter-spacing:.04em; line-height:1; }
.brand__name .en{ font-family:var(--en); font-size:.62rem; font-weight:600; letter-spacing:.3em; margin-top:4px; }

/* ヒーロータイトル：1文字ずつ登場アニメ */
.hero__title .hl{ display:inline-block; opacity:0; transform:translateY(34px) rotate(8deg); animation:heroLetter .62s var(--ease) forwards; animation-delay:calc(var(--i) * .06s); }
@keyframes heroLetter{ to{ opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce){ .hero__title .hl{ opacity:1 !important; transform:none !important; animation:none !important; } }

/* お知らせ等：分割見出しは左揃え */
.sec-head--left{ text-align:left !important; }

/* 見出しの日本語が単語途中で改行しないように（文節で折り返す） */
.cta-band h2, .sec-head h2, .hero__kicker{ word-break:keep-all; overflow-wrap:anywhere; }

/* =========================================================
   v1.6 微調整
   ========================================================= */
.hero__title{ font-size:clamp(3.9rem,10vw,7.4rem); }          /* FOR BUSINESS を大きく */
.hero__lead{ font-size:clamp(.9rem,1.4vw,1rem); }             /* リード文を約1px小さく */

/* 下層ページの見出し帯：日本語ラベル小＋英語大（ゴシック）・全部白 */
.page-hero .eyebrow{ color:#fff; opacity:.92; }
.page-hero .eyebrow::before{ background:#fff; }
.page-hero h1{ font-family:var(--en); font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#fff; }
.page-hero .crumbs{ color:rgba(255,255,255,.82); }
.page-hero .crumbs a{ color:rgba(255,255,255,.82); }
.page-hero .crumbs a:hover{ color:#fff; }

/* お問い合わせサイド：アイコン(emoji)なし */
.contact-aside ul li svg{ display:none; }

/* Cases：重複キャプションを非表示 */
.fee-table caption{ display:none; }

/* 同意欄のチェックボックスがフォーム共通指定で巨大化しないように */
.form .consent{ align-items:center; }
.form .consent input[type="checkbox"]{ width:18px !important; height:18px; min-width:18px; flex:0 0 auto; padding:0 !important; margin:0; border:1.5px solid var(--line-strong); border-radius:4px; accent-color:var(--cyan-deep); }

/* お知らせトップ：下用ボタンは通常非表示 */
.news-top__more-btm{ display:none; }

@media(max-width:768px){
  body{ font-size:15px; }                                     /* スマホの本文を15pxに */
  /* サービス：番号を見出しの横に、説明文を全幅に */
  .svc-row{ display:grid; grid-template-columns:auto 1fr; column-gap:10px; row-gap:5px; padding:22px 4px; }
  .svc-row .svc-no{ grid-column:1; grid-row:1; font-size:1.15rem; align-self:center; }
  .svc-row .svc-main{ display:contents; }
  .svc-row .svc-main h3{ grid-column:2; grid-row:1; align-self:center; margin-bottom:0; }
  .svc-row .svc-main p{ grid-column:1 / -1; grid-row:2; }
  .svc-row .svc-arrow{ display:none; }
  /* お知らせトップ：ボタンを一覧の下に */
  .news-top__more-top{ display:none; }
  .news-top__more-btm{ display:inline-flex; margin-top:22px; }
}
@media(max-width:560px){
  /* 実績：数字＋ラベルを左揃えで縦に */
  .hero__stats .item{ display:block !important; text-align:left; padding:14px 0 !important; }
  .hero__stats .item .lbl{ text-align:left; margin-top:5px; }
}

/* お問い合わせ：サイドの青みを抑える */
.contact-aside{ background:var(--bg-gray); color:var(--ink); border:1px solid var(--line); }
.contact-aside h3{ color:var(--indigo); }
.contact-aside .tel{ color:var(--indigo); }
.contact-aside .hours{ color:var(--ink-mute); }
.contact-aside ul li{ color:var(--ink-soft); border-bottom:1px solid var(--line); }
.contact-aside ul li svg{ color:var(--cyan-deep); }

@media(max-width:768px){
  .issues .issue:nth-child(n+4){ display:none; }                  /* 課題はスマホで3件まで */
  /* 表：行に対称パディング、ラベルと値をまとめて余白を統一 */
  .info-table tr{ display:block; padding:14px 18px; border-bottom:1px solid var(--line); }
  .info-table th, .info-table td{ display:block; width:100%; padding:0; background:transparent; border:0; }
  .info-table th{ padding:0 0 5px; color:var(--cyan-deep); font-weight:700; }
}
@media(max-width:560px){
  /* 実績：スマホでも3つ横並び（数字＋ラベルを縦に） */
  .hero__stats{ flex-direction:row !important; flex-wrap:nowrap; gap:10px !important; width:100%; max-width:none; margin-top:32px; }
  .hero__stats .item{ display:block !important; flex:1 1 0; text-align:left; padding:0 !important; border:0 !important; }
  .hero__stats .num{ font-size:1.5rem; }
  .hero__stats .num small{ font-size:.62rem; }
  .hero__stats .lbl{ margin-top:6px !important; text-align:left !important; font-size:.6rem; line-height:1.4; color:#fff !important; }
}

/* =========================================================
   v1.7 微調整：ヒーロー文字を全部白／ハンバーガー現在ページ白
   ========================================================= */
.hero__kicker{ color:#fff !important; }
.hero__lead{ color:#fff !important; }
.hero__stats .lbl{ color:#fff !important; }
@media(max-width:768px){
  .gnav .gnav__list a.current{ color:#fff !important; }   /* 選択中ページも白（下線で識別） */
}
