/*
Theme Name: SONORRA
Theme URI: https://sonorra.net
Description: Custom theme for SONORRA live & event space
Version: 1.1.0
Text Domain: sonorra
*/

/* =====================================================================
   0. RESET / VARIABLES / UTILITIES
   ===================================================================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  /* Colors */
  --bg:#edece6;
  --bg-rgb:237,236,230;   /* --bg と同じ色。半透明で使う用 */
  --black:#0a0a0a;
  --white:#fff;
  --gray-1:#222;
  --gray-2:#444;
  --gray-3:#666;
  --gray-4:#888;
  --gray-5:#f0efe8;
  --line:#d9d8d1;          /* 薄い罫線 */
  --sun:#b5504a;           /* 日曜・エラー */

  /* Fonts */
  --font-head:'Outfit',sans-serif;
  --font-jp:'Noto Sans JP',sans-serif;

  /* Font Sizes（remベース。htmlは clamp(14px,1.1vw,18px)） */
  --text-xs:0.56rem;    /* 極小（motto等） */
  --text-sm:0.625rem;   /* 小（ラベル・コピーライト） */
  --text-base:0.7rem;   /* 標準（ナビ・リンク） */
  --text-md:0.85rem;    /* 中（本文・カード名） */
  --text-lg:0.9rem;     /* やや大（サブテキスト） */
  --text-xl:1.15rem;    /* 大（日付） */
  --text-2xl:1.4rem;    /* 見出し小（ナビロゴ） */
  --text-3xl:1.5rem;    /* 見出し中（キャッチ） */
  --text-4xl:2.4rem;    /* 見出し大（ギャラリー） */
  --text-5xl:3rem;      /* 特大（セクションタイトル） */
  --text-6xl:clamp(2.6rem,5.5vw,4.6rem); /* ページタイトル（子ページ） */
}
html{font-size:clamp(14px,1.1vw,18px);scroll-behavior:smooth;overflow-x:hidden}
body{background:var(--bg);color:var(--black);font-family:var(--font-head);overflow-x:hidden}

/* 表示幅で切り替える改行 */
.br-sp{display:none}
.br-pc{display:inline}
@media(max-width:767px){.br-sp{display:inline}.br-pc{display:none}}

/* フェードイン */
.fi{opacity:0;transform:translateY(25px);transition:opacity .7s,transform .7s cubic-bezier(.16,1,.3,1)}
.fi.v{opacity:1;transform:translateY(0)}

/* 粒子ノイズ */
.grain{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.04;mix-blend-mode:multiply}
.grain::after{content:'';position:absolute;inset:-50%;width:200%;height:200%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:128px;animation:grn .4s steps(3) infinite}
@keyframes grn{0%,100%{transform:translate(0)}33%{transform:translate(-3%,3%)}66%{transform:translate(3%,-3%)}}

/* WP管理バー分のずらし（ログイン中のみ） */
.admin-bar .nav{top:32px}
.admin-bar .hero{margin-top:32px}

/* 共通部品：小ラベル（/ Event ──） */
.sec-label{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.sec-label-tag{font-size:var(--text-sm);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3)}
.sec-label-tag::before{content:'/ ';color:var(--gray-4)}
.sec-label-line{flex:1;height:1px;background:var(--gray-3)}

/* 共通部品：下線リンク（フロア平面図PDF・トップへ戻る等） */
.floor-pdf{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-family:var(--font-jp);font-size:var(--text-base);font-weight:600;letter-spacing:1px;color:var(--black);text-decoration:none;border-bottom:1px solid var(--black);padding-bottom:4px}
.floor-pdf span{font-family:var(--font-head)}
.floor-pdf:hover{color:var(--gray-3);border-color:var(--gray-3)}

/* 共通部品：見出し・定義リスト（FLOOR / ACCESS / ABOUT） */
.floor-h2{font-family:var(--font-head);font-size:var(--text-3xl);font-weight:700;letter-spacing:2px;margin-bottom:24px}
.floor-spec>div{display:grid;grid-template-columns:8em 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--gray-4);font-family:var(--font-jp)}
.floor-spec>div:last-child{border-bottom:1px solid var(--gray-4)}
.floor-spec dt{font-size:var(--text-base);font-weight:600;color:var(--gray-3)}
.floor-spec dd{font-size:var(--text-md);font-weight:400;line-height:1.7;color:var(--gray-1)}
.floor-spec small{font-size:var(--text-sm);color:var(--gray-3)}
@media(max-width:767px){.floor-spec>div{grid-template-columns:6em 1fr;gap:3vw}}

/* =====================================================================
   1. NAV / HAMBURGER / MOBILE OVERLAY
   ===================================================================== */
.nav{position:fixed;top:0;left:0;right:0;height:64px;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:rgba(237,236,230,.9);backdrop-filter:blur(16px)}
.nav-logo{font-family:var(--font-head);font-weight:700;font-size:var(--text-2xl);letter-spacing:2px;color:var(--black);text-decoration:none}
.nav-right{display:flex;align-items:center;gap:32px}
.nav-links{display:flex;gap:28px}
.nav-links a{font-size:var(--text-base);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray-3);text-decoration:none;transition:color .3s}
.nav-links a:hover{color:var(--black)}
.nav-cta{font-size:var(--text-base);font-weight:600;letter-spacing:2px;color:var(--white);background:var(--black);padding:10px 24px;text-decoration:none;transition:all .2s}
.nav-cta:hover{background:var(--gray-1)}

.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;z-index:300}
.hamburger span{width:24px;height:2px;background:var(--black);transition:all .3s}
.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

.nav-overlay{display:none;position:fixed;inset:0;background:rgba(237,236,230,.97);backdrop-filter:blur(20px);z-index:199;flex-direction:column;align-items:center;justify-content:center;gap:3vh}
.nav-overlay.active{display:flex}
.nav-overlay a{font-family:var(--font-head);font-size:6vw;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--black);text-decoration:none;opacity:.7;transition:opacity .2s}
.nav-overlay a:hover{opacity:1}
.nav-overlay .nav-cta-mobile{font-size:3.5vw;font-weight:600;letter-spacing:3px;color:var(--white);background:var(--black);padding:2vh 5vw;margin-top:2vh}

@media(max-width:1032px){.nav{padding:0 5vw}}
@media(max-width:767px){
  .nav{height:54px;padding:0 4vw}
  .nav-logo{font-size:18px}
  .nav-links,.nav-cta{display:none}
  .hamburger{display:flex}
}

/* =====================================================================
   2. HERO（TOP）
   ===================================================================== */
