@charset "UTF-8";
/*
Theme Name: mdrt charity relay2026
Theme URI: http://www.approad.co.jp/
Author: Approad Co., Ltd.
Author URI: http://www.approad.co.jp/
Description: Approad Co., Ltd.
Version: 1.0.0
Text Domain: mdrt charity relay2026

k2m is based on Underscores http://underscores.me/, (C) 2012-2016 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
*/
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,900,300,100|Old+Standard+TT:400,400italic,700|Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic);
.clearfix, .container, .header-base, .header-menu-container, .banner-sponsor, .banner-link, .insta-list, .sns-button ul, .container-body .pageGallerylist, .container-body .faq-list-a-text {
  *zoom: 1;
}

.clearfix:after, .container:after, .header-base:after, .header-menu-container:after, .banner-sponsor:after, .banner-link:after, .insta-list:after, .sns-button ul:after, .container-body .pageGallerylist:after, .container-body .faq-list-a-text:after {
  content: "";
  display: table;
  clear: both;
}

/* --- サイト内共通 ----------------------------------------------------------------------------------------- */
html {
  font-size: 62.5%;
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
}

@media (min-width: 48em) {
  html {
    font-size: 125%;
  }
}

body {
  position: relative;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.625;
  color: #000000;
}

@media (min-width: 48em) {
  body {
    font-size: 0.8rem;
  }
}

a {
   position: relative;
   text-decoration: none;
   color: #05569f;
   font-weight: bold;
   outline: none;
   -webkit-transition: 0.3s ease-in-out;
   -moz-transition: 0.3s ease-in-out;
   -o-transition: 0.3s ease-in-out;
   -ms-transition: 0.3s ease-in-out;
   transition: 0.3s ease-in-out;
 }

a:hover {
  color: #257fdf;
}

.wrapper {
  overflow: hidden;
}

.container {
  margin: 0 auto;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

@media (min-width: 64em) {
  .container {
    max-width: 1600px;
  }
}

.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12 {
  float: left;
  position: relative;
  min-height: 1px;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-bottom: 1.5rem;
}

.col-md-1 {
  float: none;
}

@media (min-width: 48em) {
  .col-md-1 {
    float: left;
    width: 8.3333%;
  }
}

.col-md-2 {
  float: none;
}

@media (min-width: 48em) {
  .col-md-2 {
    float: left;
    width: 16.6666%;
  }
}

.col-md-3 {
  float: none;
  width: 100%;
}

@media (min-width: 48em) {
  .col-md-3 {
    float: left;
    width: 50%;
  }
}

@media (min-width: 62em) {
  .col-md-3 {
    width: 25%;
  }
}

.col-md-4 {
  float: none;
  width: 100%;
}

@media (min-width: 48em) {
  .col-md-4 {
    float: left;
    width: 50%;
  }
}

@media (min-width: 62em) {
  .col-md-4 {
    width: 33.3333%;
  }
}

.col-md-5 {
  float: none;
  width: 100%;
}

@media (min-width: 48em) {
  .col-md-5 {
    float: left;
    width: 41.6666%;
  }
}

.col-md-6 {
  float: none;
  width: 100%;
}

@media (min-width: 30em) {
  .col-md-6 {
    float: left;
    width: 50%;
  }
}

.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12 {
  float: none;
  width: 100%;
}

@media (min-width: 62em) {
  .col-md-7,
  .col-md-8,
  .col-md-9,
  .col-md-10,
  .col-md-11,
  .col-md-12 {
    float: left;
    width: 58.3333%;
  }
}

@media (min-width: 62em) {
  .col-md-8 {
    width: 66.6666%;
  }
}

@media (min-width: 62em) {
  .col-md-9 {
    width: 75%;
  }
}

@media (min-width: 62em) {
  .col-md-10 {
    width: 83.3333%;
  }
}

@media (min-width: 62em) {
  .col-md-11 {
    width: 91.6666%;
  }
}

@media (min-width: 62em) {
  .col-md-12 {
    float: none;
    width: 100%;
  }
}

.pd-4px-8px {
  padding-top: 0.4rem !important;
  padding-bottom: 0.4rem !important;
}

.pd-8px-16px {
  padding-top: 0.8rem !important;
  padding-bottom: 0.8rem !important;
}

.pd-12px-24px {
  padding-top: 1.2rem !important;
  padding-bottom: 1.2rem !important;
}

.pd-16px-32px {
  padding-top: 1.6rem !important;
  padding-bottom: 1.6rem !important;
}

.pd-20px-40px {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

.pd-24px-48px {
  padding-top: 2.4rem !important;
  padding-bottom: 2.4rem !important;
}

.pd-28px-56px {
  padding-top: 2.8rem !important;
  padding-bottom: 2.8rem !important;
}

.pd-32px-64px {
  padding-top: 3.2rem !important;
  padding-bottom: 3.2rem !important;
}

.pd-36px-72px {
  padding-top: 3.6rem !important;
  padding-bottom: 3.6rem !important;
}

.pd-40px-80px {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

.pd-box-4px-8px {
  padding: 0.4rem !important;
}

.pd-box-8px-16px {
  padding: 0.8rem !important;
}

.pd-box-12px-24px {
  padding: 1.2rem !important;
}

.pd-box-16px-32px {
  padding: 1.6rem !important;
}

.pd-box-20px-40px {
  padding: 2rem !important;
}

.pd-box-24px-48px {
  padding: 2.4rem !important;
}

.pd-box-28px-56px {
  padding: 2.8rem !important;
}

.pd-box-32px-64px {
  padding: 3.2rem !important;
}

.pd-box-36px-72px {
  padding: 3.6rem !important;
}

.pd-box-40px-80px {
  padding: 4rem !important;
}

.mg-bottom-4px-8px {
  margin-bottom: 0.4rem !important;
}

.mg-bottom-8px-16px {
  margin-bottom: 0.8rem !important;
}

.mg-bottom-12px-24px {
  margin-bottom: 1.2rem !important;
}

.mg-bottom-16px-32px {
  margin-bottom: 1.6rem !important;
}

.mg-bottom-20px-40px {
  margin-bottom: 2rem !important;
}

.mg-bottom-24px-48px {
  margin-bottom: 2.4rem !important;
}

.mg-bottom-28px-56px {
  margin-bottom: 2.8rem !important;
}

.mg-bottom-32px-64px {
  margin-bottom: 3.2rem !important;
}

.mg-bottom-36px-72px {
  margin-bottom: 3.6rem !important;
}

.mg-bottom-40px-80px {
  margin-bottom: 4rem !important;
}

.w-10pc {
  width: 10% !important;
}

.w-20pc {
  width: 20% !important;
}

.w-30pc {
  width: 30% !important;
}

.w-40pc {
  width: 40% !important;
}

.w-50pc {
  width: 50% !important;
}

.w-60pc {
  width: 60% !important;
}

.w-70pc {
  width: 70% !important;
}

.w-80pc {
  width: 80% !important;
}

.w-90pc {
  width: 90% !important;
}

.w-100pc {
  width: 100% !important;
}

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

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

.text-right {
  text-align: right;
}

.fo-st-italic {
  font-style: italic;
}

.fo-st-normal {
  font-style: normal;
}

.fo-w-normal {
  font-weight: normal;
}

.fo-w-bold {
  font-weight: bold;
}

.fo-w-100 {
  font-weight: 100;
}

.fo-w-300 {
  font-weight: 300;
}

.fo-w-400 {
  font-weight: 400;
}

.fo-w-700 {
  font-weight: 700;
}

.fo-w-900 {
  font-weight: 900;
}

.fo-fa-Lato {
  font-family: Lato;
}

.fo-fa-Roboto {
  font-family: Roboto;
}

.fo-fa-Old_Standard_TT {
  font-family: Old Standard TT;
}

.fo-fa-jp-go {
  font-family: "Lato", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
}

.fo-fa-jp-min {
  font-family: "Old Standard TT", "Times New Roman", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "游明朝", YuMincho, "HGS明朝E", "ＭＳ Ｐ明朝", serif;
}

.fo-2px {
  font-size: 2px;
  font-size: 0.2rem;
  line-height: 5;
}

@media (min-width: 48em) {
  .fo-2px {
    font-size: 0.1rem;
  }
}

.fo-4px {
  font-size: 4px;
  font-size: 0.4rem;
  line-height: 3;
}

@media (min-width: 48em) {
  .fo-4px {
    font-size: 0.2rem;
  }
}

.fo-6px {
  font-size: 6px;
  font-size: 0.6rem;
  line-height: 2.33333;
}

@media (min-width: 48em) {
  .fo-6px {
    font-size: 0.3rem;
  }
}

.fo-8px {
  font-size: 8px;
  font-size: 0.8rem;
  line-height: 2;
}

@media (min-width: 48em) {
  .fo-8px {
    font-size: 0.4rem;
  }
}

.fo-10px {
  font-size: 10px;
  font-size: 1rem;
  line-height: 1.8;
}

@media (min-width: 48em) {
  .fo-10px {
    font-size: 0.5rem;
  }
}

.fo-12px {
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 1.66667;
}

@media (min-width: 48em) {
  .fo-12px {
    font-size: 0.6rem;
  }
}

.fo-14px {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.57143;
}

@media (min-width: 48em) {
  .fo-14px {
    font-size: 0.7rem;
  }
}

.fo-16px {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5;
}

@media (min-width: 48em) {
  .fo-16px {
    font-size: 0.8rem;
  }
}

.fo-18px {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.44444;
}

@media (min-width: 48em) {
  .fo-18px {
    font-size: 0.9rem;
  }
}

.fo-20px {
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.4;
}

@media (min-width: 48em) {
  .fo-20px {
    font-size: 1rem;
  }
}

.fo-22px {
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.36364;
}

@media (min-width: 48em) {
  .fo-22px {
    font-size: 1.1rem;
  }
}

.fo-24px {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.33333;
}

@media (min-width: 48em) {
  .fo-24px {
    font-size: 1.2rem;
  }
}

.fo-26px {
  font-size: 26px;
  font-size: 2.6rem;
  line-height: 1.30769;
}

@media (min-width: 48em) {
  .fo-26px {
    font-size: 1.3rem;
  }
}

.fo-28px {
  font-size: 28px;
  font-size: 2.8rem;
  line-height: 1.28571;
}

@media (min-width: 48em) {
  .fo-28px {
    font-size: 1.4rem;
  }
}

.fo-30px {
  font-size: 30px;
  font-size: 3rem;
  line-height: 1.26667;
}

@media (min-width: 48em) {
  .fo-30px {
    font-size: 1.5rem;
  }
}

.fo-32px {
  font-size: 32px;
  font-size: 3.2rem;
  line-height: 1.25;
}

@media (min-width: 48em) {
  .fo-32px {
    font-size: 1.6rem;
  }
}

.fo-34px {
  font-size: 34px;
  font-size: 3.4rem;
  line-height: 1.23529;
}

@media (min-width: 48em) {
  .fo-34px {
    font-size: 1.7rem;
  }
}

.fo-36px {
  font-size: 36px;
  font-size: 3.6rem;
  line-height: 1.22222;
}

@media (min-width: 48em) {
  .fo-36px {
    font-size: 1.8rem;
  }
}

.fo-38px {
  font-size: 38px;
  font-size: 3.8rem;
  line-height: 1.21053;
}

@media (min-width: 48em) {
  .fo-38px {
    font-size: 1.9rem;
  }
}

.fo-40px {
  font-size: 40px;
  font-size: 4rem;
  line-height: 1.2;
}

@media (min-width: 48em) {
  .fo-40px {
    font-size: 2rem;
  }
}

.fo-42px {
  font-size: 42px;
  font-size: 4.2rem;
  line-height: 1.19048;
}

@media (min-width: 48em) {
  .fo-42px {
    font-size: 2.1rem;
  }
}

.fo-44px {
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 1.18182;
}

@media (min-width: 48em) {
  .fo-44px {
    font-size: 2.2rem;
  }
}

.fo-46px {
  font-size: 46px;
  font-size: 4.6rem;
  line-height: 1.17391;
}

@media (min-width: 48em) {
  .fo-46px {
    font-size: 2.3rem;
  }
}

.fo-48px {
  font-size: 48px;
  font-size: 4.8rem;
  line-height: 1.16667;
}

@media (min-width: 48em) {
  .fo-48px {
    font-size: 2.4rem;
  }
}

.fo-50px {
  font-size: 50px;
  font-size: 5rem;
  line-height: 1.16;
}

@media (min-width: 48em) {
  .fo-50px {
    font-size: 2.5rem;
  }
}

.fo-52px {
  font-size: 52px;
  font-size: 5.2rem;
  line-height: 1.15385;
}

@media (min-width: 48em) {
  .fo-52px {
    font-size: 2.6rem;
  }
}

.fo-54px {
  font-size: 54px;
  font-size: 5.4rem;
  line-height: 1.14815;
}

@media (min-width: 48em) {
  .fo-54px {
    font-size: 2.7rem;
  }
}

.fo-56px {
  font-size: 56px;
  font-size: 5.6rem;
  line-height: 1.14286;
}

@media (min-width: 48em) {
  .fo-56px {
    font-size: 2.8rem;
  }
}

.fo-58px {
  font-size: 58px;
  font-size: 5.8rem;
  line-height: 1.13793;
}

@media (min-width: 48em) {
  .fo-58px {
    font-size: 2.9rem;
  }
}

.fo-60px {
  font-size: 60px;
  font-size: 6rem;
  line-height: 1.13333;
}

@media (min-width: 48em) {
  .fo-60px {
    font-size: 3rem;
  }
}

.fo-co-base {
  color: #05569f;
}

.fo-co-logo {
  color: #000000;
}

.fo-co-white {
  color: #fff;
}

.fo-co-black {
  color: #000000;
}

.fo-co-gray {
  color: #999999;
}

.fo-co-red {
  color: #f02626;
}

.fo-co-pink {
  color: #ec6d81;
}

.fo-co-blue {
  color: #00aaba;
}

.fo-co-green {
  color: #52cb98;
}

.fo-co-orange {
  color: #fabf00;
}

.fo-co-yellow {
  color: #ffff00;
}

.fo-co-ori {
  color: #DE4154;
}


.text-lh-16px {
  line-height: 16px;
}

.text-lh-24px {
  line-height: 24px;
}

.text-lh-32px {
  line-height: 32px;
}

.text-lh-40px {
  line-height: 40px;
}

.text-lh-48px {
  line-height: 48px;
}

.text-lh-56px {
  line-height: 56px;
}

.img-float-l, .img-float-r {
  display: block;
  margin: 0 auto 2rem auto;
  text-align: center;
}

@media (min-width: 30em) {
  .img-float-l, .img-float-r {
    float: left;
    display: inline-block;
    margin: 0 1.875rem 1.875rem 0;
  }
}

@media (min-width: 30em) {
  .img-float-r {
    float: right;
    margin: 0 0 1.875rem 1.875rem;
  }
}

.border-top {
  border-top: 1px #f0f0f0 solid;
}

.border-bottom {
  border-bottom: 1px #f0f0f0 solid;
}

.border-1px {
  border: 1px #05569f solid;
}

.border-2px {
  border: 2px #05569f solid;
}

.border-3px {
  border: 3px #05569f solid;
}

.border-4px {
  border: 4px #eee solid;
}

.border-5px {
  border: 5px #eee solid;
}

.border-co-base {
  border-color: #05569f;
}

.border-co-logo {
  border-color: #534c4a;
}

.border-co-white {
  border-color: #fff;
}

.border-co-black {
  border-color: #1a1a1a;
}

.border-co-gray {
  border-color: #999999;
}

.border-co-red {
  border-color: #f02626;
}

.border-co-pink {
  border-color: #ec6d81;
}

.border-co-blue {
  border-color: #00aaba;
}

.border-co-green {
  border-color: #52cb98;
}

.border-co-orange {
  border-color: #fabf00;
}

.border-co-yellow {
  border-color: #ffff00;
}

.border-co-spoen {
  border-color: #0092d7;
}
.border-co-runnet {
  border-color: #FFD200; }

.radius-4 {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -o-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
}

.radius-8 {
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -o-border-radius: 8px;
  -ms-border-radius: 8px;
  border-radius: 8px;
}

.radius-16 {
  -webkit-border-radius: 16px;
  -moz-border-radius: 16px;
  -o-border-radius: 16px;
  -ms-border-radius: 16px;
  border-radius: 16px;
}

.radius-24 {
  -webkit-border-radius: 24px;
  -moz-border-radius: 24px;
  -o-border-radius: 24px;
  -ms-border-radius: 24px;
  border-radius: 24px;
}

.radius-32 {
  -webkit-border-radius: 32px;
  -moz-border-radius: 32px;
  -o-border-radius: 32px;
  -ms-border-radius: 32px;
  border-radius: 32px;
}

.radius-40 {
  -webkit-border-radius: 40px;
  -moz-border-radius: 40px;
  -o-border-radius: 40px;
  -ms-border-radius: 40px;
  border-radius: 40px;
}

.radius-100 {
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -o-border-radius: 100%;
  -ms-border-radius: 100%;
  border-radius: 100%;
}

.bg-co-gray-light {
  background-color: #fafafa;
}

.bg-co-gray-middle {
  background-color: #f7f7f7;
}

.bg-co-gray-dark {
  background-color: #f0f0f0;
}

.bg-co-orange {
  background-color: #f6f5f0;
}

.bg-co-black {
  background-color: #1a1a1a;
  color: #fff;
}

.bg-co-white {
  background-color: #fff;
}

.bg-co-paper {
  background-image: url(img/bg_brownpaper.png);
  background-color: #f6f5f0;
}

#PagetopBtn {
  position: fixed;
  right: -44px;
  bottom: 12px;
  z-index: 1000;
  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity = 0);
  filter: alpha(opacity=0);
  opacity: 0;
  -webkit-transition: 0.3s ease-in;
  -moz-transition: 0.3s ease-in;
  -o-transition: 0.3s ease-in;
  -ms-transition: 0.3s ease-in;
  transition: 0.3s ease-in;
}

#PagetopBtn.visible {
  right: 16px;
  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity = 100);
  filter: alpha(opacity=100);
  opacity: 1;
}

