/*
 * ボランティア募集 /volunteer/・/volunteer/{slug}/・/volunteer/apply/（volunteer.php が該当ページでだけ読む）。
 * 色・角丸は tokens.css の変数を使う。左だけ太線の枠は使わない（補足は線なし・角丸・地の色）。
 * 主ボタンは白い文字が読めるよう --rose-dark の地にする（2026-11-02 運営者と決めたデザイン）。
 */
.volpage { gap: 22px; }
.volpage p { margin: 0; }

/* 線画アイコン（stroke は currentColor） */
.volic { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.volic--rose { color: var(--rose-ink); }
.volic--sage { color: var(--sage-ink); }
.volic--amber { color: var(--amber-ink); }

/* 主ボタン */
.site-main .volpage a.volbtn:not(.btn):not(.chip):not(.clinic-card__link),
.volbtn {
	display: flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 56px; padding: 0 20px; box-sizing: border-box; width: 100%;
	border-radius: var(--r-pill); background: var(--rose-dark); color: #fff;
	font-size: 1.067rem; font-weight: 700; line-height: 1.4; text-decoration: none;
	box-shadow: 0 8px 18px rgba(201, 118, 106, .28);
}
.site-main .volpage a.volbtn:not(.btn):not(.chip):not(.clinic-card__link):hover { background: var(--rose-ink); color: #fff; }
.volbtn--disabled { background: var(--line); color: var(--stone-ink); box-shadow: none; cursor: not-allowed; }

/* ---- 一覧：FV ---- */
.volfv { display: flex; flex-direction: column; align-items: center; gap: 18px; margin-top: -6px; }
.volfv__img { display: block; width: 100%; height: auto; }
.volfv__title { margin: 2px 0 0; font-size: 1.6rem; font-weight: 900; line-height: 1.6; letter-spacing: .03em; text-align: center; }
.volfv__mark { color: var(--rose-dark); background: linear-gradient(transparent 62%, #fbe6a2 62%); }
/* 何のための募集かを見出しのすぐ下で伝える（2026-11-03 運営者と決めた改善案） */
.volfv__lead { max-width: 440px; font-size: 1.067rem; line-height: 1.9; text-align: center; color: #3d322d; }
/* 特徴の3つ。読み飛ばされないよう、アイコンの下に文字の2行・中央寄せで、スマホでも3枚を横に並べる */
.volfv__chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; margin: 0; padding: 0; list-style: none; }
.volfv__chips li {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 14px 6px; border-radius: var(--r-14);
	background: var(--surface); font-size: .933rem; font-weight: 700; line-height: 1.4; text-align: center; box-shadow: 0 4px 14px rgba(120, 90, 80, .07);
}
.volfv__chips .volic { width: 30px; height: 30px; }
.volfv .volbtn { margin-top: 4px; }

/* ---- 一覧：見出し・カード ---- */
.volpage__group { display: flex; flex-direction: column; gap: 14px; scroll-margin-top: 12px; }
.volpage__h2 { margin: 18px 0 2px; font-size: 1.467rem; font-weight: 900; line-height: 1.4; letter-spacing: .04em; }
.volpage__h2--sub { margin-top: 8px; font-size: 1.2rem; }
.volpage__en { display: block; margin-bottom: 6px; font-size: .867rem; font-weight: 700; letter-spacing: .2em; color: var(--rose-ink); }
.volpage__note { font-size: .933rem; color: var(--text-2); }

.volnum { flex: none; font-size: 1.867rem; font-weight: 900; line-height: 1; color: var(--rose-dark); }
.volnum--lg { font-size: 2rem; }

/* カードは囲みだけ。リンクは「詳しく見る」のボタンだけ（誤タップを防ぐ）
 * 頭に種類の絵、早見表は色つきの絵の行にして、文字の塊に見えないようにする（2026-11-03 運営者と決めた改善案） */
.volcard {
	display: flex; flex-direction: column; gap: 16px; padding: 22px 20px 20px;
	border-radius: var(--r-22); background: var(--surface); box-shadow: 0 6px 20px rgba(120, 90, 80, .07);
	color: var(--ink);
}
.volcard__head { display: flex; align-items: center; gap: 14px; }
.volcard__icon { display: flex; flex: none; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 18px; }
.volcard__icon .volic { width: 28px; height: 28px; stroke-width: 2; }
.volcard__icon--rose { background: var(--rose-tint); color: var(--rose-ink); }
.volcard__icon--sage { background: var(--sage-tint); color: var(--sage-ink); }
.volcard__name { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.volcard__label { font-size: .867rem; font-weight: 700; letter-spacing: .08em; }
.volcard__label--rose { color: var(--rose-ink); }
.volcard__label--sage { color: var(--sage-ink); }
.volcard__title { margin: 0; font-size: 1.333rem; font-weight: 700; line-height: 1.4; }
.volcard__summary { font-size: 1.067rem; line-height: 1.85; color: #3d322d; }
.volcard__facts { display: flex; flex-direction: column; margin: 0; border-top: 1px solid var(--line); }
.volcard__fact { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.volcard__fact dt { display: flex; flex: none; align-items: center; gap: 12px; font-size: .867rem; font-weight: 700; color: var(--ink-2); line-height: 30px; }
.volcard__fact dd { margin: 0; padding-top: 3px; font-size: 1rem; line-height: 1.6; }
.volcard__fact dd .volplans-open { display: flex; margin-top: 8px; }
.volcard__ficon { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; }
.volcard__ficon .volic { width: 17px; height: 17px; stroke-width: 2.2; }
.volcard__ficon--rose { background: var(--rose-tint); color: var(--rose-ink); }
.volcard__ficon--sage { background: var(--sage-tint); color: var(--sage-ink); }
.volcard__ficon--amber { background: var(--amber-tint); color: var(--amber-ink); }
.site-main .volpage a.volcard__more:not(.btn):not(.chip):not(.clinic-card__link),
.volcard__more {
	display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px;
	border-radius: var(--r-pill); background: var(--surface); color: var(--rose-ink); font-size: 1.067rem; font-weight: 700;
	box-shadow: inset 0 0 0 2px #f2c9c1; text-decoration: none;
}
.site-main .volpage a.volcard__more:not(.btn):not(.chip):not(.clinic-card__link):hover { background: var(--rose-tint-weak); color: var(--rose-ink); }
.volcard__more .volic { width: 18px; height: 18px; }
/* 受付を止めている募集は地を落とし、影を外す（読めることは変えない） */
.volcard--paused { background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); }
.volcard--paused .volcard__icon { background: var(--surface); color: var(--stone-ink); }
.volcard__name .volbadge { margin-bottom: 4px; }

/* 受付の状態の札。色だけに頼らず必ず文言を出す */
.volbadge {
	display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 0 12px;
	border-radius: var(--r-pill); font-size: var(--fs-label); font-weight: 700; line-height: 1;
	background: var(--surface); color: var(--stone-ink); box-shadow: inset 0 0 0 1px var(--line);
}
.volbadge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.volbadge--open { background: var(--sage-tint); color: var(--sage-ink); box-shadow: none; }

/* 0件のとき・受付停止の知らせ（線なし・角丸・地の色） */
.volempty, .volstop { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-radius: var(--r-14); background: #f1ebe6; }
.volempty__title, .volstop__title { font-size: var(--fs-body); font-weight: 700; }
.volempty p, .volstop p { font-size: .933rem; line-height: 1.8; }

/* 番号つきの段（詳細の「作業の流れ」）。1段ずつ地の色の四角にして、カードのように並べる（2026-11-03 運営者） */
.volsteps { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.volsteps li { display: flex; gap: 12px; padding: 14px 16px; border-radius: var(--r-14); background: var(--bg); }
.volsteps__n {
	display: flex; flex: none; align-items: center; justify-content: center; width: 28px; height: 28px; margin-top: 1px;
	border-radius: 50%; background: var(--rose-dark); color: #fff; font-size: .933rem; font-weight: 900;
}
.volsteps p { display: flex; flex-direction: column; font-size: 1rem; line-height: 1.8; }
.volsteps p span { font-size: .933rem; color: var(--ink-2); }
.volsteps p .volsteps__note { margin-top: 2px; font-size: .8rem; line-height: 1.6; }

/* ---- 詳細：1枚の白い地 ---- */
.voldoc { display: flex; flex-direction: column; padding: 26px 22px 32px; border-radius: var(--r-22); background: var(--surface); }
.voldoc__head { display: flex; flex-direction: column; gap: 12px; }
.voldoc__kind { display: flex; align-items: center; gap: 14px; }
.voldoc__title { margin: 0; font-size: 1.4rem; font-weight: 900; line-height: 1.4; }
.voldoc__lead { font-size: 1.067rem; line-height: 1.85; color: #3d322d; }
.voldoc > .volbtn { margin-top: 22px; }
/* 募集要項は一覧のカードと同じ絵の行（.volcard__facts）。説明の2行目からは✓の要点にして地の色の四角に入れる（2026-11-03 運営者） */
.volcard__facts--doc { margin-top: 20px; }
.volpoints { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; padding: 16px; border-radius: var(--r-14); background: var(--bg); }
.volchecks { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.volchecks li { display: flex; align-items: flex-start; gap: 10px; font-size: 1rem; line-height: 1.75; color: #3d322d; }
.volchecks .volic { width: 20px; height: 20px; margin-top: 4px; stroke-width: 2.6; color: var(--sage-ink); }
.volchecks--box { gap: 8px; margin-top: 14px; }
.volchecks--box li { padding: 12px 14px; border-radius: var(--r-14); background: var(--bg); color: var(--ink); font-weight: 700; }

/* 募集要項・記入例（見出し｜内容の表） */
.volspec { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0 16px; margin: 20px 0 0; border-top: 1px solid #efe4dc; font-size: 1rem; line-height: 1.7; }
.volspec dt, .volspec dd { margin: 0; padding: 11px 0; border-bottom: 1px solid #efe4dc; }
.volspec dt { font-size: .933rem; font-weight: 700; color: var(--ink-2); }
.volspec--box { margin-top: 12px; padding: 4px 16px; border-top: 0; border-radius: var(--r-14); background: var(--bg); }
.volspec--box dt:nth-last-child(2), .volspec--box dd:last-child { border-bottom: 0; }

/* 節（点線で区切る。地は切らない） */
.volsec { margin-top: 28px; padding-top: 28px; border-top: 2px dashed #efe4dc; scroll-margin-top: 12px; }
.volsec__h { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 1.267rem; font-weight: 900; line-height: 1.5; }
.volsec__icon { display: flex; flex: none; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 12px; background: var(--rose-tint); color: var(--rose-ink); }
.volsec__lead { margin-top: 8px !important; font-size: 1rem; line-height: 1.8; color: #3d322d; }
.volsec__small { margin-top: 12px !important; font-size: .867rem; line-height: 1.7; color: var(--ink-2); }
.volsec__ol, .volsec__ul { display: flex; flex-direction: column; gap: 6px; margin: 10px 0 0; padding-left: 1.4em; font-size: 1rem; line-height: 1.8; }
.volsec .volbtn { margin-top: 16px; }
.volsec .volsteps { margin-top: 14px; }


/* 会話の例（あなた＝右・ローズ、相手＝左・地の色） */
.voltalk { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
/* 自分（あなた）の言葉は左、病院は右（2026-11-03 運営者） */
.voltalk__row { display: flex; flex-direction: column; align-self: flex-end; align-items: flex-end; max-width: 320px; }
.voltalk__row--me { align-self: flex-start; align-items: flex-start; }
.voltalk__who { margin-bottom: 4px; font-size: .8rem; font-weight: 700; color: var(--ink-2); }
.voltalk__say { padding: 12px 16px; border-radius: 18px; border-top-right-radius: 6px; background: var(--bg); font-size: 1rem; line-height: 1.8; }
.voltalk__row--me .voltalk__say { border-top-left-radius: 6px; border-top-right-radius: 18px; background: var(--rose-tint); }

/* よくある質問（質問だけを並べ、押すと答えが開く。2026-11-03 運営者） */
.volqa { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
.volqa__item { border-radius: var(--r-14); background: var(--bg); }
.volqa__item summary {
	display: flex; align-items: flex-start; gap: 10px; min-height: var(--h-min); padding: 13px 14px; box-sizing: border-box;
	font-size: 1rem; font-weight: 700; line-height: 1.6; cursor: pointer; list-style: none;
}
.volqa__item summary::-webkit-details-marker { display: none; }
.volqa__item summary:focus-visible { outline: 2px solid var(--rose-ink); outline-offset: 2px; border-radius: var(--r-14); }
.volqa__q {
	display: flex; flex: none; align-items: center; justify-content: center; width: 26px; height: 26px;
	border-radius: 50%; background: var(--rose-dark); color: #fff; font-size: .867rem; font-weight: 900; line-height: 1;
}
.volqa__q--a { background: var(--surface); color: var(--rose-ink); box-shadow: inset 0 0 0 2px #f2c9c1; }
.volqa__text { flex: 1; min-width: 0; }
.volqa__chev { width: 20px; height: 20px; margin-top: 3px; color: var(--ink-2); transition: transform .2s; }
.volqa__item[open] .volqa__chev { transform: rotate(180deg); }
.volqa__a { display: flex; align-items: flex-start; gap: 10px; padding: 0 14px 16px; }
.volqa__a p { font-size: 1rem; line-height: 1.8; color: #3d322d; }

.voldetail__back { font-size: 1rem; }

/* 共通の応募フォーム（選択肢は地の色の四角。intake の label 規則より強く当てる） */
.site-main .intakeform .volform__choices { padding: 0; border: 0; min-width: 0; }
.site-main .intakeform .volform__choices > legend { float: left; width: 100%; margin-bottom: 10px; padding: 0; }
.site-main .intakeform .volform__choices > legend + * { clear: both; }
.volform__list { display: flex; flex-direction: column; gap: 8px; }
.site-main .intakeform .volchoice {
	display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 12px 14px;
	border-radius: var(--r-14); background: var(--bg); color: var(--ink); font-weight: 400; cursor: pointer;
}
.site-main .intakeform .volchoice > input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--rose); }
.volchoice__text { display: flex; flex-direction: column; gap: 2px; font-size: .933rem; line-height: 1.6; }
.volform__age { font-size: var(--fs-label); color: var(--text-2); }
.site-main .intakeform .volchoice.is-disabled { cursor: default; opacity: .55; }
/* Gmailアドレスの欄は Android を選んだときだけ出す（:has が使えない端末では常に出す） */
@supports selector(:has(*)) {
	.volform:not(:has(input[name="devices[]"][value="android"]:checked)) .volform__google { display: none; }
}

/* 詳細ページの応募フォーム（このページで送り、受付完了・エラーもここに出す）
 * 白い地の外に出し、ローズの地で区切る。フォーム自体は白い四角に入れて、入力欄の地の色と見分けられるようにする（2026-11-03 運営者） */
.volapply { display: flex; flex-direction: column; padding: 26px 18px 22px; border-radius: var(--r-22); background: var(--rose-tint); scroll-margin-top: 12px; }
.volapply .volsec__icon { background: var(--surface); }
.volapply .volsec__lead { color: var(--ink); }
.volapply > .volbtn { margin-top: 16px; }
.volform-wrap { margin-top: 16px; padding: 20px 16px; border-radius: var(--r-20); background: var(--surface); }
.volform-wrap .volform { display: flex; flex-direction: column; gap: 4px; }
.volform-wrap .intake__actions { margin: 8px 0 0; }
.volform .volform__submit {
	width: 100%; min-height: 56px; border-radius: var(--r-pill); background: var(--rose-dark); color: #fff;
	font-size: 1.067rem; box-shadow: 0 8px 18px rgba(201, 118, 106, .28);
}
.volform .volform__submit:hover { background: var(--rose-ink); }
.volform__done { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-radius: var(--r-14); background: var(--sage-tint); }
.volform__done-title { font-size: var(--fs-body); font-weight: 700; color: var(--sage-ink); }
.volform__done p { font-size: .933rem; line-height: 1.8; }

/* ---- 詳細：電話の募集の「通話料の掛からないプラン一覧」（template/volunteer-call-plans.php） ---- */
.volplans-open {
	display: inline-flex; align-self: flex-start; align-items: center; gap: 8px; min-height: var(--h-min); margin-top: 4px; padding: 0 18px;
	border: 0; border-radius: var(--r-pill); background: var(--rose-tint); color: var(--rose-ink);
	font: inherit; font-size: .933rem; font-weight: 700; line-height: 1.4; cursor: pointer;
}
.volplans-open:hover { background: #fbd9d2; }
.volplans-open:focus-visible, .volplans :focus-visible { outline: 2px solid var(--rose-ink); outline-offset: 3px; }
.volplans-open .volic { width: 20px; height: 20px; }
.volplans__close:focus-visible { outline-offset: 0; }
.volplans {
	box-sizing: border-box; width: min(520px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); margin: auto; padding: 0;
	border: 0; border-radius: var(--r-22); background: var(--surface); color: var(--ink); box-shadow: var(--shadow-card);
	font-family: var(--font); overflow: auto; overscroll-behavior: contain;
}
.volplans::backdrop { background: rgb(60 45 40 / 45%); }
.volplans__body { display: flex; flex-direction: column; gap: 14px; padding: 18px 18px 22px; }
.volplans p { margin: 0; }
.volplans__head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: -18px -18px 0; padding: 14px 12px 10px 18px; background: var(--surface); box-shadow: 0 1px 0 #efe4dc; }
.volplans__title { margin: 0; font-size: 1.133rem; font-weight: 900; line-height: 1.5; }
.volplans__close {
	display: inline-flex; flex: none; align-items: center; justify-content: center; width: var(--h-min); height: var(--h-min); padding: 0;
	border: 0; border-radius: var(--r-pill); background: var(--bg); color: var(--ink-2); cursor: pointer;
}
.volplans__lead { font-size: .933rem; line-height: 1.8; color: #3d322d; }
.volplans__date { font-size: var(--fs-label); font-weight: 700; color: var(--ink-2); }
.volplans__co { padding: 12px 14px 14px; border-radius: var(--r-14); background: var(--bg); }
.volplans__name { margin: 0; font-size: 1rem; font-weight: 900; line-height: 1.5; }
.volplans__name span { margin-left: 8px; font-size: var(--fs-min); font-weight: 500; color: var(--ink-2); }
.volplans__list { display: flex; flex-direction: column; gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
.volplans__plan { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: .933rem; line-height: 1.6; }
.volplans__tag { flex: none; padding: 1px 8px; border-radius: var(--r-pill); background: var(--amber-tint); color: var(--amber-ink); font-size: var(--fs-badge); font-weight: 700; line-height: 1.6; }
.volplans__tag--all { background: var(--sage-tint); color: var(--sage-ink); }
.volplans__cond { font-size: var(--fs-min); line-height: 1.6; color: var(--ink-2); }
.volplans__src { margin-top: 8px !important; font-size: var(--fs-min); line-height: 1.7; color: var(--ink-2); }
.volplans__src a { color: var(--rose-ink); }
.volplans__note { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; border-radius: var(--r-14); background: var(--rose-tint-weak); font-size: .867rem; line-height: 1.7; }
