/*
Theme Name: PANDA WIND ORCHESTRA
Theme URI: https://www.pandawindorchestra.com
Author: PANDA WIND ORCHESTRA
Description: ぱんだウインドオーケストラ公式サイト用カスタムテーマ
Version: 1.5.1
Requires at least: 6.0
License: Private
Text Domain: pwo-theme
*/
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--ink:#0a0a0a;--paper:#f5f4f0;--gray:#e8e6e1;--mid:#3a3a3a;--muted:#888;--border:#d0cfc9;--serif:'Cormorant Garamond',serif;--sans:'Noto Sans JP',sans-serif}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);overflow-x:hidden;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
ul,ol{list-style:none}
#site-nav{position:sticky;top:0;z-index:200;background:var(--ink);display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:64px}
.nav-logo a{color:var(--paper);font-size:.9rem;letter-spacing:.35em;font-weight:300;line-height:1.2}
.nav-logo small{display:block;font-family:var(--sans);font-size:.5rem;letter-spacing:.3em;color:rgba(245,244,240,.4);margin-top:3px}
.nav-menu{display:flex;align-items:center;gap:2.25rem}
.nav-menu a{font-family:var(--sans);font-size:.65rem;letter-spacing:.2em;color:rgba(245,244,240,.55);transition:color .2s}
.nav-menu a:hover,.nav-menu a.current-menu-item{color:var(--paper)}
.nav-menu .nav-cta{background:var(--paper) !important;color:var(--ink) !important;padding:7px 18px;font-weight:500}

