
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg:    #e2d8c8;
  --panel: #ede5d4;
  --sumi:  #1e1810;
  --sumi2: #2a2218;
  --sumi3: #382e22;
  --kin:   #8a6d35;
  --kin2:  #b89050;
  --kin3:  #d4b070;
  --aka:   #7a2820;
  --border:#c0b098;
  --text:  #1a1610;
  --sub:   #5e5244;
  --muted: #8e8070;
}
body{background:var(--bg);color:var(--text);font-family:'Shippori Mincho','Noto Serif JP',serif;font-size:17px;line-height:2.0;}

/* HEADER */
#site-header{background:var(--sumi);position:relative;}
#site-header::after{content:'';display:block;height:3px;background:linear-gradient(90deg,transparent 0%,var(--kin) 20%,var(--kin3) 50%,var(--kin) 80%,transparent 100%);}
#header-inner{max-width:1200px;margin:0 auto;padding:22px 36px;display:table;width:100%;}
#logo-cell{display:table-cell;vertical-align:middle;}
#logo-crest{display:inline-block;width:42px;height:42px;margin-right:16px;vertical-align:middle;filter:invert(1) sepia(1) saturate(3) hue-rotate(5deg) brightness(.85);opacity:.92;}
#logo-text-wrap{display:inline-block;vertical-align:middle;}
#logo-en{font-family:'Cormorant Garamond',serif;font-size:11px;letter-spacing:.7em;color:var(--kin2);margin-bottom:4px;}
#logo-ja{font-size:30px;font-weight:700;letter-spacing:.35em;color:#ede5d4;font-family:'Zen Old Mincho','Shippori Mincho',serif;}
#header-right{display:table-cell;vertical-align:middle;text-align:right;}
#header-ticket-btn{display:inline-block;padding:11px 26px;border:1px solid var(--kin2);color:var(--kin3);font-size:15px;letter-spacing:.35em;text-decoration:none;font-family:'Kaisei Opti','Shippori Mincho',serif;font-weight:400;transition:all .3s;position:relative;overflow:hidden;}
#header-ticket-btn::before{content:'';position:absolute;inset:0;background:var(--kin);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
#header-ticket-btn:hover::before{transform:scaleX(1);}
#header-ticket-btn span{position:relative;z-index:1;}

/* NAV */
#global-nav{background:var(--sumi2);border-bottom:1px solid rgba(255,255,255,.05);}
#nav-inner{max-width:1200px;margin:0 auto;padding:0 36px;}
#nav-inner ul{list-style:none;display:table;width:100%;}
#nav-inner ul li{display:table-cell;text-align:center;}
#nav-inner ul li a{display:block;padding:15px 8px;color:#b0a494;font-size:15px;letter-spacing:.35em;text-decoration:none;font-family:'Shippori Mincho','Kaisei Opti',serif;font-weight:400;position:relative;transition:color .25s;}
#nav-inner ul li a::before{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--kin2);transform:scaleX(0);transition:transform .3s;}
#nav-inner ul li a:hover,#nav-inner ul li a.active{color:#ede5d4;}
#nav-inner ul li a:hover::before,#nav-inner ul li a.active::before{transform:scaleX(1);}

/* MOBILE MENU */
#mobile-sidemenu{display:none;background:var(--sumi2);padding:12px;border-bottom:3px solid var(--kin);}
#mobile-grid{width:100%;border-collapse:separate;border-spacing:5px;}
#mobile-grid td{width:25%;}
.mob-item{display:block;overflow:hidden;border:1px solid rgba(255,255,255,.08);}
.mob-item:hover{opacity:.75;}
.mob-item img{display:block;width:100%;height:auto;}

/* SIDEBAR */
#page-body{max-width:1200px;margin:0 auto;padding:48px 36px;display:table;width:100%;table-layout:fixed;}
#sidebar{display:table-cell;width:200px;vertical-align:top;padding-right:32px;}
#main-content{display:table-cell;vertical-align:top;}
#sidebar-inner{background:var(--sumi);overflow:hidden;}
#sidebar-title{padding:14px 18px;background:var(--sumi2);border-bottom:2px solid var(--kin);text-align:center;}
#sidebar-title span{font-size:9px;letter-spacing:.5em;color:var(--kin2);font-family:'Cormorant Garamond',serif;text-transform:uppercase;display:block;}
#sidebar-title strong{font-size:15px;letter-spacing:.4em;color:#ede5d4;font-weight:700;display:block;margin-top:4px;font-family:'Kaisei Opti','Zen Old Mincho',serif;}
.side-nav-item{display:block;border-bottom:1px solid rgba(255,255,255,.06);position:relative;overflow:hidden;transition:background .25s;}
.side-nav-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--kin);transform:scaleY(0);transition:transform .3s;}
.side-nav-item:hover{background:rgba(255,255,255,.04);}
.side-nav-item:hover::before{transform:scaleY(1);}
.side-nav-item img{display:block;width:100%;height:auto;opacity:.85;transition:opacity .3s;}
.side-nav-item:hover img{opacity:1;}

