@charset "UTF-8";
.is-block {
  display: block !important;
}

.is-inline {
  display: inline !important;
}

.is-inline-block {
  display: inline-block !important;
}

.is-none {
  display: none !important;
}

@media screen and (max-width: 767px) {
  .is-mobile-block {
    display: block !important;
  }
  .is-mobile-inline {
    display: inline !important;
  }
  .is-mobile-inline-block {
    display: inline-block !important;
  }
  .is-mobile-none {
    display: none !important;
  }
}
@media screen and (min-width: 576px) {
  .is-fablet-block {
    display: block !important;
  }
  .is-fablet-inline {
    display: inline !important;
  }
  .is-fablet-inline-block {
    display: inline-block !important;
  }
  .is-fablet-none {
    display: none !important;
  }
}
@media screen and (min-width: 768px) {
  .is-tablet-block {
    display: block !important;
  }
  .is-tablet-inline {
    display: inline !important;
  }
  .is-tablet-inline-block {
    display: inline-block !important;
  }
  .is-tablet-none {
    display: none !important;
  }
}
@media screen and (min-width: 1200px) {
  .is-desktop-block {
    display: block !important;
  }
  .is-desktop-inline {
    display: inline !important;
  }
  .is-desktop-inline-block {
    display: inline-block !important;
  }
  .is-desktop-none {
    display: none !important;
  }
}
@media screen and (min-width: 1400px) {
  .is-wide-block {
    display: block !important;
  }
  .is-wide-inline {
    display: inline !important;
  }
  .is-wide-inline-block {
    display: inline-block !important;
  }
  .is-wide-none {
    display: none !important;
  }
}
:root {
  /* ウェイトの定義 */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;
  /* font
     デザインの本文・見出しは Murecho（Google Fonts）
     ※YAMAGUCHI の Meltow San は画像で対応
     ※日付・時刻は Meltow San の代替として Karla（Google Fonts）。和文は Murecho で表示 */
  --font-main: "Murecho", sans-serif;
  --font-en: "Karla", "Murecho", sans-serif;
  /* color */
  --color-pink: #F52D96;
  --color-pink-light: #FDDFEF;
  --color-blue: #37C3F0;
  --color-blue-light: #D7F3FC;
  --color-red: #A12726;
  --color-yellow: #FFEF00;
  --color-gray: #D0CECE;
  --color-text: #000;
  /* Fluid Typography: 16px */
  --fz-base: 1rem;
  --inner-width: 1000px;
  --header-height: 76px;
}
@media screen and (max-width: 767px) {
  :root {
    --header-height: 53px;
  }
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-height);
}

body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeSpeed;
  font-family: var(--font-main);
  font-weight: var(--weight-normal);
  color: var(--color-text);
  font-size: var(--fz-base);
  background-color: #fff;
  overflow-x: hidden;
}

a {
  text-decoration: none;
  color: inherit;
}

*, *::before, *::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

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

textarea {
  resize: vertical;
}

ul, ol {
  list-style: none;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* ==========================================================================
//画像パスの書き換え
========================================================================== */
/* ==========================================================================
   Header Component
   ========================================================================== */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* スクロール後は白背景をつける（js/apps.js で付与） */
.l-header.is-scrolled {
  background-color: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: var(--header-height);
  padding: 0 27px 0 13px;
}

/* ロゴ */
.l-header__logo {
  width: 188px;
  height: auto;
}

.l-header__logo img {
  width: 100%;
}

/* --------------------------------------------------------------------------
   PC Navigation (min-width: 768px)
   -------------------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .l-header__drawer-btn,
  .l-header__nav-title,
  .l-header__nav-entry,
  .l-header__nav-illust {
    display: none; /* PC時は非表示 */
  }
  .l-header__nav-list {
    display: flex;
    gap: 32px; /* メニュー間のスペース */
  }
  .l-header__nav-link {
    display: block;
    padding-block: 6px;
    font-size: 1rem;
    font-weight: var(--weight-medium);
    color: var(--color-text);
    position: relative;
    transition: color 0.3s ease;
  }
  .l-header__nav-link:hover {
    color: var(--color-pink);
  }
  /* ホバー時の下線アニメーション */
  .l-header__nav-link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--color-pink);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.3s ease;
  }
  .l-header__nav-link:hover::after {
    transform: scaleX(1);
    transform-origin: left;
  }
}
/* --------------------------------------------------------------------------
   Smartphone Navigation & Drawer (max-width: 767px)
   -------------------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .l-header__inner {
    padding: 0 10px 0 5px;
  }
  .l-header__logo {
    width: 120px;
  }
  /* ハンバーガーボタン */
  .l-header__drawer-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    border: none;
    border-radius: 50%;
    background-color: var(--color-pink);
    cursor: pointer;
    position: relative;
    z-index: 110; /* メニューより前面へ */
  }
  /* 三本線アイコンのベース */
  .l-header__drawer-icon,
  .l-header__drawer-icon::before,
  .l-header__drawer-icon::after {
    content: "";
    position: absolute;
    width: 15px;
    height: 1px;
    background-color: #fff;
    border-radius: 1px;
    transition: transform 0.3s ease, top 0.3s ease, background-color 0.3s ease;
  }
  .l-header__drawer-icon {
    top: 50%;
    left: 50%;
    translate: -50% -50%;
  }
  .l-header__drawer-icon::before {
    top: -6px;
    left: 0;
  }
  .l-header__drawer-icon::after {
    top: 6px;
    left: 0;
  }
  /* ✕（閉じる）状態へのアニメーション */
  .l-header__drawer-btn[aria-expanded=true] .l-header__drawer-icon {
    background-color: transparent;
  }
  .l-header__drawer-btn[aria-expanded=true] .l-header__drawer-icon::before {
    top: 0;
    transform: rotate(45deg);
  }
  .l-header__drawer-btn[aria-expanded=true] .l-header__drawer-icon::after {
    top: 0;
    transform: rotate(-45deg);
  }
  /* ドロワーメニュー（全画面展開） */
  .l-header__nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 51px;
    background-color: var(--color-blue);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 105;
    overflow-y: auto;
  }
  /* メニュー展開時 */
  .l-header__drawer-btn[aria-expanded=true] ~ .l-header__nav {
    opacity: 1;
    visibility: visible;
  }
  .l-header__nav-title {
    flex-shrink: 0;
    width: 258px;
  }
  .l-header__nav-list {
    flex-shrink: 0;
    width: 312px;
    margin-top: 32px;
  }
  .l-header__nav-item {
    border-bottom: 1px solid #fff;
  }
  .l-header__nav-link {
    display: block;
    padding-block: 18px;
    font-size: 1.125rem;
    font-weight: var(--weight-bold);
    line-height: 1.25;
    color: #fff;
    text-align: center;
  }
  .l-header__nav-entry {
    flex-shrink: 0;
    margin-top: 34px;
  }
  /* 青背景の上なので影は白 */
  .l-header__nav-entry .c-btn-entry {
    box-shadow: 0.29em 0.29em 0 #fff;
  }
  .l-header__nav-illust {
    flex-shrink: 0;
    width: min(350px, 100%);
    margin-top: auto;
    padding-top: 39px;
  }
}
/* ==========================================================================
   Common Components
   ========================================================================== */
