/*
Theme Name: tkx25theme
*/



html, body {
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0;
  padding: 0;
}

body {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 16px;
  background-color: rgb(255, 255, 255);
  padding-top: 55px;
}

.zen-maru-gothic-light {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.zen-maru-gothic-regular {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.zen-maru-gothic-medium {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-style: normal;
}


.wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh; /* ウィンドウ高に合わせる */
}

main {
  flex: 1; /* メインコンテンツを可能な限り縦に伸ばす */
}


.top-container {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 0; /* スマホ用に左右に少し余白 */
  background: #fff;
}

.top-inner-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 0.5rem; /* スマホ用に左右に少し余白 */
}

.top-inner-container p {
    line-height: 190%;
    margin: 0 auto 2rem auto;
}

.event-detail {
    font-size: 1rem;
    max-width: 360px;
    margin: 0 auto;
    line-height: 350%;
}

@media (min-width: 600px) {
 .event-detail{
    font-size: 1.3rem;
    max-width: 450px;
 }
}

.event-detail b{
    margin: 0 30px 0 1rem;
}

.event-detail span{
    display: block;
    height: 1.5rem;
}


.inner-container {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 0.5rem; /* スマホ用に左右に少し余白 */
  background: #fff;
}

.admin-bar body {
  padding-top: 102px; /* 70pxヘッダー + 32px管理バー */
}

@media screen and (max-width: 782px) {
  .admin-bar body {
    padding-top: 116px; /* 70 + 46 */
  }
}

/* レスポンシブ対応 */
@media (min-width: 600px) {
  .post-grid {
    grid-template-columns: 1fr 1fr;
  }
 
}

@media (min-width: 1024px) {
  .post-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  padding: 1rem;
}

.box {
  background: #0073aa;
  color: white;
  font-size: 2rem;
  text-align: center;
  padding: 2rem 0;
  border-radius: 8px;
}

/* タブレット以上：2列 */
@media (min-width: 600px) {
  .grid {
    grid-template-columns: 1fr 1fr;
  }
  
}



/* デスクトップ以上：3列 */
@media (min-width: 1024px) {
  .grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media (min-width: 769px) {
  .mobile-menu {
    display: none !important;
    max-height: 0 !important;
    padding: 0 !important;
  }
}


.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: #fff;
  border: 0;
  z-index: 1000;
  box-shadow: 0 0 0 rgba(0,0,0,0);
}

.header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 15px 0 0;
}

/* ログイン時のみ上に32px空ける */
.admin-bar .site-header {
  top: 32px;
}

/* スマホ表示時の管理バー対策（WordPress でのバー高さが変わる） */
@media screen and (max-width: 782px) {
  .admin-bar .site-header {
    top: 46px;
  }
   .admin-bar body {
    padding-top: 116px; /* 70 + 46 */
  }
}

@media screen and (min-width: 783px) {
  .admin-bar body {
    padding-top: 102px; /* 70 + 32 */
  }
}
  
.logo-img {
  width: 95px;
  padding: 8px 8px 4px 8px;
}

/* PCナビゲーション */
.nav-list {
  display: flex;
  list-style: none;
  gap: 1.5rem;
  margin: 0;
}

.nav-list li a {
  text-decoration: none;
  color: #333;
  font-weight: bold;
}

/* ハンバーガーアイコン */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 4px;
  border: none;
  background: none;
  cursor: pointer;
  padding-right: 5px;
}

.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #333;
}

/* モバイル用メニュー（初期は非表示） */
.mobile-menu {
  position: fixed; /* fixed → absolute に変更 */
  top: 0; /* ヘッダーの下くらいに配置（適宜調整） */
  max-height: 0;
  right: 0;
  left: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0.98);
  padding: 0; /* ← 左右均等に余白を確保 */
  transition: max-height 0.4s ease, padding 0.4s ease;
  z-index: 1000;
  border: 0 solid #ffffff;
  text-align: right;
  box-sizing: border-box; /* ← overflow回避に必須 */
  overflow-x: hidden;     /* ← 横スクロール防止 */
}

