@charset "UTF-8";
/* ============================================================
   style.css — スターター基盤
   構成: 1.トークン → 2.リセット/ベース → 3.レイアウト
        → 4.コンポーネント → 5.モーション → 6.停止ポリシー
   触り方は TEMPLATE-GUIDE.md 参照。トークン以外の削除は慎重に。
   ============================================================ */

/* ---------- 1. トークン(案件ごとに必ず引き直す) ---------- */
:root {
  /* 色: プレースホルダ。納品時にこのままは禁止 */
  --color-bg: #f7f5f0;          /* 地 */
  --color-surface: #ffffff;     /* 面(カード・フォーム) */
  --color-text: #1c1b18;        /* 本文 */
  --color-muted: #6d6a61;       /* 補助テキスト */
  --color-accent: #b4552d;      /* 主張色(CTA・強調) */
  --color-accent-ink: #ffffff;  /* accent上の文字色(コントラスト4.5:1確保) */
  --color-line: #d8d4c8;        /* 罫線 */

  /* タイポ: フォント読み込み(HTML head)とセットで変える */
  --font-display: "Shippori Mincho", "Hiragino Mincho ProN", serif;
  --font-body: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;

  /* 型: 8px系。値を変えても系は守る */
  --space: 8px;
  --section-pad: clamp(64px, 12vw, 140px);
  --container: 1120px;
  --container-narrow: 760px;
  --radius: 2px;

  /* 階層: z-indexは必ずこの変数経由 */
  --z-header: 100;
  --z-nav: 200;
  --z-modal: 1000;

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --duration: 0.8s;
}

/* ---------- 2. リセット/ベース ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.9;                 /* 日本語本文の床 */
  font-size: 16px;
  letter-spacing: 0.02em;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: anywhere;          /* 長いURL・英単語のはみ出し事故防止 */
}

img, video { max-width: 100%; height: auto; display: block; }

a { color: inherit; }
a:hover { opacity: 0.7; transition: opacity 0.3s; }

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.4;                 /* 見出しは本文より詰める */
  letter-spacing: 0.04em;
}

/* ---------- 3. レイアウト ---------- */
.container { width: min(var(--container), 100% - 48px); margin-inline: auto; }
.container--narrow { width: min(var(--container-narrow), 100% - 48px); margin-inline: auto; }

.section { padding-block: var(--section-pad); }
.section--tight { padding-block: calc(var(--section-pad) * 0.6); }

/* セクション見出しの型(シグネチャーに差し替える前提の仮デザイン) */
.section-head { margin-bottom: calc(var(--space) * 7); }
.section-head__en {
  display: block;
  font-family: var(--font-body);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: calc(var(--space) * 2);
}
.section-head__title { font-size: clamp(28px, 4.5vw, 44px); }

/* ---------- 4. コンポーネント ---------- */

/* ヘッダー */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: var(--z-header);
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px clamp(20px, 4vw, 48px);
  transition: background 0.4s, box-shadow 0.4s;
}
.site-header.is-scrolled {
  background: color-mix(in srgb, var(--color-bg) 88%, transparent);
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 var(--color-line);
}
.site-header__logo { font-family: var(--font-display); font-size: 20px; text-decoration: none; }

.global-nav ul { display: flex; gap: calc(var(--space) * 4); list-style: none; padding: 0; }
.global-nav a { text-decoration: none; font-size: 14px; letter-spacing: 0.08em; }
.global-nav a[aria-current="page"] {
  color: var(--color-accent);
  border-bottom: 1px solid currentColor;
}

/* ハンバーガー(SP) */
.nav-toggle {
  display: none;
  width: 44px; height: 44px;           /* タップ領域44px確保 */
  background: none; border: none; cursor: pointer;
  position: relative; z-index: calc(var(--z-nav) + 1);
}
.nav-toggle span {
  display: block; width: 24px; height: 2px; margin: 5px auto;
  background: var(--color-text); transition: transform 0.3s, opacity 0.3s;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 767px) {
  .nav-toggle { display: block; }
  .global-nav {
    position: fixed; inset: 0; z-index: var(--z-nav);
    background: var(--color-bg);
    display: grid; place-content: center;
    opacity: 0; visibility: hidden; transition: opacity 0.4s, visibility 0.4s;
  }
  .global-nav.is-open { opacity: 1; visibility: visible; }
  .global-nav ul { flex-direction: column; text-align: center; gap: calc(var(--space) * 4); }
  .global-nav a { font-size: 20px; }
}

/* ヒーロー(トップ) */
.hero {
  min-height: 100svh;                  /* svh: モバイルのアドレスバー事故防止 */
  display: flex; align-items: flex-end;
  padding: var(--section-pad) 0 calc(var(--space) * 10);
}
.hero__title {
  font-size: clamp(40px, 8vw, 96px);
  line-height: 1.25;
}
.hero__lead { margin-top: calc(var(--space) * 4); max-width: 34em; color: var(--color-muted); }

/* 下層ページヘッダー */
.page-header { padding: calc(var(--section-pad) * 1.2) 0 calc(var(--section-pad) * 0.5); }
.page-header__en {
  font-size: 13px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--color-accent);
}
.page-header__title { font-size: clamp(32px, 5vw, 56px); margin-top: calc(var(--space) * 1); }

.breadcrumb { padding-block: calc(var(--space) * 2); font-size: 12px; color: var(--color-muted); }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 0.6em; list-style: none; padding: 0; }
.breadcrumb li:not(:last-child)::after { content: "/"; margin-left: 0.6em; }
.breadcrumb a { text-decoration: none; }

/* ボタン */
.button {
  display: inline-block;
  padding: 16px 44px;
  background: var(--color-accent); color: var(--color-accent-ink);
  border: 1px solid var(--color-accent); border-radius: var(--radius);
  font-size: 15px; letter-spacing: 0.08em; text-decoration: none;
  cursor: pointer; transition: background 0.3s, color 0.3s;
}
.button:hover { background: transparent; color: var(--color-accent); opacity: 1; }
.button:disabled { opacity: 0.5; cursor: wait; }