/* スクリーンリーダー向けテキスト（見た目は非表示） */
.u-visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* コンテンツ幅 */
.l-inner {
  width: 100%;
  max-width: calc(var(--inner-width) + 40px);
  margin-inline: auto;
  padding-inline: 20px;
}
@media screen and (max-width: 767px) {
  .l-inner {
    padding-inline: 15px;
  }
}

/* --------------------------------------------------------------------------
   セクション見出し（吹き出し型）
   -------------------------------------------------------------------------- */
.c-heading {
  --heading-bg: #fff;
  --heading-border: var(--color-pink);
  --heading-color: var(--color-pink);
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(711px, 100%);
  min-height: 82px;
  margin-inline: auto;
  padding: 5px 40px 11px; /* 文字が下寄りに見えるのを補正 */
  border: 2px solid var(--heading-border);
  border-radius: 41px;
  background-color: var(--heading-bg);
  color: var(--heading-color);
  font-size: 2.5rem;
  font-weight: var(--weight-bold);
  line-height: 1.3;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .c-heading {
    min-height: 48px;
    padding: 4px 20px 8px;
    border-radius: 24px;
    font-size: 1.5rem;
  }
}

/* しっぽ：外側（線の色）と内側（背景色）の三角形を重ねる */
.c-heading::before,
.c-heading::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 0;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.c-heading::before {
  top: 100%;
  width: 30px;
  height: 20px;
  background-color: var(--heading-border);
}
@media screen and (max-width: 767px) {
  .c-heading::before {
    width: 22px;
    height: 14px;
  }
}

.c-heading::after {
  top: calc(100% - 2px);
  width: 25px;
  height: 18.6px;
  background-color: var(--heading-bg);
}
@media screen and (max-width: 767px) {
  .c-heading::after {
    width: 17px;
    height: 13px;
  }
}

.c-heading--blue {
  --heading-bg: var(--color-blue);
  --heading-border: var(--color-blue);
  --heading-color: #fff;
}

.c-heading--red {
  --heading-bg: var(--color-red);
  --heading-border: var(--color-red);
  --heading-color: #fff;
  font-size: 2.125rem;
  padding: 7px 40px 9px;
}
@media screen and (max-width: 767px) {
  .c-heading--red {
    min-height: 38px;
    font-size: 1rem;
    padding: 5px 20px 7px;
  }
}

/* --------------------------------------------------------------------------
   お申込みボタン
   font-size を変えるとボタン全体が比率を保って拡縮する（基準：24px）
   -------------------------------------------------------------------------- */
.c-btn-entry {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 13.22em;
  height: 2.19em;
  padding-right: 0.85em;
  border: 0.095em solid var(--color-pink);
  border-radius: 999px;
  background-color: var(--color-yellow);
  box-shadow: 0.29em 0.29em 0 var(--color-blue);
  color: var(--color-pink);
  font-size: 1.5rem;
  font-weight: var(--weight-semibold);
  line-height: 1;
  letter-spacing: -0.02em;
  white-space: nowrap;
  transition: translate 0.2s ease, box-shadow 0.2s ease;
  padding-bottom: 0.1em;
}

/* 右の丸矢印 */
.c-btn-entry::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.67em;
  width: 0.98em;
  height: 0.98em;
  border-radius: 50%;
  background: var(--color-pink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M0 7h16.5M10.5 1l6 6-6 6' fill='none' stroke='%23FFFFFF' stroke-width='2'/%3E%3C/svg%3E") no-repeat center/0.42em auto;
  translate: 0 -50%;
}

@media (hover: hover) {
  .c-btn-entry:hover {
    translate: 0.29em 0.29em;
    box-shadow: 0 0 0 var(--color-blue);
  }
}
/* --------------------------------------------------------------------------
   画面下部に追従する申込ボタン
   FVのボタンが画面外に出たら .is-show を付けて表示（js/apps.js）
   -------------------------------------------------------------------------- */
.l-fixed-entry {
  position: fixed;
  left: 50%;
  bottom: calc(24px + env(safe-area-inset-bottom));
  z-index: 90; /* ヘッダー・ドロワーより下 */
  translate: -50% 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, translate 0.3s ease, visibility 0.3s ease;
}
@media screen and (max-width: 767px) {
  .l-fixed-entry {
    bottom: calc(16px + env(safe-area-inset-bottom));
  }
}

.l-fixed-entry.is-show {
  translate: -50% 0;
  opacity: 1;
  visibility: visible;
}