/* --- Dropdown Menu (PC) --- */
.has-dropdown{position:relative}
.dropdown-toggle{font-family:var(--sans);font-size:.65rem;letter-spacing:.2em;color:rgba(245,244,240,.55);cursor:pointer;transition:color .2s}
.dropdown-toggle::after{content:"\25BE";margin-left:.3em;font-size:.5rem}
.has-dropdown:hover .dropdown-toggle,.has-dropdown.current-parent .dropdown-toggle{color:var(--paper)}
.sub-menu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);background:var(--ink);border:1px solid rgba(245,244,240,.1);min-width:160px;padding:.5rem 0;z-index:300}
.has-dropdown:hover .sub-menu{display:block}
.sub-menu li{list-style:none}
.sub-menu a{display:block;padding:.55rem 1.2rem;font-size:.62rem;white-space:nowrap}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:transparent;border:none}
.nav-hamburger span{display:block;width:22px;height:1px;background:var(--paper)}
#mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;background:var(--ink);z-index:99;border-top:1px solid rgba(245,244,240,.1);padding:1.5rem}
#mobile-menu a{display:block;font-family:var(--sans);font-size:.8rem;letter-spacing:.2em;color:rgba(245,244,240,.7);padding:1rem 0;border-bottom:1px solid rgba(245,244,240,.07)}
#mobile-menu a:hover{color:var(--paper)}
/* --- Mobile Dropdown --- */
.mobile-dropdown{border-bottom:1px solid rgba(245,244,240,.07)}
.mobile-dropdown-toggle{display:block;font-family:var(--sans);font-size:.8rem;letter-spacing:.2em;color:rgba(245,244,240,.7);padding:1rem 0;cursor:pointer}
.mobile-dropdown-toggle .arrow{font-size:.6rem;transition:transform .2s;display:inline-block}
.mobile-dropdown.sub-open .mobile-dropdown-toggle .arrow{transform:rotate(90deg)}
.mobile-sub-menu{display:none;padding-left:1.5rem}
.mobile-dropdown.sub-open .mobile-sub-menu{display:block}
.mobile-sub-menu a{padding:.7rem 0;font-size:.75rem}
.page-hero{position:relative;height:320px;overflow:hidden;background:#0a0a0a}
.page-hero-img{position:absolute;inset:0;background:url('http://xs411559.xsrv.jp/panda-wp/wp-content/uploads/2026/04/member-0.webp') center/cover;opacity:.4}
[class$="-hero-img"]{background-image:url('http://xs411559.xsrv.jp/panda-wp/wp-content/uploads/2026/04/member-0.webp')!important;background-size:cover;background-position:center}
.page-hero-body{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:3rem}
.page-hero-label{font-family:var(--sans);font-size:.58rem;letter-spacing:.5em;color:rgba(245,244,240,.3);text-transform:uppercase;margin-bottom:.75rem;display:flex;align-items:center;gap:1rem}
.page-hero-label::before{content:'';width:28px;height:1px;background:rgba(245,244,240,.25)}
.page-hero h1{font-size:clamp(3rem,6vw,5rem);font-weight:300;color:var(--paper);line-height:.95}
.page-hero h1 em{font-style:italic;color:rgba(245,244,240,.38)}
.breadcrumb{background:rgba(10,10,10,.9);border-top:1px solid rgba(245,244,240,.07);padding:.65rem 3rem}
.breadcrumb a{font-family:var(--sans);font-size:.58rem;letter-spacing:.15em;color:rgba(245,244,240,.3)}
.breadcrumb span{color:rgba(245,244,240,.12);margin:0 .6rem}
.sec-dark{background:var(--ink);padding:5rem 3rem}
.sec-light{background:var(--paper);padding:5rem 3rem}
.sec-off{background:#efede8;padding:5rem 3rem}
.sec-inner{max-width:1200px;margin:0 auto}
.sec-label{font-family:var(--sans);font-size:.57rem;letter-spacing:.5em;text-transform:uppercase;margin-bottom:.5rem}
.sec-label-d{color:rgba(245,244,240,.3)}
.sec-label-l{color:var(--muted)}
.sec-title{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:300;line-height:1.1;margin-bottom:2.5rem}
.sec-title-d{color:var(--paper)}
.sec-title-l{color:var(--ink)}
.sec-title em{font-style:italic;opacity:.38}
.btn-white{display:inline-flex;align-items:center;gap:.5rem;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:.68rem;letter-spacing:.2em;padding:13px 30px;border:none;cursor:pointer;font-weight:500;transition:opacity .15s}
.btn-white:hover{opacity:.85}
.btn-white::after{content:'→'}
.entry-content{font-family:var(--sans);font-size:.85rem;line-height:2;color:var(--mid);max-width:780px;margin:0 auto;padding:4rem 3rem}
.entry-content h2{font-family:var(--serif);font-size:1.8rem;font-weight:300;margin:2rem 0 1rem;color:var(--ink)}
.entry-content p{margin-bottom:1.25rem}
.news-archive{padding:4rem 3rem}
.news-inner{max-width:1200px;margin:0 auto}
.news-filter{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2.5rem;align-items:center}
.news-filter-label{font-family:var(--sans);font-size:.58rem;letter-spacing:.3em;color:var(--muted)}
.news-filter a{font-family:var(--sans);font-size:.62rem;letter-spacing:.15em;padding:6px 16px;border:1px solid var(--border);color:var(--mid);transition:all .15s}
.news-filter a:hover,.news-filter a.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-bottom:3rem}
.news-card{background:var(--paper);padding:1.5rem 1.75rem;transition:background .15s}
.news-card:hover{background:var(--gray)}
.news-cat{font-family:var(--sans);font-size:.52rem;letter-spacing:.15em;background:var(--ink);color:var(--paper);padding:2px 9px;display:inline-block;margin-bottom:.5rem}
.news-date{font-family:var(--sans);font-size:.6rem;color:var(--muted);margin-bottom:.5rem}
.news-title{font-family:var(--serif);font-size:1.1rem;font-weight:400;color:var(--ink);line-height:1.4}
.pwo-pagination{display:flex;justify-content:center;gap:.5rem;padding:2rem 0}
.pwo-pagination a,.pwo-pagination span{font-family:var(--sans);font-size:.65rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);color:var(--mid);transition:all .15s}
.pwo-pagination a:hover,.pwo-pagination .current{background:var(--ink);color:var(--paper);border-color:var(--ink)}
#site-footer{background:#040404;border-top:1px solid rgba(245,244,240,.08);padding:4.5rem 3rem 2rem}
.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
.footer-logo{font-size:.95rem;letter-spacing:.35em;color:var(--paper);font-weight:300;margin-bottom:.6rem}
.footer-tagline{font-family:var(--sans);font-size:.65rem;color:rgba(245,244,240,.22);line-height:2}
.footer-col h4{font-family:var(--sans);font-size:.55rem;letter-spacing:.45em;color:rgba(245,244,240,.25);text-transform:uppercase;margin-bottom:1.1rem}
.footer-col ul{display:flex;flex-direction:column;gap:.55rem}
.footer-col a{font-family:var(--sans);font-size:.72rem;color:rgba(245,244,240,.32);transition:color .15s}
.footer-col a:hover{color:var(--paper)}
.footer-bottom{border-top:1px solid rgba(245,244,240,.06);padding-top:1.25rem;display:flex;justify-content:space-between;align-items:center}
.footer-copy{font-family:var(--sans);font-size:.6rem;color:rgba(245,244,240,.18)}
.footer-sns{display:flex;gap:1.5rem}
.footer-sns a{font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;color:rgba(245,244,240,.22);transition:color .15s}
.footer-sns a:hover{color:var(--paper)}
@media(min-width:769px) and (max-width:1100px){
  #site-nav{padding:0 1.25rem}.nav-menu{gap:.9rem}.nav-menu a{font-size:.55rem}.dropdown-toggle{font-size:.55rem}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}.news-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  #site-nav{padding:0 1.25rem;height:54px}.nav-menu{display:none}.nav-hamburger{display:flex}
  #mobile-menu{top:54px}.page-hero{height:240px}.page-hero-body{padding:2rem 1.5rem}
  .breadcrumb{padding:.65rem 1.5rem}.sec-dark,.sec-light,.sec-off{padding:3rem 1.25rem}
  .footer-grid{grid-template-columns:1fr 1fr;gap:1.5rem}.footer-bottom{flex-direction:column;gap:.75rem;text-align:center}
  .news-grid{grid-template-columns:1fr}.entry-content{padding:2.5rem 1.5rem}.news-archive{padding:2.5rem 1.25rem}
}