.hero{padding:1vw 3.3vw 2vw;display:grid;grid-template-columns:clamp(645px,65%,1084px) 1fr;gap:0;align-items:start;height:100vh;position:relative;overflow:hidden}
.hero-left{position:relative;z-index:2}
.hero-side-text{position:absolute;left:-2.2vw;top:50%;transform:rotate(-90deg) translateX(-50%);transform-origin:left center;font-size:var(--text-sm);font-weight:600;letter-spacing:0.3vw;text-transform:uppercase;color:var(--gray-1);white-space:nowrap;display:flex;flex-direction:row-reverse;align-items:center;gap:1.5vw}
.hero-side-text::after{content:'';display:block;width:30vw;height:1px;background:var(--gray-3)}
.hero-img{width:100%;height:calc(100vh - 6vw);object-fit:cover;object-position:center;display:block;padding:20px 0}
.hero-right{padding-left:0;padding-top:2vw;position:relative;height:calc(100vh - 4vw);min-width:0}
.hero-grunge-wrap{position:absolute;inset:0;pointer-events:none;z-index:1}
.hero-grunge{position:absolute;filter:grayscale(1) contrast(1.3);opacity:.5;object-fit:cover}
.hero-grunge-1{width:15vw;height:20vw;top:2vw;right:5vw}
.hero-grunge-2-float{position:absolute;width:20vw;height:6vw;bottom:5vh;left:50vw;z-index:5;filter:grayscale(1) contrast(1.3);opacity:.5;object-fit:cover;pointer-events:none}
.hero-grunge-3{width:10vw;height:10vw;bottom:10vh;right:-5vw;border-radius:50%;object-fit:cover}
.hero-logo-svg{width:clamp(62vmin,66vw,58vw);height:auto;margin-left:clamp(-300px,-20vw,-220px);position:relative;z-index:4;display:block;margin-top:17vh;filter:drop-shadow(0 0 12px rgba(var(--bg-rgb),.95)) drop-shadow(0 0 30px rgba(var(--bg-rgb),.8)) drop-shadow(0 0 70px rgba(var(--bg-rgb),.55))}
.hero-catch{margin-top:2vw;margin-left:2vw;position:relative;z-index:4}
.hero-catch-jp{font-family:var(--font-jp);font-size:var(--text-3xl);font-weight:700;line-height:1.6}
.hero-catch-sub{font-family:var(--font-jp);font-size:var(--text-lg);font-weight:400;line-height:2;color:var(--gray-1);margin-top:1vw;max-width:24vw}

@media(max-width:1032px){
  .hero{padding:1vw 3vw 2vw;grid-template-columns:1.1fr .9fr;height:auto;overflow:visible}
  .hero-left,.hero-right{height:auto}
  .hero-img{max-height:75vh;padding:10px 0}
  .hero-side-text{left:-2.5vw;font-size:1vw;margin:10px}
  .hero-side-text::after{width:20vw}
  .hero-logo-svg{width:55vw;margin-left:-15vw;margin-top:5vh}
  .hero-catch{margin-left:1vw}
  .hero-catch-jp{font-size:2.2vw}
  .hero-catch-sub{font-size:1.4vw;max-width:30vw}
}
@media(max-width:767px){
  .hero{padding:3vw}
  .hero-side-text{margin:5px}
  .hero-grunge-1{width:20vw;height:26vw}
  .hero-grunge-2-float{width:30vw;height:9vw;left:26vw;top:65%}
  .hero-grunge-3{width:16vw;height:16vw;top:60%}
  .hero-logo-svg{width:55vw}
  .hero-catch-jp{font-size:5vw}
  .hero-catch-sub{font-size:3.2vw;max-width:85vw}
}

/* =====================================================================
   3. TOP：UPCOMING（カード型）
   ===================================================================== */
.sch{padding:80px 48px}
.sch-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}
.sch-title{font-family:var(--font-head);font-size:var(--text-5xl);font-weight:700;letter-spacing:3px}
.sch-more{font-size:var(--text-base);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3);text-decoration:none;transition:color .2s}
.sch-more:hover{color:var(--black)}
.sch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(32px,3vw,64px);padding:0 clamp(0px,6vw,180px)}
.sch-card{display:flex;flex-direction:column;background:var(--white);border:2px solid var(--black);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
.sch-card.fi:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.10)}
/* 画像：ぼかした同じ画像を背景に敷き、フライヤーは切らずに全体表示 */
.sch-card-visual{position:relative;overflow:hidden;aspect-ratio:4/5;background:#e6e5df}
.sch-card-visual::before{content:'';position:absolute;inset:0;background:var(--thumb) center/cover no-repeat;transform:scale(1.5);filter:blur(5px) brightness(.90) saturate(1.5)}
.sch-card-visual::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.08)}
.sch-card-img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center;display:block;filter:drop-shadow(0 6px 18px rgba(0,0,0,.25));transition:transform .5s cubic-bezier(.16,1,.3,1)}
.sch-card:hover .sch-card-img{transform:scale(1.02)}
.sch-card-img-ph{position:relative;z-index:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:var(--text-base);font-weight:700;letter-spacing:5px;color:#b5b4ad}
.sch-card-body{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px;flex:1}
.sch-card-date{font-family:var(--font-head);font-size:var(--text-xl);font-weight:700;letter-spacing:2px;line-height:1}
.sch-card-name{font-family:var(--font-jp);font-size:var(--text-md);font-weight:600;line-height:1.5;color:var(--black);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.5em * 2);margin-top:4px}
.sch-card-time{font-size:var(--text-sm);color:var(--gray-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sch-card-link{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:10px;font-size:var(--text-sm);font-weight:600;letter-spacing:2px;color:var(--gray-3)}
.sch-card-link span{width:20px;height:1px;background:var(--gray-4);transition:width .3s}
.sch-card:hover .sch-card-link span{width:32px}

@media(max-width:1032px){
  .sch{padding:8vw 4vw}
  .sch-grid{gap:2vw;padding:0}
  .sch-card-body{padding:14px 16px 16px}
  .sch-card-date{font-size:1.8vw}
  .sch-card-name{font-size:1.4vw}
  .sch-card-time{font-size:1.2vw}
}
@media(max-width:767px){
  .sch{padding:8vw 3vw}
  .sch-title{font-size:8vw}
  .sch-more{font-size:2.5vw}
  .sch-grid{grid-template-columns:repeat(2,1fr);gap:3vw}
  .sch-card{border-radius:10px}
  .sch-card-body{padding:12px 12px 14px}
  .sch-card-date{font-size:4vw}
  .sch-card-name{font-size:3.2vw}
  .sch-card-time{font-size:2.6vw}
  .sch-card-link{font-size:2.4vw}
}

/* =====================================================================
   4. TOP：STUDIO GALLERY ＋ LIGHTBOX（FLOORギャラリーと共用）
   ===================================================================== */
.gallery{padding:60px 0 80px;overflow:hidden;position:relative}
.gallery-header{display:flex;justify-content:space-between;align-items:center;padding:0 48px;margin-bottom:24px}
.gallery-title{font-family:var(--font-head);font-size:var(--text-4xl);font-weight:700;letter-spacing:3px}
.gallery-arrows{display:flex;gap:8px}
.gallery-arrow{width:40px;height:40px;border:1px solid var(--gray-4);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-lg);color:var(--gray-2);transition:all .2s;background:var(--bg)}
.gallery-arrow:hover{border-color:var(--black);color:var(--black)}
.gallery-viewport{overflow:hidden}
.gallery-track{display:flex;gap:8px;will-change:transform}
.gallery-track img{height:200px;width:auto;aspect-ratio:3/2;object-fit:cover;flex-shrink:0;filter:brightness(.85);transition:filter .3s}
.gallery-track img:hover{filter:brightness(1)}

.lightbox{position:fixed;inset:0;background:rgba(10,10,10,.9);z-index:9998;display:flex;align-items:center;justify-content:center;cursor:pointer;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .3s ease,visibility 0s linear .3s}
.lightbox.active{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .3s ease,visibility 0s}
.lightbox img{max-width:90vw;max-height:85vh;object-fit:contain;transform:scale(.92);opacity:0;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .35s ease}
.lightbox.active img{transform:scale(1);opacity:1}
.lightbox-close{position:absolute;top:3vh;right:3vw;font-size:var(--text-xl);color:var(--white);cursor:pointer;font-family:var(--font-head);opacity:.6}
.lightbox-close:hover{opacity:1}
@media(prefers-reduced-motion:reduce){.lightbox,.lightbox img{transition:none}}

@media(max-width:1032px){.gallery-header{padding:0 4vw}.sec-label{padding:0 4vw !important}}
@media(max-width:767px){
  .gallery-header{padding:0 3vw}
  .gallery-title{font-size:6vw}
  .gallery-track img{height:140px}
  .gallery-arrow{width:32px;height:32px;font-size:11px}
  .sec-label{padding:0 3vw !important}
}

/* =====================================================================
   5. TOP：BOOKING帯
   ===================================================================== */
.booking{background:var(--black);color:var(--white);padding:80px 48px;display:grid;grid-template-columns:1fr auto;gap:60px;align-items:center;position:relative;overflow:hidden}
.booking-label{font-size:var(--text-sm);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:4px}
.booking-label::before{content:'/ ';color:rgba(255,255,255,.15)}
.booking-title{font-family:var(--font-head);font-size:var(--text-5xl);font-weight:700;letter-spacing:3px}
.booking-text{font-family:var(--font-jp);font-size:var(--text-md);font-weight:300;line-height:2;color:rgba(255,255,255,.8);margin-top:12px;max-width:420px}
.booking-right{display:flex;flex-direction:column;align-items:flex-end;gap:24px}
.booking-cta{font-size:var(--text-base);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--black);background:var(--white);padding:16px 40px;text-decoration:none;transition:all .2s;display:inline-flex;align-items:center;gap:8px}
.booking-cta:hover{background:rgba(255,255,255,.85)}
.booking-motto{font-size:var(--text-xs);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.15);line-height:1.8;text-align:right}