.mobile-nav-list {
  list-style: none;
  margin: 0;
  padding: 2.5rem 0 0 0;
  text-align: right;
}

.mobile-nav-list li {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #ccc;
}

.mobile-nav-list li a {
  font-size: 1.2rem;
  color: #333;
  text-decoration: none;
  font-weight: bold;
  display: inline-block; /* ← テキストの長さに応じて折り返す */
  word-break: break-word; /* ← 長い単語でも折り返し */
  max-width: 100%; /* ← 親幅からはみ出さない */
}

/* 最後の項目だけ線を消す */
.mobile-nav-list li:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

/* レスポンシブ切替 */
@media (max-width: 768px) {
  .nav-list {
    display: none;
  }

  .hamburger {
    display: flex;
  }

  .mobile-menu.active {
    max-height: 400px;
    padding: 1rem 1rem;
  }
}

  .mobile-menu.active .close-menu {
  display: block;
}

.close-menu {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #333;
  position: absolute;
  top: 1rem;
  right: 1rem;
  cursor: pointer;
  display: none;
}

.theme-single-post {
  max-width: 720px;
  margin: 0 auto;
  padding: 10px 0.2rem;
  line-height: 1.7;
}

.post-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;  /* ← 下端に揃える */
  flex-wrap: wrap; /* モバイルで崩れないように */
  gap: 1rem;
  margin-bottom: 0.3rem;
}

.post-title {
  font-size: 1.8rem;
  margin:0 0 0.3rem 0;
  font-weight: bold;
  flex: 1 1 auto;
}

.post-subtitle {
  font-size: 1rem;
  font-weight: bold;
  color: #666;
  white-space: nowrap;
  padding: 0 0 10px 0;
}

.post-meta {
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 1.5rem;
}

.post-thumbnail img {
  width: 100%;
  height: auto;
  margin-bottom: 1.5rem;
}

.post-content {
  font-size: 1rem;
  color: #333;
}

/* パンくずプラグイン breadcrumb */

.breadcrumbs {
  font-size: 0.6rem;
  color: #666;
  margin: 1rem 0;
}

.breadcrumbs a {
  color: #565656;
  text-decoration: none;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

/* ホームリンクやカテゴリリンクなどの aタグ */
main span[property="itemListElement"] a {
  color: #0073aa;
  text-decoration: none;
  font-weight: bold;
  font-size: 0.8rem;
}

/* パンくずの区切りに余白 */
main span[property="itemListElement"] {
  margin-right: 0.5rem;
}

/* 非リンクの要素（現在のページ） */
main span[property="name"] {
  color: #555;
  font-size: 0.8rem;
}

.post-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 1fr;
  margin-top: 2rem;
}

@media (min-width: 600px) {
  .post-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 1024px) {
  .post-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.post-item {
  border: 1px solid #ddd;
  padding: 1rem;
  background: #fff;
  border-radius: 8px;
  transition: box-shadow 0.2s;
}

.post-item:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.post-item img {
  width: 100%;
  height: auto;
  margin-bottom: 0.5rem;
}

.post-item h2 {
  font-size: 1.1rem;
  color: #333;
  margin: 0;
}

.category-title{
    font-size: 1.5rem;
    margin: 13px 0 8px 0;

}

/* グリッド全体：モバイル2列 → 中間3列 → デスクトップ4列 */
.category-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.7rem;
  margin-top: 1rem;
}

