/* =========================================================
   ワタナベ建装 会社HP — トップページ style（v2復元 / 2026-07-07）
   設計言語: nurishi.jp を参照トレース（丸ゴ＋明朝＋手書き英字／ティール＋ピンク＋コーラルCTA）
   ※「選ばれる理由」3枠は独立カード・上のティールラインを撤去。
   ========================================================= */

/* フォントは各HTMLの<head>で<link>読込（@importより高速なため） */

:root {
  --teal:      #3196a8;
  --teal-d:    #2a7f8f;
  --teal-l:    #5cabbc;
  --teal-pale: #e7f1f2;
  --navy:      #21444e;
  --pink:      #e398c1;
  --coral:     #e75f5f;
  --coral-d:   #d84c4c;
  --line:      #06c755;
  --line-d:    #05b34c;

  --ink:    #333b3f;
  --ink-s:  #55636a;
  --muted:  #8a969d;
  --bg:     #ffffff;
  --bg-alt: #f3f8f8;
  --surface:#ffffff;
  --border: #e2ebec;
  --star:   #f2b01e;
  --foot-muted:#6f8891;

  --f-round:  'Zen Maru Gothic','YuGothic','游ゴシック','Hiragino Maru Gothic ProN',sans-serif;
  --f-mincho: 'Shippori Mincho','A1 Mincho','Hiragino Mincho ProN',serif;
  --f-script: 'Homemade Apple',cursive;

  --sp-sec: 90px;
  --radius: 16px;
  --radius-s: 10px;
  --shadow-1: 0 3px 12px rgba(33,68,78,.08);
  --shadow-2: 0 12px 30px rgba(33,68,78,.14);
  --container: 1100px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body {
  font-family:var(--f-round);
  color:var(--ink);
  background:var(--bg);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
.container { max-width:var(--container); margin:0 auto; padding:0 20px; }

.script { font-family:var(--f-script); color:var(--teal-l); font-size:15px; letter-spacing:.02em; }
.mincho { font-family:var(--f-mincho); }
.stars  { color:var(--star); letter-spacing:2px; }

.ph {
  position:relative;
  background:#dfe9ea;
  color:var(--ink-s);
  display:flex; align-items:center; justify-content:center;
  text-align:center; font-size:12.5px; font-weight:500;
  overflow:hidden; min-height:180px;
}
.ph::after{ content:attr(data-label); padding:8px 12px; opacity:.7; }

/* =================== ヘッダー =================== */
.site-header{ position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--border); }
.site-header .container{ display:flex; align-items:center; justify-content:space-between; height:74px; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand .logo{ height:44px; width:auto; display:block; }
.brand .name{ font-weight:900; font-size:20px; letter-spacing:.02em; color:var(--navy); }
.brand .tag{ display:block; font-size:11px; color:var(--muted); font-weight:500; }
.gnav{ display:flex; align-items:center; gap:16px; }
.gnav .btn{ white-space:nowrap; flex:0 0 auto; }
.gnav a.link{ font-size:14px; font-weight:700; color:var(--navy); white-space:nowrap; }
.gnav a.link:hover{ color:var(--teal); }
.gnav a.biz{ font-size:12.5px; font-weight:700; color:var(--navy); border:1.5px solid var(--navy); border-radius:999px; padding:8px 15px; white-space:nowrap; transition:background .15s,color .15s; }
.gnav a.biz:hover{ background:var(--navy); color:#fff; }
.head-tel{ text-align:right; line-height:1.25; flex:0 0 auto; }
.head-tel .num{ font-family:var(--f-mincho); font-weight:700; font-size:20px; color:var(--navy); white-space:nowrap; }
.head-tel .rc{ font-size:10px; color:var(--muted); }

/* =================== ボタン =================== */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--f-round); font-weight:700; font-size:15px; line-height:1.2; padding:14px 26px; border-radius:999px; cursor:pointer; transition:transform .15s, box-shadow .15s, background .15s; border:2px solid transparent; text-align:center; }
.btn:hover{ transform:translateY(-2px); }
.btn small{ display:block; font-size:11px; font-weight:500; opacity:.9; }
.btn-coral{ background:var(--coral); color:#fff; box-shadow:var(--shadow-1); }
.btn-coral:hover{ background:var(--coral-d); }
.btn-line{ background:var(--line); color:#fff; }
.btn-line:hover{ background:var(--line-d); }
.btn-teal{ background:var(--teal); color:#fff; }
.btn-teal:hover{ background:var(--teal-d); }
.btn-ghost{ background:#fff; color:var(--navy); border-color:var(--border); }
.btn-ghost:hover{ border-color:var(--teal); color:var(--teal); }
.btn-lg{ padding:18px 38px; font-size:16px; }

/* =================== ヒーロー =================== */
.hero{ position:relative; background:var(--teal-pale); overflow:hidden; }
.hero .ph-bg{ position:absolute; inset:0; min-height:0; }
.hero img.ph-bg{ width:100%; height:100%; object-fit:cover; }
.hero .veil{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.86) 44%, rgba(255,255,255,.25) 100%); }
.hero::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:14px; z-index:4;
  background:
    linear-gradient(-135deg, #fff 7px, transparent 0) 0 50%,
    linear-gradient(135deg,  #fff 7px, transparent 0) 0 50%;
  background-size:14px 14px; background-repeat:repeat-x;
}
.hero .container{ position:relative; z-index:2; padding-top:66px; padding-bottom:66px; }
.hero .inner{ max-width:640px; }
.hero .script{ font-size:17px; }
.hero h1{ font-family:var(--f-mincho); font-weight:800; font-size:42px; line-height:1.5; color:var(--navy); margin-top:6px; letter-spacing:.01em; }
.hero h1 .hl{ color:var(--teal); }
.hero .lead{ margin-top:20px; font-size:16px; color:var(--ink-s); }
.hero .badges{ display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
.hero .badges span{ background:#fff; border:1px solid var(--teal-l); color:var(--teal-d); font-size:12.5px; font-weight:700; padding:7px 14px; border-radius:999px; }
.hero .cta-row{ display:flex; gap:14px; margin-top:28px; flex-wrap:wrap; }
.hero .micro{ margin-top:14px; font-size:12.5px; color:var(--muted); }

/* =================== キャンペーン帯 =================== */
.campaign{ background:var(--coral); color:#fff; }
.campaign .container{ display:flex; align-items:center; justify-content:center; gap:18px; padding:16px 20px; flex-wrap:wrap; text-align:center; }
.campaign .tagpill{ background:#fff; color:var(--coral); font-weight:900; font-size:12px; padding:5px 12px; border-radius:999px; }
.campaign strong{ font-size:17px; }
.campaign .note{ font-size:12px; opacity:.9; }

/* =================== セクション共通 =================== */
.sec{ padding:var(--sp-sec) 0; }
.sec.alt{ background:var(--bg-alt); background-image:radial-gradient(rgba(49,150,168,.055) 1.4px, transparent 1.5px); background-size:16px 16px; }
.sec.teal{ background:var(--teal-pale); background-image:radial-gradient(rgba(33,68,78,.05) 1.4px, transparent 1.5px); background-size:16px 16px; }
.sec.article{ padding-top:48px; }
.sec-head{ text-align:center; max-width:760px; margin:0 auto 52px; }
.sec-head .script{ display:block; margin-bottom:4px; }
.sec-head .ja{ font-family:var(--f-mincho); font-size:31px; font-weight:800; color:var(--navy); letter-spacing:.02em; position:relative; display:inline-block; }
.sec-head .ja::after{
  content:""; display:block; height:9px; width:118px; margin:12px auto 0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='118' height='9'><path d='M2 6 Q 16 1 30 6 T 59 6 T 88 6 T 116 6' fill='none' stroke='%23e398c1' stroke-width='3' stroke-linecap='round'/></svg>") no-repeat center;
}
.sec-head p{ margin-top:16px; color:var(--ink-s); font-size:15px; }

/* メッセージ */
.message .m-row{ display:flex; align-items:center; justify-content:center; gap:36px; }
.message .m-fig{ flex:0 0 210px; }
.message .m-fig img{ width:210px; height:auto; }
.message .m-body{ text-align:center; max-width:640px; }
.message .big{ font-family:var(--f-mincho); font-size:30px; font-weight:700; color:var(--navy); line-height:1.9; }
.message .big em{ font-style:normal; color:var(--teal); }
.message p{ margin:22px auto 0; color:var(--ink-s); font-size:15px; }

/* Google口コミ */
.review{ background:#fff; border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-1); max-width:900px; margin:0 auto; padding:30px 34px; display:grid; grid-template-columns:auto 1fr; gap:28px; align-items:center; }
.review .score{ text-align:center; border-right:1px solid var(--border); padding-right:28px; }
.review .score .g{ font-size:12px; color:var(--muted); font-weight:700; }
.review .score .n{ font-family:var(--f-mincho); font-size:46px; font-weight:800; color:var(--navy); line-height:1; }
.review .score .stars{ font-size:16px; margin-top:4px; }
.review .score .cnt{ font-size:11px; color:var(--muted); margin-top:4px; }
.review .quotes{ display:grid; gap:12px; }
.review .q{ font-size:14px; color:var(--ink-s); }
.review .q b{ color:var(--teal-d); }

/* 選ばれる理由（独立3カード・上のラインなし） */
.reason-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.reason{ background:#fff; border-radius:var(--radius); padding:34px 26px 30px; box-shadow:var(--shadow-1); text-align:center; }
.reason .no{ font-family:var(--f-script); color:var(--teal-l); font-size:16px; }
.reason .ic{ width:64px; height:64px; margin:6px auto 14px; border-radius:50%; background:var(--teal-pale); color:var(--teal); display:flex; align-items:center; justify-content:center; font-family:var(--f-mincho); font-weight:800; font-size:26px; }
.reason h3{ font-size:19px; font-weight:900; color:var(--navy); }
.reason p{ font-size:14px; color:var(--ink-s); margin-top:10px; }

/* お客様の声カード */
.voice-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.voice-grid.cols2{ grid-template-columns:repeat(2,1fr); max-width:840px; margin:0 auto; }
.voice-card{ background:#fff; border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-1); padding:26px; }
.voice-card .stars{ font-size:16px; }
.voice-card .txt{ margin-top:10px; font-size:15px; color:var(--ink); }
.voice-card .txt .tag{ color:var(--muted); font-size:12px; }
.voice-card .who{ margin-top:14px; font-size:13px; color:var(--muted); }

/* サービス */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.svc-card{ background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-1); transition:transform .15s, box-shadow .15s; position:relative; }
.svc-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-2); }
.svc-card .thumb{ aspect-ratio:16/10; min-height:0; }
img.thumb{ width:100%; object-fit:cover; display:block; }
.svc-card .body{ padding:22px 22px 24px; }
.svc-card h3{ font-size:19px; font-weight:900; color:var(--navy); }
.svc-card .en{ font-family:var(--f-script); font-size:13px; color:var(--teal-l); }
.svc-card p{ font-size:13.5px; color:var(--ink-s); margin-top:8px; }
.svc-card .more{ display:inline-flex; align-items:center; gap:5px; margin-top:14px; font-size:13px; font-weight:700; color:var(--coral); }
.badge-new{ position:absolute; top:14px; left:14px; z-index:2; background:var(--coral); color:#fff; font-size:11px; font-weight:900; padding:6px 12px; border-radius:999px; }
.svc-note{ text-align:center; margin-top:30px; font-size:15px; color:var(--ink-s); }
.svc-note b{ color:var(--teal-d); }

/* 施工事例 */
.works-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.work{ position:relative; border-radius:var(--radius-s); overflow:hidden; box-shadow:var(--shadow-1); }
.work .thumb{ aspect-ratio:4/3; min-height:0; }
.work img.thumb{ transition:transform .6s; }
.work:hover img.thumb{ transform:scale(1.05); }
.work .cap{ position:absolute; left:0; right:0; bottom:0; background:linear-gradient(transparent,rgba(33,68,78,.85)); color:#fff; font-size:13px; font-weight:700; padding:28px 14px 12px; }
.work .cap .tag{ display:inline-block; font-size:11px; background:var(--teal); padding:2px 8px; border-radius:4px; margin-bottom:5px; font-weight:700; }
.works-more{ text-align:center; margin-top:38px; }

/* お知らせ/ブログ */
.news-wrap{ max-width:820px; margin:0 auto; background:#fff; border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-1); overflow:hidden; }
.news-item{ display:flex; gap:18px; align-items:center; padding:18px 26px; border-bottom:1px solid var(--border); }
.news-item:last-child{ border-bottom:0; }
.news-item .date{ font-family:var(--f-mincho); font-size:13px; color:var(--muted); white-space:nowrap; }
.news-item .cat{ font-size:11px; font-weight:700; color:#fff; background:var(--teal-l); padding:3px 10px; border-radius:999px; white-space:nowrap; }
.news-item .ttl{ font-size:14px; color:var(--ink); }
a.news-item{ transition:background .15s; }
a.news-item:hover{ background:var(--teal-pale); }
a.news-item:hover .ttl{ color:var(--teal-d); }

/* 最終CTA */
.final{ background:var(--navy); color:#fff; text-align:center; position:relative; }
.final .script{ color:var(--pink); }
.final h2{ font-family:var(--f-mincho); font-size:32px; font-weight:800; margin-top:4px; }
.final p{ margin-top:16px; color:#cfe0e3; font-size:15px; }
.final .cta-row{ display:flex; gap:14px; justify-content:center; margin-top:32px; flex-wrap:wrap; }
.final .tel{ margin-top:24px; font-size:14px; color:#cfe0e3; }
.final .tel b{ font-family:var(--f-mincho); color:#fff; font-size:26px; }

/* フッター */
.site-footer{ background:#18333b; color:#9fb2b8; font-size:13.5px; }
.site-footer .container{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:34px; padding:58px 20px 30px; }
.site-footer h4{ color:#fff; font-size:15px; margin-bottom:14px; }
.site-footer .name{ font-size:20px; color:#fff; font-weight:900; }
.site-footer ul{ list-style:none; display:grid; gap:9px; }
.site-footer a:hover{ color:#fff; }
.site-footer .lead{ margin-top:12px; }
.site-footer .note{ margin-top:14px; font-size:12px; color:var(--foot-muted); }
.footer-bar{ border-top:1px solid #2c4a53; text-align:center; padding:18px; font-size:12px; color:var(--foot-muted); }

/* =================== 下層ページ共通 =================== */
.page-hero{ background:var(--teal-pale); border-bottom:1px solid var(--border); background-image:radial-gradient(rgba(33,68,78,.05) 1.4px, transparent 1.5px); background-size:16px 16px; }
.page-hero .container{ padding:52px 20px 46px; }
.crumb{ font-size:12.5px; color:var(--muted); margin-bottom:14px; }
.crumb a:hover{ color:var(--teal); }
.sec.article .crumb{ margin-bottom:22px; }
.page-hero .script{ display:block; font-size:16px; margin-bottom:2px; }
.page-hero h1{ font-family:var(--f-mincho); font-size:34px; font-weight:800; color:var(--navy); letter-spacing:.02em; }
.page-hero p{ margin-top:14px; color:var(--ink-s); font-size:15px; max-width:700px; }

/* 事例フィルター＋ギャラリー */
.filter{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:42px; }
.filter button{ font-family:var(--f-round); font-size:13.5px; font-weight:700; color:var(--navy); background:#fff; border:1.5px solid var(--border); border-radius:999px; padding:9px 20px; cursor:pointer; transition:.15s; }
.filter button:hover{ border-color:var(--teal-l); color:var(--teal); }
.filter button.active{ background:var(--teal); border-color:var(--teal); color:#fff; }
.gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }

/* サービス詳細行（交互レイアウト） */
.svc-row{ display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; padding:56px 0; border-bottom:1px solid var(--border); }
.svc-row:last-of-type{ border-bottom:0; }
.svc-row .media{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-1); }
.svc-row .media .thumb{ aspect-ratio:4/3; min-height:0; }
.svc-row.rev .media{ order:2; }
.svc-row .en{ font-family:var(--f-script); font-size:15px; color:var(--teal-l); }
.svc-row h2{ font-family:var(--f-mincho); font-size:26px; font-weight:800; color:var(--navy); margin-top:4px; }
.svc-row .body{ margin-top:14px; font-size:15px; color:var(--ink-s); }
.svc-row ul{ list-style:none; margin-top:18px; display:grid; gap:9px; }
.svc-row li{ font-size:14px; padding-left:22px; position:relative; color:var(--ink); }
.svc-row li::before{ content:""; position:absolute; left:0; top:9px; width:12px; height:2px; background:var(--coral); }
.svc-row .badge-new-inline{ display:inline-block; background:var(--coral); color:#fff; font-size:11px; font-weight:900; padding:4px 11px; border-radius:999px; margin-bottom:8px; }

/* 会社概要テーブル・スタッフ */
.info-table{ width:100%; border-collapse:collapse; max-width:760px; }
.info-table th,.info-table td{ text-align:left; padding:16px 8px; border-bottom:1px solid var(--border); font-size:15px; vertical-align:top; }
.info-table th{ width:190px; color:var(--navy); font-weight:700; background:var(--bg-alt); }
.staff-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:760px; }
.staff{ display:grid; grid-template-columns:96px 1fr; gap:20px; align-items:center; background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow-1); }
.staff .av{ width:96px; height:96px; border-radius:50%; min-height:0; }
.staff h3{ font-size:17px; font-weight:900; color:var(--navy); }
.staff .role{ font-size:12px; color:var(--teal-d); font-weight:700; }
.staff p{ font-size:13px; color:var(--ink-s); margin-top:6px; }

/* =================== コラム（一覧） =================== */
.post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.post-card{ background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-1); transition:transform .15s, box-shadow .15s; display:flex; flex-direction:column; }
.post-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-2); }
.post-card .thumb{ aspect-ratio:16/9; min-height:0; }
.post-card .body{ padding:18px 20px 22px; display:flex; flex-direction:column; gap:8px; flex:1; }
.post-card .meta{ display:flex; align-items:center; gap:10px; font-size:12px; color:var(--muted); }
.post-card .meta .cat{ font-size:11px; font-weight:700; color:#fff; background:var(--teal-l); padding:3px 10px; border-radius:999px; }
.post-card .meta .date{ font-family:var(--f-mincho); }
.post-card h3{ font-size:16px; font-weight:900; color:var(--navy); line-height:1.55; }
.post-card p{ font-size:13px; color:var(--ink-s); }

/* =================== コラム（記事本文） =================== */
.post{ max-width:780px; margin:0 auto; }
.post-head{ margin-bottom:34px; }
.post-head .meta{ display:flex; align-items:center; gap:12px; font-size:13px; color:var(--muted); margin-bottom:12px; }
.post-head .meta .cat{ font-size:11px; font-weight:700; color:#fff; background:var(--teal-l); padding:3px 12px; border-radius:999px; }
.post-head .meta .date{ font-family:var(--f-mincho); }
.post-head h1{ font-family:var(--f-mincho); font-size:30px; font-weight:800; color:var(--navy); line-height:1.6; letter-spacing:.01em; }
.post-head .lead{ margin-top:16px; font-size:15px; color:var(--ink-s); }
.post .eyecatch{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-1); margin-bottom:36px; }
.post .eyecatch img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.post h2{ font-family:var(--f-mincho); font-size:23px; font-weight:800; color:var(--navy); line-height:1.6; margin:52px 0 20px; padding:14px 18px; background:var(--teal-pale); border-radius:var(--radius-s); border-left:5px solid var(--teal); }
.post h3{ font-size:17.5px; font-weight:900; color:var(--navy); margin:36px 0 14px; padding-bottom:8px; border-bottom:2px dashed var(--border); }
.post p{ margin:16px 0; font-size:15px; color:var(--ink); }
.post ul,.post ol{ margin:16px 0 16px 4px; padding-left:20px; display:grid; gap:7px; font-size:14.5px; }
.post img.inpost{ border-radius:var(--radius-s); box-shadow:var(--shadow-1); margin:22px 0 6px; }
.post .imgcap{ font-size:12px; color:var(--muted); margin:6px 0 22px; text-align:center; }
.post table{ width:100%; border-collapse:collapse; margin:20px 0; font-size:14px; }
.post table th,.post table td{ border:1px solid var(--border); padding:11px 12px; text-align:left; vertical-align:top; }
.post table th{ background:var(--teal-pale); color:var(--navy); font-weight:700; white-space:nowrap; }
.post .note{ font-size:12.5px; color:var(--muted); }

/* 目次 */
.toc{ background:var(--bg-alt); border:1px solid var(--border); border-radius:var(--radius); padding:22px 26px; margin:30px 0 10px; }
.toc .t{ font-weight:900; color:var(--navy); font-size:14px; margin-bottom:10px; }
.toc .t .en{ font-family:var(--f-script); color:var(--teal-l); font-size:12px; margin-left:8px; font-weight:400; }
.toc ol{ list-style:none; margin:0; padding:0; display:grid; gap:7px; counter-reset:toc; }
.toc ol a{ font-size:14px; color:var(--ink); counter-increment:toc; display:block; padding-left:26px; position:relative; }
.toc ol a::before{ content:counter(toc,decimal-leading-zero); position:absolute; left:0; font-family:var(--f-script); color:var(--teal-l); font-size:12px; }
.toc ol a:hover{ color:var(--teal); }

/* 記事内CTA */
.cta-box{ background:var(--teal-pale); border-radius:var(--radius); padding:28px 26px; margin:40px 0; text-align:center; }
.cta-box .t{ font-family:var(--f-mincho); font-size:19px; font-weight:800; color:var(--navy); }
.cta-box p{ font-size:13.5px; color:var(--ink-s); margin:10px 0 0; }
.cta-box .row{ display:flex; gap:12px; justify-content:center; margin-top:18px; flex-wrap:wrap; }

/* FAQ */
.faq{ display:grid; gap:14px; margin:22px 0; }
.faq .qa{ background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:20px 22px; box-shadow:var(--shadow-1); }
.faq .q{ display:flex; gap:12px; align-items:flex-start; font-weight:900; color:var(--navy); font-size:15px; }
.faq .a{ display:flex; gap:12px; align-items:flex-start; margin-top:12px; font-size:14px; color:var(--ink-s); }
.faq .mk{ flex:0 0 28px; width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--f-mincho); font-weight:800; font-size:14px; }
.faq .q .mk{ background:var(--teal); color:#fff; }
.faq .a .mk{ background:var(--coral); color:#fff; }

/* 著者 */
.author{ display:grid; grid-template-columns:84px 1fr; gap:18px; align-items:center; background:var(--bg-alt); border:1px solid var(--border); border-radius:var(--radius); padding:20px 22px; margin:44px 0 0; }
.author .av{ width:84px; height:84px; border-radius:50%; min-height:0; }
.author .role{ font-size:11.5px; color:var(--teal-d); font-weight:700; }
.author h4{ font-size:16px; font-weight:900; color:var(--navy); }
.author p{ font-size:12.5px; color:var(--ink-s); margin:6px 0 0; }

/* 関連記事 */
.post-grid.cols2{ grid-template-columns:repeat(2,1fr); }
.related{ margin-top:56px; }
.related .t{ font-family:var(--f-mincho); font-size:20px; font-weight:800; color:var(--navy); margin-bottom:18px; }

@media (max-width:767px){
  .post-grid{ grid-template-columns:1fr; gap:16px; }
  .post-grid.cols2{ grid-template-columns:1fr; }
  .post-head h1{ font-size:24px; }
  .post h2{ font-size:20px; margin-top:42px; }
  .post table{ display:block; overflow-x:auto; }
}

/* =================== モバイルメニュー =================== */
.menu-btn{ display:none; width:44px; height:44px; border:1.5px solid var(--border); border-radius:12px; background:#fff; cursor:pointer; position:relative; flex:0 0 auto; padding:0; }
.menu-btn span{ position:absolute; left:12px; right:12px; height:2px; border-radius:2px; background:var(--navy); transition:transform .2s, top .2s, opacity .2s; }
.menu-btn span:nth-child(1){ top:15px; }
.menu-btn span:nth-child(2){ top:21px; }
.menu-btn span:nth-child(3){ top:27px; }
.menu-btn[aria-expanded="true"] span:nth-child(1){ top:21px; transform:rotate(45deg); }
.menu-btn[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-btn[aria-expanded="true"] span:nth-child(3){ top:21px; transform:rotate(-45deg); }
.sp-nav{ display:none; position:fixed; top:74px; left:0; right:0; bottom:0; z-index:49; background:rgba(255,255,255,.98); padding:14px 20px 34px; overflow-y:auto; }
.sp-nav.open{ display:block; }
.sp-nav a.item{ display:block; font-size:16px; font-weight:700; color:var(--navy); padding:15px 6px; border-bottom:1px solid var(--border); }
.sp-nav a.item .en{ font-family:var(--f-script); color:var(--teal-l); font-size:12px; margin-left:10px; font-weight:400; }
.sp-nav a.bizlink{ display:block; text-align:center; margin-top:20px; border:1.5px solid var(--navy); border-radius:999px; padding:12px; font-size:14px; font-weight:700; color:var(--navy); }
.sp-nav .tel{ margin-top:20px; text-align:center; font-size:12px; color:var(--muted); line-height:1.5; }
.sp-nav .tel b{ font-family:var(--f-mincho); font-size:23px; color:var(--navy); display:block; }
.sp-nav .cta{ display:flex; gap:10px; margin-top:14px; }
.sp-nav .cta .btn{ flex:1; padding:14px 10px; font-size:14px; }

/* 追従CTA（モバイル） */
.fixed-cta{ position:fixed; left:0; right:0; bottom:0; z-index:60; display:none; gap:10px; padding:10px 12px; background:rgba(255,255,255,.97); backdrop-filter:blur(6px); border-top:1px solid var(--border); transform:translateY(110%); transition:transform .25s; }
.fixed-cta.show{ transform:translateY(0); }
.fixed-cta .btn{ flex:1; padding:13px; font-size:14px; }

/* =================== レスポンシブ =================== */
@media (max-width:860px){
  .gnav a.link{ display:none; }
  .gnav a.biz{ display:none; }
  .menu-btn{ display:block; }
}
@media (max-width:767px){
  :root{ --sp-sec:58px; }
  .head-tel{ display:none; }
  .hero .veil{ background:linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.9) 70%, rgba(255,255,255,.7) 100%); }
  .hero h1{ font-size:29px; line-height:1.45; }
  .hero .inner{ max-width:100%; }
  .campaign .container{ gap:8px; }
  .review{ grid-template-columns:1fr; gap:18px; text-align:center; }
  .review .score{ border-right:0; border-bottom:1px solid var(--border); padding-right:0; padding-bottom:18px; }
  .reason-grid{ grid-template-columns:1fr; gap:16px; }
  .svc-grid{ grid-template-columns:1fr 1fr; gap:14px; }
  .works-grid{ grid-template-columns:1fr 1fr; gap:12px; }
  .voice-grid,.voice-grid.cols2{ grid-template-columns:1fr; }
  .sec-head .ja{ font-size:25px; }
  .message .m-row{ flex-direction:column; gap:8px; }
  .message .m-fig{ flex:none; }
  .message .m-fig img{ width:150px; }
  .message .big{ font-size:23px; }
  .final h2{ font-size:25px; }
  .news-item{ flex-wrap:wrap; gap:8px 14px; padding:16px 18px; }
  .site-footer .container{ grid-template-columns:1fr; gap:26px; }
  .fixed-cta{ display:flex; }
  body{ padding-bottom:70px; }
  .page-hero h1{ font-size:27px; }
  .gallery{ grid-template-columns:1fr 1fr; gap:12px; }
  .svc-row{ grid-template-columns:1fr; gap:24px; padding:40px 0; }
  .svc-row.rev .media{ order:0; }
  .staff-grid{ grid-template-columns:1fr; }
}
@media (max-width:430px){
  .svc-grid{ grid-template-columns:1fr; }
  .works-grid{ grid-template-columns:1fr; }
}

/* =================== アクセシビリティ =================== */
a:focus-visible, button:focus-visible{ outline:3px solid var(--teal); outline-offset:2px; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
