@charset "UTF-8";

/*
  kanri-db 公開ページの共通スタイル。
  デザインの正は reference/views/html-pack/ の3枚（トップ／一覧／詳細）。
  見本は :root を持たずインラインで書かれているため、実値を Root に集約してある
  （対応表は WORKLOG.md）。管理画面は admin.css が別に持つ。

  書き方の規約（CLAUDE.md）
   - モバイルファースト。レスポンシブはセクションごとに完結させる
   - 1クラス1行。!important は使わない
   - ID セレクタでスタイリングしない
*/

/* ==========================================
  Reset
========================================== */
*,*::before,*::after{box-sizing:border-box;}
html,body,h1,h2,h3,h4,p,ul,ol,li,dl,dt,dd,figure,table,th,td,form,fieldset{margin:0;padding:0;}
ul,ol{list-style:none;}
img,svg{max-width:100%;height:auto;vertical-align:middle;}
table{border-collapse:collapse;border-spacing:0;width:100%;}
button,input,select,textarea{font:inherit;color:inherit;}
a{color:var(--c-primary);text-decoration:none;}
a:hover{color:var(--c-primary-hover);text-decoration:underline;}

/* ==========================================
  Root
========================================== */
/*
  値の出どころは reference/views/html-pack/ の3枚（トップ／一覧／詳細）。
  見本は :root を持たずインラインで書かれているため、実値をここへ集約した。
  変数名の対応表は WORKLOG.md に残してある。
*/
:root {
  /* 面と線 */
  --c-bg: #f3f3f2;                /* ページの地。カードは --c-white で浮かせる */
  --c-white: #ffffff;
  --c-surface: #ffffff;
  --c-panel: #f2f8fd;             /* 淡い面（枠付きパネル・職種グループの見出し帯） */
  --c-panel-strong: #e2f0ff;      /* 濃いめの淡色帯（副見出し・フッター地） */
  --c-border: #dfe3e6;            /* カード外周・区切り */
  --c-border-blue: #cfe2f1;       /* 淡色パネルの外周 */
  --c-border-soft: #eceeef;       /* 表の行間など最も細い線 */
  --c-border-light: #eceeef;
  --c-border-strong: #a2aab0;     /* フォーム部品の枠。1px でも輪郭が出る濃さ */

  /* 文字 */
  --c-text: #14212b;
  --c-text-body: #3c5a6b;
  --c-text-sub: #566a76;
  --c-text-mute: #566a76;

  /* 主色（監理団体・サイト全体） */
  --c-primary: #0a6fae;
  --c-primary-hover: #05537f;
  --c-primary-dark: #05537f;
  --c-primary-deep: #083b5c;      /* ヒーローの地 */
  --c-primary-weak: #e8f2fa;      /* ホバー地・選択中のピル */

  /* 強調色（操作を促すボタン・掲載終了などの注意） */
  --c-accent: #b34d05;
  --c-accent-hover: #8f3d04;
  --c-accent-weak: #fdf3e9;
  --c-accent-border: #f0d9c2;
  --c-accent-border-strong: #e6c39b;
  --c-accent-text: #7a4514;

  /* 用語集の制度バッジ（技能実習=紺・特定技能=緑・育成就労=橙・共通/労務=グレー）。
     紺は --c-primary-deep、橙は --c-accent、グレーは既存の灰を流用する。
     緑だけは見本・既存パレットに無いため、ここで1色だけ定義している */
  --c-regime-green: #1a6b47;
  --c-regime-gray-bg: #eef0f1;

  /* 介護★・警告（見本に該当色が無いため強調色系から派生させた） */
  --c-care-bg: #fdf3e9;
  --c-care-border: #e6c39b;
  --c-care-text: #7a4514;
  --c-alert-bg: #fdf3e9;
  --c-alert-border: #e6c39b;

  /* 文字サイズ（見本の 11〜28px を rem に直したもの。基準 16px） */
  --fz-xs: 0.6875rem;   /* 11px */
  --fz-s: 0.75rem;      /* 12px */
  --fz-m: 0.8125rem;    /* 13px */
  --fz-l: 0.875rem;     /* 14px = 本文 */
  --fz-xl: 0.9375rem;   /* 15px */
  --fz-2xl: 1rem;       /* 16px */
  --fz-3xl: 1.125rem;   /* 18px */
  --fz-4xl: 1.25rem;    /* 20px */
  --fz-5xl: 1.5rem;     /* 24px */
  --fz-6xl: 1.75rem;    /* 28px */

  /* 行間 */
  --lh-body: 1.75;
  --lh-tight: 1.45;
  --lh-heading: 1.5;

  /* 余白 */
  --sp-xs: 0.25rem;     /* 4px */
  --sp-s: 0.5rem;       /* 8px */
  --sp-m: 0.75rem;      /* 12px */
  --sp-l: 1rem;         /* 16px */
  --sp-xl: 1.25rem;     /* 20px */
  --sp-2xl: 1.5rem;     /* 24px */
  --sp-3xl: 2rem;       /* 32px */
  --sp-pad: 1rem;       /* 画面端の余白。ブレークポイントで広げる */

  /* 角丸・影 */
  --radius: 8px;
  --radius-s: 4px;
  --radius-pill: 999px;
  --shadow: 0 1px 3px rgba(20, 33, 43, 0.08);
  --shadow-hover: 0 2px 10px rgba(10, 111, 174, 0.14);

  /* 寸法 */
  --w-container: 1232px;
  --w-aside: 296px;
  --w-aside-wide: 320px;
  --h-header: 76px;
  --h-hero: 160px;
  --h-control: 44px;
  --h-header-sm: 56px;            /* スマホのヘッダーは1行56px（hero-v3） */

  /* ヒーロー（hero-v3）。既存の変数と重複するものは足していない */
  --c-hero-base: #0b4f9e;
  --c-hero-ink: #ffffff;
  --c-hero-label: #a8d4f5;
  --c-hero-meta: #cfe6fb;
  --c-hero-rule: rgba(168, 212, 245, 0.28);
  /*
    背景画像。CSS内の相対URLはこのファイル（/assets/css/kanri.css）から解決されるので、
    ../img/ と書けば BASE_PATH が変わっても追従する（先頭 / のルート相対にはしない）。
    画像の差し替えは .c-hero--{キー} の修飾クラスで行う。インラインstyleは使わない
  */
  --hero-image: url(../img/hero2.png);
  --hero-pos-sp: right;           /* スマホは右寄せ。左半分は幕（scrim）で沈める */
  --hero-scrim-sp: linear-gradient(100deg, rgba(4, 40, 84, 0.94) 0%, rgba(4, 40, 84, 0.87) 42%, rgba(6, 58, 116, 0.48) 76%, rgba(8, 72, 140, 0.16) 100%);
  --hero-scrim-pc: linear-gradient(90deg, rgba(4, 40, 84, 0.93) 0%, rgba(4, 40, 84, 0.82) 30%, rgba(6, 58, 116, 0.42) 52%, rgba(8, 72, 140, 0) 70%);

  /*
    フォントはサイト共通で1スタック。Webフォントは読み込まない
    （見本は Google Fonts の Noto Sans JP を読んでいるが、指示により端末のフォントで組む）
  */
  --font-base: "Noto Sans JP", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "Meiryo", "MS P Gothic", "ＭＳ Ｐゴシック", "Osaka", "Helvetica", "Arial", sans-serif;
  --font-heading: var(--font-base);
  --font-sans: var(--font-base);
}

/* ==========================================
  Base
========================================== */
body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-base);font-size:var(--fz-l);line-height:var(--lh-body);letter-spacing:0.01em;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:var(--lh-heading);text-wrap:pretty;}
button,input,select,textarea{font-family:var(--font-base);}
strong{font-weight:700;}
:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px;}
.l-container{max-width:var(--w-container);margin:0 auto;padding:var(--sp-l) var(--sp-pad) var(--sp-3xl);}
.l-container--narrow{max-width:860px;}
.l-main{min-height:50vh;}
/* 目には出さず読み上げにだけ渡すテキスト（アイコンだけのリンクの補足など） */
.u-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
/* アイコンは行の高さを変えないよう、常に文字と同じベースラインで扱う */
.ti{display:inline-block;line-height:1;vertical-align:-0.125em;}
@media (min-width: 768px) {
  :root{--sp-pad:1.5rem;--h-hero:200px;}
  .l-container{padding:var(--sp-2xl) var(--sp-pad) 2.5rem;}
}
@media (min-width: 1024px) {
  :root{--sp-pad:2rem;}
}

/* ==========================================
  Columns（本文＋サイドバーの2段組）
========================================== */
.l-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2xl);align-items:start;}
.l-columns__main{min-width:0;display:flex;flex-direction:column;gap:var(--sp-l);}
.l-columns__aside{min-width:0;display:flex;flex-direction:column;gap:var(--sp-l);}
@media (min-width: 1024px) {
  .l-columns{grid-template-columns:minmax(0,1fr) var(--w-aside);}
  .l-columns--wide-aside{grid-template-columns:minmax(0,1fr) var(--w-aside-wide);}
  .l-columns__aside{position:sticky;top:var(--sp-l);}
}

/* ==========================================
  Topbar
========================================== */
/*
  スマホでは出さない（ファーストビューをヘッダー→ヒーロー→入口→検索の4ブロックに絞る）。
  中身は消していないので、768px以上ではこれまでどおり出る。
*/
.l-topbar{display:none;background:var(--c-panel);color:var(--c-text-sub);font-size:var(--fz-s);border-bottom:1px solid var(--c-border-blue);}
.l-topbar__inner{max-width:var(--w-container);margin:0 auto;padding:var(--sp-xs) var(--sp-pad);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-xs) var(--sp-m);min-height:2rem;}
.l-topbar__links{display:flex;align-items:center;gap:var(--sp-m);}
.l-topbar a{color:var(--c-primary-dark);}
.l-topbar__sep{color:var(--c-border-strong);}
.l-topbar__update{display:flex;align-items:center;gap:var(--sp-xs);color:var(--c-text-sub);letter-spacing:0.02em;}
@media (min-width: 768px) {
  .l-topbar{display:block;}
}

/* ==========================================
  Header
========================================== */
/*
  スマホは1行56px（ロゴ＋検索＋メニュー）。ナビはドロワーに入れる。
  ドロワーを絶対配置で吊るすため、ヘッダーが位置の基準になる。
*/
.l-header{position:relative;z-index:20;background:var(--c-white);border-bottom:1px solid var(--c-border);}
.l-header__inner{max-width:var(--w-container);margin:0 auto;padding:0 var(--sp-pad);display:flex;align-items:center;gap:var(--sp-s);height:var(--h-header-sm);}
.l-header__brand{flex:none;display:block;line-height:0;}
.l-header__brand:hover{text-decoration:none;}
/* 高さで決めて幅は原寸なり。画像を差し替えても縦横比が崩れない */
.l-header__logo{display:block;height:40px;width:auto;object-fit:contain;}
.l-header__actions{margin-left:auto;display:flex;align-items:center;gap:2px;}
.l-header__btn{flex:none;display:flex;align-items:center;justify-content:center;width:var(--h-control);height:var(--h-control);padding:0;border:0;border-radius:var(--radius-s);background:none;color:var(--c-text-body);font-size:22px;line-height:1;cursor:pointer;}
.l-header__btn:hover{background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.l-nav{display:none;}
.l-nav__list{display:flex;flex-wrap:wrap;gap:var(--sp-xs);}
.l-nav__link{display:flex;align-items:center;gap:var(--sp-xs);padding:6px 8px;border-radius:var(--radius-s);font-size:var(--fz-m);font-weight:500;color:var(--c-text);white-space:nowrap;}
.l-nav__link:hover{background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.l-nav__link.is-current{background:var(--c-primary);color:var(--c-white);}
.l-nav__link.is-current:hover{background:var(--c-primary-hover);color:var(--c-white);}
/*
  768〜1023px はナビ5本＋ロゴが1行に収まらないため、ロゴと文字は小さいまま出す。
  hero-v3 の確定値（ロゴ186px・14px）は1024px以上で当てる
*/
@media (min-width: 768px) {
  .l-header__inner{height:var(--h-header);gap:var(--sp-m);}
  /*
    ロゴはナビ5本と1行に収まる高さまで。768pxの内寸720pxに対しナビが537px必要で、
    ロゴに使えるのは183px＝高さ54pxまで。余裕を見て48pxにしている
    （62pxだとロゴ208pxで24px溢れる。実測）
  */
  .l-header__logo{height:48px;}
  .l-header__btn{display:none;}
  .l-nav{display:block;margin-left:auto;}
  .l-nav__list{flex-wrap:nowrap;}
  .l-drawer{display:none;}
}
@media (min-width: 1024px) {
  .l-header__inner{gap:var(--sp-3xl);}
  .l-header__logo{height:62px;}
  .l-nav__link{padding:8px 14px;font-size:var(--fz-l);}
}

/* ==========================================
  Drawer（スマホのメニュー）
========================================== */
/* JSが無いと開かない。同じ導線はフッターにも必ず残しておくこと */
.l-drawer{position:absolute;left:0;right:0;top:100%;background:var(--c-white);border-bottom:1px solid var(--c-border);box-shadow:0 8px 16px rgba(20, 33, 43, 0.12);}
.l-drawer[hidden]{display:none;}
.l-drawer__list{padding:var(--sp-s) var(--sp-pad) var(--sp-m);}
.l-drawer__link{display:flex;align-items:center;gap:10px;padding:12px 6px;border-bottom:1px solid var(--c-border-soft);font-size:var(--fz-l);color:var(--c-text);}
.l-drawer__link:hover{color:var(--c-primary-dark);}
.l-drawer__link .ti{font-size:19px;color:var(--c-primary);}
.l-drawer__meta{display:flex;align-items:center;gap:6px;padding:var(--sp-m) var(--sp-pad);background:var(--c-panel);font-size:var(--fz-s);color:var(--c-text-sub);}

/* ==========================================
  Breadcrumb
========================================== */
.l-pagehead{background:var(--c-white);border-bottom:1px solid var(--c-border);}
.c-breadcrumb{max-width:var(--w-container);margin:0 auto;padding:var(--sp-s) var(--sp-pad);font-size:var(--fz-m);color:var(--c-text-sub);}
.c-breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs);}
.c-breadcrumb__item{display:flex;align-items:center;gap:var(--sp-xs);}
.c-breadcrumb__sep{color:var(--c-text-sub);font-size:0.875em;}