@media screen and (max-width: 767px) {
  .l-fixed-entry .c-btn-entry {
    font-size: 1.25rem;
  }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer {
  position: relative;
  padding: 46px 0 40px;
  border-radius: 50px 50px 0 0;
  background-color: var(--color-red);
  color: #fff;
}
@media screen and (max-width: 767px) {
  .footer {
    padding: 41px 0 28px;
    border-radius: 30px 30px 0 0;
  }
}

.footer__inner {
  position: relative;
  padding-left: 8px;
}
@media screen and (max-width: 767px) {
  .footer__inner {
    padding-left: 2px;
  }
}

/* --------------------------------------------------------------------------
   主催・運営・お問合せ
   -------------------------------------------------------------------------- */
.footer__info {
  font-size: 1rem;
  font-weight: var(--weight-normal);
  line-height: 1.95;
}
@media screen and (max-width: 767px) {
  .footer__info {
    font-size: 0.84375rem;
    line-height: 1.9;
    letter-spacing: -0.01em;
  }
}

.footer__contact {
  margin-top: -6px;
}
@media screen and (max-width: 767px) {
  .footer__contact {
    margin-top: -5px;
  }
}

.footer__tel {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 12px;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .footer__tel {
    display: block;
  }
}

.footer__tel-number {
  font-size: 1.375rem;
  font-weight: var(--weight-medium);
  letter-spacing: 0.01em;
}

.footer__tel-number a {
  margin-left: 0.15em;
  font-size: 1.636em; /* 36px */
  font-weight: var(--weight-semibold);
}

.footer__hours {
  font-size: 1rem;
  font-weight: var(--weight-normal);
}
@media screen and (max-width: 767px) {
  .footer__hours {
    display: block;
    margin-top: 0;
    font-size: 0.84375rem;
  }
}

.footer__mail {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 13px;
  margin-top: 8px;
}
@media screen and (max-width: 767px) {
  .footer__mail {
    display: block;
    margin-top: 11px;
  }
}

.footer__mail a {
  font-size: 1.25rem;
  font-weight: var(--weight-normal);
  line-height: 1.2;
}

.footer__mail-note {
  font-size: 0.75rem;
  font-weight: var(--weight-light);
}
@media screen and (max-width: 767px) {
  .footer__mail-note {
    display: block;
    margin-top: -3px;
  }
}

@media (hover: hover) {
  .footer__info a:hover {
    text-decoration: underline;
  }
}
/* --------------------------------------------------------------------------
   ページトップ
   -------------------------------------------------------------------------- */
.footer__pagetop {
  position: absolute;
  top: 10px;
  right: 3px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-size: 1.125rem;
  font-weight: var(--weight-medium);
  line-height: 1;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 767px) {
  .footer__pagetop {
    top: -25px;
    right: -3px;
    gap: 8px;
    font-size: 0.8125rem;
  }
}

.footer__pagetop::before {
  content: "";
  width: 29px;
  height: 17px;
  background-color: #fff;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
@media screen and (max-width: 767px) {
  .footer__pagetop::before {
    width: 22px;
    height: 13px;
  }
}

@media (hover: hover) {
  .footer__pagetop:hover {
    opacity: 0.7;
  }
}
/* ==========================================================================
   Main Visual
   ステージ（カンプ幅1366px / SP375px）の中に各パーツを絶対配置し、
   ステージ幅に合わせて全体を拡縮する（pcw() / spw() は scss/styles/bases/_setting.scss）
   ========================================================================== */
.mv {
  position: relative;
  overflow: hidden;
  background: #fff url(../images/mv_bg.png) no-repeat center top/cover;
}
@media screen and (min-width: 768px) and (max-width: 1199px) {
  .mv {
    padding-top: 30px; /* ヘッダーとキャッチコピーが重ならないように */
  }
}
@media screen and (max-width: 767px) {
  .mv {
    background-image: url(../images/mv_bg_sp.png);
  }
}

.mv__stage {
  position: relative;
  container-type: inline-size;
  width: min(100%, 1366px);
  aspect-ratio: 1366/783;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .mv__stage {
    width: 100%;
    aspect-ratio: 375/667;
  }
}

.mv__stage > * {
  position: absolute;
}

/* --------------------------------------------------------------------------
   タイトル・日時
   -------------------------------------------------------------------------- */
.mv__title {
  left: 23.3894582723cqw;
  top: 7.5768667643cqw;
  width: 54.729136164cqw;
}
@media screen and (max-width: 767px) {
  .mv__title {
    left: 8.64cqw;
    top: 30.3466666667cqw;
    width: 82.9066666667cqw;
  }
}

.mv__title img {
  width: 100%;
}

.mv__subtitle {
  display: flex;
  align-items: center;
  justify-content: center;
  left: 24.8901903367cqw;
  top: 25.4026354319cqw;
  width: 50.2196193265cqw;
  height: 3.4553440703cqw;
  border-radius: 999px;
  background-color: var(--color-red);
  color: #fff;
  font-size: 2.196193265cqw;
  font-weight: var(--weight-extrabold);
  line-height: 1;
  letter-spacing: -0.01em;
  white-space: nowrap;
  padding-bottom: 0.2781844802cqw;
}
@media screen and (max-width: 767px) {
  .mv__subtitle {
    left: 8.6666666667cqw;
    top: 58.1866666667cqw;
    width: 82.64cqw;
    height: 5.68cqw;
    font-size: 3.4666666667cqw;
    padding-bottom: 0.3733333333cqw;
  }
}

/* 日時：--u はカンプ上の1px。SPはカンプの日付パーツ（幅388px）を 223.5px に縮小して配置 */
.mv__date {
  --u: 0.0732064422cqw;
  display: flex;
  align-items: flex-start;
  left: 27.8477306003cqw;
  top: 31.3323572474cqw;
  width: 44.8389458272cqw;
  font-family: var(--font-en);
  line-height: 1;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .mv__date {
    --u: calc(59.6cqw / 388);
    display: grid;
    grid-template-columns: auto auto;
    justify-content: center;
    left: 20.6133333333cqw;
    top: 67.8666666667cqw;
    width: 59.6cqw;
  }
}

/* Karla の数字は line-height:1 の行ボックス上端から 0.17em 下がるため、数字の上端で揃える */
.mv__date-day,
.mv__date-hours {
  margin-top: -0.17em;
}

/* 下側も数字のベースラインまで詰める（SPで2行目の位置をカンプに合わせるため） */
.mv__date-day {
  margin-bottom: -0.1675em;
}

.mv__date-day {
  margin-left: calc(-3.5 * var(--u)); /* 「2」の左サイドベアリング分 */
  font-size: calc(101.2 * var(--u));
  font-weight: var(--weight-bold);
  letter-spacing: 0;
}

.mv__date-year {
  margin-right: 0.05em;
  font-size: 0.537em;
  letter-spacing: -0.04em;
}

.mv__date-week {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: calc(68 * var(--u));
  height: calc(68 * var(--u));
  margin-left: calc(7 * var(--u));
  border-radius: 50%;
  background-color: #D94E4D;
  color: #fff;
  font-size: calc(21.6 * var(--u));
  font-weight: var(--weight-medium);
  letter-spacing: 0.1em;
  padding-left: 0.1em;
}

.mv__date-time {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-left: auto;
  padding-top: calc(11 * var(--u));
  font-weight: var(--weight-bold);
}
@media screen and (max-width: 767px) {
  .mv__date-time {
    grid-column: 1/-1;
    margin-left: 0;
    padding-top: calc(19 * var(--u));
    padding-right: calc(14 * var(--u)); /* カンプでは中央よりやや左寄せ */
  }
}

.mv__date-hours {
  font-size: calc(38.5 * var(--u));
  letter-spacing: 0;
}

.mv__date-reception {
  margin-top: calc(1.5 * var(--u));
  font-size: calc(20.5 * var(--u));
  font-weight: var(--weight-semibold);
}
@media screen and (max-width: 767px) {
  .mv__date-reception {
    margin-top: calc(7.5 * var(--u));
  }
}

/* 数字のみ一回り大きく（カンプ準拠） */
.mv__date-num {
  font-size: 1.29em;
  letter-spacing: 0;
  margin-right: 0.2em;
}

/* --------------------------------------------------------------------------
   場所・対象・定員
   -------------------------------------------------------------------------- */
.mv__place,
.mv__note,
.mv__info {
  left: 50%;
  translate: -50% 0;
  white-space: nowrap;
}

.mv__place {
  display: flex;
  align-items: center;
  top: 38.1918008785cqw;
}
@media screen and (max-width: 767px) {
  .mv__place {
    align-items: flex-start;
    top: 94.6666666667cqw;
  }
}

/* ラベル（場所・対象・定員） */
.mv__tag {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 999px;
  background-color: var(--color-blue);
  color: #fff;
  font-weight: var(--weight-medium);
  line-height: 1;
  padding-bottom: 0.1610541728cqw;
}
@media screen and (max-width: 767px) {
  .mv__tag {
    padding-bottom: 0.4266666667cqw;
  }
}

.mv__tag.is-pink {
  background-color: var(--color-pink);
}

.mv__place .mv__tag {
  width: 5.5344070278cqw;
  height: 2.6866764275cqw;
  font-size: 1.4348462665cqw;
}
@media screen and (max-width: 767px) {
  .mv__place .mv__tag {
    width: 13.6cqw;
    height: 6.6666666667cqw;
    font-size: 3.4666666667cqw;
  }
}

.mv__place-body {
  display: flex;
  align-items: baseline;
  gap: 0.0366032211cqw;
  margin-left: 0.9516837482cqw;
}
@media screen and (max-width: 767px) {
  .mv__place-body {
    flex-direction: column;
    align-items: center;
    gap: 0;
    margin-left: 2.4cqw;
  }
}

.mv__place-name {
  font-size: 1.789897511cqw;
  font-weight: var(--weight-medium);
  line-height: 1.2;
  letter-spacing: -0.014em;
}
@media screen and (max-width: 767px) {
  .mv__place-name {
    font-size: 4.2666666667cqw;
    line-height: 6.6666666667cqw;
  }
}

.mv__place-address {
  font-size: max(10px, 1.2518301611cqw);
  font-weight: var(--weight-medium);
  line-height: 1.2;
  letter-spacing: 0.025em;
}
@media screen and (max-width: 767px) {
  .mv__place-address {
    margin-top: -0.8cqw;
    font-size: 3.2cqw;
  }
}

.mv__note {
  top: 41.5080527086cqw;
  font-size: max(10px, 1.1713030747cqw);
  font-weight: var(--weight-medium);
  line-height: 1.2;
  letter-spacing: -0.014em;
}
@media screen and (max-width: 767px) {
  .mv__note {
    top: 105.6cqw;
    font-size: 3.2cqw;
  }
}

.mv__info {
  display: flex;
  gap: 1.4641288433cqw;
  top: 44.0849194729cqw;
}
@media screen and (max-width: 767px) {
  .mv__info {
    gap: 3.7333333333cqw;
    top: 112.8cqw;
  }
}

.mv__info-item {
  display: flex;
  align-items: center;
  gap: 0.5856515373cqw;
}
@media screen and (max-width: 767px) {
  .mv__info-item {
    gap: 1.6cqw;
  }
}

.mv__info .mv__tag {
  width: 4.5241581259cqw;
  height: 2.196193265cqw;
  font-size: max(10px, 1.1713030747cqw);
}
@media screen and (max-width: 767px) {
  .mv__info .mv__tag {
    width: 11.7333333333cqw;
    height: 5.6cqw;
    font-size: 3.2cqw;
  }
}

.mv__info dd {
  font-size: 1.4641288433cqw;
  font-weight: var(--weight-medium);
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .mv__info dd {
    font-size: 3.7333333333cqw;
  }
}

/* --------------------------------------------------------------------------
   参加無料・お申込みボタン
   -------------------------------------------------------------------------- */
.mv__free {
  left: 67.0058565154cqw;
  top: 41.6910688141cqw;
  width: 11.859443631cqw;
}
@media screen and (max-width: 767px) {
  .mv__free {
    left: 38.4cqw;
    top: 119.7333333333cqw;
    width: 22.9333333333cqw;
  }
}

.mv__entry {
  left: 38.4480234261cqw;
  top: 48.0380673499cqw;
}
@media screen and (max-width: 767px) {
  .mv__entry {
    left: 14.9333333333cqw;
    top: 153.0666666667cqw;
  }
}

.mv__entry .c-btn-entry {
  font-size: 1.756954612cqw;
}
@media screen and (max-width: 767px) {
  .mv__entry .c-btn-entry {
    font-size: 5.3333333333cqw;
  }
}

/* --------------------------------------------------------------------------
   キャッチコピー
   -------------------------------------------------------------------------- */
.mv__catch {
  inset: 0;
}

.mv__catch-item {
  position: absolute;
}

.mv__catch-item img {
  width: 100%;
}

.mv__catch-item.is-01 {
  left: 3.1625183016cqw;
  top: 6.8155197657cqw;
  width: 20.2781844802cqw;
}
@media screen and (max-width: 767px) {
  .mv__catch-item.is-01 {
    left: 3.8133333333cqw;
    top: 14.2133333333cqw;
    width: 34.5066666667cqw;
  }
}

.mv__catch-item.is-02 {
  left: 4.0922401171cqw;
  top: 19.1581259151cqw;
  width: 16.6178623719cqw;
}
@media screen and (max-width: 767px) {
  .mv__catch-item.is-02 {
    left: 3.3333333333cqw;
    top: 65.6266666667cqw;
    width: 14.1333333333cqw;
  }
}

.mv__catch-item.is-03 {
  left: 80.0146412884cqw;
  top: 8.0819912152cqw;
  width: 18.2284040996cqw;
}
@media screen and (max-width: 767px) {
  .mv__catch-item.is-03 {
    left: 63.2cqw;
    top: 16.2133333333cqw;
    width: 33.8666666667cqw;
  }
}

.mv__catch-item.is-04 {
  left: 81.420204978cqw;
  top: 18.3308931186cqw;
  width: 14.8609077599cqw;
}
@media screen and (max-width: 767px) {
  .mv__catch-item.is-04 {
    left: 82.2666666667cqw;
    top: 68.5333333333cqw;
    width: 12.8cqw;
  }
}

/* --------------------------------------------------------------------------
   人物イラスト（下端は次のセクションの弧で隠れる）
   -------------------------------------------------------------------------- */
.mv__people {
  inset: 0;
}

.mv__person {
  position: absolute;
}

.mv__person.is-01 {
  left: 1.7935578331cqw;
  top: 28.0234260615cqw;
  width: 14.5680819912cqw;
}
@media screen and (max-width: 767px) {
  .mv__person.is-01 {
    left: -7.4666666667cqw;
    top: 124.8cqw;
    width: 26.6666666667cqw;
  }
}

.mv__person.is-02 {
  left: 14.3338213763cqw;
  top: 31.21522694cqw;
  width: 14.055636896cqw;
}
@media screen and (max-width: 767px) {
  .mv__person.is-02 {
    left: 15.7333333333cqw;
    top: 130.6666666667cqw;
    width: 25.8666666667cqw;
  }
}

.mv__person.is-03 {
  left: 75.8125915081cqw;
  top: 30.7540263543cqw;
  width: 11.859443631cqw;
}
@media screen and (max-width: 767px) {
  .mv__person.is-03 {
    left: 62.1333333333cqw;
    top: 129.6cqw;
    width: 21.8666666667cqw;
  }
}

.mv__person.is-04 {
  left: 86.1420204978cqw;
  top: 28.1259150805cqw;
  width: 12.298682284cqw;
}
@media screen and (max-width: 767px) {
  .mv__person.is-04 {
    left: 81.0666666667cqw;
    top: 124.8cqw;
    width: 22.6666666667cqw;
  }
}

/* ==========================================================================
   参加ポイント・参加特典
   ========================================================================== */
.points {
  position: relative;
  padding: 31px 0 33px;
  background-color: var(--color-blue);
}
.points::before {
  content: "";
  position: absolute;
  bottom: calc(100% - 1px);
  left: 0;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1366/59.81;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1366 59.81' preserveAspectRatio='none'%3E%3Cpath d='M0 0C218.99 38.98 447.63 59.81 683 59.81C918.37 59.81 1147.01 38.97 1366 0V59.81H0Z' fill='%2337C3F0'/%3E%3C/svg%3E") no-repeat center bottom/100% 100%;
  pointer-events: none;
}
.points::after {
  content: "";
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1366/59.81;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1366 59.81' preserveAspectRatio='none'%3E%3Cpath d='M0 0C218.99 38.98 447.63 59.81 683 59.81C918.37 59.81 1147.01 38.97 1366 0Z' fill='%2337C3F0'/%3E%3C/svg%3E") no-repeat center top/100% 100%;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .points {
    padding: 20px 0 46px;
  }
}

.points__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px 16px;
}
@media screen and (max-width: 767px) {
  .points__list {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }
}

