/* ===== 既存CSSとの衝突回避：#mamaedu-form-section 内にスコープ ===== */
 
#mamaedu-form-section,
#mamaedu-form-section * {
  box-sizing: border-box;
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
}
 
@media screen and (min-width: 768px) {
  #mamaedu-form-section {
    padding: 0 0 40px;
  }
 
  #mamaedu-form-section form {
    max-width: 960px !important;
    margin: 0 auto !important;
    background: #fff !important;
    border-radius: 0 0 16px 16px !important;
    padding: 20px 56px 48px !important;
    box-shadow: none !important;
    display: block !important;
    box-sizing: border-box !important;
  }
 
  /* 項目間の余白を広げる */
  #mamaedu-form-section dt {
    margin-top: 32px;
  }
 
  /* テキストボックス・ボタンの幅を抑える */
  #mamaedu-form-section input[type="text"],
  #mamaedu-form-section input[type="tel"],
  #mamaedu-form-section input[type="email"],
  #mamaedu-form-section textarea {
    max-width: 70%;
  }
 
  #mamaedu-form-section .lesson-choices2,
  #mamaedu-form-section .lesson-choices3,
  #mamaedu-form-section .lesson-choices-mamaedu {
    max-width: 70%;
  }
}
 
#mamaedu-form-section form {
  all: unset;
  display: block;
}
 
/* dl/dt/dd */
#mamaedu-form-section dl {
  display: block;
  margin: 0;
  padding: 0;
}
 
#mamaedu-form-section dt {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  color: #444;
  margin: 20px 0 6px;
  padding: 0;
  border: none;
  background: none;
  line-height: 1.4;
}
 
#mamaedu-form-section dd {
  display: block;
  margin: 0;
  padding: 0;
}
 
/* 必須バッジ */
#mamaedu-form-section dt.form-necessary span {
  display: inline-block;
  background: #f25fba;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 20px;
  margin-left: 8px;
  vertical-align: middle;
  line-height: 1.6;
}
 
/* テキスト・tel・email入力 */
#mamaedu-form-section input[type="text"],
#mamaedu-form-section input[type="tel"],
#mamaedu-form-section input[type="email"],
#mamaedu-form-section textarea {
  display: block;
  width: 100%;
  padding: 12px 14px;
  font-size: 0.95rem;
  color: #333;
  background: #fff;
  border: 1.5px solid #bbb;
  border-radius: 8px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}
 
#mamaedu-form-section input[type="text"]:focus,
#mamaedu-form-section input[type="tel"]:focus,
#mamaedu-form-section input[type="email"]:focus,
#mamaedu-form-section textarea:focus {
  border-color: #f25fba;
  box-shadow: 0 0 0 3px rgba(240, 98, 146, 0.12);
  background: #fff;
}
 
#mamaedu-form-section input::placeholder,
#mamaedu-form-section textarea::placeholder {
  color: #bbb;
  font-size: 0.875rem;
}
 
/* textarea */
#mamaedu-form-section textarea {
  min-height: 110px;
  resize: vertical;
  line-height: 1.6;
}
 
/* ラジオボタン */
#mamaedu-form-section .form-boxarea {
  display: block;
  margin: 0;
  padding: 0;
}
 
#mamaedu-form-section .lesson-choices2 label.radio01 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 0.9rem;
  color: #c2185b;
  padding: 10px 16px;
  border: 1.5px solid #f25fba;
  border-radius: 8px;
  background: #fce4ec;
  transition: all 0.2s;
}
 
#mamaedu-form-section .lesson-choices2 label.radio01:has(input:checked) {
  background: #f25fba;
  color: #fff;
  font-weight: 700;
}
 
#mamaedu-form-section .lesson-choices2 input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #f25fba;
  border-radius: 50%;
  background: #fff;
  margin: 0;
  flex-shrink: 0;
  position: relative;
  transition: all 0.15s;
}
 
#mamaedu-form-section .lesson-choices2 input[type="radio"]::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(0);
  width: 9px; height: 9px;
  border-radius: 50%;
  background: #f25fba;
  transition: transform 0.15s;
}
 
#mamaedu-form-section .lesson-choices2 input[type="radio"]:checked {
  border-color: #fff;
  background: #fff;
}
 
