@charset "UTF-8";

/* ========================================================
   ベース設定
======================================================== */
body {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    color: #333;
    line-height: 1.6;
    margin: 0;
    padding: 0;
    background-color: #f7f9fb;
}
img { max-width: 100%; height: auto; }
a { color: #1D4ED8; text-decoration: none; }
a:hover { text-decoration: underline; }
.txt-c { text-align: center; }
.pb15 { padding-bottom: 15px; }
.mb20 { margin-bottom: 20px; }
.mb45 { margin-bottom: 45px; }

/* ========================================================
   ヘッダー・パンくず
======================================================== */
.ballet-lower-teaser {
    background-color: #1D4ED8; /* ロイヤルブルー */
    color: #fff;
    text-align: center;
    padding: 40px 20px;
}
.ballet-lower-teaser p { margin: 0; font-size: 24px; font-weight: bold; letter-spacing: 2px; }
.ballet-top-font { font-size: 16px; font-weight: normal; opacity: 0.8; display: block; margin-top: 5px;}

.pankuzu-area { background: #fff; border-bottom: 1px solid #ddd; padding: 10px 0; font-size: 13px; }
.pankuzu-inner ul { list-style: none; display: flex; margin: 0 auto; padding: 0 20px; max-width: 1000px; }
.pankuzu-inner li { margin-right: 10px; display: flex; align-items: center; }
.pankuzu-inner li img { width: 10px; margin-left: 10px; opacity: 0.5; }
.active-pankuzu { color: #999; }

/* ========================================================
   メインコンテナ・タイトル
======================================================== */
#wrap { max-width: 1000px; margin: 40px auto; padding: 0 20px; }
#main-wrap { background: #fff; padding: 40px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }

.registration-h2, .regist-fst-h3 {
    color: #1D4ED8;
    border-bottom: 2px solid #1D4ED8;
    padding-bottom: 10px;
    margin-bottom: 30px;
}
.registration-fst-p { text-align: center; font-size: 20px; font-weight: bold; margin-bottom: 30px; }

.regist-fst-h3 span {
    font-size: 12px; background: #e53e3e; color: #fff; padding: 3px 8px;
    border-radius: 3px; margin-left: 15px; vertical-align: middle;
}

/* ========================================================
   フォームエリア (dl / dt / dd)
======================================================== */
dl { display: flex; flex-wrap: wrap; border-top: 1px solid #ddd; margin-bottom: 40px; margin-top: 0; padding: 0;}
dt, dd { border-bottom: 1px solid #ddd; padding: 20px; box-sizing: border-box; margin: 0; }
dt {
    width: 30%;
    background-color: #f4f7fb; 
    font-weight: bold;
    border-left: 4px solid #1D4ED8;
}
dd { width: 70%; }

/* 入力パーツ */
input[type="text"], input[type="tel"], input[type="email"], select {
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
    max-width: 100%;
    box-sizing: border-box;
}
input[type="text"]:focus, select:focus { border-color: #1D4ED8; outline: none; }
.name-input, .add-input, .add-input-point01 { width: 100%; max-width: 400px; margin-bottom: 10px;}
.age-input, .minute-input, .second-input { width: 60px; text-align: center; margin-right: 5px; }
.yubin02-input { width: 120px; margin-left: 10px; }

/* ラジオ・チェックボックス */
label { cursor: pointer; margin-right: 15px; display: inline-block; line-height: 2; }
input[type="radio"], input[type="checkbox"] { margin-right: 5px; transform: scale(1.2); }

.attention, .guidelineTxt { color: #e53e3e; font-size: 13px; margin-top: 10px; }

/* ========================================================
   プライバシーポリシー・ボタン
======================================================== */
.concours-privacy {
    background: #f9f9f9; border: 1px solid #ddd; padding: 20px;
    height: 100px; overflow-y: scroll; font-size: 14px; margin-bottom: 20px;
}
.conPriChk { text-align: center; font-weight: bold; margin-bottom: 40px; font-size: 18px; }

.btn-area { display: flex; justify-content: center; gap: 20px; margin-top: 30px; }
.btn-area input[type="image"], .btn-area img { max-width: 200px; transition: opacity 0.3s; }
.btn-area input[type="image"]:hover, .btn-area img:hover { opacity: 0.7; cursor: pointer; }

/* ========================================================
   送信確認画面のテーブル
======================================================== */
table { width: 100%; max-width: 800px; margin: 30px auto; border-collapse: collapse; }
table td { border: 1px solid #ddd; padding: 15px; }
table .l_Cel { width: 30%; background-color: #f4f7fb; font-weight: bold; border-left: 4px solid #1D4ED8; }
.error_messe { color: #e53e3e; font-weight: bold; text-align: center; }

/* ========================================================
   レスポンシブ (スマホ表示)
======================================================== */
@media (max-width: 768px) {
    #main-wrap { padding: 20px; }
    dt, dd { width: 100%; border-left: none; }
    dt { border-bottom: none; padding-bottom: 10px; border-top: 2px solid #1D4ED8; }
    dd { padding-top: 10px; }
    .btn-area { flex-direction: column; align-items: center; }
}