/*
Theme Name: OA Design
Description: オレンジアカデミー（介護職員初任者研修）専用テーマ。承認済みデザイン原本
  deliverables/design/top-v2.html のトークン・コンポーネントをそのまま実装。
  設計の経緯と決めごとは deliverables/design/DESIGN_NOTES.md を参照。
  他サイト（recruit / ainomi.com / ainokiseki）とは別のXServer WordPressインストール
  （oa-new.ainomi.com）専用で、他サイトのテーマには一切触れていない。
Author: あいの実
Version: 2.2.0
Text Domain: oa-design
*/

/* ─── tokens : 配色は現行 oa.ainomi.com からの実測値を継承（変更禁止） ───
   #FFAE00 = --wst-color-action ／ #2F2E2E = 構造 ／ #FFECE2 = 面 ／ #FF6F00 = 文字アクセント
   ⚠️ #FFAE00 は文字色に使わない（白地コントラスト比 約1.9で読めないため） */
:root{
  --ground:#FFFFFF; --tint:#FFECE2; --ink:#2F2E2E; --ink-deep:#242323; --mute:#6E6866;
  --amber:#FFAE00; --ember:#FF6F00; --rule:#E8E1DC; --rule2:#C9BFB8; --track:#F5EFEB;
  /* 濃い面（フッタ・お問合せ）。--ink-deep は暗色時に白へ反転するのでここでは使えない */
  --slab:#242323; --slab-ink:#F3EFEC; --slab-mute:#B9AFA9; --slab-rule:#3A3736; --slab-link:#FFC978;
  --display:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --body:"BIZ UDPGothic","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  --pad:clamp(1.15rem,4vw,3.5rem);
  --sheet:74rem;    /* 版面の外枠 */
  --col:52.5rem;    /* 組の幅。版面の中央に据える（左寄せにすると広い画面で右三分の一が死ぬ） */
  --measure:36rem;  /* 走る本文の幅。和文40字前後 */
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#1B1917; --tint:#2C2119; --ink:#EFE9E4; --ink-deep:#FFFFFF; --mute:#A79C95;
  --amber:#FFB921; --ember:#FF8F33; --rule:#37312D; --rule2:#544A44; --track:#282320;
}}
:root[data-theme="dark"]{
  --ground:#1B1917; --tint:#2C2119; --ink:#EFE9E4; --ink-deep:#FFFFFF; --mute:#A79C95;
  --amber:#FFB921; --ember:#FF8F33; --rule:#37312D; --rule2:#544A44; --track:#282320;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);
  font-size:16px;line-height:1.95;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px}

/* ⚠️ 版面。これが無いと 1920px 幅で本文が画面いっぱいに伸びる（2026-08-19 の欠陥）。
   .pad は旧マークアップとの互換のため別名で残す。 */
.sheet,.pad{max-inline-size:var(--sheet);margin-inline:auto;padding-inline:var(--pad)}
main{display:block}

/* 和文の折り返し。⚠️ word-break:keep-all は使わない
   （和文が一切折り返せなくなり 375px で破綻する。2026-08-19 実測） */
h1,h2,h3,.sec__h,.claim__h,.hero h1{line-break:strict}

/* ─── ヘッダ ─── */
.site{border-bottom:1px solid var(--rule)}
.site__in{display:flex;flex-wrap:wrap;gap:.5rem 1.8rem;justify-content:space-between;
  align-items:baseline;padding-block:1.05rem}
.brand{font-family:var(--display);font-weight:800;font-size:1.24rem;letter-spacing:.12em;
  color:var(--ember);text-decoration:none;display:inline-flex;align-items:center;gap:.5em}
.brand::before{content:"";inline-size:.62em;block-size:.62em;border-radius:50%;
  background:var(--amber);flex:none}
.brand:hover{color:var(--ink-deep)}
.brand:hover::before{background:var(--ember)}
.nav{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem}
.nav a{font-size:.83rem;letter-spacing:.04em;text-decoration:none;color:var(--ink);
  padding-block:.15rem;border-bottom:1.5px solid transparent;transition:border-color .18s,color .18s}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--amber);color:var(--ink-deep)}