#mamaedu-form-section .lesson-choices2 input[type="radio"]:checked::after {
  background: #f25fba;
  transform: translate(-50%, -50%) scale(1);
}
/* チェックボックス */
#mamaedu-form-section .lesson-choices3 label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 0.9rem;
  color: #c2185b;
  padding: 10px 16px;
  border: 1.5px solid #f25fba;
  border-radius: 8px;
  background: #fce4ec;
  transition: all 0.2s;
}
 
#mamaedu-form-section .lesson-choices3 label:has(input:checked) {
  background: #f25fba;
  color: #fff;
  font-weight: 700;
}
 
#mamaedu-form-section .lesson-choices3 input[type="checkbox"] {
  accent-color: #f25fba;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin: 0;
}
 
/* 興味分野チェックボックス */
#mamaedu-form-section .lesson-choices-mamaedu {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
 
#mamaedu-form-section .lesson-choices-mamaedu label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 0.9rem;
  color: #c2185b;
  padding: 10px 16px;
  border: 1.5px solid #f25fba;
  border-radius: 8px;
  background: #fce4ec;
  transition: all 0.2s;
}
 
#mamaedu-form-section .lesson-choices-mamaedu label:has(input:checked) {
  background: #f25fba;
  color: #fff;
  font-weight: 700;
}
 
#mamaedu-form-section .lesson-choices-mamaedu input[type="checkbox"] {
  accent-color: #f25fba;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin: 0;
}
 
#mamaedu-form-section .lesson-choices-mamaedu span.lec1 {
  display: none;
}
 
/* 注記テキスト */
#mamaedu-form-section p.size-s {
  font-size: 0.8rem;
  color: #666;
  margin: 4px 0 10px;
  padding: 0;
  line-height: 1.6;
}
 
#mamaedu-form-section .txt-bold { font-weight: 700; }
#mamaedu-form-section .txt-blue { color: #1976d2; }
 
/* スケジュールエリア */
#mamaedu-form-section ul.cal-sche {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  list-style: none !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  font-size: 0.8rem !important;
  color: #666 !important;
  counter-reset: none !important;
}
 
#mamaedu-form-section ul.cal-sche li {
  list-style: none !important;
  background: none !important;
  border-radius: 0 !important;
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  color: #666 !important;
  font-size: 0.8rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  counter-increment: none !important;
}
 
#mamaedu-form-section ul.cal-sche li::before,
#mamaedu-form-section ul.cal-sche li::after {
  display: none !important;
  content: none !important;
}
 
#mamaedu-form-section #schedule-data {
  background: #fdf5f8;
  border: 1px dashed #e0c0cc;
  border-radius: 8px;
  padding: 16px;
  font-size: 0.85rem;
  color: #888;
  min-height: 60px;
}
 
/* 個人情報エリア */
#mamaedu-form-section #frm-privacy {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.78rem;
  color: #555;
  background: #f5f5f5;
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 10px 16px;
  margin-top: 8px;
  width: 100%;
  box-sizing: border-box;
}
 
#mamaedu-form-section #frm-privacy::before {
  content: '🔒';
  font-size: 14px;
}
 
#mamaedu-form-section dt a,
#mamaedu-form-section dd a,
#mamaedu-form-section p a {
  color: #f25fba;
  text-decoration: underline;
}
 
/* dt内の補足テキスト */
#mamaedu-form-section dt p {
  font-weight: normal;
  font-size: 0.75em;
  line-height: 2;
  margin: 4px 0 0;
  padding: 0;
  color: #777;
}
 
/* ===== カレンダーテーブル ===== */
#mamaedu-form-section table.calendar {
  all: revert;
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  table-layout: fixed;
}
 
#mamaedu-form-section table.calendar thead th {
  all: revert;
  background: #f25fba;
  color: #fff;
  font-weight: 700;
  text-align: center;
  padding: 8px 4px;
  font-size: 0.78rem;
  border: 1px solid #e0b0c0;
}
 
#mamaedu-form-section table.calendar thead th:first-child {
  background: #f25fba;
  color: #f25fba;
  width: 48px;
}
 
#mamaedu-form-section table.calendar thead th span {
  display: block;
  font-size: 0.7rem;
  font-weight: normal;
  opacity: 0.85;
}
 
#mamaedu-form-section table.calendar tbody th {
  all: revert;
  background: #fdf5f8;
  color: #f25fba;
  font-weight: 700;
  font-size: 0.75rem;
  text-align: center;
  padding: 10px 4px;
  border: 1px solid #f0dde5;
  white-space: nowrap;
}
 
