@charset "UTF-8";

/*
 * ==========================================================
 * ひばサポ main.css 整理版
 * - 既存CSSを機能ごとに再配置
 * - Program一覧 / 詳細の重複を整理
 * - 一覧と詳細のスタイル干渉を抑制
 * - Header / MV / Footer 等のレスポンシブ指定を各セクションへ集約
 * ==========================================================
 */


/* ------------------------------
  Base
  color: #019b64
------------------------------ */

html {
  font-size: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

html,
body {
  overflow-x: hidden;
}

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

a {
  color: inherit;
  text-decoration: none;
  transition: .2s;
}

a:hover {
  opacity: .7;
}

ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

.program-head-dl dd ul,
.program-bottom-dl dd ul {
  list-style: disc;
  padding-left: 1.5em;
}

.program-head-dl dd ol,
.program-bottom-dl dd ol {
  list-style: decimal;
  padding-left: 1.5em;
}



/* ------------------------------
  Loader
------------------------------ */

.loader {
  position: fixed;
  inset: 0;
  background: #f7f7f7;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 99999;
  opacity: 1;
  visibility: visible;
  transition:
    opacity .4s ease,
    visibility .4s ease;
}

.loader-logo {
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity .6s ease,
    transform .6s ease;
}

.loader-logo img {
  max-width: 160px;
  height: auto;
}

.loader.is-show .loader-logo {
  opacity: 1;
  transform: translateY(0);
}

.loader.is-loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* ------------------------------
  Layout
------------------------------ */

.inner {
  width: min(1200px, calc(100% - 40px));
  margin-inline: auto;
}

.front-section .inner {
  padding: 64px 0;
}

.basic-section{
  position: relative;
}

.basic-section .inner {
  padding: 128px 0;
}

.illust {
  position: absolute;
  width: 200px;
  z-index: 10;
  pointer-events: none;
}

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




.front-title h1 {
  font-size: 2.6rem;
}

h2 {
  font-size: 2rem;
}

.marker {
  background-color: #ebea58;
}

/* ------------------------------
  Button
------------------------------ */

.more-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: #000;
  font-weight: 700;
}

.circle {
  position: relative;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #00A56A;
  flex-shrink: 0;
}

.circle::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translate(-65%, -50%) rotate(45deg);
}


/* ==========================================================
   Header / Hamburger / Drawer
========================================================== */


/* ------------------------------
  Header
------------------------------ */

.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 30px 120px 30px 30px;
  position: relative;
  z-index: 100;
}
.logo-wrapper {
  display: flex;
  align-items: center;
}
.logo-wrapper .logo{
  width: 180px;
  margin-right: 16px;
}
.logo-wrapper a {
  display: block;
}

.logo-wrapper img {
  display: block;
  width: 180px;
  height: auto;
}

.logo-wrapper p{
    flex-shrink:0;
    font-size: .9rem;
}

.nav-wrapper {
  display: flex;
  align-items: center;
  gap: 32px;
}

.global-nav ul {
  display: flex;
  align-items: center;
  gap: 28px;
  margin: 0;
  padding: 0;
}

.global-nav li {
  margin: 0;
}

.global-nav a {
  font-weight: 500;
  transition: .25s;
}

.global-nav a:hover {
  color: #019b64;
}

/* ------------------------------
  Hamburger
------------------------------ */

.hamburger {
  position: fixed;
  top: 18px;
  right: 24px;
  width: 60px;
  height: 60px;
  border: none;
  border-radius: 50%;
  background: #019b64;
  cursor: pointer;
  z-index: 10001;
  transition: .3s;
}

.hamburger:hover {
  transform: scale(1.05);
}

.hamburger span {
  position: absolute;
  left: 50%;
  width: 24px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transform: translateX(-50%);
  transition: .3s;
}

.hamburger span:nth-child(1) {
  top: 20px;
}

.hamburger span:nth-child(2) {
  top: 29px;
}

.hamburger span:nth-child(3) {
  top: 38px;
}

body.is-open .hamburger {
  background: #fff;
}

body.is-open .hamburger span {
  background: #019b64;
}

body.is-open .hamburger span:nth-child(1) {
  top: 29px;
  transform: translateX(-50%) rotate(45deg);
}

body.is-open .hamburger span:nth-child(2) {
  opacity: 0;
}

body.is-open .hamburger span:nth-child(3) {
  top: 29px;
  transform: translateX(-50%) rotate(-45deg);
}

/* ------------------------------
  Drawer
------------------------------ */

.drawer-nav {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #019b64;
  opacity: 0;
  visibility: hidden;
  transition: .35s;
  z-index: 10000;
}

body.is-open .drawer-nav {
  opacity: 1;
  visibility: visible;
}

.drawer-nav ul {
  margin: 0;
  padding: 0;
  text-align: center;
}

.drawer-nav li {
  margin: 24px 0;
}

.drawer-nav a {
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  transition: .25s;
}

.drawer-nav a:hover {
  opacity: .7;
}

body.is-open {
  overflow: hidden;
}


@media screen and (max-width: 1024px) {
  .site-header {
    padding: 24px 100px 24px 24px;
  }

  .global-nav ul {
    gap: 20px;
  }
}

@media screen and (max-width: 767px) {
  .site-header {
    padding: 18px 72px 18px 16px;
  }

  .logo-wrapper {
    display: block;
  }

  .logo-wrapper a {
    width: 138px;
  }

  .logo-wrapper img {
    max-width: none;
    margin-bottom: 4px;
  }

  .global-nav {
    display: none;
  }

  .hamburger {
    width: 52px;
    height: 52px;
    top: 14px;
    right: 14px;
  }

  .hamburger span:nth-child(1) {
    top: 17px;
  }

  .hamburger span:nth-child(2) {
    top: 25px;
  }

  .hamburger span:nth-child(3) {
    top: 33px;
  }

  body.is-open .hamburger span:nth-child(1),
  body.is-open .hamburger span:nth-child(3) {
    top: 25px;
  }

  .drawer-nav a {
    font-size: 1.6rem;
  }

  .drawer-nav li {
    margin: 20px 0;
  }
}


