@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: KILIG
Author URI: https://kilig,biz/
Template:   cocoon-master
Version:    1.0.0
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
html,body {
  background-color: #F7F7F8;
}
img,svg {
  vertical-align: top;
}
a {
  text-decoration: none;
  color: #000;
  font-weight: 1000;
}
a:hover,
a:visited {
  color: #000;
}

/*
  snippet
*/
.ktzw-mt8 {margin-top: 8px;}
.ktzw-mt20 {margin-top: 20px;}
.ktzw-mt28 {margin-top: 28px;}
.ktzw-mt80 {margin-top: 80px;}
.ktzw-tar {text-align: right;}

.ktzw-display-sp {
  display: none;
}

.container {
  position: relative;
}
/*
  header
*/
.wrap {
  width: 100%;
}
.ktzw-custom-header-wrapper {
  margin: 0 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 36px;
  padding-bottom: 36px;
}
.ktzw-logo-area h1 {
  line-height: 1;
}
.ktzw-logo-area h1 a {
  text-decoration: none;
  vertical-align: top;
  line-height: 1;
}

.ktzw-header-nav ul {
  display: flex;
  align-items: center;
  padding-left: 0;
}
.ktzw-header-nav ul li {
  list-style: none;
  padding: 0;
}
.ktzw-header-nav ul li:not(:first-child) {
  margin-left: 80px;
}
.menu-item-79 {
  display: inline-block;
  padding: 6px 14px !important;
  border-radius: 16px;
  background-color: #38A1F7;
  color: #fff !important;
}
.menu-item-79 {
  color: #fff;
}
.menu-item-79 a {
  color: #fff !important;
}
/*
  content
*/
.content {
  margin-top: 0;
}
.content-in {
  width: 100%;
}
.main {
  padding: 0;
  border-width: 0px;
}

.ktzw-page-header {
  padding-top: 55px;
  padding-bottom: 55px;
  text-align: center;
  background-color: #B3D4FC;
}
.ktzw-page-header-slug {
  font-size: 16px;
  font-weight: 1000;
  line-height: 1;
}
.ktzw-page-header-title {
  margin-top: 12px;
  font-size: 36px;
  font-weight: 1000;
  line-height: 1;
}

.ktzw-breadcrumb {
  margin: 0;
  padding-top: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid #000;
}
.ktzw-breadcrumb .ktzw-breadcrumb-in {
  display: flex;
  align-items: center;
  margin: 0 auto;
  width: 1240px;
}
.ktzw-breadcrumb .ktzw-breadcrumb-in div,
.ktzw-breadcrumb .ktzw-breadcrumb-in a {
  font-size: 16px;
  font-weight: 1000;
  color: #000;  
}
.ktzw-breadcrumb .ktzw-breadcrumb-in .ktzw-breadcrumb-item {
  line-height: 1;
}
.ktzw-breadcrumb-item-arrow {
  margin-left: 8px;
  margin-right: 8px;
}

/*
  footer
*/
footer.footer {
  margin-top: 0;
  padding: 0;
  width: 100%;
  background-color: #B3D4FC;
}
.ktzw-footer-nav-wrap {
  margin: 0 auto;
  max-width: 1920px;
  width: 100%;
}
.ktzw-footer-nav-wrap-in {
  display: flex;
  margin: 0 auto;
  padding-top: 35px;
  padding-bottom: 35px;
  max-width: 1240px;
  width: 100%;
  font-weight: 1000;
  line-height: 1;
}
.ktzw-footer-info-name {
  margin-top: 8px;
  font-size: 20px;
}
.ktzw-footer-info-number {
  margin-top: 8px;
  font-size: 20px;
}
.ktzw-footer-info-address,
.ktzw-footer-info-tel {
  font-size: 16px;
}
.ktzw-footer-info-address {
  margin-top: 24px;
}
.ktzw-footer-info-tel {
  margin-top: 24px;
  display: flex;
  align-items: center;
}
.ktzw-footer-info-tel-icon svg {
  display: block;
}
.ktzw-footer-info-tel-text {
  margin-left: 8px;
}
.ktzw-footer-map {
  margin-left: 75px;
}
.ktzw-footer-map iframe {
  display: block;
}
.ktzw-footer-navi {
  margin-left: 75px;
}
.ktzw-footer-navi .menu {
  list-style: none;
  padding-left: 0;
  font-size: 16px;
}
.ktzw-footer-navi .menu li {
  display: flex;
  align-items: center;
}
.ktzw-footer-navi .menu li:not(:first-child) {
  margin-top: 28px;
}
.ktzw-footer-navi .menu li:before {
  content: ">";
  position: relative;
  top: -2px;
  display: inline-block;
  margin-right: 4px;
  font-weight: bold;
}
.ktzw-footer-navi .menu li a {
  text-decoration: none;
  color: #000;
}
.ktzw-footer-navi .menu li a:hover {
  background-color: transparent;
}
.ktzw-footer-copyright-wrap {
  padding: 1em;
  text-align: center;
  background-color: #000;
  font-size: 12px;;
  color: #fff;
}

.ktzw-global-nav {
  display: none;
}

.ktzw-footer-navi-page-in{
	padding-top: 0 !important;
} 

/*
  下層
*/
.ktzw-custom-page {
  font-weight: 1000;
  font-size: 16px;
}
.ktzw-custom-page-in {
  margin: 0 auto;
  padding-top: 75px;
  padding-bottom: 75px;
  max-width: 1240px;
  width: 100%;
}
.ktzw-custom-page h1 {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e6e6e6;
}
.ktzw-custom-page h2 {
  font-size: 20px;
  font-weight: 700;
}

