/* core.css ── 全25ページ共通の器。7型のカンプ（工程5・87点合格）から機械的に分離した。
   値が割れたセレクタは「ページ数の重み付き最頻値」を core に置き、
   それと違う型には type-*.css へ上書きを自動生成してある（＝見た目はカンプのまま）。
   上書きを消して core に寄せてよいと判断したものだけ、すでに統合済み。 */
:root{--gothic:'Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic Medium','Yu Gothic',system-ui,sans-serif;--mincho:'Hiragino Mincho ProN','Yu Mincho','YuMincho',serif;--k1:#171717;--k2:#2E2E2E;--k3:#4D4D4D;--k4:#8C8C8C;--sub:#5C5C5C;--kei:#E6E6E6;--kei2:#D2D2D2;--men:#FFFFFF;--haikei:#F7F7F7;--usui:#F2F2F2;--noko:#EAEAEA;--grad-dark:linear-gradient(140deg,#333333 0%,#0D0D0D 100%);--grad-band:linear-gradient(90deg,#171717 0%,#4D4D4D 100%);--grad-soft:linear-gradient(180deg,#FFFFFF 0%,#F3F3F3 100%)}
*{box-sizing:border-box}
.s{display:inline-block}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--gothic);color:var(--k1);background:var(--haikei);font-size:17px;line-height:1.9;letter-spacing:.02em;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px}
.ic{width:56px;height:56px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.spbar{display:none}
.hd{color:#fff}
.hd-in{max-width:1180px;margin:0 auto;padding:0 40px;height:76px;display:flex;align-items:center;gap:26px}
.logo{display:flex;align-items:center;gap:11px;flex:none}
.logo .mk{width:42px;height:42px;border-radius:50%;background:#fff;color:#0D0D0D;display:grid;place-items:center;font-size:22px;padding-bottom:2px}
.logo b{display:block;font-family:var(--mincho);font-size:17px;letter-spacing:.14em;line-height:1.2}
.logo span{display:block;font-size:9.5px;letter-spacing:.18em;opacity:.6}
.hd nav{margin-left:auto}
.hd nav ul{display:flex;gap:20px;list-style:none;margin:0;padding:0;font-size:13.5px;font-weight:600}
.hd .tel{flex:none;border:1px solid rgba(255,255,255,.45);padding:11px 18px;font-size:14px;font-weight:700;white-space:nowrap;min-height:44px;display:flex;align-items:center}
.e{margin:30px 0}
.e img{width:100%;height:auto;display:block;border:1px solid var(--kei);padding:14px;background:var(--men);box-sizing:border-box}
.e figcaption{margin:10px 0 0;font-size:13.5px;color:var(--sub);line-height:1.7}
.soudan{background:#0D0D0D;color:#fff;padding:72px 0}
.soudan h2{font-size:30px;font-weight:800;margin:0 0 14px;line-height:1.5}
.soudan p{color:rgba(255,255,255,.72);margin:0 0 34px;font-size:16.5px}
.soudan .ways{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:760px}
.soudan .w{border:1px solid rgba(255,255,255,.28);padding:26px 28px;text-decoration:none;display:block;color:#fff}
.soudan .w b{display:block;font-size:13px;letter-spacing:.14em;color:#9C9C9C;margin-bottom:10px}
.soudan .w strong{display:block;font-size:26px;font-weight:800;letter-spacing:.02em;line-height:1.3}
.soudan .w span{display:block;font-size:13px;color:rgba(255,255,255,.6);margin-top:8px}
.soudan .w.ln{grid-column:1/-1}
.soudan .area{border-color:rgba(255,255,255,.28);background:transparent;color:rgba(255,255,255,.8)}
.soudan .area .em{color:#fff}
.ft{background:var(--grad-dark);color:rgba(255,255,255,.72);padding:56px 0 32px;font-size:14.5px}
.ft .top{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:40px;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.16)}
.ft .logo{margin-bottom:18px;color:#fff}
.ft p{margin:0 0 6px;line-height:1.9}
.ft h4{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--k4);margin:0 0 14px}
.ft ul{list-style:none;margin:0;padding:0}
.ft li{padding:5px 0}
.ft .btm{padding-top:22px;font-size:13px;color:rgba(255,255,255,.66);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.col{max-width:880px;margin:0 auto}
.pan{background:var(--haikei);border-bottom:1px solid var(--kei)}
.pan ol{max-width:1180px;margin:0 auto;padding:0 40px;height:46px;display:flex;align-items:center;gap:10px;list-style:none;font-size:12.5px;color:var(--sub)}
.pan li::after{content:"›";margin-left:10px;color:var(--kei)}
.pan li:last-child::after{content:""}
.pan li:last-child{font-weight:700}
.atama{background:var(--men);padding:32px 0 26px}
.atama .eyebrow{font-size:13px;font-weight:700;letter-spacing:.14em;margin:0 0 16px}
.atama h1{font-size:38px;font-weight:800;line-height:1.4;margin:0}
.atama .lead{font-size:16.5px;margin:18px 0 0}
.atama .meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--kei);font-size:13px;color:var(--sub)}
.atama .meta b{color:var(--k1);font-weight:700}
.hyou{width:100%;border-collapse:collapse;margin:26px 0 30px;font-size:15.5px}
.hyou th,.hyou td{border:1px solid var(--kei);padding:14px 16px;text-align:left;vertical-align:top;line-height:1.8}
.hyou th{background:#F7F7F7;font-weight:700}
.hyou td b{font-weight:700}
.faq{background:var(--haikei);padding:74px 0}
.faq .ttl{font-size:13px;font-weight:700;letter-spacing:.16em;margin:0 0 14px}
.faq h2{font-size:30px;font-weight:800;margin:0 0 34px;line-height:1.5}
.faq .qa{background:#fff;border:1px solid var(--kei);margin-bottom:14px;padding:26px 30px}
.faq .q{display:flex;gap:15px;font-size:18px;font-weight:700;line-height:1.7;margin-bottom:12px}
.faq .a{display:flex;gap:15px;font-size:16px;line-height:1.9}
.faq .q .tx,.faq .a .tx{flex:1}
.faq .mk{flex:none;width:30px;height:30px;display:grid;place-items:center;font-size:16px;font-weight:700;border-radius:50%}
.faq .q .mk{background:var(--k1);color:#fff}
.faq .a .mk{background:#fff;color:var(--k1);border:1px solid var(--k1)}
.atama .koushin{margin-top:18px;padding-top:14px;border-top:1px solid var(--kei);font-size:13px;color:var(--sub)}
.atama .koushin b{color:var(--k1)}
.hyou .num{font-family:var(--gothic);font-size:19px;font-weight:700;white-space:nowrap}
.hyou thead th{background:var(--noko);font-weight:800;font-size:14.5px}
.hyou tbody th{background:#F7F7F7;font-weight:700}
.hyou .yaku{font-weight:800}
.hosoku{border-left:3px solid var(--kei);padding:2px 0 2px 15px;margin:16px 0;font-size:14px;color:var(--sub);line-height:1.85}
.atama .sha{margin-bottom:0}
.faq .sub{font-size:15px;color:var(--sub);margin:0 0 24px}
@media (max-width:620px){
  .spbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;height:60px;box-shadow:0 -4px 16px rgba(0,0,0,.18)}
  .spbar a{flex:1;display:grid;place-items:center;font-size:16px;font-weight:700;text-decoration:none;letter-spacing:.04em}
  .spbar .t{background:var(--k1);color:#fff}
  .spbar .m{background:var(--k3);color:#fff}
  .spbar .l{background:var(--k2,var(--k1));color:#fff}
  .spbar a{font-size:15px}
  body{padding-bottom:60px;font-size:16.5px}
  .hd-in{padding:0 16px;gap:10px}
  .logo .mk{width:36px;height:36px;font-size:19px}
  .logo b{font-size:15px;letter-spacing:.1em}
  .hd .tel{padding:10px 12px;font-size:13px}
  .wrap{padding:0 20px}
  .logo span{font-size:8.5px}
  .pan ol{padding:0 20px;height:42px;font-size:11.5px;overflow-x:auto;white-space:nowrap}
  .atama{padding:38px 0 32px}
  .atama h1{font-size:27px}
  .atama .lead{font-size:15.5px}
  .atama .meta{gap:12px;margin-top:18px;padding-top:14px;font-size:12px}
  .hyou th,.hyou td{display:block;width:100%}
  .hyou th{border-bottom:none}
  .hyou td{border-top:none}
  .faq,.kanren{padding:50px 0}
  .faq h2,.kanren h2{font-size:23px}
  .faq .qa{padding:20px 18px}
  .faq .q{font-size:16.5px;gap:11px}
  .faq .a{font-size:15px;gap:11px}
  .faq .mk{width:26px;height:26px;font-size:14px}
  .soudan{padding:52px 0}
  .soudan h2{font-size:23px}
  .soudan .ways{grid-template-columns:1fr}
  .soudan .w{padding:20px 20px}
  .soudan .w strong{font-size:20px;word-break:break-all;line-height:1.4}
  .ft .top{grid-template-columns:1fr;gap:26px}
  .faq,.soudan{padding:50px 0}
  .faq h2,.soudan h2{font-size:23px}
  .hyou .num{white-space:normal;font-size:17px;line-height:1.6}
  .atama h1 br{display:none}
  .hyou thead{display:none}
  .hyou tbody th{border-bottom:none}
  .faq{padding:44px 0}
  .faq h2{font-size:22px}
}
@media (max-width:980px){
  .wrap{padding:0 26px}
  .hd-in{padding:0 26px;height:70px}
  .hd nav{display:none}
  .ft .top{grid-template-columns:1fr}
}
@media print{
  .e img{filter:contrast(1.5) brightness(1.04);-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{background:#fff}
  .wrap{padding:0}
  .col{max-width:none}
  .hyou,.shiryo,.bunkai{page-break-inside:avoid}
  .faq{background:#fff;padding:20px 0}
  a{text-decoration:none}
}

/* ── ここから下は本番化で手を入れた分（カンプには無い）──
   カンプはリンクを張っていない見本だったので、実リンクにしたぶんの下線と色だけ整える。
   ホバーは指の届かない機種があるので、色を変えるだけにして位置は動かさない。 */
a{text-decoration:none}
.honbun a,.setu a,.bunsho a,.hint a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--kei2)}
.honbun a:hover,.setu a:hover,.bunsho a:hover,.hint a:hover{text-decoration-color:var(--k1)}
.hd nav a,.hd .tel,.ft a,.pan a{color:inherit}
.hd nav a:hover,.ft a:hover{opacity:.72}
.hd .tel:hover{background:rgba(255,255,255,.12)}
.pan a:hover{color:var(--k1)}
:focus-visible{outline:2px solid var(--k1);outline-offset:2px}
.hd :focus-visible,.ft :focus-visible,.soudan :focus-visible{outline-color:#fff}
/* ご相談ブロックを本文幅（880px）ではなくページ幅いっぱいで置く型。
   トップは上のセクションと左端を揃える必要があるため。 */
.soudan.wide .col{max-width:none}

/* 値がまだ確定していない箇所。公開前に確定値を入れて、このクラスごと消す。
   ビルドが件数を数えて警告する。 */
.machi{text-decoration:underline dotted var(--k4);text-underline-offset:4px;color:var(--k3)}

/* ── 画面に入った要素を、そっと出す ───────────────────────────────
   .anim は <head> のスクリプトが付ける。JSが動かない環境では付かないので、
   最初から全部見えている状態になる（＝動きが無いだけで、壊れない）。
   OS側で「視差効果を減らす」を選んでいる人には動きを出さない。 */
@media (prefers-reduced-motion:no-preference){
  /* ① 大きな区切りそのもの。画面に入ったら、そっと持ち上げて出す */
  .anim main>*,.anim .soudan{opacity:0;transform:translateY(16px);
    transition:opacity .55s ease,transform .55s cubic-bezier(.22,.7,.28,1)}
  /* 1つめ（トップはヒーロー）は位置を動かさない。直下のセクションと一瞬重なるため */
  .anim main>*:first-child{transform:none}
  .anim main>*.shown,.anim .soudan.shown{opacity:1;transform:none}

  /* ② ヒーローは中身を順に出す。ページを開いて最初の1秒で目に入るところ */
  .anim .hero h1,.anim .hero .desc,.anim .hero p,.anim .hero .btn{
    opacity:0;transform:translateY(12px);
    transition:opacity .7s ease,transform .7s cubic-bezier(.22,.7,.28,1)}
  .anim .hero h1{transition-delay:.10s}
  .anim .hero p,.anim .hero .desc{transition-delay:.24s}
  .anim .hero .btn{transition-delay:.38s}
  .anim .hero.shown h1,.anim .hero.shown .desc,.anim .hero.shown p,
  .anim .hero.shown .btn{opacity:1;transform:none}

  /* ③ 横に並ぶカードは左から順に。data-r はスクリプトが付ける
     （どの入れ物を順に出すかはスクリプト側に一覧がある） */
  .anim [data-r]{opacity:0;transform:translateY(12px);
    transition:opacity .5s ease,transform .5s cubic-bezier(.22,.7,.28,1)}
  .anim [data-r].shown{opacity:1;transform:none}
}

/* 文節折り返し（type-*.css の word-break:auto-phrase）を個別に外す。長い太字句・長い複合語が文節ごと次行へ送られ、手前の行の右が大きく空く要素にだけ付ける */
.wbn{word-break:normal}
/* 見出しも文節で折り返し、行の長さを揃える（390px で最後の1字だけ次行へ落ちるのを防ぐ）。効かないブラウザは従来どおり */
h1,h2,h3,.sengen b{word-break:auto-phrase;text-wrap:balance}
.nw{white-space:nowrap}  /* 許可番号・業種名を途中で折らない */
/* 本物のロゴマーク（筆文字の匠・透明PNG）。.mk の箱の飾りを外す */
html .logo img.mk{background:none;border:0;border-radius:0;padding:0;object-fit:contain}