@media(max-width:1032px){
  .booking{grid-template-columns:1fr;padding:8vw 4vw}
  .booking-title{font-size:7vw}
  .booking-text{font-size:2.2vw}
  .booking-right{align-items:flex-start}
  .booking-motto{display:none}
}
@media(max-width:767px){
  .booking{padding:10vw 4vw}
  .booking-title{font-size:9vw}
  .booking-text{font-size:3.2vw}
  .booking-cta{font-size:3vw;padding:4vw 8vw}
}

/* =====================================================================
   6. FOOTER
   ===================================================================== */
.footer{padding:60px 48px 32px;display:grid;grid-template-columns:1fr 1.5fr .8fr;gap:48px;align-items:start;border-top:1px solid var(--gray-4)}
.footer-brand{display:flex;flex-direction:column;gap:8px}
.footer-logo{font-family:var(--font-head);font-weight:700;font-size:var(--text-3xl);letter-spacing:2px}
.footer-tagline{font-size:var(--text-sm);font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3)}
.footer-info{display:grid;grid-template-columns:1fr 1fr;gap:24px;font-size:var(--text-md)}
.footer-info-label{font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray-3);margin-bottom:6px;font-size:var(--text-base)}
.footer-info p{font-family:var(--font-jp);font-weight:300;line-height:1.8;color:var(--gray-2)}
.footer-info a{color:var(--gray-2);text-decoration:none}
.footer-info a:hover{color:var(--black)}
.footer-info .footer-contact-btn{display:inline-block;font-family:var(--font-jp);font-size:var(--text-base);font-weight:600;letter-spacing:2px;color:var(--white);background:var(--black);padding:10px 20px;text-decoration:none;margin-top:4px;transition:background .2s}
.footer-info .footer-contact-btn:hover{background:var(--gray-1);color:var(--white)}
.footer-map{position:relative;overflow:hidden;width:100%;aspect-ratio:4/3;background:var(--gray-5);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--gray-3);letter-spacing:3px}
.footer-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1)}
.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--gray-4);margin-top:16px}
.footer-copy{font-size:var(--text-sm);font-weight:500;letter-spacing:2px;color:var(--gray-3)}
.footer-slogan{font-size:var(--text-sm);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3);display:flex;align-items:center;gap:12px}
.footer-slogan::before{content:'';width:32px;height:1px;background:var(--gray-4)}

@media(max-width:1032px){
  .footer{grid-template-columns:1fr 1fr;padding:8vw 4vw 4vw;gap:5vw}
  .footer-map{grid-column:1/-1}
  .footer-bottom{grid-column:1/-1;flex-direction:column;gap:2vw;text-align:center}
}
@media(max-width:767px){
  .footer{grid-template-columns:1fr;padding:8vw 4vw 4vw;gap:6vw}
  .footer-info{grid-template-columns:1fr}
  .footer-info-label{font-size:2.5vw}
  .footer-info p{font-size:3vw}
  .footer-logo{font-size:20px}
  .footer-copy,.footer-slogan{font-size:2.5vw}
}

/* =====================================================================
   7. INNER PAGES 共通（子ページの見出し）
   ===================================================================== */
.page{padding-top:64px}
.page-head{position:relative;padding:4vw 48px 3vw}
.page-title{font-family:var(--font-head);font-size:var(--text-6xl);font-weight:700;letter-spacing:.04em;line-height:1;text-transform:uppercase;margin-top:16px}
.page-title-jp{font-family:var(--font-jp);font-size:var(--text-md);font-weight:500;letter-spacing:.2em;color:var(--gray-2);margin-top:16px}
.page-grunge{position:absolute;right:6vw;top:50%;transform:translateY(-50%);width:12vw;height:12vw;border-radius:50%;object-fit:cover;filter:grayscale(1) contrast(1.3);opacity:.35;pointer-events:none;z-index:-1}
@media(max-width:1032px){.page-head{padding:6vw 4vw 4vw}}
@media(max-width:767px){
  .page{padding-top:54px}
  .page-head{padding:8vw 4vw 6vw}
  .page-grunge{width:28vw;height:28vw;right:2vw}
}

/* =====================================================================
   8. FLOOR
   ===================================================================== */
.floor-map{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:start;padding:0 48px 60px}
.floor-map-img img{width:100%;height:auto;display:block;border:1px solid var(--gray-4);background:var(--white)}
.floor-map-ph{width:100%;aspect-ratio:4/3;background:var(--gray-5);display:flex;align-items:center;justify-content:center;font-size:var(--text-base);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3)}

/* ギャラリー（横スクロール・無限ループ） */
.floor-gallery{padding:0 48px 80px}
.floor-gallery-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.floor-gallery-head .floor-h2{margin-bottom:0}
.floor-gallery-track{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.floor-gallery-track::-webkit-scrollbar{display:none}
.floor-gallery-track img{flex:0 0 auto;width:calc((100% - 24px) / 4);min-width:0;aspect-ratio:4/3;object-fit:cover;display:block;scroll-snap-align:start;filter:brightness(.9);transition:filter .3s}
.floor-gallery-track img:hover{filter:brightness(1)}

/* 機材リスト */
.equip{padding:0 48px 100px}
.equip-title{font-family:var(--font-head);font-size:var(--text-4xl);font-weight:700;letter-spacing:3px}
.equip-note{font-family:var(--font-jp);font-size:var(--text-sm);color:var(--gray-3);margin:8px 0 32px}
.equip-cat{border-top:1px solid var(--black)}
.equip-cat:last-child{border-bottom:1px solid var(--black)}
.equip-cat-head{display:flex;align-items:baseline;gap:20px;padding:22px 0;cursor:pointer;list-style:none;user-select:none}
.equip-cat-head::-webkit-details-marker{display:none}
.equip-cat-name{font-family:var(--font-head);font-size:var(--text-2xl);font-weight:700;letter-spacing:2px}
.equip-cat-jp{font-family:var(--font-jp);font-size:var(--text-sm);color:var(--gray-3);flex:1}
.equip-cat-toggle{position:relative;width:14px;height:14px;align-self:center}
.equip-cat-toggle::before,.equip-cat-toggle::after{content:'';position:absolute;background:var(--black);top:50%;left:50%;transform:translate(-50%,-50%)}
.equip-cat-toggle::before{width:14px;height:1px}
.equip-cat-toggle::after{width:1px;height:14px;transition:transform .2s}
.equip-cat[open] .equip-cat-toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.equip-table-wrap{overflow-x:auto;padding-bottom:28px}
.equip-table{width:100%;border-collapse:collapse;font-size:var(--text-md);min-width:560px}
.equip-table th{text-align:left;font-size:var(--text-sm);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray-3);padding:8px 12px 10px 0;border-bottom:1px solid var(--gray-4)}
.equip-table td{padding:9px 12px 9px 0;border-bottom:1px solid var(--line);vertical-align:top;font-family:var(--font-jp);color:var(--gray-1);line-height:1.5}
.equip-table .eq-qty{width:3.5em;font-family:var(--font-head);font-weight:600;color:var(--gray-2)}
.equip-table .eq-model{font-family:var(--font-head);font-weight:600;color:var(--black)}
.equip-table .eq-desc{color:var(--gray-3)}
.equip-table .eq-group td{padding:22px 0 8px;font-family:var(--font-head);font-size:var(--text-base);font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--black);border-bottom:1px solid var(--black)}