/* ==========================================================
   Main View
========================================================== */


/* ------------------------------
  Main View
------------------------------ */

.mv-section {
  overflow: hidden;
  padding: 32px 0 16px;
  position: relative;
  background: #f5f5f5;
}

.mv-swiper {
  width: 100%;
  overflow: visible;
}

.mv-swiper .swiper-wrapper {
  align-items: center;
}

.mv-swiper .swiper-slide {
  width: 60%;
  flex-shrink: 0;
  opacity: .35;
  transition: .5s;
}

.mv-swiper .swiper-slide-active {
  opacity: 1;
}

.mv-swiper .swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
}

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

.number-wrapper .title {
  font-size: 1rem;
  font-weight: bold;
  margin-right: 8px;
}

.number-wrapper .big {
  font-size: 3rem;
  font-weight: bold;
  color: #019b64;
}

.illust-mv {
  bottom: 2%;
  left: 8%;
}


@media screen and (max-width: 1024px) {
  .mv-swiper .swiper-slide {
    width: 76%;
  }
}

@media screen and (max-width: 767px) {
  .mv-section {
    padding: 20px 0 16px;
  }

  .mv-swiper .swiper-slide {
    width: 86%;
  }

  .mv-swiper .swiper-slide img {
    border-radius: 14px;
  }

  .number-wrapper {
    margin-top: 8px;
  }

  .number-wrapper .title {
    display: block;
    margin-right: 0;
    font-size: .85rem;
  }

  .number-wrapper .big {
    font-size: 2.2rem;
    line-height: 1.2;
  }

  .illust-mv {
    width: 96px;
    left: 4%;
    bottom: 4%;
  }
}


/* ==========================================================
   Top Banner
========================================================== */


/* ------------------------------
  Top Banner
------------------------------ */

.top-banner-section {
  padding: 48px 0;
}

.top-banner-section .inner {
  position: relative;
}

.top-banner-swiper {
  position: relative;
}

.top-banner-swiper .swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
}

.top-banner-prev,
.top-banner-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  z-index: 10;
  cursor: pointer;
}

.top-banner-prev {
  left: -20px;
}

.top-banner-next {
  right: -20px;
}

.top-banner-prev::before,
.top-banner-next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
}

.top-banner-prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}

.top-banner-next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}


@media screen and (max-width: 767px) {
  .top-banner-section {
    padding: 28px 0;
  }

  .top-banner-prev,
  .top-banner-next {
    width: 36px;
    height: 36px;
  }

  .top-banner-prev {
    left: -8px;
  }

  .top-banner-next {
    right: -8px;
  }
}


/* ==========================================================
   Front Page
========================================================== */


/* ------------------------------
  Front Page
------------------------------ */

.section-divider {
  height: clamp(320px, 30vh, 500px);
}

.section-divider img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.about-section .inner {
  position: relative;
}

.about-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  position: relative;
  margin-bottom: 80px;
}

.about-wrapper .pic {
  width: 50%;
}

.about-wrapper .text {
  width: 46%;
}

.about-wrapper .text p {
  line-height: 2;
  margin: 16px 0;
}

.illust-about {
  right: 0;
  bottom: 0;
  width: 440px;
}

.line-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  border-radius: 16px;
  background: #f7f7f7;
}

.line-wrapper .title {
  font-size: 1.4rem;
  font-weight: bold;
  color: #019b64;
}

.line-wrapper .desc {
  margin: 0 32px;
}


@media screen and (max-width: 767px) {
  .section-divider {
    height: 220px;
  }
}


/* ==========================================================
   Program 共通 / 一覧 / 詳細
========================================================== */

/* ---------- 共通：アイコン + テキスト ---------- */

.program-icon-text {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.program-icon-text img {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}


/* ==========================================================
   Program 一覧
========================================================== */

.home .program-section {
  background: #f7f7f7;
}

.illust-yasaiuriba {
  top: -80px;
  left: 15%;
}

.front-title {
  text-align: center;
  margin-bottom: 48px;
}

.front-title img {
  display: block;
  width: 64px;
  height: auto;
  margin: 0 auto;
}

.program-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  margin: 0;
  padding: 0;
}

.program-item a {
  display: block;
  height: 100%;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
}

.program-thumb {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.program-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.program-card-body {
  padding: 24px;
}

.program-title {
  margin: 0 0 16px;
  font-size: 1.15rem;
  line-height: 1.6;
}

.program-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 16px;
  font-size: 1rem;
}

