/* ==========================================================================
   K agency  —  site stylesheet
   v: 2026-09-21 restyle (diagnostics 1〜8 applied)
   目的 :
     1. 5ページのヒーローに違いを持たせる (:has() でページ判定 → 抽象図形)
     2. 3色グラデを装飾から抜き、実線と紺一色に置き換える
     3. セクションの余白に 3 段のリズムをつくる
     4. カードに階調 (primary / outlined-flat / step) をつくる
     5. 見出しは締めて、本文はゆるめる (Zen Kaku 900 と Noto 400/500 の対比)
     6. 375px で h1 を落ち着かせ、背景装飾を消し、ボタン重さを抜く
     7. ボタン・タグ・ピルの影を落として細身に
     8. ヘッダー小見出し / SPメニュー / フッターを人の手で作った温度に
   ========================================================================== */

:root{
  --navy:#16237F;
  --navy-deep:#0F1A66;
  --navy-soft:#2B3BD0;
  --ink:#1B2140;
  --ink2:#4A5172;
  --ink3:#7A809C;
  --bg:#FFFFFF;
  --lav:#EEF1FF;
  --lav2:#F6F7FF;
  --lav3:#E6ECFF;
  --line:#DDE2F5;
  --line-strong:#C7CFEA;
  --pink:#E250C9;
  --vio:#9B7BF0;
  --cyan:#4FC3F7;
  --sky1:#8AE6FF;
  --sky2:#5DB9FF;
  --grad:linear-gradient(90deg,var(--pink) 0%,var(--vio) 48%,var(--cyan) 100%);
  --shadow-sm:0 4px 14px rgba(15,26,102,.06);
  --shadow:0 8px 24px rgba(15,26,102,.08);
  --shadow-md:0 14px 32px rgba(15,26,102,.10);
  --f-head:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --f-body:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  --f-en:"Lato","Helvetica Neue",Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1!important;transform:none!important;transition:none!important}
  .btn,.card.link,.mnav .sheet,.pill-grad,.links a,.more::after{transition:none!important}
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:16px;
  font-weight:400;
  line-height:1.85;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

h1,h2,h3,h4{
  font-family:var(--f-head);
  margin:0;
  color:var(--navy);
  font-weight:900;
  line-height:1.4;
  letter-spacing:.02em;
  text-wrap:balance;
}
h1,h2,h3,.lead,.ttl p,.m-box b{word-break:auto-phrase}
p,li,dd,td{line-break:strict}

.wrap{width:min(1120px,100% - 40px);margin-inline:auto}

:focus-visible{
  outline:3px solid var(--cyan);
  outline-offset:3px;
  border-radius:6px;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.hd{
  position:sticky;top:0;z-index:20;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(1.4) blur(10px);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid rgba(22,35,127,.08);
}
.hd-row{display:flex;align-items:center;gap:22px;min-height:76px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{height:42px;width:auto}
.brand small{
  font-family:var(--f-body);
  font-size:.72rem;color:var(--ink2);
  font-weight:500;line-height:1.5;letter-spacing:.04em;
}

.gnav{
  margin-left:auto;
  display:flex;gap:26px;align-items:flex-end;
  padding:10px 0;
}
.gnav .grp{display:grid;gap:4px}
.gnav .grp small{
  /* 8. 平板の原因になっていたグラデ小見出しを、落ち着いた青灰の実線に */
  font-family:var(--f-head);
  font-weight:700;font-size:.64rem;
  letter-spacing:.16em;line-height:1.4;
  color:var(--ink3);
  width:max-content;
  background:none;-webkit-background-clip:initial;background-clip:initial;
}
.gnav .grp div{display:flex;gap:20px}
.gnav a{
  position:relative;
  font-family:var(--f-head);
  font-weight:700;font-size:.86rem;
  color:var(--ink);text-decoration:none;
  letter-spacing:.06em;
  padding:6px 0;
  white-space:nowrap;
  transition:color .15s;
}
.gnav a:hover{color:var(--navy)}
.gnav a.current{color:var(--navy)}
.gnav a.current::after{
  content:"";
  position:absolute;left:0;right:0;bottom:-3px;
  height:3px;border-radius:3px;
  background:var(--grad);
}
.gnav a.pill-grad{padding:12px 22px;align-self:center}
.gnav a.pill-grad::after{display:none}

.pill-grad{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--grad);color:#fff!important;
  font-family:var(--f-head);font-weight:700;
  font-size:.86rem;letter-spacing:.08em;
  padding:12px 22px;border-radius:999px;
  text-decoration:none;
  box-shadow:0 4px 12px rgba(155,123,240,.24);
  white-space:nowrap;
  transition:transform .18s,box-shadow .18s,filter .18s;
}
.pill-grad:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(155,123,240,.30);filter:brightness(1.03)}

/* --- Mobile menu (details) --- 8. 右からのシート＋紺のスクリム --- */
.mnav{display:none;position:relative;margin-left:auto}
.mnav summary{
  list-style:none;cursor:pointer;
  font-family:var(--f-en);font-weight:900;
  letter-spacing:.14em;font-size:.74rem;
  color:var(--navy);
  padding:10px 14px;
  border:1.5px solid var(--navy);
  border-radius:999px;
}
.mnav summary::-webkit-details-marker{display:none}
.mnav .sheet{
  position:fixed;
  top:0;right:0;
  width:min(88%,340px);
  height:100vh;height:100dvh;
  background:#fff;
  box-shadow:-14px 0 44px rgba(15,26,102,.16);
  padding:76px 20px 28px;
  display:flex;flex-direction:column;gap:2px;
  overflow-y:auto;
  z-index:30;
  min-width:0;
}
.mnav .sheet b{
  display:block;
  font-family:var(--f-head);
  font-size:.66rem;letter-spacing:.16em;
  color:var(--ink3);
  padding:16px 12px 6px;
  border-top:1px solid var(--line);
  margin-top:4px;
}
.mnav .sheet b:first-of-type{border-top:0;margin-top:0;padding-top:8px}
.mnav .sheet a{
  padding:14px;
  border-radius:10px;
  text-decoration:none;
  color:var(--ink);
  font-family:var(--f-head);font-weight:700;
  font-size:.98rem;
  min-height:48px;
  display:flex;align-items:center;
}
.mnav .sheet a:hover,.mnav .sheet a:focus-visible{background:var(--lav)}
.mnav .sheet a.on{background:var(--lav);color:var(--navy)}
.mnav .sheet hr{
  border:0;border-top:1px solid var(--line);
  margin:12px 8px 4px;
}
/* scrim (紺ベール) — mnav が open のときだけ出る */
body:has(.mnav[open])::before{
  content:"";
  position:fixed;inset:0;
  background:rgba(15,26,102,.42);
  z-index:25;
  animation:fadein .22s ease-out;
}
@keyframes fadein{from{opacity:0}to{opacity:1}}

/* --------------------------------------------------------------------------
   Hero  —  1. ページ別の抽象図形 (:has() でページ判定) + 共通の余白
   -------------------------------------------------------------------------- */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(52% 60% at 88% 12%,rgba(226,80,201,.09),transparent 60%),
    radial-gradient(48% 56% at 72% 82%,rgba(79,195,247,.14),transparent 62%),
    radial-gradient(46% 60% at 8% 92%,rgba(155,123,240,.07),transparent 60%),
    linear-gradient(180deg,#FFFFFF 0%,#F6F7FF 100%);
}
.hero-in{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:44px;align-items:center;
  padding:80px 0 116px;
}
.hero.short .hero-in{padding:64px 0 108px}

/* 共通 SVG (都市シルエット) は index (=.current 無し) だけに残す。
   サブページでは非表示にして、ページ別の抽象図形を ::before で描く */
.hero .sky{
  position:absolute;right:-4%;bottom:0;
  width:min(58%,720px);
  opacity:.42;
  pointer-events:none;
}
body:has(.gnav a.current) .hero .sky{display:none}

/* サブページ用の抽象図形 — 右上に薄く配置 */
.hero::before{
  content:"";
  position:absolute;top:0;right:0;
  width:min(52%,620px);height:100%;
  background-repeat:no-repeat;
  background-position:right 6% top 10%;
  background-size:contain;
  pointer-events:none;
  opacity:.55;
}
body:not(:has(.gnav a.current)) .hero::before{display:none}

/* 外国人材の住居 — 経緯線 + アパートの線画 + 世界を示す円 */
body:has(.gnav a.current[href="/housing"]) .hero::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 420' fill='none' stroke='%2316237F' stroke-width='1.2'><g opacity='.6'><path d='M20 400h560' stroke-dasharray='2 6'/><path d='M120 400V180l80-40 80 40v220z'/><path d='M120 260h160M120 320h160M200 180v220'/><rect x='150' y='210' width='30' height='34'/><rect x='210' y='210' width='30' height='34'/><rect x='150' y='274' width='30' height='34'/><rect x='210' y='274' width='30' height='34'/><rect x='150' y='340' width='30' height='34'/><rect x='210' y='340' width='30' height='34'/><path d='M320 400V240l60-30 60 30v160z'/><path d='M320 300h120M380 240v160'/><rect x='340' y='268' width='24' height='26'/><rect x='396' y='268' width='24' height='26'/><rect x='340' y='320' width='24' height='26'/><rect x='396' y='320' width='24' height='26'/><circle cx='500' cy='90' r='34' stroke-dasharray='3 5'/><path d='M466 90h68M500 56v68' stroke-dasharray='3 5'/><path d='M478 74c14 12 30 12 44 0M478 106c14-12 30-12 44 0' stroke-dasharray='2 4'/></g></svg>");
}
/* 借上げ社宅 — 低層ビルの断面 + 屋根の折れ線 */
body:has(.gnav a.current[href="/shataku"]) .hero::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 420' fill='none' stroke='%2316237F' stroke-width='1.2'><g opacity='.6'><path d='M20 400h560'/><path d='M120 400V150h220v250z'/><path d='M120 210h220M120 270h220M120 330h220'/><path d='M175 150v250M230 150v250M285 150v250'/><rect x='138' y='168' width='30' height='30'/><rect x='192' y='168' width='30' height='30'/><rect x='248' y='168' width='30' height='30'/><rect x='302' y='168' width='30' height='30'/><rect x='138' y='228' width='30' height='30'/><rect x='192' y='228' width='30' height='30'/><rect x='248' y='228' width='30' height='30'/><rect x='302' y='228' width='30' height='30'/><rect x='138' y='288' width='30' height='30'/><rect x='192' y='288' width='30' height='30'/><rect x='248' y='288' width='30' height='30'/><rect x='302' y='288' width='30' height='30'/><rect x='210' y='348' width='60' height='52'/><path d='M380 400V220l60-40 60 40v180z'/><path d='M380 300h120M440 220v180'/><rect x='400' y='240' width='30' height='30'/><rect x='450' y='240' width='30' height='30'/></g></svg>");
}
/* 住まいの売買 — 屋根形の折れ線 (家 + 小屋) */
body:has(.gnav a.current[href="/sales"]) .hero::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 420' fill='none' stroke='%2316237F' stroke-width='1.2'><g opacity='.6'><path d='M30 400h540'/><path d='M110 400V220L260 100l150 120v180z'/><path d='M170 400V300h60v100M280 400V300h60v100'/><path d='M110 220h300' stroke-dasharray='3 5'/><path d='M400 400V260L470 210l70 50v140z'/><path d='M440 400v-70h60v70'/><path d='M470 210v-40M450 190h40' stroke-dasharray='2 4'/><circle cx='140' cy='130' r='22' stroke-dasharray='3 5'/><path d='M182 190l40-30M300 240v40M400 260h-30' stroke-dasharray='2 4'/></g></svg>");
}
/* 住まいの賃貸 — 平面図 + 鍵 */
body:has(.gnav a.current[href="/rental"]) .hero::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 420' fill='none' stroke='%2316237F' stroke-width='1.2'><g opacity='.6'><rect x='120' y='120' width='340' height='240'/><path d='M290 120v240M120 240h340'/><path d='M120 240h60v-60M290 120v40h60M460 240h-60v60M290 360v-60h60' stroke-width='1.5'/><rect x='150' y='150' width='24' height='24'/><rect x='240' y='150' width='24' height='24'/><rect x='320' y='150' width='24' height='24'/><rect x='410' y='150' width='24' height='24'/><rect x='150' y='270' width='24' height='24'/><rect x='240' y='270' width='24' height='24'/><rect x='320' y='270' width='24' height='24'/><rect x='410' y='270' width='24' height='24'/><circle cx='510' cy='90' r='18'/><path d='M510 108v34M501 130h18M501 138h14' stroke-width='1.6'/></g></svg>");
}