@media(max-width:1032px){
  .floor-map{grid-template-columns:1fr 1fr;gap:4vw;padding:0 4vw 6vw}
  .floor-gallery{padding:0 4vw 8vw}
  .floor-gallery-track img{width:calc((100% - 16px) / 3)}
  .equip{padding:0 4vw 10vw}
}
@media(max-width:767px){
  .floor-map{grid-template-columns:1fr;gap:6vw;padding:0 4vw 8vw}
  .floor-gallery{padding:0 4vw 10vw}
  .floor-gallery-track{gap:2vw}
  .floor-gallery-track img{width:calc((100% - 2vw) / 2)}
  .equip{padding:0 4vw 14vw}
  .equip-cat-head{gap:3vw;padding:5vw 0}
  .equip-cat-name{font-size:5.5vw}
  .equip-table{font-size:3.2vw;min-width:0}
  .equip-table th{font-size:2.6vw}
  .equip-table td{padding:2.5vw 2vw 2.5vw 0}
  .equip-table .eq-desc,.equip-table thead th:last-child{display:none}
}

/* =====================================================================
   9. ACCESS
   ===================================================================== */
.access-top{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:start;padding:0 48px 80px}
.access-map{position:relative;width:100%;aspect-ratio:4/3;background:var(--gray-5);border:1px solid var(--gray-4)}
.access-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}
.access-map:hover iframe{filter:none;transition:filter .4s}
.access-info a{color:inherit;text-decoration:none}
.access-routes{padding:0 48px 100px}
.access-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:8px}
.access-route{border-top:1px solid var(--black);padding-top:20px}
.access-route-head{display:flex;align-items:baseline;gap:16px;margin-bottom:16px}
.access-route-line{font-family:var(--font-jp);font-size:var(--text-xl);font-weight:700;letter-spacing:.05em}
.access-route-exit{font-family:var(--font-jp);font-size:var(--text-base);color:var(--gray-3)}
.access-steps{list-style:none;counter-reset:step}
.access-steps li{position:relative;padding:12px 0 12px 2.4em;border-bottom:1px solid var(--line);font-family:var(--font-jp);font-size:var(--text-md);line-height:1.8;color:var(--gray-1);counter-increment:step}
.access-steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:14px;font-family:var(--font-head);font-size:var(--text-base);font-weight:700;letter-spacing:1px;color:var(--gray-3)}

@media(max-width:1032px){
  .access-top{grid-template-columns:1fr 1fr;gap:4vw;padding:0 4vw 8vw}
  .access-routes{padding:0 4vw 10vw}
  .access-route-grid{gap:4vw}
}
@media(max-width:767px){
  .access-top{grid-template-columns:1fr;gap:6vw;padding:0 4vw 10vw}
  .access-routes{padding:0 4vw 14vw}
  .access-route-grid{grid-template-columns:1fr;gap:8vw}
  .access-steps li{font-size:3.4vw}
}

/* =====================================================================
   10. CONTACT（仮予約・お問い合わせフォーム）
   ===================================================================== */
.cf-wrap{padding:0 48px 120px;max-width:1100px}
.cf-lead{font-family:var(--font-jp);font-size:var(--text-md);line-height:2;color:var(--gray-2);margin-bottom:48px}
.cf-steps{display:flex;list-style:none;margin-bottom:40px;border-bottom:1px solid var(--gray-4)}
.cf-steps li{display:flex;align-items:baseline;gap:8px;padding:0 28px 12px 0;margin-right:28px;font-family:var(--font-jp);font-size:var(--text-base);color:var(--gray-4);position:relative}
.cf-steps li span{font-family:var(--font-head);font-weight:700;letter-spacing:1px}
.cf-steps li.is-current{color:var(--black)}
.cf-steps li.is-current::after{content:'';position:absolute;left:0;right:28px;bottom:-1px;height:2px;background:var(--black)}

.cf-block{border:0;border-top:1px solid var(--black);padding:28px 0 12px;margin:0 0 24px}
.cf-block[hidden]{display:none}
.cf-legend{font-family:var(--font-head);font-size:var(--text-2xl);font-weight:700;letter-spacing:2px;padding:0;margin-bottom:8px;display:flex;align-items:baseline;gap:14px}
.cf-legend span{font-family:var(--font-jp);font-size:var(--text-sm);font-weight:400;color:var(--gray-3);letter-spacing:.1em}
.cf-notice{font-family:var(--font-jp);font-size:var(--text-sm);line-height:1.9;color:var(--gray-2);background:var(--gray-5);padding:16px 20px;margin:4px 0 8px;border-left:2px solid var(--black)}
.cf-notice p+p{margin-top:6px}