/* ==========================================
  Hero（ヒーロー帯）
========================================== */
/*
  背景は .c-hero__bg（画像）と .c-hero__scrim（幕）の2枚重ね。
  1枚の background に畳まないのは、スマホとPCで幕の角度だけを差し替えるため。
  画像を出さないページは .c-hero--plain を付けて地色だけにする（旧 .c-hero--image は廃止）
*/
.c-hero{position:relative;display:flex;align-items:center;min-height:206px;background:var(--c-hero-base);overflow:hidden;}
.c-hero__bg{position:absolute;inset:0;background-image:var(--hero-image);background-size:cover;background-position:var(--hero-pos-sp) center;}
.c-hero__scrim{position:absolute;inset:0;background:var(--hero-scrim-sp);}
.c-hero--plain .c-hero__bg{display:none;}
.c-hero--plain .c-hero__scrim{background:none;}
/* 画像が無いページで青い余白を広げない。高さは内容なりにする */
.c-hero--plain{min-height:0;}
/* 背景画像の差し替え。partials/hero.php の $bgFiles と対で足すこと */
.c-hero--shien{--hero-image:url(../img/hero1.png);}
.c-hero__inner{position:relative;width:100%;max-width:var(--w-container);margin:0 auto;padding:18px var(--sp-pad) 17px;}
.c-hero__body{max-width:266px;}
.c-hero__title{margin:0;font-size:var(--fz-2xl);font-weight:700;line-height:1.5;letter-spacing:0.02em;color:var(--c-hero-ink);}
/* 折り返す位置はテンプレートの span で決め打ちする（端末幅で泣き別れさせない） */
.c-hero__title span{display:block;white-space:nowrap;}
.c-hero__lead{display:none;margin:var(--sp-s) 0 0;font-size:var(--fz-l);line-height:1.7;color:var(--c-hero-meta);}
.c-hero__stats{margin-top:11px;}
.c-hero__stat{display:flex;align-items:baseline;gap:0.45em;padding:4px 0;color:var(--c-hero-ink);white-space:nowrap;}
.c-hero__stat + .c-hero__stat{border-top:1px solid var(--c-hero-rule);}
.c-hero__stat-label{flex:none;width:6.6em;font-size:var(--fz-xs);line-height:1.4;letter-spacing:0.02em;color:var(--c-hero-label);}
.c-hero__stat-value{flex:none;min-width:3.5em;text-align:right;font-size:1.5rem;font-weight:700;line-height:1.1;letter-spacing:-0.01em;font-variant-numeric:tabular-nums;}
.c-hero__stat-unit{font-size:var(--fz-xs);}
/* スマホは主役2つに絞る。3つ目（両方に掲載）は768px以上でだけ出す */
.c-hero__stat--both{display:none;}
.c-hero__source{margin:10px 0 0;display:flex;align-items:center;gap:0.4em;font-size:var(--fz-xs);line-height:1.6;letter-spacing:0.02em;color:var(--c-hero-meta);}
.c-hero__source .ti{flex:none;font-size:1.1em;}
@media (min-width: 768px) {
  /*
    width:100% は必須。aspect-ratio と min-height を併せると、
    幅1050px未満のとき Chrome が「高さ300px × 7:2」から幅1050pxを逆算して横に溢れる
  */
  .c-hero{width:100%;aspect-ratio:7 / 2;min-height:300px;max-height:500px;}
  .c-hero--plain{aspect-ratio:auto;min-height:0;}
  .c-hero__bg{background-position:right center;}
  .c-hero__scrim{background:var(--hero-scrim-pc);}
  .c-hero__inner{padding:var(--sp-2xl) var(--sp-pad);}
  .c-hero__body{max-width:31em;}
  .c-hero__title{font-size:var(--fz-6xl);line-height:1.4;}
  /* PCでは1行に収まれば1行。折り返すときは span の切れ目で折る（「データベ／ース」を防ぐ） */
  .c-hero__title span{display:inline;white-space:nowrap;}
  .c-hero__lead{display:block;}
  .c-hero__stats{margin-top:var(--sp-xl);display:flex;align-items:stretch;gap:var(--sp-2xl);}
  .c-hero__stat{flex-direction:column;align-items:flex-start;gap:0;padding:0;}
  .c-hero__stat + .c-hero__stat{padding-left:var(--sp-2xl);border-top:0;border-left:1px solid rgba(168, 212, 245, 0.42);}
  .c-hero__stat-label{width:auto;font-size:var(--fz-m);}
  .c-hero__stat-value{min-width:0;text-align:left;font-size:2.25rem;}
  .c-hero__stat-unit{font-size:var(--fz-m);}
  .c-hero__stat--both{display:flex;}
  .c-hero__source{margin-top:var(--sp-l);font-size:var(--fz-m);}
}

/* ==========================================
  Entry（ヒーロー直下の入口タイル2枚）
========================================== */
.c-entry{max-width:var(--w-container);margin:0 auto;padding:12px var(--sp-pad) 0;display:flex;flex-wrap:nowrap;gap:9px;}
.c-entry__item{flex:1 1 0;min-width:0;padding:12px 6px 10px;background:var(--c-white);border:1px solid var(--c-border);border-radius:10px;text-align:center;color:var(--c-text);}
.c-entry__item:hover{border-color:var(--c-primary);box-shadow:var(--shadow-hover);color:var(--c-text);text-decoration:none;}
.c-entry__icon{font-size:25px;line-height:1;color:var(--c-primary);}
.c-entry__name{display:block;margin-top:4px;font-size:var(--fz-m);font-weight:700;line-height:1.4;white-space:nowrap;}
.c-entry__sub{display:block;font-size:var(--fz-xs);line-height:1.5;color:var(--c-text-sub);}
@media (min-width: 768px) {
  .c-entry{padding-top:var(--sp-2xl);gap:var(--sp-l);}
  .c-entry__item{padding:var(--sp-xl) var(--sp-l);}
  .c-entry__name{font-size:var(--fz-2xl);}
  .c-entry__sub{font-size:var(--fz-m);}
}

/* ==========================================
  Panel（見出し帯つきの箱。見本の共通コンテナ）
========================================== */
.c-panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
.c-panel--flat{overflow:visible;}
.c-panel--mark{border:2px solid var(--c-primary);}
.c-panel__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s) var(--sp-m);padding:var(--sp-m) var(--sp-l);background:var(--c-primary);color:var(--c-white);}
.c-panel__head--soft{background:var(--c-panel-strong);border-bottom:1px solid var(--c-border-blue);color:var(--c-primary-dark);}
.c-panel__title{margin:0;display:flex;align-items:center;gap:var(--sp-s);font-size:var(--fz-2xl);font-weight:700;color:inherit;}
.c-panel__note{font-size:var(--fz-m);font-weight:500;color:inherit;opacity:0.92;}
.c-panel__body{padding:var(--sp-l);}
@media (min-width: 768px) {
  .c-panel__head{padding:14px var(--sp-xl);}
  .c-panel__title{font-size:var(--fz-3xl);}
  .c-panel__body{padding:var(--sp-xl);}
}

/* ==========================================
  Section（下線見出しの箱）
========================================== */
.p-section{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-l);}
.p-section__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-xs) var(--sp-m);padding-bottom:var(--sp-m);border-bottom:2px solid var(--c-primary);}
.p-section__title{display:flex;align-items:center;gap:var(--sp-s);font-size:var(--fz-3xl);font-weight:700;color:var(--c-text);}
.p-section__title .ti{color:var(--c-primary);}
.p-section__note{font-size:var(--fz-m);font-weight:400;color:var(--c-text-sub);}
.p-section__note--cross{display:block;margin-top:var(--sp-s);}
.p-section__note--foot{display:block;margin-top:var(--sp-m);}
.p-section__more{margin-top:var(--sp-m);font-size:var(--fz-l);font-weight:500;}
.p-section__more a{display:inline-flex;align-items:center;gap:var(--sp-xs);}
.p-section > * + *{margin-top:var(--sp-l);}
.p-section--search{padding:0;border:0;background:none;box-shadow:none;}
@media (min-width: 768px) {
  .p-section{padding:var(--sp-xl);}
}