#mamaedu-form-section table.calendar tbody td {
  all: revert;
  text-align: center;
  padding: 0;
  border: 1px solid #f0dde5;
  vertical-align: middle;
  background: #fff;
}
 
/* 予約可：ラジオボタン */
#mamaedu-form-section table.calendar tbody td {
  padding: 0;
}
 
#mamaedu-form-section table.calendar label.ok {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  cursor: pointer;
  background: #fff;
  transition: background 0.15s;
}
 
#mamaedu-form-section table.calendar label.ok:hover {
  background: #fff0f5;
}
 
#mamaedu-form-section table.calendar label.ok:has(input:checked) {
  background: #fff0f5;
}
 
#mamaedu-form-section table.calendar label.ok input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 24px;
  border: 2px solid #f25fba;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: all 0.15s;
  flex-shrink: 0;
  margin: 0;
}
 
#mamaedu-form-section table.calendar label.ok input[type="radio"]::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f25fba;
  transition: transform 0.15s;
}
 
#mamaedu-form-section table.calendar label.ok input[type="radio"]:checked {
  border-color: #f25fba;
  background: #fff0f5;
}
 
#mamaedu-form-section table.calendar label.ok input[type="radio"]:checked::after {
  transform: translate(-50%, -50%) scale(1);
}
 
/* 電話マーク（満席・要電話） */
#mamaedu-form-section table.calendar span.conf {
  display: flex;
  align-items: center;
  justify-content: center;
}
 
#mamaedu-form-section table.calendar span.conf a {
  display: inline-flex;
  color: #f25fba;
  text-decoration: none;
}
 
/* 送信ボタン */
#mamaedu-form-section input[type="submit"].btn-orange {
  display: block;
  width: 100%;
  max-width: 400px;
  margin: 36px auto 0;
  padding: 18px 24px;
  background: linear-gradient(135deg, #ff8a50, #f25fba);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 900;
  font-family: inherit;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  text-align: center;
  letter-spacing: 0.05em;
  box-shadow: 0 6px 20px rgba(240, 98, 146, 0.35);
  transition: transform 0.15s, box-shadow 0.15s;
  -webkit-appearance: none;
  appearance: none;
}
 
#mamaedu-form-section input[type="submit"].btn-orange:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(240, 98, 146, 0.45);
}
 
#mamaedu-form-section input[type="submit"].btn-orange:active {
  transform: translateY(0);
  box-shadow: 0 4px 12px rgba(240, 98, 146, 0.3);
}
 
/* ===== ステップインジケーター ===== */
#form-step {
  all: revert;
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin: 40px 0 8px;
  padding: 16px;
  background: #fff;
  border-radius: 12px;
  gap: 8px;
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
  counter-reset: step-counter;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
 
#form-step li {
  all: revert;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1;
  background: none !important;
  border-radius: 0 !important;
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  counter-increment: step-counter;
}
 
#form-step li::before,
#form-step li::after {
  display: none !important;
  content: none !important;
}
 
#form-step li span {
  all: revert;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px;
  width: 100%;
  padding: 10px 16px;
  font-size: 0.9rem;
  font-weight: 700;
  color: #bbb;
  background: #f0f0f0;
  border-radius: 8px;
  white-space: nowrap;
  text-align: center;
}
 
#form-step li span::before {
  content: counter(step-counter);
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ccc;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
  line-height: 1;
}
 
#form-step li.on span {
  background: #fce4ec;
  color: #f25fba;
}
 
#form-step li.on span::before {
  background: #f25fba;
}
 
#form-step li.step-arrow {
  flex: 0 !important;
  font-size: 1.2rem !important;
  color: #ccc !important;
  background: none !important;
  padding: 0 4px !important;
  counter-increment: none !important;
}
 
@media screen and (max-width: 767px) {
  #form-step li {
    min-width: 0 !important;
    flex-shrink: 1 !important;
  }
 
  #form-step li span {
    font-size: 0.75rem !important;
    padding: 8px 8px !important;
    min-width: 0 !important;
  }
 
  #form-step li span::before {
    width: 16px !important;
    height: 16px !important;
    font-size: 0.65rem !important;
  }
}
 
@media screen and (min-width: 768px) {
  #form-step {
    max-width: 960px;
    width: 100%;
    margin: 0 auto 0;
    padding: 16px 56px;
    gap: 12px;
    border-radius: 12px 12px 0 0;
    border-bottom: 1px solid #f0f0f0;
    box-sizing: border-box;
  }
}