@charset "utf-8";
/* =========================================================
   タブレット用スタイル (max-width: 1200px)
========================================================= */
@media (max-width: 1200px) {
  .header {
    padding: 0;
  }
.header__inner {
  flex-direction: column;
}
}
/* =========================================================
   タブレット用スタイル (max-width: 1024px)
========================================================= */
@media (max-width: 1024px) {
  /* PC用ナビゲーションを非表示 */
  .header__nav {
    display: none;
  }

  /* ヘッダー全体をタブレット用に調整 */
  .header {
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    padding: 0;
    width: 100%;
  }
  .header__inner {
    padding: 25px;
    z-index: 8002;
    width: 100%;
    justify-content: space-between;
    border-radius: 0;
    flex-direction: row;
  }

  /* ハンバーガーボタンの構造 */
  .header__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 24px;
    height: 18px;
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 8002;
    position: relative;
    padding: 0;
  }

  /* ハンバーガーの3本線 */
  .header__hamburger span {
    width: 100%;
    height: 2px;
    background-color: var(--tundora, #333);
    transition: all 0.3s ease;
    border-radius: 2px;
  }

  /* JSでクラスが付与された時のアニメーション（×印に変化） */
  .header__hamburger.is-active span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  .header__hamburger.is-active span:nth-child(2) {
    opacity: 0;
  }
  .header__hamburger.is-active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }

  /* メニュードロワー（全画面背景） */
  .header__drawer {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(255, 255, 255, 0.98);
    padding-top: 100px;
    padding-bottom: 20px;
    transform: translateY(-100%); /* 初期状態は画面外（上）に隠す */
    transition: transform 0.3s ease-in-out;
    z-index: 8001;
    overflow-y: auto;
  }

  /* ドロワーが開いた時の状態 */
  .header__drawer.is-active {
    transform: translateY(0);
    background-image: url(../img/seminar-bg.avif);
    background-position: 50% 50%;
    background-size: cover;
  }

  /* メニュー内の白い枠 */
  nav.header__drawer-nav {
    width: calc(100% - 60px);
    max-width:100%; /* タブレットで横幅が間延びしないように制限 */
    margin: auto;
    background: #fff;
    height: 100%;
    max-height: 85vh;
    overflow: auto;
    padding: 30px;
    border-radius: 20px;
  }

  /* リンクのリストデザイン */
  .header__drawer-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
  }
  .header__drawer-list li {
    padding: 0px 0 15px;
    margin-bottom: 15px;
    border-bottom: 2px solid #f5f5f5;
  }
  .header__drawer-list li:last-child {
    border-bottom: none;
    margin-bottom: 0;
  }

  .header__drawer-link {
    display: block;
    padding: 0;
    text-align: left;
    font-size: 16px;
    font-weight: bold;
    color: #454545;
    text-decoration: none;
    position: relative;
  }

  .header__drawer-link::after {
    content: "〉";
    position: absolute;
    right: 0;
    font-size: 12px;
    color: #454545;
  }
/* 共通CSS */
.wrapper-bg{
  width:100%;

}
.sec__inner{
  width: calc(100% - 6%);
}
/* kv セクショn*/
.kv{
  justify-content: flex-start;
}
.kv-container{
  padding: 0;
}
.kv-inner{

}
.kv-image{
}
.kv-titile_text_sub span{
  font-size:90px ;
}
 /* キャンペーンスライダー用 */
 /* featuresセクション */
 .features {
  width: 100%;
}
.features__list{
  width: calc(100% - 6%);
  gap:10px;
}
.features_article{
  padding: 15px 15px 15px 40px;
}
.features__heading{
  font-size: 16px;
  gap: 20px;
  padding-bottom: 25px;
}
.features__text{
  font-size: 14px;
}
/* companyセクション */
.company{
}
.company-pickup_list{

}
.company-pickup_list li{
flex-direction: column;
  align-items: center;
}
.company-pickup_company__head{
  justify-content: center;
}
.company-pickup_logo{

}
.company-pickup_logo img{
}

