@charset "UTF-8";
/* BOC　タブ切り替え　******************/
.ChangeElem_Panel {
  display: none;
}
.ChangeElem_Btn_Content {
  display: flex;
  justify-content: space-around;
}
.ChangeElem_Btn {
  border-bottom: none;
  border-left: 2px solid #ccc;
  border-top: 2px solid #ccc;
  border-right: none;
  background-color: #fff;
  color: #666;
  cursor: pointer;
  display: inline-block;
  flex: 1;
  font-size: 16px;
  padding-bottom: 20px;
  padding-top: 20px;
  position: relative;
  transition: all .3s ease-in-out;
  vertical-align: middle;
}
.ChangeElem_Btn:last-child{
  border-right: 2px solid #ccc; 
}
.ChangeElem_Btn:hover,
.ChangeElem_Btn.is-active {
  background: #A01E23;
  box-sizing: border-box;
  color: #fff;
}
.ChangeElem_Btn:focus{
  outline: none;  
}
ul.ChangeElem_Btn_txt{
  display: block;
  border: 2px solid #ccc;
  padding: 20px;
}
div.ChangeElem_Btn_txt{
  display: block;
  border: 2px solid #ccc;
  padding: 20px;
  position: relative;
}
div.ChangeElem_Btn_txt h2{
  background-color: #A01E23;
  color: #fff!important;
  display: inline-block;
  margin:0  0 20px 0!important;
  padding:10px 50px;
  width: 100%;
  box-sizing: border-box;
}
div.ChangeElem_Btn_txt p{
  margin-bottom: 30px;
}
.gotowrap{
  text-align: center;
}
.goto{
  display: inline-block;
  padding: 10px 15px;
  margin: 30px auto;
}
.goto a{
  color: #fff!important;
  text-decoration: none!important
}
.br::before {
  content: "\A" ;
  white-space: pre ;
}

/* youtube ******************/
.youtube {
  position:relative;
  width:100%;
  padding-top:56.25%;
  margin-bottom:30px;
}
.youtube iframe{
  position:absolute;
  top:0;
  right:0;
  width:100%;
  height:100%;
}

/* サイドバナー ******************/
.side_bnr {
  width: 90%;
  margin: 0 auto;
  padding: 30px 0;
}
.side_bnr:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}
.side_bnr li {padding: 0 0 1.5%;}
.ft_banner .side_bnr {display: none;}
@media screen and (max-width: 768px) {
  .side_bnr {/*display: none;*/}
  .ft_banner .side_bnr,
   #body--index .layout-side .side_bnr {display: block;}
  .side_bnr li {
    width: 48%;
    float: left;
    padding: 0 1% 1.5%;
    }
  .side_bnr li:nth-child(2n+1) {clear: both;}
}
@media screen and (max-width: 480px) {
  .side_bnr {width: 94%;}
  .side_bnr li {
    width: 100%;
    float: none;
    padding: 0 0 1.5%;
    text-align: center;
    }
  .side_bnr li img {max-width: 315px; }
}


.layout-team-header .team-sns.no-fanclub {padding-top: 30px;}
.tsns-wrap .tsns_bottom {padding: 10px 0 0;}
.tsns-wrap .tsns_bottom a {display: inline-block;}
.tsns-wrap .tsns_bottom {display: block;}
.tsns-wrap .tsns_bottom li {
  display: table-cell;
  vertical-align: middle;
}
.tsns-wrap .tsns_bottom li i {
  display: block;
  content: "";
}
.caption {
  color: #fff !important;
  background: #A01E23 !important;
  padding: 5px;
}