.program-card-date {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.program-card-date img {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.program-meta .program-date {
  margin: 0;
}

/* 一覧では現在時間を非表示 */
.program-time {
  display: none;
}

.program-kimochi {
  margin-top: 16px;
  font-size: .9rem;
  line-height: 1.7;
}

.program-kimochi p {
  margin: 0;
}

.program-text {
  font-size: .9rem;
  line-height: 1.8;
}

.program-section .more-btn-wrapper {
  margin-top: 80px;
  text-align: center;
}


/* ---------- ステータス ---------- */

.program-status {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 5px 12px;
  border-radius: 999px;
  background: #019b64;
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.4;
}

.program-item.is-full .program-status {
  background: #e69138;
}

.program-item.is-end .program-status {
  background: #666;
}

.program-item.is-full .program-thumb::before,
.program-item.is-end .program-thumb::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
}

.program-item.is-full .program-thumb::before {
  content: "満員御礼";
  background: rgba(230, 145, 56, .55);
}

.program-item.is-end .program-thumb::before {
  content: "終了しました";
  background: rgba(0, 0, 0, .55);
}


/* ==========================================================
   Program 詳細
========================================================== */


.single-tribe_events .program-title {
  text-align: center;
}

.single-tribe_events .program-title img {
  display: block;
  margin: 0 auto 16px;
}

.single-tribe_events .program-title h1 {
  margin: 0;
  text-align: center;
}
.program-title img{
  width: 100px;
  height: auto;
  margin: 0 auto;
}
.program-title h1{
  font-size: 2.5rem;
}


/* 詳細：募集状況 */
.single-tribe_events .program-detail-status {
  display: inline-block;
  margin-top: 30px;
  margin-bottom: 30px;
  padding: 5px 16px;
  border-radius: 100px;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
}

/* 募集中 */
.single-tribe_events .program-detail-status.is-open {
  background: #019b64;
}

/* 残りわずか */
.single-tribe_events .program-detail-status.is-few {
  background: #e6a700;
}

/* 満員御礼 */
.single-tribe_events .program-detail-status.is-full {
  background: #e69138;
}

/* 受付終了・イベント終了 */
.single-tribe_events .program-detail-status.is-closed,
.single-tribe_events .program-detail-status.is-end {
  background: #777;
}

/* ==================================================
   TAG
================================================== */

.tag-area {
  margin-top: 20px;
}

.tag-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;

  margin: 0;
  padding: 0;
  list-style: none;
}

.tag-list li {
  margin: 0;
  padding: 0;
}

.tag-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 6px 14px;

  color: #00a66a;
  background: #fff;
  border: 1px solid #00a66a;
  border-radius: 100px;

  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;

  transition: .3s;
}

.tag-list a:hover {
  color: #fff;
  background: #00a66a;
}

/* 詳細ページのみ */
.program-detail-tags {
  margin: 15px 0 30px;
}



.single-tribe_events .program-mv {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  min-height: 320px;
  overflow: hidden;
}

.single-tribe_events .program-mv-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.single-tribe_events .program-mv-bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
}

.single-tribe_events .program-mv h1 {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 18px 48px;
  background: #019b64;
  color: #fff;
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.3;
}

.single-tribe_events .program-content {
  padding: 50px 0 100px;
}

.single-tribe_events .program-content .inner {
  margin-inline: auto;
}

.single-tribe_events .program-catch {
  margin-bottom: 40px;
}

.single-tribe_events .program-catch img {
  display: block;
  width: 100%;
  height: auto;
}

.program-head-dl,
.program-bottom-dl{}
.program-head-dl dl,
.program-bottom-dl dl
{
  display: flex;
  background: #f7f7f7;
  width: 100%;
  margin-bottom: 2px;
}
.program-head-dl dt,
.program-bottom-dl dt{
  background-color: #019b64;
  color: #fff;
  padding: 1rem;
  width: 25%;
}
.program-head-dl dd,
.program-bottom-dl dd{
  padding: 1rem;
  width: 75%;
}

/* Google Map */
.venue-map {
  width: 100%;
}

.venue-map iframe {
  display: block;
  width: 100%;
  height: 400px;
  border: 0;
}

@media screen and (max-width: 767px) {
  .venue-map iframe {
    height: 300px;
  }
}


/* 詳細：アイコン付き情報 */
.single-tribe_events .program-detail-icon-text {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  line-height: 1.6;
}

.single-tribe_events .program-detail-icon-text img {
  width: 1.5em;
  height: 1.5em;
  flex-shrink: 0;
}

.single-tribe_events .program-date {
  margin: 0 0 25px;
}

.single-tribe_events .program-date .date,
.single-tribe_events .program-date .time {
  display: inline-block;
}

/* ホンノキモチ */
.single-tribe_events .honno-kimochi-wrapper {
  position: relative;
  margin: 0 0 30px;
  padding: 2rem;
  background: #f7f7f7;
  border-radius: 10px;
}

.single-tribe_events .honno-kimochi-wrapper .title {
  position: absolute;
  top: -1rem;
  left: 0;
}

.single-tribe_events .program-honno-kimochi {
  margin: 0;
}

/* 詳細情報 */



/* Gutenberg本文 */
.single-tribe_events .program-body {
  margin: 50px 0;
}

.single-tribe_events .program-body > *:first-child {
  margin-top: 0;
}

.single-tribe_events .program-body > *:last-child {
  margin-bottom: 0;
}

.single-tribe_events .program-body p {
  line-height: 1.9;
}

.single-tribe_events .program-body h2,
.single-tribe_events .program-body h3,
.single-tribe_events .program-body h4 {
  margin-top: 50px;
  margin-bottom: 20px;
}

.single-tribe_events .program-body img {
  max-width: 100%;
  height: auto;
}

/* The Events Calendar 詳細ページで不要なもの */
.single-tribe_events .tribe-block__venue,
.single-tribe_events .tribe-block__organizer,
.single-tribe_events .tribe-block__event-price,
.single-tribe_events .tribe-events-event-cost,
.single-tribe_events .tribe-block__event-website,
.single-tribe_events .tribe-block__events-link,
.single-tribe_events .tribe-events-c-subscribe-dropdown,
.single-tribe_events .tribe-events-c-subscribe-dropdown__container,
.single-tribe_events .tribe-events-cal-links {
  display: none !important;
}


/* ---------- Program Tablet ---------- */

@media screen and (max-width: 1024px) {
  .program-list {
    gap: 24px;
  }
}


/* ---------- Program Smartphone ---------- */