.cf-row{display:grid;grid-template-columns:14em 1fr;gap:24px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}
.cf-block .cf-row:last-child{border-bottom:0}
.cf-label{font-family:var(--font-jp);font-size:var(--text-base);font-weight:600;color:var(--gray-1);padding-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cf-label em{font-style:normal;font-size:var(--text-xs);font-weight:600;letter-spacing:1px;color:var(--white);background:var(--black);padding:2px 6px}
.cf-label em.cf-req-booking{display:none}
form:has(input[name="type"][value="booking"]:checked) .cf-req-booking{display:inline-block}
.cf-label small{flex-basis:100%;font-size:var(--text-sm);font-weight:400;color:var(--gray-3)}
.cf-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cf-input{width:100%;font-family:var(--font-jp);font-size:var(--text-md);color:var(--black);background:var(--white);border:1px solid var(--gray-4);padding:10px 14px;outline:none;transition:border-color .2s;border-radius:0;-webkit-appearance:none;appearance:none}
.cf-input:focus{border-color:var(--black)}
.cf-input::placeholder{color:#b5b4ad}
textarea.cf-input{resize:vertical;line-height:1.8}
.cf-select-wrap{position:relative}
.cf-select-wrap::after{content:'';position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:1px solid var(--black);border-bottom:1px solid var(--black);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.cf-inline{display:flex;align-items:center;gap:10px}
.cf-input-num{width:8em}
.cf-unit{font-family:var(--font-jp);font-size:var(--text-md);color:var(--gray-2)}
.cf-radios{display:flex;gap:24px;padding-top:10px}
.cf-radios label,.cf-check{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-jp);font-size:var(--text-md);cursor:pointer;padding-top:10px}
.cf-radios input,.cf-check input{width:16px;height:16px;accent-color:var(--black)}
.cf-check a{color:var(--black);text-decoration:underline}
.cf-tour-date{margin-top:10px}
.cf-tour-date[hidden]{display:none}
.cf-hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* 用件切り替え */
.cf-type{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 0 18px}
.cf-type-btn{position:relative;display:flex;flex-direction:column;gap:4px;border:1px solid var(--gray-4);padding:20px 22px;cursor:pointer;background:var(--white);transition:all .2s}
.cf-type-btn input{position:absolute;opacity:0;pointer-events:none}
.cf-type-en{font-family:var(--font-head);font-size:var(--text-xl);font-weight:700;letter-spacing:2px}
.cf-type-jp{font-family:var(--font-jp);font-size:var(--text-sm);color:var(--gray-3)}
.cf-type-btn:has(input:checked){background:var(--black);border-color:var(--black)}
.cf-type-btn:has(input:checked) .cf-type-en{color:var(--white)}
.cf-type-btn:has(input:checked) .cf-type-jp{color:rgba(255,255,255,.6)}

/* 空き状況カレンダー */
.cf-row-cal{grid-template-columns:14em 1fr;grid-template-areas:"label cal" "label dates"}
.cf-row-cal>.cf-label{grid-area:label}
.cf-cal{grid-area:cal;max-width:520px;position:relative}
.cf-cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.cf-cal-title{font-family:var(--font-head);font-size:var(--text-2xl);font-weight:700;letter-spacing:2px}
.cf-cal-nav{width:36px;height:36px;border:1px solid var(--gray-4);background:var(--bg);cursor:pointer;font-size:var(--text-base);color:var(--gray-2);transition:all .2s}
.cf-cal-nav:hover:not(:disabled){border-color:var(--black);color:var(--black)}
.cf-cal-nav:disabled{opacity:.3;cursor:default}
.cf-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cf-cal-dow{text-align:center;font-family:var(--font-jp);font-size:var(--text-xs);color:var(--gray-3);padding:6px 0 4px}
.cf-cal-dow:first-child{color:var(--sun)}
.cf-cal-cell{position:relative;aspect-ratio:1/1;border:1px solid var(--line);background:var(--white);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;transition:all .15s;font-family:var(--font-head)}
.cf-cal-cell.is-pad{border:0;background:transparent;cursor:default}
.cf-cal-num{font-size:var(--text-md);font-weight:600;color:var(--black);line-height:1}
.cf-cal-tag{font-family:var(--font-jp);font-size:9px;line-height:1;letter-spacing:.05em;color:var(--gray-3);min-height:9px}
.cf-cal-cell:hover:not(:disabled){border-color:var(--black)}
.cf-cal-cell.is-hold{background:#f7f6f0}
.cf-cal-cell.is-hold .cf-cal-tag::before{content:'仮'}
.cf-cal-cell.is-confirmed{background:#e6e5df}
.cf-cal-cell.is-confirmed .cf-cal-num{text-decoration:line-through;color:var(--gray-3)}
.cf-cal-cell.is-confirmed .cf-cal-tag::before{content:'確定'}
.cf-cal-cell.is-closed{background:repeating-linear-gradient(-45deg,#e6e5df 0 3px,#edece6 3px 6px)}
.cf-cal-cell.is-closed .cf-cal-tag::before{content:'休館'}
.cf-cal-cell.is-disabled{cursor:default;opacity:.45}
.cf-cal-cell.is-selected{background:var(--black)!important;border-color:var(--black)}
.cf-cal-cell.is-selected .cf-cal-num{color:var(--white);text-decoration:none}
.cf-cal-cell.is-selected .cf-cal-tag{color:rgba(255,255,255,.6)}
.cf-cal-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;font-family:var(--font-jp);font-size:var(--text-xs);color:var(--gray-3)}
.cf-cal-legend span{display:inline-flex;align-items:center;gap:6px}
.cf-cal-legend i{width:12px;height:12px;border:1px solid var(--line);display:inline-block}
.lg-free{background:var(--white)}
.lg-hold{background:#f7f6f0}
.lg-fixed{background:#e6e5df}
.lg-closed{background:repeating-linear-gradient(-45deg,#e6e5df 0 2px,#edece6 2px 4px)}
/* 読み込み中 */
.cf-cal.is-loading .cf-cal-grid{opacity:.25;pointer-events:none}
.cf-cal.is-loading::after{content:'空き状況を読み込み中…';position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);font-family:var(--font-jp);font-size:var(--text-md);font-weight:600;letter-spacing:.1em;color:var(--black);background:var(--bg);padding:12px 24px;border:1px solid var(--black)}
/* 選択した日付のチップ */
.cf-dates{grid-area:dates;display:flex;flex-wrap:wrap;gap:8px;padding-top:14px;min-height:44px}
.cf-dates-empty{font-family:var(--font-jp);font-size:var(--text-sm);color:var(--gray-4);padding-top:6px}
.cf-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);font-size:var(--text-md);font-weight:600;letter-spacing:1px;background:var(--black);color:var(--white);padding:6px 8px 6px 12px}
.cf-chip small{font-family:var(--font-jp);font-size:var(--text-xs);font-weight:400;color:rgba(255,255,255,.6)}
.cf-chip.is-hold{background:var(--gray-2)}
.cf-chip.is-confirmed{background:var(--gray-3)}
.cf-chip button{background:transparent;border:0;color:var(--white);cursor:pointer;font-size:var(--text-sm);opacity:.6;padding:0 2px}
.cf-chip button:hover{opacity:1}

/* 同意・送信・確認・完了 */
.cf-consent{padding:24px 0 8px;border-top:1px solid var(--black)}
.cf-consent .cf-check{padding-top:0}
.cf-consent em{font-style:normal;font-size:var(--text-xs);font-weight:600;letter-spacing:1px;color:var(--white);background:var(--black);padding:2px 6px;margin-left:8px}
.cf-submit-row{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding-top:12px}
.cf-submit-row-confirm{padding-top:32px}
.cf-error{font-family:var(--font-jp);font-size:var(--text-md);color:var(--sun)}
.cf-submit{font-family:var(--font-jp);font-size:var(--text-md);font-weight:600;letter-spacing:2px;color:var(--white);background:var(--black);border:0;padding:18px 48px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:background .2s}
.cf-submit span{font-family:var(--font-head)}
.cf-submit:hover:not(:disabled){background:var(--gray-1)}
.cf-submit:disabled{opacity:.5;cursor:default}
.cf-submit.is-loading span{animation:cfspin .8s linear infinite;display:inline-block}
@keyframes cfspin{to{transform:rotate(360deg)}}
.cf-back{font-family:var(--font-jp);font-size:var(--text-md);font-weight:600;letter-spacing:1px;color:var(--black);background:transparent;border:1px solid var(--black);padding:17px 32px;cursor:pointer;transition:all .2s}
.cf-back:hover{background:var(--black);color:var(--white)}
.cf-confirm[hidden]{display:none}
.cf-confirm-list{border-top:1px solid var(--black)}
.cf-confirm-list>div{display:grid;grid-template-columns:14em 1fr;gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}
.cf-confirm-list dt{font-family:var(--font-jp);font-size:var(--text-base);font-weight:600;color:var(--gray-3)}
.cf-confirm-list dd{font-family:var(--font-jp);font-size:var(--text-md);line-height:1.8;color:var(--black);white-space:pre-wrap}
.cf-confirm-none{color:var(--gray-4)}
.cf-confirm-btns{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.cf-done{padding:40px 0 0}
.cf-done-title{font-family:var(--font-head);font-size:var(--text-5xl);font-weight:700;letter-spacing:3px;margin-bottom:16px}
.cf-done-text{font-family:var(--font-jp);font-size:var(--text-md);line-height:2;color:var(--gray-2);margin-bottom:32px;max-width:60em}

@media(max-width:1032px){
  .cf-wrap{padding:0 4vw 12vw}
  .cf-row,.cf-row-cal,.cf-confirm-list>div{grid-template-columns:11em 1fr}
}
@media(max-width:767px){
  .cf-wrap{padding:0 4vw 16vw}
  .cf-steps li{padding-right:16px;margin-right:16px;font-size:var(--text-sm)}
  .cf-steps li.is-current::after{right:16px}
  .cf-row,.cf-row-cal{grid-template-columns:1fr;gap:8px}
  .cf-row-cal{grid-template-areas:"label" "cal" "dates"}
  .cf-label{padding-top:0}
  .cf-type{grid-template-columns:1fr}
  .cf-cal{max-width:none}
  .cf-cal-tag{font-size:8px}
  .cf-radios{flex-wrap:wrap;gap:12px 20px}
  .cf-submit{width:100%;justify-content:center}
  .cf-confirm-list>div{grid-template-columns:1fr;gap:6px}
  .cf-confirm-btns{flex-direction:column-reverse;width:100%}
  .cf-back,.cf-confirm-btns .cf-submit{width:100%;justify-content:center;text-align:center}
}

/* =====================================================================
   11. LEGAL（プライバシーポリシー・利用規約）
   ===================================================================== */
.legal{padding:0 48px 120px;max-width:820px;font-family:var(--font-jp)}
.legal-intro{font-size:var(--text-md);line-height:2;color:var(--gray-1);margin-bottom:48px}
.legal-sec{border-top:1px solid var(--black);padding:28px 0 32px}
.legal-sec h2{display:flex;align-items:baseline;gap:16px;font-size:var(--text-xl);font-weight:700;letter-spacing:.05em;margin-bottom:16px}
.legal-sec h2 span{font-family:var(--font-head);font-size:var(--text-base);font-weight:700;letter-spacing:2px;color:var(--gray-3)}
.legal-sec p{font-size:var(--text-md);line-height:2;color:var(--gray-1)}
.legal-sec p+p,.legal-sec p+ul{margin-top:10px}
.legal-sec ul{list-style:none;margin-top:8px}
.legal-sec li{position:relative;padding-left:1.4em;font-size:var(--text-md);line-height:2;color:var(--gray-1)}
.legal-sec li::before{content:'';position:absolute;left:.3em;top:1em;width:5px;height:1px;background:var(--gray-3)}
.legal-dl>div{display:grid;grid-template-columns:8em 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--text-md);line-height:1.8}
.legal-dl dt{font-weight:600;color:var(--gray-3)}
.legal-dl dd{color:var(--gray-1)}
.legal-dl a{color:var(--black);text-decoration:underline}
.legal-date{margin-top:40px;font-size:var(--text-sm);color:var(--gray-3);text-align:right}
@media(max-width:1032px){.legal{padding:0 4vw 12vw}}
@media(max-width:767px){.legal{padding:0 4vw 16vw}.legal-dl>div{grid-template-columns:1fr;gap:4px}}

/* =====================================================================
   12. SCHEDULE 一覧（/schedule/）
   ===================================================================== */
.sc-wrap{display:grid;grid-template-columns:1fr 15em;gap:80px;align-items:start;padding:0 48px 120px}
.sc-col{min-width:0}
.sc-aside{position:sticky;top:96px}

/* 前月／来月 */
.sc-pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:0 0 18px;border-bottom:1px solid var(--black)}
.sc-pager-bottom{border-bottom:0;border-top:1px solid var(--black);padding:24px 0 0;margin-top:8px}
.sc-pager-btn{display:inline-flex;align-items:baseline;gap:10px;font-family:var(--font-jp);font-size:var(--text-md);font-weight:600;letter-spacing:1px;color:var(--gray-3);text-decoration:none;transition:color .2s;justify-self:start}
.sc-pager-btn.is-next{justify-self:end}
.sc-pager-btn i{font-style:normal;font-family:var(--font-head);transition:transform .3s}
.sc-pager-btn em{font-style:normal;font-family:var(--font-head);font-size:var(--text-base);letter-spacing:2px;color:var(--gray-4)}
.sc-pager-btn:hover{color:var(--black)}
.sc-pager-btn:hover i{transform:translateX(-4px)}
.sc-pager-btn.is-next:hover i{transform:translateX(4px)}
.sc-pager-now{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.sc-pager-label{font-family:var(--font-head);font-size:var(--text-3xl);font-weight:700;letter-spacing:3px;text-transform:uppercase;line-height:1}
.sc-pager-sub{font-family:var(--font-jp);font-size:var(--text-sm);color:var(--gray-4);letter-spacing:.1em}
.sc-pager-today{font-family:var(--font-jp);font-size:var(--text-sm);font-weight:600;letter-spacing:.1em;color:var(--black);text-decoration:none;border-bottom:1px solid var(--black);padding-bottom:1px}

/* 右パネル：年・月 */
.sc-picker{display:flex;flex-direction:column;gap:12px}
.sc-picker-label{font-family:var(--font-head);font-size:var(--text-sm);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3);padding-bottom:10px;border-bottom:1px solid var(--black)}
.sc-picker-today{display:block;font-family:var(--font-head);font-size:var(--text-md);font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray-3);text-decoration:none;padding:6px 0;transition:color .2s}
.sc-picker-today:hover,.sc-picker-today.is-active{color:var(--black)}
.sc-picker-years{list-style:none;border-top:1px solid var(--line)}
.sc-picker-years>li{border-bottom:1px solid var(--line)}
.sc-picker-year{display:block;padding:10px 0;font-family:var(--font-head);font-size:var(--text-xl);font-weight:700;letter-spacing:2px;color:var(--gray-3);text-decoration:none;transition:color .2s,padding-left .2s}
.sc-picker-year:hover{color:var(--black);padding-left:4px}
.sc-picker-years>li.is-open .sc-picker-year{color:var(--black)}
.sc-picker-months{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;list-style:none;padding:2px 0 14px}
.sc-picker-months a{display:block;padding:8px 0;text-align:center;font-family:var(--font-head);font-size:var(--text-sm);font-weight:600;letter-spacing:1px;text-decoration:none;border:1px solid var(--line);color:var(--gray-2);background:var(--white);transition:all .2s}
.sc-picker-months a:hover{color:var(--black);border-color:var(--black)}
.sc-picker-months a.is-active{color:var(--white);background:var(--black);border-color:var(--black)}

/* 公演リスト */
.sc-month{font-family:var(--font-head);font-size:var(--text-4xl);font-weight:700;letter-spacing:3px;line-height:1;padding:48px 0 16px;border-bottom:1px solid var(--black)}
.sc-main>.sc-month:first-child{padding-top:40px}
.sc-item{display:grid;grid-template-columns:5em 200px 1fr;gap:36px;align-items:start;padding:32px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:background .25s}
.sc-item:hover{background:rgba(255,255,255,.4)}
.sc-item.is-past{opacity:.55}
.sc-item.is-past:hover{opacity:1}
.sc-date{display:flex;flex-direction:column;line-height:1;padding-top:2px}
.sc-day{font-family:var(--font-head);font-size:2.8rem;font-weight:700;letter-spacing:-.02em}
.sc-wd{font-family:var(--font-head);font-size:var(--text-sm);font-weight:600;letter-spacing:3px;color:var(--gray-3);margin-top:6px;padding-left:2px}
.sc-wd.is-sun{color:var(--sun)}
.sc-img{width:200px;background:var(--gray-5);overflow:hidden}
.sc-img img{width:100%;height:auto;max-height:270px;object-fit:contain;display:block;filter:brightness(.92);transition:filter .3s}
.sc-item:hover .sc-img img{filter:brightness(1)}
.sc-img-ph{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:var(--text-base);font-weight:700;letter-spacing:5px;color:#c9c8c1}
.sc-body{display:flex;flex-direction:column;gap:8px;min-width:0;padding-top:4px}
.sc-title{font-family:var(--font-jp);font-size:var(--text-3xl);font-weight:700;line-height:1.3;letter-spacing:.02em;color:var(--black)}
.sc-performers{font-family:var(--font-jp);font-size:var(--text-lg);font-weight:400;line-height:1.7;color:var(--gray-2)}
.sc-meta{display:flex;flex-wrap:wrap;gap:6px 28px;margin-top:6px}
.sc-meta>div{display:flex;align-items:baseline;gap:10px}
.sc-meta dt{font-family:var(--font-head);font-size:var(--text-sm);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray-4)}
.sc-meta dd{font-family:var(--font-jp);font-size:var(--text-md);color:var(--gray-2);letter-spacing:.02em}
.sc-meta-adv{flex-basis:100%}
.sc-links{display:flex;gap:24px;margin-top:10px}
.sc-more{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);font-size:var(--text-sm);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--black)}
.sc-more i{font-style:normal;transition:transform .3s}
.sc-item:hover .sc-more i{transform:translateX(5px)}
.sc-past-tag{font-family:var(--font-head);font-size:var(--text-xs);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray-4);border:1px solid var(--line);padding:2px 8px}
.sc-empty{padding:40px 0}
.sc-empty-en{font-family:var(--font-head);font-size:var(--text-4xl);font-weight:700;letter-spacing:2px;color:var(--gray-4)}
.sc-empty-jp{font-family:var(--font-jp);font-size:var(--text-md);color:var(--gray-3);margin-top:12px}

@media(max-width:1032px){
  .sc-wrap{grid-template-columns:1fr;gap:32px;padding:0 4vw 12vw}
  .sc-aside{position:static;order:-1}
  .sc-picker{gap:8px}
  .sc-picker-label{display:none}
  .sc-picker-years{display:flex;flex-wrap:wrap;gap:0 18px;border-top:0}
  .sc-picker-years>li{border-bottom:0}
  .sc-picker-years>li.is-open{flex-basis:100%;order:1}
  .sc-picker-year{padding:6px 0}
  .sc-picker-months{display:flex;flex-wrap:wrap;padding:4px 0 8px}
  .sc-picker-months a{min-width:3em;padding:6px 8px}
  .sc-item{grid-template-columns:4.5em 170px 1fr;gap:3vw}
  .sc-img{width:170px}
}
@media(max-width:767px){
  .sc-wrap{padding:0 4vw 16vw}
  .sc-picker-months{gap:4px}
  .sc-picker-months a{min-width:2.6em;padding:6px 4px;font-size:3.4vw}
  .sc-picker-year{font-size:4.6vw}
  .sc-pager{grid-template-columns:1fr 1fr;gap:10px}
  .sc-pager-now{grid-column:1/-1;order:-1;margin-bottom:8px}
  .sc-pager-btn span{display:none}
  .sc-pager-btn{font-size:3.4vw}
  .sc-pager-label{font-size:5.5vw}
  .sc-month{font-size:8vw;padding:9vw 0 3vw}
  .sc-item{grid-template-columns:3.6em 1fr;grid-template-areas:"date img" "date body";gap:3vw 4vw;padding:5vw 0}
  .sc-date{grid-area:date}
  .sc-img{grid-area:img;width:38vw}
  .sc-img img{max-height:52vw}
  .sc-body{grid-area:body;padding-top:0}
  .sc-day{font-size:9vw}
  .sc-wd{font-size:2.8vw}
  .sc-title{font-size:5.2vw}
  .sc-performers{font-size:3.8vw}
  .sc-meta dt{font-size:2.8vw}
  .sc-meta dd{font-size:3.4vw}
  .sc-more{font-size:3vw}
}

/* =====================================================================
   13. SCHEDULE 詳細（見出し全幅 → 左：情報 / 右：画像 固定）
   ===================================================================== */
.sd-head{padding:24px 48px 8px}
.sd-back{display:inline-block;font-family:var(--font-head);font-size:var(--text-sm);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3);text-decoration:none;margin-bottom:28px;transition:color .2s}
.sd-back:hover{color:var(--black)}
.sd-date{display:flex;align-items:baseline;gap:14px;line-height:1;margin-bottom:18px}
.sd-ym{font-family:var(--font-head);font-size:var(--text-xl);font-weight:700;letter-spacing:2px;color:var(--gray-3)}
.sd-day{font-family:var(--font-head);font-size:clamp(3rem,5.5vw,5rem);font-weight:700;letter-spacing:-.02em}
.sd-wd{font-family:var(--font-head);font-size:var(--text-md);font-weight:600;letter-spacing:3px;color:var(--gray-3)}
.sd-wd.is-sun{color:var(--sun)}
.sd-past{font-family:var(--font-head);font-size:var(--text-xs);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray-3);border:1px solid var(--gray-4);padding:4px 10px;margin-left:8px;align-self:center}
.sd-title{font-family:var(--font-jp);font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:700;line-height:1.35;letter-spacing:.02em;margin-bottom:16px}
.sd-time{font-family:var(--font-jp);font-size:var(--text-xl);font-weight:700;letter-spacing:.04em;color:var(--black);margin-bottom:8px}