/* home */
body.home .ktzw-custom-page {
  margin: 0 auto;
  padding-top: 0;
  max-width: 1920px;
  width: 100%;
  background-color: #F7F7F8;
}
.ktzw-hero {
  margin: 0 auto;
  max-width: 1920px;
  width: 100%;
  height: 489px;
  overflow: hidden;
  background-image: url('img/home/hero.png?123');
  background-repeat: repeat-x;
  background-size: 2000px auto;
  background-position: left center;
  animation: bg-loop-scroll 60s linear infinite;
}
@keyframes bg-loop-scroll {
  from {
    background-position: 0 center;
  }
  to {
    background-position: -2000px center;
  }
}

.ktzw-front:not(:first-of-type) {
  margin-top: 80px;
}
.ktzw-front h2 {
  border-bottom: 1px solid #000;
  font-size: 24px;
}

.ktzw-front-schedule {
  padding: 40px;
  background-color: #fff;
}
.ktzw-front-schedule h2.ktzw-front-schedule-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: none;
  font-size: 24px;
}
.ktzw-front-schedule-link-more {
  text-decoration: none;
  font-size: 16px;
  color: #000;
}
.ktzw-front-schedule-link-more:hover {
  color: #000;
}
.ktzw-front-schedule-link-more::after {
  content: '＞';
  margin-left: 8px;
  display: inline-block;
}
.ktzw-front-schedule-link-more-wrap {
  margin-top: 12px;
  text-align: right;
}
.ktzw-front-schedule-list {
  margin-top: 20px;
  padding-left: 0;
  list-style: none;
}
.ktzw-front-schedule-list li:not(:first-child) {
  margin-top: 12px;
}
.ktzw-front-schedule-list li a {
  text-decoration: none;
  color: #000;
}

.ktzw-front-navi {
  display: flex;
  justify-content: space-between;
}
.ktzw-front-navi a {
  text-decoration: none;
}

