@charset "utf-8";
/* CSS Document */
/*セクション共通の左右パディング(ファーストビュー・バナー帯を除く帯セクションで使用)*/
.section-padding {
  padding: 0 40px;
}
@media (max-width: 768px) {
  .section-padding {
    padding: 0 24px;
  }
}
@media (max-width: 450px) {
  .section-padding {
    padding: 0 16px;
  }
}
/*セクション間の余白(margin)。FV直下は80px、それ以外は120px。バナー帯には適用しない*/
.section-gap {
  margin-top: 120px;
}
.section_top + .section-gap {
  margin-top: 80px;
}
/*セクション間の仕切り線(グラデーション1px、上120px/下40pxの余白つき)*/
.section-divider {
  padding: 0 40px;
  margin: 80px 0 40px;
}
@media (max-width: 768px) {
  .section-divider {
    padding: 0 24px;
  }
  .section-gap {
  margin-top: 80px;
  }
  .section_top + .section-gap {
  margin-top: 64px;
  }
}
@media (max-width: 599px) {
  /*section_top__playerのbottom(38.4dvh - 416px)と連動。
    プレイヤーがFV境界からはみ出す量(416px - 38.4dvh、はみ出さない場合は0)を
    基本の64pxに追加して確保する。画面が低い機種ほどはみ出しが増えるため、
    幅ではなく高さ(dvh)基準で計算する*/
  .section_top + .section-gap {
    margin-top: calc(64px + max(0px, 416px - 38.4dvh));
  }
}
@media (max-width: 450px) {
  .section-divider {
    padding: 0 16px;
  }
}
.section-divider__line {
  max-width: 1080px;
  height: 1px;
  margin: 0 auto;
  background: linear-gradient(to right, #DC6A9A, #BBA1CB, #718CC7, #004EA2);
}
/*セクションタイトル下マージン共通*/
.section-title-margin {
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .section-title-margin {
    margin-bottom: 16px;
  }
}
@media (max-width: 450px) {
  .section-title-margin {
    margin-bottom: 24px;
  }
}
@media (max-width: 768px) {
  .section-link-margin {
    margin-top: 40px;
  }
}
@media (max-width: 450px) {
  .section-link-margin {
    margin-top: 24px;
  }
}
/*トップイメージ*/
.section_top {
  position: relative;
  height: 100dvh;
  min-height: 500px;
}
.section_top__image,
.section_top__image-tablet,
.section_top__image-mobile {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative;
  z-index: 300;
  display: block;
}
.section_top__catch {
  position: absolute;
  top: 28%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 350;
  margin: 0;
  width: 90%;
  max-width: 900px;
  font-family: 'Baloo 2', 'Notable', sans-serif;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.06em;
  text-align: center;
  color: #fff;
  /* text-shadow: 0 2px 12px rgba(0, 0, 0, .45), 0 0 26px rgba(0, 0, 0, .25); */
}
.section_top__catch-break {
  display: none;
}
.section_top__catch-wave {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 340;
  display: none; /* 一時的に非表示 */
  align-items: center;
  justify-content: center;
  gap: clamp(3px, 0.6vw, 7px);
  width: 90%;
  max-width: 900px;
  height: clamp(70px, 10vw, 140px);
  pointer-events: none;
  opacity: 0.88;
  mix-blend-mode: screen;
}
.section_top__catch-wave span {
  flex: 0 0 auto;
  width: clamp(3px, 0.5vw, 6px);
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #DC6A9A, #BBA1CB, #718CC7, #004EA2, #BBA1CB, #DC6A9A);
  background-size: 500% 100%;
  transform: scaleY(var(--h, 0.5));
  animation: section_top_wave_flow 8s linear infinite, section_top_wave_bounce 2.2s ease-in-out infinite;
}
.section_top__catch-wave span:nth-child(8n+1) { --h: 0.35; animation-delay: 0s, 0s; }
.section_top__catch-wave span:nth-child(8n+2) { --h: 0.7; animation-delay: -1s, -0.6s; }
.section_top__catch-wave span:nth-child(8n+3) { --h: 0.95; animation-delay: -2s, -1.1s; }
.section_top__catch-wave span:nth-child(8n+4) { --h: 0.5; animation-delay: -3s, -1.7s; }
.section_top__catch-wave span:nth-child(8n+5) { --h: 0.8; animation-delay: -4s, -0.3s; }
.section_top__catch-wave span:nth-child(8n+6) { --h: 0.4; animation-delay: -5s, -0.9s; }
.section_top__catch-wave span:nth-child(8n+7) { --h: 0.65; animation-delay: -6s, -1.4s; }
.section_top__catch-wave span:nth-child(8n) { --h: 0.9; animation-delay: -7s, -1.9s; }
@keyframes section_top_wave_flow {
  from {
    background-position: 0 center;
  }
  to {
    background-position: 500% center;
  }
}
@keyframes section_top_wave_bounce {
  0%, 100% {
    transform: scaleY(var(--h, 0.5));
  }
  50% {
    transform: scaleY(calc(var(--h, 0.5) * 0.55));
  }
}
@media (prefers-reduced-motion: reduce) {
  .section_top__catch-wave span {
    animation: none;
  }
}
@media (max-width: 768px) {
  .section_top__catch {
    top: 18%;
    font-size: 3rem;
  }
}
@media (max-width: 599px) {
  .section_top__catch {
    white-space: normal;
    width: 80%;
    top: 20%;
    font-size: 2.8rem;
  }
  .section_top__catch-break {
    display: inline;
  }
  .section_top__catch-wave {
    width: 80%;
    height: clamp(50px, 20vw, 90px);
    gap: 3px;
  }
}
.section_top__image-mobile {
  display: none;
}
.section_top__image-tablet {
  display: none;
}
.section_top__player {
  position: absolute;
  left: 50%;
  /*769px以上のPC幅向け。769px〜1280pxで4px→32pxへ線形補間、1280px以降は固定32pxで頭打ち。
    600〜768px(タブレット幅)はこのclampの下限(4px)ではなく、下の@media (max-width: 768px)の
    固定40pxが優先される。599px以下はさらにモバイル用の別ルールで上書きされる*/
  bottom: clamp(4px, calc(4px + (100vw - 769px) * 44 / 511), 32px);
  transform: translateX(-50%);
  z-index: 400;
  display: flex;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
  overflow: hidden;
  max-width: calc(100% - var(--gutter-x) * 2);
}
.section_top__player-loading {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1c1c1c;
  opacity: 1;
  visibility: visible;
  transition: opacity .4s ease, visibility 0s linear 0s;
}
.section_top__player:not(.is-loading) .section_top__player-loading {
  opacity: 0;
  visibility: hidden;
  transition: opacity .4s ease, visibility 0s linear .4s;
}
.section_top__player-spinner {
  position: relative;
  width: 30px;
  height: 30px;
}
.section_top__player-spinner span {
  position: absolute;
  top: 0;
  left: 50%;
  width: 2.5px;
  height: 8px;
  margin-left: -1.25px;
  border-radius: 2px;
  background: #fff;
  transform-origin: 50% 15px;
  animation: section_top_player_spinner_fade 1s linear infinite;
}
.section_top__player-spinner span:nth-child(1) { transform: rotate(0deg); animation-delay: -0.875s; }
.section_top__player-spinner span:nth-child(2) { transform: rotate(45deg); animation-delay: -0.75s; }
.section_top__player-spinner span:nth-child(3) { transform: rotate(90deg); animation-delay: -0.625s; }
.section_top__player-spinner span:nth-child(4) { transform: rotate(135deg); animation-delay: -0.5s; }
.section_top__player-spinner span:nth-child(5) { transform: rotate(180deg); animation-delay: -0.375s; }
.section_top__player-spinner span:nth-child(6) { transform: rotate(225deg); animation-delay: -0.25s; }
.section_top__player-spinner span:nth-child(7) { transform: rotate(270deg); animation-delay: -0.125s; }
.section_top__player-spinner span:nth-child(8) { transform: rotate(315deg); animation-delay: 0s; }
@keyframes section_top_player_spinner_fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0.2;
  }
}
@media (prefers-reduced-motion: reduce) {
  .section_top__player-spinner span {
    animation: none;
    opacity: .6;
  }
}
.section_top__player-panel {
  position: relative;
  width: 320px;
  min-width: 160px;
  overflow: hidden;
}
.section_top__player-panel + .section_top__player-panel {
  border-left: 1px solid #383838;
}
.section_top__player-panel iframe {
  position: absolute;
  left: 0;
  width: 350px;
  height: 1000px;
  border: none;
  pointer-events: auto;
}
.section_top__player-panel--controls {
  width: 275px;
  min-width: 275px;
  height: 118px;
  flex-shrink: 0;
}
.section_top__player-controls-viewport {
  position: relative;
  width: 275px;
  height: 118px;
  overflow: hidden;
}
.section_top__player-panel--controls iframe {
  left: -35px;
  top: -370px;
}
.section_top__player-info {
  display: flex;
  flex-direction: row;
  min-width: 0;
}
.section_top__player-panel--controls + .section_top__player-info {
  border-left: 1px solid #383838;
}
.section_top__player-panel--onair {
  height: 118px;
  background: #1c1c1c;
  padding: 0 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
.section_top__player-panel--next {
  height: 118px;
  background: #1c1c1c;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.section_top__player-next-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.section_top__player-label {
  margin: 0;
  color: #DC6A9A;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.section_top__player-label--onair {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.section_top__player-live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #DC6A9A;
  flex-shrink: 0;
  animation: section_top_player_live_pulse 1.6s ease-in-out infinite;
}
@keyframes section_top_player_live_pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: .35;
  }
}
@media (prefers-reduced-motion: reduce) {
  .section_top__player-live-dot {
    animation: none;
  }
}
.section_top__player-time {
  margin: 0;
  min-width: 0;
  color: #9AA5B1;
  font-size: 1.3rem;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.section_top__player-title {
  margin: 0;
  min-width: 0;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 600;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.section_top__player-title-track {
  display: inline-flex;
  width: max-content;
  gap: 48px;
}
.section_top__player-title-track:not(.is-marquee) .section_top__player-title-text:last-child {
  display: none;
}
.section_top__player-title-track.is-marquee {
  animation-name: section_top_player_title_loop;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@keyframes section_top_player_title_loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .section_top__player-title-track.is-marquee {
    animation: none;
  }
}
.section_top__player-panel--next .section_top__player-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 1.2rem;
  text-transform: uppercase;
}
.section_top__player-panel--next .section_top__player-title {
  font-size: 1.4rem;
  font-weight: 500;
}
.section_top__jcba-badge {
  display: block;
  align-self: center;
  line-height: 0;
  opacity: .85;
  transition: opacity .2s ease;
}
.section_top__jcba-badge:hover {
  opacity: 1;
}
.section_top__jcba-badge img {
  display: block;
  width: 110px;
  height: auto;
}
@media (max-width: 768px) {
  .section_top__player {
    bottom: 40px;
  }
  .section_top__player-panel--controls {
    width: auto;
    height: auto;
    overflow: visible;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #060606;
  }
  .section_top__player-info {
    flex-direction: column;
    width: 320px;
    min-width: 160px;
  }
  .section_top__player-panel.section_top__player-panel--onair,
  .section_top__player-panel.section_top__player-panel--next {
    width: auto;
  }
  .section_top__player-panel + .section_top__player-panel {
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, .12);
  }
}
@media (max-width: 599px) {
  .section_top__player {
    flex-direction: column;
    width: 320px;
    /*固定pxだと画面が低い機種(iPhone SEなど)でキャラクターの手と重なるため、
      画面の高さ(dvh)に比例させてキャラの手の位置(下から約38.4%)から常に約61px下に固定*/
    bottom: calc(38.4dvh - 416px);
  }
  .section_top__player-panel--controls + .section_top__player-info {
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, .12);
  }
  .section_top__player-info {
    width: auto;
  }
}
@media (min-width: 600px) and (max-width: 768px) {
  .section_top__image {
    display: none;
  }
  .section_top__image-tablet {
    display: block;
  }
}
@media (max-width: 599px) {
  .section_top__image {
    display: none;
  }
  .section_top__image-mobile {
    display: block;
  }
}
/*タイムテーブル(ON AIR)*/
.section_time-table {
  background: #F7F9FC;
  color: #4A5568;
  scroll-margin-top: 80px;
}
.section_time-table__area {
  max-width: 1080px;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  column-gap: 12px;
  grid-template-areas:
    "title links"
    "calendar calendar";
}
.section_time-table__area p {
  font-size: 1.8rem;
  margin-top: 50px;
  color: #4A5568;
}
.section_time-table__area p a {
  text-decoration: none;
  color: inherit;
}
@media (max-width: 768px) {
  .section_time-table__area {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "calendar"
      "links";
  }
  .section_time-table__area p {
    font-size: 1.6rem;
  }
}
.section_time-table__title {
  grid-area: title;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  text-align: left;
}
@media (max-width: 768px) {
  .section_time-table__title {
    justify-content: center;
  }
}
.section_time-table__title-group {
  display: flex;
  align-items: center;
  gap: 24px;
}
@media (max-width: 768px) {
  .section_time-table__title-group {
    display: block;
    text-align: center;
  }
  .section_time-table__title-group .page-title__en {
    display: block;
  }
}
.section_time-table__title-group .page-title__en.is-away {
  color: #9AA5B1;
  transition: color .2s;
}
.section_time-table__title-group .page-title__en.is-away .page-title__en-letter {
  color: #9AA5B1;
  transition: color .2s;
}
.section_time-table__date {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.2;
  color: #4A5568;
}
@media (max-width: 768px) {
  .section_time-table__date {
    display: inline-flex;
    margin-top: 24px;
  }
}
.section_time-table__weekday {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 50%;
  color: white;
  line-height: 1;
  background: #DC6A9A;
  padding: 8px;
  font-size: 16px;
  transition: background-color .2s;
}
.section_time-table__weekday.is-away {
  background: #9AA5B1;
}
.section_time-table__date-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: none;
  background: none;
  color: #DC6A9A;
  font-size: 1.4rem;
  cursor: pointer;
  transition: opacity .2s;
}
.section_time-table__date-nav:hover {
  opacity: .8;
}
.section_time-table__title-links {
  grid-area: links;
  align-self: start;
  display: flex;
  gap: 12px;
}
@media (max-width: 768px) {
  .section_time-table__title-links {
    justify-content: center;
    margin-top: 40px;
  }
}
@media (max-width: 450px) {
  .section_time-table__title-link {
    padding: 4px 12px;
    font-size: 1.2rem;
  }
}
/*Googleカレンダー埋め込み(現在は使用停止・簡易カレンダーに移行済み。復旧用に保持)*/
.iframe-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.iframe-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
@media (max-width: 599px) {
  .iframe-wrap {
    height: 400px;
    padding-top: 0;
  }
}
.section_time-table__simple-calendar-wrap {
  grid-area: calendar;
  min-width: 0;
  position: relative;
}
.section_time-table__simple-calendar {
  padding: 0 44px;
}
/*Simple Calendar：不要な要素を非表示に*/
.section_time-table__simple-calendar .simcal-align-right,
.section_time-table__simple-calendar .simcal-event-start-date,
.section_time-table__simple-calendar .simcal-event-end-time,
.section_time-table__simple-calendar .simcal-event-details > div:empty {
  display: none;
}
.section_time-table__simple-calendar .simcal-event-details p:has(> a[href*="calendar/event"]) {
  display: none;
}
.section_time-table__simple-calendar .is-hidden-timetable {
  display: none;
}
/*Simple Calendar：日送りナビは使わず、横スクロールのカードで番組を並べる*/
.section_time-table__simple-calendar .simcal-calendar-list .simcal-calendar-head {
  display: none;
}
.section_time-table__simple-calendar .simcal-default-calendar-list {
  padding: 0;
}
.section_time-table__simple-calendar .simcal-default-calendar-list ul.simcal-events li.simcal-event {
  margin-bottom: 0;
}
.section_time-table__simple-calendar .simcal-events-list-container {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
}
.section_time-table__simple-calendar .simcal-events-list-container dd,
.section_time-table__simple-calendar .simcal-events-list-container ul.simcal-events {
  display: contents;
}
.section_time-table__simple-calendar .simcal-day-label {
  display: none;
}
.section_time-table__simple-calendar .simcal-event {
  flex: 0 0 auto;
  width: 170px;
  scroll-snap-align: start;
  background: #fff;
  border: 2px solid transparent;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(220, 106, 154, .15);
  padding: 16px;
  transition: border-color .02s linear;
}
/*左端に来ている(=今見ているであろう)カードをピンクの枠で示す。放送中カードは既にグラデーションで目立つので対象外*/
.section_time-table__simple-calendar .simcal-event.is-focused:not(.is-onair) {
  border-color: #DC6A9A;
}
.section_time-table__simple-calendar .simcal-event .simcal-event-details {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  font-size: 1.6rem;
}
.section_time-table__simple-calendar .simcal-event-details p {
  /*.section_time-table__area p (別セクション向けの既存ルール)がここにも当たって
    継承を断ち切ってしまうため、1emで.simcal-event-detailsの指定に戻す*/
  font-size: 1em;
}
.section_time-table__simple-calendar .simcal-event-details > p:first-child {
  order: 2;
  margin: 0;
}
.section_time-table__simple-calendar .simcal-event-details > p:nth-child(2) {
  order: 1;
  margin: 0;
  white-space: nowrap;
  color: #DC6A9A;
  font-weight: 700;
}
.section_time-table__simple-calendar .simcal-event.is-onair {
  width: 240px;
  padding: 22px 20px;
  border: none;
  background: linear-gradient(135deg, #E37BAA 0%, #9C6AC9 100%);
  box-shadow: 0 6px 20px rgba(156, 106, 201, .35);
}
.section_time-table__simple-calendar .simcal-event.is-onair::before {
  content: "●  NOW ON AIR";
  display: inline-block;
  margin-bottom: 8px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .22);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  animation: section_timetable_onair_text_pulse 1.6s ease-in-out infinite;
}
@keyframes section_timetable_onair_text_pulse {
  0%, 100% {
    color: #fff;
  }
  50% {
    color: rgba(255, 255, 255, .35);
  }
}
@media (prefers-reduced-motion: reduce) {
  .section_time-table__simple-calendar .simcal-event.is-onair::before {
    animation: none;
  }
}
.section_time-table__simple-calendar .simcal-event.is-onair .simcal-event-details {
  font-size: 1.8rem;
}
.section_time-table__simple-calendar .simcal-event.is-onair .simcal-event-details > p:nth-child(2) {
  color: #fff;
}
.section_time-table__simple-calendar .simcal-event.is-onair .simcal-event-title {
  color: #fff;
}
/*Simple Calendar：左右のスライドボタン*/
.section_time-table__simple-calendar-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: #DC6A9A;
  color: #fff;
  font-size: 1.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
  transition: opacity .2s;
}
.section_time-table__simple-calendar-nav:hover {
  opacity: .8;
}
.section_time-table__simple-calendar-nav--prev {
  left: 0;
}
.section_time-table__simple-calendar-nav--next {
  right: 0;
}
/*お便り*/
.section_message {
  background-color: #F7F9FC;
  color: #4A5568;
  scroll-margin-top: 80px;
}
.section_message__area {
  max-width: 1080px;
  margin: auto;
  display: flex;
  align-items: start;
  gap: clamp(80px, 25.64vw - 116.92px, 160px);
}
@media (max-width: 768px) {
  .section_message__area {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
  }
}
.section_message__left {
  flex: 0 0 auto;
  text-align: left;
}
.section_message__title {
  text-align: left;
}
@media (max-width: 768px) {
  .section_message__title {
    text-align: center;
  }
}
.section_message__description {
  max-width: 240px;
  margin-top: 16px;
  line-height: 1.8;
}
@media (max-width: 768px) {
  .section_message__description {
    max-width: none;
    text-align: center;
  }
}
.section_message__right {
  flex: 1;
  min-width: 0;
}
.section_message__banner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.section_message__banner a {
  display: block;
  transition: transform .2s ease, box-shadow .2s ease;
}
.section_message__banner a:hover {
  opacity: 1;
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
  position: relative;
  z-index: 1;
}
.section_message__banner img {
  display: block;
  width: 100%;
  border-radius: 4px;
}
@media (max-width: 1130px) {
  .section_message__banner {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 450px) {
  .section_message__banner {
    grid-template-columns: 1fr;
  }
}
/*パワープレイ(現在は使用停止。復旧用に保持)*/
.section_power-play {
  max-width: 1080px;
  margin: auto;
  overflow: hidden;
}
@media (max-width: 768px) {
  .section_power-play {
    padding: 50px 0;
  }
}
.section_power-play__title {
  text-align: center;
  margin: 0 auto 50px;
}
/*パワープレイスライダー*/
/* 全体のスタイル */
.swiper-wrapper {
  width: 100%;
}
/* 全スライド共通スタイル */
.swiper-slide {
  color: #ffffff;
  width: 100%;
  height: 100%;
  text-align: center;
  margin: auto;
}
.swiper-slide__img {
  position: relative;
  display: inline-block;
}
.swiper-slide img {
  position: relative;
  display: block;
  width: 100%;
  max-width: 80vh;
  height: auto;
}
.swiper-slide p {
  position: absolute;
  background: rgba(0, 0, 0, .3);
  bottom: -20px;
  left: 0;
  width: 100%;
  padding: 10px;
  opacity: 0;
  transition: opacity .5s, bottom .5s;
  text-shadow: 0 0 3px rgba(0, 0, 0, .7);
}
.swiper-slide p span {
  position: relative;
  top: 15px;
  transition: opacity .5s, top .5s;
  opacity: 0;
}
.swiper-slide-active p {
  opacity: 1;
  bottom: 0;
  transition: opacity .5s .4s, bottom .5s .4s;
}
.swiper-slide-active p span {
  opacity: 1;
  top: 0;
  transition: opacity 1s .55s, top 1s .55s;
}
.swiper-container-3d .swiper-slide-shadow-right {
  background-image: none !important;
}
.swiper-container-3d .swiper-slide-shadow-left {
  background-image: none !important;
}
.swiper-container-cube .swiper-cube-shadow {
  opacity: 0;
}
.swiper-pagination {
  position: relative;
}
.swiper-pagination-bullet {
  background: #fff;
  opacity: .4;
  margin: 0 5px;
}
.swiper-pagination-bullet-active {
  opacity: 1;
}
/*ここまで*/
.section_power-play__archives {
  font-size: 1.8rem;
  margin-top: 50px;
  color: #fff;
}
.section_power-play__archives a {
  text-decoration: none;
  color: inherit;
}
/*ニュース*/
.section_news {
  background-color: #F7F9FC;
  color: #4A5568;
}
.section_news__area {
  max-width: 1080px;
  margin: auto;
  display: flex;
  align-items: start;
  gap: clamp(80px, 25.64vw - 116.92px, 160px);
}
@media (max-width: 768px) {
  .section_news__area {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
}
.section_news__left {
  flex: 0 0 auto;
  text-align: left;
}
.button-wrapper--mobile {
  display: none;
}
@media (max-width: 768px) {
  .button-wrapper--desktop {
    display: none;
  }
  .button-wrapper--mobile {
    display: block;
  }
}
.section_news__right {
  flex: 1;
  min-width: 0;
}
.section_news__heading {
  text-align: left;
}
@media (max-width: 768px) {
  .section_news__heading {
    text-align: center;
  }
}
.section_news__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  list-style: none;
  text-align: left;
  margin: 0;
}
.section_news__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
}
.section_news__item .category-pill {
  flex-shrink: 0;
}
.section_news__break-point {
  display: none;
}
@media (max-width: 768px) {
  .section_news__break-point {
    display: block;
  }
  .button-wrapper {
    text-align: center;
  }
}
/*バナー(協賛社ロゴのマーキー)*/
.section_banner {
  background-color: #E9EEF5;
  padding: 40px var(--gutter-x);
  position: relative;
  z-index: 501;
}
.section_banner__viewport {
  overflow: hidden;
  width: 100%;
  /* ホバー時の拡大+影がクリップされないよう、縦方向にだけ余白を持たせる(横方向はマーキーのループに必要なのでhiddenのまま) */
  padding: 16px 0;
  margin: -16px 0;
}
.section_banner__track {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  width: max-content;
  min-width: 100%;
}
.section_banner__item {
  flex-shrink: 0;
}
.section_banner__item a {
  display: block;
  transition: transform .2s ease, box-shadow .2s ease;
}
.section_banner__item a:hover {
  opacity: 1;
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
  position: relative;
  z-index: 1;
}
.section_banner__item img {
  height: 64px;
  width: auto;
  max-width: none;
  object-fit: contain;
  display: block;
}
/* 1列に収まらない場合のみ、JSが.is-marqueeを付与してループ表示に切り替える */
.section_banner__track:not(.is-marquee) .section_banner__item--dup {
  display: none;
}
.section_banner__track.is-marquee {
  justify-content: flex-start;
  animation: section_banner_loop 30s linear infinite;
}
.section_banner__track.is-marquee:hover,
.section_banner__track.is-marquee:focus-within {
  animation-play-state: paused;
}
@keyframes section_banner_loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .section_banner__track.is-marquee {
    animation: none;
  }
}
