/* 応募フォーム（モック v7 form.html の <style> をそのまま移したもの） */
  /* 2026-10-04：見た目はモック v5（緑とクリーム色）に寄せた。色・文字・カード・ボタンなどは form-v5.css が後から上書きする（ここは並べ方の土台） */
  /* 2026-10-02 v7：デジタル庁デザインシステム（DADS）の部品で組み直した。
     園の先生がスマホで開く画面なので style.css は読み込まず、DADS の部品（assets/dads/dads.css）だけで組む。
     フォームの決まり（DADS フォームコントロールラベル）：
       ・項目の見出しは欄の上・太字、必須は「※必須」（赤）、任意は「※任意」
       ・補足（サポートテキスト）は見出しのすぐ下、エラーは欄の下に赤字で「＊」から
       ・送る前に、誤りを画面の上にまとめて出し（各項目へ飛べる）、入力内容の確認画面をはさむ
     色・文字・余白は DADS の変数と 8px の倍数だけを使う。 */
  :root {
    --ink: var(--color-neutral-solid-gray-900);
    --ink-2: var(--color-neutral-solid-gray-700);
    --line: var(--color-neutral-solid-gray-200);
    --line-strong: var(--color-neutral-solid-gray-420);
    --surface-2: var(--color-neutral-solid-gray-50);
    --brand: var(--color-key-900);
  }
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; }
  body {
    margin: 0; font-family: var(--font-family-sans); font-size: 16px; line-height: 1.7; letter-spacing: .02em;
    color: var(--ink); background: var(--color-neutral-white);
  }
  h1, h2, h3, p, ul, ol, dl, dd { margin: 0; }
  ul.plain { padding: 0; list-style: none; }
  b, strong { font-weight: 700; }
  a { color: var(--color-key-900); text-decoration: underline; text-underline-offset: 3px; }
  a:hover { color: var(--color-key-1000); text-decoration-thickness: 3px; }
  :focus-visible { outline: 4px solid var(--color-neutral-black); outline-offset: 2px; box-shadow: 0 0 0 2px var(--color-primitive-yellow-300); }
  .ic-svg { width: 1.1em; height: 1.1em; vertical-align: -.2em; flex-shrink: 0; }
  [hidden] { display: none !important; }
  .nowrap { white-space: nowrap; }

  /* 確認用の帯（本文の邪魔をしないよう薄く） */
  .mock-banner { background: var(--surface-2); color: var(--ink-2); text-align: center; font-size: 14px; padding: 4px 16px; line-height: 1.6; border-bottom: 1px solid var(--line); }
  /* サービス名の帯 */
  .pub-bar { border-bottom: 1px solid var(--line); }
  .pub-bar-in { max-width: 720px; margin: 0 auto; padding: 16px; display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 16px; }
  .pub-bar .mark { width: 24px; height: 24px; border-radius: 4px; background: var(--brand); flex-shrink: 0; }

  .wrap { max-width: 720px; margin: 0 auto; padding: 24px 16px 64px; }
  /* 進み具合（DADS ステップナビゲーション）。3段が390px幅に収まる幅にする */
  .steps { margin: 0 -16px 16px; --_step-width: 200; --_step-min-width: 112; }
  .steps ul { margin: 0; padding: 0; list-style: none; justify-content: center; }
  .page-h { font-size: 24px; line-height: 1.5; font-weight: 700; margin-top: 8px; }
  .lead { margin-top: 8px; display: grid; gap: 0; }
  .lead p { color: var(--ink-2); }
  /* 札（DADS チップラベル。v7 の決まり：枠線つき・角丸4px・14px・太字） */
  .dads-chip-label.tag { min-height: 28px; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 700; line-height: 1.5; white-space: nowrap; }
  .draft-note { margin-top: 8px; font-size: 14px; color: var(--ink-2); display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; }
  .draft-note:empty { display: none; }
  .banner-gap { margin-top: 24px; }
  .dads-notification-banner ul { padding-left: 1.4em; }
  .dads-notification-banner li + li { margin-top: 4px; }
  .dads-notification-banner p + p { margin-top: 8px; }

  /* まとまり（見出し＋項目） */
  .sec { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line-strong); }
  .sec:first-of-type { margin-top: 32px; }
  .sec-h { font-size: 20px; line-height: 1.5; font-weight: 700; display: flex; align-items: baseline; gap: 8px; }
  .sec-h .no { color: var(--brand); font-variant-numeric: tabular-nums; }
  .sec-lead { margin-top: 8px; color: var(--ink-2); }
  .fields { display: grid; gap: 32px; margin-top: 24px; }
  .fields-sm { display: grid; gap: 24px; margin-top: 16px; }

  /* 入力欄は枠の幅いっぱい（必要なものだけ幅を絞る） */
  .dads-input-text__input, .dads-textarea__textarea { width: 100%; }
  .dads-select__control, .dads-select__select { width: 100%; }
  .w-s { max-width: 200px; }
  .w-m { max-width: 360px; }
  .dads-textarea__textarea { min-height: 120px; }
  .with-unit { display: flex; align-items: center; gap: 8px; }
  .with-unit .dads-input-text { width: 128px; }
  .err { margin: 0; color: var(--color-semantic-error-1); line-height: 1.5; }
  .num-item .dads-form-control-label__error-text { margin-top: 4px; }
  .field-note { font-size: 14px; color: var(--ink-2); margin-top: 4px; }
  .field-note:empty { display: none; }

  /* 照合できた園 */
  .found { border: 1px solid var(--line-strong); border-radius: 8px; padding: 16px; margin-top: 16px; }
  .found h3 { font-size: 17px; line-height: 1.5; }
  .kv { margin-top: 8px; display: grid; }
  .kv > div { display: grid; grid-template-columns: 96px 1fr; gap: 8px; padding: 8px 0; border-top: 1px solid var(--line); }
  .kv dt { font-weight: 700; color: var(--ink); }
  .found .note { margin-top: 8px; font-size: 14px; color: var(--ink-2); }
  .btn-row { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 16px; align-items: center; }
  .sub-box { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
  .manual-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }

  /* 日程：日付のチェックボックスを並べる */
  .date-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 8px; }
  .day-slot-list { display: grid; gap: 0; }
  .day-slot-row { margin: 0; padding: 8px 0; border: 0; border-top: 1px solid var(--line); min-width: 0; }
  .day-slot-row:last-child { border-bottom: 1px solid var(--line); }
  /* スマホ：日付を1行目に、時間帯3つを2行目に横一列で並べる（360px 幅でも折れない） */
  .day-slot-row legend { float: left; width: 100%; padding: 8px 0 0; font-weight: 700; white-space: nowrap; }
  .day-slot-row .opts { clear: both; display: grid; grid-template-columns: repeat(3, max-content); gap: 0 16px; }
  .day-slot-row .opts .dads-checkbox__label { white-space: nowrap; }
  .day-slot-row .err { clear: both; padding-top: 4px; }
  .ds-empty { padding: 16px; border: 1px dashed var(--line-strong); border-radius: 8px; color: var(--ink-2); text-align: center; }
  .ds-summary { color: var(--ink-2); }
  .ds-summary:empty { display: none; }
  .ds-summary b { color: var(--ink); }
  .radio-row { display: flex; flex-wrap: wrap; gap: 0 32px; }
  .num-grid { display: grid; gap: 16px; }

  /* 送るところ */
  .submit-area { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line-strong); display: grid; gap: 16px; }
  .submit-area .dads-button { width: 100%; }
  .submit-area .note { color: var(--ink-2); font-size: 14px; text-align: center; }
  .confirm-acts { display: grid; gap: 16px; margin-top: 40px; }
  .confirm-acts .dads-button { width: 100%; }

  /* 確認画面の表（DADS テーブル：行の見出しは薄いグレー・太字） */
  .cf-sec { margin-top: 32px; }
  .cf-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .cf-head h2 { font-size: 20px; line-height: 1.5; }
  .cf-table { width: 100%; margin-top: 8px; line-height: 1.6; }
  .cf-table .dads-table__table { width: 100%; }
  .cf-table th { width: 36%; vertical-align: top; }
  .cf-table td { overflow-wrap: anywhere; }
  /* スマホでは見出しと中身を縦に積む（見出しが2行に折れないように） */
  @media (max-width: 559px) {
    .cf-table tr, .cf-table th, .cf-table td { display: block; width: 100%; }
    .cf-table .dads-table__table th { border-right: 0; border-bottom: 0; padding-top: 8px; padding-bottom: 8px; }
    .cf-table .dads-table__table td { padding-top: 8px; padding-bottom: 16px; }
  }
  .copy-head { flex-wrap: wrap; }
  .copy-head .dads-button { white-space: nowrap; }
  .cf-no { color: var(--color-semantic-error-1); font-weight: 700; }
  /* 確認画面：メールアドレスは打ち間違いが多いので、表とは別に大きく出す */
  .mail-check { margin-top: 24px; border: 2px solid var(--brand); border-radius: 8px; padding: 16px; }
  .mail-check .addr { margin-top: 8px; font-size: 20px; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; }
  .mail-check .btn-row { margin-top: 8px; }

  /* 完了画面 */
  .done-kv { margin-top: 24px; }
  .done-kv > div { grid-template-columns: 112px 1fr; }
  .done-kv .rno { font-size: 20px; font-weight: 700; letter-spacing: .08em; font-variant-numeric: tabular-nums; }
  .info-sec { margin-top: 32px; }
  /* 締め切った回の URL で開いたときの、受付中の回の一覧（2つ以上のとき） */
  .open-rounds { margin: 8px 0 0; padding-left: 1.5em; list-style: disc; }
  .open-rounds li + li { margin-top: 8px; }
  .info-sec h2 { font-size: 20px; line-height: 1.5; }
  .info-sec > p { margin-top: 8px; }
  .contact { margin-top: 8px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 16px; display: grid; gap: 4px; }
  .contact .tel { font-size: 20px; font-weight: 700; }

  @media (min-width: 560px) {
    .day-slot-row legend { width: 112px; padding: 12px 0 0; }
    .day-slot-row .opts { clear: none; display: flex; flex-wrap: wrap; gap: 0 16px; }
  }
  @media (min-width: 768px) {
    .wrap { padding: 40px 24px 80px; }
    .page-h { font-size: 32px; }
    .sec-h { font-size: 24px; }
    .date-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .num-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .submit-area .dads-button, .confirm-acts .dads-button { width: auto; min-width: 320px; justify-self: center; }
  }
  @media print {
    .mock-banner, .steps, .no-print { display: none !important; }
  }
.crv-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* 受付中の回が無いと分かっているときは、回の答えを待つあいだも入力の画面を出さない（entry-apply.php が付け、entry-form.js が回を読んだら外す） */
.crv-start-closed #mainForm, .crv-start-closed #steps, .crv-start-closed .site-head .tag { display: none; }

/* 読み上げだけに伝える文（園が見つかったこと など） */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