/* === Concert Page (page-concert.php) === */
.ct-hero{position:relative;height:320px;overflow:hidden;background:#0a0a0a;}
.ct-hero-img{position:absolute;inset:0;background:url('http://xs411559.xsrv.jp/panda-wp/wp-content/uploads/2026/04/member-0.webp') center/cover;opacity:.4;}
.ct-hero-body{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:3rem;}
.ct-hero-label{font-family:'Noto Sans JP',sans-serif;font-size:.58rem;letter-spacing:.5em;color:rgba(245,244,240,.3);text-transform:uppercase;margin-bottom:.75rem;display:flex;align-items:center;gap:1rem;}
.ct-hero-label::before{content:'';width:28px;height:1px;background:rgba(245,244,240,.25);}
.ct-hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,6vw,5rem);font-weight:300;color:#f5f4f0;line-height:.95;}
.ct-hero h1 em{font-style:italic;color:rgba(245,244,240,.38);}
.ct-bread{background:rgba(10,10,10,.9);border-top:1px solid rgba(245,244,240,.07);padding:.65rem 3rem;}
.ct-bread a{font-family:'Noto Sans JP',sans-serif;font-size:.58rem;letter-spacing:.15em;color:rgba(245,244,240,.3);text-decoration:none;}
.ct-bread a:hover{color:rgba(245,244,240,.6);}
.ct-bread span{color:rgba(245,244,240,.12);margin:0 .6rem;}
.pwo-sec{padding:0;}
.pwo-sec-inner{max-width:1200px;margin:0 auto;padding:5rem 3rem;}
.pwo-sec-label{font-family:'Noto Sans JP',sans-serif;font-size:.57rem;letter-spacing:.5em;text-transform:uppercase;margin-bottom:.5rem;}
.pwo-sec-label--d{color:rgba(245,244,240,.3);}
.pwo-sec-label--l{color:#888;}
.pwo-sec-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:300;line-height:1.1;margin-bottom:2.5rem;padding-bottom:1.25rem;border-bottom:1px solid rgba(128,128,128,.2);}
.pwo-sec-title--d{color:#f5f4f0;}
.pwo-sec-title--d em{color:rgba(245,244,240,.35);font-style:italic;}
.pwo-sec-title--l{color:#0a0a0a;}
.pwo-sec-title--l em{color:rgba(10,10,10,.3);font-style:italic;}
.pwo-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:'Noto Sans JP',sans-serif;font-size:.68rem;letter-spacing:.2em;padding:12px 28px;text-decoration:none;border:none;cursor:pointer;transition:opacity .15s;}
.pwo-btn::after{content:'\2192';}
.pwo-btn:hover{opacity:.8;}
.pwo-btn--light{background:#f5f4f0;color:#0a0a0a;}
.pwo-uc-item{text-decoration:none;color:inherit;transition:background .15s;}
.pwo-uc-item:hover{background:var(--gray) !important;}
.pwo-ac-item{text-decoration:none;color:inherit;transition:background .15s;}
.pwo-ac-item:hover{background:var(--gray) !important;}
.pwo-ac-item:hover img{filter:grayscale(0%) !important;transform:scale(1.04);}
@media(max-width:1100px){.pwo-ac-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:768px){.pwo-sec-inner{padding:3rem 1.25rem;}.pwo-ac-grid{grid-template-columns:repeat(2,1fr);}}

/* === Single Concert (single-pwo_concert.php) === */
.cn-hero{position:relative;height:320px;overflow:hidden;background:#0a0a0a;}
.cn-hero-img{position:absolute;inset:0;background:url('http://xs411559.xsrv.jp/panda-wp/wp-content/uploads/2026/04/member-0.webp') center/cover;opacity:.4;}
.cn-hero-body{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:3rem;}
.cn-hero-label{font-family:'Noto Sans JP',sans-serif;font-size:.58rem;letter-spacing:.5em;color:rgba(245,244,240,.3);text-transform:uppercase;margin-bottom:.75rem;display:flex;align-items:center;gap:1rem;}
.cn-hero-label::before{content:'';width:28px;height:1px;background:rgba(245,244,240,.25);}
.cn-hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,6vw,5rem);font-weight:300;color:#f5f4f0;line-height:.95;}
.cn-hero h1 em{font-style:italic;color:rgba(245,244,240,.38);}
.cn-bread{background:rgba(10,10,10,.9);border-top:1px solid rgba(245,244,240,.07);padding:.65rem 3rem;}
.cn-bread a{font-family:'Noto Sans JP',sans-serif;font-size:.58rem;letter-spacing:.15em;color:rgba(245,244,240,.3);text-decoration:none;}
.cn-bread a:hover{color:rgba(245,244,240,.6);}
.cn-bread span{color:rgba(245,244,240,.12);margin:0 .6rem;}
.cn-next{background:#0a0a0a;padding:5rem 3rem;}
.cn-next-inner{max-width:1200px;margin:0 auto;}
.cn-label-d{font-family:'Noto Sans JP',sans-serif;font-size:.57rem;letter-spacing:.5em;text-transform:uppercase;color:rgba(245,244,240,.3);margin-bottom:.5rem;}
.cn-title-d{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:300;color:#f5f4f0;line-height:1.1;margin-bottom:2.5rem;}
.cn-title-d em,.cn-title-l em{font-style:italic;opacity:.38;}
.cn-main{display:grid;grid-template-columns:1fr 380px;gap:0;background:rgba(245,244,240,.04);border:1px solid rgba(245,244,240,.1);}
.cn-main-img{overflow:hidden;background:#1a1a1a;display:flex;align-items:center;justify-content:center;}
.cn-main-img img{max-width:100%;max-height:100%;object-fit:contain;display:block;}
.cn-main-body{padding:3rem;display:flex;flex-direction:column;justify-content:space-between;}
.cn-info{font-family:'Noto Sans JP',sans-serif;font-size:.78rem;color:rgba(245,244,240,.45);line-height:2.5;margin-bottom:2rem;}
.cn-info strong{color:rgba(245,244,240,.85);}
.cn-btn{display:inline-flex;align-items:center;gap:.5rem;background:#f5f4f0;color:#0a0a0a;font-family:'Noto Sans JP',sans-serif;font-size:.68rem;letter-spacing:.2em;padding:13px 30px;border:none;cursor:pointer;font-weight:500;text-decoration:none;transition:opacity .15s;}
.cn-btn:hover{opacity:.85;}
.cn-btn::after{content:'\2192';}
.cn-prog-box{margin-top:3rem;border-top:1px solid rgba(245,244,240,.1);padding-top:2rem;}
.cn-prog-label{font-family:'Noto Sans JP',sans-serif;font-size:.58rem;letter-spacing:.4em;color:rgba(245,244,240,.25);margin-bottom:1rem;}
.cn-prog-list{list-style:none;font-family:'Noto Sans JP',sans-serif;font-size:.78rem;color:rgba(245,244,240,.45);line-height:2.5;}
.cn-prog-list li{display:flex;gap:1rem;border-bottom:1px solid rgba(245,244,240,.06);padding:.5rem 0;}
.cn-prog-list li:last-child{border-bottom:none;}
.cn-prog-num{color:rgba(245,244,240,.2);min-width:1.5rem;}
@media(max-width:1100px){.cn-main{grid-template-columns:1fr;}}
@media(max-width:768px){.cn-hero-body,.cn-bread{padding:2rem 1.5rem;}.cn-next{padding:3rem 1.25rem;}.cn-main-body{padding:1.75rem;}}

/* ======================== */
/* Column (Panda Relay)     */
/* ======================== */
.column-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}
.column-card{background:var(--paper);transition:background .15s}
.column-card:hover{background:var(--gray)}
.column-card-img{aspect-ratio:3/4;overflow:hidden;background:var(--ink);position:relative}
.column-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.column-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:3rem;color:rgba(245,244,240,.08)}
.column-card-body{padding:1.25rem 1.5rem}
.column-card-issue{font-family:var(--serif);font-size:1.1rem;color:var(--ink);margin-bottom:.15rem}
.column-card-period{font-family:var(--sans);font-size:.6rem;letter-spacing:.2em;color:var(--muted);margin-bottom:.75rem}
.column-card-members{font-family:var(--sans);font-size:.75rem;color:var(--mid);margin-bottom:.75rem}
.column-card-members a{color:var(--ink);border-bottom:1px solid var(--border);text-decoration:none;transition:border-color .15s}
.column-card-members a:hover{border-color:var(--ink)}
.column-card-sep{margin:0 .4rem;color:var(--muted)}
.column-card-link{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--sans);font-size:.62rem;letter-spacing:.15em;color:var(--muted);text-decoration:none;transition:color .15s}
.column-card-link:hover{color:var(--ink)}
.column-intro{background:#0a0a0a;padding:3rem;border-bottom:1px solid rgba(245,244,240,.08)}
.column-intro-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.column-intro-text{font-family:var(--sans);font-size:.72rem;color:rgba(245,244,240,.4);line-height:1.8}
.column-intro-link{font-family:var(--sans);font-size:.65rem;letter-spacing:.15em;padding:9px 22px;border:1px solid rgba(245,244,240,.25);color:rgba(245,244,240,.7);text-decoration:none;transition:all .15s}
.column-intro-link:hover{background:#f5f4f0;color:#0a0a0a}
@media(max-width:1100px){.column-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.column-grid{grid-template-columns:1fr}.column-intro-inner{flex-direction:column;text-align:center}}

/* -- TV/Radio Page -- */
.tvr-year-group { margin-bottom: 3rem; }
.tvr-year {
  font-family: var(--serif);
  font-size: 2rem;
  font-weight: 300;
  letter-spacing: .08em;
  border-bottom: 1px solid var(--ink);
  padding-bottom: .4rem;
  margin-bottom: 1.5rem;
}
.tvr-list { display: flex; flex-direction: column; gap: 0; }
.tvr-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.tvr-item-date {
  flex-shrink: 0;
  width: 6.5rem;
  font-family: var(--serif);
  font-size: .95rem;
  letter-spacing: .04em;
  color: var(--muted);
}
.tvr-item-badge {
  flex-shrink: 0;
  display: inline-block;
  padding: .15rem .6rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  border-radius: 2px;
  text-align: center;
  min-width: 4rem;
}
.tvr-badge--tv {
  background: var(--ink);
  color: var(--paper);
}
.tvr-badge--radio {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--ink);
}
.tvr-item-body { flex: 1; min-width: 0; }
.tvr-item-channel {
  font-size: .8rem;
  color: var(--muted);
  margin-bottom: .2rem;
}
.tvr-item-program {
  font-size: 1rem;
  font-weight: 500;
}
.tvr-item-program a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.tvr-item-program a:hover { text-decoration-thickness: 2px; }
.tvr-item-desc {
  font-size: .85rem;
  color: var(--muted);
  margin-top: .3rem;
  line-height: 1.6;
}
.tvr-empty {
  text-align: center;
  color: var(--muted);
  padding: 3rem 0;
  font-family: var(--sans);
}
@media (max-width: 600px) {
  .tvr-item {
    flex-wrap: wrap;
    gap: .5rem;
  }
  .tvr-item-date { width: auto; }
}