/* ─── ヒーロー ─── */
.hero{padding-block:clamp(2.8rem,6vw,5.4rem) clamp(2.4rem,5vw,4.4rem)}
.hero__in{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.8rem,4vw,3.4rem)}
@media(min-width:56rem){.hero__in{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center}}
/* 指定番号。top-v2.html の .hero__k と同一（字間 .11em も正本どおり）。
   ⚠️ ここは短縮形「宮城県指定　宮城介養第2-80号」。フッタは正式名称と指定日を含む
   完全形（oa_designation_text()）で、意図的に文言が違う（2026-08-20 ユーザー判断）。
   完全形40字は .11em だと 504px 要り 320px で番号途中に折れたが、短縮形17字なら収まる。 */
.hero__k{font-family:var(--display);font-weight:500;font-size:.78rem;
  letter-spacing:.11em;color:var(--mute);margin:0 0 1.1rem;line-height:1.9}
.hero h1{font-family:var(--display);font-weight:800;line-height:1.5;letter-spacing:.01em;
  font-size:clamp(1.72rem,3.9vw,3rem);margin:0 0 .9rem;color:var(--ink-deep);overflow-wrap:normal}
.hero__lede{font-size:clamp(.98rem,1.6vw,1.1rem);color:var(--mute);margin:0 0 1.7rem;max-inline-size:26rem}
.hero__acts{display:flex;flex-wrap:wrap;gap:.8rem;margin:0}
.hero__fig{margin:0}
.hero__fig img{inline-size:100%;aspect-ratio:4/3;object-fit:cover;background:var(--track)}
.hero__fig figcaption{font-size:.76rem;color:var(--mute);margin-top:.6rem;line-height:1.8}

/* ─── ボタン ─── */
.cta,.act{display:inline-block;font-family:var(--body);font-weight:700;font-size:.95rem;
  padding:.85em 1.9em;background:var(--amber);color:#242323;text-decoration:none;
  border:1px solid var(--amber);border-radius:0;transition:background .18s,border-color .18s,color .18s}
.cta:hover,.act:hover{background:var(--ground);border-color:var(--ink-deep);color:var(--ink)}
.cta--ghost,.act--line{background:transparent;border-color:var(--rule2);color:var(--ink)}
.cta--ghost:hover,.act--line:hover{background:var(--tint);border-color:var(--ink-deep)}

/* ─── 節：見出しは見出しの大きさで組む ─────────────────────
   小さな余白見出しに一律で落とすと、主張が注記に見える。
   2026-08-19 ユーザー指摘（「文字が弱い」）を受けて傍注方式を廃止した。 */
.sec{border-top:1px solid var(--rule);padding-block:clamp(2.8rem,5.5vw,4.8rem)}
.sec__in{max-inline-size:var(--col);margin-inline:auto}
.sec__k{font-family:var(--display);font-weight:500;font-size:clamp(.95rem,1.6vw,1.12rem);
  color:var(--mute);letter-spacing:.1em;margin:0 0 .55rem}
.sec__h{font-family:var(--display);font-weight:800;line-height:1.5;
  font-size:clamp(1.38rem,2.9vw,2.1rem);margin:0 0 1.5rem;color:var(--ink-deep);
  max-inline-size:24em;letter-spacing:.01em}
.sec--lg .sec__h{font-size:clamp(1.55rem,3.5vw,2.55rem)}
.sec--sm .sec__h{font-size:clamp(1.05rem,1.9vw,1.28rem);margin-bottom:1.1rem;letter-spacing:.08em}
.sec__lead{font-size:clamp(1rem,1.7vw,1.1rem);color:var(--mute);margin:-.7rem 0 2rem;max-inline-size:34rem}
.sec__b{max-inline-size:var(--measure)}
.sec__b>*:first-child{margin-top:0}
.sec__b>*:last-child{margin-bottom:0}
.n{font-family:var(--display);font-size:.78rem;color:var(--mute);letter-spacing:.08em;
  margin-inline-end:.7em;font-weight:500}
.note{font-size:.85rem;color:var(--mute);line-height:1.9}
/* 和文の強調は圏点。ボールドは使わない */
.ken{font-style:normal;font-weight:inherit;
  -webkit-text-emphasis:filled dot;text-emphasis:filled dot;
  -webkit-text-emphasis-position:over right;text-emphasis-position:over right}
/* NEWS の日付。太字にせず、見出しの明朝で日付らしく見せる */
.sec--news .entry-content strong{font-family:var(--display);font-weight:600;color:var(--mute);
  letter-spacing:.06em;margin-inline-end:.5em}