/* ==========================================
  Badge / Tag / Flag / Chip
========================================== */
.c-badge{display:inline-flex;align-items:center;gap:var(--sp-xs);height:24px;padding:0 8px;border-radius:var(--radius-s);font-size:var(--fz-s);font-weight:700;line-height:1;white-space:nowrap;}
.c-badge--regime{background:var(--c-primary);color:var(--c-white);}
.c-badge--ippan{background:var(--c-primary);color:var(--c-white);}
.c-badge--tokutei{background:var(--c-panel-strong);border:1px solid var(--c-border-blue);color:var(--c-primary-dark);}
.c-badge--shien{background:var(--c-panel-strong);border:1px solid var(--c-border-blue);color:var(--c-primary-dark);}
.c-badge--dual{background:var(--c-accent-weak);border:1px solid var(--c-accent-border-strong);color:var(--c-accent-text);}
/* 監理支援機関（育成就労）の許可。用語集の制度バッジと同じく育成就労は橙で統一する */
.c-badge--ikusei{background:var(--c-accent);color:var(--c-white);}
.c-badge--care{background:var(--c-care-bg);border:1px solid var(--c-care-border);color:var(--c-care-text);}
.c-badge--care-ok{background:var(--c-panel);border:1px solid var(--c-border-blue);color:var(--c-primary-dark);}
.c-badge--gone{background:#eef0f1;border:1px solid var(--c-border-strong);color:var(--c-text-sub);}
.c-badge--lg{height:26px;padding:0 10px;font-size:var(--fz-m);}
/* 用語集の制度バッジ。制度の混同を防ぐため、必ず色で区別する（CLAUDE.md） */
.c-badge--gl-jisshu{background:var(--c-primary-deep);color:var(--c-white);}
.c-badge--gl-tokutei{background:var(--c-regime-green);color:var(--c-white);}
.c-badge--gl-ikusei{background:var(--c-accent);color:var(--c-white);}
.c-badge--gl-common{background:var(--c-regime-gray-bg);border:1px solid var(--c-border-strong);color:var(--c-text-sub);}
.c-badge--gl-roumu{background:var(--c-regime-gray-bg);border:1px solid var(--c-border-strong);color:var(--c-text-sub);}
.c-tag{display:inline-flex;align-items:center;gap:var(--sp-xs);padding:1px 8px;border-radius:3px;background:var(--c-panel);border:1px solid var(--c-border-blue);font-size:var(--fz-m);color:var(--c-text);white-space:nowrap;}
.c-tag--warn{background:var(--c-care-bg);border-color:var(--c-care-border);color:var(--c-care-text);}
.c-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) 6px;min-width:0;}
.c-chip{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:3px;background:var(--c-panel);border:1px solid var(--c-border-blue);font-size:var(--fz-m);line-height:1.6;color:var(--c-text);}
.c-chip--link{color:var(--c-primary-dark);}
.c-chip--link:hover{background:var(--c-primary-weak);border-color:var(--c-primary);text-decoration:none;}
.c-chips__more{font-size:var(--fz-m);color:var(--c-text-sub);}
/* 「他◯件」は詳細ページへのリンク。灰色のままだと押せると分からない */
a.c-chips__more{color:var(--c-primary-dark);}
a.c-chips__more:hover{text-decoration:underline;}
.c-chips__none{font-size:var(--fz-m);color:var(--c-text-sub);}
.c-chip__count{margin-left:5px;font-size:var(--fz-s);color:var(--c-text-sub);font-variant-numeric:tabular-nums;}
.c-flags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) 6px;min-width:0;}
.c-flags__more{font-size:var(--fz-m);color:var(--c-text-sub);}
.c-flag{display:inline-flex;align-items:center;gap:5px;padding:1px 8px 1px 4px;border-radius:3px;background:var(--c-panel);border:1px solid var(--c-border-blue);white-space:nowrap;}
.c-flag__img{flex:none;width:20px;height:15px;border:1px solid var(--c-border);border-radius:2px;object-fit:cover;}
.c-flag__name{font-size:var(--fz-m);}
/*
  言語リンクに添える国旗（16×12）。白い旗（日本など）が地に溶けないよう1pxの枠を付ける。
  絵文字は使わない（Windows Chrome で化ける）。出し分けは app/lib/LangFlags.php
*/
.c-langflag{flex:none;width:16px;height:12px;border:1px solid var(--c-border-strong);border-radius:2px;object-fit:cover;}
.c-code{flex:none;padding:2px 5px;border-radius:3px;background:var(--c-panel-strong);color:var(--c-primary-dark);font-size:var(--fz-xs);font-weight:700;letter-spacing:0.04em;line-height:1.4;}
.c-pill{display:inline-flex;align-items:center;gap:var(--sp-s);min-height:34px;padding:0 14px;border:1px solid var(--c-border-strong);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-l);font-weight:500;color:var(--c-text);white-space:nowrap;}
.c-pill:hover{border-color:var(--c-primary);background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.c-pill.is-active{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-white);}
.c-pill__count{font-size:var(--fz-m);color:var(--c-text-sub);}
.c-pill.is-active .c-pill__count{color:rgba(255,255,255,0.85);}

/* ==========================================
  Button
========================================== */
.c-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-s);min-height:44px;padding:0 24px;border:0;border-radius:var(--radius-pill);background:var(--c-accent);color:var(--c-white);font-size:var(--fz-xl);font-weight:700;line-height:1;cursor:pointer;}
.c-btn:hover{background:var(--c-accent-hover);color:var(--c-white);text-decoration:none;}
.c-btn--primary{background:var(--c-primary);}
.c-btn--primary:hover{background:var(--c-primary-hover);}
.c-btn--ghost{background:var(--c-white);border:1px solid var(--c-primary);color:var(--c-primary-dark);font-weight:700;}
.c-btn--ghost:hover{background:var(--c-primary-weak);color:var(--c-primary-dark);}
.c-btn--wide{width:100%;}
.c-btn--sm{min-height:38px;padding:0 16px;font-size:var(--fz-l);}
@media (min-width: 768px) {
  .c-btn{min-height:52px;padding:0 40px;font-size:var(--fz-2xl);}
  .c-btn--sm{min-height:38px;padding:0 16px;font-size:var(--fz-l);}
}

/* ==========================================
  Search form（検索カード）
========================================== */
.c-search{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
.c-search__title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) var(--sp-s);margin:0;padding:var(--sp-m) var(--sp-l);background:var(--c-primary);color:var(--c-white);font-size:var(--fz-2xl);font-weight:700;}
.c-search__title-note{font-size:var(--fz-m);font-weight:500;}
.c-search--shien .c-search__title{background:var(--c-panel-strong);border-bottom:1px solid var(--c-border-blue);color:var(--c-primary-dark);}
/* キーワード行はスマホでも1行（入力＋ボタン）。ラベルは placeholder と aria-label に譲る */
.c-search__main{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--sp-s);padding:var(--sp-l) var(--sp-l) 0;}
.c-search__main .c-search__label{display:none;}
.c-search__main .c-search__submit{padding:0 15px;font-size:var(--fz-l);}
.c-search__input{flex:1 1 auto;width:100%;min-width:0;height:var(--h-control);padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-s);background:var(--c-white);font-size:var(--fz-l);}
.c-search__submit{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-s);min-height:var(--h-control);padding:0 24px;border:0;border-radius:var(--radius-pill);background:var(--c-accent);color:var(--c-white);font-size:var(--fz-xl);font-weight:700;white-space:nowrap;cursor:pointer;}
.c-search__submit:hover{background:var(--c-accent-hover);}
.c-search__filters{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-m);padding:var(--sp-l);}
.c-search__field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.c-search__field--check{flex-direction:row;align-items:center;gap:var(--sp-s);}
.c-search__label{display:flex;align-items:center;gap:5px;font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}
.c-search__label--inline{font-weight:400;color:var(--c-text);cursor:pointer;}
.c-search__select{width:100%;height:var(--h-control);padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-s);background:var(--c-white);font-size:var(--fz-l);text-overflow:ellipsis;}
.c-search__check{width:16px;height:16px;accent-color:var(--c-primary);flex:none;}
.c-search__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-l);padding:0 var(--sp-l) var(--sp-l);}
.c-search__submit--wide{flex:1;min-width:200px;}
.c-search__clear{font-size:var(--fz-m);color:var(--c-text-sub);}
.c-search--compact .c-search__filters{gap:var(--sp-s);}
@media (min-width: 640px) {
  .c-search__main .c-search__submit{padding:0 24px;font-size:var(--fz-xl);}
  .c-search__filters{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media (min-width: 1024px) {
  .c-search__filters{grid-template-columns:repeat(3, minmax(0,1fr));padding:var(--sp-xl);}
  .c-search__main{padding:var(--sp-xl) var(--sp-xl) 0;}
  .c-search__actions{padding:0 var(--sp-xl) var(--sp-xl);}
  .c-search__submit--wide{flex:none;}
  /* サイドバーに入れたときは1列に戻す */
  .l-columns__aside .c-search__filters{grid-template-columns:minmax(0,1fr);padding:var(--sp-l);}
  .l-columns__aside .c-search__main{flex-direction:column;align-items:stretch;padding:var(--sp-l) var(--sp-l) 0;}
  .l-columns__aside .c-search__actions{padding:0 var(--sp-l) var(--sp-l);}
}

/* ==========================================
  Refine（検索結果の追加絞り込み）
========================================== */
/*
  選択肢は常にHTMLへ出す。スマホの折りたたみはCSSの display だけで行い、
  JSで中身を差し込まない（隠したコンテンツはGoogleに存在しないのと同じになる）。
  マークアップは app/Views/partials/refine.php
*/
.c-refine{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-m) var(--sp-l);}
.c-refine__title{display:flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-2xl);font-weight:700;}
.c-refine__title .ti{color:var(--c-primary);}
.c-refine__chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:var(--sp-s);}
.c-refine__chips-label{font-size:var(--fz-s);font-weight:500;color:var(--c-text-sub);}
.c-refine__chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-height:30px;padding:0 6px 0 10px;border:1px solid var(--c-primary);border-radius:var(--radius-pill);background:var(--c-primary-weak);font-size:var(--fz-m);line-height:1.4;color:var(--c-primary-dark);}
.c-refine__chip:hover{background:var(--c-primary);color:var(--c-white);text-decoration:none;}
.c-refine__chip-text{min-width:0;overflow-wrap:anywhere;}
.c-refine__chip-x{display:flex;align-items:center;flex:none;font-size:15px;opacity:0.75;}
.c-refine__clear{display:inline-flex;align-items:center;gap:4px;font-size:var(--fz-m);color:var(--c-text-sub);}
.c-refine__switch{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.c-refine__label{display:flex;align-items:center;justify-content:center;gap:var(--sp-s);min-height:44px;margin-top:var(--sp-s);padding:0 var(--sp-l);border:1px solid var(--c-primary);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);cursor:pointer;}
.c-refine__caret{transition:transform 0.15s;}
.c-refine__switch:checked ~ .c-refine__label .c-refine__caret{transform:rotate(180deg);}
.c-refine__switch:focus-visible ~ .c-refine__label{outline:3px solid var(--c-accent);outline-offset:2px;}
.c-refine__body{display:none;margin-top:var(--sp-m);}
.c-refine__switch:checked ~ .c-refine__body{display:block;}
.c-refine__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-m);}
.c-refine__field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.c-refine__field-label{display:flex;align-items:center;gap:5px;font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}
.c-refine__select{width:100%;height:var(--h-control);padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-s);background:var(--c-white);font-size:var(--fz-l);text-overflow:ellipsis;}
.c-refine__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-m);margin-top:var(--sp-m);}
.c-refine__submit{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-s);min-height:var(--h-control);padding:0 20px;border:0;border-radius:var(--radius-pill);background:var(--c-accent);color:var(--c-white);font-size:var(--fz-l);font-weight:700;white-space:nowrap;cursor:pointer;}
.c-refine__submit:hover{background:var(--c-accent-hover);}
@media (min-width: 640px) {
  .c-refine__grid{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media (min-width: 768px) {
  /* PCは常に開いた状態。折りたたみのスイッチは出さない */
  .c-refine{padding:var(--sp-l) var(--sp-xl);}
  .c-refine__label{display:none;}
  .c-refine__body{display:block;}
}

/* ==========================================
  Card（一覧カード）
========================================== */
.c-cards{display:flex;flex-direction:column;gap:var(--sp-s);}
.c-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-m) var(--sp-l);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-s);align-items:center;}
.c-card:hover{border-color:var(--c-primary);box-shadow:var(--shadow-hover);}
.c-card--inactive{background:#fafafa;border-style:dashed;}
.c-card__body{min-width:0;display:flex;flex-direction:column;gap:3px;}
.c-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs);}
.c-card__name{margin:0;font-size:var(--fz-xl);font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
.c-card__name a{color:var(--c-text);}
.c-card__name a:hover{color:var(--c-primary-dark);}
.c-card__name-en{font-size:var(--fz-m);color:var(--c-text-sub);}
.c-card__notice{font-size:var(--fz-m);color:var(--c-accent-text);background:var(--c-accent-weak);border:1px solid var(--c-accent-border);border-radius:var(--radius-s);padding:2px 8px;}
.c-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) var(--sp-l);font-size:var(--fz-m);color:var(--c-text-body);line-height:var(--lh-tight);}
.c-card__meta span{display:flex;align-items:center;gap:5px;}
.c-card__meta .ti{color:var(--c-text-sub);}
.c-card__sep{display:none;}
.c-card__data{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px var(--sp-s);align-items:baseline;font-size:var(--fz-m);}
.c-card__dt{display:flex;align-items:center;gap:5px;font-size:var(--fz-s);font-weight:500;color:var(--c-text-sub);}
.c-card__dd{min-width:0;}
.c-card__more{display:flex;}
.c-card__link{display:flex;align-items:center;justify-content:center;gap:var(--sp-xs);width:100%;height:40px;border-radius:var(--radius-pill);background:var(--c-primary);color:var(--c-white);font-size:var(--fz-l);font-weight:700;}
.c-card__link:hover{background:var(--c-primary-hover);color:var(--c-white);text-decoration:none;}
@media (min-width: 768px) {
  .c-card{grid-template-columns:minmax(0,1fr) 150px;gap:14px;}
  .p-org__name{font-size:var(--fz-5xl);}
  .p-listhead__title{font-size:var(--fz-4xl);}
}