/* 背景 ******************/
.benchside,
.courtside,
.goalback,
.ffloor,
.boosterarea,
.secondseat,
.wheelchair { color: #fff !important; }
.freeseat,
.awayarea { color: #555 !important; }

.benchside  { background:#727171 !important; }
.courtside  { background:#e4007f !important; }
.goalback { background:#0d6fb8 !important; }
.ffloor   { background:#90c31f !important; }
.boosterarea{ background:#e60012 !important; }
.freeseat { background:#F7ED0A !important; }
.secondseat { background:#28A7E1 !important; }
.wheelchair { background:#601986 !important; }
.awayarea { background:#F8B62B !important; }

.kids_sch { background:#fff45c !important; }
.junior_sch { background:#b3d465 !important; }
.step_sch { background:#7ecef4 !important; }
.advance_sch{ background:#eb6100 !important; color: #fff !important; }

/* アイコン ******************/
@media screen and (min-width: 768px){
  .layout-second .second-body article .icon-excel {
    margin-right: 3px;
    padding-right: 26px;
    background: url(../img/icon-excel.png) no-repeat right center;
  }
  .layout-second .second-body article .icon-word {
    margin-right: 3px;
    padding-right: 26px;
    background: url(../img/icon-word.png) no-repeat right center;
  }
  .layout-second .second-body article .icon-clipboard {
    margin-right: 3px;
    padding-right: 26px;
    background: url(../img/icon-clipboard.png) no-repeat right center;
  }
}

/* 行間 ******************/
.line170 { line-height: 170% !important; }
.line200 { line-height: 200% !important; }
.line250 { line-height: 250% !important; }

/* 文字サイズ ******************/
.font70 { font-size: 70% !important; }
.font75 { font-size: 75% !important; }
.font80 { font-size: 80% !important; }
.font85 { font-size: 85% !important; }
.font90 { font-size: 90% !important; }
.font95 { font-size: 95% !important; }

/* テキスト位置 ******************/
.txtleft { text-align: left !important; }
.txtcenter { text-align: center !important; }
.txtright { text-align: right !important; }

/* BOC　テキスト位置 追加 ******************/
.txtvtop{ vertical-align: top !important; }
.txtvmiddle { vertical-align: middle !important; }

/* BOC　マージン******************/
.mtop15{ margin-top: 15px!important; }
.mtop30{ margin-top: 30px!important; }
.mtop50{ margin-top: 50px!important; }
.mtop_nega {margin-top:-20px!important;}

/* BOC　行間調整　******************/
@media screen and (min-width: 768px) {
  .layout-second .second-body article > p {
    line-height: 2.0!important;
  }
}

/* リストスタイル ******************/
ul.ullist,
ol.ollist {margin: 0 0 20px;}
ul.ullist li,
ol.ollist li {
  list-style: disc !important;
  margin-left: 30px;
}
ol.ollist li {list-style: decimal !important;}

/* boxlist ******************/
.layout-second .second-body article .boxlist {
  overflow: hidden;
  zoom: 1;
}
@media screen and (min-width: 768px) {
  .layout-second .second-body article .boxlist li {
    float: left;
    margin-right: 3.5%;
    margin-bottom: 20px;
    width: 31%;
  }
  .layout-second .second-body article .boxlist li:nth-child(3n) {margin-right: 0;}
  .layout-second .second-body article .boxlist img {
    width: 100%;
    vertical-align: top;
  }
}
@media screen and (max-width: 767px) {
  .layout-second .second-body article .boxlist li {
    margin-bottom: auto !important;
    padding: 0 1% 1% 0;
    border-bottom: none !important;
    float: left;
    width: 49%;
  }
  .layout-second .second-body article .boxlist li:nth-child(3n) {padding: 0 1% 1% 0;}
  .layout-second .second-body article .boxlist li:nth-child(2n) {padding: 0 0 1% 1%;}
}

/* sponsors ******************/
.layout-sponsors {margin: 50px auto;}
.layout-sponsors h2,
.layout-sponsors h3 {text-align: center;}
.layout-sponsors h2 {
  font-size: 25px;
  padding: 20px 0 0;
}
.layout-sponsors h3 span {
  color: #666;
  border-bottom: 3px solid #666;
  font-size: 20px;
  padding: 0 15px 10px;
}
.layout-sponsors .sec_partner {margin-top: 30px;}
.section_sponsors ul {overflow: hidden;}
.section_sponsors ul li a {color: #A01E23;}
.section_sponsors .sec_partner .partner00 li {margin: 0 30px 30px !important;}
.section_sponsors .sec_partner .partner01 li,
.section_sponsors .sec_partner .partner02 li,
.section_sponsors .sec_partner .partner04 li {margin: 0 15px 30px !important;}
.section_sponsors ul .intv {
  display: block;
  font-size: 80%;
}
@media screen and (max-width: 767px) {
  .layout-sponsors h2 {font-size: 20px;}
  .layout-sponsors h3 {padding: 0 0 15px; }
  .layout-sponsors h3 span {
    font-size: 16px;
    padding: 0 0 15px;
  }
  .section_sponsors .sec_partner .partner00 li {
    display: blcok !important;
    width: 90% !important;
  }
  .section_sponsors .sec_partner .partner00 li img {width: 100% !important;}
  .section_sponsors .sec_partner .partner03 li {
    display: blcok !important;
    /*border-bottom: 1px solid #ccc;*/
    width: 100% !important;
    padding: 5px 0;
  }
}

/* グローバルナビ アイコン ******************/
.tsns-wrap .tsns_bottom .icn_line {
  width: 19px;
  height: 18px;
  background: url(../webfonts/icn_sns_line.png) no-repeat 0 0;
}
.tsns-wrap .tsns_bottom .icn_youtube {
  width: 24px;
  height: 17px;
  background: url(../webfonts/icn_sns_youtube.png) no-repeat 0 0;
}
.tsns-wrap .tsns_bottom .icn_mail {
  width: 21px;
  height: 15px;
  background: url(../webfonts/icn_sns_mail.png) no-repeat 0 0;
}
.tsns-wrap .tsns_bottom .icn_blog {
  width: 21px;
  height: 15px;
  background: url(../webfonts/icn_sns_blog.png) no-repeat 0 0;
}
.layout-popup-tnav .tsns-wrap .tsns_bottom .icn_line {
  width: 17px;
  background-size: contain;
}
.layout-popup-tnav .tsns-wrap .tsns_bottom .icn_youtube {
  width: 19px;
  background-position: 0 3px;
  background-size: contain;
}
.layout-popup-tnav .tsns-wrap .tsns_bottom .icn_mail {
  width: 19px;
  background-size: contain;
}
.layout-popup-tnav .tsns-wrap .tsns_bottom .blog_mail {
  width: 19px;
  background-size: contain;
}

/* current表示 ******************/
@media screen and (min-width: 768px) {
  .component-sidenav .active {
    color: #FFF;
    background: #666 !important;
    margin-left: -50px !important;
  }
}

/* BOC 見出し ******************/
.team-bn .second-body h2,
.news-article .second-body h2{
  background-color: #A01E23;
  color: #fff!important;
  display: inline-block;
  margin:0 -50px;
  padding:10px 50px;
  width: 100%;
}
.detail h2{background-color: #fff!important;}
.team-bn .second-body h3,
.news-article .second-body h3{
  color: #A01E23!important;
  font-size: 20px!important;
  font-weight: bold;
}
.team-bn .second-body h4,
.news-article .second-body h4{
  color: #313131!important;
  font-weight: bold;
  font-size: 18px!important;
  margin-bottom: 5px;
}
.team-bn .second-body h4 span,
.news-article .second-body h4 span{
  font-size: 14px!important;
}

@media screen and (max-width: 767px) {
  .team-bn .second-body h2,
  .news-article .second-body h2,
  .team-bn .second-body h3,
  .news-article .second-body h3 {
    margin:0 -10px;
    padding:10px 10px;
  }
}

/* BOC TICKETのボタンの色 ******************/
.team-bn .layout-game-list .past .play-detail, 
.layout-game-list .future .play-detail a{color:#ec3e6b!important;}

.team-bn .layout-game-list .past .play-detail, 
.layout-game-list .future .play-detail a:hover{color:#ec3e6b!important;}

/* BOC 強調 ******************/
b,strong{ color: #A01E23!important; }

/* BOC リンク ******************/
.second-body a{
  color: #005982!important;
  text-decoration: underline;
}
.link-wrap a{
  font-weight: bold;
  text-decoration: none;
  padding-left: 15px!important;
  padding-right: 15px!important;
}

/* BOC コピー見出し*******************/
p.copytext {
  border:5px solid #000;
  color: #000;
  font-size:25px;
  padding:20px 10px;
  position:relative;
  text-align: center
}
p.copytext:after {
  background:#000;
  color:#fff;
  content:"check";
  font-size:20px;
  font-weight:bold;
  left: 10px;
  padding:0 15px;
  position:absolute;
  top: -25px;
}

/* BOC テーブル追加 *******************/
.tbl04 {
  border: 1px solid #bfbfbf;
  margin-bottom: 30px;
  overflow-y:scroll;
  width: 100%;
  white-space: nowrap;
}
.tbl04 th,
.tbl04 td {
  padding: 15px 10px;
  text-align: center;
  vertical-align: middle;
}
.tbl04 tbody tr {border: 1px solid #bfbfbf;}
.tbl04 tbody tr th {
  background: #fff;
  color: #434343;
}
.tbl04 tbody tr td {border: 1px solid #bfbfbf;}
.tbl04sub {border-bottom: 1px solid #e5e5e5!important;}
.tbl-blank{
  border-left: 1px solid #fff;
  border-right: 1px solid #fff;
}

.tbl04-1 {
  border: 1px solid #bfbfbf;
  margin-bottom: 30px;
  overflow-y:scroll;
  width: 100%;
  white-space: nowrap;
}
.tbl04-1 th, .tbl04-1 td {
  padding: 15px 10px;
  text-align: center;
  vertical-align: middle;
}
.tbl04-1 th {
  background-color: #000000!important;
  color: #fff;
}
.tbl04-1 tbody tr {border: 1px solid #bfbfbf;}
.tbl04-1 tbody tr th {background: #eee;}
.tbl04-1 tbody tr td {border: 1px solid #bfbfbf;}
.tbl04sub {border-bottom: 1px solid #e5e5e5!important;}

.club-free{ background-color: #cce198;}
.club-gold{ background-color: #fff45c;}
.club-junior{ background-color: #eeeeee;}
.club-platinum{ background-color: #626262;  color: #fff;}
.club-regular{ background-color: #A01E23;  color: #fff;}


.tbl05{
  border-bottom: 1px solid #bfbfbf;
  border-right: 1px solid #bfbfbf;
  box-sizing: border-box;
  display: block;
  margin-bottom: 30px;
  width: 100%;
  table-layout:fixed;
}
.tbl05::-webkit-scrollbar {height: 5px;}
.tbl05::-webkit-scrollbar-track {background: #F1F1F1;}
.tbl05::-webkit-scrollbar-thumb {background: #BCBCBC;}
.tbl05 thead {
  background-color: #eeeeee;
  display: block;
  float: left;
}
.tbl05 tbody {
  display: block;
  overflow-y:scroll;
  white-space: nowrap;
}
.tbl05 th, .tbl05 td {
  border-top: 1px solid #bfbfbf;
  border-left: 1px solid #bfbfbf;
  display: block;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  width: 100px;
}
.tbl05 td {text-align: center;}
.tbl05 tbody tr {
  display: inline-block;
  margin-right:-6px
}
.tbl05 tbody tr th {background: #eee;}
.tbl05sub {border-bottom: 1px solid #e5e5e5!important;}


/* BOC TOP スライド調整 *******************/
.main-visual-inner {padding-bottom: 80px!important;}
.main-visual-inner .slide-pager {
  bottom: 10px!important;
  left: 50%!important;
  margin: 0 auto;
  position:absolute!important;
}
.main-visual-card-wrap{display: none!important;}

@media screen and (max-width: 767px) {
  .main-visual-inner {padding-bottom: 25px!important; }
  .main-visual-inner .bx-controls{bottom: -22px !important;}
}

/* BOC TEAM オフィシャルダンスチーム プロフィール C******************/
.bv_prof {background: #e5004f!important;}

/* BOC SCHOOL　スクールコーチ プロフィール *******************/
.coach-box{
  border-bottom: solid 1px #c9c9c9;
  border-left: solid 1px #c9c9c9;
  border-right: solid 1px #c9c9c9;
  overflow: hidden;
  padding:20px;
}
.coach-box-first{
  border: solid 1px #c9c9c9;
  overflow: hidden;
  padding:20px;
}
.coach img{
  float:left;
  width: 200px;
}
.coach dl{ 
  margin-left:220px;
}
.coach dt{
  border-right:solid 1px #c9c9c9;
  float:left; width:100px;
}
.coach dd{
  margin-left:100px;
  margin-bottom: 10px;
  padding-left: 20px;
}

@media screen and (max-width: 767px) {
  .coach img{
    display: block;
    float:none;
    margin: 0 auto 20px auto;
  }
  .coach dl{margin-left:0px;}
}

/* BOC NEWS ******************/
.news-article table {border: 1px solid #bfbfbf;}
.news-article th, .news-article td {
  border: 1px solid #bfbfbf;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
}
.news-article th {background-color: #eeeeee;}

/* BOC TICKET　購入方法 リンクメニューボタン追加 *******************/
ul.linkbtn{
  border-collapse: collapse;
  display:table;
  margin-bottom:30px;
  table-layout:fixed;
  text-align:center;
  width:100%; 
}
ul.linkbtn li{
  border: solid 1px #015a82;
  background-color: #fff;
  display:table-cell;
  margin: -1px 0 0!important;
  vertical-align:middle;
}
ul.linkbtn li a{
  color: #015a82;
  display:block;
  padding: 10px;
  text-decoration: none;
}
ul.linkbtn li a:hover{
  background-color: #015a82;
  color: #fff!important;
}
@media screen and (max-width: 767px) {
  ul.linkbtn li{
    display: block!important
  } 
}

/* BOC TICKET　購入方法 販売席種 追加 *******************/

.sealsseatwrap{
  display: block;
  text-align: center;
  margin-left: -5px;
}
.sealsseat{
  box-sizing: border-box;
  float: left;
  font-size: 14px;
  margin: 5px;
  padding: 15px;
  text-align: center;
  width: 200px;
}
.notsale{
  background-color: #eeeeee;
  color: #aaaaaa;
}
.clear{clear:both;}

@media screen and (max-width: 767px) {
  .sealsseat{
    width: calc(100% - 5px);
    box-sizing: border-box;
      padding: 5px!important;
  } 
}

/* BOC list row 修正*******************/
@media screen and (max-width: 767px) {
  .layout-second .second-body article .list li {
    margin-bottom: 15px!important;
    padding-bottom: 15px!important;
    border-bottom: none!important
  }

/* BOC　TELリンク　******************/
  .tel-link{
    font-weight: bold
  }
}

/* BOC　モーダル　******************/
.modal{
  display: none;
  position: relative;
}
.modal img{
  max-width: 100%;
}
.modal label.close{
  position: absolute;
  left: 0!important;
  right: 0!important;
  margin:0 auto;
  top: auto!important;
  bottom: 30px!important;
  font-size: 40px;
  width: 30px;
  height: 30px;
  color: #fff!important;
}

/* スポンサーテキストリンク 文字スタイル *******************/
.partner03 li{
	font-family: "YuGothic","Yu Gothic","Meiryo","ヒラギノ角ゴ","sans-serif";
	font-weight: 600;
}

/* 試合情報 20260727*******************/

/* ==========================================================================
   グッズ
   ========================================================================== */
#page_topics_detail39 .slider.goods_slider img{
    max-width: 100%;
}
/* ==========================================================================
   見どころ
   ========================================================================== */
#page_topics_detail39 .game_preview{
    background:#fff;
    padding-top: 0;
    padding-bottom: 30px;
}
#page_topics_detail39 .game_preview .h2{
    color: #000;
}
#page_topics_detail39 .game_preview_contents{
    flex-direction: column;
    min-height: 100%;
    margin-top: 20px;
}
#page_topics_detail39 .game_preview_img img{
    max-width: 100%;
}
#page_topics_detail39 .game_preview_txt{
    max-height: 100%;
    position: static;
}
#page_topics_detail39 .game_preview_txt .game_preview_txt_inner {
    position: static;
}
@media (max-width: 768px) {
    #page_topics_detail39 .game_preview_contents{
        gap:30px;
    }
    #page_topics_detail39 .game_preview_img {
        max-width: 100vw;
        margin-inline: calc(50% - 50vw);
    }
}
/* ==========================================================================
   1. 全デバイス共通：カードレイアウト・画像正方形トリミング・余白調整
   ========================================================================== */
/* 見出しとコンテンツの余白調整 */
#page_topics_detail39 .event_contents{
  padding-top: 40px;
}
@media screen and (max-width: 768px) {
    #page_topics_detail39 .event_contents{
      padding-top: 40px;
  }
}
/* 追加されたラッパーをFlexbox化し、高さを揃えるベースを作る */
#page_topics_detail39 .event_contents .event_block-wrap {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
}

/* 元のイベントブロックの余白をゼロにし、枠線ギリギリまで広げる */
#page_topics_detail39 .event_contents .event_block {
    padding: 0 !important;
    margin-top: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    overflow: hidden !important; 
    /* 余った高さを自動で埋め、詳細ボタンを常に一番下に押しやる魔法 */
    flex-grow: 1 !important; 
}

/* ★追加：スマホで横スクロール（はみ出し）する原因の min-width 制限を解除 */
#page_topics_detail39 .event_contents .event_block_item {
    min-width: 0 !important;
}

/* 画像エリアを「正方形(1:1)」に完全固定し、はみ出しを許さない */
#page_topics_detail39 .event_contents .event_block_item:first-of-type {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    display: block !important;
    position: relative !important; /* 中の画像を絶対配置にするための基準 */
    overflow: hidden !important;   /* 枠を越えた部分を強制的に隠す */
}

/* 画像を絶対配置にして、強制的に正方形の枠にフィットさせる */
#page_topics_detail39 .event_contents .event_block_item:first-of-type img {
    position: absolute !important; /* 画像の元の高さで枠が伸びるのを完全に防ぐ */
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* 画像がない場合（ロゴ等）の調整 */
#page_topics_detail39 .event_contents .event_block_item.img_none {
    aspect-ratio: 1 / 1 !important;
    display: block !important;
    position: relative !important;
    background-color: #f9f9f9 !important;
}

#page_topics_detail39 .event_contents .event_block_item.img_none img {
    position: absolute !important;
    top: 50% !important;  /* 上から50%の位置 */
    left: 50% !important; /* 左から50%の位置 */
    transform: translate(-50%, -50%) !important; /* 自身のサイズの半分だけ戻してど真ん中に配置 */
    width: auto !important;
    height: auto !important;
    max-width: 60% !important;
    max-height: 60% !important;
    object-fit: contain !important;
}

/* 画像以外のテキストエリア（カテゴリ・タイトル）に余白を再設定 */
#page_topics_detail39 .event_contents .event_block_item:nth-of-type(2) {
    width: 100% !important;
    padding: 0 16px 20px !important;
    margin-top: 0 !important;
    box-sizing: border-box !important;
    flex: none !important;
}

/* ボタン（詳細を見る）のデザイン調整 */
#page_topics_detail39 .event_contents .accordion {
    margin-top: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 0 0 6px 6px !important; /* 下部の角丸 */
}

/* アコーディオンの矢印アイコンを消す */
#page_topics_detail39 .accordion span::after {
    content: none !important;
}

/* 元画面のアコーディオンテキストを強制非表示（モーダル内でのみ表示） */
#page_topics_detail39 .event_contents .accordion_text {
    display: none !important;
}


/* ==========================================================================
   2. PC表示時（769px以上）：2列グリッドレイアウト
   ========================================================================== */
@media screen and (min-width: 769px) {
    #page_topics_detail39 .event_contents {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important; /* 均等な2列 */
        gap: 40px 20px !important; /* 縦のすき間40px、横のすき間20px */
        align-items: stretch !important; /* 左右のカードの高さを自動で揃える */
    }
}


/* ==========================================================================
   3. SP表示時（768px以下）：スマホ用2列グリッドと余白・文字サイズの最適化
   ========================================================================== */
@media screen and (max-width: 768px) {
    #page_topics_detail39 .event_contents {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important; /* スマホでも2列 */
        gap: 20px 10px !important; /* PCより隙間を狭くして窮屈さを軽減 */
        align-items: stretch !important;
    }
    
    /* 余白はGridのgapで制御するため、ラッパー自体の余白は消す */
    #page_topics_detail39 .event_block-wrap {
        margin-bottom: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    /* スマホ画面に合わせて、テキストエリアの内側余白をスリム化 */
    #page_topics_detail39 .event_contents .event_block_item:nth-of-type(2) {
        padding: 10px 8px 15px !important;
    }

    /* スマホの狭い2列でも読みやすいように、タイトルとカテゴリの文字サイズを縮小 */
    #page_topics_detail39 .event_title {
        font-size: 13px !important;
        line-height: 1.4 !important;
    }
    #page_topics_detail39 .event_category {
        font-size: 11px !important;
        padding: 2px 6px !important;
        margin-bottom: 8px !important;
    }

    /* 詳細を見るボタンの文字サイズ・余白もスマホに最適化 */
    #page_topics_detail39 .event_contents .accordion {
        font-size: 12px !important;
        padding: 12px 5px !important;
    }
}


/* ==========================================================================
   4. モーダルウィンドウ用 CSS
   ========================================================================== */

/* モーダルの背景（オーバーレイ） */
.custom-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.75);
    z-index: 99999;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* モーダル表示時のアクティブクラス */
.custom-modal-overlay.is-active {
    opacity: 1;
    visibility: visible;
}

/* モーダルウィンドウ本体 */
.custom-modal-dialog {
    position: relative;
    width: 90%;
    max-width: 700px;
    background: #ffffff;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    /* スマホ用の基本設定 */
    max-height: 85vh;
}

/* 閉じるボタン (×) */
.custom-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 40px;
    cursor: pointer;
    line-height: 1;
}

/* モーダル内のスクロールエリア */
.custom-modal-content {
    overflow-y: auto;
    padding: 30px 40px;
}

/* スクロールバーのデザインカスタマイズ */
.custom-modal-content::-webkit-scrollbar {
    width: 8px;
}
.custom-modal-content::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}
.custom-modal-content::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 4px;
}
.custom-modal-content::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

/* モーダル内の要素デザイン */
.custom-modal-img img {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: 20px;
}

.custom-modal-header {
    border-bottom: 2px solid #A01E23;
    padding-bottom: 15px;
    margin-bottom: 20px;
}

.custom-modal-header .event_category {
    margin-bottom: 15px;
    font-size: 14px;
    display: inline-block;
}

.custom-modal-header .event_title {
    font-size: 22px;
    font-weight: bold;
    line-height: 1.4;
    margin: 0;
}

.custom-modal-desc p {
    font-size: 15px;
    line-height: 1.8;
}

/* モーダルのPC表示時（高さ750px固定・安全設計） */
@media screen and (min-width: 769px) {
    .custom-modal-dialog {
        height: 750px !important;
        max-height: 90vh !important; 
    }
    .custom-modal-content {
        flex-grow: 1 !important;
        height: 100% !important;
    }
}

/* モーダルのスマホ表示微調整 */
@media screen and (max-width: 768px) {
    .custom-modal-content {
        padding: 20px;
    }
    .custom-modal-header .event_title {
        font-size: 17px;
    }
    .custom-modal-close {
        top: -35px;
        font-size: 30px;
    }
}