.sd{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,520px);gap:0 72px;align-items:start;margin:24px 48px 0;padding:24px 0 120px;border-top:1px solid var(--black)}
.sd-main{min-width:0}
.sd-main .sd-block:first-child{padding-top:32px}
.sd-visual{position:sticky;top:96px;background:var(--gray-5)}
.sd-visual img{width:auto;max-width:100%;height:75vh;object-fit:contain;object-position:top left;display:block}
.sd-visual-ph{aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:var(--text-xl);font-weight:700;letter-spacing:6px;color:#c9c8c1}
.sd-block{padding:28px 0;border-bottom:1px solid var(--line)}
.sd-h2{font-family:var(--font-head);font-size:var(--text-sm);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3);margin-bottom:14px}
.sd-cast-text,.sd-price{font-family:var(--font-jp);font-size:var(--text-lg);font-weight:600;line-height:1.9;color:var(--black)}
.sd-text{font-family:var(--font-jp);font-size:var(--text-md);line-height:1.9;color:var(--gray-1)}
.sd-text small{font-size:var(--text-sm);color:var(--gray-3)}
.sd-text a,.sd-price a,.sd-note a{color:var(--black);word-break:break-all}
.sd-note{font-family:var(--font-jp);font-size:var(--text-sm);line-height:1.9;color:var(--gray-3);margin-top:8px}
.sd-content{font-family:var(--font-jp);font-size:var(--text-md);line-height:2;color:var(--gray-1);max-width:60em}
.sd-content p+p{margin-top:1.4em}
.sd-content h2,.sd-content h3{font-weight:700;margin:2em 0 .6em;font-size:var(--text-lg)}
.sd-content img{max-width:100%;height:auto;display:block;margin:2em 0}
.sd-content a{color:var(--black)}
.sd-share{display:flex;align-items:center;gap:20px;margin-top:32px;font-family:var(--font-head);font-size:var(--text-sm);font-weight:600;letter-spacing:2px;text-transform:uppercase}
.sd-share span{color:var(--gray-4)}
.sd-share a,.sd-copy{color:var(--black);text-decoration:none;background:none;border:0;border-bottom:1px solid var(--black);padding:0 0 2px;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;transition:color .2s,border-color .2s}
.sd-share a:hover,.sd-copy:hover{color:var(--gray-3);border-color:var(--gray-3)}
.sd-copy.is-done{color:var(--gray-3);border-color:transparent}