/* ==========================================
  Facets（リンク型の絞り込み）
========================================== */
.c-facets{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-m) var(--sp-l);display:flex;flex-direction:column;gap:var(--sp-s);}
.c-facets__group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) var(--sp-s);}
.c-facets__label{display:flex;align-items:center;gap:5px;font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}
.c-facets__list{display:flex;flex-wrap:wrap;gap:6px;}
.c-facet{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-m);color:var(--c-text);}
.c-facet:hover{border-color:var(--c-primary);background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.c-facet.is-active{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-white);}
.c-facet__count{margin-left:6px;font-size:var(--fz-s);color:var(--c-text-sub);}
.c-facet.is-active .c-facet__count{color:var(--c-white);}
/* 絞り込みの選択肢はラジオ（GETフォーム）。リンクにすると絞り込みURLがクロールされるため（2026-10 SEO改修）。
   ラジオ本体は見えなくし、ラベルをチップとして見せる。選択中の見た目は :checked で切り替える */
.c-facet__input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
label.c-facet{cursor:pointer;}
.c-facet__input:checked + .c-facet{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-white);}
.c-facet__input:checked + .c-facet .c-facet__count{color:var(--c-white);}
.c-facet__input:not(:checked) + .c-facet.is-active{background:var(--c-white);border-color:var(--c-border-strong);color:var(--c-text);}
.c-facet__input:not(:checked) + .c-facet.is-active .c-facet__count{color:var(--c-text-sub);}
.c-facet__input:focus-visible + .c-facet{outline:2px solid var(--c-primary);outline-offset:2px;}
@media (min-width: 768px) {
  .c-facets{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--sp-s) var(--sp-xl);}
}

/* ==========================================
  List filter（一覧のフィルタ一式：タブ＋絞り込み＋並び順）
  スマホ390px幅でこの塊を200px以内に収める。1件目のカードとPR枠を
  ファーストビューに出すため（CLAUDE.md「一覧ページのUI規約」）
========================================== */
.c-listfilter{display:flex;flex-direction:column;gap:var(--sp-s);}
.c-listfilter__row{display:flex;flex-direction:column;gap:var(--sp-s);}

/* 機関種別タブ：制度名（小）＋機関名（大）の2段固定。どちらの行も折り返さない */
.c-listfilter__tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;border-bottom:1px solid var(--c-border);}
.c-ftab{display:flex;flex-direction:column;justify-content:center;gap:1px;min-height:48px;padding:4px var(--sp-s);border:1px solid transparent;border-bottom:0;border-radius:var(--radius-s) var(--radius-s) 0 0;text-align:center;color:var(--c-text-sub);}
.c-ftab:hover{background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.c-ftab.is-current{background:var(--c-white);border-color:var(--c-border);color:var(--c-primary-dark);margin-bottom:-1px;}
.c-ftab__regime{display:block;font-size:11px;line-height:1.2;white-space:nowrap;color:var(--c-text-sub);}
.c-ftab__name{display:flex;align-items:center;justify-content:center;gap:4px;font-size:clamp(13px,3.6vw,15px);line-height:1.2;font-weight:700;white-space:nowrap;}
.c-ftab.is-current .c-ftab__regime{color:var(--c-primary-dark);}
.c-ftab .ti{flex:none;}

/* 絞り込みアコーディオン（details/summary・JS不要） */
.c-filterbox{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);}
.c-filterbox__summary{display:flex;align-items:center;gap:var(--sp-s);min-height:44px;padding:0 var(--sp-m);font-size:var(--fz-m);cursor:pointer;list-style:none;}
.c-filterbox__summary::-webkit-details-marker{display:none;}
.c-filterbox__head{display:flex;align-items:center;gap:5px;flex:none;font-weight:700;color:var(--c-text);}
.c-filterbox__state{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--c-text-sub);}
.c-filterbox__caret{flex:none;color:var(--c-text-sub);transition:transform 0.15s;}
.c-filterbox[open] .c-filterbox__caret{transform:rotate(180deg);}
.c-filterbox__body{display:flex;flex-direction:column;gap:var(--sp-s);padding:0 var(--sp-m) var(--sp-m);border-top:1px solid var(--c-border-soft);}
.c-filterbox__group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) var(--sp-s);padding-top:var(--sp-s);}
.c-filterbox__label{display:flex;align-items:center;gap:5px;font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}
.c-filterbox__list{display:flex;flex-wrap:wrap;gap:6px;}
.c-filterbox__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);padding-top:var(--sp-s);border-top:1px solid var(--c-border-soft);}
.c-filterbox__check{width:16px;height:16px;accent-color:var(--c-primary);}
.c-filterbox__checklabel{font-size:var(--fz-m);color:var(--c-text);cursor:pointer;}
.c-filterbox__apply{min-height:30px;padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-m);cursor:pointer;}
.c-filterbox__apply:hover{border-color:var(--c-primary);color:var(--c-primary-dark);}

/* 並び順：select 1つ。ボタン列に戻さない */
.c-sort{display:flex;align-items:center;gap:var(--sp-s);min-height:40px;}
.c-sort__label{display:flex;align-items:center;gap:4px;flex:none;font-size:11px;color:var(--c-text-sub);}
.c-sort__select{flex:1;min-width:0;height:34px;padding:0 var(--sp-s);border:1px solid var(--c-border-strong);border-radius:var(--radius-s);background:var(--c-white);font-size:var(--fz-m);color:var(--c-text);}
.c-sort__submit{flex:none;min-height:30px;padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-m);cursor:pointer;}
.c-sort__submit:hover{border-color:var(--c-primary);color:var(--c-primary-dark);}
/* JSがあるときは change で送るので素のsubmitは隠す（無い環境では出したままにする） */
.js .c-sort__submit{display:none;}

@media (min-width: 1024px) {
  /* PCは2行に収める。1行目＝機関種別タブ、2行目＝絞り込み（チップ横一列）＋並び順。
     details 自体を flex にすると summary と中身が同じ行に並ぶので、
     「PCは展開のまま1行」を保ったまま JS 無効時の開閉も壊さない */
  /* 2行のグリッドにする。1行目＝タブと並び順、2行目＝絞り込みを横いっぱいに。
     絞り込みを全幅にしないと、サイドバーのぶん狭い本文カラム（1440pxで約848px）では
     チップが2段に折り返して3行になる */
  .c-listfilter{display:grid;grid-template-columns:1fr auto;grid-template-areas:"tabs sort" "filter filter";align-items:center;gap:var(--sp-xs) var(--sp-m);}
  .c-listfilter__tabs{grid-area:tabs;}
  .c-listfilter__row{display:contents;}
  .c-filterbox{grid-area:filter;}
  .c-sort{grid-area:sort;justify-self:end;}
  .c-filterbox{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) var(--sp-m);min-width:0;padding:var(--sp-xs) 0 0;border:0;border-top:1px solid var(--c-border-soft);background:transparent;box-shadow:none;}
  .c-filterbox__summary{flex:none;min-height:34px;padding:0;}
  .c-filterbox__state{display:none;}   /* 展開しているので条件サマリは出さない */
  .c-filterbox__caret{display:none;}
  .c-filterbox__body{flex:1;min-width:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) var(--sp-m);padding:0;border-top:0;}
  .c-filterbox__group{padding-top:0;gap:var(--sp-xs) 6px;}
  .c-filterbox__actions{padding-top:0;border-top:0;gap:6px;}
  .c-filterbox__list .c-facet{min-height:0;padding:6px 12px;font-size:13px;line-height:1.1;}
  .c-filterbox__apply{min-height:0;padding:6px 12px;line-height:1.1;}
  .c-sort{flex:none;min-height:34px;}
  .c-sort__select{flex:none;width:auto;max-width:15rem;height:30px;}
  .c-ftab{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:6px;min-height:44px;padding:0 var(--sp-m);}
  .c-ftab__name{font-size:15px;}
  .c-listfilter__tabs{grid-auto-columns:max-content;}
  /* 横幅が足りないので見出しの文字は視覚的にだけ落とす（アイコンは残し、読み上げには出す）。
     display:none にすると支援技術からも消えるので使わない */
  .c-filterbox__headtext,.c-filterbox__labeltext,.c-sort__labeltext{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
}

/* ==========================================
  Regime section（制度セクション）
========================================== */
.p-regime + .p-regime{margin-top:var(--sp-xl);}
.p-regime__title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);margin-bottom:var(--sp-s);font-size:var(--fz-2xl);font-weight:700;}
.p-regime__count{font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}

/* ==========================================
  Pager
========================================== */
.c-pager{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-m);margin-top:var(--sp-s);}
.c-pager__list{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;}
.c-pager__item{display:flex;}
.c-pager__num,.c-pager__prev,.c-pager__next{display:flex;align-items:center;gap:var(--sp-xs);min-width:38px;height:38px;padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-s);background:var(--c-white);font-size:var(--fz-m);color:var(--c-text);justify-content:center;}
.c-pager__num:hover,.c-pager__prev:hover,.c-pager__next:hover{border-color:var(--c-primary);color:var(--c-primary-dark);text-decoration:none;}
/* 絞り込み中のページ送りはフォームのボタン（リンクにしない）。見た目はリンクと同じにする */
button.c-pager__num,button.c-pager__prev,button.c-pager__next{font-family:inherit;line-height:inherit;cursor:pointer;}
.c-pager__num.is-current{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-white);font-weight:700;}
.c-pager__item--gap{align-items:center;padding:0 var(--sp-xs);color:var(--c-text-sub);}
.c-pager__status{margin-top:var(--sp-s);text-align:center;font-size:var(--fz-m);color:var(--c-text-sub);}

/* ==========================================
  Table / Notice / Empty
========================================== */
.c-tablewrap{overflow-x:auto;}
.c-table{width:100%;font-size:var(--fz-m);background:var(--c-white);}
.c-table__th{padding:var(--sp-s) var(--sp-m);background:var(--c-panel);border:1px solid var(--c-border);font-weight:700;text-align:left;white-space:nowrap;color:var(--c-primary-dark);}
.c-table__td{padding:var(--sp-s) var(--sp-m);border:1px solid var(--c-border);vertical-align:top;}
.c-table__td--code{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--c-text-sub);}
.c-table__td--en{color:var(--c-text-sub);}
.c-table__note{margin-top:var(--sp-s);font-size:var(--fz-m);color:var(--c-text-sub);}
.c-table__links{display:flex;flex-wrap:wrap;gap:var(--sp-xs) var(--sp-s);}
.c-table__zip{color:var(--c-text-sub);}
.c-table--jobs .c-table__th{width:8rem;}
.c-table--guide .c-table__th{width:auto;}
.c-notice{padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);font-size:var(--fz-m);color:var(--c-text-body);}
.c-notice--alert{background:var(--c-alert-bg);border-color:var(--c-alert-border);color:var(--c-accent-text);}
.c-empty{padding:var(--sp-xl);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);text-align:center;color:var(--c-text-sub);}
.c-empty--inline{padding:var(--sp-m);text-align:left;background:none;border:0;}
.c-list{display:flex;flex-direction:column;gap:var(--sp-xs);}
.c-deflist{display:grid;grid-template-columns:minmax(0,1fr);gap:2px var(--sp-l);}
.c-deflist__dt{display:flex;align-items:center;gap:5px;font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}
.c-deflist__dd{font-size:var(--fz-l);line-height:1.8;}
.c-deflist__dd + .c-deflist__dt{margin-top:var(--sp-m);}
@media (min-width: 768px) {
  .c-deflist--table{grid-template-columns:200px minmax(0,1fr);}
  .c-deflist--table .c-deflist__dt{padding:var(--sp-m) 0;border-bottom:1px solid var(--c-border-soft);}
  .c-deflist--table .c-deflist__dd{padding:var(--sp-m) 0;border-bottom:1px solid var(--c-border-soft);}
  .c-deflist--table .c-deflist__dd + .c-deflist__dt{margin-top:0;}
}