.points__item {
  width: 295px;
}
@media screen and (max-width: 767px) {
  .points__item {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .points__item + .points__item {
    margin-top: -8px; /* ラベルが前のカードに少し重なる */
  }
}

/* ラベル（参加ポイント1〜3） */
.points__label {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 161px;
  height: 89.5px;
  margin: 0 auto -20px;
  padding-top: 18px;
  background: url(../images/point_tag.svg) no-repeat center/100% 100%;
  color: #fff;
  font-weight: var(--weight-bold);
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .points__label {
    width: 145px;
    height: 79px;
    margin-bottom: -19px;
    padding-top: 16px;
  }
}

.points__label-text {
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  .points__label-text {
    font-size: 0.875rem;
  }
}

.points__label-num {
  margin-top: 5px;
  font-size: 1.75rem;
  font-weight: var(--weight-black);
}
@media screen and (max-width: 767px) {
  .points__label-num {
    margin-top: 0;
    font-size: 1.5625rem;
  }
}

/* カード */
.points__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 259px;
  padding-top: 29px;
  border-radius: 10px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14.4' height='14.4' viewBox='0 0 14.4 14.4'%3E%3Cg fill='%2337C3F0' fill-opacity='1'%3E%3Ccircle cx='3.6' cy='3.6' r='0.72'/%3E%3Ccircle cx='10.8' cy='10.8' r='0.72'/%3E%3C/g%3E%3C/svg%3E") repeat 0 0/14.4px 14.4px;
}
@media screen and (max-width: 767px) {
  .points__card {
    flex-direction: row;
    justify-content: space-between;
    height: 114px;
    padding: 0 13px 0 20px;
  }
}

