/* GKL 選手エントリーフォーム専用スタイル（tokai/entry.php）
   紙の申込書をそのまま Web 化したもの。項目数が多く .contact-form より広い
   専用レイアウトが要るため、共通の style.css とは分けている。
   色・フォントは style.css の :root 変数をそのまま使う。 */

/* 大会情報の見出し（.overview の圧縮版） */
.eform-lead{
  max-width:860px;margin:0 auto 26px;
  border:1px solid var(--line);border-radius:8px;
  background:rgba(0,0,0,.45);overflow:hidden;
}
.eform-lead dl{display:grid;grid-template-columns:150px 1fr;}
.eform-lead dt{
  padding:13px 20px;background:rgba(212,175,55,.06);
  border-bottom:1px solid rgba(212,175,55,.12);
  color:var(--gold-bright);font-size:13px;letter-spacing:.08em;font-weight:700;
}
.eform-lead dd{
  padding:13px 20px;border-bottom:1px solid rgba(212,175,55,.12);
  color:#fff;font-size:14.5px;
}
.eform-lead dd .sub{display:block;color:var(--ink-dim);font-size:12.5px;margin-top:4px;}
.eform-lead dl > dt:last-of-type,
.eform-lead dl > dd:last-of-type{border-bottom:none;}

/* ===== フォーム本体 ===== */
.eform{max-width:860px;margin:0 auto;text-align:left;}
.eform-block{
  border:1px solid var(--line);border-radius:8px;
  background:rgba(0,0,0,.5);
  padding:26px 26px 8px;margin-bottom:22px;
  min-width:0;   /* fieldset の既定は min-width:min-content。grid の子が溢れるのを防ぐ */
}
.eform-block.is-error{border-color:#b5454a;}
.eform-legend{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:0 8px;margin-left:-8px;
  font-family:'Noto Serif JP',serif;font-weight:600;
  color:var(--gold-bright);font-size:17px;letter-spacing:.06em;
}
.eform-legend .el-no{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:linear-gradient(135deg,#f7dd8a,#d4af37);
  color:#1c1a14;font-family:'Bebas Neue',sans-serif;font-size:16px;
  letter-spacing:0;line-height:1;padding-top:2px;
}
.eform-note{color:var(--ink-dim);font-size:13px;line-height:1.9;margin:14px 0 18px;}

.eform .field{margin-bottom:20px;min-width:0;}
.eform label{
  display:block;font-size:13px;letter-spacing:.06em;
  color:var(--gold-bright);margin-bottom:7px;
}
.eform .req,
.eform-legend .req{
  color:#fff;background:var(--red);font-size:10px;font-weight:700;
  border-radius:3px;padding:1px 6px;margin-left:8px;letter-spacing:.08em;
  vertical-align:middle;white-space:nowrap;
}
.eform .opt{
  color:var(--ink-dim);background:rgba(255,255,255,.06);
  border:1px solid var(--line);font-size:10px;border-radius:3px;
  padding:0 6px;margin-left:8px;letter-spacing:.08em;
  vertical-align:middle;white-space:nowrap;
}
.eform input[type="text"],
.eform input[type="tel"],
.eform input[type="email"],
.eform input[type="number"],
.eform select,
.eform textarea{
  width:100%;background:rgba(255,255,255,.04);
  border:1px solid var(--line);border-radius:6px;
  color:#fff;font-family:inherit;font-size:15px;
  padding:11px 13px;transition:border-color .2s, box-shadow .2s;
}
.eform textarea{resize:vertical;}
.eform input:focus,
.eform select:focus,
.eform textarea:focus{
  outline:none;border-color:var(--gold);
  box-shadow:0 0 0 2px rgba(212,175,55,.18);
}
.eform select{
  appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath fill='%23d4af37' d='M0 0h12L6 7z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:11px;
}
.eform select option{color:#111;}
.eform .hint{color:var(--ink-dim);font-size:12px;line-height:1.7;margin-top:6px;}
.eform .f-err{color:#f3a0a4;font-size:12.5px;line-height:1.7;margin-top:6px;}
.eform .field.is-error > label{color:#f3a0a4;}
.eform .field.is-error input,
.eform .field.is-error select,
.eform .field.is-error textarea{border-color:#b5454a;}

/* 横並びの行 */
.eform .row-2,
.eform .row-3,
.eform .row-zip{display:grid;gap:0 20px;}
.eform .row-2{grid-template-columns:1fr 1fr;}
.eform .row-3{grid-template-columns:1fr 1fr 1fr;}
.eform .row-zip{grid-template-columns:190px 1fr;}

/* 年 / 月 / 日 */
.eform .ymd{display:flex;align-items:center;gap:6px;}
.eform .ymd select{width:auto;flex:1 1 0;min-width:0;}
.eform .ymd span{color:var(--ink-dim);font-size:13px;flex:0 0 auto;}

/* 数値＋単位（身長・体重・格闘技歴・戦歴） */
.eform .unit{display:flex;align-items:center;gap:6px;}
.eform .unit input{min-width:0;}
.eform .unit span{color:var(--ink-dim);font-size:13px;flex:0 0 auto;}
.eform .unit.rec input{padding-left:9px;padding-right:5px;text-align:right;}
.eform .unit.rec span{font-size:12px;}
/* スピナーは幅を食うので消す（inputmode があるのでスマホでは数字キーボードが出る） */
.eform input[type="number"]{-moz-appearance:textfield;}
.eform input[type="number"]::-webkit-outer-spin-button,
.eform input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

/* 男 / 女 */
.eform .radio-row{display:flex;gap:10px;}
.eform .pill{
  flex:1 1 0;margin:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid var(--line);border-radius:6px;
  background:rgba(255,255,255,.04);padding:10px 12px;
  transition:border-color .2s, background .2s;
}
.eform .pill input{accent-color:var(--gold);width:16px;height:16px;cursor:pointer;}
.eform .pill span{color:#fff;font-size:15px;}
.eform .pill:has(input:checked){border-color:var(--gold);background:rgba(212,175,55,.12);}

/* ===== 出場クラス ===== */
.class-group{margin-bottom:22px;}
.cg-head{
  display:flex;align-items:baseline;justify-content:space-between;
  flex-wrap:wrap;gap:4px 14px;
  padding:9px 14px;border-radius:6px 6px 0 0;
}
.cg-head .cg-name{font-weight:700;font-size:15px;letter-spacing:.06em;}
.cg-head .cg-fee{font-size:12.5px;letter-spacing:.04em;opacity:.85;}
.cg-junior{background:#1b9ad6;color:#04202e;}
.cg-general{background:#e8d33a;color:#241f00;}
.class-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  border:1px solid var(--line);border-top:none;
  border-radius:0 0 6px 6px;padding:12px;
}
.class-opt{
  display:flex;align-items:center;gap:10px;margin:0;cursor:pointer;
  border:1px solid var(--line);border-radius:6px;
  background:rgba(255,255,255,.03);padding:11px 13px;
  transition:border-color .2s, background .2s;
}
.class-opt input{accent-color:var(--gold);width:16px;height:16px;flex:0 0 auto;cursor:pointer;}
.class-opt .co-no{
  flex:0 0 auto;min-width:22px;text-align:center;
  font-family:'Bebas Neue',sans-serif;font-size:16px;line-height:1;
  color:var(--ink-dim);letter-spacing:.04em;
}
.class-opt .co-name{color:#fff;font-size:14.5px;letter-spacing:.02em;}
.class-opt:has(input:checked){border-color:var(--gold);background:rgba(212,175,55,.12);}
.class-opt:has(input:checked) .co-no{color:var(--gold-bright);}
.eform-fee{
  margin:4px 0 18px;padding:11px 14px;border-radius:6px;
  border:1px solid var(--gold);background:rgba(212,175,55,.1);
  color:var(--gold-bright);font-size:14px;letter-spacing:.05em;text-align:center;
}

/* ===== 誓約文・遵守事項 ===== */
.pledge{
  border:1px solid var(--line);border-left:3px solid var(--red);
  border-radius:0 6px 6px 0;background:rgba(200,16,46,.06);
  padding:16px 18px;margin:16px 0 20px;
  color:#fff;font-size:14px;line-height:2;
}
.rules{margin-bottom:22px;}
.rules-lead{
  color:var(--gold-bright);font-size:14px;line-height:1.95;
  text-align:center;margin-bottom:14px;
}
.rules ol{margin:0;padding:0;list-style:none;counter-reset:rule;}
.rules li{
  counter-increment:rule;position:relative;
  padding:10px 12px 10px 42px;
  border:1px solid var(--line);border-bottom:none;
  color:var(--ink-dim);font-size:13px;line-height:1.85;
}
.rules li:first-child{border-radius:6px 6px 0 0;}
.rules li:last-child{border-bottom:1px solid var(--line);border-radius:0 0 6px 6px;}
.rules li::before{
  content:counter(rule);
  position:absolute;left:12px;top:11px;
  width:20px;height:20px;border-radius:50%;
  border:1px solid var(--gold);color:var(--gold-bright);
  font-family:'Bebas Neue',sans-serif;font-size:13px;line-height:20px;text-align:center;
}

/* ===== 同意チェック ===== */
.eform .check{
  display:flex;align-items:flex-start;gap:11px;
  margin:0;padding:12px 14px;cursor:pointer;
  border:1px solid var(--line);border-radius:6px;
  background:rgba(255,255,255,.03);
  color:#fff;font-size:13.5px;line-height:1.85;letter-spacing:.02em;
  transition:border-color .2s, background .2s;
}
.eform .check input{
  accent-color:var(--gold);width:18px;height:18px;
  flex:0 0 auto;margin-top:3px;cursor:pointer;
}
.eform .check span{color:inherit;}
.eform .check:has(input:checked){border-color:var(--gold);background:rgba(212,175,55,.09);}
.eform .field.is-error .check{border-color:#b5454a;}

/* ===== 送信 ===== */
.eform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.eform-actions{text-align:center;margin-top:30px;}
.eform-actions .btn{padding:16px 40px;font-size:15px;}
.eform-caution{color:var(--ink-dim);font-size:12.5px;line-height:1.9;margin-top:16px;}
.eform-caution a{color:var(--gold-bright);}

/* ===== 送信完了 ===== */
.eform-done{
  max-width:780px;margin:0 auto;text-align:center;
  border:1px solid var(--gold);border-radius:8px;
  background:rgba(212,175,55,.06);padding:46px 30px;
}
.eform-done .ed-mark{
  font-family:'Bebas Neue',sans-serif;letter-spacing:.3em;
  color:var(--gold-bright);font-size:14px;margin-bottom:16px;
}
.eform-done h3{
  font-family:'Noto Serif JP',serif;font-weight:600;
  color:#fff;font-size:21px;margin-bottom:18px;letter-spacing:.06em;
}
.eform-done p{color:var(--ink-dim);font-size:14px;line-height:2;margin-bottom:14px;}
.eform-done .ed-tel{
  font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:.06em;
  color:var(--gold-bright);margin-top:20px;
}
.eform-done .ed-tel a{color:inherit;}
.eform-done .ed-tel span{
  font-family:'Noto Sans JP',sans-serif;font-size:13px;letter-spacing:.04em;
  color:var(--ink-dim);margin-left:8px;
}

/* ===== タブレット ===== */
@media (max-width:840px){
  .eform-lead dl{grid-template-columns:1fr;}
  .eform-lead dt{padding:11px 16px 4px;border-bottom:none;background:transparent;}
  .eform-lead dd{padding:0 16px 12px;font-size:14px;}
  .eform .row-3{grid-template-columns:1fr 1fr;}
  .eform .row-3 > .field:last-child{grid-column:1 / -1;}
}

/* ===== スマートフォン ===== */
@media (max-width:640px){
  .eform-block{padding:22px 16px 4px;}
  .eform-legend{font-size:16px;}
  .eform .row-2,
  .eform .row-3,
  .eform .row-zip{grid-template-columns:1fr;gap:0;}
  .eform .row-3 > .field:last-child{grid-column:auto;}
  .class-grid{grid-template-columns:1fr;padding:10px;}
  .cg-head{flex-direction:column;align-items:flex-start;}
  .eform .ymd select{padding-right:26px;background-position:right 8px center;}
  /* 戦歴は 5 つ並ぶので、折り返しを成り行きに任せず「3 つ + 2 つ」に揃える */
  .eform .unit.rec{
    display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto;
    gap:8px 5px;align-items:center;
  }
  .eform .unit.rec input{width:100%;}
  .eform-actions .btn{width:100%;padding:16px 20px;}
  .eform-done{padding:34px 20px;}
  .eform-done .ed-tel{font-size:24px;}
  .rules li{padding:9px 10px 9px 38px;font-size:12.5px;}
}