#PagetopBtn a {
  outline: none;
  width: 40px;
  height: 40px;
  display: block;
  color: #fff;
  text-align: center;
  font-size: 16px;
  line-height: 36px;
  background-color: rgba(41, 44, 48, 0.7);
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -o-border-radius: 100%;
  -ms-border-radius: 100%;
  border-radius: 100%;
}

#PagetopBtn a:hover {
  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity = 60);
  filter: alpha(opacity=60);
  opacity: 0.6;
}

.tab {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tab li {
  margin: 0;
}

.content_wrap.disnon {
  display: none;
}

.accordion-menu-btn {
  cursor: pointer;
}

.accordion-menu-box {
  display: none;
}

.accordion-menu-box.visible {
  display: none;
}

.accordion-menu-sp-btn {
  cursor: pointer;
}

@media (min-width: 48em) {
  .accordion-menu-sp-btn {
    cursor: auto;
  }
}

.accordion-menu-sp-box {
  display: none;
}

.accordion-menu-sp-box.visible {
  display: none;
}

.accordion-menu-sp-box.invisible {
  display: block;
}

@media (min-width: 48em) {
  .accordion-menu-sp-box {
    display: block;
  }
  .accordion-menu-sp-box.invisible, .accordion-menu-sp-box.visible {
    display: block;
  }
}

.slider {
  margin: 0;
  padding: 0;
  list-style: none;
}

.slider li {
  margin: 0;
}

/* Arrows */
.slick-prev,
.slick-next {
  font-size: 0;
  line-height: 0;
  position: absolute;
  top: 50%;
  margin-top: -20px;
  display: block;
  width: 20px;
  height: 40px;
  padding: 0;
  cursor: pointer;
  border: none;
  outline: none;
  background: transparent;
  z-index: 300;
}

.slick-prev:before,
.slick-next:before {
  content: "\f105";
  font-family: FontAwesome;
  font-size: 40px;
  position: absolute;
  top: 50%;
  right: 0;
  outline: 0;
  color: #05569f;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

.slick-prev:before {
  left: 0;
  right: auto;
  content: "\f104";
}

.slick-prev {
  left: -24px;
}

@media (min-width: 48em) {
  .slick-prev {
    left: -32px;
  }
}

.slick-next {
  right: -24px;
}

@media (min-width: 48em) {
  .slick-next {
    right: -32px;
  }
}

.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
  color: rgba(219, 84, 36, 0.2);
}

.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  color: rgba(219, 84, 36, 0.2);
}

/* Dots */
.slick-dots {
  position: absolute;
  left: 0;
  bottom: -32px;
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
}

@media (min-width: 48em) {
  .slick-dots {
    bottom: -32px;
  }
}

.slick-dots li {
  position: relative;
  display: inline-block;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  vertical-align: middle;
}

.slick-dots li button {
  font-size: 0;
  line-height: 0;
  display: block;
  padding: 0;
  cursor: pointer;
  color: transparent;
  border: 0;
  outline: none;
  background: transparent;
}

.slick-dots li button:hover, .slick-dots li button:focus {
  outline: none;
}

.slick-dots li button:hover:before, .slick-dots li button:focus:before {
  opacity: 1;
}

.slick-dots li button:before {
  line-height: 12px;
  position: absolute;
  top: 0;
  left: 50%;
  width: 10px;
  height: 10px;
  margin-left: -5px;
  content: '';
  background-color: rgba(219, 84, 36, 0.2);
  text-align: center;
  color: black;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -o-border-radius: 100%;
  -ms-border-radius: 100%;
  border-radius: 100%;
}

.slick-dots li.slick-active button:before {
  background-color: #05569f;
}

/*********************************************************************
共通（ロゴなど）
**********************************************************************/
.site-title-img {
  margin: 0;
  padding: 0.2rem 0;
  font-size: 0;
}

@media (min-width: 48em) {
  .site-title-img {
    padding: 0;
  }
}

.site-title-img img {
  width: 120px;
}

@media (min-width: 48em) {
  .site-title-img img {
    width: 240px;
  }
}

.site-title-icon img {
  width: 56px;
}

@media (min-width: 48em) {
  .site-title-icon img {
    width: 112px;
  }
}

/*********************************************************************
ヘッダー
**********************************************************************/
#header {
  position: relative;
  border-top: 0.4rem #05569f solid;
  z-index: 5000;
}

@media (min-width: 48em) {
  #header {
    padding: 0;
  }
}

/* -----------------------------------
   ベースレイアウト (Flexbox)
----------------------------------- */
.header-base {
  position: relative;
  height: 90px;
  margin-bottom: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* 右側グループ（開催日 ＋ お申し込みボタン） */
.header-right-group {
  display: flex;
  align-items: center;
  gap: 15px;
}

/* タイトル・ロゴ */
.header-title {
  padding: 0;
  font-size: 0;
}

.header-title .site-title-img,
.header-title .site-title-icon {
  display: inline-block;
  margin-right: 0.4rem;
  vertical-align: middle;
}

/* 開催日エリア */
.header-holding {
  text-align: center;
}

.header-holding-title {
  margin: 0 0 0.4rem;
  background-color: #05569f;
  color: #fff;
  text-align: center;
  font-size: 1rem;
  line-height: 1.8;
  font-weight: bold;
  border-radius: 4px;
}

.header-holding-date {
  margin: 0 0 0.6rem;
  font-size: 0;
}

.header-holding-count {
  margin: 0;
  line-height: 10px;
}

.header-holding-count span {
  display: inline-block;
  font-size: 10px;
  font-weight: bold;
  vertical-align: bottom;
}

.header-holding-count img {
  margin: 0 0.1rem;
  display: inline-block;
  height: 14px;
}

.header-holding-count-title {
  color: #000000;
  font-weight: bold;
}

.header-holding-count-text {
  color: #05569f;
}

/* お申し込みボタン */
.header-holding-entry {
  width: 120px;
  height: 120px;
  background-color: #e53935;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 16px rgba(229, 57, 53, 0.35);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  flex-shrink: 0;
}

.header-holding-entry a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 105px;
  height: 100px;
  background: transparent;
  color: #fff;
  border-radius: 8px;
  text-decoration: none;
  font-weight: bold;
  font-size: 0.85rem;
  text-align: center;
  line-height: 1.35;
}