/* PAGE HERO */
.page-hero{background:var(--sumi2);padding:40px 36px;margin-bottom:40px;position:relative;border-bottom:3px solid var(--kin);}
.page-hero::after{content:'';position:absolute;bottom:-3px;left:0;width:80px;height:3px;background:var(--kin3);}
.page-hero-en{font-family:'Cormorant Garamond',serif;font-size:12px;letter-spacing:.6em;color:var(--kin2);margin-bottom:10px;}
.page-hero-ja{font-size:32px;font-weight:700;letter-spacing:.3em;color:#ede5d4;font-family:'Zen Old Mincho','Shippori Mincho',serif;}
.page-hero-line{width:44px;height:1px;background:var(--kin2);margin-top:16px;}

/* CONTENT */
.content-section{margin-bottom:40px;}
.content-section img{display:block;max-width:100%;height:auto;border:1px solid var(--border);margin:20px 0;}
.content-text{font-size:16px;line-height:2.3;color:var(--sub);font-family:'Shippori Mincho',serif;letter-spacing:.06em;}
.content-text p{margin-bottom:1.6em;}
.content-caption{font-size:12px;color:var(--muted);letter-spacing:.12em;margin-top:-12px;margin-bottom:20px;font-family:'Noto Sans JP',sans-serif;}
.img-row{display:table;width:100%;border-collapse:separate;border-spacing:14px;}
.img-row-cell{display:table-cell;vertical-align:top;width:50%;}
.img-row-cell img{display:block;width:100%;height:auto;border:1px solid var(--border);}
.section-divider{border:none;border-top:1px solid var(--border);margin:32px 0;position:relative;}
.section-divider::after{content:'\25C7';position:absolute;top:-10px;left:50%;transform:translateX(-50%);font-size:12px;color:var(--kin2);background:var(--bg);padding:0 10px;}
.quote-panel{position:relative;margin:32px 0;padding:24px 32px 24px 40px;background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--kin);}
.quote-panel p{font-size:16px;line-height:2.2;color:var(--sub);font-family:'Shippori Mincho',serif;}

/* META BAR */
#meta-bar{display:table;width:100%;margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--border);}
#meta-left{display:table-cell;vertical-align:middle;}
#meta-right{display:table-cell;vertical-align:middle;text-align:right;}
.update-label{font-size:12px;letter-spacing:.2em;color:var(--muted);font-family:'Noto Sans JP',sans-serif;}
#sns-link{display:inline-block;padding:7px 16px;background:var(--sumi2);color:#b0a494;font-size:11px;letter-spacing:.2em;text-decoration:none;border:1px solid rgba(255,255,255,.1);font-family:'Noto Sans JP',sans-serif;transition:all .25s;}
#sns-link:hover{background:var(--sumi3);color:var(--kin3);}

/* INTRO CARD */
#intro-card{position:relative;margin-bottom:32px;padding:22px 28px 22px 32px;background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--kin);}
#intro-card::before{content:'\25C6';position:absolute;top:-12px;left:24px;font-size:11px;color:var(--kin);background:var(--bg);padding:0 6px;}
#intro-card p{font-size:17px;line-height:2.3;color:var(--sub);font-family:'Shippori Mincho',serif;}