.points__text {
  font-size: 1.375rem;
  font-weight: var(--weight-semibold);
  line-height: 1.4;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .points__text {
    font-size: 1.125rem;
    line-height: 1.35;
    text-align: left;
  }
}

.points__text em {
  font-style: normal;
  color: var(--color-pink);
}

.points__illust {
  margin-top: auto;
}
@media screen and (max-width: 767px) {
  .points__illust {
    flex-shrink: 0;
    margin-top: 0;
  }
}

@media screen and (max-width: 767px) {
  .points__illust.is-01 {
    width: 117px;
  }
}

@media screen and (max-width: 767px) {
  .points__illust.is-02 {
    width: 89px;
  }
}

@media screen and (max-width: 767px) {
  .points__illust.is-03 {
    width: 92px;
  }
}

/* --------------------------------------------------------------------------
   参加特典
   -------------------------------------------------------------------------- */
.benefit {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 26px;
}
@media screen and (max-width: 767px) {
  .benefit {
    display: block;
    position: relative;
    margin-top: 20px;
  }
}

.benefit__badge {
  flex-shrink: 0;
  width: 157px;
}
@media screen and (max-width: 767px) {
  .benefit__badge {
    width: 120px;
    margin-inline: auto;
  }
}

.benefit__gift {
  flex-shrink: 0;
  width: 113px;
  margin-left: 23px;
}
@media screen and (max-width: 767px) {
  .benefit__gift {
    position: absolute;
    top: 59px;
    left: calc(50% + 38px);
    width: 81px;
    margin-left: 0;
  }
}

.benefit__text {
  margin-left: 16px;
  color: #fff;
  font-size: 1.65rem;
  font-weight: var(--weight-bold);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .benefit__text {
    position: relative;
    margin: -26px 0 0;
    padding-left: 8px;
    font-size: 1.3125rem;
    line-height: 1.55;
  }
}

