@charset "UTF-8";
/* ---------------------------
  A Modern CSS Reset
----------------------------- */
*, *::before, *::after {
  box-sizing: border-box;
}

body, h1, h2, h3, h4, p, figure, blockquote, dl, dd, ul, ol {
  margin: 0;
}

ul {
  padding: 0;
}

ul, ol {
  list-style: none;
}

html {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

img, picture {
  max-width: 100%;
  display: block;
}

input, button, textarea, select {
  font: inherit;
}

/* ---------------------------
  variable
----------------------------- */
:root {
  --black: #000000;
  --gray: #808080;
  --lightGray: #f7f7f7;
  --red: #ED1C24;
  --orange: #F15A24;
  --yellow: #F9D600;
  --bgColor: var(--lightGray);
  --fontMainColor: var(--black);
  --fontSubColor: #777777;
  --borderColor: #cccccc;
  --mainFont: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Sans", Meiryo, sans-serif;
  --enFont: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Sans", Meiryo, sans-serif;
  --scroll-padding-top: 100px;
  --scroll-padding-top-sp: 80px;
}

/* ---------------------------
  mixin
----------------------------- */
/* ---------------------------
  function
----------------------------- */
/* ---------------------------
  base
----------------------------- */
html {
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  scroll-padding-top: var(--scroll-padding-top);
}
@media screen and (max-width: 640px) {
  html {
    scroll-padding-top: var(--scroll-padding-top-sp);
  }
}
html:focus-within {
  scroll-behavior: smooth;
}

body {
  color: var(--fontMainColor);
  background-color: var(--yellow);
  font-size: 16px;
  line-height: 1.5;
  font-family: var(--mainFont);
  font-weight: 400;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  overflow-x: hidden;
}

html.is_not_scroll, body.is_not_scroll {
  overflow: hidden;
}

a {
  color: var(--fontMainColor);
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
}

button {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background-color: transparent;
  box-shadow: none;
}

@media screen and (max-width: 896px) {
  main {
    margin-top: 50px;
  }
}

/* ---------------------------
  utility
----------------------------- */
.wrapper {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding-left: 40px;
  padding-right: 40px;
}
@media screen and (max-width: 640px) {
  .wrapper {
    padding-left: 20px;
    padding-right: 20px;
  }
}

.inner {
  max-width: 960px;
  margin: 0 auto;
}

.br-sp {
  display: none;
}
@media screen and (max-width: 640px) {
  .br-sp {
    display: inline;
  }
}

.br-sp-none {
  display: inline;
}
@media screen and (max-width: 640px) {
  .br-sp-none {
    display: none;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* ---------------------------
  component
----------------------------- */
.c-circle {
  display: block;
  background-color: var(--black);
  border-radius: 2.5em;
  text-align: center;
  color: #ffffff;
  font-size: 13px;
  padding: 0.8em 2em;
  font-weight: bold;
}
.c-circle--gray {
  background-color: var(--gray);
}
.c-circle--black {
  background-color: var(--black);
}
.c-circle--yellow {
  background-color: var(--yellow);
  color: var(--black);
}
.c-circle--border {
  border: 1px solid #ffffff;
}

a.c-circle {
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  a.c-circle:hover {
    opacity: 0.7;
  }
}

.c-round {
  display: block;
  background-color: var(--black);
  color: #ffffff;
  border-radius: 3px;
  text-align: center;
  font-size: 13px;
  font-weight: bold;
  padding: 1em;
  margin-inline: auto;
  max-width: 160px;
}
@media screen and (max-width: 640px) {
  .c-round {
    padding: 0.8em 1em;
  }
}

a.c-round {
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  a.c-round:hover {
    opacity: 0.7;
  }
}

.c-must {
  display: block;
  background-color: var(--red);
  text-align: center;
  font-size: 10px;
  font-weight: bold;
}

.c-message {
  display: block;
  background-color: var(--yellow);
  color: var(--black);
  border-radius: 3px;
  text-align: center;
  font-size: 13px;
  font-weight: bold;
  padding: 1em;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .c-message:hover {
    opacity: 0.7;
  }
}

.c-square {
  display: block;
  background-color: var(--black);
  color: #ffffff;
  border-radius: 10px;
  text-align: center;
  font-size: 13px;
  font-weight: bold;
  padding: 0.75em;
  margin-inline: auto;
  max-width: 160px;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .c-square:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 640px) {
  .c-square {
    padding: 0.8em 1em;
  }
}
.c-square--border {
  border: 1px solid #ffffff;
}

.c-head {
  line-height: 1;
  color: var(--black);
  text-align: center;
  font-family: var(--enFont);
  font-weight: bold;
  font-size: 42px;
  margin-bottom: 1.2em;
  text-transform: uppercase;
}
@media screen and (max-width: 896px) {
  .c-head {
    font-size: 32px;
  }
}
@media screen and (max-width: 640px) {
  .c-head {
    font-size: 21px;
    margin-bottom: 1em;
  }
}
.c-head span {
  display: block;
  text-align: center;
  font-family: var(--mainFont);
  font-weight: bold;
  font-size: 15px;
  margin-top: 0.8em;
  text-transform: none;
}
@media screen and (max-width: 640px) {
  .c-head span {
    font-size: 11px;
  }
}
.c-head--white {
  color: #ffffff;
}

.c-circle-head {
  background-color: var(--black);
  color: #ffffff;
  border-radius: 2.5em;
  font-size: 21px;
  padding: 0.4em 0.5em;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 640px) {
  .c-circle-head {
    font-size: 18px;
  }
}

.c-round-head {
  background-color: var(--black);
  color: #ffffff;
  border-radius: 3px;
  font-size: 18px;
  padding: 0.4em 0.5em;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 640px) {
  .c-round-head {
    font-size: 16px;
  }
}

.c-bar-head {
  font-size: 18px;
  font-weight: bold;
  padding-left: 0.8em;
  position: relative;
}
@media screen and (max-width: 640px) {
  .c-bar-head {
    font-size: 16px;
  }
}
.c-bar-head::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 1.8em;
  background-color: var(--yellow);
  position: absolute;
  left: 0;
  top: -0.1em;
  z-index: 10;
}

:root .c-cat {
  text-align: center;
  font-weight: bold;
  font-size: 11px;
  padding: 0.2em;
  width: 80px;
}
:root .c-cat--black {
  background-color: var(--black);
  color: #ffffff;
}
:root .c-cat--yellow {
  background-color: var(--yellow);
  color: var(--black);
}

/* ---------------------------
  header
----------------------------- */
:root {
  --header-spacing-left: clamp(11.25rem, -7.779rem + 33.943vw, 19.375rem);
}

.header {
  width: 100%;
}
@media screen and (max-width: 896px) {
  .header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: var(--yellow);
    border-bottom: 1px solid #000000;
  }
}

.header-wrapper {
  max-width: 1520px;
  margin-inline: auto;
  padding-left: 40px;
  padding-right: 40px;
  position: relative;
}
@media screen and (max-width: 896px) {
  .header-wrapper {
    padding-right: 50px;
    padding-left: 16px;
  }
}

.header-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100px;
  gap: 40px;
  padding-left: var(--header-spacing-left);
}
@media screen and (max-width: 896px) {
  .header-head {
    padding-left: 0;
    height: 50px;
  }
}

.header-head__logo {
  position: absolute;
  top: 50%;
  left: 40px;
  z-index: 100;
  translate: 0 -52%;
}
@media screen and (max-width: 896px) {
  .header-head__logo {
    position: static;
    top: auto;
    left: auto;
    translate: 0 0;
  }
}
.header-head__logo img {
  width: clamp(10rem, 2.828rem + 12.794vw, 13.063rem);
}
@media screen and (max-width: 896px) {
  .header-head__logo img {
    width: 70px;
  }
}
.header-head__logo a {
  display: block;
}
.logo-hover {
  transition: transform 0.2s ease;
}

.logo-hover:hover {
  animation: logo 0.6s ease-out;
}