.ktzw-front-activity {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  width: 100%;
  gap: 36px;
  list-style: none;
  padding-left: 0;
}
.ktzw-front-activity li {
  width: calc((100% - 72px) / 3);
  box-sizing: border-box;
}
.ktzw-front-activity li a {
  display: flex;
  flex-direction: column;
  padding: 20px;
  border-radius: 10px;
  text-decoration: none;
  color: #000;
  background-color: #fff;
  border: 1px solid #D9D9D9;
  box-shadow: 1px 1px 3px #D9D9D9;
}
.ktzw-front-activity li a img {
  width: 100%;
  height: auto;
  vertical-align: top;  
}
.ktzw-front-activity li a .ktzw-front-activity-img img {
  width: 414px;
  height: auto;
}
.ktzw-front-activity li a .ktzw-front-activity-text {
  display: block;
  margin-top: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

.flex-card {
  display: flex;
  align-items: start;
  gap: 70px;
  width: 100%;
}
.flex-card-text {
  flex: 1;
}
.flex-card-img {
  flex: 0 0 auto;
}
.flex-card-img img {
  width: 100%;
  height: auto;
  display: block;
}

.ktzw-front-topic {
  margin-left: 8px;
  list-style: none;
  padding-left: 0;
}
.ktzw-front-topic li {
  margin-top: 20px;
}

.ktzw-front-related-link {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  width: 100%;
  gap: 40px;
  list-style: none;
  padding-left: 0;
}
.ktzw-front-related-link li {
  width: calc((100% - 120px) / 4);
  box-sizing: border-box;
}
.ktzw-front-related-link li a {
  display: flex;
}
.ktzw-front-related-link li a img {
  width: 100%;
  height: auto;
  vertical-align: top;  
}

/* about */
.ktzw-about {
  margin-top: 80px;
}
.ktzw-about-menu ul {
  display: flex;
  flex-wrap: wrap;    /* 折り返しを許可 */
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 45px;
  list-style: none;
}
.ktzw-about-menu ul li {
  width: calc((100% - 90px) / 3); 
  box-sizing: border-box;
}
.ktzw-about-menu ul li a {
  position: relative;
  display: block;
  padding: 28px;
  border-radius: 16px;
  text-align: center;
  text-decoration: none;
  background-color: #9BA6C9;
  font-size: 20px;
  line-height: 1;
  color: #fff;
}
.ktzw-about-menu ul li a:after {
  content: "＞";
  position: absolute;
  right: 16px;
}
.ktzw-about-menu ul li a:hover {
  background-color: #0B2C4A;
}
.ktzw-about-menu ul li.ktzw-about-menu-current a {
  background-color: #0B2C4A;
}



/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1240px以下*/
@media screen and (max-width: 800px){
  main.main {
    padding: 0;
  }

  .ktzw-display {
    display: none;
  }
  .ktzw-display-sp {
    display: block;
  }

  .ktzw-custom-header-wrapper {
    margin: 0 20px;
    padding-top: 20px;
    padding-bottom: 20px;
  }

  .ktzw-button-global-menu-sp {
    position: fixed;
    right: 20px;
    top: 18px;
    z-index: 120;
    cursor: pointer;
  }
  .ktzw-global-nav .menu {
    list-style: none;
    padding-left: 0;
  }
  .ktzw-global-nav .menu li:not(.ktzw-header-nav-contact):before {
    content: ">";
    position: relative;
    top: -2px;
    display: inline-block;
    margin-right: 4px;
    font-weight: bold;
  }
  .ktzw-global-nav .menu li:not(:first-child) {
    margin-top: 8px;
  }
  .ktzw-global-nav .menu li a {
    text-decoration: none;
    color: #000;
  }
  .ktzw-global-nav .menu li.ktzw-header-nav-contact a {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 16px;
    background-color: #38A1F7;
    color: #fff;
  }
  .ktzw-global-nav .menu li.ktzw-header-nav-contact a:visited {
    color: #fff;
  }

  [data-menu-active="true"] .ktzw-global-nav {
    position: fixed;
    right: 20px;
    top: 10px;
    z-index: 110;
    padding-top: 58px;
    padding-right: 20px;
    padding-left: 20px;
    padding-bottom: 20px;
    display: block;
    background-color: #fff;
    border: 1px solid #141512;
  }
  [data-menu-active="false"] .ktzw-layer-gauss {
    display: none;
    opacity: 0;
    visibility: hidden;
  }
  [data-menu-active="true"] .ktzw-layer-gauss {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 105;
    width: 100vw;
    height: 100vh;
    backdrop-filter: blur(12px);
    opacity: 1;
    visibility: visible;
    transition: all 0.2s ease;
    cursor: pointer;
  }
  [data-button-global-menu-sp] svg line {
    transition: all 0.2s ease;
  }
  [data-button-global-menu-sp] svg line:nth-child(1) {
    transform-origin: left top; 
  }
  [data-button-global-menu-sp] svg line:nth-child(3) {
    transform-origin: left bottom; 
  }
  body[data-menu-active="true"] [data-button-global-menu-sp] svg line:nth-child(1) {
    transform:translateX(4px) rotate(45deg) scaleX(0.95);
  }
  body[data-menu-active="true"] [data-button-global-menu-sp] svg line:nth-child(2) {
    opacity: 0;
  }
  body[data-menu-active="true"] [data-button-global-menu-sp] svg line:nth-child(3) {
    transform:translateX(4px) rotate(-45deg) scaleX(0.95);
  }

  .ktzw-hero {
    width: 100%;
    height: auto;
    background-image: none;
  }
  .ktzw-hero-sp-img {
    display: block;
    width: 100%;
  }

  .ktzw-front:not(:first-of-type) {
    margin-top: 40px;
  }
  .ktzw-front-navi {
    align-items: center;
    flex-direction: column;
    gap: 20px;
  }

  .ktzw-custom-page {
    font-size: 16px;
  }

  .ktzw-custom-page-in {
    display: flex;
    flex-direction: column;
    padding: 32px 20px;
    width: 100%;
  }
  .ktzw-custom-page-in .ktzw-about:first-of-type {
    margin-top: 0;
  }
  .ktzw-custom-page-in nav{
    margin-top: 32px;
    order: 999;
  }
  .ktzw-about-menu ul {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
  .ktzw-about-menu ul li {
    width: 100%;
    max-width: 450px;
  }
  .ktzw-about-menu ul li a {
    font-size: 16px;
  }

  .ktzw-custom-page h1 {
    padding: 0 0 8px 0;
    border-left: none;
    border-bottom: 2px solid #000;
    font-size: 24px;
  }

  .ktzw-custom-page-in .flex-card {
    flex-direction: column;
    gap: 20px;
  }
  .flex-card-img {
    width: 100%;
    display: flex;
    justify-content: center;
  }
  .flex-card-img img {
    width: auto;
  }

  .ktzw-custom-page-in .ktzw-full-img {
    width: 100%;
  }

  .ktzw-footer-info-name {
    font-size: 20px;
  }
  .ktzw-footer-info-number {
    font-size: 20px;
  }
  .ktzw-footer-info-address,
  .ktzw-footer-info-tel {
    font-size: 16px;
  }

  .ktzw-footer-nav-wrap {
    width: 100%;
  }
  .ktzw-footer-nav-wrap-in {
    padding: 20px 20px 40px;
    flex-direction: column;
    width: 100%;
  }
  .ktzw-footer-map {
    margin-top: 20px;
    margin-left: 0;
  }
  .ktzw-footer-map iframe {
    width: 100%;
  }
  .ktzw-footer-navi {
    margin-top: 48px;
    margin-left: 0;
  }
  .ktzw-footer-navi .menu {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    font-size: 12px;
  }
  .ktzw-footer-navi .menu li:not(:first-child) {
    margin-top: 0;
  }

  /* home */
  body.home .ktzw-custom-page {
    width: 100%;
  }
  .ktzw-hero {
    width: 100%;
  }
  .ktzw-front-schedule {
    padding: 20px;
  }

  .ktzw-front-activity {
    flex-wrap: nowrap;
    align-items: start;
    flex-direction: column;
    gap: 20px;
  }
  .ktzw-front-activity li {
    width: 100%;
  }
  .ktzw-front-activity li a {
    display: flex;
    flex-direction:unset;
    gap: 20px;
    padding: 0px;
    border-radius: 0px;
    border: none;
    background-color: transparent;
    box-shadow: none;
  }
  .ktzw-front-activity li a img {
    width: 100%;
    height: auto;
    vertical-align: top;  
  }
  .ktzw-front-activity li a .ktzw-front-activity-img {
    width: 220px;
    flex-basis: 220px;
    flex-shrink: 0;
  }
  .ktzw-front-activity li a .ktzw-front-activity-img img {
    width: 220px;
    height: auto;
  }
  .ktzw-front-activity li a .ktzw-front-activity-text {
    display: block;
    margin-top: 16px;
    white-space: unset;
    overflow: auto;
    text-overflow: unset;
    width: 100%;
  }
  .ktzw-front-activity-day {
    display: block;
    text-align: right;
    font-weight: 400;
  }

  .ktzw-front-related-link {
    flex-wrap: wrap;
    gap: 20px;
  }
  .ktzw-front-related-link li {
    width: calc((100% - 120px) / 4);
    box-sizing: border-box;
    flex: 1 1 260px;
  }
}
.tribe-events, 
.tribe-events-view, 
.tribe-events-calendar-month {
  position: relative;
  z-index: 10!important;
}

/* M追記 */
@media screen and (max-width: 1240px) {
    .ktzw-page-header {
        /* display: none; */
    }
}


/* Magazine intro block (above backnumber) */
.ktzw-magazine-intro { margin-top: 40px; }

.ktzw-magazine-intro-head{
  border: 2px solid #4aa6df;
  padding: 14px 16px;
  font-weight: 700;
  background: #fff;
}

.ktzw-magazine-intro-body{
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 28px;
  align-items: start;
  margin-top: 18px;
}

.ktzw-magazine-intro-left p{
  margin: 0 0 12px;
  line-height: 1.9;
}

.ktzw-magazine-intro-linkbox{
  margin-top: 18px;
  background: #eef3f7;
  border-left: 6px solid #cfd8e1;
  padding: 16px;
}

.ktzw-magazine-intro-linkbox a{
  color: #0b66c3;
  text-decoration: underline;
  font-weight: 700;
}

.ktzw-magazine-pdf-icon{
  margin-left: 6px;
}

.ktzw-magazine-cover{
  border: 1px solid #d9d9d9;
  padding: 10px;
  background: #fff;
  text-align: center;
}

.ktzw-magazine-cover img{
  max-width: 260px;
  width: 100%;
  height: auto;
  display: inline-block;
}

.ktzw-magazine-caption{
  text-align: center;
  margin-top: 10px;
  color: #333;
  font-size: 0.95em;
}

/* Responsive */
@media (max-width: 900px){
  .ktzw-magazine-intro-body{
    grid-template-columns: 1fr;
  }
  .ktzw-magazine-cover img{
    max-width: 320px;
  }
}

/* Backnumber */
.ktzw-backnumber { margin-top: 40px; }
.ktzw-backnumber h1 { margin-bottom: 16px; }

/* Accordion */
.ktzw-accordion {
  border: 1px solid #cfe6f5;
  border-radius: 4px;
  margin: 12px 0;
  background: #f6fbff;
  overflow: hidden;
}

.ktzw-accordion-summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 700;
  background: #eaf6ff;
  position: relative;
}

.ktzw-accordion[open] .ktzw-accordion-summary {
  background: #57bde8; /* スクショの青っぽいバー */
  color: #fff;
}

.ktzw-accordion-summary::-webkit-details-marker { display:none; }

.ktzw-accordion-summary::before {
  content: "▾";
  display: inline-block;
  margin-right: 10px;
  transform: rotate(-90deg);
  transition: transform .2s ease;
}

.ktzw-accordion[open] .ktzw-accordion-summary::before {
  transform: rotate(0deg);
}

.ktzw-accordion-body {
  padding: 16px;
  background: #fff;
}

/* Grid */
.ktzw-backnumber-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ktzw-backnumber-item { margin: 0; }

.ktzw-backnumber-link {
  display: block;
  text-decoration: none;
  color: inherit;
  text-align: center;
}

.ktzw-backnumber-cover img {
  width: 100%;
  max-width: 220px;
  height: auto;
  border: 1px solid #ddd;
  background: #fff;
  display: inline-block;
}

.ktzw-backnumber-title {
  margin-top: 8px;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
  color: #0b66c3;
  text-decoration: underline;
  font-weight: 600;
  font-size: 16px;
}

.ktzw-backnumber-empty {
  margin: 0;
  color: #666;
}

/* Responsive */
@media (max-width: 900px){
  .ktzw-backnumber-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .ktzw-backnumber-grid { grid-template-columns: 1fr; }
  .ktzw-accordion-body { padding: 12px; }
}

/* activity */
.ktzw-activity {
  margin-top: 80px;
}
.ktzw-activity-menu ul {
  display: flex;
  flex-wrap: wrap;    /* 折り返しを許可 */
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 45px;
  list-style: none;
}
.ktzw-activity-menu ul li {
  width: calc((100% - 90px) / 3); 
  box-sizing: border-box;
}
.ktzw-activity-menu ul li a {
  position: relative;
  display: block;
  padding: 28px;
  border-radius: 16px;
  text-align: center;
  text-decoration: none;
  background-color: #9BA6C9;
  font-size: 20px;
  line-height: 1;
  color: #fff;
}
.ktzw-activity-menu ul li a:after {
  content: "＞";
  position: absolute;
  right: 16px;
}
.ktzw-activity-menu ul li a:hover {
  background-color: #0B2C4A;
}
.ktzw-activity-menu ul li.ktzw-activity-menu-current a {
  background-color: #0B2C4A;
}


/* ktzw FAQ (details/summary) */
.ktzw-faq { margin-top: 16px; }
.ktzw-faq-item {
  border: 1px solid #ddd;
  border-radius: 8px;
  margin: 10px 0;
  overflow: hidden;
  background: #fff;
}
.ktzw-faq-summary {
  cursor: pointer;
  padding: 12px 14px;
  font-weight: 700;
  list-style: none;
}
.ktzw-faq-summary::-webkit-details-marker { display: none; }
.ktzw-faq-item[open] .ktzw-faq-summary { border-bottom: 1px solid #eee; }
.ktzw-faq-body { padding: 12px 14px; }
.ktzw-faq-body img { max-width: 100%; height: auto; display: block; margin: 12px auto; }
.ktzw-activity-title { margin-top: 32px; }
.ktzw-activity-subtitle { margin-top: 20px; }


/* =========================
   ktzw: カード風（活動ブロック）
   ========================= */

.ktzw-activity-block{
  margin: 24px 0;
  padding: 18px 18px;
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

/* 見出し */
.ktzw-activity-block h3{
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.4;
}

/* 本文 */
.ktzw-activity-block p{
  margin: 0 0 12px;
  line-height: 1.8;
}

/* 画像（カード内で綺麗に） */

.ktzw-activity-block img{
  display: inline-block;
}

.ktzw-activity-block img{
  display: block;
  width: 150px;
  max-width: 150px;
  height: auto;
  margin: 12px auto 0;
  border-radius: 8px;
  border: 1px solid #eee;
}

.ktzw-activity-block img.ktzw-full-img{
  width: 300px;
}

.ktzw-activity-block{
}

.ktzw-activity-block img + img{
  margin-left: 20px;
}


/* 複数画像が続く時の間隔 */
.ktzw-activity-block img + img{
  margin-top: 14px;
}

/* カード内の最後の要素の余白を抑える */
.ktzw-activity-block > *:last-child{
  margin-bottom: 0;
}

/* hover（PCだけ少し浮かせる） */
@media (hover:hover){
  .ktzw-activity-block:hover{
    box-shadow: 0 10px 26px rgba(0,0,0,.10);
    transform: translateY(-1px);
    transition: box-shadow .2s ease, transform .2s ease;
  }
}

/* スマホ：余白少し詰める */
@media (max-width: 768px){
  .ktzw-activity-block{
    padding: 14px 14px;
    border-radius: 10px;
  }
  .ktzw-activity-block h3{
    font-size: 16px;
  }
  .ktzw-activity-menu ul {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
  .ktzw-activity-menu ul li {
      width: 100%;
      max-width: 450px;
  }
}
/* カレンダー下のエクスポートリンクを非表示 */
.tribe-events-c-subscribe-dropdown,
.tribe-events-c-subscribe-dropdown__container,
.tribe-events .tribe-events-c-subscribe-dropdown {
  display: none !important;
}
/* =========================
   申込・各種手続き（TOPのトーンに合わせる）
   ========================= */

.ktzw-procedure{
  margin-top: 40px;
}

.ktzw-section-title{
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e6e6e6; /* TOPの区切り線っぽく */
}

/* 白いカード（スケジュール枠の雰囲気） */
.ktzw-procedure-card{
  background: #fff;
  border: 1px solid #ededed;
  border-radius: 6px;           /* 角丸控えめ */
  box-shadow: 0 2px 10px rgba(0,0,0,.06); /* 影弱め */
  overflow: hidden;
}

/* 1行＝1手続き */
.ktzw-procedure-row{
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  padding: 18px 18px;
  border-bottom: 1px solid #f0f0f0;
}
.ktzw-procedure-row-last{
  border-bottom: none;
}

.ktzw-procedure-text h3{
  font-size: 16px;
  margin: 0 0 6px;
  font-weight: 700;
}
.ktzw-procedure-text p{
  margin: 0;
  font-size: 13px;
  color: #666;
  line-height: 1.7;
}

/* 右側ボタン */
.ktzw-procedure-actions{
  flex: 0 0 auto;
}

.ktzw-procedure-btn{
  display: inline-block;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 4px;
  background: #2a79b9;     /* サイトの青トーン */
  color: #fff !important;
  border: 1px solid rgba(0,0,0,.06);
  white-space: nowrap;
}
.ktzw-procedure-btn:hover{
  opacity: .92;
}

/* 退会などは少し控えめ */
.ktzw-procedure-btn.is-sub{
  background: #4a6f8f;
}

/* スマホ：縦積み */
@media (max-width: 768px){
  .ktzw-procedure-row{
    flex-direction: column;
    align-items: flex-start;
  }
  .ktzw-procedure-actions{
    width: 100%;
    margin-top: 10px;
  }
  .ktzw-procedure-btn{
    width: 100%;
    text-align: center;
    white-space: normal;
  }
}
/* =========================
   入会メリット（TOPのトーンに合わせる）
   ========================= */

.ktzw-benefits{
}

.ktzw-benefits-card{
  background: #fff;
  border: 1px solid #ededed;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  padding: 18px 18px;
}

.ktzw-benefits-list{
  margin: 0;
  padding-left: 22px; /* 番号の左余白 */
}

.ktzw-benefits-list li{
  margin: 0 0 14px;
}

.ktzw-benefits-lead{
  font-size: 16px;
  line-height: 1.8;
  color: #222;
}

.ktzw-benefits-note{
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.7;
  color: #666;
  padding-left: 10px;
  border-left: 3px solid #e6e6e6; /* 薄い補足ライン */
}

/* スマホ調整 */
@media (max-width: 768px){
  .ktzw-benefits-card{
    padding: 14px 14px;
  }
  .ktzw-benefits-lead{
    font-size: 14px;
  }
  .ktzw-benefits-note{
    font-size: 13px;
  }
}
/* =========================
   Webで入会申込み（CTA）
   ========================= */
.ktzw-apply-web{
  margin-top: 40px;
}

.ktzw-apply-web-card{
  background: #fff;
  border: 1px solid #ededed;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  padding: 18px 18px;
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
}

.ktzw-apply-web-lead{
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.8;
  color: #222;
}

.ktzw-apply-web-note{
  margin: 0;
  font-size: 12.5px;
  line-height: 1.7;
  color: #666;
}

.ktzw-apply-web-actions{
  flex: 0 0 auto;
  display: flex;
  gap: 10px;
  align-items: center;
}

/* メインCTAボタン */
.ktzw-apply-web-btn{
  display: inline-block;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 4px;
  background: #2a79b9;
  color: #fff !important;
  white-space: nowrap;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
}
.ktzw-apply-web-btn:hover{ opacity: .92; }

/* サブ導線（控えめリンクボタン） */
.ktzw-apply-web-sub{
  display: inline-block;
  padding: 12px 12px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 4px;
  background: #f6f6f6;
  color: #2a79b9 !important;
  border: 1px solid #e6e6e6;
  white-space: nowrap;
}
.ktzw-apply-web-sub:hover{ opacity: .92; }

@media (max-width: 768px){
  .ktzw-apply-web-card{
    flex-direction: column;
    align-items: flex-start;
  }
  .ktzw-apply-web-actions{
    width: 100%;
  }
  .ktzw-apply-web-btn,
  .ktzw-apply-web-sub{
    width: 100%;
    text-align: center;
  }
}
/* =========================
   CF7（入会申込）デザイン：ktzwトーン寄せ
   対象：.ktzw-custom-page-in 内の .wpcf7
   ========================= */

.ktzw-custom-page-in .wpcf7{
  max-width: 920px;
}

/* 見出し */
.ktzw-custom-page-in .wpcf7 h3{
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e6e6e6;
}

.ktzw-custom-page-in .wpcf7 h4{
  font-size: 15px;
  font-weight: 700;
  margin: 24px 0 10px;
}

/* 全体カード化（form） */
.ktzw-custom-page-in .wpcf7 form.wpcf7-form{
  background: #fff;
  border: 1px solid #ededed;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  padding: 18px 18px;
}

/* 余計なpの詰まりを整える */
.ktzw-custom-page-in .wpcf7 form.wpcf7-form > p{
  margin: 0 0 14px;
}

/* ラベル */
.ktzw-custom-page-in .wpcf7 label{
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #222;
  line-height: 1.6;
}

/* 入力共通 */
.ktzw-custom-page-in .wpcf7 input[type="text"],
.ktzw-custom-page-in .wpcf7 input[type="email"],
.ktzw-custom-page-in .wpcf7 input[type="tel"],
.ktzw-custom-page-in .wpcf7 input[type="url"],
.ktzw-custom-page-in .wpcf7 input[type="number"],
.ktzw-custom-page-in .wpcf7 textarea,
.ktzw-custom-page-in .wpcf7 select{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid #dcdcdc;
  border-radius: 4px;
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.4;
  background: #fff;
  margin-top: 8px;
}

/* フォーカス */
.ktzw-custom-page-in .wpcf7 input:focus,
.ktzw-custom-page-in .wpcf7 textarea:focus,
.ktzw-custom-page-in .wpcf7 select:focus{
  outline: none;
  border-color: #2a79b9;
  box-shadow: 0 0 0 3px rgba(42,121,185,.18);
}

/* hr（区切り線を控えめに） */
.ktzw-custom-page-in .wpcf7 hr{
  border: none;
  border-top: 1px solid #f0f0f0;
  margin: 18px 0;
}

/* 2カラム行（TEL/FAXなど） */
.ktzw-custom-page-in .cf7-row{
  display: flex;
  gap: 16px;
  margin-bottom: 14px;
}
.ktzw-custom-page-in .cf7-col{
  flex: 1 1 0;
}
.ktzw-custom-page-in .cf7-row .cf7-col > p{
  margin: 0;
}

/* ラジオ（縦に並べて見やすく） */
.ktzw-custom-page-in .wpcf7 .wpcf7-radio{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 8px;
}

.ktzw-custom-page-in .wpcf7 .wpcf7-list-item{
  margin: 0;
}

.ktzw-custom-page-in .wpcf7 .wpcf7-list-item label{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 13px;
  color: #222;
}

.ktzw-custom-page-in .wpcf7 input[type="radio"]{
  width: 16px;
  height: 16px;
  accent-color: #2a79b9;
}

.wpcf7-list-item:has(input[type="checkbox"]) {
  margin-right: 14px!important;
}

/* 承諾チェック（受領確認） */
.ktzw-custom-page-in .wpcf7 .wpcf7-acceptance{
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 10px;
}
.ktzw-custom-page-in .wpcf7 input[type="checkbox"]{
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: #2a79b9;
}

/* 送信ボタン（サイトの青系に寄せる） */
.ktzw-custom-page-in .wpcf7 input[type="submit"].wpcf7-submit{
  background: #2a79b9;
  color: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 4px;
  padding: 12px 18px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
}

.ktzw-custom-page-in .wpcf7 input[type="submit"].wpcf7-submit:hover{
  opacity: .92;
}

/* 必須エラー表示を分かりやすく */
.ktzw-custom-page-in .wpcf7 .wpcf7-not-valid{
  border-color: #d9534f !important;
  box-shadow: 0 0 0 3px rgba(217,83,79,.12);
}

.ktzw-custom-page-in .wpcf7 .wpcf7-not-valid-tip{
  color: #d9534f;
  font-size: 12.5px;
  margin-top: 6px;
}

/* 送信結果メッセージ */
.ktzw-custom-page-in .wpcf7 .wpcf7-response-output{
  margin: 16px 0 0;
  padding: 12px 12px;
  border-radius: 4px;
  font-size: 13px;
}

/* スマホ：2カラムを縦積みに */
@media (max-width: 768px){
  .ktzw-custom-page-in .wpcf7 form.wpcf7-form{
    padding: 14px 14px;
  }
  .ktzw-custom-page-in .cf7-row{
    flex-direction: column;
    gap: 12px;
  }
  .ktzw-custom-page-in .wpcf7 input[type="submit"].wpcf7-submit{
    width: 100%;
  }
}
/* 複数リンク用：右側を縦積み */
.ktzw-procedure-actions.is-multi{
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start; /* 左揃え */
}

/* ボタンを“リンクリスト”っぽく（幅揃え） */
.ktzw-procedure-actions.is-multi .ktzw-procedure-btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: 260px;           /* 好みで調整 */
  max-width: 100%;
  justify-content: flex-start;
}

/* PDFアイコン（任意） */
.ktzw-procedure-icon{
  margin-left: auto;      /* 右端に寄せる */
  font-size: 14px;
  opacity: .9;
}

/* スマホ：ボタン幅を100%に */
@media (max-width: 768px){
  .ktzw-procedure-actions.is-multi{
    width: 100%;
  }
  .ktzw-procedure-actions.is-multi .ktzw-procedure-btn{
    width: 100%;
  }
}

/* エリアマップカード（既存カード風に寄せる） */
.ktzw-area-map-card{
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  margin-bottom: 24px;
}

.ktzw-area-map-sep{
  margin: 24px 0;
  border: none;
  border-top: 1px solid #eee;
}

.ktzw-area-map-media img{
  width: 100%;
  height: auto;
  border-radius: 10px;
}

/* テーブル */
.ktzw-area-table-wrap{
  overflow-x: auto; /* スマホ横スクロール */
}

.ktzw-area-table{
  width: 100%;
  border-collapse: collapse;
  min-width: 640px; /* スマホで崩れないため */
}

.ktzw-area-table th,
.ktzw-area-table td{
  border: 1px solid #eee;
  padding: 12px 14px;
  vertical-align: top;
  font-size: 14px;
}

.ktzw-area-table th{
  background: #fafafa;
  font-weight: 700;
}

.ktzw-area-branch a{
  text-decoration: none;
  font-weight: 700;
}

.ktzw-area-branch a:hover{
  text-decoration: underline;
}

.ktzw-area-map-note{
  margin-top: 10px;
  font-size: 13px;
  color: #666;
}

/* エリアマップ画像サイズ調整 */
.ktzw-area-map-media{
  text-align: center;
}

.ktzw-area-map-media img{
  width: 740px;
  max-width: 100%;   /* スマホでは画面幅に合わせて縮む */
  height: auto;
  border-radius: 10px;
}

.ktzw-committee{
  margin-top: 60px;
}

/* グリッド */
.ktzw-committee-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 40px;
}

/* カード */
.ktzw-committee-card{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 22px;
  background: #fff;
  border-radius: 8px;
  text-decoration: none;
  border: 1px solid #e5e5e5;
  color: #333;
  transition: all .25s ease;
}

/* 名前 */
.ktzw-committee-name{
  font-size: 18px;
  font-weight: 600;
}

/* 矢印 */
.ktzw-committee-arrow{
  font-size: 20px;
  color: #4e79a7;
  transition: transform .25s ease;
}

/* hover */
.ktzw-committee-card:hover{
  box-shadow: 0 4px 14px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}

.ktzw-committee-card:hover .ktzw-committee-arrow{
  transform: translateX(4px);
}

/* スマホ */
@media (max-width: 768px){
  .ktzw-committee-grid{
    grid-template-columns: 1fr;
  }
  .tribe-events-c-view-selector__content{
  width:200px;
  }
}

/* ポリシー用リスト */
.ktzw-policy-list{
  margin:15px 0 0;
  padding-left:20px;
}

.ktzw-policy-list li{
  margin-bottom:10px;
  line-height:1.8;
}

/* ポリシーページは少し読みやすく */
.ktzw-about p{
  line-height:1.9;
}

/* 小見出し（h4） */
.ktzw-policy-subtitle{
  margin: 16px 0 8px;
  font-size: 15px;
  font-weight: 700;
}

/* 連絡先ブロック */
.ktzw-policy-contact{
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #eee;
  border-radius: 10px;
  background: #fafafa;
}

.ktzw-policy-contact-name{
  font-weight: 700;
  margin-bottom: 6px;
}

/* 最終行の注記 */
.ktzw-policy-footnote{
  margin-top: 12px;
  color: #666;
  font-size: 13px;
}

/* =======================================================
   The Events Calendar 曜日ヘッダー修正（全塗り・中央寄せ）
======================================================= */

/* 1. 曜日ヘッダーの「枠」全体を塗りつぶす */
.tribe-events-calendar-month__header-column {
    background-color: #003371 !important; /* 法人会の濃い青 */
    padding: 0 !important;
}

/* 2. 曜日セルの内部構造を調整して隙間を埋める */
.tribe-events-calendar-month__header-column-title-wrapper,
.tribe-events-calendar-month__header-column-title {
    background-color: transparent !important; /* 元の背景色を消す */
    color: #ffffff !important; /* 文字を白に */
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 40px; /* お好みの高さに調整 */
    margin: 0 !important;
}

/* 3. モバイル表示などで隠れている要素も念のためリセット */
.tribe-events-calendar-month__header-column-title--mobile {
    display: none !important;
}

/* カレンダー内の時間を太字にする */
.tribe-events-calendar-month__calendar-event-datetime time {
    font-weight: bold !important;
    color: #333; /* お好みで少し濃い色にするとより目立ちます */
}

/* セパレーター（ - ）も太字にする場合 */
.tribe-events-calendar-month__calendar-event-datetime-separator {
    font-weight: bold !important;
}

/*20260310修正*/
/* カレンダー詳細ページのメタ情報を縦一列にする */
.tribe-events-single-section {
    width: 100% !important;
    float: none !important;
    margin-bottom: 20px;
}

/* 親コンテナのフレックス解除（新しいデザインテンプレートの場合） */
.tribe-events-meta-group {
    flex: 1 0 100% !important;
    max-width: 100% !important;
}

/* 全体の枠組みをカード風にする */
.tribe-events-single-section {
    background: #f9f9f9; /* 薄いグレーの背景 */
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px !important;
}

/* 見出し（詳細・会場）を強調 */
.tribe-events-single-section-title {
    font-size: 1.2rem !important;
    color: #333;
    border-bottom: 1px solid #ddd;
    padding-bottom: 10px;
    margin-bottom: 15px !important;
    display: block;
}

/* ラベル（日付・時間など）の調整 */
.tribe-events-meta-group dt {
    font-weight: bold;
    color: #666;
    margin-top: 10px;
}

/* 値（4月14日など）の調整 */
.tribe-events-meta-group dd {
    margin-left: 0 !important;
    margin-bottom: 15px;
    font-size: 1.1rem;
}

/* 1. 日付を大きく・太字に */
.tribe-events-meta-group-details dd abbr.tribe-events-abbr {
    font-size: 1.5rem !important;
    font-weight: bold !important;
    text-decoration: none !important;
    color: #333 !important;
}

/* 2. 時間を大きく・太字に */
.tribe-events-meta-group-details dd.tribe-events-event-schedule-details {
    font-size: 1.5rem !important;
    font-weight: bold !important;
    color: #333 !important;
}

/* 3. 会場名（北沢法人会館）を大きく・太字に */
.tribe-events-venue {
    font-size: 1.6rem !important; /* 会場名はさらに強調 */
    font-weight: bold !important;
    display: block;
    margin-bottom: 5px;
}

/* 4. 電話番号を大きく・太字に */
.tribe-events-meta-group-venue dd.tribe-venue-tel {
    font-size: 1.5rem !important;
    font-weight: bold !important;
    color: #333 !important;
}

/* 5. 項目名（日付：時間：などの見出し）も少し強調 */
.tribe-events-meta-group dt {
    font-size: 1.1rem !important;
    font-weight: bold !important;
    margin-top: 15px !important;
}

/* 住所のサイズを少し抑えて情報の優先順位をつける */
.tribe-events-address {
    font-size: 1rem !important;
    font-weight: normal !important;
    color: #666 !important;
}

/* 「Japan」を非表示にする（必要な場合） */
.tribe-country-name {
    display: none !important;
}

.single #content {
  border-top: 1px solid #e5e5e5;
}

.tribe-events-event-meta .tribe-events-meta-label{
	font-size: 1rem !important;
}

.tribe-events-meta-item{
	font-size: 1rem !important;
}

.ktzw-img-flex {
  display: flex;      /* 横並びにする */
  gap: 15px;         /* 画像と画像の間隔（お好みで調整） */
  flex-wrap: wrap;   /* 画面が狭いときは折り返す（スマホ対策） */
}

.ktzw-img-flex img {
  width: calc(50% - 8px); /* 2枚を横並びにする（間隔を引いた分） */
  height: auto;
}

/* もし元のクラスに余計なマージンがある場合はリセット */
/* .ktzw-mt20 {
  margin-top: 0 !important;
} */

/* =========================
   404 Page
========================= */
.ktzw-404 {
  padding: 56px 20px 80px;
  background: #f7f7f8;
}

.ktzw-404__inner {
  max-width: 960px;
  margin: 0 auto;
}

.ktzw-404__hero {
  background: #fff;
  border: 1px solid #e8e8ea;
  border-radius: 20px;
  padding: 100px 24px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0,0,0,0.04);
}