@media screen and (max-width: 767px) {
  .program-section .section-title {
    margin-bottom: 32px;
  }

  .program-section .section-title img {
    width: 52px;
    margin-bottom: 12px;
  }

  .program-list {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .program-card-body {
    padding: 20px;
  }

  .program-title {
    margin-bottom: 12px;
    font-size: 1rem;
  }

  .program-meta {
    margin-bottom: 12px;
    font-size: .85rem;
  }

  .program-text,
  .program-kimochi {
    font-size: .85rem;
  }

  .program-section .more-btn-wrapper {
    margin-top: 48px;
  }

  .program-item.is-full .program-thumb::before,
  .program-item.is-end .program-thumb::before {
    font-size: 1.15rem;
  }

  .single-tribe_events .program-content {
    padding: 30px 0 70px;
  }

  .single-tribe_events .program-catch {
    margin-bottom: 25px;
  }

  .single-tribe_events .program-detail-icon-text {
    gap: 8px;

  }

  .single-tribe_events .program-detail-icon-text img {
    width: 1.4em;
    height: 1.4em;
  }


  .single-tribe_events .program-body {
    margin: 35px 0;
  }
}


/* ==========================================================
   プログラム詳細：お申し込みボタン
========================================================== */
.line-program-title{
  text-align: center;
}
.line-program-title span{}

.single-tribe_events .program-application {
  margin-top: 50px;
  text-align: center;
}

.single-tribe_events .program-application-btn {
  position: relative;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: min(100%, 420px);
  min-height: 70px;
  padding: 18px 60px;

  background: #ff9900;
  color: #fff;

  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;

  border-radius: 8px;

  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

/* 矢印 */
.single-tribe_events .program-application-btn::after {
  content: "→";

  position: absolute;
  top: 50%;
  right: 24px;

  transform: translateY(-50%);

  font-size: 1.3em;
  line-height: 1;
}

.single-tribe_events .program-application-btn:hover {
  opacity: 0.8;
  transform: translateY(-2px);
}

.single-tribe_events .program-application-btn span {
  color: inherit;
}

/* SP */
@media screen and (max-width: 767px) {

  .single-tribe_events .program-application {
    margin-top: 40px;
  }

  .single-tribe_events .program-application-btn {
    width: 100%;
    min-height: 64px;
    padding: 16px 50px;
    font-size: 1rem;
  }

  .single-tribe_events .program-application-btn::after {
    right: 20px;
  }
}



/* ==========================================================
   Simple Calendar
========================================================== */


/* ------------------------------
calendar
------------------------------ */
.calendar-wrapper {
  margin-top: 48px;
}

.simple-calendar {
  width: 100%;
  margin: 0 auto;
  background: #fff;
  overflow: hidden;
}

.simple-calendar table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.simple-calendar th,
.simple-calendar td {
  border: 1px solid #e5e5e5;
  vertical-align: top;
}

.simple-calendar th {
  padding: 5px;
  background: #f7f7f7;
  font-weight: 700;
}

.simple-calendar td {
  padding:5px;
}

.simple-calendar .day {
  display: block;
  font-weight: 700;
  margin-bottom: 6px;
}

.simple-calendar .event-link {
  display: block;
  padding: 4px 6px;
  border-radius: 6px;
  background: #e9f8f1;
  color: #019b64;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.5;
}

.simple-calendar .event-link + .event-link{
  margin-top:4px;
}


.simple-calendar th.is-saturday,
{
  color: #2878c8;
}

.simple-calendar th.is-sunday
{
  color: #d85353;
}


/* ------------------------------
  Calendar Head
------------------------------ */

.simple-calendar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:16px;
  background:#019b64;
  color:#fff;
}

.simple-calendar-head span{
  flex:1;
  text-align:center;
  font-size:1.4rem;
  font-weight:700;
}

/* Prev / Next */

.calendar-nav{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-width:96px;
  height:42px;
  padding:0 18px;

  border:1px solid rgba(255,255,255,.35);
  border-radius:999px;

  background:rgba(255,255,255,.12);
  color:#fff;

  font-size:.9rem;
  font-weight:700;

  cursor:pointer;
  transition:.25s;
}

.calendar-nav:hover{
  background:#fff;
  color:#019b64;
}

.calendar-nav:active{
  transform:scale(.96);
}


  .simple-calendar td.is-today .day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #019b64;
  color: #fff;
  font-weight: 700;
}


@media screen and (max-width: 767px) {
  .simple-calendar-head {
    gap: 8px;
    padding: 16px 12px;
  }

  .simple-calendar-head span {
    font-size: 1rem;
  }

  .calendar-nav {
    min-width: 64px;
    height: 32px;
    padding: 0 10px;
    font-size: .75rem;
  }

  .simple-calendar td {
    height: 76px;
    padding: 6px;
  }

  .simple-calendar .event-link {
    font-size: .68rem;
    padding: 3px 4px;
  }
}


/* ==========================================================
   Report
========================================================== */


/* ------------------------------
  Report
------------------------------ */


.report-section{
  background:#f7f7f7;
  overflow:hidden;
}

.report-wrapper{
  display:grid;
  grid-template-columns:340px minmax(0, 1fr);
  gap:72px;
  align-items:start;
}

.report-head{
  position:relative;
}

.report-section .side-title{
  margin-bottom:32px;
}

.report-section .side-title img{
  display:block;
  width:64px;
  margin-bottom:16px;
}

.report-lead{
  margin:0 0 24px;
  line-height:2;
}

.report-more{
  margin-top:24px;
}

.report-list{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin:0;
  padding:0;
}

.report-item{
  margin:0;
}

.report-item a{
  display:flex;
  gap:16px;
  align-items:center;
}

.report-thumb{
  width:140px;
  aspect-ratio:4 / 3;
  flex-shrink:0;
  margin:0;
  overflow:hidden;
  border-radius:12px;
}