@media (min-width: 600px) {
  .category-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .category-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* 各投稿カード */
.category-post {
  text-align: center;
  flex: 1 1 calc(25% - 1rem); /* デスクトップで4列想定 */
  min-width: 150px;            /* 最小幅を指定して潰れ防止 */
  max-width: 100%;
}

/* サムネイル画像の正方形化 */
.thumbnail-wrapper {
  position: relative;
  width: 100%;
  padding-top: 100%; /* 正方形を維持するためのトリック */
  border-radius: 8px;
  overflow: hidden;
  background: #eee;
  border: 2px solid #eee;     /* 薄いグレーの境界線 */
  box-sizing: border-box;     /* 境界線分のはみ出し防止 */
  display: block;             /* 念のためブロック要素化 */
}

.thumbnail-wrapper img,
.thumbnail-wrapper .no-thumbnail {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* サムネイルがない場合のダミー */
.no-thumbnail {
  background: #ccc;
}

/* タイトル */
.category-post-title {
  font-size: 1.3rem;
  color: #000000;
  margin-top: 0;
  margin-left: 0.5rem;
  text-align: left;
}

.post-link {
   text-decoration: none;
}

.category-post-subtitle {
   font-weight: bold;
   text-align: left;
   font-size: 0.8rem;
   color: #000000;
   margin-top: 0.5rem;
   margin-left: 0.5rem;
   margin-bottom: 0;
}

.post-tags {
  margin-top: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.tag-item {
  background-color: #ffffff;
  color: #5b5b5b;
  padding: 0.2rem 0.5rem;
  border-radius: 10px;
  font-size: 0.6rem;
  white-space: nowrap;
  border: 1px solid #ccc; 
}


/* ↓ スマホ表示などでサブタイトルを上に回り込ませる */
@media (max-width: 600px) {
  .post-header {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 0;
  }

  .post-subtitle {
    white-space: normal;
    padding: 0;
    margin: 0;
  }
}

.site-footer {
  background: #eee;
  width: 100%;
  padding: 0;
  font-size: 0.9rem;
  color: #333;
  line-height: 2.5rem;

}

.footer-inner {
  max-width: 960px;       /* ← 中身だけを中央に制限 */
  margin: 0 auto;
  padding: 1rem 1rem 0 1rem;
}

.footer-links {
  max-width: 960px;
  margin: 0 auto;
  text-align: left;
}

.footer-widget {
  margin-left: 1rem;
  margin-bottom: 1rem;
}

.footer-widget a {
  color: #333;
  text-decoration: none;
}

.footer-widget a:hover {
  text-decoration: underline;
}

.footer-copy {
  text-align: center;
  margin-top: 2rem;
  margin-bottom: 0;
  font-size: 0.8rem;
  color: #666;
}

.img-desktop {
  display: block;
  width: 100%;
}

.img-mobile {
  display: none;
}

@media screen and (max-width: 768px) {
  .img-desktop {
    display: none;
  }

  .img-mobile {
    display: block;
    width: 100%;
  }
}

.organizer-logos {
  padding: 0 1rem 1rem 1rem;
  background-color: #ffffff;
}

.organizer-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, 1fr); /* 最小2列 */
  max-width: 960px;
  margin: 0 auto;
  align-items: center;
  justify-items: center;
}

.organizer-logo {
  width: 100%;
  max-width: 100%; /* 親の1fr幅にフィット */
  display: flex;
  justify-content: center;
  align-items: center;
}

.organizer-logo img {
  width: 100%;
  height: auto;
  max-width: 394px;
  max-height:130px;
  object-fit: contain;
}

.sponsor-logos {
  padding: 0 1rem 1rem 1rem;
  background-color: #ffffff;
}

.sponsor-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, 1fr); /* 最小2列 */
  max-width: 960px;
  margin: 0 auto;
  align-items: center;
  justify-items: center;
}

@media (min-width: 600px) {
  .sponsor-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 768px) {
  .sponsor-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1024px) {
  .sponsor-grid {
    grid-template-columns: repeat(5, 1fr); /* 最大5列 */
  }
}

.sponsor-logo img {
  width: 100%;
  height: auto;
  max-width: 165px;
  max-height: 54px;
  object-fit: contain;
}

.contact {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 0.5rem; /* スマホ用に左右に少し余白 */
}

.page-content{
  max-width: 800px;
  margin: 0 auto;
  padding: 0 0.5rem; /* スマホ用に左右に少し余白 */
}

ul, ol {
  margin: 0;
  padding-left: 1.2em; /* 箇条書きの位置を少し内側に */
}

li {
  line-height: 1.5;
  margin-bottom: 10px;
}