/* ─── 開催回 ─── */
.sched{border-collapse:collapse;width:100%;margin:0 0 1.3em;font-variant-numeric:tabular-nums}
.sched th,.sched td{text-align:start;padding:.85em .6em;border-bottom:1px solid var(--rule)}
.sched th{font-size:.76rem;font-weight:400;color:var(--mute);letter-spacing:.06em;border-bottom-color:var(--rule2)}
.sched td:first-child{font-family:var(--display);font-size:1.02rem;font-weight:600}
.sched tbody tr:last-child td{border-bottom:1px solid var(--rule)}
.badge{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.06em;
  padding:.3em 1em;background:var(--amber);color:#242323}

/* ─── 対応言語：その人の文字で見せる（このページの核） ─── */
.langs{background:var(--tint);padding-block:clamp(3rem,6vw,5.4rem)}
.langs__k{font-family:var(--display);font-weight:600;font-size:.92rem;margin:0 0 1.8rem;letter-spacing:.02em}
.langs__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;
  gap:clamp(1.6rem,3.4vw,3.2rem) clamp(1.8rem,4vw,3.8rem);align-items:end}
.langs__list li{display:flex;flex-direction:column;justify-content:flex-end}
.native{display:block;font-size:clamp(1.55rem,3.4vw,2.5rem);line-height:1.35;font-weight:500;
  color:var(--ink-deep);letter-spacing:.01em}
.ja{display:block;font-size:.8rem;color:var(--mute);margin-top:.35rem;letter-spacing:.04em}
.ja--only{font-size:1rem;color:var(--ink);margin-top:0}
.native[lang="ne"]{font-family:"Noto Sans Devanagari",var(--body)}
.native[lang="my"]{font-family:"Noto Sans Myanmar",var(--body);line-height:1.7}
.native[lang="bn"]{font-family:"Noto Sans Bengali",var(--body)}
.native[lang="th"]{font-family:"Noto Sans Thai",var(--body);line-height:1.7}
.native[lang="zh"],.native[lang="en"],.native[lang="tl"],
.native[lang="vi"],.native[lang="id"]{font-family:var(--display)}
.langs__note{font-size:.85rem;color:var(--mute);margin:2.2rem 0 0}
.langs__soon{margin-top:2.8rem;padding-top:2.2rem;border-top:1px solid var(--rule2)}
.langs__soon .native{font-size:clamp(1.05rem,1.9vw,1.35rem);color:var(--mute)}
.langs__soon .ja{font-size:.74rem}
.langs__soon .ja--only{font-size:.9rem}

/* ─── 主張と、それを言っている人 ─── */
.claim{border-top:1px solid var(--rule);padding-block:clamp(3.2rem,6vw,5.6rem)}
.claim__h{font-family:var(--display);font-weight:800;line-height:1.65;color:var(--ink-deep);
  font-size:clamp(1.45rem,3.4vw,2.5rem);margin:0 auto clamp(2rem,4vw,3.2rem);max-inline-size:56.5rem}
.claim__in{display:grid;grid-template-columns:minmax(0,1fr);gap:0;
  max-inline-size:56.5rem;margin-inline:auto}
.claim__side{margin-bottom:2.4rem;max-inline-size:26rem;min-width:0}
.claim__fig{margin:0}
.claim__fig img{max-inline-size:13rem}
.claim__fig figcaption{font-family:var(--display);font-weight:600;font-size:.88rem;margin-top:.8rem;line-height:1.7}
.claim__role{display:block;font-family:var(--body);font-weight:400;font-size:.74rem;color:var(--mute);margin-top:.2rem}
.claim__b{min-width:0;max-inline-size:var(--measure)}
.claim__b h3{font-family:var(--display);font-weight:600;font-size:1.02rem;margin:0 0 1.4em;
  line-height:1.75;color:var(--mute)}
.claim__b p{margin:0 0 1.15em}
.claim__b p:last-child{margin-bottom:0}
.claim__b p:empty{display:none}
.pull{font-family:var(--display);font-weight:600;font-size:1.14rem;line-height:1.85;
  border-inline-start:3px solid var(--amber);padding-inline-start:1.2em;margin:1.9em 0!important}
