/* sp.css - 767px以下の画面で適用 */

/* 全体レイアウト */
.wrapper {
    flex-direction: column;
}

.main-content {
    width: 100%;
}

/* サイドバー（PCのみ表示） */
.sidebar {
    display: none !important;
}

/* SP用固定申し込みボタン */
.sp-apply-button,
.sp-form-modal {
    display: block !important;
}

/* セクションの間隔調整 */
section {
    padding: 60px 0;
}

/* 見出しサイズ調整 */
h1 {
    font-size: 36px;
}

h2 {
    font-size: 28px;
}

h3 {
    font-size: 20px;
}

/* コンテナの余白調整 */
.container {
    padding: 0 15px;
}

/* ヒーローセクション SP調整 */
.hero-section {
    padding: 60px 0;
}

.hero-online-badge {
    font-size: 14px;
    padding: 10px 0;
}

.hero-content {
    flex-direction: column;
    gap: 40px;
    margin-top: 30px;
}

.hero-text-area {
    text-align: center;
    padding-right: 0;
}

.hero-title {
    text-align: center;
}


.text-decoration {
  font-size: 25px;
  font-weight: 900;
  
}
.hero-date {
    font-size: 40px;
    font-weight: 600;
    margin-bottom: 10px;
}

.hero-date-day {
    font-size: 26px;
}

.main-title {
    font-size: 36px;
    font-weight: 900;
    margin-bottom: 10px;
}

.sub-title {
    font-size: 28px;
    font-weight: 800;
}

.hero-subtitle {
    font-size: 12px;
    font-weight: 900;
    text-align: center;
    margin-bottom: 10px;
}

.hero-speakers-area {
    flex-direction: column;
    gap: 20px;
    margin: 0 -15px;
    padding: 0;
    height: auto;
}

.hero-speakers-img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.hero-speakers-pc {
    display: none;
}

.hero-speakers-sp {
    display: block;
}

/* セクションタイトル SP調整 */
.section-title {
    font-size: 26px;
    margin-bottom: 40px;
}

/* 概要テーブル SP調整 */
.overview-row {
    flex-direction: column;
}

.overview-label {
    width: 100%;
    padding: 15px 20px;
    border-right: none;
    border-bottom: 1px solid var(--border-color);
}

.overview-content {
    padding: 20px;
}

/* ターゲットカード SP調整 */
.target-grid {
    grid-template-columns: 1fr;
    gap: 20px;
}

.target-card {
    padding: 30px 25px;
}

.target-image {
    height: 100px;
}

/* フォームセクション SP調整 */
.form-card {
    padding: 30px 20px;
}

.form-card-title {
    font-size: 24px;
}

.form-card-description {
    font-size: 14px;
}

.target-title {
    font-size: 18px;
}

/* プログラム SP調整 */

.program-subtitle {
    font-size: 20px;
    margin-bottom: 30px;
}

.topic-item {
    flex-direction: column;
    padding: 25px;
    text-align: center;
}

.topic-number {
    width: 50px;
    height: 50px;
    font-size: 18px;
    margin-right: 0;
    margin-bottom: 20px;
    align-self: center;
}

.topic-title {
    font-size: 18px;
    text-align: left;
    margin-bottom: 12px;
}

.topic-description {
    text-align: left;
}

/* 登壇者 SP調整 */
.speaker-card {
    flex-direction: column;
}

.speaker-info {
    padding: 30px 25px;
    order: 2;
}

.speaker-company {
    font-size: 14px;
}

.speaker-name {
    font-size: 24px;
    margin-bottom: 15px;
}

.speaker-reading {
    font-size: 16px;
}

.speaker-bio {
    font-size: 14px;
    line-height: 1.6;
}

.speaker-photo {
    width: 100%;
    padding: 0;
    order: 1;
    height: 300px;
}

.speaker-photo .speaker-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border-radius: 0;
}

/* SP用モーダル調整 */
.sp-form-modal {
    display: none !important;
}

.sp-form-modal .modal-content {
    width: 90vw !important;
    max-width: 400px !important;
    padding: 25px 20px !important;
    font-size: 15px !important;
}

.sp-form-modal .form-input {
    font-size: 16px !important;
    padding: 15px !important;
}

.sp-form-modal .form-group {
    margin-bottom: 20px !important;
}

.sp-form-modal .form-submit {
    font-size: 18px !important;
    padding: 16px !important;
}

.sp-form-modal .modal-title {
    font-size: 20px !important;
    margin-bottom: 20px !important;
}

/* 底部の余白確保（固定ボタン分） */
.main-content {
    padding-bottom: 80px;
}

/* 小さなスマホ用調整 */
@media screen and (max-width: 480px) {
    .container {
        padding: 0 10px;
    }
    
    .hero-speakers-area {
        margin: 0 -10px;
    }
    
    .hero-date {
        font-size: 34px;
    }
    
    .hero-date-day {
        font-size: 30px;
    }
    
    .main-title {
        font-size: 32px;
    }
    
    .sub-title {
        font-size: 30px;
    }
    
    .hero-subtitle {
        font-size: 20px;
    }
    
    .section-title {
        font-size: 24px;
    }
    
    .target-card,
    .topic-item,
    .speaker-info {
        padding: 20px;
    }
    
    .speaker-name {
        font-size: 20px;
    }
    
    .sp-apply-button {
        font-size: 16px;
        padding: 15px;
    }
}