.company-pickup_img{

}
.company-pickup_bottom{

}
.company-pickup_bottom__img{
  margin-bottom: 30px;
}
.company-pickup_bottom__img img{

}
.company-pickup_bottom__article{
  padding: 20px;
}
company-pickup_bottom__txt___ttl{

}
.company-pickup_bottom__txt___txt{
  
}
.company-lecture{
  margin: 0 auto 20px;
}
.company-lecture_list{
  display: flex;
  overflow: auto;
  margin-bottom: 20px;
  padding-bottom: 20px;
}
.company-lecture_card{
  aspect-ratio: unset;
  flex: 0 0 auto;
  max-width: 350px;
}
.company-list{
  grid-template-columns: repeat(4, 1fr);
}
.company-article_head{
  align-items: baseline;
  gap: 0px;
  flex-direction: column;
}
/* CTA */
.inline-cta{
  padding: 60px 0;
  border-radius: 0 0 40px 40px;
}
.inline-cta__inner{
  max-width: 400px;
  width: 100%;
}
.inline-cta_head{
  padding: 20px 0;
}.inline-cta__btn{
  padding: 0 10px;
}
.inline-cta__btn-arrow{
  width: 25px;
  height: 25px;
}
.inline-cta__btn-arrow img{
  width: 100%;
}
/* FLOWセクション */
.flow__list{
  grid-template-columns: repeat(1, 1fr); 
}
.flow__item{
  flex-direction: row;
  padding: 15px;
}
.flow__item::after{
  right: 50%;
  left: 50%;
  top: unset;
  bottom: -30px;
  width: 5px;
  height: 10px;
  transform: rotate(90deg);
}
.container{
  padding-bottom: 30px;
  width: 100%;
}
/* CONTENTSセクション */
.contents__panel-container{
  padding: 0;
}
/* VOICEセクション */
.voice__item{
  width: calc(33.333% - 14px) !important; 
}
/* 開催概要セクション */
.overview__item{
  grid-template-columns: 120px 1fr;
}
}

/* =========================================================
   スマートフォン用スタイル (max-width: 767px)
========================================================= */
@media (max-width: 767px) {

  /* =========================================================
     共通・全体設定
  ========================================================= */
  .Wrapper{
    padding-bottom: 100px;
  }
  /* ▼ 追加：スマホの時は、ターゲットの手前「120px」の位置で綺麗に止まるようにする */
  section {
    scroll-margin-top: 30px !important; 
  }
  .company,.timetable,.contents,.voice,.flow{
    padding-top: 20px;
  }
  .wrapper-bg{
    width:100%;
    height: 100vh;
    border-radius: 0;
  }
  .sec__inner {
    padding: 0 0 40px;
    gap:0;
    border-radius: 20px;
    width: calc(100% - 30px);
  }

  .Sec-head_box {
    gap: 20px;
    padding: 20px 0;
  }

  .Sec-head02_ttl {
    padding: 0;
  }
  .Sec-head02_ttl_en{
    font-size: 60px;
  }
  .Sec-head02_ttl_jp {
    font-size: 16px;
  }

  .Sec-head03_ttl {
    gap: 5px;
    margin: 40px 0 20px;
    flex-direction: column;
    align-items: flex-start;
  }

  .Sec-head03_ttl p {
font-size: 24px;
  }
  .Sec-head04_ttl {
    font-size: 29px;
    padding: 0 10px 0;
    white-space: nowrap;
  }
  .sp_only{
    display:block;
   }
   .pc_only{
    display: none;
   }
   .container{
    padding-bottom: 0;
    width: 100%;
    margin: 0 auto;
    border-radius: 20px;
   }
   .swip-box{
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 10px;
    justify-content: left;
    width: 100%;
    position: sticky;
    top: 50vh;
    bottom: 0;
    padding-bottom: 85px;
    margin-bottom: -85px;
    background: #f2f2f2;
    z-index: 1;
   }
   .swip-box_img{
    position: relative;
    width: auto;
    height: auto;
    padding: 2px 2px;
    background-color: #7D83FD;
    border-radius: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
   }
   .swip-box_img img{
    width: 24px;
   }
   .swip-box p{
font-size: 14px;
line-height: 1;
margin: 0;
color: #7D83FD;

   }
  /* =========================================================
     HEADER & DRAWER (ハンバーガーメニュー)
  ========================================================= */
  .header{
    top: 0;
    left: auto;
    right: auto;
    padding: 0;
    width: 100%;
  }
  .header__inner {
    padding: 15px 15px;
    margin: 0;
    z-index: 8002;
    width: 100%;
    border-radius: 0;
  }
  a.header-logo_link{
    width: 110px;
  }
  .header__logo {
    width: 120px;
  }

  .header__nav {
    display: none; /* PC用メニューを隠す */
  }

  .header__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 20px;
    height: 16px;
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 8002;
    position: relative;
    padding: 0;
  }

  .header__hamburger span {
    width: 100%;
    height: 2px;
    background-color: var(--tundora, #333);
    transition: all 0.3s ease;
    border-radius: 2px;
  }

  .header__hamburger.is-active span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }
  .header__hamburger.is-active span:nth-child(2) {
    opacity: 0;
  }
  .header__hamburger.is-active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
  .header__drawer {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(255, 255, 255, 0.98);
    padding-top: 70px;
    padding-bottom: 20px;
    transform: translateY(-100%);
    transition: transform 0.3s ease-in-out;
    z-index: 8001;
    overflow-y: auto;
  }

  .header__drawer.is-active {
    transform: translateY(0);
    background-image: url(../img/seminar-bg.avif);
        background-position: 50% 50%;
        background-size: cover;
    /* 開いたときに z-index を落とさない（0 だと本文より下になり、リンクが押せず閉じない） */
    z-index: 8001;
  }
  nav.header__drawer-nav {
    width: calc(100% - 40px);
    margin: auto;
    background: #fff;
    height: 100%;
    max-height: 90vh;
    overflow: auto;
    padding: 20px;
    border-radius: 20px;
}

  .header__drawer-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