/* 白文字＋青フチ＋黄色マーカー */
.benefit__marker {
  padding: 0 0.2em 0.1em;
  background: linear-gradient(transparent 70%, var(--color-yellow) 70%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  -webkit-text-stroke: 4.4px var(--color-blue);
  paint-order: stroke fill;
}
@media screen and (max-width: 767px) {
  .benefit__marker {
    -webkit-text-stroke-width: 3.6px;
  }
}

/* ==========================================================================
   イベントの流れ
   ========================================================================== */
.flow {
  position: relative;
  padding: 18px 0 85px;
  background-color: var(--color-pink);
  display: flow-root; /* 見出しの負のマージンを親の外へ相殺させない */
}
.flow::after {
  content: "";
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1366/59.81;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1366 59.81' preserveAspectRatio='none'%3E%3Cpath d='M0 0C218.99 38.98 447.63 59.81 683 59.81C918.37 59.81 1147.01 38.97 1366 0Z' fill='%23F52D96'/%3E%3C/svg%3E") no-repeat center top/100% 100%;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .flow {
    padding: 0 0 55px;
  }
}

@media screen and (max-width: 767px) {
  .flow .c-heading {
    margin-top: -14px;
  }
}

.flow__list {
  margin-top: 51px;
}
@media screen and (max-width: 767px) {
  .flow__list {
    margin-top: 31px;
  }
}

.flow__item {
  position: relative;
  display: flex;
  gap: 30px;
  min-height: 266px;
  padding: 32px 43px;
  border-radius: 30px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14.4' height='14.4' viewBox='0 0 14.4 14.4'%3E%3Cg fill='%23F52D96' fill-opacity='0.5'%3E%3Ccircle cx='3.6' cy='3.6' r='0.72'/%3E%3Ccircle cx='10.8' cy='10.8' r='0.72'/%3E%3C/g%3E%3C/svg%3E") repeat 0 0/14.4px 14.4px;
}
@media screen and (max-width: 1199px) {
  .flow__item {
    gap: 24px;
    padding-inline: 30px;
  }
}
@media screen and (max-width: 767px) {
  .flow__item {
    display: block;
    min-height: 0;
    padding: 19px 22px 23px 21px;
    border-radius: 15px;
  }
}

/* カード間の矢印 */
.flow__item + .flow__item {
  margin-top: 78px;
}
@media screen and (max-width: 767px) {
  .flow__item + .flow__item {
    margin-top: 58px;
  }
}

.flow__item + .flow__item::before {
  content: "";
  position: absolute;
  top: -53px;
  left: 50%;
  width: 59px;
  height: 30px;
  background-color: var(--color-yellow);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  translate: -50% 0;
}
@media screen and (max-width: 767px) {
  .flow__item + .flow__item::before {
    top: -38px;
    width: 48px;
    height: 24px;
  }
}

.flow__image {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  flex: 0 0 343px;
  height: 197px;
  border-radius: 4px;
  background-color: var(--color-blue-light);
  overflow: hidden;
}
@media screen and (max-width: 1199px) {
  .flow__image {
    flex-basis: 300px;
  }
}
@media screen and (max-width: 767px) {
  .flow__image {
    height: 160px;
  }
}

.flow__image img {
  width: 273px;
}
@media screen and (max-width: 767px) {
  .flow__image img {
    width: 221px;
  }
}

.flow__item.is-02 .flow__image img {
  width: 253px;
}
@media screen and (max-width: 767px) {
  .flow__item.is-02 .flow__image img {
    width: 205px;
  }
}

.flow__item.is-03 .flow__image img {
  width: 239px;
}
@media screen and (max-width: 767px) {
  .flow__item.is-03 .flow__image img {
    width: 193px;
  }
}

.flow__body {
  padding-top: 14px;
}
@media screen and (max-width: 767px) {
  .flow__body {
    padding-top: 15px;
  }
}

.flow__time {
  display: inline-block;
  padding: 0 17px;
  border-radius: 16px;
  background-color: var(--color-pink);
  color: #fff;
  font-size: 1.5rem;
  font-weight: var(--weight-semibold);
  line-height: 28.6px;
  padding-bottom: 3.4px;
}
@media screen and (max-width: 767px) {
  .flow__time {
    padding: 0 13px;
    border-radius: 13px;
    font-size: 1.125rem;
    line-height: 22.4px;
    padding-bottom: 3.6px;
  }
}

.flow__title {
  margin-top: 8px;
  color: var(--color-pink);
  font-size: 1.75rem;
  font-weight: var(--weight-semibold);
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .flow__title {
    margin-top: 3px;
    font-size: 1.25rem;
    line-height: 1.35;
  }
}

.flow__program {
  margin-top: 14px;
}
@media screen and (max-width: 767px) {
  .flow__program {
    margin-top: 10px;
  }
}

.flow__program-title {
  font-size: 1.125rem;
  font-weight: var(--weight-medium);
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .flow__program-title {
    font-size: 0.8125rem;
  }
}

.flow__program-list {
  margin-top: 8px;
  padding-left: 6px;
  font-size: 1rem;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .flow__program-list {
    margin-top: 4px;
    padding-left: 5px;
    font-size: 0.8125rem;
    line-height: 1.5;
  }
}

.flow__program-list li::before {
  content: "・";
}

.flow__lead {
  margin-top: 14px;
  font-size: 1.125rem;
  font-weight: var(--weight-medium);
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .flow__lead {
    margin-top: 6px;
    font-size: 0.8125rem;
    line-height: 1.5;
  }
}

.flow__text {
  margin-top: 8px;
  font-size: 1rem;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .flow__text {
    margin-top: 6px;
    font-size: 0.8125rem;
    line-height: 1.6;
  }
}

/* ==========================================================================
   参加企業一覧
   ========================================================================== */
.company {
  position: relative;
  display: flow-root; /* 下部イラストの負のマージンを親の外へ相殺させない */
  overflow-x: clip; /* 装飾パターンが画面の左右にはみ出して横スクロールしないように */
  padding-top: 15px;
  background-color: var(--color-blue-light);
}
.company::after {
  content: "";
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1366/59.81;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1366 59.81' preserveAspectRatio='none'%3E%3Cpath d='M0 0C218.99 38.98 447.63 59.81 683 59.81C918.37 59.81 1147.01 38.97 1366 0Z' fill='%23D7F3FC'/%3E%3C/svg%3E") no-repeat center top/100% 100%;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .company {
    padding-top: 0;
  }
}

@media screen and (max-width: 767px) {
  .company .c-heading {
    margin-top: -9px;
  }
}

/* 装飾パターンの基準（カード一覧の上端・下端に合わせて配置） */
.company__body {
  position: relative;
  margin-top: 42px;
}
@media screen and (max-width: 767px) {
  .company__body {
    margin-top: 33px;
  }
}

.company__deco {
  position: absolute;
  background: no-repeat center/contain;
  pointer-events: none;
}