/* --- Hero copy --- */
.kick{
  /* 2. グラデ文字を紺の実線に (装飾グラデを1画面2箇所以下に) */
  font-family:var(--f-en);
  font-weight:900;letter-spacing:.24em;
  font-size:.74rem;
  color:var(--navy);
  display:inline-block;
  margin-bottom:14px;
  background:none;-webkit-background-clip:initial;background-clip:initial;
}
.hero h1{
  /* 5. 見出しは締める : Zen Kaku 900, 行間 1.4, 字間 .02em, balance */
  font-size:clamp(1.86rem,4.2vw,2.95rem);
  font-weight:900;line-height:1.42;
  letter-spacing:.02em;
}
.hero .lead{
  /* 5. リード文は Noto Sans JP 500 に戻し、幅と行間で「息」を出す */
  margin-top:22px;
  font-family:var(--f-body);
  font-weight:500;
  font-size:clamp(1rem,1.3vw,1.06rem);
  color:var(--ink);
  line-height:1.95;
  max-width:32em;
}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.tags span{
  /* 7. 紺ベタから輪郭ピルへ */
  background:#fff;
  color:var(--navy);
  border:1px solid var(--navy);
  font-family:var(--f-head);font-weight:700;
  font-size:.78rem;letter-spacing:.06em;
  padding:6px 14px;border-radius:999px;
}
.cta-row{
  display:flex;flex-wrap:wrap;gap:14px;
  margin-top:30px;align-items:center;
}
.btn{
  /* 7. 影を軽く。ホバーで矢印が少し前進する */
  display:inline-flex;align-items:center;justify-content:space-between;
  gap:22px;
  background:var(--navy);
  color:#fff!important;text-decoration:none;
  font-family:var(--f-head);font-weight:700;
  letter-spacing:.06em;font-size:1rem;
  padding:14px 16px 14px 28px;
  border-radius:999px;border:0;cursor:pointer;
  box-shadow:0 6px 14px rgba(15,26,102,.14);
  transition:transform .18s,box-shadow .18s;
}
.btn:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 20px rgba(15,26,102,.18);
}
.btn i{
  width:32px;height:32px;border-radius:50%;
  background:#fff;display:grid;place-items:center;flex:0 0 auto;
  overflow:hidden;
}
.btn i::before{
  content:"";
  width:8px;height:8px;
  border-top:2px solid var(--navy);
  border-right:2px solid var(--navy);
  transform:rotate(45deg);margin-right:3px;
  transition:transform .18s;
}
.btn:hover i::before{transform:translateX(2px) rotate(45deg)}
.btn.ghost{
  background:#fff;color:var(--navy)!important;
  box-shadow:inset 0 0 0 1px var(--navy);
}
.btn.ghost:hover{background:var(--lav);box-shadow:inset 0 0 0 1px var(--navy)}
.btn.ghost i{background:var(--navy)}
.btn.ghost i::before{border-color:#fff}

.assure{
  margin-top:22px;font-size:.85rem;color:var(--ink2);
  display:flex;flex-wrap:wrap;gap:6px 20px;
}
.assure span::before{
  content:"";display:inline-block;
  width:14px;height:14px;margin-right:6px;vertical-align:-2px;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3.2L13 4.8' fill='none' stroke='%2316237F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.glance{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-radius:22px;
  box-shadow:var(--shadow);
  border:1px solid rgba(22,35,127,.08);
  padding:28px 28px 24px;
  display:flex;flex-direction:column;gap:14px;
}
.glance h2{font-size:1rem;letter-spacing:.08em}
.glance dl{margin:0;display:grid;gap:14px}
.glance div{
  display:grid;grid-template-columns:5.2em 1fr;gap:12px;align-items:start;
  border-top:1px dashed var(--line);padding-top:14px;
}
.glance dt{font-family:var(--f-head);font-weight:700;color:var(--navy);font-size:.9rem}
.glance dd{margin:0;font-size:.9rem;line-height:1.8;color:var(--ink)}

/* --------------------------------------------------------------------------
   Sections  —  3. 余白 72 / 96 / 120px の 3 段リズム
   -------------------------------------------------------------------------- */
.sec{padding:96px 0}
.sec.lav{
  background:var(--lav);
  border-radius:44px 44px 0 0;
  margin-top:-44px;
  position:relative;
  padding-top:112px;
}
.sec.lav.flat{border-radius:0;margin-top:0;padding-top:96px}
.sec.tight{padding:72px 0}
.sec.wide{padding:120px 0}

.ttl{text-align:center;margin-bottom:44px}
.ttl .en{
  /* 2. グラデ英字 → 落ち着いた青灰の実線に */
  display:block;
  font-family:var(--f-en);
  font-weight:900;
  font-size:clamp(.78rem,1vw,.88rem);
  letter-spacing:.3em;
  color:var(--ink3);
  margin-bottom:10px;
  background:none;-webkit-background-clip:initial;background-clip:initial;
}
.ttl h2{
  font-size:clamp(1.4rem,2.8vw,2rem);
  font-weight:900;color:var(--navy);
  margin-top:0;line-height:1.5;
}
.ttl h2::after{
  /* このグラデは残す (1画面2箇所以下に絞ったアクセント) */
  content:"";display:block;
  width:48px;height:3px;border-radius:3px;
  background:var(--grad);
  margin:16px auto 0;
}
.ttl p{
  max-width:46em;margin:16px auto 0;
  color:var(--ink2);font-size:.98rem;
}

/* --------------------------------------------------------------------------
   Cards  —  4. primary (linkable) / outlined (default) / step (top-accent)
   -------------------------------------------------------------------------- */
.cards{display:grid;gap:22px}
.cards.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cards.c2{grid-template-columns:repeat(2,minmax(0,1fr))}

/* outlined-flat がデフォルト : 薄い罫 + ごく淡い影 */
.card{
  background:#fff;
  border-radius:18px;
  border:1px solid rgba(22,35,127,.09);
  box-shadow:var(--shadow-sm);
  padding:28px 26px 26px;
  display:flex;flex-direction:column;gap:14px;
}
.card .no{
  font-family:var(--f-head);
  font-weight:700;letter-spacing:.06em;
  font-size:.78rem;color:var(--navy);
  background:none;-webkit-background-clip:initial;background-clip:initial;
}
.card h3{font-size:1.12rem;font-weight:900;line-height:1.55}
.card p{font-size:.94rem;color:var(--ink2);line-height:1.9}
.card p + p{margin-top:10px}

/* primary : ページ遷移リンクカードだけ強めの影で持ち上げる */
.card.link{
  text-decoration:none;color:inherit;
  box-shadow:var(--shadow);
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.card.link:hover,.card.link:focus-visible{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:rgba(22,35,127,.16);
}
.card.link .more{pointer-events:none}
.card .for{
  align-self:flex-start;
  font-size:.74rem;font-weight:700;color:var(--navy);
  background:var(--lav);
  padding:4px 12px;border-radius:999px;letter-spacing:.04em;
}

.chk li{
  position:relative;padding-left:26px;
  font-size:.94rem;line-height:1.85;color:var(--ink);
}
.chk li + li{margin-top:8px}
.chk li::before{
  content:"";position:absolute;left:0;top:.55em;
  width:16px;height:16px;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3.2L13 4.8' fill='none' stroke='%2316237F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.chk.no li::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 4l8 8M12 4l-8 8' fill='none' stroke='%23C2467F' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.card ul.chk.no{
  font-family:var(--f-body);font-weight:400;letter-spacing:0;
  font-size:inherit;color:inherit;
}
.card ul.chk.no li{font-size:.94rem;color:var(--ink)}

.more{
  margin-top:auto;align-self:flex-end;
  font-family:var(--f-en);font-weight:700;
  letter-spacing:.06em;font-size:.9rem;
  text-decoration:none;color:var(--navy);
}
.more::after{content:"→";margin-left:10px;transition:margin-left .18s}
.card.link:hover .more::after{margin-left:14px}
.center{display:flex;justify-content:center;margin-top:44px}

/* Icon chip */
.ico{
  width:52px;height:52px;border-radius:15px;
  background:var(--lav);
  border:1px solid rgba(22,35,127,.08);
  display:grid;place-items:center;flex:0 0 auto;
}
.ico svg{
  width:26px;height:26px;fill:none;
  stroke:var(--navy);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;
}

/* --------------------------------------------------------------------------
   Band (sky) — top page のアクセント帯
   -------------------------------------------------------------------------- */
.band{
  background:
    radial-gradient(60% 90% at 30% 40%,rgba(255,255,255,.55),transparent 60%),
    linear-gradient(120deg,var(--sky1) 0%,var(--sky2) 50%,#9BDDFF 100%);
  padding:96px 0;
}
.band-in{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:44px;align-items:start;
}
.band h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:900;color:var(--navy-deep)}
.band .desc{margin-top:22px;color:#123;font-weight:500;font-size:1rem;line-height:2}
.band .card{background:rgba(255,255,255,.94);padding:26px 24px}
.band .card h3{font-size:1.06rem}

/* Comparison table */
.cmp{
  width:100%;border-collapse:separate;border-spacing:0;
  background:#fff;border-radius:18px;overflow:hidden;
  box-shadow:var(--shadow-sm);
  border:1px solid rgba(22,35,127,.08);
  font-size:.94rem;
}
.cmp th,.cmp td{
  padding:16px 20px;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--line);
}
.cmp tr:last-child td,.cmp tr:last-child th{border-bottom:0}
.cmp thead th{
  background:var(--navy);color:#fff;
  font-family:var(--f-head);font-weight:700;
  letter-spacing:.06em;font-size:.92rem;
}
.cmp thead th.hl{background:var(--navy-deep)}
.cmp tbody th{
  font-family:var(--f-head);color:var(--navy);
  white-space:nowrap;background:var(--lav2);
}
.cmp td.hl{background:#F2F5FF;font-weight:500}
.tblwrap{overflow-x:auto;border-radius:18px}
.note{margin-top:16px;font-size:.84rem;color:var(--ink3)}

/* Flow (step) — 4. 上に細い紺のアクセント線、影は消してリズム変え */
.flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;counter-reset:st}
.step{
  background:#fff;
  border-radius:16px;
  border:1px solid rgba(22,35,127,.09);
  box-shadow:none;
  padding:26px 22px 22px;
  position:relative;
}
.step::after{
  content:"";
  position:absolute;top:0;left:22px;width:36px;
  height:3px;border-radius:0 0 3px 3px;
  background:var(--navy);
}
.step::before{
  /* 2. STEP のグラデ文字 → 紺の実線に */
  counter-increment:st;
  content:"STEP " counter(st);
  font-family:var(--f-en);font-weight:900;
  letter-spacing:.14em;font-size:.72rem;
  color:var(--navy);
  display:block;padding-top:6px;
  background:none;-webkit-background-clip:initial;background-clip:initial;
}
.step h3{font-size:1.02rem;margin:6px 0 8px;line-height:1.6}
.step p{font-size:.9rem;color:var(--ink2);line-height:1.85}
.step .who{
  display:inline-block;margin-top:12px;
  font-size:.74rem;font-weight:700;color:var(--navy);
  background:var(--lav);
  padding:4px 12px;border-radius:999px;
  letter-spacing:.04em;
}
.flow.f5{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.flow.f5 .step{padding:26px 18px 18px}
.flow.f5 .step h3{font-size:.96rem;line-height:1.6}
.flow.f5 .step p{font-size:.86rem}

.when{
  margin-top:28px;
  background:#fff;border-radius:18px;
  border:1px solid rgba(22,35,127,.08);
  box-shadow:var(--shadow-sm);
  padding:22px 26px;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;
}
.when b{display:block;font-family:var(--f-head);color:var(--navy);font-size:1rem}
.when span{font-size:.9rem;color:var(--ink2)}

/* FAQ */
.faq{max-width:860px;margin-inline:auto;display:grid;gap:12px}
.faq details{
  background:#fff;
  border-radius:14px;
  border:1px solid rgba(22,35,127,.08);
  box-shadow:none;
  padding:0 24px;
  transition:border-color .18s;
}
.faq details[open]{border-color:rgba(22,35,127,.16)}
.faq summary{
  list-style:none;cursor:pointer;
  padding:20px 40px 20px 0;position:relative;
  font-family:var(--f-head);font-weight:700;
  color:var(--navy);font-size:1rem;line-height:1.7;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{
  /* 2. Q のグラデ → 紺の実線 */
  content:"Q";
  font-family:var(--f-en);font-weight:900;
  margin-right:12px;
  color:var(--navy);
  background:none;-webkit-background-clip:initial;background-clip:initial;
}
.faq summary::after{
  content:"";
  position:absolute;right:6px;top:50%;
  width:10px;height:10px;
  border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);
  transform:translateY(-70%) rotate(45deg);
  transition:transform .2s;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq .a{
  padding:0 0 22px;color:var(--ink2);font-size:.94rem;
  border-top:1px dashed var(--line);padding-top:16px;
  line-height:1.95;
}

/* Operator */
.op{
  display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;
  background:#fff;border-radius:20px;
  border:1px solid rgba(22,35,127,.08);
  box-shadow:var(--shadow-sm);
  padding:28px 32px;
  max-width:860px;margin-inline:auto;
}
.op img{width:84px;height:84px;object-fit:contain}
.op b{font-family:var(--f-head);font-size:1.1rem;color:var(--navy)}
.op p{font-size:.94rem;color:var(--ink2);margin-top:6px}

/* --------------------------------------------------------------------------
   Contact form
   -------------------------------------------------------------------------- */
.formsec{
  background:linear-gradient(180deg,#F6F7FF 0%,#E6ECFF 100%);
  padding:96px 0 110px;
  border-radius:44px 44px 0 0;
  margin-top:-44px;
  position:relative;
}
#about{padding-bottom:132px}
.frm{
  background:#fff;
  border-radius:20px;
  border:1px solid rgba(22,35,127,.08);
  box-shadow:var(--shadow);
  padding:36px;
  max-width:860px;margin-inline:auto;
  display:grid;gap:20px;
}
.frm .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.frm label{
  display:block;
  font-family:var(--f-head);font-weight:700;
  font-size:.9rem;color:var(--ink);margin-bottom:6px;
}
.frm .req{color:#C2467F;margin-left:4px}
.frm input[type=text],.frm input[type=email],.frm select,.frm textarea{
  width:100%;font:inherit;font-size:1rem;
  padding:13px 16px;
  border:1px solid var(--line-strong);
  border-radius:12px;background:var(--lav2);color:var(--ink);
  transition:border-color .15s,background .15s,box-shadow .15s;
}
.frm input:focus,.frm select:focus,.frm textarea:focus{
  outline:none;
  border-color:var(--navy);
  background:#fff;
  box-shadow:0 0 0 4px rgba(22,35,127,.14);
}
.frm textarea{min-height:120px;resize:vertical}
.frm .chkbox{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.frm .chkbox label{
  display:flex;gap:10px;align-items:flex-start;
  font-family:var(--f-body);font-weight:500;
  background:var(--lav2);
  border:1px solid var(--line);
  border-radius:12px;padding:12px 14px;margin:0;cursor:pointer;
  transition:border-color .15s,background .15s;
}
.frm .chkbox label:hover{border-color:var(--navy);background:#fff}
.frm .chkbox input{margin-top:6px;accent-color:var(--navy)}
.frm .sub{display:flex;justify-content:center;margin-top:6px}
.frm .fine{font-size:.82rem;color:var(--ink3);line-height:1.85}

/* --------------------------------------------------------------------------
   Footer  —  8. 情報の階層を明確に (h4 の下にヘアライン)
   -------------------------------------------------------------------------- */
.ft{
  background:var(--navy-deep);color:#D6DBFF;
  padding:64px 0 36px;font-size:.9rem;
}
.ft a{color:#fff;text-decoration:none}
.ft a:hover{text-decoration:underline}
.ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
.ft-grid.g4{grid-template-columns:1.3fr 1fr 1fr 1fr}
.ft h4{
  font-family:var(--f-en);color:#fff;
  letter-spacing:.16em;font-size:.78rem;
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.ft .fl{display:grid;gap:8px}
.ft-bottom{
  margin-top:40px;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.16);
  display:grid;gap:6px;font-size:.8rem;color:#AEB6EE;
}

.spcta{display:none}

/* Reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}

/* --------------------------------------------------------------------------
   Sub-page patterns
   -------------------------------------------------------------------------- */
.crumbs{
  font-size:.78rem;color:var(--ink3);
  margin-bottom:18px;display:flex;flex-wrap:wrap;gap:6px;
}
.crumbs a{color:var(--ink2);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs span::before{content:"/";margin-right:6px;color:var(--line)}

/* In-page nav (pill) */
.lnav{
  display:flex;flex-wrap:wrap;gap:10px;
  justify-content:center;
  margin:0 auto 40px;max-width:900px;
}
.lnav a{
  font-family:var(--f-head);font-weight:700;
  font-size:.84rem;letter-spacing:.06em;
  text-decoration:none;color:var(--navy);
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;padding:8px 18px;
  transition:background .15s,color .15s,border-color .15s;
}
.lnav a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* Topic (shataku) */
.topic{
  background:#fff;
  border-radius:20px;
  border:1px solid rgba(22,35,127,.08);
  box-shadow:var(--shadow-sm);
  padding:32px 34px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:34px;align-items:center;
  position:relative;overflow:hidden;
}
.topic::before{
  /* 2. グラデ縦バー → 紺の実線に */
  content:"";position:absolute;
  left:0;top:0;bottom:0;width:5px;
  background:var(--navy);
}
.topic .lbl{
  font-family:var(--f-en);font-weight:900;
  letter-spacing:.16em;font-size:.74rem;
  color:var(--navy);
}
.topic h3{font-size:1.24rem;font-weight:900;margin:6px 0 12px;line-height:1.5}
.topic p{font-size:.95rem;color:var(--ink2)}
.topic .src{margin-top:12px;font-size:.8rem;color:var(--ink3)}

.shift{
  display:grid;grid-template-columns:1fr auto 1fr;
  gap:14px;align-items:center;
}
.shift div{
  background:var(--lav2);
  border:1px solid var(--line);
  border-radius:14px;padding:18px 16px;text-align:center;
}
.shift div.to{background:var(--lav)}
.shift small{display:block;font-size:.76rem;color:var(--ink2);font-weight:700;letter-spacing:.06em}
.shift b{
  display:block;font-family:var(--f-en);font-weight:900;
  font-size:1.7rem;color:var(--navy);line-height:1.3;
}
.shift span{display:block;font-size:.8rem;color:var(--ink2)}
.shift i{
  font-style:normal;font-family:var(--f-en);font-weight:900;
  color:var(--navy);font-size:1.4rem;
}

/* Self-check numbered list */
.q5{
  max-width:860px;margin-inline:auto;
  display:grid;gap:10px;counter-reset:q;
}
.q5 li{
  counter-increment:q;
  background:#fff;
  border:1px solid rgba(22,35,127,.08);
  border-radius:14px;
  box-shadow:none;
  padding:18px 22px 18px 68px;
  position:relative;
  font-family:var(--f-head);font-weight:700;color:var(--ink);
  line-height:1.7;
}
.q5 li::before{
  /* 2. Q のグラデ → 紺の実線 */
  content:"Q" counter(q);
  position:absolute;left:22px;top:50%;
  transform:translateY(-50%);
  font-family:var(--f-en);font-weight:900;
  font-size:1.1rem;color:var(--navy);
  background:none;-webkit-background-clip:initial;background-clip:initial;
}
.q5 li small{
  display:block;font-family:var(--f-body);
  font-weight:400;font-size:.86rem;color:var(--ink2);
  margin-top:4px;
}
.q5note{
  max-width:860px;margin:22px auto 0;
  text-align:center;font-size:.95rem;color:var(--ink2);
}

/* Relay (top page who-does-what) */
.relay{
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr;
  gap:16px;align-items:stretch;
}
.relay .card{padding:26px 24px}
.relay .arw{
  align-self:center;font-family:var(--f-en);
  font-weight:900;color:var(--navy-deep);font-size:1.5rem;
}
.relay .card small{
  font-family:var(--f-en);font-weight:900;
  letter-spacing:.12em;font-size:.72rem;color:var(--navy);
}

/* Category (top page) — 3. 左寄せの ttl 変種を .cat.head に */
.cat{
  display:grid;
  grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);
  gap:36px;align-items:start;
}
.cat .head{position:relative;padding-left:18px}
.cat .head::before{
  content:"";position:absolute;
  left:0;top:8px;width:4px;height:calc(100% - 22px);
  background:var(--navy);border-radius:2px;
}
.cat .head .en{
  font-family:var(--f-en);font-weight:900;
  font-size:clamp(.86rem,1.2vw,1rem);
  letter-spacing:.28em;line-height:1.3;
  color:var(--ink3);
  display:block;margin-bottom:8px;
  background:none;-webkit-background-clip:initial;background-clip:initial;
}
.cat .head h2{font-size:1.5rem;font-weight:900;margin-top:0;line-height:1.5}
.cat .head p{margin-top:14px;color:var(--ink2);font-size:.96rem}

/* LINE / contact block */
.linebox{
  background:#fff;
  border:1px solid rgba(22,35,127,.08);
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:36px;
  max-width:860px;margin-inline:auto;
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;
  align-items:center;
}
.linebox h3{font-size:1.2rem;font-weight:900}
.linebox p{margin-top:10px;font-size:.95rem;color:var(--ink2)}
.linebox .cta-row{margin-top:22px}
.linebox .qr{text-align:center;font-size:.78rem;color:var(--ink3);line-height:1.6}
.linebox .qr img{
  width:132px;height:132px;
  display:block;margin:0 auto 6px;
  border-radius:10px;border:1px solid var(--line);
}
.btn.line{
  background:#06C755;
  box-shadow:0 6px 14px rgba(6,199,85,.20);
}
.btn.line:hover{box-shadow:0 10px 20px rgba(6,199,85,.24)}
.btn.line i::before{border-color:#06C755}

/* Small helpers */
.lead2{max-width:46em;margin:0 auto;text-align:center;color:var(--ink2)}
.twocol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.links a{
  background:#fff;
  border:1px solid rgba(22,35,127,.08);
  border-radius:14px;
  box-shadow:var(--shadow-sm);
  padding:20px 22px;text-decoration:none;
  display:grid;gap:4px;
  transition:transform .18s,box-shadow .18s,border-color .18s;
}
.links a:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:rgba(22,35,127,.16)}
.links a b{font-family:var(--f-head);color:var(--navy);font-size:1rem}
.links a span{font-size:.84rem;color:var(--ink2);line-height:1.7}

.thanks{min-height:60vh;display:grid;place-items:center;text-align:center;padding:96px 0}
.thanks h1{font-size:clamp(1.6rem,3.4vw,2.2rem);font-weight:900}
.thanks p{margin-top:18px;color:var(--ink2)}

/* Money flow — 2. .m-arw.rev のグラデ矢印 → 紺の実線に */
.money{
  max-width:980px;margin-inline:auto;
  background:#fff;
  border:1px solid rgba(22,35,127,.08);
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:30px 32px 24px;
  display:grid;
  grid-template-columns:1fr auto 1.1fr auto 1fr;
  gap:10px 8px;align-items:stretch;
}
.m-box{
  background:var(--lav2);
  border:1px solid var(--line);
  border-radius:14px;padding:18px 14px;
  text-align:center;
  display:grid;align-content:center;
}
.m-box.me{background:var(--navy);border-color:var(--navy)}
.m-box small{display:block;font-size:.74rem;color:var(--ink2);letter-spacing:.06em}
.m-box b{
  display:block;font-family:var(--f-head);
  font-size:1.04rem;color:var(--navy);line-height:1.5;
}
.m-box.me small{color:#C9D0FF}
.m-box.me b{color:#fff}
.m-arw{
  display:grid;justify-items:center;gap:6px;
  min-width:112px;text-align:center;
  align-self:center;
}
.m-arw span{
  font-family:var(--f-head);font-weight:700;
  font-size:.8rem;color:var(--ink2);line-height:1.5;
}
.m-arw i{
  position:relative;display:block;width:88px;height:2px;
  background:repeating-linear-gradient(90deg,var(--line-strong) 0 6px,transparent 6px 11px);
}
.m-arw i::after{
  content:"";position:absolute;right:-1px;top:-4px;
  width:8px;height:8px;
  border-top:2px solid var(--line-strong);
  border-right:2px solid var(--line-strong);
  transform:rotate(45deg);
}
.m-arw.rev span{color:var(--navy)}
.m-arw.rev i{background:var(--navy)}
.m-arw.rev i::after{
  right:auto;left:-1px;
  border-color:var(--navy);
  transform:rotate(-135deg);
}
.m-note{
  grid-column:1/-1;margin-top:12px;
  font-size:.84rem;color:var(--ink3);text-align:center;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width:1180px){
  .gnav{gap:18px}
  .gnav .grp div{gap:14px}
  .gnav a{font-size:.82rem}
  .gnav a.pill-grad{padding:11px 16px;font-size:.8rem}
}
@media (min-width:961px) and (max-width:1100px){
  .cards.c4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1100px){
  .flow.f5{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:960px){
  .gnav{display:none}
  .mnav{display:block;margin-left:auto}
  .brand small{display:none}
  .hero-in{grid-template-columns:1fr;padding:52px 0 92px;gap:32px}
  .hero .sky{width:110%;right:-8%;opacity:.32}
  .hero::before{width:100%;opacity:.28;background-position:right 4% top 8%}
  .cards.c3,.cards.c4,.cards.c2,.flow,.when,.band-in,.ft-grid,.topic,.cat,.twocol,.linebox{
    grid-template-columns:1fr;
  }
  .band-in{gap:28px}
  .sec,.band,.formsec{padding:72px 0}
  .sec.lav,.formsec{border-radius:28px 28px 0 0;margin-top:-28px;padding-top:82px}
  .sec.lav.flat{margin-top:0;border-radius:0;padding-top:72px}
  #about{padding-bottom:104px}
  .frm{padding:26px 22px}
  .frm .row,.frm .chkbox{grid-template-columns:1fr}
  .op{grid-template-columns:1fr;text-align:center;justify-items:center}
  .op img{margin:0 auto}
  .topic{padding:26px 22px 26px 28px}
  .relay{grid-template-columns:1fr}
  .relay .arw{justify-self:center;transform:rotate(90deg)}
  .links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft-grid,.ft-grid.g4{grid-template-columns:1fr}
  .ft h4{padding-bottom:8px;margin-bottom:12px}
  .linebox{padding:26px 22px;text-align:center}
  .linebox .cta-row{justify-content:center}
  .hd .mnav + .pill-grad{display:none}
  .flow.f5{grid-template-columns:1fr}
  .money{grid-template-columns:1fr;padding:24px 20px}
  .m-arw{grid-template-columns:auto auto;justify-content:center;align-items:center;gap:10px;min-width:0}
  .m-arw i{width:2px;height:34px;background:repeating-linear-gradient(180deg,var(--line-strong) 0 6px,transparent 6px 11px)}
  .m-arw i::after{right:-4px;top:auto;bottom:-1px;transform:rotate(135deg)}
  .m-arw.rev i{background:var(--navy)}
  .m-arw.rev i::after{left:-4px;top:-1px;bottom:auto;transform:rotate(-45deg)}
  .hero .lead{max-width:none}
  .spcta{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:15;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    box-shadow:0 -6px 20px rgba(15,26,102,.10);
  }
  .spcta .btn{width:100%;padding:12px 14px 12px 24px;font-size:.94rem}
  body{padding-bottom:76px}
  .cat .head{padding-left:14px}
  .cat .head::before{top:6px;height:calc(100% - 18px)}
}
@media (max-width:520px){
  /* 6. 375px — h1 落ち着き、背景装飾は消して読みやすさ優先 */
  .hero-in{padding:40px 0 76px;gap:22px}
  .hero h1{font-size:1.62rem;letter-spacing:.02em;line-height:1.5}
  .hero .lead{font-size:.98rem;line-height:1.9;margin-top:18px}
  .hero .lead br{display:none}
  .hero .sky,.hero::before{display:none}
  .hero{background:linear-gradient(180deg,#FFFFFF 0%,#F4F6FF 100%)}
  .kick{font-size:.7rem;letter-spacing:.22em}
  .glance{padding:22px 22px 18px;border-radius:18px}
  .glance dd{font-size:.88rem}
  .tags{gap:6px}
  .tags span{font-size:.74rem;padding:5px 12px}
  .cta-row{gap:10px}
  .btn{font-size:.94rem;gap:14px;padding:12px 14px 12px 22px}
  .btn i{width:30px;height:30px}
  .assure{gap:4px 14px;font-size:.8rem}
  .sec,.band,.formsec{padding:56px 0}
  .sec.lav,.formsec{padding-top:64px}
  .ttl{margin-bottom:32px}
  .ttl h2{font-size:clamp(1.3rem,5.6vw,1.6rem);line-height:1.55}
  .ttl h2::after{margin-top:14px;width:40px}
  .ttl p{font-size:.92rem;margin-top:12px}
  .card{padding:22px 20px;border-radius:14px}
  .card h3{font-size:1.05rem}
  .step{padding:24px 18px 18px}
  .flow{gap:14px}
  .when{padding:20px;gap:14px}
  .cmp{font-size:.9rem}
  .cmp th,.cmp td{padding:14px 16px}
  .faq details{padding:0 20px;border-radius:12px}
  .faq summary{padding:18px 32px 18px 0;font-size:.96rem}
  .faq .a{font-size:.92rem}
  .op{padding:24px 20px;border-radius:16px}
  .links{grid-template-columns:1fr}
  .shift{grid-template-columns:1fr}
  .shift i{transform:rotate(90deg);justify-self:center}
  .shift b{font-size:1.4rem}
  .q5 li{padding:16px 18px 16px 58px;font-size:.94rem}
  .q5 li::before{left:18px;font-size:1rem}
  .money{padding:22px 18px;border-radius:16px}
  .m-box b{font-size:.96rem}
  .frm{padding:22px 18px;border-radius:16px}
  .frm input[type=text],.frm input[type=email],.frm select,.frm textarea{font-size:16px;padding:12px 14px}
  .ft{padding:52px 0 32px}
  .ft-bottom{font-size:.78rem}
  .brand img{height:36px}
  .mnav summary{padding:9px 12px;font-size:.7rem}
  .lnav{margin-bottom:28px}
  .lnav a{font-size:.8rem;padding:7px 14px}
  .crumbs{font-size:.74rem}
  .topic{padding:24px 20px 24px 24px;border-radius:16px}
  .topic h3{font-size:1.08rem}
  .cat .head{padding-left:12px}
  .cat .head h2{font-size:1.28rem}
  .relay .arw{font-size:1.2rem}
  .band{padding:56px 0}
  .band h2{font-size:1.4rem}
  .linebox{padding:22px 20px;border-radius:16px}
  .linebox h3{font-size:1.06rem}
  .linebox .qr img{width:120px;height:120px}
  .mnav .sheet{padding:68px 16px 24px}
}

/* ===== local fixes on top of the returned stylesheet (2026-09-21) ===== */
/* the self-check list showed both the browser's "1." and our "Q1" */
ol.q5{list-style:none;padding-left:0;margin-left:auto;margin-right:auto}
/* on narrow screens let the comparison table scroll sideways instead of squeezing a column to 2-3 characters */
@media (max-width:720px){
  .cmp{min-width:600px}
  .tblwrap{-webkit-overflow-scrolling:touch}
}

/* ===== 2026-09-21 top page: who-is-this-for list / role split ===== */
.glance.who h2{font-size:1.02rem}
.wholist{display:grid;gap:0;margin:0;padding:0;list-style:none}
.wholist li + li{border-top:1px dashed var(--line)}
.wholist a{display:grid;grid-template-columns:1fr auto;column-gap:14px;align-items:center;padding:14px 4px 14px 2px;text-decoration:none;color:inherit;border-radius:12px;transition:background .15s}
.wholist a::after{content:"";grid-column:2;grid-row:1 / span 2;width:30px;height:30px;border-radius:50%;background:var(--lav) no-repeat center/9px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 1l4 4-4 4' fill='none' stroke='%2316237F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.wholist a:hover{background:var(--lav2)}
.wholist a:hover::after{background-color:var(--navy);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 1l4 4-4 4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.wholist b{grid-column:1;font-family:var(--f-head);font-weight:700;font-size:.97rem;color:var(--navy);line-height:1.6}
.wholist span{grid-column:1;font-size:.84rem;color:var(--ink2);line-height:1.6}
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}
.roles .role-k{border-top:4px solid var(--navy)}
.roles .role-p{border-top:4px solid var(--line-strong,#C7CFEA)}
.cmp.info th{width:9.5em;white-space:nowrap}
.cmp.info td a{color:var(--navy)}
.hero.short .hero-in{padding-bottom:104px}
@media (max-width:960px){.roles{grid-template-columns:1fr}}

/* ===== 2026-09-22: grouped menu, problem->solution rows, quick form ===== */
/* header menu: each group sits in its own outlined box with its label on the border */
.gnav{align-items:center}
.gnav .grp{position:relative;display:block;padding:9px 16px 7px;border:1.5px solid var(--line-strong,#C7CFEA);border-radius:14px;background:#fff}
.gnav .grp small{position:absolute;top:-.72em;left:12px;padding:0 8px;background:#fff;font-family:var(--f-head);font-weight:700;font-size:.68rem;letter-spacing:.1em;line-height:1.4;color:var(--navy);-webkit-text-fill-color:currentColor;background-image:none;width:auto}
.gnav .grp div{display:flex;gap:18px}
.gnav .grp a{padding:2px 0}
.gnav .grp:has(a.current){border-color:var(--navy);background:var(--lav2)}
.gnav .grp:has(a.current) small{background:linear-gradient(180deg,#fff 50%,var(--lav2) 50%)}
.mnav .osheet b{display:block;margin:6px 6px 2px;padding:6px 10px;border-radius:8px;background:var(--lav);color:var(--navy);font-size:.74rem}
.mnav .osheet b + a, .mnav .osheet b + a + a{margin-left:10px;border-left:2px solid var(--line);border-radius:0 10px 10px 0}
/* top page: who list in two labelled groups */
.wholabel{display:flex;align-items:center;gap:10px;margin:14px 0 2px;padding:6px 12px;border-radius:10px;background:var(--lav)}
.wholabel b{font-family:var(--f-head);font-size:.86rem;color:var(--navy);letter-spacing:.06em}
.wholabel span{font-size:.72rem;color:var(--ink2)}
.glance.who h2 + .wholabel{margin-top:4px}
.glance.who .wholist{margin-left:8px;padding-left:10px;border-left:2px solid var(--line)}
.cat .head .subs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.cat .head .subs a{font-family:var(--f-head);font-weight:700;font-size:.8rem;color:var(--navy);text-decoration:none;background:#fff;border:1.5px solid var(--line-strong,#C7CFEA);border-radius:999px;padding:4px 14px}
.cat .head .subs a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
/* problem -> solution rows */
.ps{display:grid;gap:18px;max-width:1080px;margin-inline:auto}
.ps-row{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);background:#fff;border-radius:22px;border:1px solid rgba(22,35,127,.07);box-shadow:var(--shadow-sm,0 4px 14px rgba(15,26,102,.06));overflow:hidden}
.ps-no{display:grid;place-items:start center;padding-top:28px;font-family:var(--f-en);font-weight:900;font-size:1.3rem;letter-spacing:.06em;color:var(--navy);background:var(--lav2)}
.ps-p,.ps-s{padding:26px 28px 26px}
.ps-s{background:linear-gradient(135deg,#F3F6FF 0%,#F6F1FF 100%);border-left:4px solid var(--navy);position:relative}
.ps-s::before{content:"";position:absolute;left:-15px;top:34px;width:22px;height:22px;border-radius:50%;background:var(--navy) no-repeat center/9px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 1l4 4-4 4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.ps-row small{display:inline-block;font-family:var(--f-head);font-weight:700;font-size:.72rem;letter-spacing:.1em;padding:2px 12px;border-radius:999px;margin-bottom:10px}
.ps-p small{background:#F1F2F7;color:var(--ink2)}
.ps-s small{background:var(--navy);color:#fff}
.ps-row h3{font-size:1.08rem;line-height:1.6;margin-bottom:8px}
.ps-p h3{color:var(--ink)}
.ps-row p{font-size:.93rem;line-height:1.9;color:var(--ink2)}
.ps-s p{color:var(--ink)}
/* quick form in the hero */
.glance.quick h2{font-size:1rem}
.qf{display:grid;grid-template-columns:5.2em 1fr;gap:10px 12px;align-items:center;margin-top:6px}
.qf label{font-family:var(--f-head);font-weight:700;font-size:.86rem;color:var(--navy)}
.qf select{width:100%;font:inherit;font-size:.95rem;padding:11px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--lav2);color:var(--ink)}
.qf select:focus{outline:none;border-color:var(--navy);background:#fff}
.qf .btn{grid-column:1 / -1;justify-content:space-between;margin-top:6px}
.qf-note{margin-top:10px;font-size:.78rem;color:var(--ink3)}
/* four-step flow, quiet info cards */
.flow.f4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.band .flow .step{background:rgba(255,255,255,.92)}
.card.flat{box-shadow:none;background:var(--lav2);border:1px solid var(--line)}
@media (max-width:1100px){.flow.f4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:960px){
  .ps-row{grid-template-columns:1fr}
  .ps-no{place-items:center start;padding:12px 24px;font-size:1.05rem}
  .ps-s{border-left:0;border-top:4px solid var(--navy)}
  .ps-s::before{left:24px;top:-13px;transform:rotate(90deg)}
  .ps-p,.ps-s{padding:22px 22px 24px}
  .flow.f4{grid-template-columns:1fr}
}
/* menu group label must never wrap, even when the group holds two short links */
.gnav .grp{min-width:10.2rem}
.gnav .grp small{white-space:nowrap}
.gnav .grp div{justify-content:space-around}
@media (max-width:1180px){.gnav .grp{padding:9px 12px 7px;min-width:9.6rem}.gnav .grp div{gap:12px}}

/* ===== 2026-09-22 evening: stylish hero art, books grid, compact steps ===== */
.hero .sky{display:none!important}
.hero::before{
  display:block!important;
  width:min(62%,760px)!important;height:100%!important;
  background-position:right -3% top 0!important;background-size:contain!important;opacity:1!important;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 760 520' fill='none'><defs><pattern id='d' width='22' height='22' patternUnits='userSpaceOnUse'><circle cx='1.5' cy='1.5' r='1.35' fill='%2316237F'/></pattern><radialGradient id='rg' cx='68%25' cy='34%25' r='60%25'><stop offset='0' stop-color='white'/><stop offset='1' stop-color='black'/></radialGradient><mask id='m'><rect width='760' height='520' fill='url(%23rg)'/></mask><linearGradient id='g1' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='%239B7BF0' stop-opacity='.42'/><stop offset='1' stop-color='%234FC3F7' stop-opacity='.10'/></linearGradient><linearGradient id='g2' x1='0' y1='0' x2='1' y2='1'><stop offset='0' stop-color='%23E250C9' stop-opacity='.26'/><stop offset='1' stop-color='%239B7BF0' stop-opacity='.06'/></linearGradient><linearGradient id='g3' x1='0' y1='1' x2='1' y2='0'><stop offset='0' stop-color='%2316237F' stop-opacity='.18'/><stop offset='1' stop-color='%234FC3F7' stop-opacity='.30'/></linearGradient></defs><rect width='760' height='520' fill='url(%23d)' opacity='.26' mask='url(%23m)'/><g stroke='%2316237F' stroke-opacity='.14' stroke-width='1'><circle cx='560' cy='170' r='196'/><circle cx='560' cy='170' r='146' stroke-dasharray='2 9'/><path d='M40 520L760 140'/><path d='M150 520L760 200' stroke-dasharray='3 9'/></g><g transform='rotate(-14 470 270)'><rect x='356' y='110' width='300' height='190' rx='34' fill='url(%23g1)' stroke='white' stroke-opacity='.75'/><rect x='438' y='222' width='262' height='176' rx='34' fill='url(%23g2)' stroke='white' stroke-opacity='.75'/><rect x='290' y='284' width='250' height='160' rx='34' fill='url(%23g3)' stroke='white' stroke-opacity='.75'/></g></svg>")!important;
}
@media (max-width:960px){.hero::before{width:100%!important;opacity:.6!important;background-position:right -10% top -4%!important}}
@media (max-width:640px){.hero::before{display:none!important}}

/* books grid */
.books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.book{background:#fff;border-radius:22px;border:1px solid rgba(22,35,127,.07);box-shadow:var(--shadow-sm,0 4px 14px rgba(15,26,102,.06));padding:22px;display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:start;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.book:hover{transform:translateY(-3px);box-shadow:var(--shadow-md,0 14px 32px rgba(15,26,102,.10))}
.book img{width:96px;height:auto;border-radius:6px;box-shadow:0 6px 16px rgba(15,26,102,.18);display:block}
.book b{display:block;font-family:var(--f-head);font-size:1rem;color:var(--navy);line-height:1.55}
.book span{display:block;margin-top:6px;font-size:.84rem;color:var(--ink2);line-height:1.7}
.book::after{content:"Amazon で見る →";display:block;grid-column:2;margin-top:10px;font-family:var(--f-en);font-weight:700;font-size:.8rem;color:var(--navy)}
/* compact steps */
.flow.f4 .step p{font-size:.9rem;line-height:1.8}
.when span{font-size:.88rem}
.hero.short .hero-in{padding-bottom:96px}
@media (max-width:1100px){.books{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.books{grid-template-columns:1fr}.book{grid-template-columns:80px 1fr;padding:18px}.book img{width:80px}}
/* books: keep title, subtitle and link in the text column */
.book img{grid-row:1 / span 3}
.book b,.book span,.book::after{grid-column:2}
.book::after{margin-top:6px}

/* ===== 2026-09-22 night: coverage map on the top page ===== */
.coverage-figure{margin:0 auto;max-width:980px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:var(--shadow-sm,0 4px 14px rgba(15,26,102,.06))}
.coverage-figure img{display:block;width:100%;height:auto;border-radius:12px}
.coverage-note{max-width:60em;margin:16px auto 0;text-align:center}
#coverage .ttl p{max-width:52em}
@media (max-width:640px){.coverage-figure{padding:8px;border-radius:16px}}

/* ===== coverage overview (HTML version, replaces the PNG) ===== */
.cov{max-width:1040px;margin-inline:auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px 18px 14px;box-shadow:var(--shadow-sm,0 4px 14px rgba(15,26,102,.06))}
.cov-head,.cov-row{display:grid;grid-template-columns:150px repeat(3,minmax(0,1fr));gap:10px}
.cov-head{margin-bottom:10px}
.cov-head div{font-family:var(--f-head);font-weight:700;font-size:.92rem;color:var(--navy);text-align:center;background:var(--lav);border-radius:12px;padding:10px 6px;line-height:1.35}
.cov-head div:first-child{background:none}
.cov-head small{display:block;font-size:.72rem;font-weight:500;color:var(--ink2)}
.cov-row{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.cov-row:first-of-type{border-top:0;padding-top:0}
.cov-th{position:relative;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:12px 14px;border-radius:12px;background:var(--lav2)}
.cov-th b{font-family:var(--f-head);font-size:1rem;color:var(--navy)}
.cov-th small{font-size:.74rem;color:var(--ink2)}
.cov-th em{position:absolute;top:8px;right:8px;font-style:normal;font-family:var(--f-head);font-size:.66rem;font-weight:700;letter-spacing:.08em;color:#fff;background:var(--navy);border-radius:999px;padding:2px 8px}
.cov-row.lead .cov-th{background:linear-gradient(135deg,#EEF1FF,#F3EDFF);box-shadow:inset 0 0 0 1.5px var(--navy)}
.cov-cell{display:grid;gap:8px;align-content:start}
.cov-cell.none{align-content:center;justify-items:center;color:var(--ink3);font-size:.9rem;border-radius:12px;background:repeating-linear-gradient(135deg,#F7F8FE 0 6px,#fff 6px 12px)}
.cov .item{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:12px;padding:10px 12px 9px;background:#fff;transition:border-color .15s,box-shadow .15s}
.cov .item:hover{border-color:var(--navy);box-shadow:0 6px 16px rgba(22,35,127,.10)}
.cov .item .col{display:none}
.cov .item b{display:flex;align-items:center;gap:8px;font-family:var(--f-head);font-size:.92rem;color:var(--navy);line-height:1.4}
.cov .item i{flex:0 0 auto;font-style:normal;font-family:var(--f-en);font-weight:900;font-size:.72rem;width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center}
.cov .item span{display:block;margin:3px 0 0 30px;font-size:.78rem;color:var(--ink2);line-height:1.5}
.cov-foot{margin:14px 4px 0;font-size:.8rem;color:var(--ink2);line-height:1.7;padding:10px 12px;border-radius:10px;background:#FFF7F2;border:1px dashed #F2C9B5}
@media (max-width:960px){
  .cov-head{display:none}
  .cov-row{grid-template-columns:1fr;gap:8px}
  .cov-th{flex-direction:row;align-items:baseline;gap:10px;padding:10px 12px}
  .cov-th em{position:static;margin-left:auto}
  .cov-cell.none{display:none}
  .cov .item .col{display:inline-block;font-size:.68rem;color:var(--ink2);background:var(--lav);border-radius:999px;padding:1px 8px;margin-bottom:6px}
}
/* hero aside: service-menu title */
.glance.who h2{display:grid;gap:4px;font-size:1.12rem;padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.glance.who h2 .en{font-family:var(--f-en);font-weight:900;font-size:.66rem;letter-spacing:.24em;color:var(--gold-dark,#8C6D1F)}
/* 2026-10-03: the descriptions wrap at every width (with "…" they were cut at about 961-1060px) */
.glance.who .wholist span{white-space:normal;overflow:visible;text-overflow:clip}

/* 2026-09-23: footer ABOUT — trade name + gold mark (replaces the 運営者 sections) */
.ft-brand{display:flex;align-items:center;gap:14px;margin:4px 0 16px;text-decoration:none!important;width:max-content}
.ft-brand img{width:50px;height:auto;flex:none}
.ft-brand b{font-family:var(--f-en);font-weight:900;font-size:1.36rem;letter-spacing:.05em;color:#fff;line-height:1}
.ft-brand:hover b{text-decoration:underline;text-underline-offset:4px}
.ft .ft-grid > div:first-child p{max-width:34em}

/* 2026-09-23: thanks-housing — the two PDF links */
.thanks .dlx{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:720px;margin:26px auto 28px;text-align:left}
.thanks .dlx a{display:block;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;color:var(--navy);transition:border-color .15s,box-shadow .15s}
.thanks .dlx a:hover{border-color:var(--gold);box-shadow:0 8px 20px rgba(22,35,127,.08)}
.thanks .dlx b{display:block;font-family:var(--f-head);font-weight:700;font-size:.98rem;line-height:1.5}
.thanks .dlx small{display:block;margin-top:6px;font-size:.82rem;color:var(--ink2);line-height:1.6}
@media (max-width:640px){.thanks .dlx{grid-template-columns:1fr}}

/* 2026-09-23: sentence-per-line breaks on wide screens; phones flow naturally */
@media (max-width:640px){br.pc{display:none}}

/* 2026-09-23: overview figure on the service pages (who / K agency / with + merits) */
.sec.top{background:#fff;border-radius:44px 44px 0 0;margin-top:-44px;position:relative;padding-top:112px}
.stk{max-width:1080px;margin-inline:auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px 22px 18px;box-shadow:var(--shadow-sm,0 4px 14px rgba(15,26,102,.06))}
.stk-map{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1.15fr) 56px minmax(0,1fr);align-items:stretch}
.stk-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.stk-h{font-family:var(--f-head);font-weight:700;font-size:.84rem;letter-spacing:.04em;color:var(--navy);padding:9px 12px;border-radius:12px;background:var(--lav2);text-align:center;line-height:1.4}
.stk-h .en{display:block;font-family:var(--f-en);font-weight:900;font-size:.6rem;letter-spacing:.22em;color:var(--gold-dark)}
.stk-col.k .stk-h{background:var(--navy);color:#fff}
.stk-col.k .stk-h .en{color:var(--gold)}
.stk-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;flex:1;grid-auto-rows:1fr}
.stk-list li{border:1px solid var(--line);border-radius:12px;padding:9px 12px;background:#fff;display:flex;flex-direction:column;justify-content:center}
.stk-list b{display:block;font-family:var(--f-head);font-weight:700;font-size:.9rem;color:var(--navy);line-height:1.5}
.stk-list span{display:block;font-size:.78rem;color:var(--ink2);line-height:1.6;margin-top:2px}
.stk-col.k .stk-list{gap:0;grid-auto-rows:auto;align-content:start;padding:6px 12px;border:1.5px solid var(--gold);border-radius:16px;background:#FFFDF5}
.stk-col.k .stk-list li{border:0;border-radius:0;background:transparent;padding:9px 0;border-bottom:1px dashed #EFE4BE}
.stk-col.k .stk-list li:last-child{border-bottom:0}
.stk-col.k .stk-list b,.stk-col.k .stk-list span{padding-left:16px}
.stk-col.k .stk-list b{position:relative}
.stk-col.k .stk-list b::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.stk-arw{display:grid;place-items:center;align-content:center;gap:4px;color:var(--gold-dark);font-family:var(--f-head);font-weight:700;font-size:.68rem;letter-spacing:.06em;text-align:center}
.stk-arw i{display:block;width:30px;height:30px;border-radius:50%;background:var(--navy) no-repeat center/9px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 1l4 4-4 4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.stk-merit{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);display:grid;grid-template-columns:auto 1fr;gap:12px 16px;align-items:center}
.stk-merit .lbl{font-family:var(--f-head);font-weight:700;font-size:.84rem;color:var(--navy);padding:9px 14px;border-radius:12px;background:var(--lav2);text-align:center;line-height:1.4;min-width:8.5em}
.stk-merit .lbl .en{display:block;font-family:var(--f-en);font-weight:900;font-size:.6rem;letter-spacing:.22em;color:var(--gold-dark)}
.stk-merit ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stk-merit li{position:relative;background:var(--lav2);border-radius:12px;padding:10px 12px 10px 34px;font-size:.82rem;color:var(--ink);line-height:1.6;font-weight:500}
.stk-merit li::before{content:"";position:absolute;left:12px;top:13px;width:14px;height:14px;border-radius:50%;background:var(--gold) no-repeat center/8px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 5.2l2.2 2.2L8 3' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
@media (max-width:960px){
  .sec.top{border-radius:28px 28px 0 0;margin-top:-28px;padding-top:82px}
  .stk-map{grid-template-columns:1fr}
  .stk-arw{display:flex;justify-content:center;align-items:center;gap:8px;padding:8px 0}
  .stk-arw i{transform:rotate(90deg)}
  .stk-merit{grid-template-columns:1fr}
  .stk-merit ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){.sec.top{padding-top:64px}.stk{padding:14px 12px 12px}.stk-merit ul{grid-template-columns:1fr}}

/* 2026-09-23 (v2): one overview figure per service ------------------------------ */
.fig{max-width:1080px;margin-inline:auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow-sm,0 4px 14px rgba(15,26,102,.06))}
.fig-tag{display:inline-block;font-family:var(--f-head);font-weight:700;font-size:.64rem;letter-spacing:.06em;padding:1px 8px;border-radius:999px;margin-right:6px;vertical-align:1px;white-space:nowrap;font-style:normal}
.fig-tag.k{background:var(--gold);color:var(--navy-deep)}
.fig-tag.y{background:var(--navy);color:#fff}
.fig-tag.p{background:var(--lav);color:var(--navy)}
.fig-by-h{margin-top:20px;padding-top:16px;border-top:1px dashed var(--line);font-family:var(--f-head);font-weight:700;font-size:.84rem;color:var(--navy);text-align:center}
.fig-by-h .en{display:block;font-family:var(--f-en);font-weight:900;font-size:.6rem;letter-spacing:.22em;color:var(--gold-dark)}
.fig-by{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fig-by div{background:var(--lav2);border-radius:14px;padding:12px 14px}
.fig-by b{display:block;font-family:var(--f-head);font-weight:700;font-size:.88rem;color:var(--navy);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--line);line-height:1.4}
.fig-by ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.fig-by li{position:relative;padding-left:20px;font-size:.8rem;line-height:1.6;color:var(--ink)}
.fig-by li::before{content:"";position:absolute;left:0;top:6px;width:13px;height:13px;border-radius:50%;background:var(--gold) no-repeat center/7px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 5.2l2.2 2.2L8 3' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.fig-cta{margin-top:18px;display:flex;justify-content:center;align-items:center;gap:8px 18px;flex-wrap:wrap;font-family:var(--f-head);font-weight:700;font-size:.9rem;color:var(--navy)}
.fig-cta .btn{padding:11px 14px 11px 22px;font-size:.9rem}
/* A. timeline (外国人材) */
.tl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;position:relative}
.tl::before{content:"";position:absolute;left:10%;right:10%;top:14px;height:2px;background:linear-gradient(90deg,var(--line-strong,#C7CFEA),var(--gold))}
.tl > div{position:relative;padding-top:30px;min-width:0}
.tl > div::before{content:"";position:absolute;left:50%;top:8px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--navy);transform:translateX(-50%)}
.tl > div.now::before{background:var(--gold);border-color:var(--gold)}
.tl small{display:block;text-align:center;font-family:var(--f-head);font-weight:700;font-size:.72rem;color:var(--gold-dark);letter-spacing:.04em}
.tl b{display:block;text-align:center;font-family:var(--f-head);font-weight:700;font-size:.92rem;color:var(--navy);margin:4px 0 8px;line-height:1.45;min-height:2.9em}
.tl p{margin:0;font-size:.76rem;line-height:1.6;color:var(--ink);background:var(--lav2);border-radius:12px;padding:8px 10px}
.tl p + p{margin-top:6px}
/* B. one sheet (借上げ社宅) */
.osheet-wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;align-items:start}
.osheet{border:1.5px solid var(--gold);border-radius:16px;background:#FFFDF5;padding:14px 16px 10px}
.osheet h4{margin:0 0 8px;font-family:var(--f-head);font-weight:900;font-size:1rem;color:var(--navy);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.osheet h4 .en{font-family:var(--f-en);font-weight:900;font-size:.6rem;letter-spacing:.22em;color:var(--gold-dark)}
.osheet h4 span{font-family:var(--f-body,inherit);font-weight:400;font-size:.76rem;color:var(--ink2)}
.osheet table{width:100%;border-collapse:collapse;font-size:.8rem}
.osheet th,.osheet td{padding:7px 4px;border-bottom:1px dashed #EFE4BE;text-align:left;vertical-align:middle;line-height:1.5}
.osheet th{width:8.5em;font-family:var(--f-head);font-weight:700;color:var(--navy);white-space:nowrap}
.osheet td.who{width:6em;text-align:right;white-space:nowrap}
.osheet td.who .fig-tag{margin:0}
.osheet tr:last-child th,.osheet tr:last-child td{border-bottom:0}
.roles3{display:grid;gap:10px}
.roles3 > div{border:1px solid var(--line);border-radius:14px;padding:10px 14px}
.roles3 > div.k{border-color:var(--gold);background:#FFFDF5}
.roles3 b{display:block;font-family:var(--f-head);font-weight:700;font-size:.9rem;color:var(--navy)}
.roles3 span{display:block;font-size:.78rem;color:var(--ink2);line-height:1.6;margin-top:2px}
.roles3 p{margin:0;font-size:.78rem;color:var(--ink2);line-height:1.6;padding:2px 4px 0}
/* C. chat (賃貸) */
.chat-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
.chat{background:#EEF1F8;border-radius:16px;padding:14px;display:grid;gap:10px}
.chat .cap{font-family:var(--f-head);font-weight:700;font-size:.7rem;color:var(--ink2);letter-spacing:.08em;text-align:center}
.chat .b{max-width:88%;padding:10px 14px;border-radius:16px;font-size:.84rem;line-height:1.65}
.chat .u{justify-self:end;background:var(--navy);color:#fff;border-bottom-right-radius:4px}
.chat .k{justify-self:start;background:#fff;color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:4px}
.chat .k small{display:block;font-family:var(--f-head);font-weight:700;font-size:.64rem;color:var(--gold-dark);margin-bottom:2px;letter-spacing:.08em}
.after{display:grid;gap:10px}
.after > div{border:1px solid var(--line);border-radius:14px;padding:10px 14px 10px 46px;position:relative}
.after i{position:absolute;left:12px;top:11px;width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--f-en);font-weight:900;font-size:.72rem;display:grid;place-items:center;font-style:normal}
.after b{display:block;font-family:var(--f-head);font-weight:700;font-size:.9rem;color:var(--navy)}
.after span{display:block;font-size:.78rem;color:var(--ink2);line-height:1.6;margin-top:2px}
/* D. decision (売買) */
.dec{display:grid;grid-template-columns:minmax(0,1fr) 68px minmax(0,1.2fr) 68px minmax(0,1fr);align-items:stretch}
.dec-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.dec .chips,.dec .outs{display:grid;gap:8px;list-style:none;margin:0;padding:0;flex:1;grid-auto-rows:1fr}
.dec .chips li{border:1px solid var(--line);border-radius:12px;padding:9px 12px;font-family:var(--f-head);font-weight:700;font-size:.88rem;color:var(--navy);display:flex;align-items:center;line-height:1.5}
.dec .chips li::before{content:"?";flex:none;width:22px;height:22px;border-radius:50%;background:var(--lav);color:var(--navy);display:grid;place-items:center;font-family:var(--f-en);font-weight:900;font-size:.8rem;margin-right:10px}
.dec .four{border:1.5px solid var(--gold);border-radius:16px;background:#FFFDF5;padding:6px 12px;display:grid;list-style:none;margin:0;flex:1;align-content:space-around}
.dec .four li{padding:9px 0;border-bottom:1px dashed #EFE4BE}
.dec .four li:last-child{border-bottom:0}
.dec .four b{display:block;font-family:var(--f-head);font-weight:700;font-size:.9rem;color:var(--navy);padding-left:16px;position:relative}
.dec .four b::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.dec .four span{display:block;font-size:.78rem;color:var(--ink2);line-height:1.6;padding-left:16px;margin-top:2px}
.dec .outs li{border:1px solid var(--line);border-radius:12px;padding:9px 12px;display:flex;flex-direction:column;justify-content:center}
.dec .outs li.stay{border-style:dashed;background:var(--lav2)}
.dec .outs b{display:block;font-family:var(--f-head);font-weight:700;font-size:.9rem;color:var(--navy)}
.dec .outs span{display:block;font-size:.78rem;color:var(--ink2);line-height:1.6;margin-top:2px}
@media (max-width:960px){
  .fig-by{grid-template-columns:1fr}
  .tl{grid-template-columns:1fr;gap:14px}
  .tl::before{left:11px;right:auto;top:0;bottom:0;width:2px;height:auto;background:linear-gradient(180deg,var(--line-strong,#C7CFEA),var(--gold))}
  .tl > div{padding:0 0 0 34px}
  .tl > div::before{left:4px;top:4px;transform:none}
  .tl small,.tl b{text-align:left}
  .tl b{min-height:0}
  .osheet-wrap,.chat-wrap,.dec{grid-template-columns:1fr}
  .osheet th{width:7em}
}
@media (max-width:520px){.fig{padding:14px 12px}.osheet{padding:12px 10px 8px}.osheet th{width:6em;font-size:.76rem}.osheet td{font-size:.76rem}.osheet td.who{width:4.5em}}

/* 2026-09-26 LINE box: consent note (privacy policy) */
.linebox .lb-note{margin-top:16px;font-size:.8rem;color:var(--ink2);line-height:1.7}
/* 2026-09-26 form: consent note above the submit button (body text color, boxed, list of recipients/purposes) */
.frm .fine.consent{color:var(--ink);font-size:.86rem;line-height:1.8;background:var(--lav2);border:1px solid var(--line-strong);border-radius:12px;padding:16px 20px}
.frm .fine.consent p + p,.frm .fine.consent ul + p{margin-top:6px}
.frm .fine.consent .c-h{color:var(--navy)}
.frm .fine.consent .c-h b{font-family:var(--f-head);font-weight:700}
.frm .fine.consent ul{margin:6px 0 0;padding-left:1.3em;list-style:disc}
.frm .fine.consent li{margin:2px 0}
.frm .fine.consent li::marker{color:var(--gold-deep,#B8941F)}
.frm .fine.consent a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
@media (max-width:640px){.frm .fine.consent{padding:14px 14px;font-size:.84rem}}
/* 2026-09-26 (review) form: hint under a field, link in the fine print, consent heading sub-text wraps as one unit */
.frm .field-note{margin-top:6px}
.frm .fine a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
.frm .fine.consent .c-h span{display:inline-block}
/* 2026-10-03 header: 法人の入口が3つになり上のメニューが長くなったため、ロゴが縮んで消える・メニューが右にはみ出すのを防ぐ */
.hd .brand{flex-shrink:0}
@media (min-width:961px){.gnav{gap:14px}.gnav .grp{padding:9px 10px 7px;min-width:9rem}.gnav .grp div{gap:12px}.gnav a{font-size:.8rem;letter-spacing:.02em}.gnav a.pill-grad{padding:10px 14px;font-size:.78rem}}
@media (max-width:1180px){.gnav{display:none}.mnav{display:block;margin-left:auto}}
/* 2026-10-03 phone menu: the sticky header (z-index 20) is its own stacking layer, so the open sheet (z-index 30 inside it)
   sat under the scrim (body::before, z-index 25) — the sheet looked dimmed and a tap on a link only closed the menu.
   While the menu is open, lift the header above the scrim. */
body:has(.mnav[open]) .hd{z-index:26}
/* 2026-10-03 comparison tables on phones: each row becomes one block (point -> column label + text), instead of a 600px table scrolled sideways */
@media (max-width:640px){
  .cmp:not(.info),.cmp:not(.info) tbody{display:block;width:100%;min-width:0}
  .cmp:not(.info) thead{display:none}
  .cmp:not(.info) tr{display:block;border-bottom:1px solid var(--line)}
  .cmp:not(.info) tr:last-child{border-bottom:0}
  .cmp:not(.info) tbody th,.cmp:not(.info) td{display:block;white-space:normal;border-bottom:0}
  .cmp:not(.info) tbody th{padding:12px 16px 10px}
  .cmp:not(.info) td{padding:8px 16px 12px}
  .cmp td[data-label]::before{content:attr(data-label);display:block;font-size:.76rem;font-weight:700;color:var(--navy);margin-bottom:2px}
  .cmp.info{min-width:0}
  .cmp.info th{width:5.6em}
  .cmp.info th,.cmp.info td{padding:12px 12px}
}
/* 2026-10-03 /rental #contact: the LINE box sits in a half-width column, so put the QR under the text and keep each button on one line */
#contact .twocol .linebox{grid-template-columns:1fr;gap:18px}
/* 2026-10-03 /shataku #why: small in-section index (same look as the top page's .subs) */
.subs.toc{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:860px;margin:0 auto 28px}
.subs.toc a{font-family:var(--f-head);font-weight:700;font-size:.8rem;color:var(--navy);text-decoration:none;background:#fff;border:1.5px solid #D9D2B8;border-radius:999px;padding:4px 14px}
.subs.toc a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---- 法人向けガイド(2026-10-03 追加。同日夜、2つの点検の指摘で直し) ---- */
/* hero: smaller h1 on wide screens, readable meta line on the navy field, group name next to GUIDE */
.hero.ghero h1{font-size:clamp(1.55rem,2.5vw,2.15rem);line-height:1.5}
.hero.ghero .hero-in{padding-bottom:72px}
.nw{white-space:nowrap}
.kick .kgrp{font-family:var(--f-head);font-weight:700;letter-spacing:.06em;font-size:.8rem;margin-left:12px;padding-left:12px;border-left:1px solid rgba(212,175,55,.55)}
.gmeta{margin-top:12px;font-size:.82rem;line-height:1.8;color:var(--ink2)}
.hero .gmeta{color:#C9CFF3}
.gmeta span{display:inline-block}
.gmeta span:not(:last-child)::after{content:"／";margin:0 .6em}
.hero .gmeta a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.gpoints .chk{margin:6px 0 16px}
.gpoints .chk li{font-size:.9rem;line-height:1.75}
.gpoints .btn{width:100%;justify-content:center}
.gcap,.guide .gcap{margin:10px 0 0;font-size:.8rem;line-height:1.7;color:var(--ink2)}
.guide-sec{padding-top:56px}
.guide-wrap{max-width:820px}
/* table of contents: a details box (closed on phones, opened by k2.js on wider screens) */
.gtoc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 22px;margin-bottom:18px}
.gtoc summary{list-style:none;cursor:pointer;position:relative;padding:15px 30px 15px 0;font-family:var(--f-head);font-weight:700;color:var(--navy);font-size:.95rem}
.gtoc summary::-webkit-details-marker{display:none}
.gtoc summary::after{content:"";position:absolute;right:6px;top:50%;width:8px;height:8px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.gtoc[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.gtoc ol{margin:0 0 16px;padding:10px 0 0 1.4em;border-top:1px dashed var(--line);line-height:1.95;font-size:.92rem}
.gtoc a{color:var(--ink);text-decoration:none}
.gtoc a:hover{text-decoration:underline}
/* who to ask (right after the table of contents) */
.gwho{background:var(--lav2);border:1px solid var(--line);border-radius:14px;padding:14px 22px 10px;margin-bottom:36px}
.gwho-h{font-family:var(--f-head);font-weight:700;color:var(--navy);font-size:.95rem;margin:0 0 4px}
.gwho dl{margin:0}
.gwho dl div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:2px 18px;padding:8px 0;border-top:1px dashed var(--line)}
.gwho dt{font-weight:700;font-size:.88rem;line-height:1.7;color:var(--ink)}
.gwho dd{margin:0;font-size:.88rem;line-height:1.7;color:var(--ink2)}
/* article body */
.guide{font-size:1rem;line-height:2;color:var(--ink)}
.guide h2{font-family:var(--f-head);font-weight:900;color:var(--navy);font-size:1.32rem;line-height:1.55;margin:52px 0 14px;padding:4px 0 4px 14px;border-left:5px solid var(--navy);scroll-margin-top:90px}
.guide h3{font-family:var(--f-head);font-weight:700;color:var(--navy);font-size:1.08rem;line-height:1.6;margin:30px 0 8px}
.guide p{margin:12px 0}
.guide ul,.guide ol{margin:12px 0;padding-left:1.5em}
.guide ul:not(.chk){list-style:disc}
.guide li{margin:4px 0}
.guide li::marker{color:var(--navy)}
.guide a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.guide .btn{text-decoration:none}
.guide strong{background:linear-gradient(transparent 62%,#FFE9A8 62%);font-weight:700}
.guide .note{background:#FFF9EA;border:1px solid #F0DCA6;border-radius:12px;padding:14px 18px;margin:18px 0;font-size:.93rem;line-height:1.9;color:var(--ink)}
.gtbl{overflow-x:auto;margin:16px 0;-webkit-overflow-scrolling:touch}
.guide table{width:100%;min-width:520px;border-collapse:collapse;font-size:.9rem;line-height:1.75;background:#fff}
.guide th,.guide td{border:1px solid var(--line);padding:9px 11px;vertical-align:top;text-align:left}
.guide thead th{background:var(--lav,#F1F3FA);color:var(--navy);font-family:var(--f-head)}
.guide .faq{margin-top:12px}
/* consult box at the end of "K agency にご相談いただけること" */
.gcta{margin:26px 0 6px;padding:22px 24px 20px;background:#F6F7FB;border:2px solid var(--navy);border-radius:16px}
.guide .gcta h3{margin:0 0 10px}
.guide .gcta ul.chk{list-style:none;padding-left:0;margin:0 0 16px}
.gcta .btn{width:100%;justify-content:center}
/* related pages (now before the sources) */
.grel{margin-top:44px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.guide .grel h2{font-family:var(--f-head);font-size:1.02rem;color:var(--navy);margin:0 0 8px;padding:0;border:0}
.grel ul{margin:0 0 16px;padding-left:1.3em;line-height:2;font-size:.94rem}
.grel .btn{width:100%;justify-content:center}
.gsrc{margin-top:44px}
.gsrc ol{padding-left:1.4em;font-size:.86rem;line-height:1.85}
.gsrc li small{display:inline-block;margin-left:6px;color:var(--ink2)}
.gsrc .fine{margin-top:16px}
.guide-sec .fine{font-size:.8rem;line-height:1.8;color:var(--ink2)}
/* guide index */
.gidx-grp{margin-bottom:56px}
.gidx-h{font-family:var(--f-head);font-weight:900;color:var(--navy);font-size:1.3rem;margin:0 0 18px;padding-left:12px;border-left:5px solid var(--navy)}
.gidx-cta{margin-top:20px;text-align:center}
.gidx-note{max-width:820px;margin:0 auto}
@media (max-width:600px){
  .guide{font-size:.97rem;line-height:1.95}
  .guide h2{font-size:1.16rem;margin-top:40px}
  /* bring the first heading of the article up: less empty space under the hero, one line per "who to ask" row */
  .hero.ghero .hero-in{padding-bottom:44px}
  .guide-sec{padding-top:36px}
  .gtoc{padding:0 16px}
  .gwho{padding:12px 16px 8px;margin-bottom:28px}
  .gwho dl div{display:block;padding:6px 0}
  .gwho dt,.gwho dd{display:inline}
  .gwho dt::after{content:"：";font-weight:700}
  .grel,.gcta{padding:18px}
  /* tables: fit the screen; long 3+ column tables become one card per row (column label above each cell) */
  .guide table{min-width:0}
  .guide .gfit th:first-child,.guide .gfit td:first-child{width:36%}
  .guide .gstack thead{display:none}
  .guide table.gstack,.guide .gstack tbody,.guide .gstack tr,.guide .gstack td,.guide .gstack tbody th{display:block;width:auto}
  .guide table.gstack{background:none}
  .guide .gstack tr{background:#fff;border:1px solid var(--line);border-radius:12px;margin:0 0 10px;overflow:hidden}
  .guide .gstack td,.guide .gstack tbody th{border:0;border-top:1px solid var(--line);padding:8px 14px}
  .guide .gstack tr>:first-child{border-top:0;background:var(--lav);font-family:var(--f-head);font-weight:700;color:var(--navy)}
  .guide .gstack tr>:not(:first-child)::before{content:attr(data-label);display:block;font-size:.74rem;font-weight:700;color:var(--ink2)}
}
/* ==========================================================================
   K agency — "navy × gold" variant (2026-09-22, proposal)
   Loaded AFTER assets/k2.css. Same structure and copy; only tone changes:
   dark navy hero, gold as the single accent (matches the gold logo mark),
   a dark band for the flow, gold headings in the footer.
   ========================================================================== */
:root{
  --gold:#D4AF37; --gold-deep:#B8941F; --gold-dark:#8C6D1F; --gold-soft:#F3E7BF;
  --grad:linear-gradient(90deg,#E2C25C 0%,#D4AF37 50%,#B8941F 100%);
  --lav:#EEF1F8; --lav2:#F6F7FB; --line:#DDE2EE;
}
body{background:#fff}

/* header */
.hd{background:rgba(255,255,255,.96);border-bottom:1px solid rgba(22,35,127,.08)}
.gnav .grp{border-color:#D9D2B8}
.gnav .grp small{color:var(--gold-dark)}
.gnav a.current::after{background:var(--gold)}
.gnav .grp:has(a.current){border-color:var(--gold);background:#FFFDF5}
.gnav .grp:has(a.current) small{background:linear-gradient(180deg,#fff 50%,#FFFDF5 50%)}
.pill-grad{background:var(--grad);color:var(--navy-deep)!important;box-shadow:0 8px 20px rgba(184,148,31,.28)}

/* hero: dark navy field */
.hero{background:radial-gradient(60% 80% at 85% 10%,rgba(212,175,55,.18),transparent 60%),radial-gradient(50% 60% at 15% 90%,rgba(43,59,208,.35),transparent 60%),linear-gradient(135deg,#0B1450 0%,#16237F 60%,#1E2E9C 100%)}
.hero::before{opacity:.28!important;mix-blend-mode:screen}
.hero .crumbs,.hero .crumbs a,.hero .crumbs span::before{color:#AEB6EE}
.kick{color:var(--gold);-webkit-text-fill-color:currentColor}
.hero h1{color:#fff}
.hero .lead{color:#E6EAFF}
.tags span{background:transparent;border:1px solid rgba(255,255,255,.55);color:#fff}
.assure{color:#D6DBFF}
.assure span::before{filter:brightness(4)}
.btn{background:var(--gold);color:var(--navy-deep)!important;box-shadow:0 10px 24px rgba(184,148,31,.32)}
.btn i{background:var(--navy-deep)}
.btn i::before{border-color:#fff}
.btn.ghost{background:transparent;color:#fff!important;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.btn.ghost i{background:#fff}
.btn.ghost i::before{border-color:var(--navy-deep)}
.glance{background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.glance h2{color:var(--navy)}
.wholabel{background:#FFFDF5;border:1px solid #EFE4BE}
.wholabel b{color:var(--gold-dark)}
.qf .btn{background:var(--navy);color:#fff!important}
.qf .btn i{background:#fff}
.qf .btn i::before{border-color:var(--navy)}

/* light sections: buttons back to navy, gold only as the fine accent */
.sec .btn,.formsec .btn,.linebox .btn,.thanks .btn{background:var(--navy);color:#fff!important;box-shadow:0 10px 24px rgba(22,35,127,.22)}
.sec .btn i,.formsec .btn i,.linebox .btn i,.thanks .btn i{background:#fff}
.sec .btn i::before,.formsec .btn i::before,.linebox .btn i::before,.thanks .btn i::before{border-color:var(--navy)}
.sec .btn.ghost,.formsec .btn.ghost,.linebox .btn.ghost,.thanks .btn.ghost{background:#fff;color:var(--navy)!important;box-shadow:inset 0 0 0 1.5px var(--navy)}
.sec .btn.ghost i,.formsec .btn.ghost i,.thanks .btn.ghost i{background:var(--navy)}
.sec .btn.ghost i::before,.formsec .btn.ghost i::before,.thanks .btn.ghost i::before{border-color:#fff}
.linebox .btn.line{background:#06C755;color:#fff!important}
.ttl .en{color:var(--gold-dark);-webkit-text-fill-color:currentColor}
.ttl h2::after{background:var(--gold)}
.card{border-color:#E6E3D6}
.card .no,.card .for,.cat .head .en{color:var(--gold-dark);-webkit-text-fill-color:currentColor}
.card .for{background:#FFFDF5;border:1px solid #EFE4BE}
.ico{background:#FFFBEA}
.ico svg{stroke:var(--gold-dark)}
.chk li::before{filter:sepia(1) saturate(4) hue-rotate(5deg) brightness(.75)}
.cat .head::before{background:var(--gold)}
.cat .head .subs a{border-color:#D9D2B8;color:var(--navy)}
.cat .head .subs a:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.faq summary::before{color:var(--gold-dark);-webkit-text-fill-color:currentColor}
.ps-s{border-left-color:var(--gold)}
.ps-s::before{background-color:var(--gold)}
.ps-s small{background:var(--navy)}
.ps-no{color:var(--gold-dark)}
.cov-row.lead .cov-th{background:#FFFDF5;box-shadow:inset 0 0 0 1.5px var(--gold)}
.cov-th em{background:var(--gold);color:var(--navy-deep)}
.cov .item i{background:var(--navy)}
.step::before{color:var(--gold-dark);-webkit-text-fill-color:currentColor}
.step{border-top:3px solid var(--gold)}
.topic::before{background:var(--gold)}
.topic .lbl{color:var(--gold-dark)}
.shift div.to{background:#FFFBEA}
.q5 li::before{color:var(--gold-dark);-webkit-text-fill-color:currentColor}
.cmp thead th{background:var(--navy-deep)}
.cmp thead th.hl{background:linear-gradient(90deg,#B8941F,#D4AF37);color:var(--navy-deep)}
.cmp td.hl{background:#FFFDF5}

/* dark band for the flow on the top page */
.band{background:linear-gradient(135deg,#0B1450 0%,#16237F 100%)}
.band h2{color:#fff!important}
.band .ttl p{color:#D6DBFF!important}
.band .step{background:#fff}

/* form + footer */
.formsec{background:linear-gradient(180deg,#F6F7FB 0%,#EEF1F8 100%)}
.frm input:focus,.frm select:focus,.frm textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(212,175,55,.18)}
/* footer: light, so the original navy x gold mark stays visible (2026-09-23) */
.ft{background:#fff;color:var(--ink2);border-top:1px solid var(--line)}
.ft a{color:var(--navy)}
.ft h4{color:var(--gold-dark);border-bottom-color:var(--line)}
.ft-bottom{border-top-color:var(--line);color:var(--ink3)}
.ft-brand b{color:var(--navy)}
.spcta .btn{background:var(--navy);color:#fff!important}
/* ==========================================================================
   無料の計算ツール(2026-10-04 追加)。build.py が k2_base.css・k2_add.css・k2_gold.css のあとに連結する。
   使うページ:/tool-ninzu(この部屋に何人住めるか)・/tool-genbutsu(社宅の現物給与の目安)と、/guide の「無料の計算ツール」の欄。
   外部の読み込みなし。インラインの style 属性は使わない。
   ========================================================================== */
.tool [hidden]{display:none!important}

/* hero: the calculator is the point of the page, so the key-points card is hidden on tablets and phones (the consult button is below the tool) */
.hero.ghero.thero .hero-in{padding-bottom:64px}
@media (max-width:960px){
  .hero.ghero.thero .glance{display:none}
  .hero.ghero.thero .hero-in{padding-bottom:36px}
}

/* the calculator card */
.tool{background:#fff;border:2px solid var(--navy);border-radius:18px;margin:0 0 36px;box-shadow:var(--shadow-md);overflow:hidden}
.tool-hd{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap;background:var(--navy);color:#fff;padding:12px 26px;font-family:var(--f-head);font-weight:900;font-size:1.02rem;line-height:1.5}
.tool-hd small{font-family:var(--f-body);font-weight:500;font-size:.8rem;color:#C9CFF3}
.tool-in{padding:24px 26px 8px}
.tool-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;align-items:start}
.tool-wide{grid-column:1/-1}
.tool-f{min-width:0}
.tool-lbl,.tool-f>label:not(.tool-chk){display:block;margin:0 0 6px;font-family:var(--f-head);font-weight:700;font-size:.92rem;line-height:1.6;color:var(--ink)}
.tool-f input[type=text],.tool-f select{width:100%;min-width:0;font:inherit;font-size:1rem;padding:12px 14px;border:1px solid var(--line-strong);border-radius:12px;background:var(--lav2);color:var(--ink)}
.tool-f input[type=text]:focus,.tool-f select:focus{outline:none;border-color:var(--gold);background:#fff;box-shadow:0 0 0 4px rgba(212,175,55,.22)}
.tool-inline{display:flex;gap:8px;align-items:center}
.tool-inline input{flex:1 1 auto}
.tool-inline select{flex:0 0 auto;width:auto;padding-right:10px}
.tool-unit{flex:0 0 auto;font-weight:700;color:var(--ink2)}
.tool-hint{margin:6px 0 0;font-size:.82rem;line-height:1.75;color:var(--ink2)}
.tool-hint.tool-wide{margin:-4px 0 0}
.tool-err{margin:6px 0 0;font-size:.84rem;line-height:1.6;font-weight:700;color:#A5295E}
.tool-err:empty{display:none}

/* choose one (system): three buttons that read as a segmented control */
.tool-seg{display:flex;flex-wrap:wrap;gap:8px}
.tool-seg label{position:relative;display:block;flex:1 1 auto;margin:0;cursor:pointer}
.tool-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.tool-seg span{display:block;text-align:center;padding:11px 14px;border:1.5px solid var(--line-strong);border-radius:12px;background:#fff;font-family:var(--f-head);font-weight:700;font-size:.92rem;line-height:1.5;color:var(--ink);transition:background .15s,border-color .15s,color .15s}
.tool-seg label:hover span{border-color:var(--navy)}
.tool-seg input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.tool-seg input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.tool-chk{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;background:var(--lav2);border:1px solid var(--line);border-radius:12px;cursor:pointer;font-family:var(--f-body);font-weight:500;font-size:.88rem;line-height:1.75;color:var(--ink)}
.tool-chk input{flex:0 0 auto;margin:5px 0 0;width:18px;height:18px;accent-color:var(--navy)}

/* the result */
.tool-outwrap{margin-top:18px;padding:20px 26px 24px;background:var(--lav2);border-top:2px dashed var(--line-strong)}
.tool-oh{margin:0 0 12px;font-family:var(--f-head);font-weight:900;font-size:1.02rem;color:var(--navy)}
.tool-out{min-height:2.6em}
.tool-empty{margin:0;font-size:.95rem;line-height:1.85;color:var(--ink2)}
.tool-res{border:2px solid var(--line-strong);border-radius:14px;background:#fff;padding:16px 18px}
.tool-res.ok{border-color:#2E8B5B;background:#F0FAF4}
.tool-res.ng{border-color:#C2467F;background:#FFF3F8}
.tool-res.info{border-color:var(--navy)}
.tool-verdict{margin:0;font-family:var(--f-head);font-weight:900;font-size:1.28rem;line-height:1.55;color:var(--navy)}
.tool-res.ok .tool-verdict{color:#1B6B43}
.tool-res.ng .tool-verdict{color:#A5295E}
.tool-big{margin:2px 0 4px;font-family:var(--f-head);font-weight:900;font-size:2.15rem;line-height:1.3;color:var(--navy);font-variant-numeric:tabular-nums}
.tool-sub{margin:6px 0 0;font-size:.92rem;line-height:1.8;color:var(--ink)}
.tool-kv{margin:14px 0 0;padding:0}
.tool-kv>div{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:4px 16px;padding:10px 2px;border-top:1px dashed var(--line-strong)}
.tool-kv dt{font-size:.88rem;line-height:1.65;color:var(--ink2)}
.tool-kv dd{margin:0;font-weight:700;font-size:.98rem;line-height:1.6;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
.tool-calc{margin:10px 0 0;font-size:.84rem;line-height:1.8;color:var(--ink2)}
.tool-note{margin:0;padding:14px 26px;background:#FFF9EA;border-top:1px solid #F0DCA6;font-size:.88rem;line-height:1.85;color:var(--ink)}
.tool-note+.tool-note{border-top:1px dashed #F0DCA6}
/* the way in to a consultation, right under the calculator */
.tool-next{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:18px 26px 20px;background:#fff;border-top:1px solid var(--line)}
.tool-next>p:first-child{flex:1 1 300px;margin:0;font-family:var(--f-head);font-weight:700;font-size:.95rem;line-height:1.7;color:var(--navy)}
.tool-next .btn{flex:0 0 auto}
.tool-next .gcap{flex:1 1 100%;margin:0}
.tool-outwrap .tool-calc{margin-top:14px}

/* the 47-prefecture list (a closed box in the article) and the reference table */
.tdet{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 20px;margin:16px 0}
.tdet summary{list-style:none;cursor:pointer;position:relative;padding:14px 30px 14px 0;font-family:var(--f-head);font-weight:700;color:var(--navy);font-size:.95rem}
.tdet summary::-webkit-details-marker{display:none}
.tdet summary::after{content:"";position:absolute;right:6px;top:50%;width:8px;height:8px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.tdet[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.guide .tdet h3{margin:18px 0 4px;font-size:.98rem}
.guide ul.trates{list-style:none;padding:0;margin:4px 0 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:0 24px}
.guide .trates li{display:flex;justify-content:space-between;gap:10px;margin:0;padding:6px 2px;border-bottom:1px dashed var(--line);font-size:.9rem;line-height:1.7}
.guide .trates li b{font-weight:700;font-variant-numeric:tabular-nums}
.guide .trates li::marker{content:""}
.guide .tdet .fine{margin:6px 0 16px}

/* lists of links inside the sources table */
.guide td ul{margin:0;padding-left:1.15em}
.guide td li{margin:4px 0}

/* the "free calculators" block on /guide */
.gidx-tnote{max-width:820px;margin:14px 0 0}

@media (max-width:960px){
  .tool input[type=text],.tool select,.tool-seg label,.tool-chk{scroll-margin-bottom:100px}
}
@media (max-width:600px){
  .tool-hd{padding:11px 16px;font-size:.97rem}
  .tool-in{padding:18px 16px 4px}
  .tool-form{grid-template-columns:1fr;gap:16px}
  .tool-outwrap{margin-top:14px;padding:16px 16px 18px}
  .tool-note{padding:12px 16px}
  .tool-next{padding:16px}
  .tool-next .btn{width:100%;justify-content:center}
  .tool-verdict{font-size:1.15rem}
  .tool-big{font-size:1.9rem}
  .tool-kv>div{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}
  .tdet{padding:0 16px}
  .guide ul.trates{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
}