/* ==========================================
  Aside module（サイドバーの小箱）
========================================== */
.c-side{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
.c-side__title{margin:0;display:flex;align-items:center;gap:6px;padding:var(--sp-m) var(--sp-l);background:var(--c-panel-strong);border-bottom:1px solid var(--c-border-blue);color:var(--c-primary-dark);font-size:var(--fz-xl);font-weight:700;}
.c-side__title--strong{background:var(--c-primary);border-bottom:0;color:var(--c-white);}
.c-side__body{padding:var(--sp-m) var(--sp-l) var(--sp-l);display:flex;flex-direction:column;gap:var(--sp-m);}
.c-side__row{display:flex;align-items:baseline;gap:var(--sp-s);padding:var(--sp-s) 0;border-bottom:1px solid var(--c-border-soft);}
.c-side__label{margin:0;display:flex;align-items:center;gap:5px;flex:none;font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}
.c-side__value{margin:0 0 0 auto;font-size:var(--fz-l);font-weight:700;text-align:right;line-height:1.6;}
.c-side__link{display:flex;align-items:center;gap:6px;padding:var(--sp-s) 0;border-bottom:1px solid var(--c-border-soft);font-size:var(--fz-l);font-weight:500;color:var(--c-text);}
.c-side__link:hover{color:var(--c-primary-dark);text-decoration:none;}
.c-side__link .ti{color:var(--c-text-sub);}
.c-side__note{margin:0;display:flex;gap:6px;font-size:var(--fz-m);line-height:1.7;color:var(--c-text-sub);}
.c-side__figures{display:flex;gap:var(--sp-s);}
.c-side__figure{margin:0;flex:1;padding:var(--sp-s) 10px;border-radius:6px;background:var(--c-panel);border:1px solid var(--c-border-blue);font-size:var(--fz-m);color:var(--c-text-body);}
.c-side__figure--out{background:var(--c-accent-weak);border-color:var(--c-accent-border);color:var(--c-accent-text);}
.c-side__figure-value{font-size:var(--fz-4xl);font-weight:700;color:var(--c-primary-dark);}
.c-side__figure--out .c-side__figure-value{color:var(--c-accent);}
.c-side__group-label{margin:0 0 6px;font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}

/* ==========================================
  Fold（スマホでだけ畳む枠）
========================================== */
/*
  中身はHTMLに出したまま、表示だけCSSで切り替える。
  JSで後から読み込まないこと（描画済みでないとGoogleに存在しないのと同じになる）。
*/
.c-fold__switch{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.c-fold__label{display:flex;align-items:center;justify-content:center;gap:var(--sp-s);min-height:44px;padding:0 var(--sp-l);border:1px solid var(--c-primary);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);cursor:pointer;}
.c-fold__caret{transition:transform 0.15s;}
.c-fold__switch:checked ~ .c-fold__label .c-fold__caret{transform:rotate(180deg);}
.c-fold__body{display:none;margin-top:var(--sp-s);}
.c-fold__switch:checked ~ .c-fold__body{display:block;}
.c-fold__switch:focus-visible ~ .c-fold__label{outline:3px solid var(--c-accent);outline-offset:2px;}
@media (min-width: 1024px) {
  .c-fold__label{display:none;}
  .c-fold__body{display:block;margin-top:0;}
}

/* ==========================================
  Home hero / stats
========================================== */
.p-hero{padding:var(--sp-l) 0 0;}
.p-hero__title{font-size:var(--fz-4xl);font-weight:700;}
.p-hero__lead{margin-top:var(--sp-s);font-size:var(--fz-l);color:var(--c-text-body);}
.p-stats{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:var(--sp-s);}
.p-stat{padding:var(--sp-m);background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);text-align:center;}
.p-stat__label{display:block;font-size:var(--fz-m);color:var(--c-text-sub);}
.p-stat__value{display:block;font-size:var(--fz-5xl);font-weight:700;color:var(--c-primary-dark);line-height:1.3;}
.p-stat__unit{font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}
.p-stat__sub{display:block;font-size:var(--fz-s);color:var(--c-text-sub);}
.p-stat__sub--text{font-size:var(--fz-m);}
@media (min-width: 768px) {
  .p-stats{grid-template-columns:repeat(4, minmax(0,1fr));}
}

/* ==========================================
  Home region（地方ブロック）
========================================== */
.p-region{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-l);}
.p-region__row{border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;}
.p-region__name{margin:0;display:flex;align-items:center;gap:6px;padding:var(--sp-s) 14px;background:var(--c-panel);border-bottom:1px solid var(--c-border);font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);}
.p-region__mark{display:none;}
.p-region__prefs{display:flex;flex-wrap:wrap;gap:var(--sp-s);padding:var(--sp-m) 14px;}
.p-region__pref{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:1px solid var(--c-border-strong);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-l);font-weight:500;color:var(--c-text);white-space:nowrap;}
.p-region__pref:hover{border-color:var(--c-primary);background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.p-region__count{font-size:var(--fz-m);color:var(--c-text-sub);}
.p-region__none{color:var(--c-text-sub);}
@media (min-width: 900px) {
  .p-region{grid-template-columns:repeat(2, minmax(0,1fr));}
}

/* ==========================================
  Home shortcuts（よくある探し方）
========================================== */
.p-shortcuts{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-s);}
.p-shortcut{display:flex;align-items:center;gap:var(--sp-m);padding:var(--sp-m) 14px;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-white);color:var(--c-text);}
.p-shortcut:hover{border-color:var(--c-primary);box-shadow:var(--shadow-hover);color:var(--c-text);text-decoration:none;}
.p-shortcut__tag{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-s);background:var(--c-panel-strong);color:var(--c-primary-dark);font-size:var(--fz-m);font-weight:700;}
.p-shortcut__label{flex:1;min-width:0;font-size:var(--fz-l);font-weight:500;}
.p-shortcut__count{flex:none;font-size:var(--fz-m);color:var(--c-text-sub);}
@media (min-width: 768px) {
  .p-shortcuts{grid-template-columns:repeat(2, minmax(0,1fr));}
}

/* ==========================================
  Home countries / jobs
========================================== */
.p-countries{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:var(--sp-xs) var(--sp-l);}
.p-country{display:flex;align-items:center;gap:var(--sp-s);padding:6px var(--sp-s);border-radius:var(--radius-s);color:var(--c-text);min-width:0;}
.p-country:hover{background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.p-country__name{flex:1;min-width:0;font-size:var(--fz-l);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.p-country__count{flex:none;font-size:var(--fz-m);color:var(--c-text-sub);font-variant-numeric:tabular-nums;}
.p-country--none{color:var(--c-text-sub);}
.p-jobcats{display:flex;flex-direction:column;gap:var(--sp-xs);}
.p-jobcat{display:flex;align-items:center;gap:var(--sp-s);padding:var(--sp-s) var(--sp-m);border:1px solid var(--c-border);border-radius:var(--radius-s);background:var(--c-white);color:var(--c-text);}
.p-jobcat:hover{border-color:var(--c-primary);background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.p-jobcat__mark{flex:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-s);background:var(--c-panel-strong);color:var(--c-primary-dark);}
.p-jobcat__label{flex:1;min-width:0;font-size:var(--fz-l);}
.p-jobcat__count{flex:none;font-size:var(--fz-m);color:var(--c-text-sub);}
@media (min-width: 640px) {
  .p-countries{grid-template-columns:repeat(2, minmax(0,1fr));}
}

/* ==========================================
  List page（一覧の見出し）
========================================== */
.p-listhead{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-m) var(--sp-l);display:flex;flex-direction:column;gap:6px;}
.p-listhead__title{margin:0;font-size:var(--fz-3xl);font-weight:700;line-height:1.4;overflow-wrap:anywhere;}
.p-listhead__lead{font-size:var(--fz-m);color:var(--c-text-body);}
.p-listhead__count{font-size:var(--fz-m);color:var(--c-text-sub);}
.p-listhead__count strong{font-size:var(--fz-3xl);font-weight:700;color:var(--c-primary-dark);}
.p-listfoot{margin-top:var(--sp-l);}
.p-listfoot__title{display:flex;align-items:center;gap:var(--sp-s);margin-bottom:var(--sp-s);font-size:var(--fz-2xl);font-weight:700;}
/* 一覧のタブ（監理団体 ⇄ 登録支援機関。JSの切替ではなく別URLへのリンク） */

/* ==========================================
  Related links（内部リンク）
========================================== */
.p-related{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-l);margin-top:var(--sp-s);}
.p-related__title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) var(--sp-s);padding-bottom:var(--sp-m);border-bottom:2px solid var(--c-primary);font-size:var(--fz-3xl);font-weight:700;}
.p-related__title .ti{color:var(--c-primary);}
.p-related__list{display:flex;flex-wrap:wrap;gap:var(--sp-s);margin-top:var(--sp-l);}
.p-related__list--orgs{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;}
.p-related__item a{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:1px solid var(--c-border-strong);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-l);font-weight:500;color:var(--c-text);}
.p-related__item a:hover{border-color:var(--c-primary);background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.p-related__list--orgs .p-related__item a{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-xs);min-height:0;padding:var(--sp-m) 14px;border-radius:var(--radius);border-color:var(--c-border);}
.p-related__list--orgs .p-related__item a:hover{box-shadow:var(--shadow-hover);background:var(--c-white);}
.p-related__count{font-size:var(--fz-m);color:var(--c-text-sub);}
.p-related__place{display:flex;align-items:center;gap:5px;font-size:var(--fz-m);color:var(--c-text-body);font-weight:400;}
.p-related__more{margin-top:var(--sp-m);display:inline-flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-l);font-weight:500;}
@media (min-width: 768px) {
  .p-related{padding:var(--sp-xl);}
  .p-related__list--orgs{grid-template-columns:repeat(2, minmax(0,1fr));}
}