/* フォーム */
.form { display: grid; gap: calc(var(--space) * 4); }
.form__field { display: grid; gap: calc(var(--space) * 1); }
.form__field label { font-size: 14px; font-weight: 600; }
.form__field .required { color: var(--color-accent); font-size: 12px; margin-left: 0.5em; }
.form input, .form textarea {
  font: inherit; padding: 14px 16px;
  background: var(--color-surface);
  border: 1px solid var(--color-line); border-radius: var(--radius);
}
.form input:focus, .form textarea:focus { border-color: var(--color-accent); outline: none; }
.form [aria-invalid="true"] { border-color: #c0392b; }
.form__error { color: #c0392b; font-size: 13px; min-height: 1.2em; }
.form__hp { position: absolute; left: -9999px; }  /* ハニーポット: 削除禁止 */

/* フッター */
.site-footer {
  padding: calc(var(--space) * 8) 0 calc(var(--space) * 4);
  border-top: 1px solid var(--color-line);
  font-size: 13px; color: var(--color-muted);
}

/* ---------- 5. モーション基盤 ---------- */
/* JSが .is-inview を付ける。演出を変えるならこのクラスのtransform/opacityだけ触る */
.js-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--duration) var(--ease-out), transform var(--duration) var(--ease-out);
}
.js-reveal.is-inview { opacity: 1; transform: none; }
.js-reveal[data-delay="1"] { transition-delay: 0.1s; }
.js-reveal[data-delay="2"] { transition-delay: 0.2s; }
.js-reveal[data-delay="3"] { transition-delay: 0.3s; }

/* ---------- 6. モーション停止(SKILL.mdのポリシー実装。削除禁止) ---------- */
.motion-stop {
  display: none;
  position: fixed; right: 16px; bottom: 16px; z-index: var(--z-modal);
  padding: 10px 16px; font-size: 12px;
  background: var(--color-surface); border: 1px solid var(--color-line);
  border-radius: 999px; cursor: pointer;
}
@media (prefers-reduced-motion: reduce) {
  .motion-stop { display: block; }     /* reduced-motion環境にだけボタンを出す */
}
html.is-motion-off .js-reveal,
html.is-motion-off *[class] {
  transition-duration: 0.01ms !important;
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
}
html.is-motion-off .js-reveal { opacity: 1; transform: none; }

