/*
Theme Name: 愛本店
Theme URI: https://aidakanko.com/
Description: 歌舞伎町ホストクラブ「愛本店」公式サイトのテーマ。スタッフ・ランキング・スケジュールの管理画面と、ホスホス（host2.jp）からの自動連携を含みます。
Version: 1.0.62
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: aihonten
*/
:root{
  --red:#930000; --red-dk:#5c0000; --red-lt:#c4161c;
  --gold:#c9a24b; --gold-lt:#e8cf8a;
  --ink:#1b1b1b; --sub:#666; --line:#e2dcdc; --paper:#ffffff; --panel:#f6f3f3;
  --pink:#fde3e8; --pink-dk:#f8c9cf;
  --serif-en:"Cinzel",serif; --serif-jp:"Noto Serif JP",serif; --sans:"Noto Sans JP",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:72px}
body{margin:0;color:var(--ink);font:15px/1.8 var(--sans);
  background:#3a0000 url(assets/img/bg.jpg) repeat fixed;}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1100px;margin:0 auto;background:var(--paper);box-shadow:0 0 40px rgba(0,0,0,.45)}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px}
.brand{display:flex;align-items:center;gap:16px;text-decoration:none}
.brand img{width:170px;height:auto}
.brand small{display:block;font-size:12px;color:var(--sub);letter-spacing:.08em}
.brand b{font:700 18px/1.3 var(--serif-jp);letter-spacing:.12em}
.tel{display:flex;align-items:center;gap:14px}
.tel a.num{font:700 26px/1 var(--serif-en);color:var(--red);text-decoration:none;letter-spacing:.04em}
.tel .info{font-size:12px;color:var(--sub);line-height:1.5;text-align:right}
.btn{display:inline-block;padding:10px 20px;border-radius:2px;text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.08em}
.btn-red{background:linear-gradient(#c4161c,#8a0000);color:#fff;border:1px solid #6d0000}
.btn-gold{background:linear-gradient(#e8cf8a,#b38a35);color:#2a1a00;border:1px solid #8d6a22}
/* header 求人案内: black plate, gold hairline, English caption over Japanese */
.hd-rec{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 20px;background:#160000;color:#fff;border:1px solid var(--gold);box-shadow:inset 0 0 0 3px #160000,inset 0 0 0 4px rgba(232,207,138,.35);font:700 14px/1.3 var(--serif-jp);letter-spacing:.2em;transition:background .3s}
.hd-rec small{font:500 10px/1.4 var(--serif-en);letter-spacing:.35em;color:var(--gold-lt);margin-right:-.35em}
.hd-rec:hover{background:var(--red)}

/* nav */
nav.gnav{background:linear-gradient(#b00000,#7a0000 60%,#5c0000);border-top:1px solid #d33;border-bottom:3px solid #3d0000;position:sticky;top:0;z-index:20}
nav.gnav ul{display:flex;margin:0;padding:0;list-style:none}
nav.gnav li{flex:1}
nav.gnav a{display:block;text-align:center;color:#fff;text-decoration:none;padding:10px 4px 8px;border-right:1px solid rgba(0,0,0,.25);line-height:1.2}
nav.gnav li:first-child a{border-left:1px solid rgba(0,0,0,.25)}
nav.gnav a span{display:block;font:500 14px/1.2 var(--serif-en);letter-spacing:.14em}
nav.gnav a small{font-size:10px;opacity:.8;letter-spacing:.1em}
nav.gnav a:hover{background:rgba(0,0,0,.25)}
.menu-btn{display:none}

/* hero */
.hero{position:relative;background:#000;aspect-ratio:1100/520;overflow:hidden}
.hero .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s}
.hero .slide.on{opacity:1}
.hero .slide img{width:100%;height:100%;object-fit:cover}
.hero .cap{position:absolute;left:0;right:0;bottom:0;padding:60px 28px 22px;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff}
.hero .cap p{margin:0;font:500 13px/1.6 var(--serif-en);letter-spacing:.3em;color:var(--gold-lt)}
.hero .cap h1{margin:4px 0 0;font:700 clamp(20px,3.4vw,34px)/1.4 var(--serif-jp);letter-spacing:.12em}
.dots{position:absolute;right:20px;bottom:20px;display:flex;gap:8px}
.dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.4)}
.dots i.on{background:var(--gold)}

/* layout */
.body{display:grid;grid-template-columns:1fr 330px;gap:24px;padding:24px 28px 40px}
section{margin-bottom:28px}
.hd{display:flex;align-items:baseline;justify-content:space-between;background:linear-gradient(90deg,#000 0%,#2b0000 55%,#6b0000 100%);color:#fff;padding:8px 14px;border-bottom:2px solid var(--gold);margin-bottom:14px}
.hd h2{margin:0;font:700 17px/1.3 var(--serif-en);letter-spacing:.16em}
.hd small{font-size:11px;letter-spacing:.12em;opacity:.85}

/* first-visit banner */
.first{border:2px solid var(--gold);background:linear-gradient(135deg,#1a0000,#5c0000);color:#fff;padding:18px 20px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.first .lead{font:700 12px/1 var(--serif-en);letter-spacing:.3em;color:var(--gold-lt)}
.first .price{font:700 22px/1.4 var(--serif-jp);margin:6px 0 2px}
.first .price s{opacity:.6;font-size:15px;margin-right:6px}
.first .price em{font-style:normal;color:var(--gold-lt);font-size:30px}
.first p{margin:0;font-size:12px;opacity:.85}

/* news */
.news{list-style:none;margin:0;padding:0}
.news li{border-bottom:1px dashed var(--line);padding:10px 2px}
.news time{display:inline-block;font:500 12px/1 var(--serif-en);color:var(--red);letter-spacing:.06em;margin-right:10px}
.news b{font-weight:700}
.news p{margin:4px 0 0;font-size:13px;color:#444}

/* ranking */
.rank{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.rank .no{font:700 20px/1 var(--serif-en);color:var(--red);text-align:center;margin-bottom:6px;letter-spacing:.04em;height:26px;display:flex;align-items:flex-end;justify-content:center}
figure{margin:0}
.ph{background:#d9d9d9;padding:5px;aspect-ratio:5/7}
.ph img{width:100%;height:100%;object-fit:cover;object-position:top}
.rank .r1 .ph,.rank .r2 .ph,.rank .r3 .ph{background:linear-gradient(135deg,#f3dd9b,#b88a2e,#f3dd9b)}
.rank .r1 .no{font-size:26px}
/* ranking cards are links too: same hover as cast */
.rank a{display:block;text-decoration:none}
.rank a:hover .ph{background:var(--red)}

figcaption{text-align:center;font-size:13px;margin-top:6px;font-weight:500}

/* staff */
.staff{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.staff a{display:block;text-decoration:none}
.staff a:hover .ph{background:var(--red)}
.more{text-align:center;margin-top:16px}

/* side */
aside section{margin-bottom:24px}
.sys{width:100%;border-collapse:collapse;font-size:13px;background:var(--panel)}
.sys th,.sys td{border-bottom:1px solid #e6dede;padding:8px 10px;text-align:left;vertical-align:top}
.sys th{width:92px;font-weight:500;color:#555;white-space:nowrap}
.sys td b{color:var(--red)}
.cal{width:100%;border-collapse:collapse;font-size:13px}
.cal td{border-bottom:1px solid #eee;padding:5px 8px}
.cal td:first-child{width:110px;white-space:nowrap}
.cal tr.sat td{background:var(--pink-dk)}
.cal tr.sun td{background:var(--pink)}
.cal .closed{color:#888}
.cal .ev{color:var(--red);font-weight:700}
.shop{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.shop img{aspect-ratio:3/2;object-fit:cover;width:100%}
.addr{font-size:13px;margin:10px 0 0}
.map{width:100%;aspect-ratio:4/3;border:0;margin-top:8px;background:#eee}
/* photo banner (RECRUIT on the top page, ACCESS on 料金システム); the photo comes in as --bg */
.recb{position:relative;isolation:isolate;display:block;overflow:hidden;text-decoration:none;text-align:center;padding:30px 16px 24px;color:#fff;background:#1a0000 var(--bg,none) center/cover no-repeat}
.recb::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.8));transition:background .3s}
.recb::after{content:"";position:absolute;inset:6px;border:1px solid rgba(232,207,138,.55);pointer-events:none}
.recb:hover::before{background:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.65))}   /* hover: the photo just brightens */
.recb small{display:block;font:500 12px var(--serif-en);letter-spacing:.4em;color:var(--gold-lt)}
.recb b{display:block;margin:6px 0 4px;font:700 22px/1.4 var(--serif-jp);letter-spacing:.16em;color:#fff}
.recb span{display:block;font-size:13px;letter-spacing:.1em;color:rgba(255,255,255,.85)}
.recb em{display:inline-block;margin-top:14px;padding:5px 22px;border:1px solid var(--gold);font:500 11px var(--serif-en);font-style:normal;letter-spacing:.3em;color:var(--gold-lt);transition:background .3s,color .3s}
.recb:hover em{background:var(--gold);color:#1a0000}

/* group */
.group{display:grid;grid-template-columns:200px 1fr;gap:18px;align-items:center;background:var(--panel);padding:16px}
.group h3{margin:0 0 6px;font:700 18px/1.4 var(--serif-jp)}
.group p{margin:0 0 10px;font-size:13px;color:#444}

footer{background:#0d0000;color:#ccc;text-align:center;padding:24px 16px 90px;font-size:12px;border-top:3px solid var(--red)}
footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-bottom:10px}
footer a{text-decoration:none;color:#eee}
footer .fage{margin:8px 0 4px;font-size:11px;color:#bbb}
footer .fsub{margin-top:6px;font-size:11px}
footer .fsub a{color:#999}
footer .fsub a:hover{color:#eee}
.spbar{display:none}


/* responsive */
@media (max-width:900px){
  .body{grid-template-columns:1fr;padding:16px}
  .rank{grid-template-columns:repeat(3,1fr);gap:10px}
  .staff{grid-template-columns:repeat(4,1fr);gap:10px}
  .staff figcaption{font-size:13px;margin-top:6px}
  .top{padding:10px 16px}
  .tel .info,.tel .btn{display:none}
  .tel a.num{font-size:17px;white-space:nowrap}
  .brand{gap:10px}
  .brand img{width:96px}
  .brand small{display:none}
  .brand b{font-size:14px;white-space:nowrap;letter-spacing:.06em}
  nav.gnav ul{display:none;flex-direction:column}
  nav.gnav.open ul{display:flex}
  nav.gnav a{text-align:left;padding:12px 16px;border:0;border-bottom:1px solid rgba(0,0,0,.3);display:flex;gap:10px;align-items:baseline}
  nav.gnav li:first-child a{border-left:0}
  .menu-btn{display:flex;width:100%;justify-content:space-between;align-items:center;background:none;border:0;color:#fff;font:700 14px var(--serif-en);letter-spacing:.2em;padding:10px 16px;cursor:pointer}
  .hero{aspect-ratio:4/3}
  .group{grid-template-columns:1fr}
  .spbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:30}
  .spbar a{text-align:center;padding:14px 4px;color:#fff;text-decoration:none;font-weight:700;letter-spacing:.08em}
  .spbar a:first-child{background:var(--red)}
  .spbar a:last-child{background:#222}
  }
@media (max-width:480px){
  /* phone: ranking 3 per row, cast / management 4 per row */
  .rank{grid-template-columns:repeat(3,1fr);gap:8px}
  .staff{grid-template-columns:repeat(4,1fr);gap:8px}
  .staff figcaption{font-size:11px;margin-top:4px}
  .rank figcaption{font-size:12px}
  .rank .no{font-size:16px;height:20px}
  .rank .r1 .no{font-size:19px}
  .ph{padding:3px}
  .first{grid-template-columns:1fr}
}

/* ---- sub pages ---- */
.page-hero{position:relative;background:#000;height:260px;overflow:hidden}
.page-hero img{width:100%;height:100%;object-fit:cover;opacity:.55}
.page-hero .ttl{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;text-align:center;padding:0 16px}
.page-hero .ttl p{margin:0;font:700 34px/1.2 var(--serif-en);letter-spacing:.24em;color:var(--gold-lt)}
.page-hero .ttl h1{margin:6px 0 0;font:700 18px/1.5 var(--serif-jp);letter-spacing:.2em}
.crumb{font-size:12px;color:var(--sub);padding:10px 28px 0}
.crumb a{color:var(--red);text-decoration:none}
.pg{max-width:820px;margin:0 auto;padding:20px 28px 48px}
.lead-box{border-left:4px solid var(--red);background:var(--panel);padding:16px 20px;margin-bottom:24px}
.lead-box p{margin:0 0 8px}
.lead-box .catch{font:700 20px/1.5 var(--serif-jp);color:var(--red);margin-bottom:10px}
.stat{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 4px}
.stat div{background:#fff;border:1px solid var(--line);text-align:center;padding:10px}
.stat small{display:block;color:var(--sub);font-size:12px}
.stat b{font:700 22px/1.3 var(--serif-en);color:var(--red)}
.age{width:100%;border-collapse:collapse;margin:8px 0 24px;font-size:14px}
.age th,.age td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.age th{background:#fbeaea;width:58%;font-weight:500}
.age td{font-weight:700;color:var(--red)}
.req{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:14px}
.req th,.req td{border-bottom:1px solid var(--line);padding:12px 10px;text-align:left;vertical-align:top}
.req th{width:120px;color:#fff;background:linear-gradient(90deg,#2b0000,#6b0000);font-weight:500;letter-spacing:.08em;white-space:nowrap;border-bottom-color:#4a0000}
.req ul{margin:0;padding-left:1.2em}
.apply{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}
.apply a{display:block;text-decoration:none;text-align:center;padding:16px 10px;border-radius:2px;color:#fff;font-weight:700;letter-spacing:.06em;line-height:1.4}
.apply a small{display:block;font-weight:400;font-size:12px;opacity:.9;letter-spacing:0}
.apply .tel1{background:linear-gradient(#c4161c,#8a0000)}
.apply .tel2{background:linear-gradient(#a3141a,#6d0000)}
.apply .line{background:#06c755}
.apply .line{grid-column:1/-1}
.small-note{font-size:12px;color:var(--sub)}
@media (max-width:600px){
  .page-hero{height:180px}
  .page-hero .ttl p{font-size:26px}
  .pg{padding:16px 16px 40px}
  .crumb{padding:10px 16px 0}
  .req th{width:84px;letter-spacing:.05em}
  .apply{grid-template-columns:1fr}
}

/* ---- shared additions ---- */
nav.gnav a.cur{background:rgba(0,0,0,.35);box-shadow:inset 0 -3px 0 var(--gold)}
.sum{background:var(--panel);padding:12px 14px;font-size:13px}
.sum dl{margin:0;display:grid;grid-template-columns:84px 1fr;gap:4px 8px}
.sum dt{color:#555}
.sum dd{margin:0}
.sum dd b{color:var(--red)}
.sum-note{margin:10px 0 0;padding-top:8px;border-top:1px dashed #d8cfcf;font-size:12px;color:var(--red);line-height:1.6}
.more-r{text-align:right;margin-top:10px}
.more-r a{font-size:13px;color:var(--red);text-decoration:none;font-weight:700}
.more-r a::after{content:" ＞"}


/* schedule page */
.month{display:flex;align-items:center;justify-content:center;gap:18px;margin:4px 0 14px}
.month b{font:700 22px/1 var(--serif-jp);letter-spacing:.1em}
.month a{color:var(--red);text-decoration:none;font-size:13px}
.month span.off{color:#ccc;font-size:13px}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.calgrid div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:84px;padding:6px;font-size:12px;background:#fff}
.calgrid .wh{min-height:0;text-align:center;font-weight:700;background:linear-gradient(#2b0000,#5c0000);color:#fff;padding:6px 0}
.calgrid .wh.sun{color:#ffb3b3}.calgrid .wh.sat{color:#c9dcff}
.calgrid .num{font:700 15px/1 var(--serif-en);display:block;margin-bottom:6px}
.calgrid .sun .num{color:#c4161c}.calgrid .sat .num{color:#2856b6}
.calgrid .closed{background:#f1f1f1;color:#888}
.calgrid .ev b{display:inline-block;background:var(--red);color:#fff;padding:2px 6px;border-radius:2px;font-size:11px}
.calgrid .blank{background:#fafafa}
.calgrid .today{box-shadow:inset 0 0 0 2px var(--gold)}
.legend{display:flex;gap:16px;font-size:12px;color:var(--sub);margin-top:10px;flex-wrap:wrap}
.legend i{display:inline-block;width:12px;height:12px;vertical-align:-1px;margin-right:4px;border:1px solid #ccc}

/* system page */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.price-grid .pc{border:1px solid var(--line);text-align:center;padding:18px 10px;background:#fff}
.price-grid .pc small{display:block;font:500 11px var(--serif-en);letter-spacing:.24em;color:var(--sub)}
.price-grid .pc b{display:block;font:700 26px/1.3 var(--serif-jp);color:var(--red);margin:6px 0 2px}
.price-grid .pc.hl{border:2px solid var(--gold);background:linear-gradient(135deg,#1a0000,#5c0000);color:#fff}
.price-grid .pc.hl small{color:var(--gold-lt)}
.price-grid .pc.hl b{color:var(--gold-lt)}
/* 料金システム: 60 MIN | 90 MIN | PREMIUM 90 MIN side by side, label over price, equal heights */
.price-grid.three .pc{display:flex;flex-direction:column;justify-content:center}
.price-grid .pc b .tax{font:500 11px var(--sans);font-style:normal;margin-left:3px;letter-spacing:0}   /* （税込） next to the price */
.price-grid .pc.prem small,.price-grid .pc.prem b{color:#a07a26}   /* same white card, gold lettering */
.price-grid .pc.prem{position:relative;overflow:hidden;border-color:#d8c69a}
/* diagonal 「／」 sash across the top-left corner */
.price-grid .pc.prem .ribbon{position:absolute;top:16px;left:-36px;width:130px;transform:rotate(-45deg);padding:3px 0;text-align:center;
  background:linear-gradient(#e8cf8a,#b38a35);color:#2a1a00;font:700 10px/1.4 var(--serif-en);letter-spacing:.2em;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.price-grid.three .pc{padding:24px 10px}
.price-grid.three .pc{position:relative}
.price-grid .pc-sub{display:block;margin-top:6px;font-size:11px;letter-spacing:.06em;color:var(--sub);text-align:center}   /* every card has MIN / price / catch, so the 3-line block is centred as a whole */
.price-grid .pc.prem .pc-sub{color:#a07a26}
.shop-l{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:24px}
.shop-l img{aspect-ratio:3/2;object-fit:cover;width:100%}
.access{display:grid;grid-template-columns:1fr 1.3fr;gap:18px;align-items:stretch}   /* details and map the same height */
.access .map{margin-top:0;aspect-ratio:auto;height:100%;min-height:300px}
.access table.req{height:100%}

/* history page */
.timeline{list-style:none;margin:0 0 28px;padding:0;border-left:2px solid var(--red)}
.timeline li{position:relative;padding:6px 0 10px 22px}
.timeline li::before{content:"";position:absolute;left:-7px;top:13px;width:12px;height:12px;border-radius:50%;background:var(--gold);border:2px solid #fff;box-shadow:0 0 0 1px var(--red)}
.timeline time{font:700 15px/1.4 var(--serif-en);color:var(--red);margin-right:10px}
.oitachi{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:28px}
.oitachi img{aspect-ratio:1/1;object-fit:cover;width:100%;border:4px solid #e5e0e0}
.books{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:28px}
.book{display:grid;grid-template-columns:96px 1fr;gap:12px;background:var(--panel);padding:12px}
.book img{width:96px;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.book h3{margin:0 0 4px;font:700 15px/1.4 var(--serif-jp)}
.book p{margin:0;font-size:12px;color:#555;line-height:1.6}
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.gallery figure .ph{aspect-ratio:1/1;padding:4px}
.gallery figcaption{font-size:12px}

@media (max-width:900px){
  .gallery{grid-template-columns:repeat(4,1fr)}
  .shop-l{grid-template-columns:repeat(3,1fr)}
  .access{grid-template-columns:1fr}
  .access .map{aspect-ratio:4/3;height:auto;min-height:0}   /* stacked on narrow screens: map keeps its own shape */
}
@media (max-width:600px){
  .calgrid div{min-height:62px;padding:3px;font-size:10px}
  .calgrid .num{font-size:13px;margin-bottom:3px}
  .calgrid .ev b{font-size:9px;padding:1px 3px}
  .price-grid{grid-template-columns:1fr}
  .price-grid.three{grid-template-columns:1fr 1fr}   /* phones: 60 | 90 side by side, PREMIUM full width below */
  .price-grid.three .pc.prem{grid-column:1/-1}
  .books{grid-template-columns:1fr}
  .oitachi{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(3,1fr)}
}
/* photo viewer */
[data-zoom] img{cursor:zoom-in;transition:opacity .2s}
[data-zoom] img:hover{opacity:.85}
.lb{position:fixed;inset:0;z-index:100;background:rgba(10,0,0,.92);display:none;align-items:center;justify-content:center;padding:56px 64px}
.lb.open{display:flex;animation:lbFade .25s ease}
.lb figure{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center}
.lb img{max-width:min(1100px,100%);max-height:calc(100vh - 140px);object-fit:contain;box-shadow:0 10px 40px rgba(0,0,0,.6);background:#000}
.lb img.pop{animation:lbPop .55s cubic-bezier(.34,1.56,.64,1)}
.lb figcaption{color:#fff;margin-top:10px;font-size:14px;letter-spacing:.08em}
.lb button{position:absolute;background:none;border:0;color:#fff;cursor:pointer;line-height:1;opacity:.85}
.lb button:hover{opacity:1;color:var(--gold-lt)}
.lb-x{top:10px;right:16px;font-size:40px}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);font-size:64px;padding:10px}
.lb-prev{left:6px}.lb-next{right:6px}
.lb.single .lb-prev,.lb.single .lb-next,.lb.single .lb-count{display:none}
.lb-count{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#ccc;font:500 13px var(--serif-en);letter-spacing:.2em}
@keyframes lbFade{from{opacity:0}to{opacity:1}}
@keyframes lbPop{0%{opacity:0;transform:translate(var(--ox,0),var(--oy,0)) scale(.2)}60%{opacity:1}100%{opacity:1;transform:none}}
@media (max-width:600px){
  .lb{padding:48px 8px}
  .lb-prev,.lb-next{font-size:44px}
  .lb img{max-height:calc(100vh - 160px)}
}
@media (prefers-reduced-motion:reduce){.lb.open,.lb img.pop{animation:none}}

/* 360 view */
.sv{margin-top:18px}
.sv p{margin:0 0 6px;font-weight:700;font-size:14px}
.sv p small{font-weight:400;color:var(--sub);margin-left:6px}
.sv iframe{width:100%;aspect-ratio:16/9;border:0;background:#eee;display:block}
/* logo */
footer .flogo{width:180px;height:auto;margin:0 auto 16px;opacity:.95}
@media (max-width:600px){footer .flogo{width:140px}}

/* ==== WordPress additions ==== */
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
body.admin-bar nav.gnav{top:32px}
@media (max-width:782px){body.admin-bar nav.gnav{top:46px}}
/* On phones (≤600px) WordPress lets the admin bar scroll away, so the menu bar sticks to the very top again. */
@media (max-width:600px){body.admin-bar nav.gnav{top:0}}

/* staff card extras */
.ph{position:relative}
.ph.noimg{display:flex;align-items:center;justify-content:center;background:#e6e6e6}
.ph.noimg::after{content:"Coming\A Soon...";white-space:pre;text-align:center;font:500 13px/1.5 var(--serif-jp);letter-spacing:.04em;color:var(--red);background:#fff;position:absolute;inset:5px;display:flex;align-items:center;justify-content:center}
@media (max-width:600px){.ph.noimg::after{font-size:11px;inset:3px}}
.clh{position:absolute;left:8px;top:8px;z-index:1;background:linear-gradient(#e8cf8a,#b38a35);color:#2a1a00;font:700 10px/1 var(--serif-en);letter-spacing:.12em;padding:3px 6px;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3)}

/* editable page content */
.entry{font-size:15px}
.entry>*:first-child{margin-top:0}
.entry h2.wp-block-heading{background:linear-gradient(90deg,#000 0%,#2b0000 55%,#6b0000 100%);color:#fff;padding:8px 14px;border-bottom:2px solid var(--gold);font:700 17px/1.3 var(--serif-jp);letter-spacing:.12em;margin:32px 0 14px}
/* standard section heading (HISTORY 愛田会長の生い立ち …) inside page content */
.entry .hd{margin:32px 0 14px}
.entry>.hd:first-child,.entry>p:first-child+.hd{margin-top:0}
.entry .book h3{font:700 15px/1.4 var(--serif-jp);color:var(--ink);margin:0 0 4px}
.entry .book p{margin:0}
.entry h3{font:700 17px/1.5 var(--serif-jp);color:var(--red);margin:24px 0 8px}
.entry p{margin:0 0 14px}
.entry a{color:var(--red)}
.entry .apply a,.entry .btn{color:#fff}
.entry .apply a small{color:#fff}
.entry .wp-block-table{margin:0 0 24px}
.entry .wp-block-table table{width:100%;border-collapse:collapse;font-size:14px}
.entry .wp-block-table td{border:0;border-bottom:1px solid var(--line);padding:12px 10px;vertical-align:top}
.entry .wp-block-table td:first-child{width:120px;color:#fff;background:linear-gradient(90deg,#2b0000,#6b0000);letter-spacing:.08em;white-space:nowrap;border-bottom-color:#4a0000}
.entry .wp-block-table.is-style-age td:first-child{width:58%;color:var(--ink);background:#fbeaea;white-space:normal;border:1px solid var(--line)}
.entry .wp-block-table.is-style-age td:last-child{font-weight:700;color:var(--red);border:1px solid var(--line)}
/* Galleries: the theme lays them out on a fixed grid (columns-N from the block) instead of WordPress's flex layout,
   which wrapped 4/6-column galleries into 3 and collapsed captioned images to 0 height. */
.entry .wp-block-gallery.has-nested-images{display:grid!important;grid-template-columns:repeat(3,1fr);gap:8px!important;margin:0 0 24px}
.entry .wp-block-gallery.columns-2{grid-template-columns:repeat(2,1fr)}
.entry .wp-block-gallery.columns-4{grid-template-columns:repeat(4,1fr)}
.entry .wp-block-gallery.columns-5{grid-template-columns:repeat(5,1fr)}
.entry .wp-block-gallery.columns-6{grid-template-columns:repeat(6,1fr)}
.entry .wp-block-gallery.has-nested-images figure.wp-block-image{width:auto!important;margin:0!important;display:flex;flex-direction:column}
.entry .wp-block-gallery.has-nested-images figure.wp-block-image img{flex:0 0 auto!important;width:100%!important;height:auto!important;aspect-ratio:4/3;object-fit:contain!important;background:#fff}   /* whole photo, never cropped */
.entry .wp-block-gallery.columns-5 figure.wp-block-image img{aspect-ratio:3/2!important}
.entry .wp-block-gallery.ah-wide figure.wp-block-image img{aspect-ratio:3/2!important}
@media (max-width:600px){
  .entry .wp-block-gallery.columns-4{grid-template-columns:repeat(2,1fr)}
  .entry .wp-block-gallery.columns-5,.entry .wp-block-gallery.columns-6{grid-template-columns:repeat(3,1fr)}   /* 15 shop photos → 3 × 5 */
}
.entry .wp-block-gallery figure.wp-block-image{background:#e5e0e0;padding:4px}
.entry .wp-block-gallery img{cursor:zoom-in}
.entry .wp-block-gallery figure.wp-block-image figcaption{position:static;background:none;color:var(--ink);font-size:12px;font-weight:400;text-shadow:none;padding:4px 0 0;text-align:center;margin:0}
.entry .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before{display:none}
.entry ul.timeline{list-style:none}

/* staff profile */
.profile{display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:start;margin-bottom:28px}
.profile .ph{aspect-ratio:5/7;width:100%}   /* width: keeps the frame when there is no photo (Coming Soon) */
.profile .ph.noimg::after{font-size:22px;letter-spacing:.08em}
.profile .name{font:700 28px/1.3 var(--serif-jp);letter-spacing:.1em;margin:0}
.profile .en{font:500 14px var(--serif-en);letter-spacing:.24em;color:var(--sub);margin:2px 0 14px}
.profile .badge{display:inline-block;background:var(--red);color:#fff;font:700 12px var(--serif-en);letter-spacing:.12em;padding:3px 10px;margin:0 6px 10px 0}
.profile .badge.gold{background:linear-gradient(#e8cf8a,#b38a35);color:#2a1a00}
.profile table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:16px}
.profile th,.profile td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.profile th{width:110px;color:#555;font-weight:500;background:var(--panel)}
.profile .comment{background:var(--panel);border-left:4px solid var(--red);padding:12px 16px;margin:0 0 16px;white-space:pre-line}
.sns{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.sns a{display:inline-block;padding:7px 14px;border-radius:2px;color:#fff;text-decoration:none;font-size:13px;font-weight:700}
.sns .instagram a{background:linear-gradient(45deg,#f09433,#dc2743,#bc1888)}
.sns .x a{background:#000}
.sns .tiktok a{background:#111;box-shadow:inset 0 -3px 0 #25f4ee}
.sns .youtube a{background:#e00}
.sns .line a{background:#06c755}
.sns .mail a{background:#555}
.pgallery{display:flex;justify-content:center;gap:3px}
/* square frames, 3 per row: the whole 466x700 / 700x466 photo fits inside with margins (no cropping) */
.pgallery img{flex:0 0 auto;width:calc((100% - 6px) / 3);min-width:0;height:auto;aspect-ratio:1/1;object-fit:contain;object-position:center;background:transparent;border:1px solid #e9e3e3;transition:background-color .2s}
.pgallery img:hover{background:#f4f1f1;opacity:1}
.back{text-align:center;margin:28px 0 0}

/* news list */
.news-list{list-style:none;margin:0;padding:0}
.news-list li{border-bottom:1px dashed var(--line);padding:14px 2px}
.news-list time{font:500 12px var(--serif-en);color:var(--red);margin-right:10px}
.news-list a{color:var(--ink);font-weight:700;text-decoration:none}
.pager{display:flex;justify-content:center;gap:6px;margin-top:20px}
.pager .page-numbers{padding:6px 12px;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.pager .current{background:var(--red);color:#fff;border-color:var(--red)}

@media (max-width:700px){
  .profile{grid-template-columns:1fr}
  .profile .ph{max-width:320px;margin:0 auto}
  .pgallery{gap:2px}.pgallery img{width:calc((100% - 4px) / 3)}
}
/* CLH close-up: stacked images that read as one long feature */
.closeup{max-width:800px;margin:0 auto;background:#000}
.closeup img{width:100%;height:auto;display:block}

/* official SNS in the menu and footer */
nav.gnav li.nav-sns{flex:0 0 auto;display:flex;align-items:stretch;border-left:1px solid rgba(0,0,0,.25)}
nav.gnav li.nav-sns a{display:flex;align-items:center;justify-content:center;width:42px;padding:0;border-right:1px solid rgba(0,0,0,.25)}
nav.gnav li.nav-sns svg{width:18px;height:18px}
nav.gnav li.nav-sns a.sns-host2{width:auto;padding:0 10px}
nav.gnav li.nav-sns b{font:700 11px/1 var(--sans);letter-spacing:.04em;background:#fff;color:var(--red);padding:4px 6px;border-radius:2px}
footer .fsns{display:flex;justify-content:center;align-items:center;gap:12px;margin:0 0 14px}
footer .fsns a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #555;border-radius:50%;color:#fff}
footer .fsns a.sns-host2{width:auto;border-radius:19px;padding:0 14px}
footer .fsns svg{width:17px;height:17px}
footer .fsns b{font:700 12px var(--sans);letter-spacing:.06em}
footer .fsns a:hover{border-color:var(--gold);color:var(--gold-lt)}
@media (max-width:900px){
  nav.gnav li.nav-sns{border-left:0;justify-content:center;gap:10px;padding:12px 16px}
  nav.gnav li.nav-sns a{width:44px;height:44px;border:1px solid rgba(255,255,255,.4);border-radius:50%}
  nav.gnav li.nav-sns a.sns-host2{width:auto;border-radius:22px;padding:0 16px}
  nav.gnav li.nav-sns svg{width:20px;height:20px}
}
/* header: phone number with the opening-hours note underneath (keeps the header narrow); nothing wraps */
.btn,.tel a.num,.tel .info,.brand b,.brand small{white-space:nowrap}
.tel .contact{display:inline-flex;flex-direction:column;align-items:stretch;gap:5px}
/* phone number and hours line have exactly the same width: the number is spaced out a little, the hours line is stretched to match */
.tel .contact a.num{letter-spacing:.14em;margin-right:-.14em}
.tel .contact .info{line-height:1.2;text-align:justify;text-align-last:justify}
@media (max-width:900px){.tel .contact a.num{letter-spacing:.04em;margin-right:0}}
.brand{min-width:0}