.header__drawer-list li{
  padding: 0px 0 12px;
  margin-bottom: 12px;
  border-bottom: 2px solid #f5f5f5;
}
  .header__drawer-link {
    display: block;
    padding: 0;
    text-align: left;
    font-size: 14px;
    font-weight: bold;
    color: #454545;
    text-decoration: none;
  position: relative;
  }

  .header__drawer-link::after{
    content: "〉";
    position:absolute;
    right: 0;
    font-size: 10px;
    color: #454545;
  }

  /* =========================================================
     KV (キービジュアル)
  ========================================================= */
  .kv {
    width: 100%;
    height: fit-content;
    padding: 0;
    /* background-image: url(../img/seminar-bg.avif);
    background-position: 50% 50%;
    background-size: cover; */
    border-radius:0;
    border: none;
    margin:0;
  }
  .kv-container{
    padding: 0;
    justify-content: center;
    height: fit-content;
  }
  .kv-inner{
    align-items: center;
    width: 100%;
    height: 100%;
  }
  .kv-image{
    width: 100%;
    position: relative;
    padding: 80px 0 0;
  }
  .kv-image img{
width: 100%;
height: auto;
object-fit: contain;
  }
  .kv-date span {
    font-size: 52px;
  }

  .kv-date_on {
    width: 25px;
    font-size: 14px;
    bottom: 6px;
  }
  .kv-date-time{
    gap:10px∂;
  }
  .kv-date_time {
    font-size: 32px;
  }
  .kv-date{
    gap: 5px;
  }
  .kv-subinfo_inner {
    font-size: 14px;
    padding: 10px;
    flex-wrap: wrap; /* テキストが長い場合は折り返す */
    justify-content: center;
  }
  .kv-title{
    width: 100%;
  }
  .kv-titile_text_main{
    width: 100%;
    display: block;
  }
  .kv-titile_text_main span {
    font-size: 82px;
  }
  .kv-titile_text_sub span{
    font-size: 46px;
    white-space: nowrap;
  }
  .kv-title img {
    height: 24px;
    margin: 0 auto;
  }
  .kv-copy_article__large {
    font-size: 52px;
  }
  /* KV企業ロゴループ */
  .kv-logo-slider {
    padding: 20px 0;
    gap: 10px;
    height: fit-content;
    max-height: unset;
  }
  .kv-info{
    padding: 5px 0px 20px;
    margin: 0 auto;
  }

  .kv-logo-slider__list li {
    flex-shrink: 0;
    width: 120px;
    height: 60px;
    padding: 8px;
  }
  .kv-titile_text{
    gap:0;
  }
  .kv-cta{
    padding: 20px;
  }
  .kv-cta_head {
    padding: 20px;
  }
  .kv-cta__title{
    font-size: 18px;
  }
  .kv-cta__btn-arrow{
    width: 15px;
  }
  /* =========================================================
     CAMPAIGN (キャンペーン)
  ========================================================= */
  .campaign {
    position: relative;
    width: 100%;
    right: auto;
    margin: 0 auto;
    padding: 20px 20px 30px;
    border-radius: 0;
  }

  .campaign::before,
  .campaign::after {
    display: none; /* スマホでは装飾カーブを消す */
  }

  .campaign__item {
  }

  .campaign__title {
    font-size: 14px;
    letter-spacing: 1px;
  }

  /* モーダル共通 (キャンペーン・企業等) */
  .campaign-modal__container,
  .company-modal__container {
    padding: 20px 10px;
  }
  .campaign-modal__info-box{
    padding: 20px 10px;
  }
  .campaign-modal__title,
  .company-modal__title {
    font-size: 18px;
  }

  .campaign-modal__item {
    flex-direction: column; /* 項目名と内容を縦並びに */
    gap: 5px;
  }

  .campaign-modal__term {
    flex: none;
    font-size: 13px;
  }

  .campaign-modal__footer {
    flex-direction: row; /* ボタンを縦並びに */
    gap: 15px;
  }

  .campaign-modal__btn {
    width: 100%;
    height: 45px;
    padding: 0 5px;
    font-size: 12px;
  }
  .campaign-modal__close{
    top: 5px;
    right: 5px;
    width: 25px;
    height: 25px;
    width: 25px;
    height: 25px;
  }
