/*
Theme Name: Haikabayashi
Theme URI: https://example.com
Author: Haikabayashi Hozonkai
Description: 排禍ばやし保存会 公式サイト用オリジナルテーマ。緞帳演出のトップページ、演目紹介ページなど、デザイン案(Claude作成)を WordPress テーマ化したものです。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: haikabayashi
*/

/* =========================================================
   0. 変数・リセット
   ========================================================= */
:root{
  --saya-color:#b67441; /* 紗綾形の色(海老茶よりの金) */
  --black:#2b1216;
  --panel:#1f0d10;
  --text:#eee6d6;
  --gold:#cf9c38;
  --gold-dim:rgba(207,156,56,.35);
  --gold-grad:linear-gradient(180deg,#ecc873 0%,#cf9c38 42%,#8a6420 58%,#e3b85a 100%);
  --gold-h:linear-gradient(90deg,#8a6420,#ecc873 30%,#cf9c38 50%,#ecc873 70%,#8a6420);
  --red-1:#2e0a10;--red-2:#671018;--red-3:#a8141c;--red-4:#7a1219;
}
*{box-sizing:border-box;}
html{scroll-padding-top:env(safe-area-inset-top,0px);}
body{
  margin:0;background:var(--black);color:var(--text);
  font-family:"Shippori Mincho","Yu Mincho",serif;line-height:2;
  padding-top:env(safe-area-inset-top,0px);
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;height:auto;display:block;}
.screen-reader-text{position:absolute;left:-9999px;}

/* ルビ */
ruby{ruby-align:center;}
rt{font-size:.5em;color:#c9a36a;letter-spacing:0;font-weight:400;}

/* 本文段落は一文字下げ(リードは除く) */
.panel p{text-indent:1em;}
.panel p.lead{text-indent:0;}

/* =========================================================
   1. ヘッダー・ナビ
   ========================================================= */
.site-header{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:40;
  background:#000;border-bottom:3px solid;border-image:var(--gold-h) 1;
}
.site-header .bar{
  max-width:1100px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.site-logo{font-family:"Shippori Mincho",serif;font-size:1.2rem;letter-spacing:.15em;
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;font-weight:700;}
.main-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:22px;margin:0;padding:0;}
.main-nav a{font-size:.92rem;letter-spacing:.1em;color:var(--gold);border-bottom:1px solid transparent;padding-bottom:2px;}
.main-nav a:hover,.main-nav .current-menu-item>a{border-color:var(--gold);}
.nav-toggle{display:none;background:none;border:1px solid var(--gold-dim);color:var(--gold);padding:8px 12px 8px 14px;font:inherit;letter-spacing:.2em;}

@media(max-width:700px){
  .main-nav{display:none;width:100%;}
  .main-nav.is-open{display:block;}
  .nav-toggle{display:inline-block;}
}

/* =========================================================
   2. 見出し・セクション共通
   ========================================================= */
.wrap{max-width:900px;margin:0 auto;padding:0 24px;}
.page-title{
  display:block;text-align:center;font-size:1.9rem;letter-spacing:.4em;
  margin:92px 0 44px;position:relative;padding-bottom:30px;
}
.page-title::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(207,156,56,.7) 18%,rgba(207,156,56,.7) 82%,transparent);}
.page-title::before{content:"";position:absolute;left:50%;bottom:-5px;width:9px;height:9px;
  transform:translateX(-50%) rotate(45deg);background:var(--gold-grad);}
.page-title .en{display:block;margin-top:.55rem;font:italic 400 .72rem/1.4 Georgia,serif;
  letter-spacing:.45em;color:rgba(207,156,56,.8);}

h2.section-title{
  margin:54px 0 20px;font-size:1.15rem;letter-spacing:.25em;color:var(--gold);
  font-weight:500;border-bottom:1px solid var(--gold-dim);padding-bottom:8px;
}

/* 装飾パネル(説明文の囲み) */
.panel{
  position:relative;border:1px solid rgba(207,156,56,.5);
  background:linear-gradient(160deg,rgba(66,34,24,.88),rgba(36,16,20,.92));
  padding:30px 28px;letter-spacing:.04em;box-shadow:0 12px 34px rgba(0,0,0,.5);
  margin-bottom:28px;
}
.panel::before,.panel::after{content:"";position:absolute;width:26px;height:26px;pointer-events:none;}
.panel::before{top:0;left:0;border-top:2px solid var(--gold);border-left:2px solid var(--gold);}
.panel::after{bottom:0;right:0;border-bottom:2px solid var(--gold);border-right:2px solid var(--gold);}
.panel p.lead{font-size:1.2rem;letter-spacing:.22em;color:var(--gold);line-height:1.9;margin:0 0 .5rem;font-weight:500;}
.panel strong{color:#ecc873;font-weight:700;}

/* 画面に入ったらふわっと表示 */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease;}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* =========================================================
   3. トップページ:緞帳ヒーロー
   ========================================================= */
.curtain-hero{position:relative;height:clamp(480px,80vh,780px);overflow:hidden;
  background:#1a1a1a;border-bottom:8px solid;border-image:var(--gold-h) 1;
  box-shadow:0 10px 40px rgba(207,156,56,.3);}
.curtain-hero .scene{position:absolute;inset:0;display:flex;justify-content:center;align-items:flex-end;
  background:#2a2a2a;}
.curtain-hero .scene video,.curtain-hero .scene img.stage-media{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.curtain{position:absolute;top:0;bottom:0;width:50%;z-index:2;
  background-image:
    linear-gradient(180deg,rgba(0,0,0,.55),transparent 18%,transparent 78%,rgba(0,0,0,.6)),
    repeating-linear-gradient(90deg,var(--red-1) 0,var(--red-2) 7px,var(--red-3) 17px,var(--red-4) 27px,var(--red-1) 38px);
}
.curtain.l{left:0;transform:translateX(calc(var(--gap,0) * -1%));border-right:2px solid var(--gold);
  box-shadow:6px 0 24px rgba(0,0,0,.6);
  background-image:linear-gradient(90deg,transparent 78%,rgba(0,0,0,.6) 100%),
    linear-gradient(180deg,rgba(0,0,0,.55),transparent 18%,transparent 78%,rgba(0,0,0,.6)),
    repeating-linear-gradient(90deg,var(--red-1) 0,var(--red-2) 7px,var(--red-3) 17px,var(--red-4) 27px,var(--red-1) 38px);}
.curtain.r{right:0;transform:translateX(calc(var(--gap,0) * 1%));border-left:2px solid var(--gold);
  box-shadow:-6px 0 24px rgba(0,0,0,.6);
  background-image:linear-gradient(270deg,transparent 78%,rgba(0,0,0,.6) 100%),
    linear-gradient(180deg,rgba(0,0,0,.55),transparent 18%,transparent 78%,rgba(0,0,0,.6)),
    repeating-linear-gradient(90deg,var(--red-1) 0,var(--red-2) 7px,var(--red-3) 17px,var(--red-4) 27px,var(--red-1) 38px);}
@keyframes swayL{0%,100%{transform:translateX(calc(var(--gap,0) * -1%));}50%{transform:translateX(calc(var(--gap,0) * -1% + 3px));}}
@keyframes swayR{0%,100%{transform:translateX(calc(var(--gap,0) * 1%));}50%{transform:translateX(calc(var(--gap,0) * 1% - 3px));}}
.curtain.l{animation:swayL 7s ease-in-out infinite;}
.curtain.r{animation:swayR 7.6s ease-in-out infinite;}
@media(prefers-reduced-motion:reduce){.curtain.l,.curtain.r{animation:none;}}

.valance{position:absolute;left:0;right:0;top:0;height:46px;z-index:4;
  background:linear-gradient(180deg,rgba(0,0,0,.4),transparent 60%),
    repeating-linear-gradient(90deg,var(--red-1) 0,var(--red-2) 7px,var(--red-3) 17px,var(--red-4) 27px,var(--red-1) 38px);
  border-bottom:6px solid;border-image:var(--gold-h) 1;box-shadow:0 8px 16px rgba(0,0,0,.6);}

.hero-plaque{position:absolute;right:auto;top:64px;z-index:5;padding:14px 10px;
  display:flex;flex-direction:column;align-items:center;
  font-size:1.25rem;font-weight:700;line-height:1.25;color:#ecc873;
  text-shadow:0 0 10px rgba(207,156,56,.6);
  background:linear-gradient(#1c1505,#0a0a0a);border:2px solid;border-image:var(--gold-grad) 1;
  left:min(calc(100% - 76px),calc(50% + 50% * var(--gap,0) / 100));
}
.hero-plaque span{display:block;}

/* =========================================================
   4. 一覧(お知らせ/活動報告):年表デザイン
   ========================================================= */
.year-tabs{display:flex;gap:8px;margin:0 0 24px;flex-wrap:wrap;}
.year-tabs a{border:1px solid var(--gold-dim);background:none;color:var(--gold);
  padding:6px 20px;letter-spacing:.15em;border-radius:20px;font-size:.9rem;}
.year-tabs a.is-active{background:var(--gold-grad);color:#000;border-color:var(--gold);}

.timeline{list-style:none;margin:0 0 40px;padding:0 0 0 22px;border-left:2px solid var(--gold-dim);}
.timeline li{position:relative;padding:0 0 18px 20px;}
.timeline li::before{content:"";position:absolute;left:-30px;top:12px;width:12px;height:12px;
  background:var(--gold);transform:rotate(45deg);}
.timeline li.year-heading{padding-bottom:14px;margin-top:34px;}
.timeline li.year-heading:first-child{margin-top:0;}
.timeline li.year-heading b{font-size:1.2rem;letter-spacing:.2em;color:var(--gold);}
.timeline li.year-heading::before{width:16px;height:16px;left:-32px;top:9px;background:var(--gold-grad);}

.post-row{display:flex;justify-content:space-between;align-items:center;gap:16px;
  border-bottom:1px solid var(--gold-dim);padding-bottom:18px;margin-bottom:16px;}
.post-row .meta{display:block;}
.post-row time{color:var(--gold);font-size:.85rem;letter-spacing:.08em;}
.post-row .tag{display:inline-block;border:1px solid var(--gold);color:var(--gold);
  font-size:.7rem;padding:0 10px;margin-left:10px;letter-spacing:.1em;}
.post-row .title{display:block;font-size:1.02rem;letter-spacing:.05em;margin-top:6px;transition:color .2s;}
.post-row:hover .title{color:var(--gold);}
.post-row .thumb{flex:none;width:84px;height:84px;border:1px solid var(--gold);border-radius:3px;
  background-size:cover;background-position:center;}

.pagination{display:flex;gap:10px;justify-content:center;margin:30px 0;}
.pagination a,.pagination span{border:1px solid var(--gold-dim);color:var(--gold);
  padding:6px 16px;border-radius:20px;font-size:.9rem;}
.pagination .current{background:var(--gold-grad);color:#000;}

/* 記事個別 */
.single-article .hero-image{aspect-ratio:16/9;background-size:cover;background-position:center;
  border:1px solid var(--gold-dim);margin:24px 0;}
.single-article .post-nav{display:flex;justify-content:space-between;margin-top:40px;gap:12px;
  font-size:.9rem;color:var(--gold);flex-wrap:wrap;}

/* =========================================================
   5. 演目ページ
   ========================================================= */
.dance-intro{display:flex;flex-wrap:wrap;gap:4px;align-items:flex-end;justify-content:center;margin:20px 0 30px;}
.dance-intro img{height:clamp(150px,40vw,280px);width:auto;object-fit:contain;margin-left:-10px;}

.dance-nav{position:fixed;right:8px;top:0;bottom:0;z-index:30;display:flex;flex-direction:column;
  justify-content:center;gap:1.2rem;pointer-events:none;}
.dance-nav a{pointer-events:auto;display:flex;flex-direction:column;align-items:center;
  color:rgba(240,228,208,.55);font-size:.9rem;line-height:1.2;padding:10px 12px;
  transition:color .3s,text-shadow .3s;-webkit-tap-highlight-color:transparent;}
.dance-nav a span{display:block;}
.dance-nav a:hover,.dance-nav a.is-current{color:var(--dance-color,var(--gold));font-weight:700;
  text-shadow:0 0 8px var(--dance-color,transparent);}
@media(max-width:700px){.dance-nav{right:2px;gap:.8rem;}.dance-nav a{font-size:.78rem;padding:8px 8px;}}

.dance-section{position:relative;min-height:100svh;display:flex;align-items:flex-start;justify-content:center;
  padding:130px 0 70px;overflow:hidden;}
.dance-stage{display:flex;flex-direction:column;align-items:center;max-width:720px;margin:0 auto;gap:1.6rem;width:100%;}
.dance-head{display:flex;align-items:flex-start;justify-content:center;gap:1.4rem;width:100%;}
.dance-stage .name{flex:none;display:flex;flex-direction:column;align-items:center;margin:0;
  font-size:2.6rem;line-height:1.15;letter-spacing:0;color:var(--text);
  border-left:1px dashed var(--gold-dim);padding-left:1rem;
  text-shadow:0 0 25px var(--dance-color,transparent);}
.dance-stage .name span{display:block;}
@media(max-width:700px){
  .dance-head{gap:1rem;}
  .dance-stage .name{font-size:1.8rem;padding-left:.8rem;}
}
.dance-stage figure{margin:0;max-height:min(44vh,360px);}
.dance-stage figure img{max-height:min(44vh,360px);width:auto;margin:0 auto;
  filter:drop-shadow(0 14px 20px rgba(0,0,0,.65));}
.dance-smoke{position:absolute;inset:0;pointer-events:none;z-index:1;}
.dance-stage .panel{position:relative;z-index:2;width:100%;max-width:640px;}

/* =========================================================
   6. お問い合わせ
   ========================================================= */
.contact-form label{display:block;margin:22px 0 6px;color:var(--gold);letter-spacing:.15em;font-size:.9rem;}
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%;background:#0b0b0b;border:1px solid var(--gold-dim);color:var(--text);
  font:inherit;padding:12px 14px;border-radius:4px;}
.contact-form textarea{min-height:170px;}
.contact-form .send{margin-top:30px;width:100%;padding:14px;border:1px solid var(--gold);
  background:linear-gradient(#1c1505,#050505);color:var(--gold);font:inherit;letter-spacing:.35em;cursor:pointer;}
.contact-form .send:hover{background:var(--gold-grad);color:#000;}

/* =========================================================
   7. ギャラリー
   ========================================================= */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.gallery-grid .item{aspect-ratio:4/3;background-size:cover;background-position:center;position:relative;
  border:1px solid var(--gold-dim);}
.gallery-grid .item.is-video::after{content:"▶";position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;font-size:2rem;color:var(--gold);background:rgba(0,0,0,.25);}
@media(max-width:640px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}

/* =========================================================
   8. フッター
   ========================================================= */
.site-footer{border-top:6px solid;border-image:var(--gold-h) 1;background:#000;
  padding:60px 24px 40px;text-align:center;}
.site-footer .flogo{font-size:1.4rem;letter-spacing:.3em;margin-bottom:12px;
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;}
.site-footer p{font-size:.85rem;color:#b9a58a;margin:4px 0;}
.site-footer .copy{margin-top:30px;font-size:.75rem;color:#6b6558;}

@media(max-width:700px){
  .page-title{font-size:1.45rem;letter-spacing:.28em;}
  .panel{padding:24px 20px;}
  .post-row{flex-direction:row;}
}

/* スマホ:演目の本文が画面端に付かないよう余白(右は縦書きメニューの分) */
@media(max-width:700px){.dance-section{padding:120px 40px 60px 16px;}}

/* トップ:一覧へのリンク */
.more-link{text-align:right;margin:-20px 0 50px;}
.more-link a{color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:2px;font-size:.9rem;letter-spacing:.1em;}

/* ===== 筆文字ロゴ(画像) ===== */
.site-logo{display:block;line-height:0;}
.site-logo img{height:40px;width:auto;}
.hero-plaque{padding:12px 10px;line-height:0;}
.hero-plaque img{display:block;height:clamp(130px,26vh,190px);width:auto;}
.site-footer .flogo{line-height:0;margin-bottom:16px;}
.site-footer .flogo img{height:56px;width:auto;margin:0 auto;}
@media(max-width:700px){.site-logo img{height:34px;}}
/* 管理画面で設定したロゴを金色で表示 */
.logo-gold{display:inline-block;vertical-align:middle;width:auto;background:var(--gold-grad);
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;}
.site-logo .logo-gold{height:40px;}
.site-footer .flogo .logo-gold{height:56px;}
@media(max-width:700px){.site-logo .logo-gold{height:34px;}}
/* 札が文字の場合(古い版)でも文字が重ならないように */
.hero-plaque span{line-height:1.25;}
/* フッター:ロゴはトップページへのリンク / 著作権表示は背景にほぼ溶け込む色 */
.site-footer .flogo a{display:inline-block;line-height:0;}
.site-footer .copy{color:#0d0d0d;}

/* ===== ギャラリー ===== */
.gallery-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px;}
.gallery-tabs button{border:1px solid var(--gold-dim);background:none;color:var(--gold);font:inherit;
  padding:6px 22px;letter-spacing:.15em;border-radius:20px;cursor:pointer;}
.gallery-tabs button.is-active{background:var(--gold-grad);color:#1a0a0c;border-color:var(--gold);}
.gallery-grid{list-style:none;margin:0 0 60px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.gallery-grid .g-cell[hidden]{display:none;}
.g-item{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:0;border:1px solid var(--gold-dim);
  background:#1a0a0c;cursor:zoom-in;overflow:hidden;}
.g-item img,.g-item video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease,filter .3s;}
.g-item:hover img,.g-item:hover video,.g-item:focus-visible img{transform:scale(1.05);filter:brightness(1.1);}
.g-item:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.g-item.is-video{cursor:pointer;}
.g-item.is-video::after{content:"";position:absolute;left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%);
  border-radius:50%;background:rgba(10,4,6,.6) url("assets/img/sayagata.svg") 56% 50%/26px no-repeat;
  border:1px solid var(--gold);}
.g-cap{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 8px;font-size:.78rem;line-height:1.5;text-align:left;
  color:#f0e4d0;background:linear-gradient(transparent,rgba(10,4,6,.85));}
@media(max-width:700px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:6px;}.g-cap{font-size:.7rem;padding:14px 6px 5px;}}

/* 拡大表示 */
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(8,3,4,.97);display:flex;align-items:center;justify-content:center;
  padding:56px 56px 40px;}
.lightbox[hidden]{display:none;}
html.lb-open{overflow:hidden;}
.lb-stage{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px;}
.lb-media img,.lb-media video{max-width:min(1200px,100%);max-height:calc(100svh - 150px);width:auto;height:auto;display:block;
  border:1px solid var(--gold-dim);}
.lb-media{display:flex;justify-content:center;width:100%;}
.lb-media iframe.is-frame{width:min(1100px,90vw);aspect-ratio:16/9;height:auto;border:1px solid var(--gold-dim);background:#000;}
.lb-cap{color:#f0e4d0;font-size:.9rem;letter-spacing:.06em;text-align:center;max-width:60ch;}
.lb-close,.lb-prev,.lb-next{position:absolute;background:none;border:0;color:var(--gold);cursor:pointer;font:inherit;line-height:1;
  -webkit-tap-highlight-color:transparent;}
.lb-close{top:10px;right:14px;font-size:2.2rem;padding:6px 10px;}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);font-size:3rem;padding:20px 12px;}
.lb-prev{left:4px;} .lb-next{right:4px;}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{color:#ecc873;text-shadow:0 0 10px rgba(207,156,56,.7);}
.lb-count{position:absolute;bottom:12px;left:0;right:0;text-align:center;color:#b9a58a;font-size:.8rem;letter-spacing:.2em;}
@media(max-width:700px){.lightbox{padding:52px 8px 40px;}.lb-prev,.lb-next{font-size:2.4rem;padding:16px 6px;}
  .lb-media iframe.is-frame{width:96vw;}}
.gallery-extra{margin:0 0 40px;}

/* 排禍ばやしについて:本文の写真(画像・ギャラリーブロック) */
.about-page .panel figure{margin:24px 0;}
.about-page .panel figure img{display:block;max-width:100%;height:auto;border:1px solid var(--gold-dim);}
.about-page .panel .wp-block-image.aligncenter img,.about-page .panel .wp-block-image:not(.alignleft):not(.alignright) img{margin:0 auto;}
.about-page .panel figcaption,.about-page .panel .wp-element-caption{margin-top:6px;font-size:.85rem;line-height:1.6;color:rgba(238,230,214,.75);text-align:center;text-indent:0;letter-spacing:.05em;}
.about-page .panel .wp-block-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:24px 0;}
.about-page .panel .wp-block-gallery.columns-1{grid-template-columns:1fr;}
.about-page .panel .wp-block-gallery.columns-3{grid-template-columns:repeat(3,1fr);}
.about-page .panel .wp-block-gallery>figure{margin:0!important;width:auto!important;flex-direction:column!important;}
.about-page .panel .wp-block-gallery figure.wp-block-image::before{display:none!important;}
.about-page .panel .wp-block-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.about-page .panel .wp-block-gallery figure.wp-block-image figcaption{position:static!important;background:none!important;padding:0!important;margin-top:6px!important;max-height:none!important;overflow:visible!important;color:rgba(238,230,214,.75)!important;text-shadow:none!important;font-size:.85rem!important;}
.about-page .panel h3{color:var(--gold);font-size:1.1rem;letter-spacing:.15em;margin:28px 0 8px;}
@media (max-width:600px){.about-page .panel .wp-block-gallery{grid-template-columns:1fr;gap:12px;}}

/* お知らせ:日程の表(パターン「お知らせ(日程の表つき)」) */
.panel .wp-block-table{margin:24px 0;overflow-x:auto;}
.panel .wp-block-table table{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.7;}
.panel .wp-block-table th,.panel .wp-block-table td{border:1px solid var(--gold-dim);padding:10px 14px;text-align:left;vertical-align:top;text-indent:0;}
.panel .wp-block-table thead th{background:rgba(207,156,56,.14);color:var(--gold);font-weight:500;letter-spacing:.15em;white-space:nowrap;border-bottom:1px solid var(--gold);}
.panel .wp-block-table tbody tr:nth-child(even) td{background:rgba(255,255,255,.025);}
.panel .haika-schedule td:nth-child(1),.panel .haika-schedule td:nth-child(2){white-space:nowrap;}
.panel .haika-schedule td:nth-child(1){color:#ecc873;}
@media (max-width:600px){
  /* スマホでは1行ずつカード状に並べる */
  .panel .haika-schedule thead{display:none;}
  .panel .haika-schedule table,.panel .haika-schedule tbody,.panel .haika-schedule tr,.panel .haika-schedule td{display:block;width:100%;}
  .panel .haika-schedule tr{border:1px solid var(--gold-dim);margin:0 0 12px;padding:6px 12px;}
  .panel .haika-schedule tbody tr:nth-child(even) td{background:none;}
  .panel .haika-schedule td{border:0;border-bottom:1px dashed rgba(207,156,56,.2);padding:6px 0 6px 5.5em;position:relative;white-space:normal!important;}
  .panel .haika-schedule td:last-child{border-bottom:0;}
  .panel .haika-schedule td::before{position:absolute;left:0;top:6px;width:5em;line-height:1.5;color:var(--gold);font-size:.8rem;letter-spacing:.1em;}
  .panel .haika-schedule td::before{content:attr(data-label);}
  .panel .haika-schedule td:not([data-label]),.panel .haika-schedule td[data-label=""]{padding-left:0;}
}

/* 本文中のリンク(お知らせ・活動の記録・固定ページの文章、表、キャプション) */
.panel :is(p,li,td,th,dd,figcaption,blockquote) a{color:#ecc873;text-decoration:underline;text-decoration-color:rgba(236,200,115,.5);text-decoration-thickness:1px;text-underline-offset:.25em;transition:color .2s,text-decoration-color .2s;word-break:break-all;}
.panel :is(p,li,td,th,dd,figcaption,blockquote) a:hover{color:#fff3d1;text-decoration-color:currentColor;}
.panel :is(p,li,td,th,dd,figcaption,blockquote) a:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:2px;}
.panel :is(p,li,td,th,dd,figcaption,blockquote) a[target="_blank"]::after{content:"↗";font-size:.75em;margin-left:-.1em;letter-spacing:0;text-decoration:none;display:inline-block;}
/* ボタンブロック */
.panel .wp-block-button__link{display:inline-block;background:none;border:1px solid var(--gold);color:var(--gold);padding:.6em 1.6em;border-radius:0;letter-spacing:.12em;text-decoration:none;transition:background .2s,color .2s;}
.panel .wp-block-button__link:hover{background:var(--gold);color:#000;}
.more-link.post-back{text-align:center;margin:40px 0 10px;}

/* フッター:SNSリンク */
.sns-links{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin:6px 0 18px;padding:0;}
.sns-links a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--gold-dim);border-radius:50%;color:var(--gold);transition:background .2s,color .2s,border-color .2s;}
.sns-links a:hover,.sns-links a:focus-visible{background:var(--gold);border-color:var(--gold);color:#000;}
.sns-links a:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.sns-links svg{display:block;}

/* 演目:紗綾形の背景(smoke.js が追加。色は演目ごと) */
.dance-pattern{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  -webkit-mask-image:radial-gradient(ellipse 75% 60% at 50% 40%,#000 0%,rgba(0,0,0,.55) 55%,transparent 100%);
  mask-image:radial-gradient(ellipse 75% 60% at 50% 40%,#000 0%,rgba(0,0,0,.55) 55%,transparent 100%);}
.dance-pattern-inner,.dance-pattern-rim{position:absolute;left:0;right:0;top:-220px;bottom:-220px;}
/* 紗綾形 × 破れ(破れた部分は柄が抜ける) */
.dance-pattern-inner{opacity:.41;background-color:var(--saya-color);
  -webkit-mask-image:url("assets/img/sayagata.svg"),url("assets/img/saya-torn.png");
  -webkit-mask-size:90px 42px,1400px 1400px;-webkit-mask-repeat:repeat;-webkit-mask-composite:source-in;
  mask-image:url("assets/img/sayagata.svg"),url("assets/img/saya-torn.png");
  mask-size:90px 42px,1400px 1400px;mask-repeat:repeat;mask-composite:intersect;}
/* 破れ目のふち */
.dance-pattern-rim{opacity:.45;background-color:var(--saya-color);
  -webkit-mask-image:url("assets/img/saya-rim.png");-webkit-mask-size:1400px 1400px;-webkit-mask-repeat:repeat;
  mask-image:url("assets/img/saya-rim.png");mask-size:1400px 1400px;mask-repeat:repeat;}
@media(max-width:700px){
  .dance-pattern-inner{-webkit-mask-size:64px 30px,900px 900px;mask-size:64px 30px,900px 900px;}
  .dance-pattern-rim{-webkit-mask-size:900px 900px;mask-size:900px 900px;}
}
.dance-section{isolation:isolate;}

/* ===== サイト全体の紗綾形(main.js が追加。演目ページは専用の背景を使うので除く) ===== */
.site-pattern{position:fixed;inset:0;z-index:-1;pointer-events:none;}
.site-pattern>div{position:absolute;inset:0;background-color:var(--saya-color);}
.site-pattern .sp-inner{opacity:.2;
  -webkit-mask-image:url("assets/img/sayagata.svg"),url("assets/img/saya-torn.png");-webkit-mask-size:91.43px 42.667px,1400px 1400px;-webkit-mask-repeat:repeat;-webkit-mask-composite:source-in;
  mask-image:url("assets/img/sayagata.svg"),url("assets/img/saya-torn.png");mask-size:91.43px 42.667px,1400px 1400px;mask-repeat:repeat;mask-composite:intersect;}
.site-pattern .sp-rim{opacity:.3;
  -webkit-mask-image:url("assets/img/saya-rim.png");-webkit-mask-size:1400px 1400px;-webkit-mask-repeat:repeat;
  mask-image:url("assets/img/saya-rim.png");mask-size:1400px 1400px;mask-repeat:repeat;}
@media(max-width:700px){
  .site-pattern .sp-inner{-webkit-mask-size:64.3px 30px,900px 900px;mask-size:64.3px 30px,900px 900px;}
  .site-pattern .sp-rim{-webkit-mask-size:900px 900px;mask-size:900px 900px;}
}

/* ギャラリーの動画:ロゴとURLを重ねて表示(見た目だけの透かし) */
.wm-badge,.g-item.is-video::before{position:absolute;right:3%;bottom:4%;z-index:2;pointer-events:none;
  aspect-ratio:100/42;opacity:.8;filter:drop-shadow(1px 1px 1px rgba(20,8,10,.9));
  background:url("assets/img/logo-horizontal.png") center top/100% auto no-repeat,url("assets/img/wm-url.png") center bottom/100% auto no-repeat;}
.g-item.is-video::before{content:"";width:30%;}
.lb-video-wrap{position:relative;display:inline-block;max-width:100%;line-height:0;}
.lb-video-wrap .wm-badge{width:clamp(90px,20%,230px);bottom:64px;}   /* 再生ボタンなどの操作バーに重ならない高さ */

/* パンくずリスト */
.breadcrumb{max-width:900px;margin:0 auto;padding:16px 24px 0;font-size:.78rem;letter-spacing:.06em;line-height:1.6;}
.breadcrumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2em .5em;color:rgba(238,230,214,.6);}
.breadcrumb li{display:flex;align-items:center;gap:.5em;min-width:0;}
.breadcrumb li+li::before{content:"›";color:var(--gold);opacity:.7;}
.breadcrumb a{color:var(--gold);text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;text-underline-offset:.2em;}
.breadcrumb [aria-current]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:28em;}
.breadcrumb+script+main .page-title,.breadcrumb+script+main>.page-title{margin-top:56px;}
@media(max-width:700px){.breadcrumb{padding:12px 16px 0;}.breadcrumb [aria-current]{max-width:16em;}}

/* 紗綾形:破れなし(柄だけを敷く) */
.dance-pattern-inner,.site-pattern .sp-inner{
  -webkit-mask-image:url("assets/img/sayagata.svg");mask-image:url("assets/img/sayagata.svg");
  -webkit-mask-composite:source-over;mask-composite:add;}
.dance-pattern-inner{-webkit-mask-size:90px 42px;mask-size:90px 42px;}
.site-pattern .sp-inner{-webkit-mask-size:91.43px 42.667px;mask-size:91.43px 42.667px;}
@media(max-width:700px){
  .dance-pattern-inner{-webkit-mask-size:64px 30px;mask-size:64px 30px;}
  .site-pattern .sp-inner{-webkit-mask-size:64.3px 30px;mask-size:64.3px 30px;}
}
.dance-pattern-rim,.site-pattern .sp-rim{display:none;}