/* -----------------------------------
   レスポンシブ調整
----------------------------------- */

/* スマホ表示 (48em 未満) の修正 */
@media (max-width: 47.99em) {
  .header-base {
    position: relative;
    display: block;
    padding: 0;
    height: 90px;
  }

  /* ロゴ：位置固定と横幅の制限を追加 */
  .header-title {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    padding: 0;
    max-width: calc(100% - 210px);
  }

  .header-title .site-title-img img {
    max-height: 50px !important;
    width: auto !important;
    display: block;
  }

  /* 右側グループ（開催日＋ボタン） */
  .header-right-group {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    gap: 8px;
  }

  /* 開催日エリア */
  .header-holding {
    position: static !important;
    width: 120px !important;
    padding: 0 !important;
    transform: scale(0.75) !important;
    transform-origin: right center !important;
    margin: 0 !important;
  }

  /* エントリーボタン */
  .header-holding-entry {
    position: static !important;
    width: 55px !important;
    height: 60px !important;
    transform: none !important;
    margin: 0 !important;
  }

  .header-holding-entry a {
    font-size: 0.7rem;
    width: 45px;
    height: 45px;
    line-height: 1.35;
  }
}

/* PC表示 (48em 以上) */
@media (min-width: 48em) {
  .header-base {
    height: 180px;
    float: none;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 950px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .header-holding {
    width: 316px;
  }

  .header-holding-title {
    display: inline-block;
    float: left;
    width: 4rem;
    height: 4rem;
    line-height: 4rem;
    margin-right: 0.8rem;
    font-size: 0.8rem;
    border-radius: 100%;
  }

  .header-holding-date {
    float: left;
    width: 220px;
  }

  .header-holding-count {
    float: left;
  }

  .header-holding-count span {
    font-size: 0.7rem;
    margin-right: 0.1rem;
  }

  .header-holding-count img {
    height: 25px;
  }

  .header-holding-count-title,
  .header-holding-count-text {
    margin-bottom: 2px;
  }
}

@media (min-width: 62em) {
  .header-base {
    margin-left: auto;
    margin-right: auto;
    margin-top: 0;
    margin-bottom: 0;
    padding-bottom: 5px;
  }
}

.header-sns-list {
  position: absolute;
  left: 0;
  top: 90px;
  margin: 0.8rem 0;
  padding: 0;
  list-style: none;
  text-align: center;
  font-size: 0;
  z-index: 1000;
}

@media (min-width: 48em) {
  .header-sns-list {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    margin: 0.2rem 0 0;
    float: right;
    clear: both;
  }
}

.header-sns-list li {
  margin: 0 0.4rem 0 0;
  display: inline-block;
  font-size: 16px;
  line-height: 1;
  text-align: center;
}

@media (min-width: 48em) {
  .header-sns-list li {
    margin: 0 0 0 0.4rem;
  }
}

.header-sns-list a {
  position: relative;
  display: block;
  width: 3.2rem;
  height: 3.2rem;
  background-color: #fff;
  color: #05569f;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -o-border-radius: 100%;
  -ms-border-radius: 100%;
  border-radius: 100%;
}

.header-sns-list a:hover {
  background-color: #05569f;
  color: #fff;
}

@media (min-width: 48em) {
  .header-sns-list a {
    width: 2rem;
    height: 2rem;
    border: 1px solid #05569f;
  }
}

.header-sns-list i {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 1.6rem;
  height: 1.6rem;
}

@media (min-width: 48em) {
  .header-sns-list i {
    width: 0.8rem;
    height: 0.8rem;
  }
}

#menu-btn {
  position: absolute;
  top: 90px;
  right: 0;
  padding: 0;
  width: 100%;
  height: 48px;
  background-color: #05569f;
  display: block;
  cursor: pointer;
}

@media (min-width: 48em) {
  #menu-btn {
    top: 180px;
  }
}

@media (min-width: 62em) {
  #menu-btn {
    display: none;
  }
}

#menu-btn .menu-btn {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 11rem;
  height: 48px;
  border-left: 1px #fff solid;
}

#menu-btn .menu-btn-icon {
  display: block;
  position: absolute;
  top: 50%;
  left: 2.4rem;
  width: 2.4rem;
  height: 2px;
  margin: 0 0 0 -1.2rem;
  background-color: #fff;
}

@media (min-width: 48em) {
  #menu-btn .menu-btn-icon {
    width: 1.2rem;
    margin: 0 0 0 -0.6rem;
  }
}

#menu-btn .menu-btn-icon:before, #menu-btn .menu-btn-icon:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 2.4rem;
  height: 2px;
  background-color: #fff;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

@media (min-width: 48em) {
  #menu-btn .menu-btn-icon:before, #menu-btn .menu-btn-icon:after {
    width: 1.2rem;
  }
}

#menu-btn .menu-btn-icon:before {
  margin-top: -0.8rem;
}

@media (min-width: 48em) {
  #menu-btn .menu-btn-icon:before {
    margin-top: -0.4rem;
  }
}

#menu-btn .menu-btn-icon:after {
  margin-top: 0.8rem;
}

@media (min-width: 48em) {
  #menu-btn .menu-btn-icon:after {
    margin-top: 0.4rem;
  }
}

#menu-btn .menu-btn-text {
  position: absolute;
  text-align: left;
  left: 4.8rem;
  top: 50%;
  margin: auto;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  font-size: 1.4rem;
  line-height: 22px;
  color: #fff;
}

@media (min-width: 48em) {
  #menu-btn .menu-btn-text {
    bottom: -4px;
    font-size: 0.8rem;
    line-height: 28px;
  }
}

#menu-btn.open .menu-btn-icon {
  background: transparent;
}

#menu-btn.open .menu-btn-icon:before {
  margin-top: 0;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

#menu-btn.open .menu-btn-icon:after {
  margin-top: 0;
  -webkit-transform: rotate(-135deg);
  -moz-transform: rotate(-135deg);
  -o-transform: rotate(-135deg);
  -ms-transform: rotate(-135deg);
  transform: rotate(-135deg);
}

.header-menu {
  z-index: 4000;
  width: 100%;
  border-top: 1px solid #fff;
  background-color: #05569f;
  display: none;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

@media (min-width: 62em) {
  .header-menu {
    position: relative;
    z-index: 0;
    display: block;
    opacity: 1;
    width: 100%;
    height: auto;
    background: none;
  }
  .header-menu::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    background-color: #05569f;
    width: 100%;
    height: 2px;
  }
}

.header-menu.open {
  display: block;
}

.header-menu-container .col-md-12 {
  padding-bottom: 0;
}

.menu-link-list {
  margin: 0 -1.5rem;
  padding: 0;
  list-style: none;
  font-weight: bold;
}

@media (min-width: 62em) {
  .menu-link-list {
    font-size: 0;
    text-align: center;
  }
}

.menu-link-list ul.sub-menu {
  margin: 0;
  padding: 0;
}