/* ==========================================
  Org detail（団体詳細）
========================================== */
.p-org{display:flex;flex-direction:column;gap:var(--sp-l);}
.p-org__head{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-l);}
.p-org__badges{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);}
.p-org__name{margin:10px 0 4px;font-size:var(--fz-4xl);font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
.p-org__name-en{margin:0 0 var(--sp-m);font-size:var(--fz-m);color:var(--c-text-sub);}
/* h1 の種別（監理団体／登録支援機関）。同じ法人が両方に載ると名称が同じになるため、h1 で見分ける */
.p-org__name-type{margin-left:4px;font-size:var(--fz-l);font-weight:500;color:var(--c-text-sub);white-space:nowrap;}
/* 冒頭の要約文（名簿の値から作る） */
.p-org__summary{display:flex;flex-direction:column;gap:var(--sp-xs);padding:var(--sp-m) var(--sp-l);background:var(--c-surface);border:1px solid var(--c-border);border-left:4px solid var(--c-primary);border-radius:var(--radius);font-size:var(--fz-l);line-height:1.8;color:var(--c-text-body);}
.p-org__summary-text{margin:0;}
/* 公式サイトのスクリーンショット（640×400。取得日をキャプションに必ず出す） */
.p-org__shot{margin:var(--sp-m) var(--sp-l) var(--sp-l);max-width:640px;}
.p-org__shot-link{display:block;border:1px solid var(--c-border);border-radius:var(--radius-s);overflow:hidden;}
.p-org__shot-img{display:block;width:100%;height:auto;}
.p-org__shot-caption{margin-top:var(--sp-xs);font-size:var(--fz-s);color:var(--c-text-sub);}
/* 出典と訂正の窓口（要約の直下に1行） */
.p-org__source-top{display:flex;flex-wrap:wrap;gap:var(--sp-xs) var(--sp-m);margin:0;font-size:var(--fz-s);color:var(--c-text-sub);}
.p-org__facts{display:flex;flex-wrap:wrap;gap:var(--sp-s) var(--sp-xl);padding-top:var(--sp-m);border-top:1px solid var(--c-border);font-size:var(--fz-m);color:var(--c-text-body);}
.p-org__facts span{display:flex;align-items:center;gap:6px;}
.p-org__facts .ti{color:var(--c-text-sub);}
/* 情報更新日（内容が変わった日）と掲載確認日（名簿の基準日）は別concept。並べて出す */
.p-org__dates{display:flex;flex-wrap:wrap;gap:var(--sp-xs) var(--sp-s);margin-top:var(--sp-s);font-size:var(--fz-s);color:var(--c-text-sub);}
.p-org__section{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
/* 見出し帯の直下に直接置かれた本文にも余白を与える（枠でくるみ忘れても崩れないように） */
.p-org__section > p,.p-org__section > ul:not([class*="p-org__"]),.p-org__section > .c-tablewrap{margin:var(--sp-l);}
.p-org__section > .c-notice{margin:var(--sp-l);}
.p-org__h2{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);padding:var(--sp-m) var(--sp-l);background:var(--c-primary);color:var(--c-white);font-size:var(--fz-2xl);font-weight:700;}
.p-org__h2--soft{background:var(--c-panel-strong);border-bottom:1px solid var(--c-border-blue);color:var(--c-primary-dark);}
.p-org__h2-note{font-size:var(--fz-m);font-weight:400;}
.p-org__h3{margin:0;display:flex;align-items:center;gap:var(--sp-s);padding:var(--sp-s) 14px;background:var(--c-panel);border-bottom:1px solid var(--c-border);font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);}
.p-org__h3-count{font-size:var(--fz-m);font-weight:400;color:var(--c-text-sub);}
.p-org__countries{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:var(--sp-s);padding:var(--sp-l);}
.p-org__country{display:flex;align-items:center;gap:var(--sp-s);min-height:38px;padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-pill);background:var(--c-white);color:var(--c-text);min-width:0;}
.p-org__country:hover{border-color:var(--c-primary);background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
.p-org__country-name{font-size:var(--fz-l);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.p-org__country-en{font-size:var(--fz-m);color:var(--c-text-sub);}
.p-org__jobgroup{border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;}
.p-org__jobgroup + .p-org__jobgroup{margin-top:var(--sp-m);}
.p-org__langs{display:flex;flex-wrap:wrap;gap:var(--sp-s);padding:var(--sp-l);}
.p-org__lang{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border:1px solid var(--c-border-blue);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-m);color:var(--c-text);}
.p-org__lang:hover{border-color:var(--c-primary);background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
/* 国旗と言語名を1行に揃える。登録簿の表記だけは通常の折り返しに戻す */
.p-org__lang > a,
.p-org__lang > span{display:inline-flex;align-items:center;gap:6px;}
.p-org__lang > .p-org__lang-raw{display:inline;color:var(--c-text-sub);}
.p-org__lang-raw{color:var(--c-text-sub);}
.p-org__count{font-size:var(--fz-m);font-weight:400;color:var(--c-text-sub);}
/* 色付きの見出し帯の中では地色に負けないよう文字色を継承する */
.p-org__h2 .p-org__count,.p-org__h2 .p-org__h2-note{color:inherit;opacity:0.92;}
.p-org__source{padding:var(--sp-m) var(--sp-l);font-size:var(--fz-m);color:var(--c-text-sub);}
.p-org__report{margin-top:var(--sp-l);padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);font-size:var(--fz-m);color:var(--c-text-body);}
@media (min-width: 768px) {
  .p-org__head{padding:var(--sp-xl) var(--sp-2xl);}
  .p-org__h2{padding:var(--sp-m) var(--sp-xl);}
  .p-org__countries{grid-template-columns:repeat(4, minmax(0,1fr));padding:var(--sp-l) var(--sp-xl);}
  .p-org__langs{padding:var(--sp-l) var(--sp-xl);}
  .p-org__source{padding:var(--sp-m) var(--sp-xl);}
}

/* 職種の一覧（詳細ページ内・検索ページ） */
.p-joblist{display:flex;flex-direction:column;gap:var(--sp-m);padding:var(--sp-l);}
.c-panel__body--tight{padding:0 var(--sp-l) var(--sp-l);}
.p-joblist__title{display:flex;align-items:center;gap:var(--sp-s);font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);}
.p-joblist__items{display:flex;flex-wrap:wrap;gap:var(--sp-s);padding:var(--sp-m) 14px;list-style:none;}
.p-joblist__item{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border:1px solid var(--c-border-blue);border-radius:var(--radius-pill);background:var(--c-white);font-size:var(--fz-m);line-height:1.6;color:var(--c-text);max-width:100%;}
.p-joblist__code{margin-right:6px;font-size:var(--fz-s);color:var(--c-text-sub);font-variant-numeric:tabular-nums;}
.p-joblist__count{font-size:var(--fz-m);color:var(--c-text-sub);}
.p-joblist__none{color:var(--c-text-sub);border-style:dashed;}
a.p-joblist__item:hover{border-color:var(--c-primary);background:var(--c-primary-weak);color:var(--c-primary-dark);text-decoration:none;}
@media (min-width: 768px) {
  .p-joblist{padding:var(--sp-l) var(--sp-xl);}
}

/* ==========================================
  Static page（固定ページ・ガイド）
========================================== */
.p-page{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-l);}
.p-page__title{margin:0 0 var(--sp-m);font-size:var(--fz-5xl);font-weight:700;line-height:1.4;}
.p-page__lead{font-size:var(--fz-l);color:var(--c-text-body);}
.p-page__section{margin-top:var(--sp-3xl);}
.p-page__h2{display:flex;align-items:center;gap:var(--sp-s);padding-bottom:var(--sp-s);margin-bottom:var(--sp-m);border-bottom:2px solid var(--c-primary);font-size:var(--fz-3xl);font-weight:700;}
.p-page__h3{margin:var(--sp-xl) 0 var(--sp-s);font-size:var(--fz-2xl);font-weight:700;color:var(--c-primary-dark);}
.p-page__meta{font-size:var(--fz-m);color:var(--c-text-sub);}
.p-page__source{margin-top:var(--sp-xl);padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);font-size:var(--fz-m);color:var(--c-text-body);}
.p-page__links{display:flex;flex-wrap:wrap;gap:var(--sp-s);margin-top:var(--sp-m);}
.p-page__back{margin-top:var(--sp-xl);display:inline-flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-l);}
.p-note{font-size:var(--fz-m);color:var(--c-text-sub);}
/* 名簿の変更履歴（新しい順の縦の時系列） */
.c-changelog{margin:var(--sp-l);padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-m);}
.c-changelog__item{position:relative;padding-left:var(--sp-l);border-left:2px solid var(--c-border-strong);}
.c-changelog__item--gone{border-left-color:var(--c-text-sub);}
.c-changelog__head{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-xs) var(--sp-s);}
.c-changelog__date{font-size:var(--fz-m);font-weight:700;color:var(--c-primary-dark);white-space:nowrap;}
.c-changelog__title{font-size:var(--fz-m);color:var(--c-text);}
.c-changelog__items{margin:var(--sp-xs) 0 0;padding-left:1.2em;font-size:var(--fz-m);color:var(--c-text-body);overflow-wrap:anywhere;}
.p-grid2{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-l);}
@media (min-width: 768px) {
  .p-page{padding:var(--sp-2xl) var(--sp-3xl);}
  .p-grid2{grid-template-columns:repeat(2, minmax(0,1fr));}
}

/* ==========================================
  Text Blocks（固定ページ・記事本文の共通部品）
========================================== */
.p-page p,.p-article p,.p-post__body p{margin-bottom:var(--sp-m);line-height:1.9;}
.p-page ul,.p-article ul,.p-post__body ul{margin:0 0 var(--sp-m);padding-left:1.25rem;list-style:disc;}
.p-page ol,.p-article ol,.p-post__body ol{margin:0 0 var(--sp-m);padding-left:1.5rem;list-style:decimal;}
.p-page li,.p-article li,.p-post__body li{margin-bottom:var(--sp-xs);line-height:1.9;}
.p-post__body h2{margin:var(--sp-3xl) 0 var(--sp-m);padding-bottom:var(--sp-s);border-bottom:2px solid var(--c-primary);font-size:var(--fz-3xl);font-weight:700;}
.p-post__body h3{margin:var(--sp-xl) 0 var(--sp-s);font-size:var(--fz-2xl);font-weight:700;color:var(--c-primary-dark);}
.p-post__body blockquote{margin:0 0 var(--sp-m);padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border-left:4px solid var(--c-primary);color:var(--c-text-body);}
.p-post__body img{border-radius:var(--radius);}

/* ==========================================
  Guide / Article
========================================== */
.p-article{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-l);}
.p-article__head{padding-bottom:var(--sp-l);border-bottom:1px solid var(--c-border);}
.p-article__title{margin:0 0 var(--sp-s);font-size:var(--fz-5xl);font-weight:700;line-height:1.4;}
.p-article__lead{font-size:var(--fz-l);color:var(--c-text-body);}
.p-article__section{margin-top:var(--sp-3xl);}
.p-article__h2{display:flex;align-items:center;gap:var(--sp-s);padding-bottom:var(--sp-s);margin-bottom:var(--sp-m);border-bottom:2px solid var(--c-primary);font-size:var(--fz-3xl);font-weight:700;}
.p-article__h3{margin:var(--sp-xl) 0 var(--sp-s);font-size:var(--fz-2xl);font-weight:700;color:var(--c-primary-dark);}
.p-article__p{line-height:1.9;}
/* 記事内の箇条書き。ul の list-style はリセットで消してあるので、ここで戻す */
.p-article__list{margin:var(--sp-s) 0 var(--sp-m);padding-left:1.25rem;list-style:disc;}
.p-article__list li{line-height:1.9;margin-bottom:var(--sp-xs);}
.p-article__checked{display:inline-flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-m);color:var(--c-text-sub);}
.p-article__sources{margin-top:var(--sp-3xl);padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);}
.p-article__source{font-size:var(--fz-m);color:var(--c-text-body);}
.p-guide__list{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-l);}
.p-guide__item{display:flex;flex-direction:column;gap:var(--sp-s);padding:var(--sp-l);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-white);color:var(--c-text);}
.p-guide__item:hover{border-color:var(--c-primary);box-shadow:var(--shadow-hover);color:var(--c-text);text-decoration:none;}
.p-guide__title{margin:0;font-size:var(--fz-2xl);font-weight:700;line-height:1.6;}
.p-guide__lead{font-size:var(--fz-m);line-height:1.8;color:var(--c-text-sub);}
@media (min-width: 768px) {
  .p-article{padding:var(--sp-2xl) var(--sp-3xl);}
  .p-guide__list{grid-template-columns:repeat(3, minmax(0,1fr));}
}

/* ==========================================
  FAQ
========================================== */
.c-faq,.p-faq{display:flex;flex-direction:column;gap:var(--sp-m);}
.c-faq__q,.p-faq__q{display:flex;gap:var(--sp-s);font-size:var(--fz-2xl);font-weight:700;color:var(--c-primary-dark);}
.c-faq__a,.p-faq__a{margin-bottom:0;padding-left:var(--sp-l);border-left:3px solid var(--c-border-blue);color:var(--c-text-body);}

/* ==========================================
  Steps
========================================== */
.c-steps{display:flex;flex-direction:column;gap:var(--sp-m);}
.c-steps__item{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:var(--sp-s) var(--sp-m);align-items:start;}
.c-steps__no{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--c-primary);color:var(--c-white);font-size:var(--fz-m);font-weight:700;}
.c-steps__label{font-weight:700;}
.c-steps__desc{grid-column:2;font-size:var(--fz-m);color:var(--c-text-body);}

/* ==========================================
  CTA（運営会社からのご案内・PR）
========================================== */
.c-cta{background:var(--c-panel);border-top:1px solid var(--c-border-blue);border-bottom:1px solid var(--c-border-blue);}
.c-cta__inner{max-width:var(--w-container);margin:0 auto;padding:var(--sp-xl) var(--sp-pad);display:flex;flex-direction:column;gap:var(--sp-m);}
.c-cta__pr{display:inline-flex;align-items:center;gap:var(--sp-s);}

/* 掲載をご検討の方へ（登録支援機関の都道府県・市区町村一覧の最上部・PR・partials/pr_invite.php）
   公式データの一覧と分けるため破線の細い帯。控えめにし、スマホで一覧を押し下げない */
.c-prinvite{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--sp-s);margin:0 0 var(--sp-m);padding:6px var(--sp-m);border:1px dashed var(--c-border-blue);border-radius:var(--radius-s);background:var(--c-panel);font-size:var(--fz-s);line-height:1.6;color:var(--c-text-sub);}
.c-prinvite__pr{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:3px;background:var(--c-text-sub);color:var(--c-white);font-size:var(--fz-xs);font-weight:700;}
.c-prinvite__title{font-weight:700;}
.c-prinvite__links{display:flex;flex-wrap:wrap;gap:2px var(--sp-m);}
.c-prinvite__link{color:var(--c-text-sub);text-decoration:underline;}
.c-cta__label{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:3px;background:var(--c-text-sub);color:var(--c-white);font-size:var(--fz-xs);font-weight:700;}
.c-cta__title{font-size:var(--fz-2xl);font-weight:700;color:var(--c-primary-dark);}
.c-cta__lead{font-size:var(--fz-l);color:var(--c-text-body);}
.c-cta__list{display:flex;flex-wrap:wrap;gap:var(--sp-s) var(--sp-l);}
.c-cta__item{display:flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-m);color:var(--c-text-body);}
.c-cta__action{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-m);}
.c-cta__btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-s);min-height:44px;padding:0 24px;border-radius:var(--radius-pill);background:var(--c-accent);color:var(--c-white);font-size:var(--fz-l);font-weight:700;}
.c-cta__btn:hover{background:var(--c-accent-hover);color:var(--c-white);text-decoration:none;}
.c-cta__btn--lg{min-height:52px;padding:0 32px;font-size:var(--fz-2xl);}
.c-cta__note{font-size:var(--fz-m);color:var(--c-text-sub);}
.c-cta__neutral{font-size:var(--fz-m);color:var(--c-text-sub);}