/* NEWS */
#news-wrap{background:var(--panel);border:1px solid var(--border);overflow:hidden;}
#news-head{background:var(--sumi);padding:14px 24px;display:table;width:100%;border-bottom:2px solid var(--kin);}
#news-head-l{display:table-cell;vertical-align:middle;}
#news-head h2{color:#ede5d4;font-size:17px;font-weight:700;letter-spacing:.4em;font-family:'Kaisei Opti','Zen Old Mincho',serif;}
#news-head h2::before{content:'';display:inline-block;width:4px;height:14px;background:var(--kin2);vertical-align:middle;margin-right:10px;}
#news-head-r{display:table-cell;vertical-align:middle;text-align:right;}
#news-head-r span{color:var(--kin2);font-size:10px;letter-spacing:.4em;font-family:'Cormorant Garamond',serif;}
#news-list{list-style:none;}
#news-list li{border-bottom:1px solid var(--border);display:table;width:100%;transition:background .2s;}
#news-list li:last-child{border-bottom:none;}
#news-list li:hover{background:rgba(160,130,70,.06);}
.n-date{display:table-cell;width:95px;vertical-align:top;padding:14px 14px 14px 24px;font-size:13px;color:var(--kin);font-family:'Noto Sans JP',sans-serif;white-space:nowrap;}
.n-body{display:table-cell;vertical-align:top;padding:14px 24px 14px 0;font-size:16px;line-height:1.9;color:var(--text);font-family:'Shippori Mincho',serif;}
.n-body a{color:var(--kin);text-decoration:none;border-bottom:1px dotted transparent;transition:border-color .2s;}
.n-body a:hover{border-bottom-color:var(--kin);}
.badge-new{display:inline-block;background:var(--aka);color:#fff;font-size:9px;letter-spacing:.15em;padding:2px 8px;margin-right:8px;vertical-align:middle;font-family:'Noto Sans JP',sans-serif;}

/* HERO */
#hero{position:relative;overflow:hidden;background:var(--sumi);height:500px;}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;}
.slide.active{opacity:1;}
.slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
.slide-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(18,13,8,.78) 0%,rgba(18,13,8,.3) 55%,rgba(18,13,8,.1) 100%);}
#hero-text{position:absolute;bottom:0;left:0;padding:48px 52px;z-index:10;}
#hero-kana{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;letter-spacing:.5em;color:var(--kin3);margin-bottom:12px;display:block;}
#hero-title{font-size:48px;font-weight:700;letter-spacing:.3em;color:#ede5d4;line-height:1.35;text-shadow:0 2px 16px rgba(0,0,0,.6);font-family:'Zen Old Mincho','Shippori Mincho',serif;}
#hero-divider{width:52px;height:1px;background:var(--kin2);margin:18px 0;}
#hero-desc{font-size:15px;color:#b8a888;letter-spacing:.18em;font-family:'Noto Sans JP',sans-serif;font-weight:300;line-height:2.1;}
#slide-dots{position:absolute;bottom:22px;right:36px;z-index:10;}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);margin:0 4px;cursor:pointer;transition:background .3s,transform .3s;}
.dot.active{background:var(--kin2);transform:scale(1.3);}
#hero-side-text{position:absolute;top:40px;right:40px;z-index:10;writing-mode:vertical-rl;font-size:11px;letter-spacing:.4em;color:rgba(200,170,100,.5);font-family:'Noto Serif JP',serif;}

/* FOOTER */
#footer-line{height:3px;background:linear-gradient(90deg,transparent,var(--kin),var(--kin3),var(--kin),transparent);}
#site-footer{background:var(--sumi);}
#footer-inner{max-width:1200px;margin:0 auto;padding:32px 36px;display:table;width:100%;}
#footer-logo{display:table-cell;vertical-align:middle;}
#footer-crest{display:inline-block;width:36px;height:36px;margin-right:12px;vertical-align:middle;filter:invert(1) sepia(1) saturate(3) hue-rotate(5deg) brightness(.8);opacity:.88;}
#footer-logo-text{display:inline-block;vertical-align:middle;}
#footer-logo-text p{font-size:20px;font-weight:700;letter-spacing:.3em;color:#e0d4c0;font-family:'Zen Old Mincho','Shippori Mincho',serif;}
#footer-logo-text span{display:block;font-size:10px;letter-spacing:.5em;color:var(--kin2);font-family:'Cormorant Garamond',serif;margin-top:3px;}
#footer-copy{display:table-cell;vertical-align:middle;text-align:right;}
#footer-copy p{font-size:11px;color:#6a5e50;letter-spacing:.12em;font-family:'Noto Sans JP',sans-serif;line-height:2.2;}

/* RESPONSIVE */
@media (max-width:900px){#page-body{padding:32px 20px;}#sidebar{width:170px;padding-right:20px;}}
@media (max-width:768px){
  #header-inner{display:block;padding:14px 16px;}
  #logo-crest{width:34px;height:34px;margin-right:10px;}
  #logo-ja{font-size:20px;}
  #header-right{display:none;}
  #nav-inner{padding:0;}
  #nav-inner ul li a{padding:11px 4px;font-size:12px;letter-spacing:.15em;}
  #mobile-sidemenu{display:block;}
  #hero{height:260px;}
  #hero-text{padding:20px 20px;}
  #hero-title{font-size:26px;}
  #hero-desc,#hero-side-text{display:none;}
  #page-body{display:block;padding:18px 14px;}
  #sidebar{display:none;}
  #main-content{display:block;width:100%;}
  #meta-bar{display:block;}
  #meta-left,#meta-right{display:block;text-align:left;margin-bottom:8px;}
  .n-date{width:70px;padding:11px 8px 11px 14px;font-size:11px;}
  .n-body{padding:11px 14px 11px 0;font-size:14px;}
  #footer-inner{display:block;padding:18px 16px;}
  #footer-logo,#footer-copy{display:block;text-align:center;margin-bottom:12px;}
  .page-hero{padding:24px 16px;}
  .page-hero-ja{font-size:24px;}
  .img-row{display:block;}
  .img-row-cell{display:block;width:100%;margin-bottom:12px;}
}