.ktzw-404__code {
  font-size: 72px;
  line-height: 1;
  font-weight: 700;
  color: #cfcfd4;
  margin-bottom: 16px;
}

.ktzw-404__title {
  margin: 0;
  font-size: 32px;
  line-height: 1.4;
  color: #222;
}

.ktzw-404__text {
  margin: 16px auto 0;
  max-width: 640px;
  font-size: 16px;
  line-height: 1.9;
  color: #666;
}

.ktzw-404__actions {
  margin-top: 24px;
  text-align: center;
}

.ktzw-404__btn {
  display: inline-block;
  padding: 14px 28px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  transition: .25s ease;
}

.ktzw-404__btn--primary {
  background: #222;
  color: #fff !important;
}

.ktzw-404__btn--primary:hover {
  opacity: .85;
}

.ktzw-404__search {
  margin-top: 40px;
  background: #fff;
  border: 1px solid #e8e8ea;
  border-radius: 20px;
  padding: 28px 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.04);
}

.ktzw-404__section-title {
  margin: 0 0 16px;
  font-size: 20px;
  line-height: 1.5;
  color: #222;
}

.ktzw-404__search-box form {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.ktzw-404__search-box input[type="search"],
.ktzw-404__search-box input[type="text"] {
  flex: 1 1 280px;
  min-width: 0;
  height: 48px;
  padding: 0 14px;
  border: 1px solid #d8d8dd;
  border-radius: 10px;
  background: #fff;
  font-size: 15px;
}

.ktzw-404__search-box input[type="submit"],
.ktzw-404__search-box button {
  height: 48px;
  padding: 0 20px;
  border: none;
  border-radius: 10px;
  background: #222;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

.ktzw-404__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 40px;
}

.ktzw-404__card {
  display: block;
  background: #fff;
  border: 1px solid #e8e8ea;
  border-radius: 18px;
  padding: 22px 20px;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(0,0,0,0.04);
  transition: transform .25s ease, box-shadow .25s ease;
}

.ktzw-404__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(0,0,0,0.08);
}