/* ==========================================
  Form（お問い合わせ）
========================================== */
.c-form{display:flex;flex-direction:column;gap:var(--sp-l);}
.c-form__lead{font-size:var(--fz-l);color:var(--c-text-body);}
.c-form__fieldset{border:0;display:flex;flex-direction:column;gap:var(--sp-s);}
.c-form__row{display:flex;flex-direction:column;gap:6px;}
.c-form__row--check{flex-direction:row;align-items:flex-start;gap:var(--sp-s);}
.c-form__label{display:flex;align-items:center;gap:var(--sp-s);font-size:var(--fz-m);font-weight:500;color:var(--c-text-sub);}
.c-form__req{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:3px;background:var(--c-accent);color:var(--c-white);font-size:var(--fz-xs);font-weight:700;}
.c-form__input,.c-form__textarea{width:100%;min-height:var(--h-control);padding:10px 12px;border:1px solid var(--c-border-strong);border-radius:var(--radius-s);background:var(--c-white);font-size:var(--fz-l);}
.c-form__textarea{min-height:12rem;line-height:1.8;}
.c-form__radios{display:flex;flex-direction:column;gap:var(--sp-s);}
.c-form__radio{display:flex;align-items:center;gap:var(--sp-s);font-size:var(--fz-l);cursor:pointer;}
.c-form__check{width:16px;height:16px;accent-color:var(--c-primary);flex:none;margin-top:5px;}
.c-form__checklabel{font-size:var(--fz-l);cursor:pointer;}
.c-form__help,.c-form__note{font-size:var(--fz-m);color:var(--c-text-sub);}
.c-form__error{padding:var(--sp-s) var(--sp-m);background:var(--c-alert-bg);border:1px solid var(--c-alert-border);border-radius:var(--radius-s);font-size:var(--fz-m);color:var(--c-accent-text);}
.c-form__error--top{margin-bottom:var(--sp-m);}
.c-form__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-m);}
.c-form__submit{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-s);min-height:52px;padding:0 40px;border:0;border-radius:var(--radius-pill);background:var(--c-accent);color:var(--c-white);font-size:var(--fz-2xl);font-weight:700;cursor:pointer;}
.c-form__submit:hover{background:var(--c-accent-hover);}
.c-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* ==========================================
  Blog
========================================== */
.c-posts{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-l);}
.c-posts--compact{gap:var(--sp-s);}
.c-post{display:flex;flex-direction:column;gap:var(--sp-s);padding:var(--sp-l);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-white);box-shadow:var(--shadow);}
.c-post:hover{border-color:var(--c-primary);box-shadow:var(--shadow-hover);}
.c-post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);font-size:var(--fz-m);color:var(--c-text-sub);}
.c-post__cat{display:inline-flex;align-items:center;padding:2px 8px;border-radius:3px;background:var(--c-primary);color:var(--c-white);font-size:var(--fz-s);font-weight:500;}
.c-post__cat:hover{background:var(--c-primary-hover);color:var(--c-white);text-decoration:none;}
.c-post__title{font-size:var(--fz-2xl);font-weight:700;line-height:1.6;}
.c-post__title a{color:var(--c-text);}
.c-post__title a:hover{color:var(--c-primary-dark);}
.c-post__excerpt{font-size:var(--fz-m);line-height:1.8;color:var(--c-text-sub);}
.c-post__more{font-size:var(--fz-m);font-weight:500;}
.p-post{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-l);}
.p-post__head{padding-bottom:var(--sp-l);border-bottom:1px solid var(--c-border);}
.p-post__title{margin:var(--sp-s) 0;font-size:var(--fz-5xl);font-weight:700;line-height:1.4;}
.p-post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);font-size:var(--fz-m);color:var(--c-text-sub);}
.p-post__body{margin-top:var(--sp-xl);}
.p-post__foot{margin-top:var(--sp-3xl);padding-top:var(--sp-l);border-top:1px solid var(--c-border);display:flex;flex-direction:column;gap:var(--sp-s);}
.p-post__author,.p-post__source{font-size:var(--fz-m);color:var(--c-text-sub);}
.p-post__back{display:inline-flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-l);}
@media (min-width: 768px) {
  .c-posts{grid-template-columns:repeat(2, minmax(0,1fr));}
  .c-posts--compact{grid-template-columns:minmax(0,1fr);}
  .p-post{padding:var(--sp-2xl) var(--sp-3xl);}
}

/* ==========================================
  Supervisor（監修者。既定では非表示）
========================================== */
.c-supervisor{margin-top:var(--sp-l);padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);}
.c-supervisor__title{display:flex;align-items:center;gap:var(--sp-s);font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);}
.c-supervisor__list{margin-top:var(--sp-s);display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-xs) var(--sp-m);font-size:var(--fz-m);}
.c-supervisor__dt{color:var(--c-text-sub);}
.c-supervisor__note{margin-top:var(--sp-s);font-size:var(--fz-m);color:var(--c-text-sub);}

/* ==========================================
  LP（急ぎのホームページ制作）
========================================== */
.p-lp{display:flex;flex-direction:column;gap:var(--sp-l);}
.p-lp__head{background:var(--c-primary-deep) linear-gradient(120deg, #062d46 0%, #0a6fae 100%);color:var(--c-white);border-radius:var(--radius);padding:var(--sp-2xl) var(--sp-l);}
.p-lp__eyebrow{display:inline-flex;align-items:center;gap:var(--sp-xs);padding:2px 10px;border-radius:var(--radius-pill);background:rgba(255,255,255,0.18);font-size:var(--fz-m);font-weight:700;}
.p-lp__title{margin:var(--sp-m) 0 var(--sp-s);font-size:var(--fz-5xl);font-weight:700;line-height:1.4;}
.p-lp__lead{font-size:var(--fz-l);line-height:1.9;color:rgba(255,255,255,0.94);}
.p-lp__section{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-l);}
.p-lp__h2{display:flex;align-items:center;gap:var(--sp-s);padding-bottom:var(--sp-s);margin-bottom:var(--sp-m);border-bottom:2px solid var(--c-primary);font-size:var(--fz-3xl);font-weight:700;}
.p-lp__h3{margin:var(--sp-l) 0 var(--sp-s);font-size:var(--fz-2xl);font-weight:700;color:var(--c-primary-dark);}
.p-lp__card{padding:var(--sp-m) var(--sp-l);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-white);}
.p-lp__note{font-size:var(--fz-m);color:var(--c-text-sub);}
.p-lp__cta{background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);padding:var(--sp-xl);text-align:center;}
.p-lp__action{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-m);margin-top:var(--sp-m);}
@media (min-width: 768px) {
  .p-lp__head{padding:var(--sp-3xl) var(--sp-2xl);}
  .p-lp__title{font-size:var(--fz-6xl);}
  .p-lp__section{padding:var(--sp-2xl);}
}

/* ==========================================
  Shien（登録支援機関のトップ）
========================================== */
.p-shien__stats{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:var(--sp-s);}
.p-shien__search{margin-top:var(--sp-l);}
@media (min-width: 768px) {
  .p-shien__stats{grid-template-columns:repeat(4, minmax(0,1fr));}
}

/* ==========================================
  Glossary（用語集）
========================================== */
.p-glossary__nav{display:flex;flex-direction:column;gap:var(--sp-l);margin-top:var(--sp-l);padding:var(--sp-m) var(--sp-l);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);}
.p-glossary__navblock{display:flex;flex-direction:column;gap:var(--sp-s);}
.p-glossary__navlabel{display:flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-m);font-weight:700;color:var(--c-primary-dark);}
.p-glossary__kana{display:flex;flex-wrap:wrap;gap:var(--sp-xs);}
.p-glossary__kanaitem{display:inline-flex;align-items:baseline;gap:4px;min-width:56px;justify-content:center;padding:6px 10px;background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius-s);font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);}
.p-glossary__kanaitem:hover{background:var(--c-primary-weak);text-decoration:none;}
.p-glossary__kanaitem.is-current{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-white);}
/* 0件の行（現状わ行・英数）はリンクにせずグレーアウトする */
.p-glossary__kanaitem.is-empty{background:var(--c-regime-gray-bg);border-color:var(--c-border);color:var(--c-text-mute);opacity:0.6;cursor:default;}
.p-glossary__kanacount{font-size:var(--fz-xs);font-weight:400;}
.p-glossary__regimes{display:flex;flex-wrap:wrap;gap:var(--sp-xs);}
.p-glossary__regime{display:inline-flex;align-items:baseline;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);font-size:var(--fz-m);font-weight:700;}
.p-glossary__regime:hover{text-decoration:none;opacity:0.88;}
.p-glossary__regime.is-current{outline:2px solid var(--c-primary-dark);outline-offset:1px;}
.p-glossary__regime.is-empty{background:var(--c-regime-gray-bg);border:1px solid var(--c-border);color:var(--c-text-mute);opacity:0.6;cursor:default;}
.p-glossary__list{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-s);}
.p-glossary__item{min-width:0;}
.p-glossary__link{display:flex;flex-direction:column;gap:6px;height:100%;padding:var(--sp-m) var(--sp-l);background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-text);}
.p-glossary__link:hover{border-color:var(--c-primary);box-shadow:var(--shadow-hover);color:var(--c-text);text-decoration:none;}
.p-glossary__head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-s);}
.p-glossary__term{font-size:var(--fz-2xl);font-weight:700;line-height:1.4;overflow-wrap:anywhere;}
.p-glossary__reading{font-size:var(--fz-s);color:var(--c-text-sub);}
.p-glossary__summary{font-size:var(--fz-m);line-height:1.8;color:var(--c-text-body);}
.p-glossary__lead{margin:var(--sp-l) 0 0;padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);font-size:var(--fz-l);line-height:1.9;color:var(--c-text-body);}
.p-glossary__body{line-height:1.9;overflow-wrap:anywhere;}
.c-notice--glossary{margin-top:var(--sp-l);}
@media (min-width: 768px) {
  .p-glossary__list{grid-template-columns:repeat(2, minmax(0,1fr));}
  .p-glossary__nav{flex-direction:row;gap:var(--sp-3xl);}
  .p-glossary__navblock{flex:1 1 0;}
}
@media (min-width: 1024px) {
  .p-glossary__list{grid-template-columns:repeat(3, minmax(0,1fr));}
}

/* ==========================================
  PR枠（有料掲載・都道府県一覧の上部）

  広告であることが一目で分かるよう、下の一覧（.c-card）とは
  地色・枠線・角の丸みを変えて分離する。JSでの出し入れはしない。
========================================== */
.c-pr{background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius);padding:var(--sp-m) var(--sp-l);display:flex;flex-direction:column;gap:var(--sp-s);}
.c-pr__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);}
.c-pr__label{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:3px;background:var(--c-text-sub);color:var(--c-white);font-size:var(--fz-xs);font-weight:700;letter-spacing:0.04em;}
.c-pr__heading{font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);}
.c-pr__list{display:flex;flex-direction:column;gap:var(--sp-s);}
.c-pr__card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-s);padding:var(--sp-m) var(--sp-l);display:flex;flex-direction:column;gap:5px;}
.c-pr__badges{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs);}
.c-pr__name{margin:0;font-size:var(--fz-xl);font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
.c-pr__name a{color:var(--c-text);}
.c-pr__name a:hover{color:var(--c-primary-dark);}
.c-pr__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs) var(--sp-l);font-size:var(--fz-m);color:var(--c-text-body);line-height:var(--lh-tight);}
.c-pr__meta span{display:flex;align-items:center;gap:5px;}
.c-pr__meta .ti{color:var(--c-text-sub);}
.c-pr__more{display:flex;}
.c-pr__link{display:inline-flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-m);font-weight:700;color:var(--c-primary);}
.c-pr__note{font-size:var(--fz-s);color:var(--c-text-sub);line-height:1.7;}
@media (min-width: 768px) {
  .c-pr__list{flex-direction:row;flex-wrap:wrap;}
  .c-pr__card{flex:1 1 30%;min-width:240px;}
}