:root{--ink:#173d3c;--muted:#526b66;--green:#176753;--deep:#123f37;--paper:#f6f7f2;--cream:#edece2;--line:#d3dfd7;--white:#fff;--radius:18px;--font-body:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;--font-display:var(--font-body)}
html{scroll-behavior:auto;scroll-padding-top:20px}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.8;letter-spacing:.015em}button,input,select,textarea{font:inherit}a{color:var(--green);text-underline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-body);letter-spacing:.015em;line-height:1.45}h1{font-size:clamp(30px,3.3vw,46px)}h2{font-size:clamp(24px,2.2vw,30px)}h3{font-size:21px}button,.button{font-size:17px;background:var(--green);color:#fff!important;border:1px solid var(--green);border-radius:10px;min-height:48px;padding:12px 22px;display:inline-flex;gap:10px;justify-content:center;align-items:center;text-decoration:none;font-weight:700;line-height:1.5;cursor:pointer;letter-spacing:.01em}button:hover,.button:hover{background:var(--deep);border-color:var(--deep);opacity:1}button:disabled{background:#627970;border-color:#627970;cursor:default}button.alternate,.button.alternate{background:var(--deep);border-color:var(--deep)}.container{width:min(1200px,100%);padding:0 32px;margin:0 auto}.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{min-height:100px;display:flex;align-items:center;gap:22px}.wordmark{text-decoration:none;display:flex;flex-direction:column;gap:1px;line-height:1.1;color:var(--deep);flex-shrink:0}.brand-small{font-size:13px;font-weight:700;letter-spacing:.08em}.brand-name{font-family:Arial,sans-serif;font-size:38px;font-weight:900;letter-spacing:-.055em}.brand-kana{font-family:var(--font-body);font-size:12px;margin-left:10px;letter-spacing:.03em}.prototype{font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px}.header-inner nav{margin-left:auto;display:flex;align-items:center;gap:27px}.header-inner nav a{font-size:16px;text-decoration:none;font-weight:700;white-space:nowrap}.header-inner nav a:last-child{border-left:1px solid var(--line);padding-left:24px}.header-inner nav a:hover{text-decoration:none}.header-inner nav a span{font-size:13px;border-radius:50%;padding:2px 6px;background:var(--green);color:white}.hero{min-height:auto;display:block;padding:0;background:#edf3eb;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:32px;align-items:center;padding-top:35px;padding-bottom:50px}.hero-copy{padding:25px 0}.eyebrow{font-size:15px;font-weight:700;letter-spacing:.06em;color:var(--green);margin-bottom:12px}.dot,.status-dot{display:inline-block;width:8px;height:8px;background:var(--green);border-radius:50%;margin-right:9px;vertical-align:middle}.hero h1{font-size:clamp(34px,3.5vw,48px);line-height:1.55;letter-spacing:.025em}.hero h1 span{color:var(--green)}.hero-lead{font-size:19px;line-height:1.85;margin-top:19px}.hero-small{font-size:14px;color:var(--muted);margin-top:15px}.hero-art{margin:0;min-width:0}.hero-art img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:85px 18px 85px 18px}.hero-art figcaption{font-size:12px;color:var(--muted);text-align:right;margin-top:6px}.search-container{position:relative;margin-top:-25px}.search-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px;box-shadow:0 12px 30px #173d3c08;scroll-margin-top:18px}.search-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:21px}.search-heading h2{font-size:23px}.search-heading>a{font-size:15px;font-weight:700;white-space:nowrap}.search-fields{display:grid;grid-template-columns:1fr 1.2fr 1.35fr 1.1fr;gap:14px;align-items:end}label{display:block;font-size:16px;font-weight:700}input,select,textarea{display:block;width:100%;min-width:0;max-width:100%;border:1px solid #a3b9ad;border-radius:8px;background:#fff;color:var(--ink);padding:13px 12px;min-height:50px;margin-top:6px;line-height:1.5}select{padding-right:26px}textarea{resize:vertical}.search-button{min-height:52px;padding:12px 16px;white-space:nowrap}.search-button>span{font-size:25px;line-height:1}.search-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:18px}.search-bottom p{font-size:14px;color:var(--muted)}.search-bottom p a{margin-left:10px;white-space:nowrap;font-weight:700}.search-bottom .text-reset{font-size:14px;min-height:40px;padding:8px 15px;flex-shrink:0;background:var(--deep)}.utility-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:28px 0 45px}.utility-links>a{display:flex;gap:14px;align-items:center;color:var(--ink);text-decoration:none;padding:17px 20px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0}.utility-links>a:hover{border-color:var(--green);opacity:1;background:#edf3eb}.utility-links>a>span:last-child{margin-left:auto;font-size:22px}.utility-symbol{font-size:35px;line-height:1;color:var(--green);width:38px;text-align:center;flex-shrink:0}.utility-links strong{display:block;font-size:18px}.utility-links small{display:block;font-size:13px;color:var(--muted)}.results-section{padding-bottom:48px}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:14px}.section-heading .eyebrow{margin-bottom:6px}.sort-label{font-size:14px;color:var(--muted)}.results-help{font-size:16px;color:var(--muted);margin:0 0 24px}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.facility-card{border:1px solid var(--line);background:white;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;min-width:0}.card-visual{display:flex;align-items:center;gap:17px;min-height:108px;padding:18px 21px;background:#edf2ea;border-bottom:1px solid var(--line)}.service-icon{width:73px;height:73px;object-fit:contain;border-radius:15px;background:#f5f3eb;flex-shrink:0}.type-mark{display:block;font-family:Arial,var(--font-body);font-size:27px;font-weight:800;line-height:1.2;color:var(--green)}.type-name{display:block;font-size:14px;font-weight:700;color:var(--muted);margin-top:4px}.card-body{padding:22px 22px 18px;display:flex;flex-direction:column;flex:1}.card-region{font-size:14px;font-weight:700;color:var(--green);margin-bottom:7px}.facility-card h3{font-size:21px;line-height:1.55;margin-bottom:7px}.facility-card h3 a{text-decoration:none;color:var(--ink)}.facility-card h3 a:hover{text-decoration:none}.corporation{font-size:14px;color:var(--muted);margin-bottom:14px}.card-address{font-size:16px;line-height:1.7;min-height:2.9em}.feature-chips{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 0}.feature-chips span{font-size:12px;line-height:1.6;background:#f1f4ef;color:#355b50;border:1px solid #dce5da;padding:4px 8px;border-radius:4px}.card-hours{font-size:14px;margin-top:13px;color:var(--muted)}.vacancy{font-size:13px;display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;margin-top:13px;color:var(--muted)}.vacancy strong{font-weight:600}.card-actions{margin-top:auto;padding-top:20px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}.card-actions .button{font-size:15px;min-height:44px;flex:1;padding:10px 12px;white-space:nowrap}.pick{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:14px;cursor:pointer;min-height:44px}.pick input{width:19px;min-height:19px;height:19px;margin:0;accent-color:var(--green)}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin:30px 0 18px}.pagination button{padding:10px 20px;min-height:44px}.pagination span{font-size:15px;color:var(--muted)}.source-note{font-size:14px;color:var(--muted);line-height:1.8}.empty{grid-column:1/-1;padding:40px 24px;text-align:center;border:1px solid var(--line);border-radius:16px;background:#fff}.empty p{margin:12px 0 20px}.view-section{padding-top:28px;padding-bottom:50px}.breadcrumb{font-size:14px;color:var(--muted);margin-bottom:24px}.view-lead{font-size:17px;color:var(--muted);max-width:740px;margin:18px 0 28px}.map-filter{display:grid;grid-template-columns:.8fr 1fr 1.8fr;gap:17px;background:white;padding:23px;border:1px solid var(--line);border-radius:14px;margin:25px 0}.map-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:24px;align-items:start}.map-canvas{border:1px solid var(--line);background:#e5eee6;border-radius:14px;overflow:hidden;min-height:440px}.map-canvas iframe{display:block;width:100%;height:440px;border:0}.map-canvas .map-fallback{padding:35px}.map-attribution{font-size:13px;color:var(--muted);margin-top:10px}.map-selected .facility-card{width:100%}.comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:28px 0}.compare-card{min-width:0;border:1px solid var(--line);border-radius:14px;background:white;overflow:hidden}.compare-card>h2{font-size:21px;padding:20px 22px 0}.compare-card dl{padding:0 22px 20px}.compare-card dt{font-weight:700;color:var(--green);font-size:14px;margin-top:18px}.compare-card dd{font-size:16px;margin:3px 0 0}.compare-card .compare-tail{padding:0 22px 22px;display:flex;gap:10px;flex-wrap:wrap}.compare-card button{font-size:14px;min-height:42px;padding:9px 14px}.compare-actions{display:flex;gap:16px;flex-wrap:wrap}.compare-tray{position:sticky;bottom:16px;z-index:9;width:min(1120px,calc(100% - 36px));margin:0 auto 28px;background:var(--deep);color:white;border-radius:14px;box-shadow:0 8px 30px #173d3c1f}.tray-inner{padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px}.tray-inner>span{font-size:15px}.tray-actions{display:flex;gap:10px}.tray-actions .button,.tray-actions button{font-size:14px;min-height:42px;padding:10px 14px;border-color:#5f8d7c}.tray-actions .alternate{background:#285f50}.detail-panel{border:1px solid var(--line);background:white;border-radius:18px;padding:30px}.detail-title-row{display:flex;gap:22px;align-items:center;margin-bottom:20px}.detail-title-row .service-icon{width:100px;height:100px}.detail-panel h1{font-size:clamp(27px,3.2vw,40px)}.detail-panel .actions{display:flex;gap:14px;flex-wrap:wrap;margin:22px 0 30px}.detail-panel h2{font-size:25px}.detail-panel dl{display:grid;grid-template-columns:minmax(180px,1fr) 3fr;margin:20px 0 28px}.detail-panel dt,.detail-panel dd{padding:14px;border-bottom:1px solid var(--line);min-width:0;font-size:16px}.detail-panel dt{font-weight:700;background:#f2f5ee}.notice{border-left:4px solid var(--green);padding:18px 20px;background:#eef4e9;margin:22px 0}.notice p{margin-top:5px}.detail-bottom{margin:25px 0 0}.memo-intro{display:grid;grid-template-columns:1.6fr 1fr;align-items:center;gap:30px}.memo-intro-icon{display:flex;align-items:center;gap:20px;justify-content:flex-end}.memo-intro-icon img{width:140px;height:140px;object-fit:contain;border-radius:40px}.memo-intro-icon p{font-size:18px;font-weight:700;color:var(--green)}.memo-panel{max-width:850px;background:#fff;padding:30px;border:1px solid var(--line);border-radius:18px;margin:20px 0}.memo-panel fieldset{border:0;margin:25px 0;padding:0;min-width:0}.memo-panel legend{font-weight:700;font-size:18px;margin-bottom:15px}.question-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.question-grid label{display:flex;gap:12px;align-items:center;padding:17px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.question-grid input{width:21px;height:21px;min-height:21px;margin:0;accent-color:var(--green);flex-shrink:0}.question-grid strong{font-size:17px;display:block}.question-grid small{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:2px}.memo-panel .source-note{margin:16px 0 20px}.memo-output{max-width:850px;white-space:pre-wrap;background:#edf4e9;padding:25px;border:1px solid var(--line);border-radius:14px;margin:20px 0;font-size:17px}.bottom-guide{background:#e5ede2;border-top:1px solid #d3dfd0;padding:42px 0}.bottom-guide-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}.bottom-guide h2{font-size:29px}.bottom-guide p:not(.eyebrow){font-size:16px;color:var(--muted);margin-top:14px}footer{padding:40px 0 35px;background:var(--deep);color:#fff}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:start;padding-bottom:25px}.footer-brand{font-size:22px;font-weight:700}.footer-brand span{font-size:14px}.footer-top>div>p:last-child{font-size:14px;color:#d8e4db;margin-top:8px}.footer-top nav{display:flex;gap:20px;flex-wrap:wrap}.footer-top a{font-size:14px;color:white}.source-block{font-size:13px;line-height:1.9;border-top:1px solid #507469;padding-top:20px;color:#dae5dc}.source-block p+p{margin-top:9px}.source-block a{color:#fff}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;padding:15px;background:white;z-index:999}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9a6200;outline-offset:4px}[hidden]{display:none!important}p,dd,a,strong{overflow-wrap:anywhere}fieldset,figure{min-width:0}
.site-header{position:static;inset:auto;display:block;padding:0;transition:none}
.utility-links>a{background:var(--green);color:#fff;border-color:var(--green)}.utility-links>a:hover{background:var(--deep);color:#fff}.utility-links small{color:#e6eee8}.utility-symbol{color:#fff}
@media(max-width:1100px){.prototype{display:none}.header-inner nav{gap:18px}.search-fields{grid-template-columns:1fr 1.2fr}.search-button{min-height:52px}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{font-size:38px}.utility-links{gap:12px}.utility-links>a{padding:16px 14px;gap:8px}.utility-links strong{font-size:16px}.utility-symbol{font-size:30px;width:30px}.map-layout{grid-template-columns:1.5fr 1fr}}
@media(max-width:767px){.container{padding:0 20px}.header-inner{min-height:0;display:flex;flex-wrap:wrap;padding-top:15px;gap:12px}.wordmark{gap:0}.brand-small{font-size:12px}.brand-name{font-size:32px}.brand-kana{font-size:11px}.header-inner nav{margin:0 -20px;padding:10px 20px 12px;display:flex;width:calc(100% + 40px);justify-content:space-between;border-top:1px solid #edf1ea;gap:12px;overflow-x:auto}.header-inner nav a{font-size:13px}.header-inner nav a:last-child{padding-left:0;border-left:0}.header-inner nav a span{font-size:11px}.hero-grid{grid-template-columns:1fr;gap:0;padding-top:23px;padding-bottom:34px}.hero-copy{padding:0}.eyebrow{font-size:13px;margin-bottom:10px}.hero h1{font-size:34px;line-height:1.5;letter-spacing:.01em}.hero-lead{font-size:16px;line-height:1.8;margin-top:12px}.hero-small{font-size:12px;margin-top:10px}.hero-art{margin-top:18px}.hero-art img{aspect-ratio:2.4;max-height:185px;border-radius:35px 10px 35px 10px;object-position:center 54%}.hero-art figcaption{font-size:10px}.search-container{margin-top:-15px}.search-panel{padding:20px 18px;border-radius:14px}.search-heading{display:block;margin-bottom:15px}.search-heading h2{font-size:20px}.search-heading>a{display:none}.search-fields{grid-template-columns:1fr 1fr;gap:14px 10px}.search-fields label{font-size:14px}.search-fields label:nth-child(3){grid-column:1/-1}.search-fields .search-button{grid-column:1/-1;font-size:17px;padding:13px 15px}input,select,textarea{font-size:16px;min-height:49px;padding:12px 9px}select{padding-right:21px}.search-bottom{display:block;margin-top:15px}.search-bottom p{font-size:12px;line-height:1.8}.search-bottom p a{display:block;margin-left:17px}.search-bottom .text-reset{font-size:12px;min-height:34px;padding:6px 12px;margin-top:12px}.utility-links{gap:8px;margin:20px 0 32px}.utility-links>a{padding:14px 7px;display:flex;flex-direction:column;text-align:center;gap:6px;justify-content:flex-start;border-radius:10px}.utility-links>a>span:last-child{display:none}.utility-links strong{font-size:13px}.utility-links small{display:none}.utility-symbol{font-size:27px;height:31px}.section-heading{align-items:start;gap:12px;flex-wrap:wrap}.section-heading h2{font-size:25px}.sort-label{font-size:12px;margin-top:0}.results-help{font-size:14px;margin-bottom:18px}.result-grid{grid-template-columns:1fr;gap:18px}.card-visual{min-height:91px;padding:14px 20px;gap:16px}.service-icon{width:62px;height:62px;border-radius:13px}.type-mark{font-size:24px}.type-name{font-size:13px}.card-body{padding:19px 20px 21px}.facility-card h3{font-size:22px}.corporation{font-size:13px;margin-bottom:12px}.card-region{font-size:13px}.card-address{min-height:0;font-size:16px}.feature-chips span{font-size:12px}.card-hours{font-size:14px}.card-actions .button{font-size:16px}.pick{font-size:14px}.source-note{font-size:12px}.pagination{gap:12px;margin:24px 0 16px}.pagination button{padding:10px 15px;font-size:15px}.pagination span{font-size:14px}.view-section{padding-top:23px;padding-bottom:35px}.view-section h1{font-size:29px}.view-lead{font-size:16px;margin:15px 0 22px}.breadcrumb{font-size:12px;margin-bottom:20px}.map-filter{grid-template-columns:1fr 1fr;gap:15px 10px;padding:18px}.map-filter label{font-size:13px}.map-filter label:last-child{grid-column:1/-1}.map-layout{grid-template-columns:1fr;gap:20px}.map-canvas{min-height:320px}.map-canvas iframe{height:320px}.map-attribution{font-size:11px}.map-selected .card-visual{display:none}.comparison-grid{grid-template-columns:1fr;gap:18px}.compare-card>h2{font-size:22px}.compare-card dt{font-size:14px}.compare-tray{position:static;width:auto;border-radius:0;margin:0}.tray-inner{padding:18px 20px;flex-direction:column;align-items:stretch;gap:10px}.tray-actions{display:grid;grid-template-columns:1.5fr 1fr}.tray-actions .button,.tray-actions button{font-size:12px;padding:10px}.detail-panel{padding:20px}.detail-title-row{align-items:start;gap:14px}.detail-title-row .service-icon{width:61px;height:61px}.detail-panel h1{font-size:25px}.detail-panel .actions{display:grid;grid-template-columns:1fr;margin:22px 0}.detail-panel .actions>*{width:100%}.detail-panel h2{font-size:23px}.detail-panel dl{display:block}.detail-panel dt{font-size:14px;padding:10px 12px}.detail-panel dd{font-size:16px;padding:10px 12px}.notice{font-size:15px;padding:16px}.memo-intro{grid-template-columns:1fr;gap:15px}.memo-intro-icon{display:none}.memo-panel{padding:20px;margin:22px 0}.question-grid{grid-template-columns:1fr;gap:10px}.question-grid label{padding:15px}.question-grid small{font-size:12px}.memo-output{padding:20px;font-size:16px}.bottom-guide{padding:30px 0}.bottom-guide-inner{flex-direction:column;align-items:start;gap:22px}.bottom-guide h2{font-size:25px}.bottom-guide p:not(.eyebrow){font-size:14px}.bottom-guide .button{width:100%}.footer-top{display:block}.footer-brand{font-size:20px}.footer-brand span{font-size:12px;display:block}.footer-top nav{margin-top:22px;gap:15px}.footer-top a{font-size:13px}.source-block{font-size:12px}footer{padding:30px 0}}
@media(max-width:359px){.container{padding-left:16px;padding-right:16px}.hero h1{font-size:29px}.header-inner nav{padding-left:16px;padding-right:16px;margin-left:-16px;margin-right:-16px;width:calc(100% + 32px);gap:8px}.header-inner nav a{font-size:12px}.search-panel{padding:18px 14px}.search-fields{grid-template-columns:1fr}.search-fields>*{grid-column:1!important}.card-actions{flex-direction:column;align-items:stretch}.pick{justify-content:center}.utility-links strong{font-size:12px}.card-body{padding:17px}.view-section h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* v3: distinguish each service illustration without inventing facility photography. */
.service-selector{margin:0 0 35px}.service-selector-heading{display:flex;gap:18px;justify-content:space-between;align-items:center;margin-bottom:15px}.service-selector-heading>strong{font-size:21px}.service-selector-heading>span{font-size:14px;color:var(--muted)}.service-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.service-options>a{display:flex;gap:13px;align-items:center;border:1px solid var(--line);border-radius:13px;background:white;color:var(--ink);text-decoration:none;padding:16px 14px}.service-options>a:hover{border-color:var(--green);opacity:1}.service-options img{width:66px;height:66px;object-fit:contain;border-radius:12px;flex-shrink:0}.service-options strong{font-size:24px;display:block;line-height:1.3}.service-options small{display:block;font-size:12px;color:var(--muted);line-height:1.6;margin-top:5px}.service-options a[aria-current=true]{border:2px solid var(--green)}.card-visual{min-height:145px;gap:20px;padding:20px}.card-visual .service-icon{width:104px;height:104px}.type-mark{font-size:31px}.card-photo{margin:0;background:#edf2ea}.card-photo img{width:100%;height:190px;object-fit:cover}.card-photo figcaption{font-size:12px;padding:7px 15px;color:var(--muted)}
@media(max-width:1100px){.service-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.service-selector{margin-bottom:30px}.service-selector-heading{display:block}.service-selector-heading>strong{font-size:20px}.service-selector-heading>span{display:block;font-size:12px;margin-top:6px}.service-options{gap:10px}.service-options>a{padding:13px 10px;gap:9px;align-items:center}.service-options img{width:51px;height:51px;border-radius:10px}.service-options strong{font-size:22px}.service-options small{font-size:12px}.card-visual{min-height:138px;padding:18px 20px;gap:21px}.card-visual .service-icon{width:100px;height:100px}.type-mark{font-size:30px}.type-name{font-size:14px}.card-photo img{height:190px}}

/* Full directory: v3 visual foundation, real page links and readable static content. */
.content-section{padding:35px 0;border-top:1px solid var(--line);margin-top:32px}.content-section>h2{margin-bottom:16px}.content-section>p{margin-bottom:20px}.city-parents{display:flex;gap:14px;flex-wrap:wrap;margin:25px 0}.area-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0}.area-links>a{display:block;min-width:0;background:white;border:1px solid var(--line);border-radius:9px;padding:12px 15px;font-size:16px;font-weight:700;text-decoration:none}.area-links>a:hover{border-color:var(--green);opacity:1}.type-links{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.type-links>a{padding:9px 14px;border-radius:8px;border:1px solid var(--line);background:white;text-decoration:none;font-size:16px}.native-search{margin:26px 0}.native-search h2{font-size:23px;margin-bottom:18px}.native-search .source-note{margin-top:16px}.result-heading{margin-top:32px}.result-heading>span{font-size:14px;color:var(--muted)}.regional-summary{background:#e9f0e5;border-radius:14px;padding:25px;margin:30px 0}.regional-summary h2{font-size:24px;margin-bottom:12px}.regional-summary p+p{margin-top:12px}.guide-grid,.type-explain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:25px 0}.guide-grid>article,.panel{background:white;border:1px solid var(--line);padding:24px;border-radius:14px;min-width:0}.guide-grid p{font-size:16px;color:var(--muted);margin-top:12px}.article-link{font-size:22px;font-weight:700}.type-explain-grid{grid-template-columns:1fr 1fr}.type-explain-grid h2{font-size:24px;margin-bottom:13px}.type-explain-grid .button{margin-top:18px}.type-hero{display:grid;grid-template-columns:1.8fr 1fr;gap:35px;align-items:center}.type-hero>img{width:240px;height:240px;object-fit:contain;border-radius:30px;justify-self:end}.plain-list{padding-left:26px;font-size:18px;line-height:2.1}.crumbs{padding:20px 0 0;font-size:14px;color:var(--muted)}.crumbs ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:7px 10px}.crumbs li+li:before{content:'›';margin-right:9px;color:var(--muted)}.detail-panel .service-icon{border-radius:20px}.detail-panel .actions label{min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:9px}.compare-notice{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:20;padding:16px 22px;background:var(--deep);color:white;border:1px solid #6c9b82;border-radius:12px;box-shadow:0 3px 18px #0002;max-width:calc(100% - 30px);font-size:16px}.compare-notice a{color:white;margin-left:12px}.prose{max-width:800px;font-size:18px;line-height:1.95}.prose h2{font-size:28px;margin:42px 0 18px}.prose h3{font-size:23px;margin:25px 0 14px}.prose p{margin:18px 0}.prose ul,.prose ol{padding-left:25px;margin:18px 0}.prose li{margin:8px 0}.prose img{width:100%;height:auto;border-radius:16px;margin:25px 0}.prose figcaption{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:25px}.prose figure{margin:25px 0}.prose figure img{margin-bottom:8px}.prose table,.metrics-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:22px 0;font-size:16px}.prose th,.prose td,.metrics-table th,.metrics-table td{padding:13px 12px;vertical-align:top;border:1px solid var(--line);overflow-wrap:anywhere}.prose th,.metrics-table th{background:#e6eee1}.prose mark{background:#e6efcf;color:var(--ink);padding:1px 3px}.prose .callout{border-left:4px solid var(--green);background:#eaf2e4;padding:20px;margin:24px 0}.prose .checklist{list-style:'✓  ';padding:22px 22px 22px 42px;background:white;border:1px solid var(--line);border-radius:13px}.article-layout>h1{max-width:900px;font-size:clamp(30px,3vw,42px)}.guide-entry{display:grid;grid-template-columns:1fr 1.3fr;gap:30px;border:1px solid var(--line);border-radius:18px;background:white;overflow:hidden;margin:30px 0}.guide-entry>img{width:100%;height:100%;object-fit:cover}.guide-entry>div{padding:28px}.guide-entry h2{font-size:25px}.guide-entry p{margin:16px 0}.map-filter{grid-template-columns:1fr 2fr}.map-result-card{margin-top:25px;padding:25px;background:white;border:1px solid var(--line);border-radius:15px}.map-result-card h2{font-size:24px}.map-result-card p{margin:12px 0}.empty{grid-column:1/-1}.search-container .utility-links>a{justify-content:center;font-size:17px;font-weight:700}.view-section .actions{display:flex;gap:15px;flex-wrap:wrap;margin:24px 0}.metrics-table{font-size:14px}#metrics-state{margin:20px 0;font-weight:700}.page-inline-count{font-size:14px;color:var(--muted)}
@media(max-width:1000px){.area-links{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-grid{grid-template-columns:1fr}.guide-entry{grid-template-columns:1fr 1fr}.type-hero{grid-template-columns:1.5fr 1fr}}
@media(max-width:767px){.content-section{padding:25px 0;margin-top:24px}.area-links{grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.area-links>a{font-size:14px;padding:11px 12px}.city-parents{display:grid;grid-template-columns:1fr;gap:10px}.type-links{gap:8px}.type-links>a{font-size:14px;padding:8px 11px}.guide-grid,.type-explain-grid{grid-template-columns:1fr;gap:15px}.type-hero{grid-template-columns:1fr;gap:18px}.type-hero>img{justify-self:start;width:145px;height:145px;border-radius:24px}.plain-list{font-size:17px}.crumbs{font-size:12px;padding-top:17px}.detail-panel .service-icon{width:65px;height:65px}.regional-summary{padding:20px}.regional-summary h2{font-size:22px}.regional-summary p{font-size:16px}.prose{font-size:17px;line-height:1.9}.prose h2{font-size:25px;margin-top:34px}.prose h3{font-size:21px}.prose th,.prose td{padding:9px 7px;font-size:14px}.prose .callout{padding:17px}.prose figcaption{font-size:12px}.guide-entry{grid-template-columns:1fr;gap:0}.guide-entry>img{height:auto;aspect-ratio:1.7;object-fit:cover}.guide-entry>div{padding:22px}.guide-entry h2{font-size:23px}.map-filter{grid-template-columns:1fr}.map-result-card{padding:20px}.compare-notice{font-size:14px;padding:12px 15px;bottom:10px;width:calc(100% - 30px);text-align:center}.compare-notice a{display:inline-block}.metrics-table{font-size:12px}.metrics-table td,.metrics-table th{padding:8px 5px}.native-search .search-fields{grid-template-columns:1fr 1fr}.native-search .search-fields label:nth-child(3),.native-search .search-fields button{grid-column:1/-1}.search-container .utility-links>a{font-size:13px;line-height:1.7;padding:14px 7px}.article-layout>h1{font-size:30px}}

.region-title span{display:block}@media(max-width:767px){.hero h1{font-size:clamp(25px,7.8vw,34px)}.view-section h1.region-title{font-size:clamp(24px,6.8vw,36px)}}

.service-diagram{max-width:950px;margin:32px auto}.service-diagram img{width:100%;height:auto;border-radius:16px}.service-diagram figcaption{font-size:14px;color:var(--muted);margin-top:10px}@media(max-width:767px){.service-diagram{margin:24px 0}.service-diagram img{width:100%;height:auto;aspect-ratio:auto}.service-diagram figcaption{font-size:12px}}

.visit-process{max-width:650px;margin:36px auto}.sheet-page{max-width:1000px}.sheet-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.sheet-page label{display:block;line-height:1.8}.sheet-page input[type=text],.sheet-page input[type=date],.sheet-page textarea{display:block;width:100%;min-width:0;border:1px solid #b7c9c8;border-radius:8px;padding:12px;font:inherit;background:#fff}.sheet-table{width:100%;border-collapse:collapse;table-layout:fixed}.sheet-table th,.sheet-table td{padding:12px;border:1px solid #c8d4d2;vertical-align:top}.sheet-table th{background:#f0f5f2}.sheet-table th:first-child{width:22%}.sheet-page .content-section>label{margin:20px 0}.article-layout .prose table{font-size:17px}.article-layout .prose figure img{height:auto}.article-layout .prose h2{scroll-margin-top:100px}
@media(max-width:640px){.sheet-fields{grid-template-columns:1fr}.sheet-table,.sheet-table tbody,.sheet-table tr,.sheet-table th,.sheet-table td{display:block;width:100%!important}.sheet-table thead{display:none}.sheet-table tr{margin-bottom:20px}.sheet-table td:first-of-type:before{content:"聞いた答え";display:block;font-weight:bold}.sheet-table td:last-of-type:before{content:"まだ分からないこと";display:block;font-weight:bold}.article-layout .prose table{font-size:16px}}
@media print{header,footer,.breadcrumbs,#print-sheet,.sheet-page>p:last-child{display:none!important}.sheet-page{max-width:none;padding:0}.sheet-page textarea{min-height:70px}.sheet-page section{break-inside:avoid}.sheet-page input,.sheet-page textarea{border:1px solid #777!important}.sheet-page{font-size:11pt}}

.article-layout h1{max-width:1000px;text-wrap:balance}.article-layout .prose td,.article-layout .prose th{font-size:17px!important}.article-layout .prose p,.article-layout .prose li{font-size:17px}.article-layout .prose .source-note{font-size:16px}@media(max-width:640px){.article-layout .prose td,.article-layout .prose th{font-size:16px!important}}

.sheet-print-value{display:none}@media print{.sheet-page input[type=text],.sheet-page input[type=date],.sheet-page textarea{display:none!important}.sheet-print-value{display:block;white-space:pre-wrap;overflow-wrap:anywhere;min-height:40px;padding:8px;border-bottom:1px solid #777}.sheet-page section{break-inside:auto}.sheet-table tr{break-inside:avoid}}

@media(max-width:640px){.metrics-table,.metrics-table tbody{display:block;width:100%}.metrics-table thead{display:none}.metrics-table tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid #c8d4d2;border-radius:12px;margin:16px 0;background:#fff;padding:12px}.metrics-table td{display:block;width:auto;border:0;padding:8px;font-size:16px!important;overflow-wrap:anywhere}.metrics-table td:before{display:block;font-size:13px;color:#537169}.metrics-table td:nth-child(1):before{content:"都道府県"}.metrics-table td:nth-child(2):before{content:"市区町村"}.metrics-table td:nth-child(3):before{content:"支援の種類"}.metrics-table td:nth-child(4):before{content:"PV"}.metrics-table td:nth-child(5):before{content:"セッション"}}

.count-label{display:inline-block;white-space:nowrap}

.learning-picture{margin:0;text-align:center;max-width:340px}.learning-picture img{display:block;max-width:100%;height:auto;margin:auto}.learning-picture figcaption{font-size:14px;line-height:1.7;color:#5b7069}.regional-hero .learning-picture{max-width:260px}.regional-hero{margin-bottom:32px}.content-section>p{max-width:820px}.content-section>p+p{margin-top:12px}.content-section .plain-list{max-width:850px}.type-hero figure{align-self:center}.reading-note{padding:20px 24px;border-left:4px solid #206455;background:#edf4ec;border-radius:0 12px 12px 0}

.office-map{height:420px;width:100%;border:1px solid #c7d5cf;border-radius:14px;overflow:hidden;background:#e8efea}.office-map iframe{border:0;display:block;width:100%;height:100%}.office-facts{margin:24px 0}@media(max-width:640px){.office-map{height:350px}}

.prose mark{background:#edf0bd;color:inherit;padding:0 .12em}.city-source-list{display:grid;gap:10px;margin:24px 0}.city-source-list details{border:1px solid #c7d4cc;border-radius:12px;background:#fff;padding:16px 20px}.city-source-list summary{font-weight:700;cursor:pointer;color:#185d4a}.city-source-list details p{font-size:17px}.source-list{padding-left:26px}.source-list li{padding:16px 0;border-bottom:1px solid #d4dfd5}.source-list span,.source-list a{display:block;overflow-wrap:anywhere;font-size:16px;line-height:1.8}.source-list strong{font-size:17px}.article-layout .prose .reading-note{border-left:4px solid #28674f;background:#edf4ec;padding:20px}
.simple-steps{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0;margin:24px 0}.simple-steps li{counter-increment:step;border:1px solid #d6e2df;border-radius:16px;padding:24px;background:#f5f9f7}.simple-steps li:before{content:counter(step);display:block;font-size:24px;font-weight:700;color:#1c6255;margin-bottom:12px}.simple-steps strong{font-size:20px}.simple-steps p{margin-bottom:0}@media(max-width:767px){.simple-steps{grid-template-columns:1fr}.simple-steps li{padding:20px}}
main p,main li,main td,main th,main dt,main dd,main figcaption{font-size:max(16px,1em)!important}
main .actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}main .content-section>.button{margin:8px 10px 0 0}
main h1,main h2{text-wrap:balance}
.keep-word{display:inline-block;white-space:nowrap}
.type-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}.type-counts p{border:1px solid var(--line);background:white;padding:18px;border-radius:12px;margin:0}.type-counts strong{display:block;font-size:22px}@media(max-width:767px){.type-counts{grid-template-columns:1fr 1fr}}
.office-facts{display:grid;grid-template-columns:minmax(180px,1fr) 3fr;border-top:1px solid var(--line)}.office-facts dt,.office-facts dd{margin:0;padding:16px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.office-facts dt{background:#edf3ed;font-weight:700}.office-facts dd{background:white}@media(max-width:640px){.office-facts{grid-template-columns:1fr}.office-facts dt{padding:12px 16px;border-bottom:0}.office-facts dd{padding:12px 16px 18px}}
.national-entry.native-search{display:grid;grid-template-columns:1fr 1fr;gap:16px}.national-entry.native-search h3{grid-column:1/-1;margin:0}.national-entry.native-search label{display:flex;flex-direction:column;min-width:0;gap:8px}.national-entry.native-search label:nth-of-type(3),.national-entry.native-search button{grid-column:1/-1}.national-entry.native-search select,.national-entry.native-search input{width:100%;min-width:0}.national-entry.native-search button{min-height:52px;background:var(--green);color:white;border:0;border-radius:10px;font-size:18px;font-weight:700}@media(max-width:767px){.national-entry.native-search{grid-template-columns:1fr}.national-entry.native-search label,.national-entry.native-search button{grid-column:1/-1}}

/* 第5便: 一覧の密度。情報は詳細の原票欄に保持。 */
.compact-card{display:block!important;min-width:0}.compact-card .card-body{padding:18px 20px;display:flex;flex-direction:column;gap:8px;height:100%}.compact-card h3{font-size:20px;line-height:1.5;margin:0}.compact-card .card-region{margin:0;line-height:1.5;color:var(--muted)}.compact-card .card-address,.compact-card .card-hours{margin:0;line-height:1.55}.service-badge{display:inline-block;border:1px solid #b7cebf;border-radius:6px;padding:2px 8px;color:#174e3e;background:#edf4eb;font-weight:700;white-space:nowrap}.compact-card .card-actions{margin-top:auto;padding-top:5px;display:flex;align-items:center;gap:14px}.compact-card .card-actions .button{padding:9px 14px;min-height:44px}.compact-card .pick{font-size:16px;white-space:nowrap}.compact-card .card-region{font-size:16px}.compact-card h3 a{overflow-wrap:anywhere}
@media(max-width:767px){.compact-card .card-body{padding:16px;gap:7px}.compact-card .card-address,.compact-card .card-hours{font-size:16px;line-height:1.5}.compact-card .card-actions{gap:12px;justify-content:space-between}.result-grid{gap:14px}}

.page-summary{border-left:4px solid #44765f;background:#edf3ed;padding:16px 20px;margin:22px 0;max-width:850px;border-radius:0 12px 12px 0}.page-summary ul{margin:0;padding-left:1.2em}.page-summary li{line-height:1.7}.summary-source{margin:10px 0 0;color:#51665b}.related-offices ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0;margin:20px 0}.related-offices li{background:white;border:1px solid var(--line);padding:14px 18px;border-radius:10px}.related-offices li a,.related-offices li span{display:block}.related-offices li a{font-weight:700}.related-offices li span{color:#506359}@media(max-width:767px){.related-offices ul{grid-template-columns:1fr}.page-summary{padding:14px 16px}}

.regional-map{height:520px;isolation:isolate;border:1px solid #bacdbf;border-radius:16px;background:#e9efeb;position:relative;overflow:hidden}.map-fallback{padding:28px}.map-region-controls{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.map-region-controls button{min-height:44px;padding:8px 14px;font-size:16px}.map-region-controls button[aria-pressed=true]{background:#123c30;outline:2px solid #123c30;outline-offset:2px}.region-marker{background:none;border:0}.region-marker>span{display:block;width:80px;background:#fff;border:2px solid #276149;border-radius:20px;color:#194932;text-align:center;font-weight:700;font-size:16px;line-height:26px;box-shadow:0 1px 3px #183d3533}.region-marker:focus>span{outline:3px solid #111;outline-offset:2px}.leaflet-popup-content{min-width:220px;font-size:17px;line-height:1.6}.leaflet-popup-content .button{margin-top:8px}.leaflet-control-attribution{font-size:12px!important}.leaflet-control-zoom a{color:#163c2f!important}.leaflet-container a.leaflet-popup-close-button{font-size:24px}.leaflet-marker-icon:hover{z-index:1000!important}.leaflet-container{font-family:var(--font-body)}@media(max-width:767px){.regional-map{height:480px}.region-marker>span{font-size:16px}.map-region-controls{gap:8px}}

.city-dot>span{width:24px;height:24px;line-height:19px;border-radius:50%;font-size:15px;border:2px solid #fff;background:#256549;color:white;box-shadow:0 1px 4px #163f3690}.leaflet-tooltip{font-size:16px;font-weight:700}.city-dot:focus>span{outline:3px solid #102e24}.regional-map .leaflet-control-zoom a{min-height:32px;width:32px}

main h1,main h2{container-type:inline-size}.keep-word.fit-word{font-size:clamp(16px,calc((100cqw - .1em)/var(--fit-units)),1em)}

.overview-label>span{width:96px;min-height:48px;padding:3px 4px;box-sizing:border-box;line-height:20px;display:grid;place-content:center;background:#fff;border:2px solid #276149;border-radius:10px;font-size:16px;box-shadow:0 1px 4px #193f3540}.overview-label b{font:inherit;font-weight:700;line-height:20px;white-space:nowrap}

.regional-map[data-region-map="national"] .leaflet-top.leaflet-left{top:calc(50% - 42px)}

/* Preserve official-name spaces at inline-block boundaries. */
.keep-word{white-space:pre}

main .keep-word{white-space:pre!important;tab-size:0}

.office-name{margin-bottom:0}.office-name-main{display:block;font-size:clamp(30px,3.5vw,44px);line-height:1.35}.office-service-subtitle{display:block;font-size:22px;font-weight:650;line-height:1.6;margin-top:12px}.office-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:40px}.office-hero .office-work-picture{width:100%;max-width:100%;margin:0}.office-work-picture img{width:100%;max-width:none;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:18px}.office-work-picture figcaption{font-size:16px}
.regional-map[data-region-map="national"]{height:620px;background:#edf4ee}.overview-label>span{width:84px;min-height:44px;padding:2px;line-height:19px;border-radius:9px}.regional-map[data-region-map="national"] .leaflet-top.leaflet-left{top:8px;left:8px}
@media(max-width:767px){.office-hero{grid-template-columns:1fr;gap:24px}.office-name-main{font-size:32px}.office-service-subtitle{font-size:18px;margin-top:10px}.office-hero .office-work-picture{max-width:520px;margin:auto}.regional-map[data-region-map="national"]{height:720px}}

.okinawa-inset{width:140px;background:#fff;border:1px solid #b4c9b9;border-radius:12px;padding:5px;margin:8px!important}.okinawa-mini{height:100px;background:#edf4ee;pointer-events:none}.okinawa-select{width:100%;min-height:36px;margin-top:3px;font-size:16px;border-radius:8px;background:#fff;color:#194932;border:2px solid #276149;font-weight:700}.okinawa-select:focus{outline:3px solid #132e23}

.okinawa-inset button.okinawa-select{color:#fff;background:#23674e;border-color:#23674e}.okinawa-inset .okinawa-mini.leaflet-container{background:#edf4ee}
@media(max-width:767px){.regional-map[data-region-map="national"]{height:600px}}

/* Director 2026-10-16 22:57: phrase boundaries incl Safari. */
h1,h2,h3,button,.btn,.badge,.tag{word-break:keep-all;overflow-wrap:anywhere}

.button,.btn,button{max-width:100%;min-width:0;white-space:normal;flex-wrap:wrap;column-gap:0;word-break:keep-all;overflow-wrap:anywhere}
main h3{container-type:inline-size}

footer .footer-support-links{margin-top:20px;line-height:1.8;color:#fff}footer .footer-support-links a{color:#fff;text-decoration:underline;text-underline-offset:3px;word-break:keep-all;overflow-wrap:anywhere}