.ktzw-404__card-title {
  display: block;
  font-size: 18px;
  font-weight: 700;
  color: #222;
  line-height: 1.5;
}

.ktzw-404__card-text {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.8;
  color: #666;
}

@media screen and (max-width: 768px) {
  .ktzw-404 {
    padding: 40px 16px 56px;
  }

  .ktzw-404__hero {
    padding: 36px 20px;
  }

  .ktzw-404__code {
    font-size: 56px;
  }

  .ktzw-404__title {
    font-size: 24px;
  }

  .ktzw-404__text {
    font-size: 15px;
    line-height: 1.8;
  }

  .ktzw-404__grid {
    grid-template-columns: 1fr;
  }
}
.tribe-events-calendar-month__header-column{
	width: 100% !important;
}

.schedule-date {
  color: #0073aa; /* WordPressっぽいリンク青 */
}

/* PCは改行なし */
.schedule-break {
  display: inline;
}

/* スマホだけ改行 */
@media screen and (max-width: 900px) {
  .schedule-break {
    display: block;
    height: 4px;
  }
}

.ktzw-fee-card {
  background: #fff;
  border: 1px solid #dcdcdc;
  border-radius: 12px;
  padding: 24px;
  box-sizing: border-box;
}

.ktzw-fee-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.ktzw-fee-table th,
.ktzw-fee-table td {
  border: 1px solid #ccc;
  padding: 12px;
  text-align: center;
}

.ktzw-fee-table th {
  background: #f5f5f5;
  font-weight: bold;
}

.ktzw-fee-table td:first-child {
  text-align: left;
}

.ktzw-link {
  color: #0073e6;
  text-decoration: underline !important;
}

.ktzw-link:hover {
  color: #005bb5;
}