/* ==========================================
  Shigyo Slot（士業の掲載枠・都道府県一覧の下部）
========================================== */
.c-shigyo{margin-top:var(--sp-xl);background:var(--c-panel);border:1px dashed var(--c-border-blue);border-radius:var(--radius);padding:var(--sp-m) var(--sp-l);display:flex;flex-direction:column;gap:var(--sp-s);}
.c-shigyo__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);margin:0;font-size:var(--fz-l);}
.c-shigyo__heading{font-weight:700;color:var(--c-primary-dark);}
.c-shigyo__list{display:flex;flex-direction:column;gap:var(--sp-s);}
.c-shigyo__card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-s);padding:var(--sp-m) var(--sp-l);display:flex;flex-direction:column;gap:5px;}
.c-shigyo__badges{display:flex;flex-wrap:wrap;gap:var(--sp-xs);margin:0;}
.c-shigyo__name{display:flex;align-items:center;gap:var(--sp-s);margin:0;font-size:var(--fz-xl);font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
.c-shigyo__logo{flex:none;max-width:40px;max-height:40px;width:auto;height:auto;object-fit:contain;}
.c-shigyo__corp{margin:0;font-size:var(--fz-s);color:var(--c-text-sub);}
.c-shigyo__meta{display:flex;flex-wrap:wrap;gap:var(--sp-xs) var(--sp-l);margin:0;font-size:var(--fz-m);color:var(--c-text-body);line-height:var(--lh-tight);}
.c-shigyo__meta span{display:flex;align-items:center;gap:5px;}
.c-shigyo__meta .ti{color:var(--c-text-sub);}
.c-shigyo__intro{margin:0;font-size:var(--fz-m);line-height:1.8;overflow-wrap:anywhere;}
.c-shigyo__more{display:flex;margin:0;}
.c-shigyo__note{margin:0;font-size:var(--fz-s);color:var(--c-text-sub);line-height:1.7;}
.c-shigyo--sample{margin-top:0;}
.c-badge--shigyo{background:var(--c-surface);color:var(--c-primary-dark);border:1px solid var(--c-border-blue);}
@media (min-width: 768px) {
  .c-shigyo__list{flex-direction:row;flex-wrap:wrap;}
  .c-shigyo__card{flex:1 1 30%;min-width:240px;}
}

/* ==========================================
  Shien PR Slot（登録支援機関向けPR枠・登録支援機関の一覧の上部／詳細ページ）
  士業の掲載枠と同じ作法：破線の枠＋地色で公式データの一覧（.c-card）と分ける
========================================== */
.c-shienpr{margin:var(--sp-m) 0;background:var(--c-panel);border:1px dashed var(--c-border-blue);border-radius:var(--radius);padding:var(--sp-m) var(--sp-l);display:flex;flex-direction:column;gap:var(--sp-s);}
.c-shienpr__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);margin:0;font-size:var(--fz-l);}
.c-shienpr__heading{font-weight:700;color:var(--c-primary-dark);}
.c-shienpr__list{display:flex;flex-direction:column;gap:var(--sp-s);}
.c-shienpr__card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-s);padding:var(--sp-m) var(--sp-l);display:flex;flex-direction:column;gap:5px;min-width:0;}
.c-shienpr__name{display:flex;align-items:center;gap:var(--sp-s);margin:0;font-size:var(--fz-xl);font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
.c-shienpr__name a{color:var(--c-text);}
.c-shienpr__name a:hover{color:var(--c-primary-dark);}
.c-shienpr__logo{flex:none;max-width:40px;max-height:40px;width:auto;height:auto;object-fit:contain;}
.c-shienpr__meta{display:flex;flex-wrap:wrap;gap:var(--sp-xs) var(--sp-l);margin:0;font-size:var(--fz-m);color:var(--c-text-body);line-height:var(--lh-tight);}
.c-shienpr__meta span{display:flex;align-items:center;gap:5px;}
.c-shienpr__meta .ti{color:var(--c-text-sub);}
.c-shienpr__text{margin:0;font-size:var(--fz-m);line-height:1.8;overflow-wrap:anywhere;}
.c-shienpr__more{display:flex;flex-wrap:wrap;gap:var(--sp-xs) var(--sp-l);margin:0;}
.c-shienpr__note{margin:0;font-size:var(--fz-s);color:var(--c-text-sub);line-height:1.7;}
.c-shienpr--org{margin:var(--sp-l) 0;}
@media (min-width: 768px) {
  .c-shienpr__list{flex-direction:row;flex-wrap:wrap;}
  .c-shienpr__card{flex:1 1 30%;min-width:240px;}
}

/* ==========================================
  Interview（登録支援機関のインタビュー記事＝広告記事 /pr/interview/）
  冒頭の「PR」「広告記事」表示は、見出しより上に一見して分かる大きさで出す
========================================== */
.p-interview{display:flex;flex-direction:column;gap:var(--sp-l);}
.p-interview__ad{display:flex;flex-direction:column;gap:var(--sp-s);margin:0;padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border:2px dashed var(--c-border-blue);border-radius:var(--radius);}
.p-interview__adlabels{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-s);margin:0;}
.p-interview__adlabel{display:inline-flex;align-items:center;padding:2px 10px;border-radius:3px;background:var(--c-text-sub);color:var(--c-white);font-size:var(--fz-l);font-weight:700;letter-spacing:0.04em;}
.p-interview__adnote{margin:0;font-size:var(--fz-m);font-weight:700;line-height:1.8;color:var(--c-text);}
.p-interview__title{margin:0;font-size:var(--fz-3xl);font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
.p-interview__org{margin:0;font-size:var(--fz-m);color:var(--c-text-body);}
.p-interview__lead{margin:0;font-size:var(--fz-l);line-height:1.9;color:var(--c-text-body);overflow-wrap:anywhere;}
.p-interview__body{display:flex;flex-direction:column;gap:var(--sp-m);}
.p-interview__h2{margin:var(--sp-l) 0 0;padding-left:var(--sp-s);border-left:4px solid var(--c-primary);font-size:var(--fz-2xl);font-weight:700;line-height:1.5;}
.p-interview__p{margin:0;line-height:1.95;overflow-wrap:anywhere;}
.p-interview__fig{margin:0;display:flex;flex-direction:column;gap:var(--sp-xs);}
.p-interview__fig img{display:block;max-width:100%;height:auto;border-radius:var(--radius-s);}
.p-interview__cap{font-size:var(--fz-s);color:var(--c-text-sub);line-height:1.7;}
.p-interview__foot{display:flex;flex-direction:column;gap:var(--sp-s);padding-top:var(--sp-l);border-top:1px solid var(--c-border);}
.p-interview__list{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-m);margin:0;padding:0;list-style:none;}
.p-interview__card{display:flex;flex-direction:column;gap:var(--sp-xs);height:100%;padding:var(--sp-m) var(--sp-l);background:var(--c-white);border:1px dashed var(--c-border-blue);border-radius:var(--radius);color:var(--c-text);}
.p-interview__card:hover{border-color:var(--c-primary);color:var(--c-text);text-decoration:none;}
.p-interview__card img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-s);}
.p-interview__cardtitle{margin:0;font-size:var(--fz-xl);font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
@media (min-width: 768px) {
  .p-interview__list{grid-template-columns:repeat(2, minmax(0,1fr));}
}
/* ==========================================
  Footer
========================================== */
.l-footer{background:var(--c-panel-strong);border-top:1px solid var(--c-border-blue);margin-top:var(--sp-3xl);}
.l-footer__inner{max-width:var(--w-container);margin:0 auto;padding:var(--sp-2xl) var(--sp-pad) var(--sp-l);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-l);}
.l-footer__nav{min-width:0;}
.l-footer__heading{margin-bottom:10px;font-size:var(--fz-l);font-weight:700;color:var(--c-primary-dark);}
.l-footer__list{display:flex;flex-direction:column;gap:6px;}
.l-footer__list a{font-size:var(--fz-m);color:var(--c-text);}
.l-footer__list a:hover{color:var(--c-primary-dark);}
.l-footer__brand{display:none;}
.l-footer__title{font-weight:700;}
.l-footer__desc{font-size:var(--fz-m);color:var(--c-text-body);}
.l-footer__legal{max-width:var(--w-container);margin:0 auto;padding:var(--sp-l) var(--sp-pad) var(--sp-2xl);border-top:1px solid var(--c-border-blue);display:flex;flex-direction:column;gap:6px;font-size:var(--fz-m);line-height:1.8;color:var(--c-text-body);}
.l-footer__legal p{max-width:820px;}
.l-footer__copy{margin-top:var(--sp-s);color:var(--c-text-body);}
@media (min-width: 768px) {
  .l-footer__inner{grid-template-columns:repeat(4, minmax(0,1fr));gap:var(--sp-2xl);}
  .l-footer__legal{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2xl);}
  .l-footer__copy{margin:0 0 0 auto;white-space:nowrap;}
}

/* ==========================================================================
   担当者様へ（登録支援機関の詳細ページ末尾）と、団体からの情報提供
   ロゴは目立たせすぎない（長辺40px程度）。自己申告の欄は公表データと見た目で分ける
   ========================================================================== */
.p-org__logo{display:inline-block;max-width:40px;max-height:40px;width:auto;height:auto;margin-right:var(--sp-s);vertical-align:middle;object-fit:contain;}
.p-org__photo{margin:var(--sp-l);}
.p-org__photo img{display:block;width:100%;max-width:640px;height:auto;border:1px solid var(--c-border);border-radius:var(--radius-s);}
.p-org__photo figcaption{margin-top:var(--sp-xs);}
.p-org__section--declared{border-style:dashed;}
.p-tantousha{margin-top:var(--sp-l);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-l);}
.p-tantousha__title{display:flex;align-items:center;gap:var(--sp-s);margin-bottom:var(--sp-s);font-size:var(--fz-3xl);font-weight:700;color:var(--c-primary-dark);}
.p-tantousha__lead{margin-bottom:var(--sp-m);font-size:var(--fz-l);}
.p-tantousha__notes{margin-bottom:var(--sp-l);padding:var(--sp-m) var(--sp-l);background:var(--c-panel);border:1px solid var(--c-border-blue);border-radius:var(--radius-s);font-size:var(--fz-m);list-style:disc;padding-left:calc(var(--sp-l) + 1em);}
.p-tantousha__org{font-size:var(--fz-l);font-weight:700;}
.p-tantousha__checks{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:var(--sp-s);}
.p-tantousha__pr{margin-top:var(--sp-m);}
/* 基本情報の下から「この機関の担当者様へ」フォームへのページ内リンク（shien/show.php） */
.p-org__tantousha-link{margin:var(--sp-m) 0 0;font-size:var(--fz-s);}
.p-org__tantousha-link a{display:inline-flex;align-items:center;gap:var(--sp-xs);}
.c-cta__btn.is-disabled{background:var(--c-border-strong);color:var(--c-text-sub);cursor:default;}
.c-cta__btn.is-disabled:hover{background:var(--c-border-strong);color:var(--c-text-sub);}

/* ---- 優良（一般監理事業）の一覧 /yuryo/ の絞り込み（GETフォーム・JS不使用） ---- */
.p-yuryo__filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-m);padding:var(--sp-m) var(--sp-l);margin:0 0 var(--sp-l);overflow:visible;}
.c-field{display:flex;flex-direction:column;gap:var(--sp-xs);min-width:0;flex:1 1 200px;}
.c-field__label{display:inline-flex;align-items:center;gap:var(--sp-xs);font-size:var(--fz-m);font-weight:700;color:var(--c-primary-dark);}
.c-field__select{width:100%;min-height:44px;padding:0 var(--sp-s);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-white);font-size:var(--fz-l);}
.p-org .c-deflist__dd .p-note{display:block;margin-top:var(--sp-xs);}
/* 行政処分の一覧 /shobun/ */
.p-shobun__reason{margin:var(--sp-xs) 0 0;font-size:var(--fz-m);color:var(--c-text-sub, var(--c-text));line-height:1.7;}
.p-article__source-items{margin:var(--sp-xs) 0 0;padding-left:1.4em;list-style:disc;}