/* 経歴は本人の識別情報なので、肖像と肩書の直下に置く */
.bio{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--rule);
  font-size:.82rem;color:var(--mute);line-height:1.9}
.bio p{margin:0 0 .9em}
.bio p:last-child{margin-bottom:0}
@media(min-width:62rem){
  .claim__in{grid-template-columns:17rem minmax(0,var(--measure));gap:0 3.5rem;align-items:start}
  .claim__side{margin-bottom:0;max-inline-size:none}
  .claim__fig img{max-inline-size:100%}
}

/* ─── 写真：切り落とさない ───────────────────────────
   元が4:3（1800×1350）の写真を全幅3.5:1の帯に収めると上下を6割以上切ることになり、
   「頭を残すと移乗の動作が切れる／動作を残すと頭が切れる」の二択になる。
   2026-08-20 ユーザー判断で**切らない**方を採り、74rem の器に原寸比のまま全体を見せる。
   ⚠️ object-fit / max-block-size は使わないこと（使うと切り落としが復活する）。 */
.plate{margin-block:clamp(1.4rem,3vw,2.6rem)}
.plate__in{max-inline-size:var(--sheet);margin-inline:auto;padding-inline:var(--pad)}
.plate img{inline-size:100%;block-size:auto}
.plate figcaption{font-size:.76rem;color:var(--mute);margin-top:.7rem}

/* ─── 訪問介護の要件：ここは順序に意味がある ─── */
.gates{list-style:none;margin:0;padding:0;counter-reset:g;max-inline-size:none}
.gates li{counter-increment:g;padding-block:1.25em;border-top:1px solid var(--rule);
  display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:0 .8rem;margin:0}
.gates li:first-child{border-top:0;padding-top:0}
.gates li::before{content:counter(g,decimal-leading-zero);font-family:var(--display);
  font-size:.8rem;color:var(--mute);letter-spacing:.06em;padding-top:.35em}
.gates__b{grid-column:2;min-width:0}
.gates__b h3{margin:0 0 .45em!important;font-size:1rem}
.gates__b p{margin:0}
.gates__b ol{padding-inline-start:1.2em;font-size:.94rem;margin:0}

/* ─── 索引 ─── */
.index{list-style:none;margin:0;padding:0}
.index li{border-top:1px solid var(--rule);margin:0}
.index li:first-child{border-top:0}
.index a{display:block;padding:.95em .2em;text-decoration:none;color:var(--ink);
  font-family:var(--display);font-weight:600;font-size:.98rem;transition:color .16s}
.index a:hover{color:var(--ember)}

/* ─── 足まわり（お問合せ）── 濃い面。--slab は明暗どちらでも濃いまま ─── */
.close{background:var(--slab);color:var(--slab-ink);padding-block:clamp(2.8rem,5vw,4.2rem);
  margin-top:clamp(2.6rem,5vw,4.4rem)}
.close__in{max-inline-size:var(--col);margin-inline:auto}
.close h2{font-family:var(--display);font-weight:600;font-size:1.3rem;margin:0 0 1rem;color:var(--slab-ink)}
.close__b{max-inline-size:var(--measure)}
.close p{margin:0 0 1.4em;font-size:.94rem}
.close a{color:var(--slab-link);text-underline-offset:3px}
.close__addr{font-size:.82rem;line-height:2;color:var(--slab-mute);margin-top:2.4rem!important}
.close__cta{margin:0!important}

/* ─── 汎用コンポーネント（他ページ） ─── */
.shot{position:relative;overflow:hidden;background:var(--track)}
.shot img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.shot figcaption{position:absolute;inset-inline:0;inset-block-end:0;padding:.7rem .9rem;
  background:linear-gradient(to top,rgba(28,26,25,.86),rgba(28,26,25,0));color:#fff;
  font-size:.73rem;letter-spacing:.03em;line-height:1.6}

.net{display:grid;border-top:1px solid var(--rule2);max-inline-size:var(--col)}
.netrow{display:grid;grid-template-columns:minmax(0,1fr);gap:.25rem .6rem;padding-block:1.1rem;border-bottom:1px solid var(--rule)}
@media(min-width:44rem){.netrow{grid-template-columns:13.5rem minmax(0,1fr);gap:0 2rem;align-items:baseline}}
.netrow__q{font-family:var(--display);font-weight:600;font-size:1.01rem;color:var(--ink-deep);line-height:1.7;margin:0}
.netrow__a{font-size:.94rem;line-height:1.95;margin:0}
.netrow__a b,.netrow__a strong{color:var(--ember)}
.net--table .netrow__q{color:var(--mute);font-family:var(--body);font-weight:700;font-size:.83rem}
.cite{display:inline-block;margin-inline-start:.4rem;font-size:.71rem;color:var(--mute);letter-spacing:.04em;white-space:nowrap}

.bandhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem 1.1rem;margin-bottom:1.1rem}
.bandhead h3{font-family:var(--display);font-weight:600;font-size:1.1rem;letter-spacing:.05em;margin:0;color:var(--ink-deep)}
.bandhead span{font-size:.75rem;color:var(--mute)}
.band{display:flex;width:100%;height:4.2rem;background:var(--track);border:1px solid var(--rule2);overflow:hidden}
/* ⚠️ 既定は「見える」。以前は transform:scaleX(0) が既定で、JS が .on を付けるまで
   帯が一切描かれなかった（本文が JS 待ちになる作りは全廃した） */
.seg{height:100%;border-right:1px solid var(--ground);background:var(--tint);position:relative}
.seg:last-child{border-right:0}
.seg--major{background:var(--amber)}
.seg em{position:absolute;inset-block-end:.35rem;inset-inline-start:.5rem;font-style:normal;
  font-family:var(--display);font-weight:800;font-size:1.3rem;color:#242323;line-height:1}
.seg:not(.seg--major) em{display:none}
.bandlegend{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.73rem;color:var(--mute);letter-spacing:.04em}

.items{margin:2rem 0 0;padding:0;list-style:none;border-top:1px solid var(--rule);max-inline-size:37rem}
.item{display:grid;grid-template-columns:1.9rem minmax(0,1fr) 4.1rem;gap:0 .9rem;align-items:baseline;
  padding-block:.7rem;border-bottom:1px solid var(--rule);margin:0;max-inline-size:none}
.item--major{background:var(--tint);margin-inline:-.6rem;padding-inline:.6rem}
.item__n{font-family:var(--display);font-weight:600;color:var(--mute);font-size:.91rem}
.item--major .item__n{color:var(--ember)}
.item__t{font-size:.94rem;line-height:1.7}
.item--major .item__t{font-weight:700}
.item__t small{display:block;font-weight:400;font-size:.8rem;color:var(--mute);line-height:1.75;margin-top:.15rem}
.item__h{font-family:var(--display);font-weight:800;font-size:1.06rem;text-align:right;
  font-variant-numeric:tabular-nums;color:var(--ink-deep)}
.item--major .item__h{font-size:1.48rem;color:var(--ember)}
.item__h i{font-style:normal;font-family:var(--body);font-weight:400;font-size:.65rem;color:var(--mute);margin-inline-start:.12rem}
.item--sum{border-bottom:2px solid var(--ink)}
.item--sum .item__t{font-weight:700}

.fees{display:grid;gap:1.4rem 2.6rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.fee{border-top:1px solid var(--rule2);padding-top:.9rem}
.fee__l{font-size:.82rem;color:var(--mute);letter-spacing:.04em;margin:0}
.fee__v{font-family:var(--display);font-weight:800;font-size:clamp(1.9rem,4.6vw,2.45rem);color:var(--ink-deep);
  line-height:1.25;margin:.1rem 0 .2rem;font-variant-numeric:tabular-nums}
.fee__v i{font-style:normal;font-family:var(--body);font-weight:400;font-size:.85rem;margin-inline-start:.15rem}
.fee__b{font-size:.78rem;color:var(--mute);margin:0;line-height:1.8}

.news{display:flex;flex-wrap:wrap;gap:.2rem 1.3rem;align-items:baseline}
.news time{font-family:var(--display);font-weight:600;color:var(--ember);font-size:.92rem;letter-spacing:.04em}
.newslist{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule2)}
.newslist li{display:flex;flex-wrap:wrap;gap:.2rem 1.3rem;align-items:baseline;
  padding-block:.9rem;border-bottom:1px solid var(--rule);font-size:.92rem;line-height:1.8}
.newslist time{font-family:var(--display);font-weight:600;color:var(--ember);font-size:.9rem;letter-spacing:.04em;flex:none}

/* ─── フッタ ─── */
.foot{background:var(--slab);color:var(--slab-ink);padding-block:clamp(2.3rem,6vw,3.4rem);margin-top:clamp(2rem,6vw,4rem)}
.foot__n{font-family:var(--display);font-weight:600;font-size:1.05rem;letter-spacing:.1em;margin:0 0 .9rem}
.foot p{margin:0;font-size:.84rem;line-height:2;color:#C7BCB5}
.foot a{color:var(--amber);text-underline-offset:3px}
.foot b{color:var(--slab-ink);font-weight:700;letter-spacing:.03em}
.foot__nav{display:flex;flex-wrap:wrap;gap:.35rem 1.4rem;margin-top:1.5rem;padding-top:1.2rem;
  border-top:1px solid var(--slab-rule);font-size:.82rem;line-height:2}
.foot__nav a{color:var(--slab-ink);text-decoration:underline;text-underline-offset:3px}

/* ─── 固定ページ本文 ─── */
/* 固定ページは版面いっぱい(74rem)ではなく「組の幅」に収める。
   1920px で一覧行・問答が 1000px 超に伸びていたため（2026-08-19 実測）。 */
/* ⚠️ セレクタは必ず article.page にする。素の .page だと WordPress の body_class() が
   固定ページの <body> に付ける "page" にも当たり、ヘッダ・ヒーロー・言語帯・全幅写真まで
   含めた版面全体が 952px（=--col+余白）に潰れる。2026-08-20 実測で
   .sheet が 1184px ではなく 952px、言語帯 840px、ヒーローのテキスト段 383px になっていた。 */
article.page{max-inline-size:calc(var(--col) + var(--pad) * 2);padding-block:clamp(2.4rem,5vw,3.8rem) 0}
.page-h1{font-family:var(--display);font-weight:800;font-size:clamp(1.9rem,4.6vw,2.7rem);
  letter-spacing:.02em;margin:0 0 1.6rem;color:var(--ink-deep);line-height:1.4;max-inline-size:24em}
article.page>.sec:first-of-type{border-top:0;padding-top:0}

/* 原稿から変換されたHTML(the_content)そのままを、原本トークンで整える。
   ⚠️ 走る本文には必ず measure を効かせる（1920px で行が伸びきる欠陥の再発防止）。 */
.entry-content{font-size:.98rem;line-height:2;max-inline-size:var(--col)}
/* 同じ要素に .sec__b と .entry-content が付く（トップの節）。measure を必ず勝たせる */
.sec__b.entry-content{max-inline-size:var(--measure)}
.entry-content p,.entry-content li,.entry-content blockquote{max-inline-size:var(--measure)}
.entry-content td p,.entry-content th p,.entry-content .gates__b p,
.entry-content .gates__b li,.entry-content .items li,.entry-content .index li{max-inline-size:none}
.entry-content h1{font-family:var(--display);font-weight:800;font-size:clamp(1.4rem,3.4vw,1.95rem);
  color:var(--ink-deep);margin:1.8rem 0 1rem;line-height:1.45}
.entry-content h2{font-family:var(--display);font-weight:800;font-size:clamp(1.3rem,3vw,1.7rem);
  color:var(--ink-deep);letter-spacing:.02em;line-height:1.5;margin:2.4rem 0 1.1rem;
  padding-top:1.6rem;border-top:1px solid var(--rule)}
.entry-content > h2:first-child{border-top:0;padding-top:0;margin-top:0}
.entry-content h3{font-family:var(--display);font-weight:600;font-size:1.06rem;
  color:var(--ink-deep);letter-spacing:.02em;line-height:1.7;margin:2.2em 0 .7em}
.entry-content h3:first-child{margin-top:0}
.entry-content p{margin:0 0 1.15em}
.entry-content ul,.entry-content ol{margin:0 0 1.15em;padding-inline-start:1.3rem}
.entry-content li{margin-block:.4em;line-height:1.9}
.entry-content strong{color:var(--ember);font-weight:700}
.entry-content a{color:var(--ember);text-underline-offset:3px}
.entry-content a:hover{color:var(--ink-deep)}
.entry-content hr{border:none;border-top:1px solid var(--rule);margin:2.2rem 0}
.entry-content blockquote{margin:1.4rem 0;padding:1rem 1.3rem;background:var(--tint);
  border-inline-start:3px solid var(--amber);font-size:.88rem;line-height:1.9;color:var(--ink)}
/* 幅の広い表は、ページ本体ではなく表の中だけを横スクロールさせる */
.entry-content table{width:100%;border-collapse:collapse;margin:0 0 1.6rem;font-size:.9rem}
.entry-content table caption{caption-side:top;text-align:left;color:var(--mute);font-size:.78rem;margin-bottom:.4rem}
.entry-content th,.entry-content td{padding:.65rem .8rem;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.entry-content thead th{color:var(--mute);font-weight:700;font-size:.8rem;letter-spacing:.03em;border-bottom:1px solid var(--rule2)}
.entry-content tbody tr:last-child td{border-bottom:2px solid var(--ink)}
.sec__b .sched tbody tr:last-child td{border-bottom:1px solid var(--rule)}

/* .sec__b は .entry-content も兼ねるため、汎用の ul/ol/li 規則が .gates/.index を
   上書きしてしまう。詳細度を揃えて専用コンポーネントを勝たせる。 */
.entry-content ol.gates,.entry-content ul.index{padding:0;margin:0;list-style:none}
.entry-content .gates>li{margin:0;padding-block:1.25em;line-height:1.9}
.entry-content .gates>li:first-child{padding-top:0}
.entry-content .index>li{margin:0}
.entry-content .gates__b ol{padding-inline-start:1.2em;margin:0}
.entry-content .gates__b li{margin-block:.25em}
.entry-content .index a{color:var(--ink);text-decoration:none}
.entry-content .index a:hover{color:var(--ember)}

/* ══════════════════════════════════════════════════════════════════
   受講申込フォーム（[oa_apply_form]・Task 11）。既存トークンのみ使用し、
   角丸・カード・グラデーションは付けない。
   ══════════════════════════════════════════════════════════════════ */
.oaform{margin-top:1rem}
.oaform__group{border:0;padding:0;margin:0 0 2.4rem}
.oaform__legend{font-family:var(--display);font-weight:600;font-size:1.05rem;color:var(--ink-deep);
  letter-spacing:.03em;padding:0 0 .6rem;margin:0 0 1.3rem;width:100%;border-bottom:1px solid var(--rule2)}
.oaform__row{margin:0 0 1.3rem}
.oaform__label{display:block;font-size:.86rem;font-weight:700;color:var(--ink-deep);margin:0 0 .4rem;letter-spacing:.02em}
.oaform__req{display:inline-block;margin-inline-start:.5em;font-size:.68rem;font-weight:700;color:var(--ember);
  border:1px solid var(--ember);padding:.05em .5em;letter-spacing:.05em;vertical-align:middle}
.oaform__input{display:block;width:100%;max-width:28rem;font:inherit;font-size:.94rem;color:var(--ink);
  background:var(--ground);border:1px solid var(--rule2);padding:.7rem .85rem;border-radius:0}
select.oaform__input{max-width:20rem}
.oaform__textarea{max-width:100%;resize:vertical}
.oaform__hint{display:block;margin-top:.4rem;font-size:.79rem;color:var(--mute);line-height:1.7}
.oaform__hint a{color:var(--ember);text-underline-offset:3px}
.oaform__err{margin:.4rem 0 0;font-size:.82rem;color:var(--ember);font-weight:700}
.oaform__err--top{padding:.9rem 1rem;background:var(--tint);border-inline-start:3px solid var(--ember);margin-bottom:1.6rem}
.oaform__row--check{display:flex;flex-direction:column;gap:.3rem}
.oaform__checklabel{display:flex;align-items:flex-start;gap:.55em;font-size:.88rem;line-height:1.8}
.oaform__checklabel input{margin-top:.35em}
.oaform__checklabel a{color:var(--ember);text-underline-offset:3px}
.oaform__submitrow{margin-top:.4rem}
.oaform__submitrow .act{border:1.5px solid var(--ink);cursor:pointer;font:inherit;border-radius:0}
.oaform__done{padding:1.4rem 1.5rem;background:var(--tint);border-inline-start:3px solid var(--amber)}
/* ハニーポット欄: display:none は一部のボットに検出されやすいためオフスクリーンに置く */
.oaform__hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px}

@media(max-width:34rem){.band{height:3.2rem}.seg em{font-size:1rem}.item{grid-template-columns:1.6rem minmax(0,1fr) 3.6rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