.company__deco.is-stripe01 {
  top: 130px;
  left: 0;
  width: 307px;
  aspect-ratio: 307/308;
  background-image: url(../images/deco_stripe01.png);
}
@media screen and (max-width: 767px) {
  .company__deco.is-stripe01 {
    top: 3px;
    width: 231px;
  }
}

.company__deco.is-dot02 {
  top: 334px;
  left: calc(50% + 383.4px);
  width: 227px;
  aspect-ratio: 1;
  background-image: url(../images/deco_dot02.png);
}
@media screen and (max-width: 767px) {
  .company__deco.is-dot02 {
    top: 432px;
    left: auto;
    right: 0;
    width: 170px;
  }
}

.company__deco.is-dot01 {
  bottom: -130px;
  left: calc(50% - 596.7px);
  width: 206px;
  aspect-ratio: 1;
  background-image: url(../images/deco_dot01.png);
}
@media screen and (max-width: 767px) {
  .company__deco.is-dot01 {
    bottom: 348px;
    left: 16px;
    width: 118px;
  }
}

.company__deco.is-stripe02 {
  bottom: -50px;
  right: 0;
  width: 225px;
  aspect-ratio: 1;
  background-image: url(../images/deco_stripe02.png);
}
@media screen and (max-width: 767px) {
  .company__deco.is-stripe02 {
    bottom: -75px;
    width: 132px;
  }
}

.company__list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fill, 309px);
  justify-content: center;
  gap: 33px 36px;
}
@media screen and (max-width: 767px) {
  .company__list {
    gap: 21px;
  }
}

/* 企業カード */
.company-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 457px;
  padding: 75px 32px 27px;
  border-radius: 155px;
  background-color: #fff;
}

.company-card__name {
  font-size: 1.25rem;
  font-weight: var(--weight-medium);
  line-height: 1.4;
  text-align: center;
}

.company-card__name span {
  display: inline;
  padding-bottom: 0;
  border-bottom: 1px solid var(--color-blue);
}

.company-card__data {
  width: 100%;
  margin-top: 16px;
}

.company-card__row {
  display: flex;
  align-items: center;
  gap: 7px;
}

.company-card__row + .company-card__row {
  margin-top: 7px;
}

.company-card__data dt {
  flex: 0 0 58px;
  border-radius: 9px;
  background-color: var(--color-blue);
  color: #fff;
  font-size: 0.75rem;
  font-weight: var(--weight-semibold);
  line-height: 15px;
  text-align: center;
  padding-bottom: 2px;
}

.company-card__data dd {
  font-size: 0.875rem;
  line-height: 1.3;
  font-weight: var(--weight-medium);
}

.company-card__label {
  margin-top: 9px;
  color: var(--color-blue);
  font-size: 0.75rem;
  font-weight: var(--weight-semibold);
  line-height: 1.4;
  text-align: center;
}

.company-card__title {
  font-size: 0.875rem;
  line-height: 1.4;
  text-align: center;
}

.company-card__image {
  width: 100%;
  margin: 16px 0 20px;
}

.company-card__image img {
  width: 100%;
  aspect-ratio: 245/138;
  object-fit: cover;
}

.company-card__link {
  width: 48px;
  height: 48px;
  margin-top: auto;
  border-radius: 50%;
  background: var(--color-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M0 7h16.5M10.5 1l6 6-6 6' fill='none' stroke='%23FFFFFF' stroke-width='2'/%3E%3C/svg%3E") no-repeat center/17px auto;
  transition: opacity 0.3s ease;
}

@media (hover: hover) {
  .company-card__link:hover {
    opacity: 0.7;
  }
}
/* 下部イラスト（次のセクションにはみ出す） */
.company__illust {
  position: relative;
  z-index: 2;
  width: 480px;
  margin: 80px auto -85px;
}
@media screen and (max-width: 767px) {
  .company__illust {
    width: min(340px, 100%);
    margin: 40px auto -45px;
  }
}

/* ==========================================================================
   無料送迎バス
   ========================================================================== */
.bus {
  position: relative;
  padding: 134px 0 56px;
  background-color: #fff;
}
.bus::after {
  content: "";
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1366/59.81;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1366 59.81' preserveAspectRatio='none'%3E%3Cpath d='M0 0C218.99 38.98 447.63 59.81 683 59.81C918.37 59.81 1147.01 38.97 1366 0Z' fill='%23FFFFFF'/%3E%3C/svg%3E") no-repeat center top/100% 100%;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .bus {
    padding: 73px 0 26px;
  }
}

.bus__deadline {
  margin-top: 31px;
  font-size: 1.625rem;
  font-weight: var(--weight-medium);
  line-height: 1.2;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .bus__deadline {
    margin-top: 26px;
    font-size: 1.125rem;
  }
}

.bus__table {
  width: 100%;
  margin-top: 40px;
  border-collapse: collapse;
  table-layout: fixed;
  font-weight: var(--weight-medium);
}
@media screen and (max-width: 767px) {
  .bus__table {
    margin-top: 28px;
  }
}

.bus__table + .bus__table {
  margin-top: 47px;
}
@media screen and (max-width: 767px) {
  .bus__table + .bus__table {
    margin-top: 21px;
  }
}

/* 行き・帰り */
.bus__caption {
  margin-bottom: 25px;
  border: 1px solid var(--color-red);
  color: var(--color-red);
  font-size: 1.5rem;
  line-height: 44px;
  text-align: center;
  padding-bottom: 3px;
}
@media screen and (max-width: 767px) {
  .bus__caption {
    margin-bottom: 18px;
    font-size: 1.25rem;
    line-height: 35px;
    padding-bottom: 2px;
  }
}

.bus__table thead th {
  height: 36px;
  background-color: var(--color-red);
  color: #fff;
  font-size: 0.93rem;
  font-weight: var(--weight-medium);
  line-height: 1.2;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .bus__table thead th {
    height: 29px;
    padding: 7.5px 2px;
    font-size: 0.75rem;
  }
}

.bus__table tbody th,
.bus__table tbody td {
  height: 58.5px;
  overflow-wrap: anywhere;
  font-size: 1rem;
  font-weight: var(--weight-medium);
  line-height: 1.4;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .bus__table tbody th,
  .bus__table tbody td {
    height: 52px;
    font-size: 0.875rem;
  }
}

.bus__table tbody tr + tr {
  border-top: 1px solid var(--color-red);
}

/* 出発地点・乗車場所は左揃え */
.bus__table tbody th,
.bus__table tbody td:last-child {
  padding-left: 16px;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .bus__table tbody th,
  .bus__table tbody td:last-child {
    padding-left: 5px;
  }
}