.menu-link-list ul.sub-menu li {
  margin: 0;
  padding: 0 0 0 2.4rem;
  border-bottom: none;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

@media (min-width: 62em) {
  .menu-link-list ul.sub-menu {
    position: absolute;
    left: 0;
    z-index: 500;
    margin: 0;
    padding: 0;
    background-color: rgba(255, 255, 255, 0.9);
    display: none;
  }
  .menu-link-list ul.sub-menu li {
    padding: 0;
    display: block;
    text-align: left;
    width: 180px;
  }
  .menu-link-list ul.sub-menu li a {
    padding: 0.4rem 0.8rem;
    background-color: rgba(0, 0, 0, 0.05);
    color: #262626;
  }
  .menu-link-list ul.sub-menu li a:hover {
    background-color: #05569f;
    color: #fff;
  }
}

.menu-link-list li {
  position: relative;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  list-style: none;
}

@media (min-width: 62em) {
  .menu-link-list li {
    display: inline-block;
    border-bottom: none;
    font-size: 0.8rem;
  }
  .menu-link-list li.menu-item-has-children {
    position: relative;
  }
  .menu-link-list li.menu-item-has-children > a {
    padding: 1.0rem 1.4rem 1.0rem 0.8rem;
  }
  .menu-link-list li.menu-item-has-children > a::before {
    content: '\f107';
    font-family: FontAwesome;
    position: absolute;
    right: 0.6rem;
    top: 50%;
    margin: auto;
    z-index: 300;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
  }
  .menu-link-list li.menu-item-has-children:hover .sub-menu {
    display: block;
  }
}

.menu-link-list a {
  position: relative;
  display: block;
  padding: 0.75rem 1.4rem;
  color: #fff;
}

.menu-link-list a::before {
  content: '\f105';
  font-family: FontAwesome;
  position: absolute;
  right: 1.5rem;
  top: 50%;
  margin: auto;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

@media (min-width: 62em) {
  .menu-link-list a {
    padding: 1.0rem 0.8rem;
    color: #262626;
  }
  .menu-link-list a::before {
    display: none;
  }
  .menu-link-list a:hover {
    background-color: #05569f;
    color: #fff;
  }
}

@media (min-width: 62em) {
  .menu-link-list .menu-item-has-children > a::before {
    display: block;
  }
}

/*********************************************************************
フッター
**********************************************************************/
.footer-info {
  margin-bottom: 2.4rem;
}

.footer-info-contact {
  text-align: center;
}

.footer-info-contact a {
  margin: 0 auto;
  display: block;
  border: 2px solid #05569f;
  height: 40px;
  max-width: 320px;
  line-height: 36px;
  background-color: #fff;
  color: #05569f;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -o-border-radius: 20px;
  -ms-border-radius: 20px;
  border-radius: 20px;
}

.footer-info-contact a:hover {
  background-color: #05569f;
  color: #fff;
}

.footer-pagetop {
  position: relative;
  margin: 0 0.75rem 1.5rem 0.75rem;
  padding: 0;
  text-align: center;
  font-size: 20px;
  line-height: 1;
}

.footer-pagetop::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  margin: auto;
  background-color: #05569f;
  width: 100%;
  height: 2px;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

.footer-pagetop a {
  color: #fff;
  position: relative;
  display: inline-block;
  height: 4.0rem;
  width: 4.0rem;
  background-color: #fff;
  border: 2px solid #05569f;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -o-border-radius: 100%;
  -ms-border-radius: 100%;
  border-radius: 100%;
}

@media (min-width: 48em) {
  .footer-pagetop a {
    height: 2.0rem;
    width: 2.0rem;
  }
  .footer-pagetop a:hover {
    background-color: #05569f;
  }
  .footer-pagetop a:hover i {
    color: #fff;
  }
}

.footer-pagetop a i {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 2.1rem;
  height: 2.1rem;
  color: #05569f;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

@media (min-width: 48em) {
  .footer-pagetop a i {
    width: 1.05rem;
    height: 1.05rem;
  }
}

.footer-sitemap {
  float: left;
  width: 45%;
  margin: 0 0 0 5%;
}

.footer-sitemap ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-sitemap li {
  margin-bottom: 0.8rem;
}

@media (min-width: 48em) {
  .footer-sitemap li {
    margin-bottom: 0.2rem;
  }
}

.footer-sitemap li ul {
  margin: 0.8rem 0 0 1.2rem;
  font-size: 1.4rem;
  line-height: 1.57143;
}

@media (min-width: 48em) {
  .footer-sitemap li ul {
    margin: 0.2rem 0 0 0.8rem;
    font-size: 0.7rem;
    line-height: 2.14286;
  }
}

@media (min-width: 48em) {
  .footer-sitemap li ul li {
    margin-bottom: 0;
  }
}

.footer-sitemap a {
  display: block;
  position: relative;
  padding-left: 14px;
  color: #262626;
}

.footer-sitemap a::before {
  content: '\f105';
  font-family: FontAwesome;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

.footer-sitemap a:hover {
  color: #05569f;
}

.footer-sitemap a:hover::before {
  color: #05569f;
}

.footer-otherlink {
  background-color: #05569f;
  padding: 1.6rem 0 0;
}

@media (min-width: 48em) {
  .footer-otherlink {
    padding: 0.75rem 0;
  }
  .footer-otherlink .col-md-6 {
    padding-bottom: 0;
  }
}

.footer-sns-list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0;
  text-align: center;
}

@media (min-width: 30em) {
  .footer-sns-list {
    text-align: left;
  }
}

.footer-sns-list li {
  display: inline-block;
  margin: 0 0.8rem;
  font-size: 24px;
}

@media (min-width: 48em) {
  .footer-sns-list li {
    margin: 0 0.4rem;
    font-size: 20px;
  }
}

.footer-sns-list a {
  color: #fff;
}

.footer-copy {
  margin: 0;
  text-align: center;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1.66667;
}

@media (min-width: 30em) {
  .footer-copy {
    text-align: right;
  }
}

@media (min-width: 48em) {
  .footer-copy {
    font-size: 0.6rem;
    line-height: 2.33333;
  }
}

/*********************************************************************
ライトナビ / 共通バナー / その他
**********************************************************************/
@media (min-width: 48em) {
  .banner.col-md-3 {
    float: left;
    width: 100%;
  }
}

@media (min-width: 62em) {
  .banner.col-md-3 {
    width: 25%;
  }
}

.banner-sponsor {
  margin: 0 -0.75rem;
  padding: 0 0 1.5rem;
  list-style: none;
}

@media (min-width: 48em) {
  .banner-sponsor {
    margin: 0 -0.375rem;
    padding: 0 0 0.75rem;
  }
}

@media (min-width: 62em) {
  .banner-sponsor {
    margin: 0;
  }
}

.banner-sponsor li {
  float: left;
  width: 50%;
  margin: 0;
  padding: 0 0.75rem 1.5rem 0.75rem;
}

@media (min-width: 48em) {
  .banner-sponsor li {
    width: 25%;
    padding: 0 0.375rem 0.75rem 0.375rem;
  }
}

@media (min-width: 62em) {
  .banner-sponsor li {
    float: none;
    width: 100%;
    padding: 0 0  0.75rem;
  }
}

.banner-sponsor li img {
  width: 70%;
  height: auto;
  margin: 0 auto;
  display: block;
  border: 1px solid #e0e0e0;
  box-sizing: border-box;
  padding: 10px;
}

.banner-link {
  margin: 0 -0.75rem;
  padding: 0 0 1.5rem;
  list-style: none;
}

@media (min-width: 48em) {
  .banner-link {
    margin: 0 -0.375rem;
    padding: 0 0 0.75rem;
  }
}

@media (min-width: 62em) {
  .banner-link {
    margin: 0 -0.75rem;
  }
}

.banner-link li {
  padding: 0 0.75rem 1.5rem 0.75rem;
}

@media (min-width: 30em) {
  .banner-link li {
    float: left;
    width: 50%;
  }
}

@media (min-width: 48em) {
  .banner-link li {
    padding: 0 0.375rem 0.75rem 0.375rem;
  }
}

@media (min-width: 62em) {
  .banner-link li {
    width: 50%;
    padding: 0 0.75rem 1.5rem 0.75rem;
  }
}

.banner-link a:hover {
  opacity: 0.6;
}

.banner-link img {
  min-width: 100%;
}

/* ボトムバナー（チャリティー先団体） */
.bottom_bnr {
  margin-top: 2.4rem;
  margin-bottom: 2.4rem;
}

.bottom_bnr .banner-link {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  max-width: 600px;
}

.bottom_bnr .banner-link li {
  flex: 1;
  max-width: 160px;
  padding: 0;
  float: none;
  width: auto;
}

.bottom_bnr .banner-link a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.bottom_bnr .banner-link img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  border: 1px solid #e0e0e0;
  padding: 10px;
  background-color: #fff;
  box-sizing: border-box;
}

/* SP（スマホ）時：横3つ並び */
@media (max-width: 48em) {
  .bottom_bnr .banner-link {
    gap: 8px;
    max-width: 100%;
    padding: 0 10px;
  }

  .bottom_bnr .banner-link li {
    max-width: 30%;
  }

  .bottom_bnr .banner-link img {
    max-height: 60px;
    padding: 5px;
  }
}

.insta-list {
  margin: 0 0 1.6rem;
  padding: 0;
  list-style: none;
}

.insta-list li {
  float: left;
  margin: 0;
  padding: 0;
  width: 33.33333333%;
}

@media (min-width: 30em) {
  .insta-list li {
    width: 25%;
  }
}

@media (min-width: 48em) {
  .insta-list li {
    width: 16.666666666%;
  }
}

.insta-list a:hover {
  opacity: 0.6;
}

.insta-list img {
  min-width: 100%;
}

.header-main {
  position: relative;
  margin-bottom: 1.5rem;
  padding: 0 0.75rem;
  min-height: 150px;
  background-image: url(img/bg_h_sp.png);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  background-color: #FBD8D7;
}

@media (min-width: 48em) {
  .header-main {
    margin-bottom: 0.75rem;
    min-height: 180px;
  }
}

@media (min-width: 62em) {
  .header-main {
    min-height: 170px;
    background-image: url(img/bg_h_pc.png);
  }
}

.header-main-title {
  position: absolute;
  top: 50%;
  left: 0;
  margin: auto;
  width: 100%;
  text-align: center;
  color: #fff; /* 白文字 */
  font-weight: bold;
  font-size: 2.6rem;
  line-height: 1.30769;
  -webkit-text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -moz-text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -o-text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -ms-text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.8), 0 2px 4px rgba(0, 0, 0, 0.9);
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

@media (min-width: 48em) {
  .header-main-title {
    font-size: 1.5rem;
  }
}

#breadcrumbs {
  font-size: 1.4rem;
  line-height: 1.57143;
}

@media (min-width: 48em) {
  #breadcrumbs {
    font-size: 0.7rem;
  }
}

#breadcrumbs span {
  /*display: inline-block;*/
  vertical-align: middle;
  color: #999999;
}

#breadcrumbs a {
  vertical-align: middle;
  color: #262626;
}

#breadcrumbs a::after {
  content: "\f105";
  font-family: FontAwesome;
  padding: 0 7px;
  color: #999999;
}

#breadcrumbs a:hover {
  color: #05569f;
}

.sns-button {
  float: right;
}

.sns-button ul {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 25px !important;
}

.sns-button li {
  float: left;
  display: block;
  margin: 0 0 10px 10px !important;
  height: 25px;
}

.sns-button .fb-share-button > span {
  vertical-align: top !important;
}

.page-header-b {
  margin: 0 0 1.2rem;
  padding: 0.75rem 1.5rem;
  background-color: #05569f;
  text-align: left;
  font-size: 2rem;
  line-height: 1.4;
  font-weight: bold;
  color: #fff;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -o-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
}

@media (min-width: 48em) {
  .page-header-b {
    padding: 0.75rem 1.0rem;
    font-size: 1.2rem;
    line-height: 1.33333;
  }
}

.page-header-s {
  position: relative;
  margin: 0 0 0.8rem;
  padding: 0 0 0 20px;
  text-align: left;
  font-size: 1.8rem;
  line-height: 1.44444;
  font-weight: bold;
  color: #2a2a2a;
}

.page-header-s::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 8px;
  min-height: 25px;
  background-color: #05569f;
}

@media (min-width: 48em) {
  .page-header-s {
    font-size: 1.1rem;
    line-height: 1.36364;
  }
  .page-header-s::before {
    min-height: 30px;
  }
}

.container-body .button-base {
  margin: 0 auto;
  padding: 1.0rem;
  display: block;
  max-width: 360px;
  min-height: 48px;
  text-align: center;
  color: #fff;
  font-weight: bold;
  background-color: #05569f;
  -webkit-border-radius: 24px;
  -moz-border-radius: 24px;
  -o-border-radius: 24px;
  -ms-border-radius: 24px;
  border-radius: 24px;
}

@media (min-width: 48em) {
  .container-body .button-base {
    padding: 0;
    height: 48px;
    line-height: 48px;
  }
}

.container-body .button-base:hover {
  color: #05569f;
  background-color: #fff;
}

.container-body .button-base i {
  margin-right: 6px;
}

.container-body .button-base.w100p {
  padding: 1.6rem;
  max-width: 100%;
  -webkit-border-radius: 36px;
  -moz-border-radius: 36px;
  -o-border-radius: 36px;
  -ms-border-radius: 36px;
  border-radius: 36px;
}

@media (min-width: 48em) {
  .container-body .button-base.w100p {
    padding: 0;
    height: 72px;
    line-height: 72px;
  }
}

.container-body .button-base.white {
  background-color: #fff;
  color: #05569f;
}

.container-body .button-base.white:hover {
  color: #fff;
  background-color: #05569f;
}

.container-body .button-base.black {
  background-color: #1a1a1a;
}

.container-body .button-base.black:hover {
  color: #1a1a1a;
  background-color: #fff;
}

.container-body .button-base.red {
  background-color: #f02626;
}

.container-body .button-base.red:hover {
  color: #f02626;
  background-color: #fff;
}

.container-body .button-base.pink {
  background-color: #ec6d81;
}

.container-body .button-base.pink:hover {
  color: #ec6d81;
  background-color: #fff;
}

.container-body .button-base.blue {
  background-color: #00aaba;
}

.container-body .button-base.blue:hover {
  color: #00aaba;
  background-color: #fff;
}

.container-body .button-base.green {
  background-color: #52cb98;
}

.container-body .button-base.green:hover {
  color: #52cb98;
  background-color: #fff;
}

.container-body .button-base.yellow {
  background-color: #ffff00;
}

.container-body .button-base.yellow:hover {
  color: #ffff00;
  background: none;
}

.container-body .button-base.spoen {
  background-color: #0092d7;
}

.container-body .button-base.spoen:hover {
  color: #0092d7;
  background-color: #fff;
}