@media(max-width:1032px){
  .sd-head{padding:16px 4vw 8px}
  .sd{grid-template-columns:1fr;margin:16px 4vw 0;padding:0 0 12vw}
  .sd-main{grid-row:2}
  .sd-visual{grid-row:1;position:static;max-width:520px;margin-top:24px}
  .sd-visual img{height:auto;max-height:70vh}
}
@media(max-width:767px){
  .sd-day{font-size:16vw}
  .sd-title{font-size:6vw}
  .sd-time{font-size:4.2vw}
  .sd-cast-text,.sd-price{font-size:4vw}
}

/* =====================================================================
   14. NEWS（一覧・詳細・TOP）
   ===================================================================== */
.nw-wrap{padding:0 48px 120px;max-width:1000px}
.nw-list{list-style:none;border-top:1px solid var(--black)}
.nw-item a{display:grid;grid-template-columns:8em 1fr auto;gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:background .2s}
.nw-item a:hover{background:rgba(255,255,255,.4)}
.nw-date{font-family:var(--font-head);font-size:var(--text-md);font-weight:600;letter-spacing:2px;color:var(--gray-3)}
.nw-title{font-family:var(--font-jp);font-size:var(--text-lg);font-weight:500;line-height:1.6}
.nw-arrow{font-family:var(--font-head);color:var(--gray-3);transition:transform .3s}
.nw-item a:hover .nw-arrow{transform:translateX(5px)}
.nw-empty{font-family:var(--font-jp);font-size:var(--text-md);color:var(--gray-3)}
.nw-pager{margin-top:32px;font-family:var(--font-head);font-size:var(--text-sm);letter-spacing:2px}
.nw-pager .nav-links{display:flex;gap:16px;flex-wrap:wrap}
.nw-pager a,.nw-pager span{color:var(--gray-3);text-decoration:none;padding:6px 10px;border:1px solid transparent}
.nw-pager a:hover{color:var(--black);border-color:var(--gray-4)}
.nw-pager .current{color:var(--white);background:var(--black)}
/* TOP */
.nw-top{padding:0 48px 80px}
.nw-list-top .nw-item a{padding:18px 0}
/* 詳細 */
.nws-head{padding-bottom:3vw}
.nws-date{display:block;font-family:var(--font-head);font-size:var(--text-md);font-weight:600;letter-spacing:2px;color:var(--gray-3);margin-bottom:16px}
.nws-title{font-family:var(--font-jp);font-size:clamp(1.5rem,2.8vw,2.4rem);font-weight:700;line-height:1.4;letter-spacing:.02em;max-width:24em}
.nws-wrap{padding:0 48px 120px;max-width:820px}
.nws-visual{margin-bottom:40px}
.nws-visual img{max-width:100%;height:auto;display:block}
.nws-content{margin-top:0}
.nws-share{margin-top:48px}
.nws-back{margin-top:40px}