@media screen and (max-width: 767px) {
  .bus__table tbody td:last-child {
    padding-left: 7px;
  }
}

.bus__col-place {
  width: 19.8%;
}
@media screen and (max-width: 767px) {
  .bus__col-place {
    width: 26%;
  }
}

.bus__col-depart {
  width: 11.2%;
}
@media screen and (max-width: 767px) {
  .bus__col-depart {
    width: 21%;
  }
}

.bus__col-arrive {
  width: 15.4%;
}
@media screen and (max-width: 767px) {
  .bus__col-arrive {
    width: 19%;
  }
}

/* ==========================================================================
   よくある質問
   ========================================================================== */
.faq {
  position: relative;
  padding: 10px 0 53px;
  background-color: var(--color-pink-light);
  display: flow-root; /* 見出しの負のマージンを親の外へ相殺させない */
}
.faq::after {
  content: "";
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1366/59.81;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1366 59.81' preserveAspectRatio='none'%3E%3Cpath d='M0 0C218.99 38.98 447.63 59.81 683 59.81C918.37 59.81 1147.01 38.97 1366 0Z' fill='%23FDDFEF'/%3E%3C/svg%3E") no-repeat center top/100% 100%;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .faq {
    padding: 0 0 35px;
  }
}

.faq__head {
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .faq__head {
    margin-top: -5px;
  }
}

.faq .c-heading {
  width: min(711px, 100% - 280px);
}
@media screen and (max-width: 767px) {
  .faq .c-heading {
    width: 207px;
  }
}

.faq__illust {
  position: absolute;
}

.faq__illust.is-01 {
  top: -36px;
  left: 17px;
  width: 108px;
}
@media screen and (max-width: 767px) {
  .faq__illust.is-01 {
    top: -16px;
    left: -5px;
    width: 66px;
  }
}

.faq__illust.is-02 {
  top: -37px;
  right: 5px;
  width: 121px;
}
@media screen and (max-width: 767px) {
  .faq__illust.is-02 {
    top: -20px;
    right: -10px;
    width: 74px;
  }
}

.faq__list {
  margin-top: 55px;
}
@media screen and (max-width: 767px) {
  .faq__list {
    margin-top: 37px;
  }
}

.faq-item + .faq-item {
  margin-top: 23px;
}
@media screen and (max-width: 767px) {
  .faq-item + .faq-item {
    margin-top: 16px;
  }
}

/* 質問（開閉ボタン） */
.faq-item__question-btn {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  min-height: 60px;
  padding: 10px 64px 10px 17px;
  border: none;
  border-radius: 10px;
  background-color: var(--color-pink);
  color: #fff;
  font-size: 1.125rem;
  font-weight: var(--weight-medium);
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
  transition: border-radius 0.3s ease;
}
@media screen and (max-width: 767px) {
  .faq-item__question-btn {
    gap: 9px;
    min-height: 46px;
    padding: 11px 40px 11px 11px;
    font-size: 0.875rem;
    line-height: 1.5;
  }
}

.faq-item.is-open .faq-item__question-btn {
  border-radius: 10px 10px 0 0;
}

.faq-item__icon-q,
.faq-item__icon-a {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 33px;
  height: 33px;
  border-radius: 50%;
  font-size: 1.25rem;
  font-weight: var(--weight-medium);
  line-height: 1;
  padding-bottom: 1px;
}
@media screen and (max-width: 767px) {
  .faq-item__icon-q,
  .faq-item__icon-a {
    width: 26px;
    height: 26px;
    font-size: 1rem;
    padding-bottom: 2px;
  }
}

.faq-item__icon-q {
  background-color: #fff;
  color: var(--color-pink);
}

.faq-item__icon-a {
  background-color: var(--color-pink);
  color: #fff;
}

/* ＋／− アイコン */
.faq-item__toggle {
  position: absolute;
  top: 50%;
  right: 24px;
  width: 19px;
  height: 19px;
  translate: 0 -50%;
}
@media screen and (max-width: 767px) {
  .faq-item__toggle {
    right: 19px;
    width: 15px;
    height: 15px;
  }
}

.faq-item__toggle::before,
.faq-item__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #fff;
  translate: 0 -50%;
  transition: rotate 0.3s ease;
}
@media screen and (max-width: 767px) {
  .faq-item__toggle::before,
  .faq-item__toggle::after {
    height: 2px;
  }
}

.faq-item__toggle::after {
  rotate: 90deg;
}

.faq-item.is-open .faq-item__toggle::after {
  rotate: 0deg;
}

/* 回答 */
.faq-item__answer {
  border: 2px solid var(--color-pink);
  border-top: none;
  border-radius: 0 0 10px 10px;
  background-color: #fff;
}

.faq-item__answer-inner {
  display: flex;
  gap: 16px;
  padding: 10px 24px 21px 15px;
}
@media screen and (max-width: 767px) {
  .faq-item__answer-inner {
    gap: 9px;
    padding: 8px 14px 10px 9px;
  }
}

.faq-item__answer-text {
  margin-top: 3px;
  font-size: 1rem;
  line-height: 1.75;
}
@media screen and (max-width: 767px) {
  .faq-item__answer-text {
    margin-top: 2px;
    font-size: 0.875rem;
    line-height: 1.6;
  }
}

/* ==========================================================================
   関連サイト
   ========================================================================== */
.related {
  padding: 114px 0 67px;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .related {
    padding: 49px 0 47px;
  }
}

/* 丸を重ねた見出し */
.related__title {
  display: flex;
  justify-content: center;
  color: #fff;
  font-size: 2.1rem;
  font-weight: var(--weight-semibold);
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .related__title {
    font-size: 1.125rem;
  }
}

.related__title span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: var(--color-red);
  padding-bottom: 4.6px;
}
@media screen and (max-width: 767px) {
  .related__title span {
    width: 36px;
    height: 36px;
    padding-bottom: 3.2px;
  }
}

.related__title span + span {
  margin-left: -15.9px;
}
@media screen and (max-width: 767px) {
  .related__title span + span {
    margin-left: -9.5px;
  }
}

.related__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, 289px);
  justify-content: center;
  gap: 28px 62px;
  margin-top: 36px;
}
@media screen and (max-width: 767px) {
  .related__list {
    gap: 22px;
    margin-top: 31px;
  }
}

.related__item a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 70px;
  border: 1px solid #000;
  font-size: 1rem;
  transition: opacity 0.3s ease;
}

.related__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (hover: hover) {
  .related__item a:hover {
    opacity: 0.7;
  }
}

/*# sourceMappingURL=style.css.map */
