/*
Theme Name: PEACE STOCK
Theme URI:  https://example.com/
Author:      (あなたの名前)
Version:     1.0
*/

    /* ====== RESET & BASE ====== */
    * { box-sizing: border-box; }
    html, body { margin: 0; height: 100%; font-family: -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif; }

    /* ====== GLOBAL BACKGROUND (optional diamond‑like gradient) ====== */
    body {
      background: linear-gradient(135deg,#fce4ec 0%,#fff 33%,#e1f5fe 66%,#e0f7fa 100%);
    }

    /* ====== THREE‑COLUMN GRID ====== */
    .layout {
      display: grid;
      grid-template-columns: 3fr 4fr 3fr; /* side / center / side */
      height: 100vh;                         /* full viewport */
    }
    aside, main { padding: 24px; }

    /* ====== SIDE COLUMNS (fixed) ====== */
    aside {
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      background: rgba(255,255,255,0.6); /* subtle white overlay so text stands out */
      backdrop-filter: blur(4px);
    }
    .left  { border-right: 1px solid #ddd; }
    .right { border-left: 1px solid #ddd; text-align: center; }

    /* ====== SCROLLABLE CENTER COLUMN ====== */
    main.center {
      overflow-y: auto;                      /* only the center scrolls */
      background: #fff;
    }

    /* ====== SAMPLE COMPONENT STYLES ====== */
    h1, h2, h3, p { margin: 0 0 1rem; }
    .title       { font-size: 60px; font-weight: 900; line-height: 1; }
    .subtitle    { font-size: 24px; }

    /* — 左側ボタン — */
    .btn {
      margin: 12px 0;
      padding: 20px 28px;
      border-radius: 48px;
      font-size: 26px;
      font-weight: 700;
      color: #fff;
      background: #222;
      text-align: center;
      cursor: pointer;
    }
    .btn small   { display: block; font-size: 12px; margin-top: 4px; font-weight: 400; }
    .btn.disabled {
      background: #dcdcdc;
      color: #777;
      cursor: default;
    }

    /* — 右側メニュー — */
    nav a {
      display: block;
      margin: 35px 0;
      font-size: 30px;
      font-weight: 700;
      color: #111;
      text-decoration: none;
    }
    nav a small { display: block; font-size: 12px; color: #f08500; font-weight: 400; }
    nav a.disabled { color: #bbb; pointer-events: none; }

    /* — フローティング円バッジ — */
    .badge {
      position: absolute;
      bottom: -10%;
      left: 1%;
      width: 160px;
      height: 160px;
      border-radius: 50%;
      background: linear-gradient(135deg,#1e88e5,#00e676);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-size: 28px;
      line-height: 1.4;
      text-align: center;
    }

    /* ====== RESPONSIVE BREAKPOINT (stack columns) ====== */
    @media (max-width: 767px) {
      .layout {
        grid-template-columns: 1fr; /* stack to single column */
      }
      aside.left,
      aside.right {
        display: none; /* hide side columns on smartphones */
      }
      main.center {
        padding-left: 16px;
        padding-right: 16px;
      }
    
      aside.left, aside.right {
        display: none; /* hide sides on mobile for simplicity */
      }
    }

/* === 左右カラム用・背景画像 ========================= */
aside.left::before,
aside.right::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: 720px 100%;   /* ← 画像を横 720px で固定 */
  background-repeat: no-repeat;
  background-position: left top; /* 左カラムは左揃え */
  z-index: -1;
}
aside.right::before {
  background-position: right top; /* 右カラムは右揃え */
}

/* 画像パスは入れ替えずそのまま */
aside.left::before  { background-image: url("assets/right.webp"); }
aside.right::before { background-image: url("assets/left.webp"); }

/* ベールはお好みで α を調整 (例: 0.55) */
aside.left::after,
aside.right::after {
  content: "";
  position: absolute;
  inset: 0;

  /* 上→下 に向かって徐々に透過を減らし（濃く見える）グラデーション */
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,.80) 0%,   /* 最上部：かなり白く薄い */
    rgba(255,255,255,.55) 40%,  /* 中間：やや薄い */
    rgba(255,255,255,.25) 100%  /* 最下部：少し透ける程度 */
  );

  backdrop-filter: blur(3px);  /* ぼかしも少し強めに */
  z-index: -1;
}

/* ===== 中央カラム内のはみ出し防止 =================== */
main.center {
  padding: 0rem;              /* 左右インナー余白（任意）  */
  box-sizing: border-box;       /* padding を列幅に含める   */
  overflow-wrap: break-word;    /* 長い英単語を自動改行      */
}

/* 中央カラムに出てくるあらゆるメディアを横幅 100% に */
main.center img,
main.center iframe,
main.center video,
main.center .wp-block-embed,
main.center figure {
  max-width: 100% !important;
  height: auto;

}

/* Gutenberg ブロックの “幅広 / 全幅” を禁止したい場合 */
main.center .alignwide,
main.center .alignfull {
  width: 100% !important;
  max-width: 100% !important;
}


/* ========== PEACE STOCK NEWS LIST ========== */
.ps-news-list{
  list-style:none;
  margin:0;
  padding:0;
}
.ps-news-item{
  border-bottom:1px solid #e5e5e5;
  padding:2.4rem 0;
}
.ps-news-item:last-child{ border-bottom:none; }

.ps-news-link{
  display:flex;
  gap:2rem;
  text-decoration:none;
  color:#222;
}

/* サムネ（正方形 120×120 / なければロゴなどで OK） */
.ps-news-thumb{
  flex:0 0 120px;
  width:120px;
  height:120px;
  background:#f3f3f3 center/cover no-repeat;
}

/* テキスト側 */
.ps-news-body{ flex:1; }

/* タグ風ラベル */
.ps-news-tag{
  display:inline-block;
  background:#4f4f4f;
  color:#fff;
  font-size:1.1rem;
  font-weight:700;
  letter-spacing:.05em;
  padding:.2rem .8rem;
  border-radius:3px;
  margin-bottom:.4rem;
}

/* 日付 */
.ps-news-date{
  display:block;
  font-size:1.2rem;
  color:#666;
  margin-bottom:.2rem;
}

/* タイトル */
.ps-news-title{
  font-size:1.1rem;
  line-height:1.4;
  margin:0;
  font-weight:700;
}

/* ===== 画像無しパターン ===== */
.no-thumb .ps-news-thumb{ display:none; }

/* ===== レスポンシブ ===== */
@media(max-width:600px){
  .ps-news-link{ flex-direction:column; }
  .ps-news-thumb{ width:100%; height:180px; }
}



.event-list       { list-style:none; margin:0; padding:0; }
.event-list > li  { margin: 3rem 0; }               /* カード間スペース */

.event-card{
  position:relative;
  display:block;
  padding:4.5rem 2rem 3rem;          /* 上にラベル分の余白を確保 */
  background:#fff;
  border-radius:12px;
  text-decoration:none;
  color:#1a1a1a;
  transition: all .25s ease;
}

/* ラベル（黒 pill） */
.event-label{
  position:absolute;
  top:0;
  left:50%;
  transform:translate(-50%,-50%);
  padding: .4rem 3.5rem;
  border-radius:9999px;
  background:#232323;
  color:#ff7a00;                     /* 黒地にオレンジ文字 */
  font-size:1.4rem;
  font-weight:700;
  letter-spacing:.05em;
}

/* “終了しました” など右上バッジ */
.event-status{
  position:absolute;
  top:0;
  right:-1.8rem;
  transform:translateY(-40%);
  width:100px; height:100px;
  border-radius:50%;
  background:#4b4b4b;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.9rem;
  line-height:1.2;
  text-align:center;
  padding:8px;
}

/* 日付 */
.event-date{
  font-size:3.5rem;
  font-weight:700;
  line-height:1;
  margin:.5rem 0 .8rem;
}
.event-date .slash{ font-size:.7em; }
.event-date .dow{
  display:inline-block;
  font-size:1.6rem;
  font-weight:700;
  writing-mode:vertical-rl;          /* 縦書きで右→左 */
  transform:rotate(180deg);          /* SUN を読みやすく */
  margin-left:.1em;
}

/* 会場名 */
.event-place{ margin:0 0 2rem; font-size:1.4rem; }

/* MORE INFO リンク */
.event-more{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:1.4rem;
  font-weight:700;
  text-decoration:underline;
}
.arrow{ font-size:1rem; }

/* ===== ホバー時にオレンジ化 ============================ */
.event-card:hover:not(.disabled){
  background:#fff;
  color:#ff7a00;
}
.event-card:hover:not(.disabled) .event-label{
  background:#ff7a00;
  color:#fff;
}
.event-card:hover:not(.disabled) .event-more { color:#ff7a00; }
.event-card:hover:not(.disabled) .event-label,
.event-card:hover:not(.disabled) .event-date,
.event-card:hover:not(.disabled) .event-place { transition:color .25s; }

/* ===== 状態別スタイル ================================= */
/* グレーのCOMING SOON プレート */
.event-card.disabled{
  background:#f3f3f3;
  pointer-events:none;
  color:#777;
}
.event-card.disabled .event-label{
  background:#cfcfcf;
  color:#777;
}
/* 中止バッジ用（例）：右上バッジは .event-status で出力済み */
.event-card.cancelled .event-status{
  background:#4b4b4b;
}

/* レスポンシブ調整（スマホで読みやすく） */
@media(max-width:600px){
  .event-card     { padding:3.5rem 0.2rem 2.5rem; }
  .event-label    { font-size:1.2rem; padding:.3rem 2.6rem; }
}

/* ───── カード全体を中央寄せ ───── */
.event-card{
  text-align:center;              /* すべて中央揃え */
  display:flex;                   /* 子要素を縦に中央配置 */
  flex-direction:column;
  align-items:center;
}

/* ラベルと右上バッジは absolute のままでOK */

/* ───── カード間を区切る罫線 ───── */
.event-list > li{
  margin:0;                       /* カード間マージンをリセット */
  padding:3rem 0;                 /* 上下に余白 */
  border-bottom:1px solid #e5e5e5;/* 下線を追加 */
    width: 80%;
    margin: 0 auto;
}

/* 最後のカードだけ線を消したい場合 */
.event-list > li:last-child{ border-bottom:none; }

/* ───── 右上バッジとラベルも中央寄せにあわせ軽く微調整 ─── */
.event-status{ right:-2rem; }     /* 位置が気になる場合は調整 */
.event-label { transform:translate(-50%,-50%); }


/* ================================
 *  汎用セクション見出し（左右二重線）
 * ================================ */
/* ================================
 *  フレックスで左右二重線見出し
 * ================================ */
.section-heading{
  display:flex;                   /* 左右線と文字を横並び */
  align-items:center;             /* 垂直中央揃え          */
  justify-content:center;
  gap:2rem;                       /* 線と文字の間隔        */
  margin:3rem 0;
}

/* 疑似要素 = 二重線パーツ  */
.section-heading::before,
.section-heading::after{
  content:'';
  flex:1 1 0;                     /* 可変幅で左右へ伸びる   */
  height:2px;                     /* 1 本目の太さ           */
  background:#2e2e2e;
  box-shadow:0 4px 0 #2e2e2e;     /* 2 本目の線（下方向へ 4px）*/
  min-width:0px;                 /* 極端に短くならないように */
  max-width:0px;                /* 長すぎ防止             */
}

/* ===== 見出し文字 ===== */
.section-heading .heading-en{
  font-size:3.2rem;
  font-weight:700;
  letter-spacing:.08em;
  color:#2e2e2e;
  margin:0;                       /* flex gap で余白管理    */
}
.section-heading .heading-ja{
  display:block;
  font-size:1.4rem;
  font-weight:500;
  color:#4e4e4e;
  margin-top:.8rem;
  text-align:center;
}
.heading-ja{
text-align: center;
    margin-top: -30px;
    margin-bottom: 10px;
}
/* ===== スマホ微調整 ===== */
@media(max-width:600px){
  .section-heading{ gap:1rem; }
  .section-heading::before,
  .section-heading::after{ min-width:50px; }
  .section-heading .heading-en{ font-size:2.4rem; }
}


/*スペシャルサンクス*/
  /* PC/タブレット共通（前回の値） */
  .name-list table {
    border-collapse: separate;
    border-spacing: 24px 12px;   /* 横24px・縦12px */
    margin: 0 auto;
  }
  .name-list td {
    padding: 4px 12px;
  }

  /* ─── スマホ向け調整 ─── */
  @media (max-width: 600px) {
    .name-list {
      background: #fff;          /* 背景を白に */
      padding: 0 8px;            /* セクション左右の余白を少しだけ */
    }
    .name-list table {
      width: 100%;
      border-spacing: 12px 6px;  /* セル間隔を半分に */
    }
    .name-list td {
      padding: 2px 6px;          /* セル内余白も縮小 */
      font-size: 0.9rem;         /* 文字を気持ち小さめ（任意） */
    }
  }

/* ===== ニュースレター ===== */
.ps-newsletter{
  text-align:center;
  padding:4rem 1rem 6rem;
  max-width:720px;
  margin:0 auto;
}
.ps-newsletter-title{
  font-size:1.1rem;
  font-weight:700;
  line-height:1.6;
  margin-bottom:4rem;
}
.ps-newsletter-form{
  display:flex;
  flex-direction:column;
  gap:2.4rem;
}

/* メール入力 */
.ps-label{
  font-size:1.1rem;
  font-weight:700;
}
#ps-email{
  width:100%;
  font-size:1rem;
  padding:1.4rem;
  border:2px solid #dcdcdc;
  border-radius:6px;
}

/* チェックボックス */
.ps-check{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  font-size:1.1rem;
  cursor:pointer;
}
.ps-check input{
  width:26px; height:26px;
  accent-color:#000;              /* モダンブラウザのみ */
}

/* 説明文 */
.ps-note{ font-size:1rem; line-height:1.8; }

/* 送信ボタン */
.ps-submit{
  cursor:pointer;
  display:block;
  width:40%;
  max-width:420px;
  margin:0 auto;
  padding:1.6rem 0;
  background:#2b2b2b;
  color:#fff;
  font-size:1rem;
  font-weight:700;
  border:none;
  border-radius:80px;
  transition:opacity .25s;
}
.ps-submit:hover{ opacity:.85; }

/* ===== スマホ微調整 ===== */
@media(max-width:600px){
  .ps-newsletter-title{ font-size:1rem; }
  #ps-email{ font-size:1rem; }
  .ps-submit{ width:80%; font-size:1rem; }
}


  /* ===== フッター全体 ===== */
.ps-footer{
  text-align:center;
  padding:4rem 1rem;
  color:#fff;
  background:rgba(0,0,0,.35);        /* 背景がある場合は薄ベールだけでOK */
  backdrop-filter:blur(4px);
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
}

/* 開催地リンク */
.ps-footer-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:3rem 4rem;
  margin-bottom:3.5rem;
}
.ps-footer-nav a{
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:.08em;
  color:#fff;
  text-decoration:none;
  transition:opacity .25s;
}
.ps-footer-nav a:hover{ opacity:.7; }
.ps-footer-nav .coming{ color:#b8b8b8; pointer-events:none; }
.ps-footer-nav .small{
  display:block;
  font-size:0.8rem;
  margin-top:.1rem;
  letter-spacing:0;
}

/* SNS アイコン */
.ps-sns{
  list-style:none;
  display:flex;
  justify-content:center;
  gap:2.4rem;
  margin:0 0 3rem;
  padding:0;
}
.ps-sns a{
  display:grid;
  place-items:center;
  width:64px; height:64px;
  background:#fff;
  color:#333;
  border-radius:50%;
  font-size:0.8rem;
  transition:transform .25s, opacity .25s;
}
.ps-sns a:hover{ transform:scale(1.08); opacity:.8; }

/* プライバシーリンク & コピー */
.ps-privacy{
  display:inline-block;
  margin-bottom:1rem;
  color:#fff;
  font-size:0.8rem;
  text-decoration:none;
  border-bottom:1px solid currentColor;
}
.ps-copy{ display:block; font-size:1.2rem; color:#e0e0e0; }

/* ===== スマホ微調整 ===== */
@media(max-width:600px){
  .ps-footer-nav a{ font-size:1rem; }
  .ps-sns a{ width:56px; height:56px; font-size:1.8rem; }
}


/* ===== 投稿ページ：カテゴリーラベル ================= */
.ps-article-cat{
  display:inline-block;
  margin-bottom:1rem;           /* 日付との間隔 */
  padding:.25rem .9rem;
  background:#4f4f4f;          /* ★ 好みの背景色に変更 */
  color:#fff;
  font-size:1.2rem;
  font-weight:700;
  letter-spacing:.05em;
  border-radius:4px;
  margin-right:.6rem; 
  margin-bottom:.4rem;
}

/* ─ カテゴリー別に色分けしたい場合 ─
   カテゴリースラッグが  'tokyo' なら … */
.category-tokyo .ps-article-cat{ background:#f06; }
/* 同様に
   .category-hiroshima { background:#38bdf8; } などを追加 */



   /* フィルターナビ */
.ps-archive-filter{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem 1.2rem;
  justify-content:center;
  margin-bottom:3rem;
}
.ps-archive-filter a{
  display:inline-block;
  padding:.35rem 1.2rem;
  font-size:1.3rem;
  font-weight:700;
  background:#e5e5e5;
  color:#333;
  border-radius:4px;
  text-decoration:none;
}
.ps-archive-filter a.active{ background:#000; color:#fff; }


/* ======== ページネーション ======== */

.ps-pagination{                     /* ul を取って nav に適用 */
  margin:4rem 0;
  text-align:center;
}
.ps-pagination ul{
  display:inline-flex;
  gap:.8rem;
  padding:0;
  margin:0;
  list-style:none;
}


.ps-pagination li{}
.ps-pagination a,
.ps-pagination span{
  display:block;
  width:44px; height:44px;
  line-height:44px;
  border-radius:50%;
  background:#e5e5e5;
  color:#333;
  font-size:1.4rem;
  font-weight:700;
  text-decoration:none;
  transition:background .25s, color .25s;
}
.ps-pagination a:hover{
  background:#000; color:#fff;
}
.ps-pagination li.active span{
  background:#000;
  color:#fff;
  cursor:default;
}


/* === 最新 1 件ボックス ======================= */
.ps-latest-box{ margin:4rem 0; }

.ps-latest-heading{                       /* 点線左右見出し */
  text-align:center;
  font-size:1.1rem;
  margin-bottom:2.5rem;
  color:#333;
}
.ps-latest-heading .dotted{
  display:inline-block;
  position:relative;
  padding:0 2.4rem;
}
.ps-latest-heading .dotted::before,
.ps-latest-heading .dotted::after{
  content:'';
  position:absolute;
  top:50%;
  width:40vw; max-width:160px;
  border-top:1px dashed #bfbfbf;
}
.ps-latest-heading .dotted::before{ right:100%; margin-right:1rem; }
.ps-latest-heading .dotted::after { left:100%;  margin-left:1rem;  }

/* 本文リンク横並び */
.ps-latest-link{
  display:flex;
  gap:2rem;
  align-items:flex-start;
  text-decoration:none;
  color:#111;
}
.ps-latest-date{
  font-size:1.0rem;
  color:#606060;
  min-width:90px;
}
.ps-latest-title{
  font-size:1.1rem;
  line-height:1.6;
  text-decoration:underline;
}

/* 一覧へ */
.ps-latest-more{
  text-align:right;
}
.ps-latest-more a{
  font-size:1.1rem;
  color:#111;
  text-decoration:none;
}
.ps-latest-more a:hover{ text-decoration:underline; }

/* 汎用：ドットだけの水平線 */
.ps-dotline{
  border:0;
  border-top:2px dotted #bfbfbf;  /* 点線の色・太さ */
  margin-top: 3rem;
}

/* ───── 左カラム全体を中央寄せ ───── */
.left{
  align-items:center;          /* 横方向に中央配置（flex-item を中央へ） */
  text-align:center;           /* 見出しや <p> も中央揃え               */
}

/* ───── ボタン幅を少しスリムに ───── */
.btn{
  width:240px;                 /* ★ お好みで 180–260px などに調整 */
  max-width:100%;
  padding:18px 24px;           /* 既存より狭めたい場合はここも調整 */
}

/* disabled ボタンの見た目を保つ場合はそのまま */
.btn.disabled{ background:#dcdcdc; color:#777; }

/* ベースボタン（既存）に境界線を用意しておくとカラー反転が滑らか */
.btn{
  background:#000;
  color:#fff;
  border:2px solid transparent;
  transition:background .25s, color .25s, border .25s;
}

/* ───── ホバー時：白背景 × #f08500 テキスト&枠線 ───── */
.btn:hover:not(.disabled){
  background:#fff;
  color:#f08500;
  border-color:#f08500;
}

/* small の色も揃える */
.btn:hover:not(.disabled) small{ color:#f08500; }

/* ===== 右カラム ナビリンク ===== */
.right nav a{
  color:#111;                   /* 既定色（黒） */
  text-decoration:none;
  display:block;
  margin:35px 0;
  font-size:30px;
  font-weight:700;
  transition:color .25s;        /* スムーズな切替え */
}
.right nav a small{
  display:block;
  font-size:12px;
  color:#f08500;                /* サブ文字は常にオレンジでもOK */
  font-weight:400;
  transition:color .25s;
}

/* ───── ホバー時カラー反転 ───── */
.right nav a:hover:not(.disabled){
  color:#f08500;                /* メイン文字を #f08500 */
}
.right nav a:hover:not(.disabled) small{
  color:#f08500;                /* small も同じ色で統一 */
}

/* disabled リンクはそのままグレー */
.right nav a.disabled{ color:#bbb; pointer-events:none; }

/* ========== 丸型アイコン行 ========== */
.sns-circle{
  list-style:none;
  display:flex;
  gap:0.4rem;                /* アイコン間の間隔 */
  justify-content:center;
  padding:0;
  margin:0;
}
.sns-circle a{
display: grid;
place-items: center;
width: 34px;
height: 34px;
background: #2c2c2c;
color: #fff;
border-radius: 80%;
font-size: 1.2rem;
text-decoration:none;
transition: transform .25s, opacity .25s;
}
.sns-circle a:hover{
  transform:scale(1.08);
  opacity:.85;
}


/* ========== CONTACT FORM  ========== */
/* ===== CONTACT FORM – compact version ===== */
.ps-contact-form{ max-width:540px; }      /* 640 → 540 */

/* ラベル文字をやや小さく */
.ps-label{ font-size:1.35rem; }           /* 1.5rem → 1.35rem */

/* インプット／テキストエリア */
.ps-input,
.ps-textarea{
  padding:.9rem 1.2rem;                   /* 1.2rem → 0.9rem */
  font-size:1.4rem;                       /* 1.6rem → 1.4rem */
  width: 100%;
}
.ps-textarea{ min-height:140px; }         /* 180px → 140px */

/* チェックボックスの pill ラベル */
.ps-checkbox label{
  padding:.4rem 1rem;                     /* .5rem 1.4rem → .4rem 1rem */
  font-size:1.25rem;                      /* 1.4rem → 1.25rem */
}

/* 送信ボタン */
.ps-submit{
  padding:1.1rem 3.6rem;                  /* 1.4rem 4.5rem → 1.1rem 3.6rem */
  font-size:1.6rem;                       /* 1.8rem → 1.6rem */
}

/* モバイル時も一段階小さく調整 */
@media(max-width:480px){
  .ps-label{ font-size:1.25rem; }
  .ps-input, .ps-textarea{ font-size:1.3rem;width: 100%; }
  .ps-checkbox label{ font-size:1.2rem; }
  .ps-submit{ font-size:1.45rem; }
}


/* ===== ページネーションを横並びに ===== */
.ps-pagination{
  text-align:center;          /* 真ん中寄せ（任意） */
  margin:4rem 0;
}

.ps-pagination .page-numbers{
  display:inline-flex;        /* ← block から変更 */
  align-items:center;
  justify-content:center;
  width:44px; height:44px;    /* 丸型の場合は指定。不要なら削除 */
  margin:0 .5rem;
  border-radius:50%;
  background:#e5e5e5;
  color:#333;
  font-size:0.8rem;
  font-weight:700;
  text-decoration:none;
  transition:background .25s, color .25s;
}

/* 現在ページ（<span class="page-numbers current">…）*/
.ps-pagination .current{
  background:#000;
  color:#fff;
  cursor:default;
}

/* ホバー時 */
.ps-pagination a.page-numbers:hover{
  background:#000;
  color:#fff;
}

/* 画面全体で横オーバーフローを殺す（安全） */
html, body,
.layout,                 /* グリッド自体 */
main.center{             /* 中央カラムだけ再指定 */
  overflow-x:hidden;
}

@media (max-width:600px){
  /* 巨大な日付がハミ出すケースを潰す */
  .event-date{ 
    width: 100%;
    font-size:2.2rem;
   }

  /* ページネーションの丸を少し小さく */
  .ps-pagination .page-numbers{
    width:38px; height:38px; line-height:38px;
    margin:.3rem .4rem;
  }

  .event-date .dow{
  font-size:1.2rem;
}
}


/* ===== ハンバーガー (SPのみ) ===== */
.ps-hamburger{
  position:fixed; z-index:9999;
  top:18px; right:18px;
  width:32px; height:24px;
  background:none; border:none; padding:0;
  display:none;                   /* PCで非表示 */
}
.ps-hamburger span{
  display:block; height:3px; margin:5px 0;
  background:#000; transition:.3s;
}
/* 開閉アニメ */
body.menu-open .ps-hamburger span:nth-child(1){ transform:rotate(45deg) translateY(8px);}
body.menu-open .ps-hamburger span:nth-child(2){ opacity:0;}
body.menu-open .ps-hamburger span:nth-child(3){ transform:rotate(-45deg) translateY(-8px);}

/* ===== モバイルナビオーバーレイ ===== */
.ps-mobile-nav{
  position:fixed; inset:0;
  background:rgba(0,0,0,.8);
  backdrop-filter:blur(4px);
  color:#fff;
  transform:translateX(100%);
  transition:transform .45s cubic-bezier(.7,0,.1,1);
  z-index:9990;
}
body.menu-open #ps-mobile-nav{ transform:translateX(0); }

.ps-mobile-nav .inner{
  padding:80px 24px 48px;         /* トップに余白＝ハンバーガー高さ */
  overflow-y:auto; height:100%;
  text-align:center;
}

/* ボタン共通 */
.ps-mobile-nav .btn{
  width:240px; margin:14px auto;
}

/* 通常リンク */
.ps-mobile-links{ list-style:none; padding:0; margin:40px 0; }
.ps-mobile-links li{ margin:22px 0; }
.ps-mobile-links a, .ps-mobile-links span{
  font-size:28px; font-weight:700; color:#fff; text-decoration:none;
}
.ps-mobile-links span{ opacity:.45; cursor:default; }
.ps-mobile-links a span,
.ps-mobile-links span span{ display:block; font-size:12px; }

/* SNS 円アイコンを中央寄せ */
.ps-mobile-nav .sns-circle{ justify-content:center; margin-top:48px; }

/* ===== ブレークポイント ===== */
@media(max-width:767px){
  .ps-hamburger{ display:block; }
}

/* =====================================================
 *  SP幅だけ中央カラムに背景画像を敷く
 *    - TOP( front-page | home )  →  右カラム背景
 *    - それ以外                →  左カラム背景
 * ===================================================== */
@media (max-width: 767px){

  main.center{ position:relative; z-index:1; }  /* 背景より前面 */

/* ---- TOP 専用（右カラム背景） ---- */
body.home   main.center::before,
body.front-page main.center::before{
  content:'';
  position:fixed;
  inset:0;
  /*   ↓↓↓ 1レイヤ目 : 白 60% ベール
       ↓↓↓ 2レイヤ目 : 背景画像                 */
  background:
    linear-gradient(rgba(255,255,255,.6), rgba(255,255,255,.6)),
    url("assets/left.webp") center/cover no-repeat;
  z-index:-1;
}

/* ---- その他ページ（左カラム背景） ---- */
body:not(.home):not(.front-page) main.center::before{
  content:'';
  position:fixed;
  inset:0;
  background:
    linear-gradient(rgba(255,255,255,.6), rgba(255,255,255,.6)),
    url("assets/right.webp") center/cover no-repeat;
  z-index:-1;
}

.title {
    font-size: 50px;
    font-weight: 900;
    line-height: 1;
}

}


/* 共通：Disclosure */
.ps-disclosure {
  border-top: 1px solid var(--c-border, #e5e5e5);
  border-bottom: 1px solid var(--c-border, #e5e5e5);
  margin: 0 0 1rem;
}

/* summary */
.ps-disclosure > summary {
  cursor: pointer;
  list-style: none;                 /* Firefox などでのマーカー非表示 */
  -webkit-user-select: none;
  user-select: none;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .9rem 0;
  font-weight: 700;
  font-size: 1.6em;
}

/* ブラウザ既定の三角マーカーを消す（Safari/Chrome） */
.ps-disclosure > summary::-webkit-details-marker {
  display: none;
}

/* 「+ / –」をCSSで */
.ps-disclosure > summary::before {
  content: "+";
  font-size: 1.2em;
  line-height: 1;
  transform: translateY(-0.02em);
}
.ps-disclosure[open] > summary::before {
  content: "–";
}

/* 展開エリア */
.ps-disclosure .desc {
  margin: 0 0 .5rem;
  opacity: .8;
  font-size: .9em;
}
.ps-disclosure .ps-locations {
  display: grid;
  gap: .5rem;
  padding: 0 0 1rem;
}

/* 既存の .btn に合わせて（必要なら） */
.ps-disclosure .ps-locations .btn {
  display: block;           /* 縦に並べたい場合 */
}
.ps-disclosure .ps-locations .btn.disabled {
  pointer-events: none;
  opacity: .5;
}