.report-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.report-body{
  flex:1;
  min-width:0;
}

.report-item-title{
  margin:0 0 12px;
  font-size:1.1rem;
  line-height:1.7;
}


.report-category,
.report-date {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: .9rem;
}

.report-category img,
.report-date img {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}


.illust-report-left{
  left:6%;
  top:-40px;
  width:150px;
}

.illust-report-right{
  right:8%;
  bottom:-10px;
  width:180px;
}

/* 一覧ページだけ */
.report-archive .report-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
}

@media (max-width: 767px) {
  .report-archive .report-list {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}


@media screen and (max-width: 767px) {
  .report-wrapper {
    display: block;
  }

  .report-head {
    margin-bottom: 40px;
  }

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

  .side-title img {
    width: 52px;
    margin-bottom: 12px;
  }

  .report-tag {
    margin-bottom: 32px;
  }

  .report-item a {
    gap: 16px;
    align-items: flex-start;
  }

  .report-thumb {
    width: 110px;
  }

  .report-title {
    font-size: .95rem;
    margin-bottom: 8px;
  }

  .report-date {
    font-size: .8rem;
  }

  .illust-report-left,
  .illust-report-right {
    display: none;
  }
}


/* ==========================================================
   Page 共通 / 固定ページ
========================================================== */


/* ------------------------------
  page 固定ページ 共通
------------------------------ */

.page-content {
  padding-top: 160px;
  padding-bottom: 160px;
}

.page-section {
  position: relative;
}

.page-section {
}

.page-section + .page-section {
  margin-top: 120px;
}

/* セクション内のinnerには上下余白を付けない */
.page-content .page-section > .inner {
  padding-top: 0;
  padding-bottom: 0;
}

@media screen and (max-width: 1024px) {

  .page-content {
    padding-top: 120px;
    padding-bottom: 120px;
  }

  .page-section + .page-section {
    margin-top: 96px;
  }

}

@media screen and (max-width: 767px) {

  .page-content {
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .page-section + .page-section {
    margin-top: 64px;
  }

}


/* ------------------------------
  page 固定ページ
------------------------------ */
.page-mv{
  position:relative;
}


.page-mv h1{
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.3;
  color: #fff;
}


.page-mv-image {
  width: 100%;
  height: 320px;
  object-fit: cover;
  display: block;
}



.page-mv-content {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  text-align: center;
}


/* ==========================================================
   About
========================================================== */


/* ------------------------------
  about
------------------------------ */
.about-main{}

.about-mv {
  display: flex;
}

.about-mv img{
width: 20%;
height: auto;
}

.about-head{
  text-align: center;


}
.about-head h1{
  font-size: 3rem;
}

.about-head .catch{
  font-size: 2rem;
  font-weight: bold;
}

.about-head .desc{
  margin:40px 0 80px;
}
.about-head .desc p{}
.about-head img{
  width: 100%;
  height: auto;
}

.purpose-section{}
.purpose-section .desc {
  margin-bottom: 48px;
}
.purpose-section .desc p{
  text-align: center;
}

.purpose-wrapper{
  display: flex;
  justify-content: space-between;
}
.purpose-wrapper .box{
  width: 48%;
}
.purpose-wrapper .box img{
  width: 100%;
  max-width: 60%;
  height: auto;
  margin: 0 auto;
}
.purpose-wrapper .box .title{
  text-align: center;
  font-size: 1.8rem;
  font-weight: bold;
}
.purpose-wrapper .box ul{
  list-style: none;
  margin: 0;
  padding: 0;
}
.purpose-wrapper .box li{
  text-align: center;
  border-radius: 9999px;
  border: 1px solid #000 ;
  padding: .5rem;
  margin: .5rem 0;
}


@media screen and (max-width: 1024px) {
  .illust-about {
    width: 320px;
    opacity: .9;
  }
}

@media screen and (max-width: 767px) {
  .about-wrapper {
    display: block;
    margin-bottom: 48px;
  }

  .about-wrapper .pic {
    width: 100%;
    margin-bottom: 24px;
  }

  .about-wrapper .pic img {
    width: 100%;
    border-radius: 12px;
  }

  .about-wrapper .text {
    width: 100%;
  }

  .about-wrapper .text p {
    line-height: 1.9;
    margin: 14px 0;
  }

  .illust-about {
    position: static;
    width: 220px;
    margin: 24px auto 0;
    opacity: 1;
  }

  .line-wrapper {
    display: block;
    padding: 24px 20px;
    text-align: center;
  }

  .line-wrapper .title {
    font-size: 1.15rem;
    margin-bottom: 12px;
  }

  .line-wrapper .desc {
    margin: 0 0 18px;
  }

  .line-wrapper .desc p {
    margin: 0;
  }

  .line-wrapper .btn-wrapper img {
    max-width: 220px;
    width: 100%;
  }
}


/* ==========================================================
   Footer Banner
========================================================== */


/* ------------------------------
  Footer Banner
------------------------------ */

.footer-banner-section{
  padding:32px 0;
}

.footer-banner-list{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:24px;
  margin:0;
  padding:0;
}

.footer-banner-list li{
  flex:0 0 240px;
  width:240px;
  list-style:none;
}

.footer-banner-list a{
  display:block;
  border:1px solid #e5e5e5;
}

.footer-banner-list a:hover{
  opacity:.8;
}

.footer-banner-list img{
  display:block;
  width:100%;
  height:auto;
}


@media screen and (max-width: 767px) {
  .footer-banner-section {
    padding: 32px 0;
  }

  .footer-banner-list {
    gap: 16px;
  }

  .footer-banner-list li {
    flex: 0 0 calc(50% - 8px);
    width: calc(50% - 8px);
  }
}


/* ==========================================================
   Footer
========================================================== */


/* ------------------------------
  Footer
------------------------------ */

.site-footer{
  background:#019b64;
  color:#fff;
  padding:88px 0;
}

.site-footer .inner{
  display:flex;
  flex-direction:column;
  align-items:center;
}

.footer-logo{
  text-align:center;
  margin-bottom:36px;
}

.footer-logo img{
  max-width: 120px;
  height: auto;
  display:block;
  margin:0 auto;
}

.footer-brand{
  text-align: center;
  margin-bottom: 48px;
}
.footer-brand .name{
  font-size: 2rem;
  font-weight: bold;
}
.footer-brand p{}

.footer-nav{
  margin-bottom:40px;
}

.footer-nav ul{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:28px;
  margin:0;
  padding:0;
}

.footer-nav li{
  list-style:none;
}

.footer-nav a{
  color:#fff;
  font-size:.95rem;
  font-weight:500;
}

.footer-nav a:hover{
  opacity:.7;
}

.copyright{
  margin:0;
  font-size:.85rem;
  opacity:.8;
  text-align:center;
}


@media screen and (max-width: 767px) {
  .site-footer {
    padding: 56px 0;
  }

  .footer-logo {
    margin-bottom: 32px;
  }

  .footer-logo img {
    width: 150px;
  }

  .footer-nav {
    margin-bottom: 32px;
  }

  .footer-nav ul {
    gap: 16px;
  }

  .footer-nav a {
    font-size: .85rem;
  }

  .copyright {
    font-size: .75rem;
    line-height: 1.8;
  }
}


/* ==========================================================
   Utility / Global Responsive
========================================================== */


/* ------------------------------
  Utility
------------------------------ */

.pc-only {
  display: block;
}

.sp-only {
  display: none;
}


@media screen and (max-width: 1024px) {
  .front-section .inner {
    padding: 56px 0;
  }

  .basic-section .inner {
    padding: 96px 0;
  }
}

@media screen and (max-width: 767px) {
  body {
    font-size: .9rem;
    line-height: 1.8;
  }

  .inner {
    width: calc(100% - 32px);
  }

  .front-section .inner {
    padding: 48px 0;
  }

  .basic-section .inner {
    padding: 64px 0;
  }

  h2 {
    font-size: 1.8rem;
    line-height: 1.4;
  }

  .pc-only {
    display: none;
  }

  .sp-only {
    display: block;
  }
}


/* ==========================================================
   The Events Calendar：月間カレンダー
   ※プラグイン上書きのため、このブロック内は元の記述順を維持
========================================================== */


/* ------------------------------
  The Events Calendar
  月間カレンダー
------------------------------ */

/* ==========================================================
   The Events Calendar
========================================================== */

/* ---------- 全体 ---------- */

.post-type-archive-tribe_events .tribe-events-view,
.post-type-archive-tribe_events .tribe-events{
    width:min(980px,calc(100% - 40px));
    margin-inline:auto;
}

.post-type-archive-tribe_events .tribe-common-l-container{
    max-width:none;
    width:100%;
    margin:0;
    padding:80px 0;
}


/* ---------- 不要部分 ---------- */

.post-type-archive-tribe_events .tribe-events-header__events-bar,
.post-type-archive-tribe_events .tribe-events-c-events-bar,
.post-type-archive-tribe_events .tribe-events-c-view-selector,
.post-type-archive-tribe_events .tribe-events-header__title{
    display:none !important;
}

.post-type-archive-tribe_events .tribe-events-header{
    display:block;
    margin:0;
    padding:0;
}


/* ==========================================================
   上部バー
========================================================== */

.post-type-archive-tribe_events .tribe-events-c-top-bar{

    display:flex;
    align-items:center;
    justify-content:center;

    position:relative;

    min-height:64px;

    padding:16px 120px;

    background:#019b64;

    color:#fff;
}

.post-type-archive-tribe_events .tribe-events-c-top-bar__datepicker{
    position:relative;
    z-index:2;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__datepicker-button{

    color:#fff;

    font-size:1.5rem;
    font-weight:700;

    background:none;
    border:none;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__datepicker-button-icon-svg{
    display:none;
}


/* ---------- 前月・翌月 ---------- */

.post-type-archive-tribe_events .tribe-events-c-top-bar__nav{

    position:absolute;
    inset:0;

    pointer-events:none;
}

.post-type-archive-tribe_events .tribe-events-c-top-bar__nav-list{

    height:100%;

    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:0 18px;
}

.post-type-archive-tribe_events .tribe-events-c-top-bar__nav-list-item{

    pointer-events:auto;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link{

    display:flex;
    align-items:center;
    justify-content:center;

    width:90px;
    height:38px;

    border-radius:999px;

    background:rgba(255,255,255,.15);

    border:1px solid rgba(255,255,255,.3);

    color:#fff;

    font-size:.9rem;

    transition:.3s;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link:hover{

    background:#fff;

    color:#019b64;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link-icon-svg{
    display:none;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link--prev::after{
    content:"前月";
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link--next::after{
    content:"翌月";
}


/* ==========================================================
   カレンダー
========================================================== */

.post-type-archive-tribe_events .tribe-events-calendar-month{

    width:100%;

    table-layout:fixed;

    border-collapse:collapse;
}


/* ---------- 曜日 ---------- */

.post-type-archive-tribe_events .tribe-events-calendar-month__header-column{

    background:#f7f7f7;

    border:1px solid #e5e5e5;

    text-align:center;

    height:42px;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column-title{

    color:#000;

    font-size:.9rem;

    font-weight:700;
}


/* ---------- 日付 ---------- */

.post-type-archive-tribe_events .tribe-events-calendar-month__day{

    height:125px;

    padding:6px;

    border:1px solid #e5e5e5;

    vertical-align:top;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__day-date-link{

    font-size:.9rem;

    font-weight:700;

    color:#000;
}


/* ---------- 今日 ---------- */

.post-type-archive-tribe_events
.tribe-events-calendar-month__day--current
.tribe-events-calendar-month__day-date-link{

    display:inline-flex;

    align-items:center;
    justify-content:center;

    width:30px;
    height:30px;

    border-radius:50%;

    background:#019b64;

    color:#fff;
}


/* ---------- 前月・翌月 ---------- */

.post-type-archive-tribe_events
.tribe-events-calendar-month__day--past-month,
.post-type-archive-tribe_events
.tribe-events-calendar-month__day--next-month{

    background:#fafafa;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__day--past-month
.tribe-events-calendar-month__day-date-link,

.post-type-archive-tribe_events
.tribe-events-calendar-month__day--next-month
.tribe-events-calendar-month__day-date-link{

    color:#aaa;
}


/* ==========================================================
   イベント
========================================================== */

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event-datetime{

    display:none;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event{

    margin-top:4px;

    padding:4px 6px;

    border-radius:6px;

    background:#e9f8f1;

    border:none;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event-title{

    color:#019b64;

    font-size:.78rem;

    font-weight:700;

    line-height:1.5;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event-title a{

    color:#019b64;
}


/* ---------- Subscribe ---------- */

.post-type-archive-tribe_events
.tribe-events-c-subscribe-dropdown__container{

    display:flex;

    justify-content:flex-end;

    margin-top:24px;
}


/* ==========================================================
   Tablet
========================================================== */

@media (max-width:1024px){

.post-type-archive-tribe_events .tribe-common-l-container{

padding:64px 0;

}

.post-type-archive-tribe_events
.tribe-events-calendar-month__day{

height:110px;

}

}


/* ==========================================================
   Smartphone
========================================================== */

@media (max-width:767px){

.post-type-archive-tribe_events .tribe-common-l-container{

padding:48px 0;

}

.post-type-archive-tribe_events
.tribe-events-c-top-bar{

padding:12px 72px;

min-height:56px;

}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__datepicker-button{

font-size:1rem;

}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link{

width:60px;

height:30px;

font-size:.7rem;

}

.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column{

height:32px;

}

.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column-title{

font-size:.7rem;

}

.post-type-archive-tribe_events
.tribe-events-calendar-month__day{

height:78px;

padding:3px;

}

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event{

padding:2px 4px;

margin-top:2px;

}

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event-title{

font-size:.56rem;

line-height:1.3;

}

}

/* ==========================================================
   The Events Calendar
   曜日と日付列の最終調整
========================================================== */

/* カレンダー全体 */
.post-type-archive-tribe_events
.tribe-events-calendar-month {
  display: table !important;
  width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
}

/* 曜日エリア */
.post-type-archive-tribe_events
.tribe-events-calendar-month__header {
  display: table-header-group !important;
}

/* 実際のtrには専用クラスがないため、直接指定 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__header > tr {
  display: table-row !important;
}

/* 曜日セル */
.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column {
  display: table-cell !important;
  width: 14.285714% !important;
  height: 42px !important;
  padding: 5px !important;
  border: 1px solid #e5e5e5 !important;
  background: #f7f7f7 !important;
  text-align: center !important;
  vertical-align: middle !important;
}

/* 曜日の文字 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column-title {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #000 !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-align: center !important;
}

/* 日付エリア */
.post-type-archive-tribe_events
.tribe-events-calendar-month__body {
  display: table-row-group !important;
}

/* 各週 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__body > tr {
  display: table-row !important;
}

/* 日付セル */
.post-type-archive-tribe_events
.tribe-events-calendar-month__day {
  display: table-cell !important;
  width: 14.285714% !important;
  height: 125px !important;
  padding: 6px !important;
  border: 1px solid #e5e5e5 !important;
  vertical-align: top !important;
}

@media screen and (max-width: 767px) {

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__header-column {
    height: 34px !important;
    padding: 3px 1px !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__header-column-title {
    font-size: .68rem !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__day {
    height: 76px !important;
    padding: 3px !important;
  }
}

/* ==========================================================
   The Events Calendar
   最終仕上げ
========================================================== */

/* 全体の角を整える */
.post-type-archive-tribe_events
.tribe-events-calendar-month {
  overflow: hidden;
  border-radius: 0 0 8px 8px;
}

/* ==========================================================
   上部ナビゲーション
========================================================== */

.post-type-archive-tribe_events
.tribe-events-c-top-bar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  position: relative !important;

  min-height: 64px !important;
  margin: 0 !important;
  padding: 12px 120px !important;

  border-radius: 8px 8px 0 0 !important;
  background: #019b64 !important;
  color: #fff !important;
}

/* 月・年 */
.post-type-archive-tribe_events
.tribe-events-c-top-bar__datepicker {
  position: relative !important;
  z-index: 2 !important;
  margin: 0 !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__datepicker-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  background: transparent !important;
  color: #fff !important;

  font-size: 1.35rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: .04em !important;
}

/* 月選択の矢印を非表示 */
.post-type-archive-tribe_events
.tribe-events-c-top-bar__datepicker-button-icon-svg {
  display: none !important;
}

/* 前月・翌月エリア */
.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav {
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
  pointer-events: none !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-list {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;

  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 18px !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-list-item {
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: auto !important;
}

/* 前月・翌月ボタン */
.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-width: 88px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 18px !important;

  border: 1px solid rgba(255, 255, 255, .4) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .12) !important;
  color: #fff !important;

  font-size: .85rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;

  transition:
    background .2s ease,
    color .2s ease !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link:hover {
  background: #fff !important;
  color: #019b64 !important;
  opacity: 1 !important;
}

/* 標準矢印を非表示 */
.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link-icon-svg {
  display: none !important;
}

/* テキストを差し替え */
.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link--prev {
  font-size: 0 !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link--prev::before {
  content: "←";
  margin-right: 6px;
  font-size: .85rem;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link--prev::after {
  content: "前月";
  font-size: .85rem;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link--next {
  font-size: 0 !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link--next::before {
  content: "翌月";
  font-size: .85rem;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link--next::after {
  content: "→";
  margin-left: 6px;
  font-size: .85rem;
}

/* ==========================================================
   曜日
========================================================== */

.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column {
  height: 42px !important;
  background: #f7f7f7 !important;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column-title {
  font-size: .82rem !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
}

/* 土曜日 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column:nth-child(6)
.tribe-events-calendar-month__header-column-title {
  color: #2878c8 !important;
}

/* 日曜日 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__header-column:nth-child(7)
.tribe-events-calendar-month__header-column-title {
  color: #d85353 !important;
}

/* ==========================================================
   日付セル
========================================================== */

.post-type-archive-tribe_events
.tribe-events-calendar-month__day {
  transition: background .2s ease !important;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__day:hover {
  background: #fbfdfc !important;
}

/* 日付 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__day-date {
  margin: 0 0 6px !important;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__day-date-link {
  font-size: .9rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

/* 前月・翌月の日付 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__day--past-month,
.post-type-archive-tribe_events
.tribe-events-calendar-month__day--next-month {
  background: #fafafa !important;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__day--past-month
.tribe-events-calendar-month__day-date-link,
.post-type-archive-tribe_events
.tribe-events-calendar-month__day--next-month
.tribe-events-calendar-month__day-date-link {
  color: #aaa !important;
}

/* ==========================================================
   イベント
========================================================== */

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event {
  margin: 5px 0 0 !important;
  padding: 5px 7px !important;

  border: 0 !important;
  border-radius: 5px !important;
  background: #e9f8f1 !important;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event:hover {
  background: #dff4ea !important;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event-title {
  margin: 0 !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
}

.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event-title-link {
  color: #017c50 !important;
}

/* 時刻を非表示 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__calendar-event-datetime {
  display: none !important;
}

/* ==========================================================
   カレンダー連携ボタン
========================================================== */

.post-type-archive-tribe_events
.tribe-events-c-subscribe-dropdown__container {
  display: flex !important;
  justify-content: flex-end !important;
  margin-top: 28px !important;
}

.post-type-archive-tribe_events
.tribe-events-c-subscribe-dropdown__button {
  border: 1px solid #019b64 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #019b64 !important;
}

.post-type-archive-tribe_events
.tribe-events-c-subscribe-dropdown__button:hover {
  background: #019b64 !important;
  color: #fff !important;
}

/* ==========================================================
   Smartphone
========================================================== */

@media screen and (max-width: 767px) {

  .post-type-archive-tribe_events
  .tribe-events-view,
  .post-type-archive-tribe_events
  .tribe-events {
    width: calc(100% - 24px) !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-c-top-bar {
    min-height: 56px !important;
    padding: 10px 68px !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-c-top-bar__datepicker-button {
    font-size: 1rem !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-c-top-bar__nav-list {
    padding: 0 8px !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-c-top-bar__nav-link {
    min-width: 56px !important;
    height: 30px !important;
    padding: 0 8px !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-c-top-bar__nav-link--prev::before,
  .post-type-archive-tribe_events
  .tribe-events-c-top-bar__nav-link--next::after {
    display: none !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-c-top-bar__nav-link--prev::after,
  .post-type-archive-tribe_events
  .tribe-events-c-top-bar__nav-link--next::before {
    margin: 0 !important;
    font-size: .7rem !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__header-column-title {
    font-size: .68rem !important;
    letter-spacing: 0 !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__day {
    height: 76px !important;
    padding: 3px !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__day-date {
    margin-bottom: 3px !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__day-date-link {
    font-size: .7rem !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__calendar-event {
    margin-top: 2px !important;
    padding: 2px 3px !important;
    border-radius: 3px !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-calendar-month__calendar-event-title {
    font-size: .55rem !important;
    line-height: 1.3 !important;
  }

  .post-type-archive-tribe_events
  .tribe-events-c-subscribe-dropdown__container {
    justify-content: center !important;
  }
}

/* ==========================================================
   日付サイズをイベントの有無にかかわらず統一
========================================================== */

.post-type-archive-tribe_events
.tribe-events-calendar-month__day-date,
.post-type-archive-tribe_events
.tribe-events-calendar-month__day-date-link,
.post-type-archive-tribe_events
.tribe-events-calendar-month__day-date time {
  font-size: .9rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

/* リンクではない日付にも同じ表示を適用 */
.post-type-archive-tribe_events
.tribe-events-calendar-month__day-date {
  margin: 0 0 6px !important;
  padding: 0 !important;
  color: #000 !important;
}

/* 日付リンク */
.post-type-archive-tribe_events
.tribe-events-calendar-month__day-date-link {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #000 !important;
}

/* 月移動ボタンのクリックを確実に有効化 */
.post-type-archive-tribe_events
.tribe-events-c-top-bar {
  position: relative !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav {
  z-index: 10 !important;
  pointer-events: none !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-list,
.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-list-item,
.post-type-archive-tribe_events
.tribe-events-c-top-bar__nav-link {
  position: relative !important;
  z-index: 11 !important;
  pointer-events: auto !important;
}

.post-type-archive-tribe_events
.tribe-events-c-top-bar__datepicker {
  z-index: 5 !important;
}