/* スライダー */
.swiper-pagination{
  bottom: 10px !important;
}
#js-campaign-swiper .swiper-slide{
  display: flex;
  justify-content: center; /* 水平方向の中央寄せ */
  align-items: center;     /* 垂直方向の中央寄せ（高さが異なる場合） */
}
  /* =========================================================
     FEATURES (3つの特徴)
  ========================================================= */
  .features {
    border-radius:0;
    width: 100%;
    padding-bottom: 0;
  }

  .features__inner {
    padding: 0 15px 30px;
    border-radius: 20px;
  }

  .features__list {
    flex-direction: column; /* 縦並びに */
    gap: 10px;
    padding: 0 0;
    width: 100%;
    scroll-snap-type: y mandatory;
    overflow: auto;
  }

  .features__item {
    padding: 10px;
    flex-direction: column;
    gap: 20px;
    align-items: center;
    display: flex;
}

  .features__image-wrap{
    width: 100%;
    max-width: 100%;
    margin: 0;
  }
  .features__heading {
    font-size: 16px;
    text-align: justify;
    margin: 0;
    padding-bottom: 20px;
    gap: 25px;
  }
  .features_article{
    padding: 15px;
  }
  .features__text{
    grid-area: 2 / 1 / 3 / 3;
    font-size: 14px;
    margin-top: 20px;
  }
  /* =========================================================
     COMPANIES (参加企業)
  ========================================================= */

  .company-article_txt {
    font-size: 14px;
    line-height: 1.8;
    text-align: justify;
    padding: 10px;
  }

  /* 講演企業のカード */
  .company-lecture_list {
    display: flex;
    gap: 15px;
    overflow: auto;
    margin-bottom: 0;
    scroll-snap-type: x mandatory;
  }
  .company-lecture_card{
    min-width: 86%;
    aspect-ratio: auto;
    padding: 10px;
    border-radius: 4px;
  }
  /* ブース企業等のロゴリスト */
  .company-list {
    grid-template-columns: repeat(3, 1fr); /* 6列から3列へ */
    gap: 5px;
  }
  .baloon-accent{
    aspect-ratio: 16 / 9;
    padding: 5px;
    height: auto;

    border-radius: 4px;
  }
  .company-article_head{
flex-direction: column;
align-items: baseline;
gap: 10px;
margin-bottom: 10px;
  }
  .baloon-box{
    padding: 0;
  }
  .baloon-box_in{
    padding: 5px;
  }
  .company-lecture_footer{
    flex-flow: row-reverse;
  }
  .company-lecture_header{
    grid-template-columns: 1fr; 
    margin-bottom: 10px;
  }
  .company-lecture_body{
    margin-bottom: 10px;
  }
  .company-lecture_btn--secondary{
    width: 100%;
    white-space: nowrap;
  }
  .company-lecture_title{
    line-height: 1.5em;
    letter-spacing: 0.01em;
    font-size: 14px;
  }
  .company-lecture_btn img{

  }
  .company-lecture_info{
    flex-direction:row;
    justify-content: left;
  }
  .company-lecture_category{
    margin: 0;
  }
  .company-lecture_label{
    font-size: 12px;
  }
  .company-pickup_bottom__img{
    margin: 0;
  }
  .company-pickup_logo p{
font-size: 14px;
  }
  .company-pickup_bottom__article{
    padding: 20px 0;
  }
  .company-pickup_bottom__txt___ttl{
    font-size: 30px;
    margin: 30px 0;
  }
  /* =========================================================
     FLOW (参加の流れ)
  ========================================================= */
  .flow {
    border-radius: 0;
    margin-top: 0;
    width: 100%;
    overflow: hidden;
  }

  .flow__inner {
    padding: 40px 15px;
  }

  .flow__tab-text {
    font-size: 18px;
    padding: 15px;
  }

  .flow__list {
    gap: 20px;
    grid-template-columns: none;
  }

  .flow__item {
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 15px;
    padding: 10px;
  }

  .flow__icon-wrap {
    flex: 0 0 80px;
    height: 80px;
  }

  .flow__head {
    flex-direction: column;
    align-items: baseline;
    gap: 5px;
    margin: 0;
  }

  .flow__number {
    font-size: 16px;
    white-space: nowrap;
    display: none;
  }

  .flow__heading {
    font-size: 16px;
    line-height: 1.25em;
  }
  .flow__desc{
    font-size: 13px;
  }
  .flow__content{
    gap: 5px;
  }
  .flow__item::after{
    right: auto;
    left: 50%;
    top: unset;
    bottom: -15px;
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
    width: 10px;
    height: 2px;
    transform: rotate(0deg);
}
  /* =========================================================
     TIMETABLE (タイムテーブル)
  ========================================================= */
  .timetable {
    padding-bottom:40px;
    padding-top: 20px;
    width:100%;
  }

  .timetable__inner {
    padding: 30px 15px;
  }

  .timetable__block-header {
    padding: 10px 20px;
    flex-direction: row;
    border-radius: 100px;
    margin-bottom: 20px;
  }

  .timetable__block-title {
    font-size: 16px;
    text-align: justify;
    line-height: 1.25em;
  }

  .timetable__badge {
    padding: 10px 20px;
  }
  .timetable__th{
font-size: 12px;
padding: 8px;
width: 120px;
height: fit-content;
  }
  .timetable__thead {
    display: flex;
    position: sticky;
    padding: 0;
    margin: 0;
    top: 0;
    padding-top: 70px;
    margin-top: -70px;
    z-index: 10;
  }
  .timetable__th--time,.timetable__th__typeA,.timetable__th__typeB{
    padding: 10px;
    font-size: 14px;
  }
  .timetable__th--time{
    display: none;
  }
  .timetable__tr {
    grid-template-columns:1fr 1fr;
    gap: 2px;
    border-bottom: 0;
width: 100%;
  }
  .timetable__td {
    border-right: none;
    grid-area: 2 / 1 / 3 / 2;
    padding: 0;
  }
  .timetable__td:nth-child(3){
    grid-area: 2 / 5 / 3 / 6;
  }

  .timetable__td--time {
    padding: 10px;
    font-size: 14px;
    grid-area: 1 / 1 / 2 / 6;
  }

  .timetable__card-footer {
    flex-direction: row; /* ボタンを横に並べる */
    width: 100%;
    display: flex;
  }
  .timetable__note{
    font-size: 13px;
    text-align: justify;
  }
  .timetable__card{
    padding:5px;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    display: flex;
    flex-direction: column;
    gap:0;
  }
  .timetable__card-body{
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 5px;
  }
  .timetable__card-name{
    font-size: 12px;
    width: fit-content;
    margin: 0 auto 8px;
    line-height: 1.5em;
  }
  .timetable__card-info{
    margin-bottom: 10px;
    gap:0;
  }
  .timetable__card-category{
    font-size: 10px;
    margin: 0;
  }
  .timetable__tbody{
    border-left: 1px solid #ccc;
    border-right: 1px dotted #ccc;
    height: 100%;
    gap:4px;
    min-height: 100vh;

  }
  .timetable__table{
    /* overflow: auto; */
  }
  .timetable__card-logo{
    max-width: 100%;
    border: none;
    padding: 0 15px;
    height: 70px;
  }
  .timetable__btn{
    font-size: 11px;
    flex: 0 1 auto;

  }
  .timetable__btn--detail{
    padding: 5px;
  }
  .timetable__btn--detail img{
    width: 18px;
  }
  .timetable__card-time{
    font-size: 20px;
    margin-bottom: 10px;
    text-align: center;
  }
  .timetable__btn--reserve{
    background: #F5951A;
    color: #fff;
    white-space: nowrap;
    padding: 5px;
    width: 100%;
  }
  .timetable__card-head{
    flex-direction: column;
    gap: 0;
  }
  .timetable__card-logo img{
    height: 100%;
  }
  .campany-cat{
    font-size: 10px;
    text-align: center;
  }
  /* =========================================================
     CONTENTS (コンテンツ紹介)
  ========================================================= */
  .contents {
    padding-bottom: 0;
    width: 100%
  }

  .contents__inner {
    gap: 30px;
  }

  .contents__tab-list {
    width: 100%;
    display: flex;
    overflow: auto;
  }

  .contents__tab-btn {
    width: 100%; /* 縦並びにするか、calc(50%)等で調整 */
    padding:10px 5px;
    font-size: 12px;
    border-radius: 10px 10px 0 0;
    min-width: 160px;
  }

  .contents__panel {
    padding:20px 10px;
    border-radius: 0 0 10px 10px;
  }

  .contents__panel-header {
    flex-direction: row;
    align-items: center;
    text-align: center;
    gap: 10px;
    padding: 10px;
    border-radius: 10px;
    margin-bottom: 10px;
  }

  .contents__panel-title {
    font-size: 15px;
    line-height: 1.5;
  }

  .contents__panel-body {
    flex-direction: column; /* 画像を上、テキストを下へ */
    gap: 10px;
  }
  .contents__meta{
    margin-bottom: 10px;
  }
  .contents__heading{
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 15px;
    line-height: 1.5;
  }
  .contents__desc{
    font-size: 13px;
    line-height: 1.5;
  }
  .contents__image-area {
    width: 100%;
  }

  .contents__btn-text {
    font-size: 14px;
  }
  .contents__badge{
    padding: 5px 10px;
    font-size: 12px;
  }
  .contents__panel-container{
    padding: 20px 0 0;
  }
  /* =========================================================
     VOICE (参加者の声)
  ========================================================= */
  .voice{
    margin:0x;
  }
  .voice__inner{
    width:100%;
    padding: 30px 0 0;
}
  .voice__item {
    /* スマホでは1枚だけ大きく見せ、隣のカードを少し「チラ見せ」してスクロールを促す */
    width: calc(65% - 10px) !important;
    padding: 25px 15px;
  }

  .voice__icon {
    width: 80px;
    height: 80px;
  }

  /* =========================================================
     MOVIE (過去イベントの様子)
  ========================================================= */
  .movie {

    margin-top: 0;
    border-radius: 0;
    width: 100%;
  }

  .movie__note {
    font-size: 12px;
    text-align: left; /* 長文の注意書きは左寄せが読みやすい */
  }

  /* =========================================================
     RESERVATION (予約完了した人へ)
  ========================================================= */
  .reservation {
    padding: 0;
    margin: 0;
    width: 100%;
  }

  .reservation__inner {
    padding: 30px 15px;
  }

  .reservation__content {
    flex-direction: column;
    padding: 30px 20px 20px;
    gap: 20px;
  }

  .reservation__image-wrap {
    order: -1; 
    width: 100%;
  }
  .reservation__image{
    max-width: 150px;
  }
  /* =========================================================
     OVERVIEW (開催概要)
  ========================================================= */
  .overview {
    padding:0;
  }

  .overview__content {
    padding: 15px 20px;
  }
  .overview__list{
    margin: 0;
  }
  .overview__item {
    margin-bottom: 20px;
    border-bottom: 1px dashed #ccc;
    display: grid;
    grid-template-columns: 100px 1fr;
  }

  .overview__term {
    flex: none;
    padding: 10px 0;
    background-color: transparent;
    font-size: 14px;
  }
  .overview__text{
    font-size: 14px;
  }
  .overview__desc {
    padding: 0 0 15px 0;
    gap: 5px;
  }
  .overview__map{
    margin-top: 0;
  }
  .overview__attention{
    padding: 0;
  }
  /* =========================================================
     FAQ (よくあるご質問)
  ========================================================= */
  .faq {
    padding: 0 0 30px;
    margin: 0;
    width: 100%;
  }

  .faq__q {
    padding: 15px 50px 15px 15px; /* 右側に＋アイコン用の余白を確保 */
  }

  .faq__q-inner {
    align-items: flex-start; /* 複数行になった時にアイコンを上に揃える */
  }

  .faq__a {
    padding: 15px;
  }

  .faq__icon {
    font-size: 18px;
  }

  .faq__text {
    font-size: 14px;
  }

  /* =========================================================
     FOOTER (フッター)
  ========================================================= */
  .footer {
    padding: 40px 15px 120px; /* 下部にフローティングCTA用の余白を大きく取る */
    padding-bottom: 60px !important;
  }

  /* =========================================================
     INLINE CTA (ページ内CTA) & FLOATING CTA (追従CTA)
  ========================================================= */
  .inline-cta {
    padding: 20px 20px 40px;
    border-radius: 0;
    width:100%;
    margin: 0 auto;
  }
  .inline-cta_head{
    padding:0;
  }
  .inline-cta__inner {
    width: 100%;
    max-width: 100%;

  }
  .inline-cta__micro {
    font-size: 12px;
  }
  .inline-cta__title {
    font-size:16px;
  }
  .inline-cta__title .is-sp {
    display: block; 
  }
  .inline-cta__btn {
    padding: 0;
    width: auto;
    justify-content: center;
  }
  .inline-cta__btn-arrow img{
    width: 20px;
    height: auto;
  }
  .inline-cta__btn-arrow{
    aspect-ratio: unset;
    width: auto;
    height: auto;
  }

  /* ▼ スマホ用：フローティングCTAの完全な上書き指定 */
  .floating-cta {
    position: fixed !important;
    bottom: 0 !important;
    right: 0 !important;
    z-index: 7000 !important;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
    padding: 20px;
    width: 100%;
  }

  /* ▼ JSで付与される表示用クラス */
  .floating-cta.is-show {
    opacity: 1 !important;
    pointer-events: auto !important;
    animation: none;
    width: 100%;
    height: 80px;
    padding: 15px;
  }

  .floating-cta__btn {
    max-width: 100%;
    width: 97% !important;
    height: auto !important;
    padding: 15px 20px !important;
    flex-direction: row;
    gap: 20px;
    position: relative;
    border: 0;
    margin: 0 auto;
  }

  .floating-cta__text {
    font-size: 18px !important;
    margin: 0;
  }
  span.floating-cta__icon{
    position: absolute;
    right: 20px;
  }
  .floating-cta__icon img{
    height: auto;
    position: relative;
    width: 20px;
    bottom: 2px;
  }
  .floating-cta__accecnt{
    display: none;
  }
} /* ← @media (max-width: 767px) の閉じカッコ。絶対に消さない */