@media(max-width:1032px){.nw-wrap,.nws-wrap,.nw-top{padding-left:4vw;padding-right:4vw}}
@media(max-width:767px){
  .nw-item a{grid-template-columns:1fr auto;gap:6px 12px}
  .nw-date{grid-column:1/-1;font-size:3.2vw}
  .nw-title{font-size:4vw}
}

/* =====================================================================
   15. 404
   ===================================================================== */
.nf{position:relative;padding:10vw 48px 14vw;overflow:hidden}
.nf-grunge{position:absolute;right:8vw;top:6vw;width:18vw;height:18vw;border-radius:50%;object-fit:cover;filter:grayscale(1) contrast(1.3);opacity:.3;pointer-events:none}
.nf-code{font-family:var(--font-head);font-size:clamp(5rem,14vw,12rem);font-weight:700;letter-spacing:-.02em;line-height:1}
.nf-en{font-family:var(--font-head);font-size:var(--text-xl);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3);margin-top:8px}
.nf-jp{font-family:var(--font-jp);font-size:var(--text-md);line-height:2;color:var(--gray-1);margin-top:24px}
.nf-links{display:flex;gap:32px;flex-wrap:wrap;margin-top:40px}
@media(max-width:1032px){.nf{padding:12vw 4vw 16vw}}
@media(max-width:767px){.nf-links{flex-direction:column;gap:20px}}

/* =====================================================================
   16. ABOUT
   ===================================================================== */
.page-about .ab-h3{font-family:var(--font-jp);font-size:var(--text-xl);font-weight:700;letter-spacing:.05em;margin-bottom:16px}
.page-about p{font-family:var(--font-jp);font-size:var(--text-md);line-height:2.1;color:var(--gray-1)}
.page-about p+p{margin-top:1em}
.page-about a{color:var(--black)}
.ab-concept{padding:0 48px 100px;max-width:900px}
.ab-concept-en{font-family:var(--font-head);font-size:var(--text-md);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gray-3);margin-bottom:24px}
.ab-concept-jp{font-family:var(--font-jp);font-size:clamp(1.6rem,3.2vw,2.6rem);font-weight:700;line-height:1.5;letter-spacing:.03em;margin-bottom:32px}
.ab-concept-text{max-width:36em}
.ab-name{display:grid;grid-template-columns:1fr 1.2fr;gap:64px;align-items:center;padding:80px 48px;border-top:1px solid var(--black);border-bottom:1px solid var(--black)}
.ab-name-word{display:flex;flex-direction:column;gap:8px}
.ab-name-big{font-family:var(--font-head);font-size:clamp(3rem,7vw,6.5rem);font-weight:700;letter-spacing:.04em;line-height:1}
.ab-name-read{font-family:var(--font-jp);font-size:var(--text-md);letter-spacing:.3em;color:var(--gray-3);padding-left:6px}
.ab-name-body em{font-style:italic;font-family:var(--font-head);font-weight:600}
.ab-name-note{color:var(--gray-3);font-size:var(--text-base)!important}
.ab-history{padding:80px 48px 20px;max-width:900px}
.ab-timeline{position:relative;list-style:none;border-left:1px solid var(--black);margin-left:6px}
.ab-timeline li{position:relative;display:grid;grid-template-columns:7em 1fr;gap:24px;padding:0 0 32px 32px}
.ab-timeline li:last-child{padding-bottom:0}
.ab-timeline li::before{content:'';position:absolute;left:-5px;top:.55em;width:9px;height:9px;border-radius:50%;background:var(--black)}
.ab-tl-year{font-family:var(--font-head);font-size:var(--text-xl);font-weight:700;letter-spacing:2px;line-height:1.4}
.ab-tl-body{font-family:var(--font-jp);font-size:var(--text-md);line-height:1.9;color:var(--gray-1);hanging-punctuation:first}
.ab-space{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:center;padding:100px 48px}
.ab-space-photos{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:8px}
.ab-space-photos img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.9)}
.ab-space-photos img:first-child{grid-row:1/3;aspect-ratio:3/4}
.ab-space-photos img:not(:first-child){aspect-ratio:4/3}
.ab-space-body .floor-pdf{margin-top:28px}
.ab-cols{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:0 48px 100px}
.ab-col{border-top:1px solid var(--black);padding-top:24px}
.ab-col-note{color:var(--gray-3);font-size:var(--text-base)!important}
.ab-company{padding:0 48px 120px;max-width:820px}

@media(max-width:1032px){
  .ab-concept{padding:0 4vw 10vw}
  .ab-history{padding:8vw 4vw 2vw}
  .ab-name{grid-template-columns:1fr;gap:32px;padding:8vw 4vw}
  .ab-space{grid-template-columns:1fr;gap:32px;padding:10vw 4vw}
  .ab-cols{grid-template-columns:1fr;gap:32px;padding:0 4vw 10vw}
  .ab-company{padding:0 4vw 12vw}
}
@media(max-width:767px){
  .ab-concept-jp{font-size:7vw}
  .ab-timeline li{grid-template-columns:1fr;gap:6px;padding-left:20px}
  .ab-name-big{font-size:14vw}
  .ab-space-photos{grid-template-columns:1fr 1fr}
  .ab-space-photos img:first-child{grid-column:1/3;grid-row:auto;aspect-ratio:3/2}
}
