@charset "UTF-8";
.sec_title {
  font-size: 4rem;
  text-align: center;
  font-weight: 900; }
  @media (max-width: 768px) {
    .sec_title {
      font-size: 3.5rem; } }

.sec_title_sub {
  font-size: 0.9rem;
  color: #604c3f;
  text-align: center;
  letter-spacing: 0.2em;
  margin-top: 5px; }

.title img {
  width: 100%;
  height: auto; }

/*---------------------------
HEADER
---------------------------*/
header {
  background: url("../img/bg_01.png") center top no-repeat;
  background-size: 100%;
  text-align: center;
  padding-top: 10vw;
  padding-bottom: 2.3vw; }
  @media (max-width: 768px) {
    header {
      background-size: 130%; } }
  header h1 img {
    width: 40%;
    height: auto; }

main.main {
  background: url("../img/bg_02.png") center top repeat-y;
  background-size: 100%;
  text-align: center;
  padding-bottom: 10cqw; }
  @media (max-width: 768px) {
    main.main {
      background: url("../img/bg_02sp.png") center top repeat-y;
      background-size: 130%;
      background-position-y: -3.8vw; } }

h2.title {
  margin-bottom: 5vw; }
  @media (max-width: 768px) {
    h2.title {
      margin-bottom: 4vw; } }
  h2.title img {
    width: 100%;
    height: auto; }
    @media (max-width: 768px) {
      h2.title img {
        width: 80%; } }

/*---------------------------
sec01
---------------------------*/
section {
  margin: 0 auto; }

.event-images {
  padding-top: 10vw;
  padding-bottom: 10vw; }
  .event-images .event-main {
    width: 90%;
    margin: 0 auto 10vw; }
    .event-images .event-main img {
      width: 100%;
      height: auto; }
  .event-images .event-posters {
    width: 90%;
    margin: auto; }
    .event-images .event-posters img {
      width: 100%;
      height: auto; }
      .event-images .event-posters img:not(:last-child) {
        margin-bottom: 2vw; }