@keyframes logo {
  0%   { transform: rotate(0deg); }
  20%  { transform: rotate(8deg); }
  40%  { transform: rotate(-6deg); }
  60%  { transform: rotate(4deg); }
  80%  { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
.header-head__nav {
  display: flex;
  align-items: center;
  gap: 10px;
}
@media screen and (max-width: 896px) {
  .header-head__nav {
    padding-right: 10px;
  }
}
.header-head__nav a {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.7em 2em;
  border-radius: 2em;
  white-space: nowrap;
  color: #fff;
  background-color: var(--black);
  font-size: 14px;
  font-weight: bold;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .header-head__nav a:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 896px) {
  .header-head__nav a {
    font-size: 11px;
  }
}
@media screen and (max-width: 896px) {
  .header-head__nav .pc-only {
    display: none;
  }
}

.header-head__sns {
  display: flex;
  align-items: center;
  gap: 10px;
}
@media screen and (max-width: 896px) {
  .header-head__sns {
    display: none;
  }
}
.header-head__sns a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .header-head__sns a:hover {
    opacity: 0.7;
  }
}

.header-foot {
  padding-left: var(--header-spacing-left);
  -o-border-image: linear-gradient(var(--black) 0 0) 0//0 100vi;
     border-image: linear-gradient(var(--black) 0 0) fill 0//0 100vi;
}
@media screen and (max-width: 896px) {
  .header-foot {
    display: none;
  }
}

.g-nav-list {
  display: flex;
  align-items: center;
  height: 60px;
  gap: 50px;
}
@media screen and (max-width: 1280px) {
  .g-nav-list {
    gap: 28px;
  }
}

.g-nav-list__item {
  height: 100%;
}
.g-nav-list__item a {
  display: grid;
  place-content: center;
  height: 100%;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.2;
  color: #fff;
  white-space: nowrap;
}
@media screen and (max-width: 1280px) {
  .g-nav-list__item a {
    font-size: 13px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .g-nav-list__item:hover a {
    color: var(--yellow);
    transition: color 0.2s ease-in-out;
  }
}

.sp-nav {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background-color: var(--black);
  padding: 70px 20px 0;
  overflow-y: auto;
}

.sp-nav__main {
  background-color: #fff;
  border-radius: 8px;
  padding: 20px;
}

.sp-nav-link__item {
  margin-bottom: 15px;
}
.sp-nav-link__item a {
  padding: 1em;
  font-size: 14px;
}

.sp-nav-list {
  margin-top: 35px;
}

.sp-nav-list__item {
  border-bottom: 1px solid var(--black);
}
.sp-nav-list__item:first-of-type {
  border-top: 1px solid var(--black);
}
.sp-nav-list__item--secondary {
  border-top: 1px solid var(--black);
  margin-top: 50px;
}
.sp-nav-list__item a {
  display: block;
  color: var(--black);
  font-weight: bold;
  font-size: 14px;
  padding: 1em 0.8em;
  padding-right: 32px;
  background-image: url(../img/common/right_chevron_black.svg);
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 7px;
}

.sp-nav__foot {
  margin-top: 30px;
  padding-bottom: 80px;
}
.sp-nav__foot img {
  margin-inline: auto;
}
.sp-nav__foot ul {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
.sp-nav__foot address {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-weight: bold;
  color: #ffffff;
  font-size: 13px;
  font-style: normal;
  margin-top: 24px;
}
.sp-nav__foot dl {
  margin-top: 10px;
  display: grid;
  grid-template-columns: 38px auto;
  gap: 0 10px;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.sp-nav__foot dt {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 20px;
  border: 1px solid #ffffff;
  border-radius: 3px;
  font-size: 12px;
  font-weight: bold;
  font-family: var(--enFont);
  text-transform: uppercase;
  color: #ffffff;
}
.sp-nav__foot dd {
  font-weight: bold;
  font-size: 21px;
  font-family: var(--enFont);
  white-space: nowrap;
  color: #ffffff;
}

/* ---------------------------
  hamb
----------------------------- */
.hamburger {
  display: none;
  width: 50px;
  height: 50px;
  padding: 16px 12px;
  background-color: var(--black);
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10000;
}
@media screen and (max-width: 896px) {
  .hamburger {
    display: block;
  }
}
.hamburger.is_active .hamburger__inner {
  transform: translateX(4px);
}
.hamburger.is_active .hamburger__inner span:nth-of-type(1) {
  transform: rotate(41deg);
}
.hamburger.is_active .hamburger__inner span:nth-of-type(2) {
  opacity: 0;
}
.hamburger.is_active .hamburger__inner span:nth-of-type(3) {
  transform: rotate(-41deg);
}

.hamburger__inner {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  transition: 0.3s ease-in-out;
}
.hamburger__inner span {
  display: block;
  width: 100%;
  height: 1px;
  opacity: 1;
  background-color: #fff;
  transform-origin: left;
  transition: 0.3s ease-in-out;
}

/* ---------------------------
  aside
----------------------------- */
.aside-section {
  padding: 50px 0 80px;
  border-top: 1px solid var(--black);
}
@media screen and (max-width: 640px) {
  .aside-section {
    padding: 32px 0;
  }
}
.aside-section--club {
  background-image: url(../img/common/club_bg.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: center bottom 16px;
}
@media screen and (max-width: 640px) {
  .aside-section--club {
    background-size: 800px;
    background-position: center bottom 8px;
    padding-bottom: 50px;
  }
}

.aside-big-bnr {
  max-width: 1110px;
  margin-inline: auto;
  position: relative;
  padding: 0 55px;
}
@media screen and (max-width: 1080px) {
  .aside-big-bnr {
    margin-left: -20px;
    margin-right: -20px;
  }
}
@media screen and (max-width: 640px) {
  .aside-big-bnr {
    padding: 0;
    margin-left: -20px;
    margin-right: -20px;
  }
}
.aside-big-bnr .swiper-slide img {
  aspect-ratio: 320/180;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  margin-inline: auto;
}
.aside-big-bnr .swiper-slide a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .aside-big-bnr .swiper-slide a:hover {
    opacity: 0.7;
  }
}
.aside-big-bnr .swiper-button-next,
.aside-big-bnr .swiper-button-prev {
  position: absolute;
  top: 0;
  cursor: pointer;
  width: 25px;
  height: 100%;
  display: flex;
  align-items: center;
  margin-top: 0;
}
@media screen and (max-width: 640px) {
  .aside-big-bnr .swiper-button-next,
  .aside-big-bnr .swiper-button-prev {
    display: none;
  }
}
.aside-big-bnr .swiper-button-next::before, .aside-big-bnr .swiper-button-next::after,
.aside-big-bnr .swiper-button-next .swiper-navigation-icon,
.aside-big-bnr .swiper-button-prev::before,
.aside-big-bnr .swiper-button-prev::after,
.aside-big-bnr .swiper-button-prev .swiper-navigation-icon {
  display: none;
}
.aside-big-bnr .swiper-button-next {
  left: auto;
  right: 0;
}
.aside-big-bnr .swiper-button-prev {
  left: 0;
  right: auto;
}

.aside-small-bnr {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media screen and (max-width: 896px) {
  .aside-small-bnr {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .aside-small-bnr {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
  }
}

.aside-small-bnr__item img {
  width: 100%;
  aspect-ratio: 280/90;
  -o-object-fit: cover;
     object-fit: cover;
}
.aside-small-bnr__item a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .aside-small-bnr__item a:hover {
    opacity: 0.7;
  }
}

.aside-club__head {
  text-align: center;
  margin-bottom: 1em;
  font-size: 18px;
  font-weight: bold;
}
@media screen and (max-width: 640px) {
  .aside-club__head {
    margin-bottom: 0.5em;
  }
}

.aside-club__img {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

.aside-club__more {
  margin-top: 40px;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: 15px;
  padding: 1.2em 2em;
}
@media screen and (max-width: 640px) {
  .aside-club__more {
    margin-top: 20px;
    font-size: 13px;
  }
}

/* ---------------------------
  footer
----------------------------- */
.footer {
  background-color: var(--black);
  color: #ffffff;
}
@media screen and (max-width: 896px) {
  .footer {
    padding-bottom: 56px;
  }
}

.footer-body {
  padding: 100px 0;
  display: flex;
  gap: 32px;
  justify-content: space-between;
}
@media screen and (max-width: 896px) {
  .footer-body {
    padding: 64px 0;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
}
@media screen and (max-width: 640px) {
  .footer-body {
    display: none;
  }
}

/* ロゴ画像は透過させない */
.footer-body__logo > a > img {
  opacity: 1; /* 透過なし */
  background: none;
}

/* SNSアイコンは hover で半透明 */
.footer-body__logo ul a img {
  opacity: 1; /* 通常はくっきり表示 */
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .footer-body__logo ul a:hover img {
    opacity: 0.7;
  }
}

@media screen and (max-width: 640px) {
  .footer-body__logo img {
    width: 60%;
    margin-inline: auto;
  }
}
.footer-body__logo ul {
  margin-top: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.footer-body__logo a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}

.footer-body__meta address {
  font-style: normal;
  font-weight: bold;
  line-height: 1.8;
  font-size: 14px;
  margin: 2em 0 1em;
}
@media screen and (max-width: 896px) {
  .footer-body__meta address {
    text-align: center;
  }
}
@media screen and (max-width: 640px) {
  .footer-body__meta address {
    font-size: 12px;
  }
}
.footer-body__meta dl {
  display: grid;
  grid-template-columns: 38px auto;
  gap: 0 10px;
  align-items: center;
}
.footer-body__meta dt {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 20px;
  border: 1px solid #ffffff;
  border-radius: 3px;
  font-size: 12px;
  font-weight: bold;
  font-family: var(--enFont);
  text-transform: uppercase;
}
.footer-body__meta dd {
  font-weight: bold;
  font-size: 21px;
  font-family: var(--enFont);
  white-space: nowrap;
}

.footer-body__nav li:not(:last-of-type) {
  margin-bottom: 0.8em;
}
.footer-body__nav a {
  display: block;
  padding-left: 1.5em;
  background-image: url(../img/common/right_chevron_white.svg);
  background-position: center left;
  background-size: 5px;
  background-repeat: no-repeat;
  font-size: 14px;
  font-weight: bold;
  color: #ffffff;
  transition: -webkit-text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out, -webkit-text-decoration 0.1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .footer-body__nav a:hover {
    text-decoration: underline;
  }
}

.footer-info__hz {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-weight: bold;
  font-size: 18px;
  line-height: 1;
  white-space: nowrap;
  margin-bottom: 1em;
}
.footer-info__hz strong {
  font-family: var(--enFont);
  font-size: 36px;
  color: var(--yellow);
}
.footer-info__hz span {
  display: inline-block;
  margin-left: 0.2em;
  font-weight: bold;
  font-family: var(--enFont);
  font-size: 0.5em;
  color: #ffffff;
}

.footer-info__area {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.footer-info__area + .footer-info__area {
  margin-top: 6px;
}
.footer-info__area li {
  font-size: 13px;
}

.footer-body__link li:not(:last-of-type) {
  margin-bottom: 10px;
}
.footer-body__link a {
  max-width: inherit;
  width: 260px;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .footer-body__link a:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 1080px) {
  .footer-body__link a {
    width: 200px;
  }
}

.footer-foot {
  text-align: center;
  border-top: 1px solid var(--borderColor);
  padding: 0.8em;
}
@media screen and (max-width: 640px) {
  .footer-foot {
    padding: 0.5em;
  }
}
.footer-foot small {
  display: block;
  font-size: 11px;
}
@media screen and (max-width: 640px) {
  .footer-foot small {
    font-size: 10px;
  }
}

.sp-bottom-menu {
  display: none;
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 100;
  background-color: #fff;
  border-top: 1px solid #fff;
  padding-bottom: env(safe-area-inset-bottom);
}
@media screen and (max-width: 896px) {
  .sp-bottom-menu {
    display: block;
  }
}
.sp-bottom-menu ul {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
}
.sp-bottom-menu li {
  background-color: var(--black);
}
.sp-bottom-menu a {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  height: 55px;
}
.sp-bottom-menu span {
  color: #ffffff;
  font-weight: bold;
  line-height: 1.3;
  font-size: 12px;
  text-align: center;
}
@media screen and (max-width: 640px) {
  .sp-bottom-menu span {
    font-size: 10px;
  }
}

/* ---------------------------
  post
----------------------------- */
.post > *,
.wp-editor > * {
  margin-top: 1em;
  margin-bottom: 1em;
  max-width: 100%;
}
.post > *:first-child,
.wp-editor > *:first-child {
  margin-top: 0 !important;
}
.post > *:last-child,
.wp-editor > *:last-child {
  margin-bottom: 0 !important;
}
.post h1:not([class]),
.wp-editor h1:not([class]) {
  font-size: 32px;
  font-weight: bold;
  margin-top: 2em;
}
@media screen and (max-width: 640px) {
  .post h1:not([class]),
  .wp-editor h1:not([class]) {
    font-size: 28px;
  }
}
.post h2:not([class]),
.wp-editor h2:not([class]) {
  font-size: 28px;
  font-weight: bold;
  margin-top: 2em;
}
@media screen and (max-width: 640px) {
  .post h2:not([class]),
  .wp-editor h2:not([class]) {
    font-size: 24px;
  }
}
.post h3:not([class]),
.wp-editor h3:not([class]) {
  margin-top: 2em;
  font-size: 20px;
  font-weight: bold;
}
.post h4:not([class]),
.wp-editor h4:not([class]) {
  margin-top: 1.5em;
  font-size: 18px;
  font-weight: bold;
}
.post h5:not([class]),
.wp-editor h5:not([class]) {
  font-size: 16px;
  font-weight: bold;
}
.post h6:not([class]),
.wp-editor h6:not([class]) {
  font-size: 14px;
  font-weight: bold;
}
.post p:not([class]),
.wp-editor p:not([class]) {
  line-height: 2;
  font-size: 16px;
}
@media screen and (max-width: 640px) {
  .post p:not([class]),
  .wp-editor p:not([class]) {
    font-size: 14px;
  }
}
.post strong, .post strong > *,
.wp-editor strong,
.wp-editor strong > * {
  font-weight: bold;
}
.post em, .post em > *,
.wp-editor em,
.wp-editor em > * {
  font-style: italic;
}
.post blockquote,
.wp-editor blockquote {
  padding: 0.5em;
  background-color: #f2f2f2;
}
.post a:not([class]),
.wp-editor a:not([class]) {
  text-decoration: underline;
  transition: -webkit-text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out, -webkit-text-decoration 0.1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .post a:not([class]):hover,
  .wp-editor a:not([class]):hover {
    text-decoration: none;
  }
}
.post ul:not([class]),
.wp-editor ul:not([class]) {
  list-style: disc;
  margin: 2em 0;
  padding-left: 1.5em;
}
.post ul:not([class]) li,
.wp-editor ul:not([class]) li {
  font-size: 16px;
  margin: 1em 0;
}
@media screen and (max-width: 640px) {
  .post ul:not([class]) li,
  .wp-editor ul:not([class]) li {
    font-size: 15px;
  }
}
.post ul:not([class]) li::marker,
.wp-editor ul:not([class]) li::marker {
  color: var(--yellow);
  font-size: 1em;
}
.post ol:not([class]),
.wp-editor ol:not([class]) {
  list-style: decimal;
  margin: 2em 0;
  padding-left: 1.5em;
}
.post ol:not([class]) li,
.wp-editor ol:not([class]) li {
  font-size: 16px;
  margin: 1em 0;
}
@media screen and (max-width: 640px) {
  .post ol:not([class]) li,
  .wp-editor ol:not([class]) li {
    font-size: 15px;
  }
}
.post .aligncenter,
.wp-editor .aligncenter {
  text-align: center;
}
.post .alignleft,
.wp-editor .alignleft {
  text-align: left;
}
.post .alignright,
.wp-editor .alignright {
  text-align: right;
}
.post img,
.wp-editor img {
  display: block;
  margin-top: 2em;
  margin-bottom: 2em;
}
.post img.aligncenter,
.wp-editor img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.post img.alignleft,
.wp-editor img.alignleft {
  display: block;
  margin-right: auto;
  margin-left: 0;
}
.post img.alignright,
.wp-editor img.alignright {
  display: block;
  margin-left: auto;
  margin-right: 0;
}

/* ---------------------------
  hero
----------------------------- */
.hero {
  position: relative;
  padding-top: 30px;
  padding-bottom: 30px;
}
@media screen and (max-width: 640px) {
  .hero {
    padding-top: 20px;
    padding-bottom: 20px;
  }
}
.hero .swiper-slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 780/520;
  border: 10px solid var(--black);
  border-radius: 30px;
  overflow: hidden;
}
@media screen and (max-width: 896px) {
  .hero .swiper-slide img {
    border-width: 8px;
  }
}
@media screen and (max-width: 640px) {
  .hero .swiper-slide img {
    border-width: 5px;
    border-radius: 15px;
  }
}
.hero .swiper-pagination {
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 20px;
  padding: 0 20px;
}
@media screen and (max-width: 640px) {
  .hero .swiper-pagination {
    gap: 8px;
  }
}
.hero .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background-color: #fff;
  opacity: 1;
  margin: 0 !important;
}
@media screen and (max-width: 640px) {
  .hero .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
  }
}
.hero .swiper-pagination-bullet-active {
  background-color: var(--orange);
}

/* ---------------------------
  news
----------------------------- */
.top-news-section {
  position: relative;
  padding-top: 56px;
  padding-bottom: 80px;
}
@media screen and (max-width: 640px) {
  .top-news-section {
    padding-top: 32px;
    padding-bottom: 32px;
  }
}

.top-news-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 50px;
}
@media screen and (max-width: 896px) {
  .top-news-layout {
    grid-template-columns: repeat(1, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .top-news-layout {
    gap: 24px;
  }
}

.top-news-layout__news {
  height: 100%;
}

@media screen and (max-width: 896px) {
  .top-news-layout__other {
    padding-left: 20px;
    padding-right: 20px;
  }
}

.top-nowonair__date {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.3em;
  font-size: 21px;
  font-family: var(--enFont);
  border: 5px solid var(--black);
  border-radius: 15px;
  background-color: #fff;
  padding: 0.2em;
  margin-bottom: 20px;
}
@media screen and (max-width: 640px) {
  .top-nowonair__date {
    margin-bottom: 10px;
  }
}
.top-nowonair__date span {
  font-size: 16px;
}
.top-nowonair__date span::before, .top-nowonair__date span::after {
  content: " ";
  display: inline;
  color: var(--black);
}
.top-nowonair__date span::before {
  content: "【";
}
.top-nowonair__date span::after {
  content: "】";
}
.top-nowonair__date .week--0 {
  color: var(--red);
}
.top-nowonair__date .week--6 {
  color: #0071BC;
}

.top-nowonair__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background-color: var(--black);
  padding: 10px;
  border-top-right-radius: 15px;
  border-top-left-radius: 15px;
}
.top-nowonair__head span {
  color: #ffffff;
  font-weight: bold;
  font-size: 18px;
  font-family: var(--enFont);
  text-transform: uppercase;
}
@media screen and (max-width: 1080px) {
  .top-nowonair__head span {
    font-size: 16px;
  }
}

.top-nowonair__body {
  padding: 30px 20px;
  background-color: #fff;
  border-bottom-right-radius: 15px;
  border-bottom-left-radius: 15px;
}
.top-nowonair__body p {
  display: block;
  background-color: var(--black);
  border-radius: 2.5em;
  text-align: center;
  color: #ffffff;
  font-size: 10px;
  padding: 0.8em 2em;
  font-weight: bold;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.5em 2.5em;
  margin-top: 1.5em;
  text-align: left;
}
.top-nowonair__body img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 300/200;
  border-radius: 15px;
}
.top-nowonair__body a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .top-nowonair__body a:hover {
    opacity: 0.7;
  }
}
.top-nowonair__body h4 {
  margin-top: 0.5em;
  font-size: 13px;
  font-weight: bold;
}
.top-nowonair__body .c-message {
  margin-top: 2em;
}
.top-nowonair__body .noprogram {
  width: 100%;
  margin-top: 0;
}
.top-nowonair__body .noprogram img {
  width: 100%;
}
.top-nowonair__body .marquee {
  overflow: hidden;
  width: 100%;
  height: 16px;
  position: relative;
}
.top-nowonair__body .marquee span {
  font-size: 13px;
  font-weight: bold;
  display: block;
  white-space: nowrap;
}
.top-nowonair__body .marquee__inner {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  display: flex;
  gap: 2rem;
}
.top-nowonair__body .marquee__anime {
  display: flex;
  gap: 2rem;
  animation: marquee 10s linear infinite;
}

@keyframes marquee {
  0% {
    translate: 0;
  }
  100% {
    translate: calc(-100% - 2rem);
  }
}
.top-news-control {
  display: flex;
  gap: 1px;
  padding-left: 40px;
  padding-right: 40px;
}
@media screen and (max-width: 896px) {
  .top-news-control {
    justify-content: center;
  }
}
@media screen and (max-width: 640px) {
  .top-news-control {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media screen and (max-width: 480px) {
  .top-news-control {
    padding-left: 15px;
    padding-right: 15px;
  }
}

.top-news-control__button {
  max-width: 100px;
  width: 100%;
  font-size: 14px;
  text-align: center;
  font-weight: bold;
  padding: 1em 0.5em;
  background-color: var(--black);
  color: #ffffff;
  cursor: pointer;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
}
.top-news-control__button.is_active {
  background-color: #ffffff;
  color: var(--black);
}
@media screen and (max-width: 640px) {
  .top-news-control__button {
    font-size: 10px;
    padding: 1em 0;
    width: 16.6666666667%;
  }
}
@media screen and (max-width: 480px) {
  .top-news-control__button {
    width: -moz-fit-content;
    width: fit-content;
    padding: 1.2em 0.6em;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
  }
}

.top-news-display {
  background-color: #fff;
  padding: 24px 40px 40px;
  border-radius: 30px;
}
@media screen and (max-width: 640px) {
  .top-news-display {
    padding: 6px 10px 16px;
    border-radius: 15px;
  }
}

.top-news-display__item {
  display: none;
}
.top-news-display__item.is_active {
  display: block;
}

.top-news-more {
  margin-top: 40px;
}
@media screen and (max-width: 640px) {
  .top-news-more {
    margin-top: 15px;
  }
}

.top-news-bnr {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px 40px;
  margin-top: 60px;
}
@media screen and (max-width: 896px) {
  .top-news-bnr {
    grid-template-columns: 1fr;
    margin-top: 32px;
  }
}
.top-news-bnr a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .top-news-bnr a:hover {
    opacity: 0.7;
  }
}
.top-news-bnr a img {
  width: 100%;
}

/* ---------------------------
  program
----------------------------- */
.top-program-section {
  background-color: var(--black);
  padding-top: 50px;
  padding-bottom: 80px;
}
@media screen and (max-width: 896px) {
  .top-program-section {
    padding-top: 40px;
  }
}
@media screen and (max-width: 640px) {
  .top-program-section {
    padding-top: 32px;
    padding-bottom: 32px;
  }
}

.top-program .swiper-wrapper {
  transition-timing-function: linear !important;
}

.top-program__item {
  width: 300px;
  min-width: 300px;
}
@media screen and (max-width: 640px) {
  .top-program__item {
    width: auto;
    min-width: inherit;
  }
}
.top-program__item a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .top-program__item a:hover {
    opacity: 0.7;
  }
}
.top-program__item img {
  width: 100%;
  height: 100%;
  aspect-ratio: 300/200;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 15px;
}
.top-program__item .time {
  font-size: 11px;
  text-align: left;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 1.5em;
  padding: 0.4em 2em;
}
.top-program__item .title {
  font-weight: bold;
  font-size: 15px;
  margin-top: 0.6em;
  color: #ffffff;
}
@media screen and (max-width: 640px) {
  .top-program__item .title {
    font-size: 14px;
  }
}

/* ---------------------------
  topics
----------------------------- */
.top-topics-section {
  background-color: #fff;
  padding: 50px 0 80px;
  border-top: 1px solid var(--borderColor);
}
@media screen and (max-width: 640px) {
  .top-topics-section {
    padding: 32px 0;
  }
}

.topics-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px 20px;
}
@media screen and (max-width: 1080px) {
  .topics-list {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 896px) {
  .topics-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .topics-list {
    grid-template-columns: repeat(1, 1fr);
    gap: 16px;
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media screen and (max-width: 640px) {
  .topics-list__item:nth-of-type(5), .topics-list__item:nth-of-type(6), .topics-list__item:nth-of-type(7), .topics-list__item:nth-of-type(8) {
    display: none;
  }
}
.topics-list__item a {
  display: block;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .topics-list__item a:hover {
    opacity: 0.7;
  }
}
.topics-list__item img {
  width: 100%;
  border-radius: 15px;
}
.topics-list__item .tag {
  background-color: var(--yellow);
  font-weight: bold;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.2em 1em;
  font-size: 12px;
  margin-top: 1.2em;
}
@media screen and (max-width: 640px) {
  .topics-list__item .tag {
    margin-top: 0.8em;
  }
}
.topics-list__item .title {
  font-weight: bold;
  font-size: 14px;
  margin-top: 0.8em;
}
@media screen and (max-width: 640px) {
  .topics-list__item .title {
    font-size: 13px;
    margin-top: 0.5em;
  }
}

.top-topics-more {
  margin-top: 40px;
}
@media screen and (max-width: 640px) {
  .top-topics-more {
    margin-top: 15px;
  }
}

/* ---------------------------
  single
----------------------------- */
.single-common-layout {
  display: grid;
  gap: 50px;
  grid-template-columns: 4fr 6fr;
  background-color: var(--yellow);
  padding: 60px;
  border-radius: 30px;
}
@media screen and (max-width: 1280px) {
  .single-common-layout {
    padding: 40px;
    gap: 40px;
  }
}
@media screen and (max-width: 896px) {
  .single-common-layout {
    grid-template-columns: repeat(1, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .single-common-layout {
    padding: 20px;
    gap: 20px;
    border-radius: 15px;
  }
}

.single-common-layout__content {
  background-color: #fff;
  padding: 40px;
  border-radius: 15px;
}
@media screen and (max-width: 640px) {
  .single-common-layout__content {
    padding: 20px;
  }
}

.single-common-layout__thumb img {
  width: 100%;
  border-radius: 15px;
  overflow: hidden;
}

.single-common-back {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 50px;
  padding-left: 10px;
  padding-right: 10px;
}
@media screen and (max-width: 640px) {
  .single-common-back {
    gap: 16px;
    margin-top: 40px;
  }
}
.single-common-back a {
  width: 50%;
  max-width: 160px;
  margin-inline: inherit;
}
@media screen and (max-width: 640px) {
  .single-common-back a {
    padding-left: 0;
    padding-right: 0;
  }
}

/* ---------------------------
  page - common
----------------------------- */
.page-wrapper {
  padding: 30px 0 80px;
}
@media screen and (max-width: 640px) {
  .page-wrapper {
    padding: 24px 0 40px;
  }
}
@media screen and (max-width: 640px) {
  .page-wrapper > .wrapper {
    padding-left: 10px;
    padding-right: 10px;
  }
}

.page-box {
  background-color: #fff;
  border-radius: 30px;
  padding: 30px 30px 80px;
}
@media screen and (max-width: 640px) {
  .page-box {
    border-radius: 15px;
    padding: 20px 20px 40px;
  }
}

.page-title {
  background-color: var(--black);
  border-radius: 15px;
  display: grid;
  grid-template-columns: max-content 1fr;
  align-items: center;
  gap: 0.8em;
  color: #fff;
  font-size: 24px;
  font-weight: bold;
  padding: 0.65em 1.2em;
  margin-bottom: 50px;
}
@media screen and (max-width: 640px) {
  .page-title {
    font-size: 18px;
    border-radius: 10px;
    margin-bottom: 30px;
  }
}
.page-title::before {
  content: "";
  display: block;
  width: 5px;
  height: 2em;
  background-color: var(--yellow);
}

@media screen and (max-width: 640px) {
  .grecaptcha-badge {
    bottom: 95px !important;
  }
}

.page-section p:not([class]) {
  font-size: 14px;
  font-weight: normal;
  line-height: 1.75;
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
.page-section * + .c-bar-head {
  margin-top: 2em;
  margin-bottom: 1em;
}
.page-section ul:not([class]) li {
  font-size: 14px;
  line-height: 1.75;
  padding-left: 1.1em;
  position: relative;
}
.page-section ul:not([class]) li::before {
  content: "●";
  display: inline;
  color: var(--yellow);
  font-size: 1em;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

.page-hgroup {
  font-size: 26px;
  margin-bottom: 1.5em;
}
@media screen and (max-width: 896px) {
  .page-hgroup {
    font-size: 24px;
  }
}
@media screen and (max-width: 640px) {
  .page-hgroup {
    font-size: 18px;
  }
}
.page-hgroup p {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.page-hgroup img {
  margin-inline: auto;
}
@media screen and (max-width: 640px) {
  .page-hgroup img {
    height: 110px;
    width: auto;
  }
}
.page-hgroup h2 {
  font-size: 1em;
  font-weight: bold;
  text-align: center;
  margin-top: 0.7em;
}

.page-hr {
  display: block;
  border: none;
  border-top: 1px solid var(--borderColor);
  width: calc(100% + 40px);
  margin-top: 60px;
  margin-bottom: 60px;
  margin-left: -20px;
  margin-right: -20px;
}
@media screen and (max-width: 640px) {
  .page-hr {
    margin-top: 40px;
    margin-bottom: 40px;
  }
}

/* ---------------------------
  about
----------------------------- */
.about-2cols {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  margin-top: 40px;
}
@media screen and (max-width: 896px) {
  .about-2cols {
    grid-template-columns: repeat(1, 1fr);
    gap: 24px;
    margin-top: 36px;
  }
}
.about-2cols figcaption {
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  margin-top: 0.8em;
}
.about-2cols img {
  margin-inline: auto;
  width: 100%;
}

.about-info {
  display: grid;
  grid-template-columns: 120px auto;
  margin-top: 10px;
}
@media screen and (max-width: 640px) {
  .about-info {
    grid-template-columns: 110px auto;
  }
}
.about-info dt, .about-info dd {
  padding: 1em 1.2em;
  font-size: 14px;
  font-weight: normal;
  border-bottom: 1px solid var(--borderColor);
}
.about-info dt:first-of-type, .about-info dd:first-of-type {
  border-top: 1px solid var(--borderColor);
}
@media screen and (max-width: 640px) {
  .about-info dt, .about-info dd {
    font-size: 13px;
    padding: 0.8em 1em;
  }
}
.about-info dt {
  background-color: var(--yellow);
}

.about-how {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
@media screen and (max-width: 896px) {
  .about-how {
    grid-template-columns: repeat(1, 1fr);
    gap: 30px;
  }
}
@media screen and (max-width: 896px) {
  .about-how img {
    margin-inline: auto;
  }
}
@media screen and (max-width: 640px) {
  .about-how .c-bar-head {
    margin-top: 1.5em;
  }
}

.about-links {
  margin-top: 1.5em;
}
.about-links li {
  font-size: 14px;
  font-weight: bold;
}
.about-links li + li {
  margin-top: 1em;
}
.about-links a {
  display: inline-block;
  padding-right: 1.5em;
  background-image: url(../img/common/tab.svg);
  background-repeat: no-repeat;
  background-size: 1em;
  background-position: right center;
  transition: -webkit-text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out, -webkit-text-decoration 0.1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .about-links a:hover {
    text-decoration: underline;
  }
}

/* ---------------------------
  club
----------------------------- */
.club-chart {
  margin-top: 32px;
  margin-inline: auto;
}
@media screen and (max-width: 640px) {
  .club-chart {
    margin-top: 20px;
  }
}

.club-links {
  max-width: 780px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 56px;
}
@media screen and (max-width: 896px) {
  .club-links {
    gap: 10px;
  }
}
@media screen and (max-width: 640px) {
  .club-links {
    grid-template-columns: 1fr;
    margin-top: 30px;
  }
}
.club-links a {
  display: block;
  text-align: center;
  padding: 1.3em 1em;
  background-color: var(--yellow);
  font-size: 14px;
  font-weight: bold;
  border: 1px solid var(--black);
  border-radius: 2em;
  width: 100%;
  max-width: 240px;
  margin-inline: auto;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .club-links a:hover {
    opacity: 0.7;
  }
}
.club-links--single {
  grid-template-columns: 1fr;
}
.club-links--single a {
  max-width: 320px;
}

.club-price {
  margin-top: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 260px;
  width: 100%;
  margin-inline: auto;
  font-size: 18px;
  padding: 1.4em 1em;
  border-radius: 15px;
  border: 1px solid var(--black);
}
@media screen and (max-width: 640px) {
  .club-price {
    font-size: 16px;
  }
}
.club-price dt, .club-price dd {
  font-weight: bold;
}
.club-price dt::after {
  content: "：";
  display: inline;
  font-size: 1em;
  font-weight: bold;
}

.club-price-notice {
  text-align: center;
  font-size: 14px;
  margin-top: 1.2em;
}
@media screen and (max-width: 640px) {
  .club-price-notice {
    font-size: 12px;
  }
}

/* ---------------------------
  form
----------------------------- */
.form-wrapper {
  background-color: var(--bgColor);
  padding: 60px;
  border-radius: 8px;
}
@media screen and (max-width: 1280px) {
  .form-wrapper {
    padding: 40px;
  }
}
@media screen and (max-width: 640px) {
  .form-wrapper {
    padding: 24px 20px;
  }
}

.form-head {
  margin-bottom: 1.5em;
  padding: 1em;
  background-color: var(--yellow);
  border-radius: 2em;
  text-align: center;
  font-size: 18px;
}
@media screen and (max-width: 640px) {
  .form-head {
    font-size: 16px;
  }
}

.form-lead {
  text-align: center;
  font-weight: bold;
  font-size: 14px;
  line-height: 1.75;
}
@media screen and (max-width: 640px) {
  .form-lead {
    font-size: 13px;
  }
}
.form-lead span {
  font-weight: bold;
  color: var(--red);
}

.form-link {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-top: 1.5em;
}

.form-container {
  background-color: #F7F7F7;
  margin-top: 30px;
  padding: 40px;
  border-radius: 30px;
}
@media screen and (max-width: 640px) {
  .form-container {
    padding: 20px 16px 24px;
    margin-top: 24px;
    border-radius: 15px;
  }
}

.form {
  max-width: 400px;
  margin-inline: auto;
}
.form input[type=text],
.form input[type=email],
.form textarea,
.form select {
  display: block;
  width: 100%;
  border: 3px solid #E6E6E6;
  border-radius: 5px;
  padding: 0.5em 1em;
  font-size: 16px;
  height: 50px;
}
.form input[type=text]::-moz-placeholder, .form input[type=email]::-moz-placeholder, .form textarea::-moz-placeholder, .form select::-moz-placeholder {
  color: #B3B3B3;
  font-weight: normal;
  font-family: var(--mainFont);
}
.form input[type=text]::placeholder,
.form input[type=email]::placeholder,
.form textarea::placeholder,
.form select::placeholder {
  color: #B3B3B3;
  font-weight: normal;
  font-family: var(--mainFont);
}
.form select {
  color: #1A1A1A;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  padding-right: 40px;
  background-image: url(../img/common/select.svg);
  background-size: 8px;
  background-position: right 16px center;
  background-repeat: no-repeat;
}
.form textarea {
  height: 180px;
  resize: vertical;
}
.form dt {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 10px;
}
.form dt span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 20px;
  background-color: var(--red);
  font-weight: bold;
  color: #ffffff;
  font-size: 10px;
  border-radius: 3px;
  white-space: nowrap;
}
.form dd {
  margin-bottom: 20px;
}
.form .half {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.form .short {
  display: flex;
  align-items: center;
  gap: 10px;
}
.form .short input {
  max-width: 70px;
}
.form .short span {
  font-size: 14px;
}
.form .middle input {
  max-width: 115px;
}
.form .radio {
  display: flex;
  align-items: center;
  gap: 20px;
}
.form .radio label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.form .radio input[type=radio] {
  cursor: pointer;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  display: block;
  width: 20px;
  height: 20px;
  border: 3px solid #E6E6E6;
  border-radius: 50%;
  background-color: #fff;
  margin: 0;
  padding: 0;
  position: relative;
}
.form .radio input[type=radio]:checked::after {
  content: "";
  display: block;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  transform: translate(-50%, -50%);
  background-color: var(--black);
}
.form .submit {
  max-width: 200px;
  width: 100%;
  padding: 1.2em;
  margin-top: 32px;
  cursor: pointer;
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .form .submit:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 640px) {
  .form .submit {
    margin-top: 24px;
  }
}

.form-input-screen:has(+ .mw_wp_form_complete) {
  display: none;
}

.mw_wp_form_complete h2 {
  text-align: center;
  color: var(--black);
  font-size: 24px;
  margin-bottom: 1em;
}
@media screen and (max-width: 640px) {
  .mw_wp_form_complete h2 {
    font-size: 20px;
  }
}
.mw_wp_form_complete p {
  text-align: center;
  font-size: 14px;
  line-height: 2;
}
.mw_wp_form_complete .c-circle {
  margin-top: 32px;
  max-width: 200px;
  margin-inline: auto;
}
@media screen and (max-width: 640px) {
  .mw_wp_form_complete .c-circle {
    margin-top: 24px;
  }
}

/* ---------------------------
  message
----------------------------- */
.message-2cols {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
@media screen and (max-width: 1080px) {
  .message-2cols {
    grid-template-columns: repeat(1, 1fr);
    gap: 0;
  }
}
@media screen and (max-width: 1080px) {
  .message-2cols > div:first-of-type {
    order: 2;
  }
}

.message-head {
  max-width: 260px;
  margin-inline: auto;
  margin-bottom: 2.3em;
}
@media screen and (max-width: 640px) {
  .message-head {
    margin-bottom: 1.5em;
  }
}

.message-fax {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-weight: bold;
  font-family: var(--enFont);
  font-size: 32px;
  line-height: 1;
  padding-left: 42px;
  background-image: url(../img/common/fax.svg);
  background-size: 32px;
  background-position: left center;
  background-repeat: no-repeat;
}

.message-fax-notice {
  text-align: center;
  margin-top: 1.2em;
  font-size: 13px;
  font-weight: bold;
}

/* ---------------------------
  404
----------------------------- */
.page404 h2 img {
  margin-inline: auto;
}
.page404 h3 {
  margin-top: 1.5em;
  text-align: center;
  font-weight: bold;
  font-size: 21px;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 640px) {
  .page404 h3 {
    font-size: 18px;
  }
}
.page404 p {
  text-align: center;
}
@media screen and (max-width: 640px) {
  .page404 p {
    font-size: 14px;
  }
}
.page404 a {
  max-width: 120px;
  margin-inline: auto;
  margin-top: 32px;
}

.privacy h2 {
  padding-left: 0.5em;
  line-height: 1.2;
  border-left: 4px solid var(--black);
  margin-bottom: 1em;
  margin-top: 2em;
  font-size: 16px;
}
.privacy p {
  font-size: 14px;
  line-height: 1.75;
  margin-bottom: 1em;
}

/* ---------------------------
  news - archive
----------------------------- */
.news-list__item {
  border-bottom: 1px solid var(--borderColor);
}
.news-list__item a {
  display: grid;
  grid-template-columns: 100px 80px auto;
  align-items: center;
  gap: 20px;
  padding: 20px;
}
@media screen and (max-width: 896px) {
  .news-list__item a {
    padding: 20px 10px;
  }
}
@media screen and (max-width: 640px) {
  .news-list__item a {
    display: flex;
    flex-wrap: wrap;
    padding: 12px 10px;
    gap: 8px 10px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .news-list__item a:hover .title {
    text-decoration: underline;
  }
}
.news-list__item time {
  display: block;
  font-size: 14px;
  font-weight: bold;
}
@media screen and (max-width: 640px) {
  .news-list__item time {
    font-size: 12px;
  }
}
.news-list__item .title {
  font-size: 14px;
  font-weight: bold;
}
@media screen and (max-width: 640px) {
  .news-list__item .title {
    font-size: 13px;
    width: 100%;
  }
}

.news-category {
  display: flex;
  gap: 1px;
  padding-left: 40px;
}
@media screen and (max-width: 640px) {
  .news-category {
    padding-left: 10px;
  }
}

.news-category__item a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 40px;
  background-color: #E6E6E6;
  font-weight: bold;
  font-size: 13px;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
}
@media screen and (max-width: 640px) {
  .news-category__item a {
    font-size: 10px;
    width: -moz-fit-content;
    width: fit-content;
    padding: 0 0.5em;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
  }
}
.news-category__item.current a {
  background-color: var(--black);
  color: #ffffff;
}

.news-list-container {
  border: 1px solid var(--borderColor);
  padding: 20px 40px 40px;
  border-radius: 8px;
}
@media screen and (max-width: 640px) {
  .news-list-container {
    padding: 20px 16px;
    padding-top: 10px;
  }
}

/* ---------------------------
  page navi
----------------------------- */
.wp-pagenavi {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  gap: 5px;
}
@media screen and (max-width: 640px) {
  .wp-pagenavi {
    margin-top: 20px;
  }
}
.wp-pagenavi a,
.wp-pagenavi span {
  font-size: 13px;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  width: 30px;
  border: 1px solid var(--gray);
  transition: 0.3s ease-in-out;
  margin: 0;
}
.wp-pagenavi span.current {
  background-color: var(--black);
  color: #ffffff;
  border-color: var(--skyBlue);
}
.wp-pagenavi a {
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .wp-pagenavi a:hover {
    opacity: 0.7;
  }
}
.wp-pagenavi .nextpostslink,
.wp-pagenavi .previouspostslink {
  text-indent: -9999px;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: 5px;
  background-position: center;
}
.wp-pagenavi .previouspostslink {
  background-image: url(../img/common/post_prev.svg);
}
.wp-pagenavi .nextpostslink {
  background-image: url(../img/common/post_next.svg);
}

/* ---------------------------
  news - single
----------------------------- */
.news-single__head {
  margin-bottom: 30px;
}
.news-single__head h1 {
  font-size: 21px;
  line-height: 1.4;
  font-weight: bold;
  margin-bottom: 1em;
}
@media screen and (max-width: 640px) {
  .news-single__head h1 {
    margin-bottom: 0.8em;
  }
}
.news-single__head .meta {
  display: flex;
  align-items: center;
  gap: 10px;
}
.news-single__head time {
  font-size: 14px;
  font-weight: bold;
}
@media screen and (max-width: 640px) {
  .news-single__head time {
    font-size: 12px;
  }
}

.news-single__body {
  border-bottom: 1px solid var(--borderColor);
  border-top: 1px solid var(--borderColor);
  padding: 20px 0 60px;
}

.news-single__back {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
}
.news-single__back a {
  transition: opacity 0.2s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .news-single__back a:hover {
    opacity: 0.7;
  }
}
.news-single__back .archive {
  background-color: var(--black);
  color: #ffffff;
  font-weight: bold;
  text-align: center;
  font-size: 13px;
  padding: 0.5em 1em;
}
.news-single__back .prev, .news-single__back .next {
  border: 1px solid var(--gray);
  color: transparent;
  text-indent: -9999px;
  overflow: hidden;
  width: 30px;
  height: 30px;
  display: block;
  background-repeat: no-repeat;
  background-size: 4px;
  background-position: center;
}
.news-single__back .prev {
  background-image: url(../img/common/post_prev.svg);
}
.news-single__back .next {
  background-image: url(../img/common/post_next.svg);
}

/* ---------------------------
  program - archive
----------------------------- */
.program-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
@media screen and (max-width: 896px) {
  .program-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .program-list {
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
  }
}

.program-list__item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 5;
  gap: 16px;
  background-color: var(--yellow);
  border-radius: 30px;
  padding: 30px;
}
@media screen and (max-width: 640px) {
  .program-list__item {
    max-width: 380px;
    margin-inline: auto;
    border-radius: 15px;
    padding: 20px;
  }
}
.program-list__item a {
  display: block;
}
.program-list__item img {
  border-radius: 15px;
  overflow: hidden;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 300/200;
}
.program-list__item h2 {
  font-size: 16px;
  font-weight: bold;
  color: var(--black);
  text-align: center;
  line-height: 1.2;
  padding-top: 0.4em;
  place-content: center;
}
@media screen and (max-width: 640px) {
  .program-list__item h2 {
    font-size: 15px;
  }
}
.program-list__item .sponsor {
  font-size: 13px;
  font-weight: bold;
  text-align: center;
}
.program-list__item .sponsor dt {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: 11px;
  padding: 0.3em 0.7em;
  margin-bottom: 0.5em;
  background-color: #ffffff;
  border: 1px solid var(--black);
  font-weight: bold;
  text-align: center;
  white-space: nowrap;
}
.program-list__item .sponsor dd {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: 13px;
  font-weight: bold;
}
.program-list__item .sponsor a {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: 13px;
  font-weight: bold;
  transition: -webkit-text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out, -webkit-text-decoration 0.1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .program-list__item .sponsor a:hover {
    text-decoration: underline;
  }
}
.program-list__item .time {
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: fit-content;
  margin-inline: auto;
  font-size: 10px;
  padding: 0.5em 2.5em;
  background-color: var(--black);
  color: #ffffff;
  font-weight: bold;
  text-align: center;
  border-radius: 2.5em;
}
.program-list__item .more {
  padding-top: 20px;
}
.program-list__item .more a {
  max-width: 160px;
  width: 100%;
  padding: 0.8em;
}

/* ---------------------------
  program - single
----------------------------- */
.program-single {
  padding-left: 14px;
}
@media screen and (max-width: 640px) {
  .program-single {
    padding-left: 0;
  }
}
.program-single h1 {
  font-size: 24px;
  font-weight: bold;
}
@media screen and (max-width: 896px) {
  .program-single h1 {
    font-size: 20px;
  }
}
@media screen and (max-width: 640px) {
  .program-single h1 {
    font-size: 18px;
  }
}
.program-single .time {
  display: inline-block;
  font-size: 11px;
  margin-top: 1.2em;
  padding: 0.5em 1.5em;
  background-color: var(--black);
  color: #ffffff;
  font-weight: bold;
  text-align: center;
  border-radius: 2.5em;
}
.program-single .personality {
  margin-top: 30px;
  padding-left: 32px;
  background-image: url(../img/common/mic.svg);
  background-repeat: no-repeat;
  background-size: 21px;
  background-position: left center;
  display: flex;
  gap: 10px;
}
.program-single .personality a {
  font-size: 12px;
  padding: 0.5em 1.5em;
}
.program-single .text {
  padding: 1em;
  font-weight: bold;
  font-size: 14px;
  line-height: 1.8;
  margin: 1em 0;
  border-top: 1px solid var(--borderColor);
  border-bottom: 1px solid var(--borderColor);
  margin-left: -14px;
}
@media screen and (max-width: 640px) {
  .program-single .text {
    margin-left: 0;
    font-size: 13px;
    padding-left: 0;
    padding-right: 0;
  }
}
.program-single .sponsor {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 0.7em;
  font-size: 13px;
  font-weight: bold;
}
.program-single .sponsor a {
  font-size: 13px;
  font-weight: bold;
  transition: -webkit-text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out, -webkit-text-decoration 0.1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .program-single .sponsor a:hover {
    text-decoration: underline;
  }
}
.program-single .sponsor span {
  display: inline-block;
  font-size: 11px;
  padding: 0.5em 1.2em;
  background-color: var(--black);
  color: #ffffff;
  font-weight: bold;
  text-align: center;
  border-radius: 2.5em;
  white-space: nowrap;
}
.program-single .message {
  margin-top: 32px;
  max-width: 200px;
  width: 100%;
  margin-inline: auto;
}

/* ---------------------------
  personality - archive
----------------------------- */
.personality-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
@media screen and (max-width: 896px) {
  .personality-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 640px) {
  .personality-list {
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
  }
}

.personality-list__item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 20px;
  border-radius: 30px;
  padding: 30px;
  background-color: var(--yellow);
}
@media screen and (max-width: 640px) {
  .personality-list__item {
    max-width: 380px;
    margin-inline: auto;
    border-radius: 15px;
    padding: 20px;
  }
}
.personality-list__item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  aspect-ratio: 300/200;
  overflow: hidden;
  border-radius: 15px;
}
.personality-list__item h2 {
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}
.personality-list__item .en {
  font-size: 12px;
  font-weight: bold;
  text-align: center;
  margin-top: 0.3em;
}
@media screen and (max-width: 640px) {
  .personality-list__item .en {
    font-size: 11px;
  }
}
.personality-list__item .more {
  max-width: 200px;
  width: 100%;
  margin-inline: auto;
}

/* ---------------------------
  personality - single
----------------------------- */
.personality-single h1 {
  font-size: 24px;
  font-weight: bold;
  padding-left: 14px;
}
@media screen and (max-width: 896px) {
  .personality-single h1 {
    font-size: 20px;
  }
}
@media screen and (max-width: 640px) {
  .personality-single h1 {
    font-size: 18px;
    padding-left: 0;
  }
}
.personality-single .en {
  font-size: 13px;
  font-weight: normal;
  padding-left: 14px;
  color: #777777;
  margin-top: 0.4em;
}
@media screen and (max-width: 640px) {
  .personality-single .en {
    font-size: 11px;
    padding-left: 0;
  }
}
.personality-single .text {
  padding: 1em;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.8;
  margin-top: 1em;
  border-bottom: 1px solid var(--borderColor);
  border-top: 1px solid var(--borderColor);
}
@media screen and (max-width: 640px) {
  .personality-single .text {
    padding-left: 0;
    padding-right: 0;
    font-size: 13px;
  }
}
.personality-single dl {
  display: grid;
  grid-template-columns: 118px auto;
}
@media screen and (max-width: 640px) {
  .personality-single dl {
    grid-template-columns: 80px auto;
  }
}
.personality-single dt, .personality-single dd {
  padding: 1em;
  font-weight: bold;
  font-size: 14px;
  border-bottom: 1px solid var(--borderColor);
}
@media screen and (max-width: 640px) {
  .personality-single dt, .personality-single dd {
    padding-left: 0;
    padding-right: 0;
    font-size: 12px;
  }
}

/* ---------------------------
  timetable
----------------------------- */
.timetable-wrapper {
  background-color: var(--bgColor);
  border-radius: 15px;
  padding: 60px;
}
@media screen and (max-width: 1280px) {
  .timetable-wrapper {
    padding: 40px;
  }
}
@media screen and (max-width: 640px) {
  .timetable-wrapper {
    padding: 30px 20px;
    margin-left: -20px;
    margin-right: -20px;
    border-radius: 0;
  }
}

.timetable-tablist {
  padding-left: 158px;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 32px;
}
@media screen and (max-width: 896px) {
  .timetable-tablist {
    padding-left: 100px;
  }
}
@media screen and (max-width: 640px) {
  .timetable-tablist {
    padding-left: 0;
    margin-bottom: 24px;
  }
}
.timetable-tablist button {
  display: block;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
  font-size: 21px;
  font-weight: bold;
  cursor: pointer;
  background-color: #999999;
  color: #ffffff;
  text-transform: uppercase;
  position: relative;
}
@media screen and (max-width: 896px) {
  .timetable-tablist button {
    font-size: 16px;
    height: 50px;
  }
}
@media screen and (max-width: 640px) {
  .timetable-tablist button {
    font-size: 12px;
    height: 40px;
  }
}
.timetable-tablist button.is_active {
  background-color: var(--red);
}
.timetable-tablist button.is_active::after {
  content: "";
  width: 0;
  height: 0;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-top: 15px solid var(--red);
  border-bottom: 0;
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 1;
  transform: translate(-50%, 99%);
}
@media screen and (max-width: 640px) {
  .timetable-tablist button.is_active::after {
    border-right-width: 6px;
    border-left-width: 6px;
    border-top-width: 9px;
  }
}

.timetable-tabpanel {
  display: none;
}
.timetable-tabpanel.is_active {
  display: block;
}
.timetable-tabpanel dl {
  display: grid;
  gap: 5px 40px;
  grid-template-columns: 120px auto;
}
@media screen and (max-width: 896px) {
  .timetable-tabpanel dl {
    grid-template-columns: 80px auto;
    gap: 5px 20px;
  }
}
@media screen and (max-width: 640px) {
  .timetable-tabpanel dl {
    grid-template-columns: 56px auto;
    gap: 5px 10px;
  }
}
.timetable-tabpanel dd .timetable-item:last-of-type {
  margin-bottom: 60px;
}
@media screen and (max-width: 1280px) {
  .timetable-tabpanel dd .timetable-item:last-of-type {
    margin-bottom: 40px;
  }
}
@media screen and (max-width: 640px) {
  .timetable-tabpanel dd .timetable-item:last-of-type {
    margin-bottom: 20px;
  }
}
.timetable-tabpanel dt {
  width: 120px;
  min-height: 190px;
  padding-top: 48px;
  font-size: 21px;
  font-weight: bold;
  font-family: var(--enFont);
  text-align: center;
  background-color: var(--black);
  color: #ffffff;
}
@media screen and (max-width: 896px) {
  .timetable-tabpanel dt {
    font-size: 17px;
    width: 100%;
    min-height: inherit;
    padding-top: 1.8em;
  }
}
@media screen and (max-width: 640px) {
  .timetable-tabpanel dt {
    font-size: 14px;
  }
}

.timetable-item {
  background-color: #fff;
  padding: 30px;
}
@media screen and (max-width: 640px) {
  .timetable-item {
    padding: 16px;
  }
}
.timetable-item + .timetable-item {
  margin-top: 10px;
}
.timetable-item h2 {
  font-size: 24px;
  font-weight: bold;
  color: var(--black);
}
@media screen and (max-width: 896px) {
  .timetable-item h2 {
    font-size: 20px;
  }
}
@media screen and (max-width: 640px) {
  .timetable-item h2 {
    font-size: 16px;
  }
}
@media screen and (max-width: 640px) {
  .timetable-item h2 {
    font-size: 14px;
  }
}
.timetable-item h2 a {
  font-size: 24px;
  font-weight: bold;
  color: var(--black);
  transition: -webkit-text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out, -webkit-text-decoration 0.1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .timetable-item h2 a:hover {
    text-decoration: underline;
  }
}
@media screen and (max-width: 896px) {
  .timetable-item h2 a {
    font-size: 20px;
  }
}
@media screen and (max-width: 640px) {
  .timetable-item h2 a {
    font-size: 16px;
  }
}
.timetable-item .sponsor {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 0.7em;
  font-size: 13px;
  font-weight: bold;
}
@media screen and (max-width: 640px) {
  .timetable-item .sponsor {
    font-size: 12px;
  }
}
.timetable-item .sponsor a {
  font-size: 13px;
  font-weight: bold;
  transition: -webkit-text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out;
  transition: text-decoration 0.1s ease-in-out, -webkit-text-decoration 0.1s ease-in-out;
}
@media (hover: hover) and (pointer: fine) {
  .timetable-item .sponsor a:hover {
    text-decoration: underline;
  }
}
@media screen and (max-width: 640px) {
  .timetable-item .sponsor a {
    font-size: 12px;
  }
}
.timetable-item .sponsor span {
  display: inline-block;
  font-size: 11px;
  padding: 0.5em 1.2em;
  background-color: var(--yellow);
  color: #000000;
  font-weight: bold;
  text-align: center;
  border-radius: 2.5em;
  white-space: nowrap;
}
@media screen and (max-width: 640px) {
  .timetable-item .sponsor span {
    font-size: 10px;
  }
}
.timetable-item .time {
  display: inline-block;
  font-size: 11px;
  margin-bottom: 1em;
  padding: 0.5em 1.5em;
  background-color: var(--black);
  color: #ffffff;
  font-weight: bold;
  text-align: center;
  border-radius: 2.5em;
}
@media screen and (max-width: 640px) {
  .timetable-item .time {
    font-size: 10px;
  }
}

/* 画像を親枠内で拡大 */
.img-frame {
  overflow: hidden;
  display: inline-block; /* 任意：中央寄せなどに便利 */
}

/* 共通設定 */
.img-zoom-hover {
  display: block;
  max-width: 100%;
  height: auto;
  transform-origin: center center;
  backface-visibility: hidden;
  will-change: transform;
  transition: transform 0.35s cubic-bezier(.2,.8,.2,1);
}

/* PCホバー用 */
@media (hover: hover) and (pointer: fine) {
  .img-zoom-hover:hover {
    transform: scale(1.05);
  }
}

/* タッチ端末用: タップで即時拡大 */
@media (hover: none) and (pointer: coarse) {
  .img-zoom-hover:active {
    transform: scale(1.05);
    transition: transform 0.18s linear;
  }
}

/* アクセシビリティ: アニメーション無効希望ユーザー */
@media (prefers-reduced-motion: reduce) {
  .img-zoom-hover {
    transition: none !important;
    transform: none !important;
  }
}
