/* 資料請求（download/）・お問い合わせ（contact/）共通のレイアウト。トークンは ../index.html と揃える */
:root {
    --passion-red: #d32f2f;
    --deep-red: #8e0000;
    --dark-gray: #1a1a1a;
    --light-gray: #f4f4f4;
    --white: #ffffff;
    --soft-red: #ffeded;
    --text-sub: #555555;
    --border: #dddddd;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: 'Noto Sans JP', sans-serif; color: var(--dark-gray); line-height: 1.8; background: var(--light-gray); }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, ul { margin: 0; }
[hidden] { display: none !important; }
.container { max-width: 1200px; width: 100%; margin: 0 auto; padding: 0 24px; }

/* ヘッダー（LP の白い左寄せバーを静的配置にしたもの） */
header { padding-top: 32px; }
.header-nav-white {
    display: inline-flex; align-items: center; background: var(--white); padding: 10px 40px;
    border-radius: 0 50px 50px 0; box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
.logo img { height: 35px; width: auto; display: block; }

/* 2カラム（左: 説明 / 右: フォーム） */
.form-page { padding: 60px 0 100px; }
.form-page-grid { display: grid; grid-template-columns: minmax(0, 1fr) 520px; gap: 60px; align-items: start; }

.page-label {
    display: inline-block; white-space: nowrap; background: var(--deep-red); color: var(--white);
    padding: 5px 15px; font-size: 14px; font-weight: 700; border-radius: 4px; margin-bottom: 14px;
}
.page-title { font-size: 2.4rem; font-weight: 900; line-height: 1.45; }
.page-title .accent { color: var(--passion-red); }
.page-lead { margin-top: 20px; color: #444; font-weight: 500; line-height: 1.9; }

.points-head { margin-top: 44px; font-size: 1.15rem; font-weight: 900; }
.points { list-style: none; padding: 0; margin-top: 16px; display: grid; gap: 14px; }
.point {
    display: grid; grid-template-columns: 40px 1fr; gap: 16px; align-items: start;
    background: var(--white); border: 1px solid #eee; border-radius: 16px; padding: 18px 22px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.03);
}
.point-icon {
    width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    background: var(--soft-red); color: var(--passion-red);
}
.point-icon svg { width: 20px; height: 20px; }
.point h3 { font-size: 1rem; font-weight: 900; line-height: 1.5; }
.point p { margin-top: 4px; font-size: 0.875rem; color: var(--text-sub); line-height: 1.7; }

.stats { margin-top: 32px; display: flex; gap: 16px; flex-wrap: wrap; }
.stat {
    background: var(--white); padding: 14px 26px; border-radius: 50px; border-bottom: 4px solid var(--passion-red);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05); min-width: 190px; text-align: center;
}
.stat small { display: block; font-size: 0.75rem; color: #666; font-weight: 700; white-space: nowrap; }
.stat b { font-size: 1.7rem; color: var(--passion-red); }

/* フォームカード（開催スケジュールの黒枠カードと同じ作り） */
.form-card {
    background: var(--white); border: 2px solid var(--dark-gray); border-radius: 16px;
    box-shadow: 6px 6px 0 var(--dark-gray); overflow: hidden; position: sticky; top: 24px;
}
.form-card-head { background: var(--passion-red); color: var(--white); padding: 16px 28px; border-bottom: 2px solid var(--dark-gray); }
.form-card-title { font-size: 1.25rem; font-weight: 900; }
.form-card-sub { font-size: 0.8rem; font-weight: 700; opacity: .9; }
.form-card-body { padding: 28px; min-height: 420px; }
.form-status { font-size: 0.9rem; color: var(--text-sub); text-align: center; padding-top: 140px; }

footer { background: var(--dark-gray); color: #666; padding: 60px 0; }
footer p { margin: 0; }

@media (max-width: 1024px) {
    .form-page-grid { grid-template-columns: 1fr; gap: 44px; }
    .form-card { position: static; }
}
@media (max-width: 640px) {
    header { padding-top: 20px; }
    .header-nav-white { padding: 10px 24px; }
    .logo img { height: 28px; }
    .container { padding: 0 16px; }
    .form-page { padding: 36px 0 70px; }
    .page-title { font-size: 1.6rem; }
    .page-lead { font-size: 0.9rem; }
    .point { padding: 16px; gap: 12px; }
    .stat { flex: 1 1 140px; min-width: 0; padding: 12px 16px; }
    .stat b { font-size: 1.4rem; }
    .form-card-head { padding: 14px 20px; }
    .form-card-body { padding: 22px 18px; }
}