.sec01 {
  margin-bottom: 8cqw;
  /* =====================================================
    カレンダーLP（添付デザイン完全再現）
  ===================================================== */
  /* ------------------------------
    カラー定義（画像ベース）
  ------------------------------ */
  /* ------------------------------
    カレンダー本体
  ------------------------------ */
  /* 本日以前のイベント日 */
  /* 直近イベント日（未来1日） */
  /* 今日（任意で上書き） */
  /* ------------------------------
    結果画像エリア
  ------------------------------ */
  /* ------------------------------
    過去月アーカイブ（アコーディオン）
  ------------------------------ */
  /* スマホ微調整 */
  /* ------------------------------
    店舗ポスター
  ------------------------------ */
  /* ------------------------------
  LINKエリア
  ------------------------------ */
  /* ------------------------------
    日付バナー
  ------------------------------ */ }
  .sec01 .calendar {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    margin: 32px auto;
    background: #2f2f2f;
    /* --------------------------
      曜日ヘッダ
    -------------------------- */
    /* --------------------------
      日付セル
    -------------------------- */
    /* span / a 共通（見た目完全統一） */
    /* ホバー・装飾完全無効化 */
    /* --------------------------
      土曜日 × イベントあり のみ hover 時に白文字
    -------------------------- */
    /* --------------------------
      日曜・土曜（日付）
    -------------------------- */
    /* --------------------------
      空セル
    -------------------------- */
    /* --------------------------
      今日（装飾なし）
    -------------------------- */ }
    @media (max-width: 768px) {
      .sec01 .calendar {
        width: 95%; } }
    .sec01 .calendar th,
    .sec01 .calendar td {
      border: 2px solid #00abb7;
      text-align: center;
      vertical-align: middle;
      padding: 0;
      background: #333333; }
    .sec01 .calendar thead th {
      height: 48px;
      font-size: 20px;
      font-weight: 800;
      letter-spacing: 0.08em;
      color: #cccccc;
      background: #333333; }
      @media (max-width: 768px) {
        .sec01 .calendar thead th {
          font-size: 3vw;
          height: auto;
          padding: 2vw 0; } }
    .sec01 .calendar thead th:first-child {
      color: #ff004a; }
    .sec01 .calendar thead th:last-child {
      color: #00abb7; }
    .sec01 .calendar td {
      height: 96px;
      font-size: 44px;
      font-weight: 800;
      color: #cccccc; }
      @media (max-width: 768px) {
        .sec01 .calendar td {
          height: auto;
          font-size: 6vw;
          padding: 3vw 0; } }
    .sec01 .calendar td span,
    .sec01 .calendar td a {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      color: inherit;
      text-decoration: none;
      background: transparent;
      pointer-events: auto; }
    .sec01 .calendar td a:hover {
      background: #00abb7;
      color: inherit; }
    .sec01 .calendar td:nth-child(7) a:hover {
      color: #fff; }
    .sec01 .calendar tbody td:nth-child(1) {
      color: #ff004a; }
    .sec01 .calendar tbody td:nth-child(7) {
      color: #00abb7; }
    .sec01 .calendar td:empty {
      background: #1a1a1a; }
    .sec01 .calendar td.is-today {
      background: #333333; }
      .sec01 .calendar td.is-today span,
      .sec01 .calendar td.is-today a {
        border: none; }
  .sec01 .calendar td.has-event-past {
    background-color: #444; }
  .sec01 .calendar td.has-event-next {
    background-color: #444; }
  .sec01 .event-archives-day {
    margin-top: 40px;
    padding-top: 40px; }
    @media (max-width: 768px) {
      .sec01 .event-archives-day {
        margin-top: 5vw;
        padding-top: 3vw; } }
    .sec01 .event-archives-day p {
      margin-bottom: 12px;
      font-size: 14px;
      font-weight: 700;
      color: #fff;
      text-align: center; }
    .sec01 .event-archives-day img {
      width: 100%;
      height: auto;
      display: block;
      margin: auto; }
      @media (max-width: 768px) {
        .sec01 .event-archives-day img {
          width: 90%; } }
  .sec01 .calendar-archives {
    margin-top: 60px; }
  .sec01 .archive-month {
    border-top: 1px solid #666; }
  .sec01 .archive-title {
    width: 100%;
    background: none;
    border: none;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 20px 0;
    text-align: center;
    cursor: pointer;
    position: relative; }
    @media (max-width: 768px) {
      .sec01 .archive-title {
        font-size: 4vw;
        padding: 4vw 0; } }
    .sec01 .archive-title::after {
      content: "＋";
      position: absolute;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
      font-size: 2rem; }
      @media (max-width: 768px) {
        .sec01 .archive-title::after {
          right: 2%;
          font-size: 5vw; } }
    .sec01 .archive-title.is-open::after {
      content: "－"; }
  .sec01 .archive-body {
    display: none;
    padding-bottom: 20px; }
  .sec01 .archive-month.is-open .archive-body {
    display: block; }
  .sec01 .calendar-store-posters {
    width: 90%;
    margin: 8cqw auto 8cqw; }
    .sec01 .calendar-store-posters .store-poster {
      margin-top: 3cqw; }
      .sec01 .calendar-store-posters .store-poster img {
        width: 100%;
        height: auto; }
  .sec01 .btn_box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1cqw 4cqw;
    margin-bottom: 8cqw;
    flex-wrap: wrap; }
    @media (max-width: 768px) {
      .sec01 .btn_box {
        width: 90%;
        margin: 0 auto 8cqw; } }
    .sec01 .btn_box a {
      display: block;
      width: 100%; }
      .sec01 .btn_box a:hover {
        transform: scale(1.05);
        transition: all 1s; }
      .sec01 .btn_box a img {
        width: 100%;
        height: auto; }
  .sec01 .event-date-banner {
    margin-bottom: 30px; }
    .sec01 .event-date-banner img {
      width: 70%;
      height: auto;
      display: block;
      margin: auto; }
      @media (max-width: 768px) {
        .sec01 .event-date-banner img {
          width: 80%; } }
  @media (max-width: 768px) {
    .sec01 .event-date-banner {
      margin-bottom: 12px; } }

.access .map_box {
  position: relative;
  width: 90%;
  margin: auto;
  padding-top: 56.25%;
  overflow: hidden; }
  .access .map_box iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0; }

/*---------------------------
privacy
---------------------------*/
.privacy {
  width: 100%;
  margin: 10cqw auto 0;
  padding: 3% 1%;
  text-align: center;
  color: #fff; }
  @media (max-width: 768px) {
    .privacy {
      width: 80%;
      padding: 15px 2%; } }
  .privacy .privacy_title {
    width: 90%;
    display: inline-block;
    padding: 9px 40px;
    font-size: 1.2vw;
    font-weight: 700;
    letter-spacing: 0.15em;
    border: 1px solid #fff;
    margin-bottom: 15px; }
    @media (max-width: 768px) {
      .privacy .privacy_title {
        font-size: 2.5vw; } }
  .privacy .text {
    font-size: 1cqw;
    line-height: 1.3;
    margin: 0 auto 15px;
    font-weight: 500;
    color: #fff; }
    @media (max-width: 768px) {
      .privacy .text {
        font-size: 1.3vw; } }
  .privacy .url {
    display: inline-block;
    padding: 12px 25px;
    background: #fff;
    color: #000;
    font-size: 1.2vw;
    font-weight: 700; }
    @media (max-width: 768px) {
      .privacy .url {
        font-size: 1.7vw; } }
    .privacy .url a {
      color: #000;
      word-break: break-all; }