.container-body .button-base.runnet {
  background-color: #FFD200; }
.container-body .button-base.runnet:hover {
  color: #FFD200;
  background-color: #fff; }

.container-body .button-list {
  margin: 0 0 1.2rem;
  padding: 0;
  list-style: none;
  font-size: 0;
}

.container-body .button-list li {
  display: inline-block;
  margin: 0 0.75rem 0.75rem 0;
  padding: 0;
  font-size: 1.4rem;
}

@media (min-width: 48em) {
  .container-body .button-list li {
    margin: 0 0.375rem 0.75rem 0;
    font-size: 0.7rem;
  }
}

.container-body .button-list a {
  display: block;
  padding: 0 1.6rem;
  height: 40px;
  line-height: 38px;
  text-align: center;
  border: 1px solid #05569f;
  background-color: #fff;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -o-border-radius: 20px;
  -ms-border-radius: 20px;
  border-radius: 20px;
}

.container-body .button-list a:hover {
  color: #fff;
  background-color: #05569f;
  border: 1px solid #05569f;
}

.container-body .button-list a i {
  margin-right: 6px;
}

@media (min-width: 48em) {
  .container-body .button-list a {
    padding: 0 1.0rem;
  }
}

.container-body .table-2cal th,
.container-body .table-2cal td {
  display: block;
  text-align: left;
  vertical-align: top;
  padding: 0.75rem;
  border: none;
}

@media (min-width: 48em) {
  .container-body .table-2cal th,
  .container-body .table-2cal td {
    display: table-cell;
    border: 1px solid #05569f;
  }
}

.container-body .table-2cal th {
  background-color: #f6f5f0;
  font-weight: bold;
}

.container-body .table-2cal td {
  padding-bottom: 2.25rem;
}

@media (min-width: 48em) {
  .container-body .table-2cal td {
    padding: 0.75rem;
  }
}

.container-body .table-2cal.no-border th, .container-body .table-2cal.no-border td {
  border: none;
}

.container-body .table-2cal.no-border th {
  background: none;
  border-bottom: 1px dotted #05569f;
  padding: 0 0 0.75rem 0;
}

@media (min-width: 48em) {
  .container-body .table-2cal.no-border th {
    border: none;
    padding: 0 0.75rem 0.375rem 0;
  }
}

.container-body .table-2cal.no-border td {
  padding: 0.75rem 0 2.25rem 0;
}

@media (min-width: 48em) {
  .container-body .table-2cal.no-border td {
    padding: 0 0.75rem 0.375rem 0;
  }
}

.container-body .table-other {
  white-space: nowrap;
  overflow: auto;
}

@media (min-width: 48em) {
  .container-body .table-other {
    white-space: normal;
    overflow: visible;
  }
}

.fo-tel-b {
  font-size: 36px;
  font-size: 3rem;
  line-height: 1.26667;
}

@media (min-width: 48em) {
  .fo-tel-b {
    font-size: 1.8rem;
    line-height: 1.22222;
  }
}

.fo-tel-s {
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.33333;
}

@media (min-width: 48em) {
  .fo-tel-s {
    font-size: 1.2rem;
  }
}

.container-body .pageGallerylist {
  margin: 0 -0.75rem;
  padding: 0;
  list-style: none;
}

@media (min-width: 48em) {
  .container-body .pageGallerylist {
    margin: 0 -0.375rem;
  }
}

.container-body .pageGallerylist li {
  float: left;
  width: 50%;
  margin: 0;
  padding: 0 0.75rem 1.5rem 0.75rem;
}

@media (min-width: 30em) {
  .container-body .pageGallerylist li {
    width: 33.333333%;
  }
}

@media (min-width: 48em) {
  .container-body .pageGallerylist li {
    width: 25%;
    padding: 0 0.375rem 0.75rem 0.375rem;
  }
}

.container-body .pageGallerylist a {
  display: block;
  border: 4px solid #fff;
  background-color: #fff;
  -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
  -o-box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
  -ms-box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
}

.container-body .pageGallerylist a:hover {
  border-color: #05569f;
}

.container-body .faq-list-q, .container-body .faq-list-a {
  position: relative;
  margin-bottom: 0.4rem;
  padding: 7px 16px 7px 46px;
  min-height: 42px;
  font-size: 1.6rem;
  line-height: 1.5;
}

.container-body .faq-list-q::before, .container-body .faq-list-a::before {
  content: '';
  position: absolute;
  top: 4px;
  left: 4px;
  width: 32px;
  height: 32px;
  background-color: #aaa;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -o-border-radius: 100%;
  -ms-border-radius: 100%;
  border-radius: 100%;
}

.container-body .faq-list-q::after, .container-body .faq-list-a::after {
  content: 'Q';
  position: absolute;
  top: 6px;
  left: 13px;
  font-size: 16px;
  color: #fff;
}

@media (min-width: 48em) {
  .container-body .faq-list-q, .container-body .faq-list-a {
    font-size: 0.8rem;
  }
}

.container-body .faq-list-q {
  border: 1px solid #05569f;
  font-weight: bold;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -o-border-radius: 20px;
  -ms-border-radius: 20px;
  border-radius: 20px;
}

.container-body .faq-list-a {
  margin-bottom: 1.0rem;
  padding-top: 0;
  background-color: #f7f7f7;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -o-border-radius: 20px;
  -ms-border-radius: 20px;
  border-radius: 20px;
}

.container-body .faq-list-a::before {
  background-color: #05569f;
}

.container-body .faq-list-a::after {
  content: 'A';
  top: 6px;
  left: 15px;
}

.container-body .faq-list-a-text {
  padding-top: 7px;
}

.container-body .faq-list-a-text p:last-child {
  margin-bottom: 0;
}

.container-body .square-base {
  margin: 0 auto;
  padding: 1.0rem;
  display: block;
  max-width: 360px;
  min-height: 48px;
  text-align: center;
  color: #fff;
  font-weight: bold;
  background-color: #05569f;
}

@media (min-width: 48em) {
  .container-body .square-base {
    padding: 0;
    height: 48px;
    line-height: 48px;
  }
}

.container-body .square-list {
  margin: 0 0 1.2rem;
  padding: 0;
  list-style: none;
  font-size: 0;
}

.container-body .square-list ul {
  display: inline-block;
}

.container-body .square-list li {
  display: inline-block;
  margin: 0 0.75rem 0.75rem 0;
  padding: 0 1.6rem;
  height: 40px;
  line-height: 38px;
  text-align: center;
  border: 1px solid #999999;
  background-color: #fff;
  padding: 0;
  padding: 0 1.0rem;
  font-size: 1.4rem;
}

.container-body .square-list li i {
  margin-right: 6px;
}

@media (min-width: 48em) {
  .container-body .square-list li {
    margin: 0 0.375rem 0.75rem 0;
    font-size: 0.7rem;
  }
}

.main-visual .slider {
  margin: 0 0 4.2rem;
}

@media (min-width: 48em) {
  .main-visual .slider {
    margin: 0 0 3.2rem;
  }
}

@media (max-width: 48em) {
  .main-visual .slider {
    margin-top: 0.5rem;
  }
}

.main-visual .slick-prev,
.main-visual .slick-next {
  margin-top: -20px;
  width: 20px;
  height: 40px;
}

.main-visual .slick-prev:before,
.main-visual .slick-next:before {
  font-size: 48px;
  color: white;
  -webkit-text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -moz-text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -o-text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -ms-text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}

@media (min-width: 48em) {
  .main-visual .slick-prev,
  .main-visual .slick-next {
    margin-top: -27px;
    width: 30px;
    height: 48px;
  }
  .main-visual .slick-prev:before,
  .main-visual .slick-next:before {
    font-size: 80px;
  }
}

.main-visual .slick-prev {
  left: 0.75rem;
}

@media (min-width: 48em) {
  .main-visual .slick-prev {
    left: 0.75rem;
  }
}

.main-visual .slick-next {
  right: 0.75rem;
}

@media (min-width: 48em) {
  .main-visual .slick-next {
    right: 0.75rem;
  }
}

.main-visual .slick-prev:hover:before,
.main-visual .slick-next:hover:before {
  color: rgba(255, 255, 255, 0.6);
}

.main-visual-img {
  height: 420px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

/* 全体コンテンツの中央揃え設定 */
#mainContents,
.container {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* メインビジュアルの設定：最大幅を画面全体（100vw）に広げる */
.main-visual {
  width: 100%;
  max-width: 100vw; /* 100%表示時は1920pxでも画面いっぱいに広がる */
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}

.main-visual img {
  width: 100%;
  height: auto;
  margin: 0 auto;
  display: block;
}

/* 拡大率を小さくして画面解像度が2000px等に広がった時だけ余白を出す */
@media (min-width: 2000px) {
  .main-visual {
    max-width: 1600px; /* ★縮小時に画像を留めたい幅（1200px〜1600px等で自由に指定可能） */
  }
}

.main-visual-img a {
  display: block;
  height: 420px;
  width: 100%;
}

/* PC表示切替時（30em以上 */
@media (min-width: 30em) {
  .main-visual-img {
    height: auto !important;
    background-image: none !important;
    background: none !important;
  }
  .main-visual-img img {
    display: block !important;
    width: 100%;
    height: auto;
  }
  .main-visual-img a {
    height: auto !important;
  }
}

.top-point {
  margin: 0 -1.5rem 3.0rem -1.5rem;
  padding: 2.5rem 1.5rem 1.0rem 1.5rem;
  background-image: url(img/bg_brownpaper.png);
  background-color: #f6f5f0;
}

@media (min-width: 48em) {
  .top-point {
    margin: 0 -1.5rem 2.4rem -1.5rem;
    padding: 2.0rem 1.2rem;
  }
}

@media (min-width: 62em) {
  .top-point {
    margin: 0 0 2.4rem 0;
  }
}

.top-point-header {
  margin: 0 auto 2.0rem auto;
  width: 108px;
  font-size: 0;
}

.top-point-link {
  display: block;
  margin-bottom: 3.0rem;
  color: #fff;
}

@media (min-width: 48em) {
  .top-point-link {
    float: left;
    width: 50%;
    margin: 0;
    padding: 0 0.60rem;
    position: relative;
  }
  .top-point-link:hover {
    color: #fff;
  }
  .top-point-link:hover .img img {
    -webkit-transform: scale(1.08);
    -moz-transform: scale(1.08);
    -o-transform: scale(1.08);
    -ms-transform: scale(1.08);
    transform: scale(1.08);
  }
  .top-point-link:hover .button {
    background-color: #fff;
    color: #05569f;
  }
}

.top-point-link .img {
  float: left;
  width: 40%;
  margin-bottom: 1.6rem;
  border: 4px solid #fff;
  overflow: hidden;
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -o-box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  -ms-box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}

.top-point-link .img img {
  min-width: 100%;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

@media (min-width: 48em) {
  .top-point-link .img {
    float: none;
    width: 100%;
    margin-bottom: 1.2rem;
  }
}

.top-point-link .title {
  margin-left: 44%;
  margin-bottom: 0.75rem;
  color: #534c4a;
}

@media (min-width: 48em) {
  .top-point-link .title {
    margin: 0 0 0.80rem;
    text-align: center;
  }
}

.top-point-link .excerpt {
  margin-left: 44%;
  margin-bottom: 1.6rem;
  color: #837b78;
}

@media (min-width: 48em) {
  .top-point-link .excerpt {
    margin: 0 0 3.2rem;
  }
}

.top-point-link .button {
  margin: 0 auto;
  height: 40px;
  line-height: 40px;
  max-width: 320px;
  background-color: #05569f;
  text-align: center;
  color: #fff;
  font-size: 1.4rem;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -o-border-radius: 20px;
  -ms-border-radius: 20px;
  border-radius: 20px;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

.top-point-link .button i {
  margin-right: 6px;
}

@media (min-width: 48em) {
  .top-point-link .button {
    position: absolute;
    bottom: 0;
    left: 0.75rem;
    right: 0.75rem;
    font-size: 0.7rem;
  }
}

.top-alert {
  padding: 1.5rem 1.2rem;
  color: #fff;
  background-color: #ec6d81;
  border: 1px dotted #eee;
  box-shadow: 0 0 1px 3px #ec6d81;
  margin: 3px 3px 1.2rem;
}

.top-alert p {
  margin: 0 1.2em;
}

@media (min-width: 48em) {
  .top-alert p {
    margin: 0 5em;
  }
}

@media (min-width: 62em) {
  .top-alert p {
    margin: 0 8em;
  }
}

.top-alert a {
  color: #ffff00;
}

.top-alert a:hover {
  color: #fff;
}

.top-alert h2 {
  text-align: center;
  margin: 0 0 0.8rem;
  font-size: 1.8rem;
  line-height: 1.44444;
}

@media (min-width: 48em) {
  .top-alert h2 {
    font-size: 1.1rem;
    line-height: 1.36364;
  }
}

.top-alert h2::before {
  min-height: 30px;
  margin-right: 0.5rem;
  font-family: "FontAwesome";
  content: "\f071";
  font-weight: lighter;
  position: relative;
  display: inline-block;
}

.top-info {
  padding: 1.5rem 1.2rem;
  background-image: url(img/bg_brownpaper.png);
  margin: 0 0 1.2rem;
  border-radius: 6px;
  border: 1px dotted #05569f;
  border-radius: 4px;
}

.top-info p {
  color: #555;
  margin: 0 1.2em;
}

@media (min-width: 48em) {
  .top-info p {
    margin: 0 5em;
  }
}

@media (min-width: 62em) {
  .top-info p {
    margin: 0 8em;
  }
}

.top-info a {
  color: #05569f;
}

.top-info a:hover {
  color: #262626;
}

.top-info h2 {
  text-align: center;
  margin: 0 0 0.8rem;
  color: #555;
  font-size: 1.8rem;
  line-height: 1.44444;
}

@media (min-width: 48em) {
  .top-info h2 {
    font-size: 1.1rem;
    line-height: 1.36364;
  }
}

.top-info h2::before {
  top: 0.1rem;
  color: #05569f;
  min-height: 30px;
  margin-right: 0.5rem;
  font-family: "FontAwesome";
  content: "\f024";
  font-weight: lighter;
  position: relative;
  display: inline-block;
  font-size: 1.5rem;
}

.top-news-header {
  position: relative;
  background-color: #05569f;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -o-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
}

.top-news-header-title {
  margin: 0;
  padding: 1.2rem 1.5rem;
  color: #fff;
  font-size: 1.8rem;
  line-height: 1.44444;
}

@media (min-width: 48em) {
  .top-news-header-title {
    padding: 0.6rem 0.75rem;
    font-size: 1rem;
    line-height: 1.4;
  }
}

.top-news-header-link {
  position: absolute;
  top: 50%;
  right: 0.75rem;
  margin: auto;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

.top-news-header-link a {
  padding: 0 12px;
  height: 30px;
  line-height: 30px;
  display: inline-block;
  background-color: #fff;
  color: #262626;
  font-size: 1.4rem;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  -o-border-radius: 15px;
  -ms-border-radius: 15px;
  border-radius: 15px;
}

@media (min-width: 48em) {
  .top-news-header-link a {
    font-size: 0.7rem;
  }
}

.top-news-header-link a:hover {
  color: #05569f;
}

.news-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.news-list li {
  margin: 0;
}

.news-list a {
  display: block;
  padding: 1.5rem 1.0rem;
  border-bottom: 1px dotted #05569f;
  color: #fff;
}

@media (min-width: 48em) {
  .news-list a {
    padding: 0.75rem 0.5rem;
  }
}

@media (min-width: 62em) {
  .news-list a {
    padding: 1.0rem 0.75rem;
  }
  .news-list a:hover .news-list-title {
    color: #05569f;
  }
}

.news-list-date, .news-list-category {
  margin-right: 0.75rem;
  margin-bottom: 0.75rem;
  display: inline-block;
  color: #000000;
  font-size: 1.4rem;
  line-height: 1.66667;
}

@media (min-width: 48em) {
  .news-list-date, .news-list-category {
    margin-right: 0.75rem;
    margin-bottom: 0.375rem;
    font-size: 0.7rem;
  }
}

@media (min-width: 62em) {
  .news-list-date, .news-list-category {
    float: left;
    width: 90px;
    margin: 0;
  }
}

.news-list-category {
  color: #fff;
  background-color: #999;
  width: 110px;
  text-align: center;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -o-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
}

.news-list-category.report {
  background-color: #00aaba;
}

.news-list-category.notice {
  background-color: #05569f;
}

.news-list-category.notice1 {
  background-color: #ec6d81;
}

.news-list-category.event {
  background-color: #fabf00;
}

.news-list-category.info {
  background-color: #52cb98;
}

.news-list-title {
  display: block;
  color: #000000;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

@media (min-width: 62em) {
  .news-list-title {
    margin-left: 220px;
    min-height: 26px;
  }
}

.news-header {
  margin-bottom: 1.2rem;
  padding: 1.0rem 1.0rem 1.6rem 1.0rem;
  border-top: 4px solid #05569f;
  border-bottom: 2px dotted #05569f;
}

.news-header-title {
  margin: 0;
  color: #534c4a;
  font-size: 2.4rem;
  line-height: 1.33333;
}

@media (min-width: 48em) {
  .news-header-title {
    font-size: 1.2rem;
  }
}

.news-header-data {
  margin: 0 0 0.375rem;
}

.news-body-categorylist {
  padding-bottom: 0.8rem;
  clear: both;
}

@media (min-width: 48em) {
  .news-body-categorylist {
    clear: none;
  }
}

.news-body-categorylist ul {
  display: inline;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0;
}

@media (min-width: 48em) {
  .news-body-categorylist ul {
    display: block;
    margin: 0 0 0 72px;
  }
}

.news-body-categorylist li {
  display: inline-block;
  margin: 0.4rem;
  font-size: 1.2rem;
  line-height: 1.66667;
}

@media (min-width: 48em) {
  .news-body-categorylist li {
    margin: 0.2rem;
    font-size: 0.6rem;
  }
}

.news-body-categorylist a {
  display: block;
  padding: 0.4rem 0.8rem;
  border: 1px #05569f solid;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -o-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
}

@media (min-width: 48em) {
  .news-body-categorylist a {
    padding: 0.2rem 0.4rem;
  }
  .news-body-categorylist a:hover {
    border-color: #05569f;
    background-color: #05569f;
    color: #fff;
  }
}

.news-body-categorylist .post-categories-title {
  display: inline-block;
  padding: 0.4rem;
  font-size: 1.2rem;
  line-height: 1.66667;
}

@media (min-width: 48em) {
  .news-body-categorylist .post-categories-title {
    float: left;
    padding: 0.4rem 0;
    font-size: 0.6rem;
  }
}

.news-body-button {
  text-align: center;
}

.news-body-button p {
  margin: 0 0.8rem;
  display: inline-block;
  vertical-align: top;
  font-size: 1.4rem;
  line-height: 1;
}

@media (min-width: 48em) {
  .news-body-button p {
    font-size: 0.7rem;
  }
}

.news-body-button .prev,
.news-body-button .next {
  font-size: 1.8rem;
}

@media (min-width: 48em) {
  .news-body-button .prev,
  .news-body-button .next {
    font-size: 0.9rem;
  }
}

.news-body-button .prev a,
.news-body-button .next a {
  display: block;
  padding: 0.6rem 0.4rem;
  color: #262626;
}

.news-body-button .prev a:hover,
.news-body-button .next a:hover {
  color: #05569f;
}

.news-body-button .back a {
  display: block;
  padding: 0.8rem;
  background-color: #262626;
  text-align: center;
  color: #fff;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -o-border-radius: 4px;
  -ms-border-radius: 4px;
  border-radius: 4px;
}

.news-body-button .back a:hover {
  background-color: #05569f;
  color: #fff;
}

@media (min-width: 48em) {
  .news-body-button .back a {
    padding: 0.6rem 1.2rem;
  }
}

/* --- basic setting ----------------------------------------------------------------------------------------- */
.wp-caption-text {
  text-align: center;
}

.alignright {
  float: right;
}

.alignleft {
  float: left;
}

.aligncenter {
  margin-left: auto;
  margin-right: auto;
}

.centered {
  margin-left: auto;
  margin-right: auto;
}

.clear {
  clear: both;
}

/* --- WordPress preset CSS ----------------------------------------------------------------------------------------- */
/* image */
.container-body img {
  height: auto;
  max-width: 100%;
}

.container-body img.centered, div.centered {
  display: block;
  margin: 24px auto;
}

.container-body img.aligncenter, div.aligncenter {
  display: block;
  margin: 24px auto;
}

.container-body img.alignright, div.alignright {
  margin: 4px 0 30px 30px;
  display: inline;
}

.container-body img.alignleft, div.alignleft {
  margin: 4px 30px 30px 0;
  display: inline;
}

.container-body .wp-caption {
  max-width: 100%;
  padding: 0;
  margin: 24px auto;
}

.container-body .wp-caption.alignright {
  margin: 4px 0 30px 30px;
}

.container-body .wp-caption.alignleft {
  margin: 4px 30px 30px 0;
}

.container-body .wp-caption.aligncenter {
  margin: 24px auto;
}

.container-body .wp-caption img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
}

.container-body .wp-caption .wp-caption-text {
  padding: 8px 0 0;
  color: #999;
  font-size: 12px;
}

/* icon */
.container-body i.fa {
  margin-right: 6px;
}

/* table */
.container-body table {
  margin: 0 0 1.0rem 0;
}

.container-body td,
.container-body th {
  border: 1px solid #05569f;
  padding: 0.75rem;
  vertical-align: top;
}

.container-body th {
  background: #f6f5f0;
}

/* list */
.container-body dt,
.container-body dd {
  margin: 0;
}

.container-body ul,
.container-body ol {
  margin: 0 0 0.8rem;
  padding: 0 0 0 16px;
}

.container-body ul li,
.container-body ol li {
  margin: 0 0 0.375rem 0.8rem;
  padding: 0 0 0 0.4rem;
}

/* block quote */
.container-body blockquote {
  margin: 0 0 2em 0;
  padding: 30px 30px 2px;
  background: #f2f2f2;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  position: relative;
}

.container-body blockquote:before {
  content: '"';
  font-style: italic;
  font-size: 30px;
  font-weight: bold;
  line-height: 40px;
  width: 30px;
  height: 30px;
  position: absolute;
  top: 10px;
  left: 10px;
  color: #999;
}

.container-body blockquote:after {
  content: '"';
  font-style: italic;
  font-size: 30px;
  font-weight: bold;
  text-align: left;
  line-height: 60px;
  width: 30px;
  height: 30px;
  position: absolute;
  bottom: 10px;
  right: 5px;
  color: #999;
}

/* next-page */
.pagesprit {
  text-align: center;
  font-size: 0;
}

.pagesprit .page-numbers {
  line-height: 1;
}

.pagesprit a,
.pagesprit span {
  display: inline-block;
  margin: 0 2px;
  font-size: 14px;
  line-height: 14px;
}

.pagesprit .numbers {
  border: 1px #05569f solid;
  width: 40px;
  height: 40px;
  line-height: 40px;
  background-color: #05569f;
  color: #fff;
}

.pagesprit a .numbers {
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -ms-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

.pagesprit a:hover .numbers {
  background-color: #05569f;
  color: #fff;
}

.pagesprit a .numbers {
  background-color: #fff;
  color: #05569f;
}

/* PageNaviプラグイン */
.wp-pagenavi {
  padding: 16px 0;
  text-align: center;
}

.wp-pagenavi .pages {
  display: block;
  margin: 8px;
}

.wp-pagenavi .current,
.wp-pagenavi .page,
.wp-pagenavi .nextpostslink,
.wp-pagenavi .previouspostslink {
  display: inline-block;
  margin: 8px 4px;
  border: 1px #05569f solid;
  width: 40px;
  height: 40px;
  line-height: 38px;
  font-size: 16px;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  border-radius: 100%;
}

.wp-pagenavi .current {
  background-color: #05569f;
  color: #fff;
  border-color: #05569f;
}

.wp-pagenavi .page:hover,
.wp-pagenavi .nextpostslink:hover,
.wp-pagenavi .previouspostslink:hover {
  background-color: #05569f;
  color: #fff;
  border-color: #05569f;
}

@media (min-width: 62em) {
  .wp-pagenavi .current,
  .wp-pagenavi .page,
  .wp-pagenavi .nextpostslink,
  .wp-pagenavi .previouspostslink {
    width: 32px;
    height: 32px;
    line-height: 30px;
  }
}

.spot-block {
  margin-bottom: 2em;
}

.spot-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.spot-img {
  flex: 0 0 300px;
  max-width: 100%;
  height: auto;
}

.spot-text {
  flex: 1;
  min-width: 200px;
}

@media (max-width: 768px) {
  .spot-flex {
    flex-direction: column;
  }
}

/* SEO対策　ここから*/
.site-title {
  margin: 0;
}

.site-title a {
  display: block;
}
/* SEO対策　ここまで*/

/* デフォルト（PC）では非表示 */
.sp-only {
  display: none;
}

/* スマホのときだけ表示 */
@media (max-width: 768px) {
  .sp-only {
    display: inline;
  }
}

/* デフォルト（PC）では非表示 */
.pc-only {
  display: inline;
}

/* スマホのときは表示 */
@media (max-width: 768px) {
  .pc-only {
    display: none;
  }
}

/* トップページ　ここから*/

/* 新着情報ブロックの横幅調整と中央寄せ */
/* 新着情報全体の幅調整と中央寄せ */
@media (min-width: 48em) {
  .top-news-info {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2.0rem;
    box-sizing: border-box;
  }

  /* 枠内に確実に収まるようにヘッダーとリストも調整 */
  .top-news-info .top-news-header,
  .top-news-info .news-list {
    width: 100%;
    box-sizing: border-box;
  }
}

/* --- 大会の魅力セクション --- */
.top-section {
  padding: 60px 0;
  background-color: #ffffff; /* 白 */
}

/* --- 大会の魅力セクション（クリーンな白ベース） --- */
.top-section.point-section,
.top-section:first-of-type {
  padding: 70px 0;
  background-color: #ffffff;
}

/* タイトルと伸長下線アニメーション */
.top-section-title {
  text-align: center;
  margin-bottom: 45px;
}
.top-section-title .en-title {
  display: block;
  font-size: 16px;
  font-weight: bold;
  color: #05569f;
  letter-spacing: 3px;
  text-transform: uppercase;
}
.top-section-title .jp-title {
  display: inline-block;
  position: relative;
  font-size: 32px;
  font-weight: bold;
  color: #000000;
  margin-top: 6px;
  padding-bottom: 12px;
}

/* 初期状態の下線（幅0%） */
.top-section-title .jp-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0%;
  height: 4px;
  background: linear-gradient(90deg, #05569f 0%, #00b0ff 100%);
  border-radius: 2px;
  transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.top-section-title:hover .jp-title::after,
.point-section:hover .top-section-title .jp-title::after {
  width: 100%;
}

/* グリッドレイアウト */
.point-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
}

.point-card {
  background: #eef7ff;
  border-radius: 16px;
  border: 1px solid #b3e5fc;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  width: calc((100% - 48px) / 3);
  box-sizing: border-box;
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
}

.point-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 86, 159, 0.12);
}

/* ヘッダー＆バッジ部分 */
.point-card-header {
  padding: 12px;
  text-align: center;
}
.point-badge {
  display: inline-block;
  background-color: #05569f;
  color: #ffffff;
  font-size: 14px;
  font-weight: bold;
  padding: 6px 20px;
  border-radius: 20px;
}

/* 画像領域 */
.point-img {
  height: 240px;
  overflow: hidden;
  padding: 0 12px;
}
.point-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

/* 本文テキスト領域 */
.point-content {
  padding: 24px;
  text-align: left;
  flex: 1;
}

/* ----------------------------------------------------
   ★カードタイトル
   ---------------------------------------------------- */
.point-content h3 {
  font-size: 18px;
  font-weight: bold;
  color: #05569f;
  margin: 0 0 16px 0;
  line-height: 1.5;
  text-align: center;
  background: #ffffff;
  border: 2px solid #05569f;
  border-radius: 12px;
  padding: 10px 14px;
  box-shadow: 0 3px 8px rgba(5, 86, 159, 0.1);
}

.point-content p {
  font-size: 16px;
  color: #000000;
  line-height: 1.7;
  margin: 0;
  font-weight: bold;
}

/* 文字色ハイライト用 */
.highlight-blue {
  color: #05569f;
  font-weight: bold;
}
.highlight-orange {
  color: #d4ac0d;
  font-weight: bold;
}

/* レスポンシブ調整 */
@media (max-width: 62em) {
  .point-card {
    width: 100%;
    max-width: 450px;
  }
}

@media (max-width: 48em) {
  .top-section {
    padding: 40px 0;
  }
  .top-section-title .jp-title {
    font-size: 24px;
  }
  .point-img {
    height: 180px;
  }
  .point-content h3 {
    font-size: 18px;
  }
}

/* --- ゲスト・パフォーマンスセクション --- */
.guest-section {
  padding: 80px 0;
  background: linear-gradient(135deg, #f0f7ff 0%, #e6f2ff 100%);
  border-top: 1px solid #d0e4f7;
  border-bottom: 1px solid #d0e4f7;
  position: relative;
  overflow: hidden;
}

/* 背景にさりげなくアクセントを入れる大型円装飾 */
.guest-section::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 300px;
  height: 300px;
  background: rgba(5, 86, 159, 0.03);
  border-radius: 50%;
  pointer-events: none;
}

.guest-group {
  margin-bottom: 55px;
}
.guest-group:last-child {
  margin-bottom: 0;
}

/* サブ見出し（ネイビーの長丸風見出し） */
.guest-sub-title {
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  color: #ffffff;
  margin-bottom: 35px;
  position: relative;
  display: table;
  margin-left: auto;
  margin-right: auto;
  background: #05569f;
  padding: 10px 48px;
  border-radius: 30px;
  box-shadow: 0 4px 12px rgba(5, 86, 159, 0.2);
}

/* ゲスト一覧グリッド */
.guest-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  max-width: 1100px;
  margin: 0 auto;
}

/* 共通カード（四角・角丸の縦長カード） */
.guest-card {
  border-radius: 20px;
  padding: 16px;
  width: calc((100% - 72px) / 4);
  min-width: 220px;
  box-sizing: border-box;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.guest-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

.guest-card.gold-card {
  background: #fffde7;
  border: 2px solid #ffe082;
}


.guest-card.blue-card {
  background: #eef7ff;
  border: 2px solid #b3e5fc;
}

/* 四角（角丸）画像エリア */
.guest-img {
  width: 100%;
  height: 240px;
  border-radius: 12px;
  overflow: hidden;
  background: #ffffff;
  margin-bottom: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.guest-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.guest-card:hover .guest-img img {
  transform: scale(1.05);
}

/* カード下部の名前表示エリア */
.guest-info {
  text-align: center;
  padding: 4px 0 8px;
}

.guest-name {
  font-size: 18px;
  font-weight: bold;
  color: #05569f;
  margin: 0;
  white-space: nowrap;
}
.gold-card .guest-name {
  color: #05569f;
}
.guest-name .small {
  font-size: 13px;
  color: #000000;
}

/* 各画像の表示位置微調整 */
.guest-group:nth-of-type(1) .guest-card:nth-child(1) .guest-img img { object-position: center 1%; }
.guest-group:nth-of-type(1) .guest-card:nth-child(2) .guest-img img { object-position: center 5%; }
.guest-group:nth-of-type(1) .guest-card:nth-child(3) .guest-img img { object-position: 60% 5%; }
.guest-group:nth-of-type(1) .guest-card:nth-child(4) .guest-img img { object-position: center 5%; }
.guest-group:nth-of-type(2) .guest-card:nth-child(1) .guest-img img { object-position: 50% 50%; }
.guest-group:nth-of-type(2) .guest-card:nth-child(2) .guest-img img { object-position: center 15%; }

/* 応援パフォーマンス表示エリア */
.performer-box {
  background: #ffffff;
  border: 2px solid #b3e5fc;
  border-radius: 16px;
  padding: 35px;
  max-width: 1200px;
  margin: 0 auto;
  box-shadow: 0 8px 24px rgba(5, 86, 159, 0.08);
}

/* PC表示（通常）のときは2列×2行で固定 */
.performer-list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px 30px;
}

.performer-list li {
  font-size: 18px;
  font-weight: bold;
  color: #000000;
  position: relative;
  padding-left: 24px;
  word-break: break-word;
}

.performer-list li::before {
  content: '★';
  position: absolute;
  left: 0;
  color: #05569f;
}

.performer-note {
  font-size: 15px;
  color: #000000;
  margin: 0;
  border-top: 1px dashed #b3e5fc;
  padding-top: 20px;
  text-align: center;
  line-height: 1.6;
  font-weight: bold;
}

/* レスポンシブ調整（iPad / タブレット用） */
@media (max-width: 62em) {
  .guest-card {
    width: calc((100% - 24px) / 2);
    min-width: unset;
  }
}

@media (max-width: 48em) {
  .guest-section {
    padding: 40px 0;
  }
  .guest-sub-title {
    font-size: 16px;
    padding: 6px 20px;
    margin-bottom: 20px;
  }
  /* ゲストカード（横2列） */
  .guest-grid {
    gap: 12px;
    justify-content: space-between;
  }
  .guest-card {
    width: calc(50% - 6px);
    min-width: unset;
    padding: 10px 8px;
  }
  .guest-img {
    height: 160px;
    margin-bottom: 10px;
  }
  .guest-name {
    font-size: 14px;
  }
  .guest-name .small {
    font-size: 11px;
  }

  .performer-box {
    padding: 18px 12px;
  }
  .performer-list {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 16px;
  }
  .performer-list li {
    font-size: 13.5px;
    padding-left: 20px;
    line-height: 1.5;
  }
  .performer-list li::before {
    left: 0;
  }
  .performer-note {
    font-size: 13px;
    padding-top: 14px;
  }
}

/* --- グッズ・参加賞セクション --- */
.goods-section {
  background-color: #f9fbfd;
  padding: 80px 0;
  border-top: 1px solid #e0e6ed;
}

.goods-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  justify-content: center;
  max-width: 1000px;
  margin: 0 auto;
}

/* 2つ並びでしっかり太く見せるカード設定 */
.goods-card {
  background: #ffffff;
  border: 2px solid #e0f2fe;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(5, 86, 159, 0.08);
  width: calc((100% - 32px) / 2);
  min-width: 320px;
  box-sizing: border-box;
  position: relative;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.goods-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(5, 86, 159, 0.15);
}

/* バッジの位置修正（カード内の左上に固定） */
.goods-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: #05569f;
  color: #ffffff;
  font-size: 13px;
  font-weight: bold;
  padding: 6px 18px;
  border-radius: 20px;
  z-index: 10;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
}

.goods-badge.charity {
  background: #ff8f00; /* 販売商品は目立つオレンジ */
}

/* 画像領域 */
.goods-img {
  height: 240px;
  overflow: hidden;
  background-color: #f4f8fb;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  margin: 12px 12px 0;
  border-radius: 12px;
}

.goods-img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.goods-card:hover .goods-img img {
  transform: scale(1.05);
}

/* 本文領域 */
.goods-content {
  padding: 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* 商品タイトル（吹き出し） */
.goods-content h3 {
  margin: 0 0 16px 0;
  text-align: center;
}

.goods-content h3 span {
  display: block;
  font-size: 17px;
  font-weight: bold;
  color: #05569f;
  line-height: 1.5;
  background: #ffffff;
  border: 2px solid #05569f;
  border-radius: 12px;
  padding: 10px 14px;
  box-shadow: 0 3px 8px rgba(5, 86, 159, 0.08);
  box-sizing: border-box;
}

.goods-desc {
  font-size: 15px;
  color: #000000;
  margin: 0 0 12px 0;
  font-weight: bold;
  line-height: 1.6;
}

/* 注意書きの位置・マージン調整 */
.goods-note {
  font-size: 13px;
  color: #000000;
  margin-top: 12px; /* ★ auto から 12px に変更して上に寄せる */
  line-height: 1.5;
  font-weight: bold;
}

/* Tシャツ価格表示 */
.price-box {
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #b3e5fc;
}

.price-box .price {
  font-size: 22px;
  font-weight: bold;
  color: #e53935;
  margin-right: 6px;
}

.price-box .price-detail {
  font-size: 13px;
  color: #000000;
  font-weight: bold;
}

.goods-spec {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
  color: #000000;
}

.goods-spec li {
  margin-bottom: 6px;
  line-height: 1.5;
}

/* レスポンシブ調整（スマホ表示） */
@media (max-width: 48em) {
  .goods-card {
    width: 100%;
    min-width: unset;
  }
  .goods-img {
    height: 180px;
  }
  .goods-content {
    padding: 16px;
  }
}
/* トップページ　ここまで*/

/* 各ページの左右の表示幅調整 ここから*/
/* PCサイズ（75em〜）の時のみ 左右に余白を持たせる */
@media (min-width: 75em) {
  .page-pac-size {
    margin-left: 6.5rem;
    margin-right: 6.5rem;
  }
}

/* 各ページの左右の表示幅調整 ここまで*/

/* MDRTとは　ここから*/
/* 説明文とロゴを中央寄せにする設定 */
.mdrt-intro-container {
  text-align: center;
  max-width: 1200px;
  margin: 0 auto;
}

/* 説明文 */
.mdrt-intro-container p {
  text-align: left;
  max-width: 100%;
  width: 100%;
  margin-bottom: 1.5em;
  font-size: 0.9rem;
}

.mdrt-intro-container p.mdrt-link-p {
  margin-top: 2em;
}

/* ロゴの周りの余白 */
.mdrt-logo-wrapper {
  margin-top: 20px;
  text-align: center;
}

.mdrt-logo-wrapper img {
  display: inline-block;
  height: auto;
}


/* ご挨拶 */
.president-greeting-container {
  max-width: 1200px;
  margin: 0 auto 50px;
  padding: 0 20px;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 30px;
}

/* 会長の写真ボックス */
.president-photo {
  width: 240px;
  text-align: left;
  flex-shrink: 0;
}

.president-photo img {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

/* 挨拶文のテキスト調整 */
.greeting-box {
  line-height: 1.8;
  color: #000000;
}

.greeting-box p {
  margin-bottom: 1.5em;
  text-align: left;
  font-size: 0.9rem;
}

/* 「皆さまへ」の文字 */
.greeting-lead {
  font-weight: bold;
  font-size: 1.1rem;
}

/* 寄付先リスト・署名のスタイル */
.donation-title {
  margin-bottom: 0.5em !important;
}
.donation-list {
  margin: 0 0 1.5em 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.donation-list li {
  position: relative !important;
  padding-left: 2em !important;
  margin-bottom: 0.3em !important;
  margin-left: 0 !important;
}
.donation-list li::before {
  content: "◎";
  position: absolute;
  left: 0;
  top: 0;
}
.signature {
  text-align: right;
  margin-top: 2.5em;
  line-height: 1.6;
}
.signature span {
  font-size: 1.25rem;
  font-weight: bold;
  display: inline-block;
  margin-top: 5px;
}

/* ==========================================================
   スマホ表示用の設定
   ========================================================== */
@media (max-width: 48em) {
  .mdrt-intro-container p {
    font-size: 1.5rem;
  }

  .president-greeting-container {
    flex-direction: column;
    gap: 20px;
  }

  .president-photo {
    width: 100%;
    text-align: center;
  }

  .president-photo img {
    max-width: 240px;
  }
}
/* MDRTとは　ここまで*/

/* 大会要項 ここまで*/
/* ==========================================================
   大会要項ページ：モダンデザイン化カスタマイズ
   ========================================================== */

/* 1. ページ内リンクボタンのモダン化 */
.container-body .button-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 2.5rem;
}

.container-body .button-list li {
  margin: 0 !important;
}

.container-body .button-list a {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  height: auto;
  line-height: 1.4;
  background: #ffffff;
  color: #05569f;
  border: 2px solid #05569f;
  border-radius: 30px;
  font-weight: bold;
  box-shadow: 0 4px 10px rgba(5, 86, 159, 0.08);
  transition: all 0.3s ease;
}

.container-body .button-list a:hover {
  background-color: #05569f;
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(5, 86, 159, 0.2);
}

/* 2. 種目・参加資格テーブルのモダン化 */
.event-spec-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  border: 1px solid #e2e8f0 !important;
  margin-bottom: 2.5rem;
}

.event-spec-table th {
  background-color: #05569f !important;
  color: #ffffff !important;
  font-weight: bold;
  padding: 16px 14px !important;
  border: none !important;
  font-size: 0.9rem;
}

.event-spec-table td {
  padding: 16px 14px !important;
  border-top: 1px solid #edf2f7 !important;
  border-bottom: none !important;
  border-left: none !important;
  border-right: none !important;
  background-color: #ffffff;
  color: #000000;
}

.event-spec-table tbody tr:nth-child(even) td {
  background-color: #f8fafc !important;
}

.event-spec-table tbody tr:hover td {
  background-color: #f0f7ff !important;
}

/* 3. 大会スケジュールのタイムライン化（被り解消版） */
.event-schedule-list {
  position: relative;
  padding-left: 0 !important;
  margin-bottom: 2.5rem !important;
  list-style: none !important;
}

/* 縦の直線ライン */
.event-schedule-list::before {
  content: '';
  position: absolute;
  left: 78px;
  top: 10px;
  bottom: 10px;
  width: 3px;
  background: #e2e8f0;
  border-radius: 2px;
}

.event-schedule-list li {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 16px !important;
  padding-left: 95px !important;
  font-size: 0.9rem !important;
}

/* 時間（09:00など） */
.event-schedule-list li strong {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 60px;
  color: #05569f;
  font-weight: 900;
  text-align: right;
  line-height: 1;
}

/* 中央の青い丸ドット */
.event-schedule-list li::after {
  content: '';
  position: absolute;
  left: 71px;
  top: 50%;
  transform: translateY(-50%);
  width: 11px;
  height: 11px;
  background: #05569f;
  border: 3px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #05569f;
}

/* 4. サブ見出し（h3）とピックアップタイトルの装飾 */
.page-header-s {
  border-left: 5px solid #05569f !important;
  padding-left: 12px !important;
  margin-top: 2rem !important;
  margin-bottom: 1rem !important;
  background: none !important;
}

.page-header-s::before {
  display: none !important;
}

/* ==========================================================
   大会要項：アンバサダー・出演者（トップページ共通スタイル適用）
   ========================================================== */
.outline-guest-wrapper {
  background: linear-gradient(135deg, #f0f7ff 0%, #e6f2ff 100%);
  border: 1px solid #d0e4f7;
  border-radius: 20px;
  padding: 40px 20px;
  margin-bottom: 2.5rem;
  box-shadow: 0 4px 16px rgba(5, 86, 159, 0.06);
}

.outline-guest-wrapper .guest-group {
  margin-bottom: 40px;
}

.outline-guest-wrapper .guest-group:last-child {
  margin-bottom: 0;
}

/* トップページと完全に同じ240px高さを指定 */
.outline-guest-wrapper .guest-card {
  width: calc((100% - 72px) / 4);
  min-width: 200px;
}

.outline-guest-wrapper .guest-img {
  height: 240px !important; /* トップページ同等の240pxに完全統一 */
}

/* 各人物の顔の位置合わせ（トップページの指定を継承） */
.outline-guest-wrapper .guest-group:nth-of-type(1) .guest-card:nth-child(1) .guest-img img { object-position: center 1%; }
.outline-guest-wrapper .guest-group:nth-of-type(1) .guest-card:nth-child(2) .guest-img img { object-position: center 5%; }
.outline-guest-wrapper .guest-group:nth-of-type(1) .guest-card:nth-child(3) .guest-img img { object-position: 60% 5%; }
.outline-guest-wrapper .guest-group:nth-of-type(1) .guest-card:nth-child(4) .guest-img img { object-position: center 5%; }
.outline-guest-wrapper .guest-group:nth-of-type(2) .guest-card:nth-child(1) .guest-img img { object-position: 50% 50%; }
.outline-guest-wrapper .guest-group:nth-of-type(2) .guest-card:nth-child(2) .guest-img img { object-position: center 15%; }

/* スマホ表示 (48em 未満) */
@media (max-width: 47.99em) {
  .outline-guest-wrapper {
    padding: 24px 12px;
  }

  .outline-guest-wrapper .guest-card {
    width: calc(50% - 6px);
    min-width: unset;
  }

  .outline-guest-wrapper .guest-img {
    height: 160px !important;
  }
}

/* 中央配置の長丸タブ見出し（お楽しみプログラム用） */
.page-header-s.text-center-tab {
  border-left: none !important;
  padding: 10px 36px !important;
  margin: 3rem auto 2rem auto !important;
  text-align: center !important;
  display: table !important;
  background-color: #05569f !important;
  color: #ffffff !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 12px rgba(5, 86, 159, 0.2);
}

.pickup-title {
  display: inline-block;
  background: #eef7ff;
  color: #05569f !important;
  padding: 4px 12px;
  border-radius: 6px;
  border-left: 3px solid #05569f;
  border-bottom: none !important;
  margin-bottom: 8px;
  font-weight: bold;
}

/* 5. 注意事項・競技ルール（ボックス化） */
.event-notice-list,
.event-rule-list {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 20px 24px 20px 40px !important;
  margin-bottom: 2rem !important;
}

.event-notice-list li,
.event-rule-list li {
  margin-bottom: 12px !important;
  line-height: 1.7;
}

.event-notice-list li:last-child,
.event-rule-list li:last-child {
  margin-bottom: 0 !important;
}

/* 情報を囲むカードボックス */
.info-card-box {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 2rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}

.info-card-box p {
  margin-bottom: 1.5rem;
}

.info-card-box p:last-child {
  margin-bottom: 0;
}

/* ==========================================================
   お楽しみプログラム：トップページ完全連動デザイン
   ========================================================== */

.program-card-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 2.5rem;
}

.program-card {
  position: relative;
  flex: 1;
  min-width: 280px;
  background: #eef7ff; /* トップページと同じ淡い水色背景 */
  border: 1px solid #b3e5fc;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.program-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(5, 86, 159, 0.12);
}

/* バッジ (POINT 01等) */
.program-badge {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  background: #05569f;
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: bold;
  padding: 4px 18px;
  border-radius: 20px;
  z-index: 2;
}

/* 画像エリア（正方形に近い大きめサイズに拡張） */
.program-img {
  height: 230px !important; /* 正方形に近い高さへ引き伸ばし */
  overflow: hidden;
  padding: 12px 12px 0 12px;
}

.program-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

/* 本文エリア */
.program-content {
  padding: 20px 16px 24px 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* ★カード内の吹き出し風タイトル（中央寄せ・枠線） */
.program-title-bubble {
  font-size: 0.9rem !important;
  font-weight: bold;
  color: #05569f !important;
  margin: 0 0 16px 0 !important;
  line-height: 1.5 !important;
  text-align: center !important;
  background: #ffffff;
  border: 2px solid #05569f;
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: 0 3px 8px rgba(5, 86, 159, 0.1);
}

/* 本文テキスト＆カラーハイライト */
.program-content p {
  font-size: 0.85rem !important;
  color: #000000 !important;
  line-height: 1.7 !important;
  margin: 0 !important;
  font-weight: bold;
}

.highlight-blue {
  color: #05569f;
  font-weight: bold;
}

.highlight-orange {
  color: #d4ac0d; /* アクセント用のオレンジゴールド */
  font-weight: bold;
}

/* スマホ表示 (48em 未満) の調整 */
@media (max-width: 47.99em) {
  .program-card-grid {
    flex-direction: column;
    gap: 16px;
  }

  .program-card {
    min-width: 100%;
  }

  .program-img {
    height: 180px !important;
  }

  .program-title-bubble {
    font-size: 1.5rem !important;
    padding: 8px 10px;
  }

  .program-content p {
    font-size: 1.4rem !important;
  }
}

/* ==========================================================
   大会要項：フォントサイズ・レスポンシブ調整
   ========================================================== */

/* --- PC表示 (48em 以上) --- */
@media (min-width: 48em) {
  .page-header-s {
    font-size: 1.15rem !important;
    line-height: 1.4 !important;
    margin-top: 2rem !important;
    margin-bottom: 0.8rem !important;
  }

  .container-body p,
  .event-notice-list,
  .event-rule-list,
  .event-schedule-list li,
  .event-spec-table th,
  .event-spec-table td {
    font-size: 0.9rem !important;
    line-height: 1.7 !important;
  }

  .container-body p:empty,
  .container-body p:has(br:only-child) {
    margin-bottom: 0.5rem;
  }
}

/* --- スマホ表示 (48em 未満) --- */
@media (max-width: 47.99em) {
  .event-schedule-list::before {
    left: 65px;
  }

  .event-schedule-list li {
    padding-left: 85px !important;
    font-size: 1.5rem !important;
  }

  .event-schedule-list li strong {
    width: 50px;
  }

  .event-schedule-list li::after {
    left: 61px;
  }

  .page-header-s {
    font-size: 1.8rem !important;
    line-height: 1.4 !important;
    margin-top: 1.8rem !important;
    margin-bottom: 0.6rem !important;
  }

  .page-header-s.text-center-tab {
    padding: 8px 24px !important;
    font-size: 1.6rem !important;
  }

  .container-body p,
  .event-notice-list,
  .event-rule-list,
  .event-schedule-list li,
  .event-spec-table th,
  .event-spec-table td {
    font-size: 1.5rem !important;
    line-height: 1.6 !important;
  }

  .program-card-grid {
    flex-direction: column;
    gap: 16px;
  }

  .program-card {
    min-width: 100%;
  }

  .program-content h4 {
    font-size: 1.6rem !important;
  }

  .program-content p {
    font-size: 1.4rem !important;
  }
}

/* 大会要項 ここまで*/