/* ===========================================================
   配色：名刺（白／光沢黒）を土台に、差し色を1色だけ。
   --accent を打ち消せば完全なモノクロになる。

   見出しフォント：源ノ角ゴシックJP Heavy を @font-face で読み込む。
   ・配信実体＝assets/fonts/SourceHanSansJP-Heavy-subset.woff2（使用文字だけのサブセット）。
     作り直しは font_subset.py（サイト本文の文字を変えたら再実行。Heavy原本が必要）。
   ・ライセンス＝SIL OFL 1.1。サブセットの同梱配布は許諾範囲（assets/fonts/にライセンス併置）。
   ・この@font-faceを削除すると、日本語は游ゴシックBoldへ落ちる（v1と同じ見え方）。
   =========================================================== */
@font-face{
  font-family:"SHS Heavy";
  src:url("fonts/SourceHanSansJP-Heavy-subset.woff2") format("woff2");
  font-weight:900; font-display:swap;
}
:root{
  --ink:#111214;       /* 文字・黒面 */
  --ink2:#0B0B0D;      /* 黒セクション */
  --paper:#FFFFFF;
  --paper2:#F5F5F3;    /* 薄い地 */
  --sub:#6E6E73;
  --subd:#9B9BA2;      /* 黒地の上の補助文字 */
  --rule:#E4E4E1;
  --ruled:#2A2A2E;
  --accent:#5FD3C0;    /* 差し色。消すとモノクロ */
  --maxw:1140px;
  --gro:"Arial Black","SHS Heavy","Segoe UI Black","Yu Gothic",sans-serif;  /* ロゴ・大見出し。ラテン=Arial Black／日本語=源ノ角Heavy */
  --sans:"Helvetica Neue",Arial,"Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:15.5px;line-height:2;-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 30px}

/* --- ロゴ（後日、正データのSVGに差し替える。ここだけ入れ替えれば全ページ反映） --- */
.logo{font-family:var(--gro);font-weight:900;letter-spacing:-.01em;line-height:1;
  text-decoration:none;display:inline-block}
.logo .dot{color:var(--accent)}
.logo img{display:block;height:32px;width:auto}
footer .logo img{height:28px}
/* シンボル（dの月）の配置。明るい背景=点なし版／暗い背景=灯り点あり版（Brand_Guidelines） */
.en-mark{height:15px;width:auto;vertical-align:-2px;margin-right:9px}
.hero .wrap{position:relative}
.hero-mark{position:absolute;right:30px;bottom:4px;width:min(230px,19vw)}
.cta-mark{display:block;height:46px;width:auto;margin:0 auto 26px}

/* --- header --- */
header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.93);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.hin{max-width:var(--maxw);margin:0 auto;padding:0 30px;height:72px;display:flex;align-items:center}
.hin .logo{font-size:21px}
nav{margin-left:auto;display:flex;align-items:center;gap:32px}
nav a{text-decoration:none;font-size:12.5px;font-weight:700;letter-spacing:.1em}
nav a:hover{opacity:.55}
nav .cta{background:var(--ink);color:#fff!important;padding:11px 22px;letter-spacing:.1em}
nav .cta:hover{opacity:.82}
.burger{display:none;margin-left:auto;background:none;border:0;font-size:20px;cursor:pointer}

/* --- hero --- */
.hero{padding:104px 0 88px;border-bottom:1px solid var(--rule)}
.hero .kick{font-size:11px;font-weight:700;letter-spacing:.3em;color:var(--sub);margin:0 0 30px}
.hero h1{margin:0;font-family:var(--gro);font-weight:900;letter-spacing:-.01em;
  font-size:clamp(30px,5.6vw,60px);line-height:1.42}
.hero h1 .mk{border-bottom:6px solid var(--accent);padding-bottom:2px}
.hero .lead{margin:38px 0 0;max-width:620px;color:var(--sub);font-size:14.5px;line-height:2.1}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.pill{border:1px solid var(--ink);padding:9px 18px;font-size:12px;font-weight:700;letter-spacing:.1em}

/* --- section --- */
section{padding:96px 0}
.tint{background:var(--paper2)}
.dark{background:var(--ink2);color:#fff}
.shead{margin-bottom:52px}
.shead .en{display:block;font-family:var(--gro);font-weight:900;font-size:12px;
  letter-spacing:.16em;color:var(--sub);margin-bottom:12px}
.dark .shead .en{color:var(--subd)}
.shead h2{margin:0;font-family:var(--gro);font-weight:900;letter-spacing:-.005em;
  font-size:clamp(24px,4vw,38px);line-height:1.4}
.shead .note{margin:18px 0 0;color:var(--sub);font-size:14px;max-width:640px}
.dark .shead .note{color:var(--subd)}

/* --- 3本柱 --- */
.tri{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:1px;background:var(--ruled)}
.tri>div{background:var(--ink2);padding:38px 30px}
.tri .no{font-family:var(--gro);font-weight:900;font-size:13px;letter-spacing:.14em;color:var(--accent)}
.tri h3{margin:16px 0 14px;font-size:19px;font-weight:700;letter-spacing:.08em;line-height:1.7}
.tri p{margin:0;color:var(--subd);font-size:14px;line-height:2.05}
.svc-add{margin:26px 0 0;color:var(--subd);font-size:13.5px}

/* --- mission --- */
.big{font-family:var(--gro);font-weight:900;font-size:clamp(20px,3.2vw,30px);line-height:1.62;
  letter-spacing:-.005em;margin:0 0 34px;max-width:820px}
.mission p{margin:0 0 22px;max-width:740px;color:var(--sub)}
.mission p:last-child{margin-bottom:0}

/* --- 会社概要 --- */
.tbl{width:100%;border-collapse:collapse;font-size:14.5px;border-top:1px solid var(--rule)}
.tbl th,.tbl td{text-align:left;padding:21px 4px;border-bottom:1px solid var(--rule);vertical-align:top}
.tbl th{width:186px;font-weight:700;letter-spacing:.08em}
.tbl td{color:var(--sub)}
.tbl ul{margin:0;padding-left:1.1em}
.tbl li{margin-bottom:5px}

/* --- news --- */
.empty{border:1px solid var(--rule);padding:52px;text-align:center;color:var(--sub);font-size:14px}
.nlist{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}
.nlist li{display:flex;gap:28px;align-items:baseline;padding:20px 6px;border-bottom:1px solid var(--rule)}
.nlist time{color:var(--sub);font-size:13.5px;letter-spacing:.04em;white-space:nowrap}
.nlist .ntext{font-size:14.5px}
@media (max-width:520px){
  .nlist li{flex-direction:column;gap:4px}
}

/* --- contact --- */
.cta-sec{background:var(--ink2);color:#fff;padding:96px 0;text-align:center}
.cta-sec h2{margin:0 0 18px;font-family:var(--gro);font-weight:900;
  font-size:clamp(22px,3.6vw,34px);line-height:1.5}
.cta-sec p{margin:0 auto 38px;color:var(--subd);font-size:14.5px;max-width:520px}
.btn{display:inline-block;background:#fff;color:var(--ink);text-decoration:none;
  padding:17px 44px;font-size:13px;font-weight:700;letter-spacing:.12em}
.btn:hover{opacity:.85}

/* --- footer --- */
footer{background:var(--ink2);color:var(--subd);padding:0 0 34px;font-size:13px}
.fgrid{display:flex;flex-wrap:wrap;gap:44px;justify-content:space-between;
  padding:52px 0 40px;border-top:1px solid var(--ruled)}
footer .logo{font-size:19px;color:#fff}
footer address{font-style:normal;margin-top:16px;line-height:2}
.flinks{display:flex;gap:30px;flex-wrap:wrap}
.flinks a{text-decoration:none}
.flinks a:hover{color:#fff}
.copy{font-size:11px;letter-spacing:.08em;padding-top:22px;border-top:1px solid var(--ruled)}

@media(max-width:860px){
  nav{position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;
    align-items:stretch;gap:0;padding:6px 30px 22px;border-bottom:1px solid var(--rule);display:none}
  nav.open{display:flex}
  nav a{padding:15px 0;font-size:14.5px}
  nav .cta{text-align:center;margin-top:12px}
  .burger{display:block}
  /* スマホはヘッダー直下の余白を詰め、ヒーロー＋事業タグ3つが1画面に収まる配分にする
     （2026-08-02 オーナー実機フィードバック） */
  .hero{padding:28px 0 48px}
  .hero .kick{margin-bottom:18px}
  .hero .lead{margin-top:24px}
  .pills{margin-top:26px}
  .hero h1{font-size:clamp(26px,7.2vw,34px)}
  .hero h1 br{display:none}
  section{padding:70px 0}
  .tbl th{width:104px;font-size:13.5px}
}
@media(max-width:1100px){.hero-mark{display:none}}

/* ===========================================================
   下層ページ（利用規約・個人情報保護方針などの文書ページ）
   トップと同じヘッダー・フッターを共有し、本文だけ読み物用の組みにする。
   =========================================================== */
.phead{padding:78px 0 0;border-bottom:1px solid var(--rule)}
.phead .en{display:block;font-family:var(--gro);font-weight:900;font-size:12px;
  letter-spacing:.16em;color:var(--sub);margin-bottom:12px}
.phead h1{margin:0;font-family:var(--gro);font-weight:900;letter-spacing:-.005em;
  font-size:clamp(25px,4.2vw,38px);line-height:1.4}
.phead .lead{margin:20px 0 0;max-width:660px;color:var(--sub);font-size:14px;line-height:2.05}
.phead .updated{margin:26px 0 30px;font-size:12px;letter-spacing:.06em;color:var(--sub)}

.doc{padding:56px 0 92px}
.doc .inner{max-width:760px}
.doc h2{margin:46px 0 18px;padding-top:26px;border-top:1px solid var(--rule);
  font-size:16.5px;font-weight:700;letter-spacing:.07em;line-height:1.7}
.doc h2:first-child{margin-top:0;padding-top:0;border-top:0}
.doc h3{margin:28px 0 12px;font-size:14.5px;font-weight:700;letter-spacing:.05em}
.doc p{margin:0 0 17px;font-size:14.5px;line-height:2.05;color:#3A3A40}
.doc ul,.doc ol{margin:0 0 17px;padding-left:1.5em;font-size:14.5px;line-height:2.05;color:#3A3A40}
.doc li{margin-bottom:7px}
.doc a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.doc a:hover{opacity:.6}
.doc .note{font-size:13px;color:var(--sub)}
.doc dl{margin:0;font-size:14.5px;line-height:2.05;color:#3A3A40}
.doc dt{font-weight:700;color:var(--ink);margin-top:18px}
.doc dd{margin:0 0 0 0}
.backhome{border-top:1px solid var(--rule);padding:34px 0 0;margin-top:56px}
.backhome a{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-decoration:none}
.backhome a:hover{opacity:.55}

@media(max-width:860px){
  .phead{padding:52px 0 0}
  .doc{padding:42px 0 68px}
  .doc h2{margin:36px 0 14px;padding-top:22px}
}
/* 入れ子リスト（法務文書の「項」の下にぶら下がる「号」） */
.doc li > ol, .doc li > ul{margin:10px 0 2px;padding-left:1.35em}
.doc li > ol{list-style-type:none;counter-reset:go}
.doc li > ol > li{counter-increment:go;position:relative}
.doc li > ol > li::before{content:"(" counter(go) ")";position:absolute;left:-1.9em;color:var(--sub)}
