/* =========================================================
   クラシックフェス ― 夜明けの旋律 ―  @ 浜離宮朝日ホール
   2027.2.12 (金) / コロム・ミュージックエンタテインメント
   ========================================================= */

:root{
  --ivory:#FDFAF7;
  --cream:#F8F0EA;
  --blush:#F6E3DC;
  --rose:#E7C4BA;
  --sky:#C3CEDE;
  --gold:#B08050;
  --gold-l:#D9B888;
  --gold-d:#8A6034;
  --ink:#382C27;
  --ink-2:#6B5850;
  --ink-3:#95837A;
  --line:rgba(176,128,80,.26);
  --line-2:rgba(176,128,80,.14);
  --corom-g:#46D163;
  --corom-y:#F7F05A;
  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;
  --lat:"Cormorant Garamond","Cinzel",serif;
  --caps:"Cinzel",serif;
  --script:"Great Vibes",cursive;
  --maxw:1120px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--ivory);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:2;
  font-feature-settings:"palt" 1;letter-spacing:.045em;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
[hidden]{display:none!important}

.wrap{width:min(100% - 56px,var(--maxw));margin-inline:auto;position:relative}
@media (max-width:600px){.wrap{width:min(100% - 40px,var(--maxw))}}
h1,h2,h3,p,dd,dt,li,.btn{word-break:auto-phrase;line-break:strict}

/* ---------- 紙の額縁と粒子（全体の質感） ---------- */
.edge{position:fixed;inset:16px;border:1px solid var(--line);pointer-events:none;z-index:45}
.edge::before{content:"";position:absolute;inset:6px;border:1px solid var(--line-2)}
.edge i{position:absolute;width:9px;height:9px;border:1px solid var(--gold);transform:rotate(45deg);background:var(--ivory)}
.edge i:nth-child(1){top:-5px;left:-5px}
.edge i:nth-child(2){top:-5px;right:-5px}
.edge i:nth-child(3){bottom:-5px;left:-5px}
.edge i:nth-child(4){bottom:-5px;right:-5px}
.grain{
  position:fixed;inset:0;z-index:44;pointer-events:none;opacity:.05;
  background-image:url("data:image/png;base64,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");
  background-size:96px 96px;mix-blend-mode:multiply;
}
@media (max-width:700px){
  .edge{inset:9px}
  .edge::before{display:none}
  .edge i{width:7px;height:7px;top:auto;bottom:auto}
  .edge i:nth-child(1){top:-4px;left:-4px}
  .edge i:nth-child(2){top:-4px;right:-4px}
  .edge i:nth-child(3){bottom:-4px;left:-4px}
  .edge i:nth-child(4){bottom:-4px;right:-4px}
}

/* ---------- 共通の見出し ---------- */
.sec{padding:clamp(76px,11vw,148px) 0;position:relative}
.sec-head{text-align:center;margin-bottom:clamp(38px,5.5vw,68px)}
.sec-no{
  display:block;font-family:var(--lat);font-size:13px;letter-spacing:.3em;
  color:var(--gold-l);margin-bottom:10px;
}
.sec-en{
  font-family:var(--caps);font-size:11px;letter-spacing:.46em;
  color:var(--gold);text-transform:uppercase;display:block;margin-bottom:16px;
}
.sec-jp{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(23px,4.4vw,34px);letter-spacing:.24em;margin:0;line-height:1.6;
}
.orn{display:block;margin:20px auto 0;width:186px;height:14px;opacity:.9}
.sec-lead{
  margin:26px auto 0;max-width:33em;font-family:var(--serif);
  font-size:clamp(14.5px,2.2vw,17px);line-height:2.25;letter-spacing:.13em;color:var(--ink-2);
}
.sp-br{display:none}
@media (max-width:600px){.sp-br{display:inline}}

/* 草花のあしらい（フライヤーの線画に合わせた一本） */
.sprig{display:block;margin:0 auto clamp(18px,3vw,30px);width:64px;height:auto;opacity:.75}

/* ---------- ヘッダー ---------- */
.bar{
  position:fixed;inset:0 0 auto 0;z-index:60;
  padding:calc(env(safe-area-inset-top,0px) + 14px) 34px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  transition:background .5s,box-shadow .5s,backdrop-filter .5s,padding .4s;
}
.bar.on{
  background:rgba(253,250,247,.88);backdrop-filter:blur(12px);
  box-shadow:0 1px 0 var(--line-2);
  padding-top:calc(env(safe-area-inset-top,0px) + 10px);padding-bottom:10px;
}
.bar-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.bar-brand img{width:26px;height:26px;border-radius:50%;flex:none}
.bar-brand span{
  font-family:var(--caps);font-size:10.5px;letter-spacing:.34em;color:var(--gold-d);
  line-height:1.55;white-space:nowrap;
}
.bar-brand b{
  display:block;font-family:var(--serif);font-size:12.5px;
  letter-spacing:.18em;font-weight:600;color:var(--ink);
}
.bar-nav{display:flex;gap:30px;align-items:center}
.bar-nav a{
  font-family:var(--serif);font-size:13px;letter-spacing:.18em;
  text-decoration:none;color:var(--ink-2);position:relative;padding:5px 0;
}
.bar-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s;
}
.bar-nav a:hover::after{transform:scaleX(1);transform-origin:left}
.burger{display:none;width:44px;height:44px;border:0;background:none;padding:0;cursor:pointer}
.burger span{display:block;width:24px;height:1px;background:var(--ink);margin:6px auto;transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width:860px){
  .bar{padding-left:24px;padding-right:20px}
  .burger{display:block}
  .bar-nav{
    position:fixed;inset:0;flex-direction:column;justify-content:center;gap:30px;
    background:rgba(253,250,247,.97);backdrop-filter:blur(8px);
    opacity:0;pointer-events:none;transition:opacity .4s;z-index:1;
  }
  .bar-nav.open{opacity:1;pointer-events:auto}
  .bar-nav a{font-size:17px;letter-spacing:.26em}
}

/* ---------- ヒーロー ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:center;
  padding:calc(env(safe-area-inset-top,0px) + 104px) 0 76px;
  background:
    radial-gradient(120% 68% at 10% 4%, rgba(212,206,229,.9) 0%, rgba(212,206,229,0) 56%),
    radial-gradient(96% 58% at 94% 26%, rgba(246,221,212,.95) 0%, rgba(246,221,212,0) 62%),
    linear-gradient(180deg,#ECE7F1 0%,#F7E6DE 48%,#FDFAF7 100%);
  overflow:hidden;
}
.hero-in{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr minmax(288px,376px);
  gap:clamp(30px,5vw,72px);align-items:center;
}
.hero-txt{position:relative}
/* 見出しの後ろに置く筆記体の飾り */
.hero-script{
  position:absolute;left:-.06em;top:-.52em;z-index:-1;
  font-family:var(--script);font-size:clamp(52px,6.6vw,94px);
  color:rgba(176,128,80,.15);white-space:nowrap;pointer-events:none;user-select:none;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--serif);font-size:12.5px;letter-spacing:.28em;color:var(--gold-d);margin:0 0 20px;
}
.hero-eyebrow::before{content:"";width:40px;height:1px;background:var(--gold)}
h1.hero-title{
  font-family:var(--serif);font-weight:700;margin:0;
  font-size:clamp(38px,7.2vw,72px);line-height:1.22;letter-spacing:.12em;
  color:var(--ink);text-shadow:0 1px 0 rgba(255,255,255,.55);
}
.hero-sub{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(15px,2.4vw,21px);letter-spacing:.34em;color:var(--gold-d);
  margin:20px 0 0;
}
/* 日付：上下の罫で囲むコンサートらしい組み */
.hero-date{
  margin:clamp(28px,4vw,42px) 0 0;padding:16px 0 14px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;position:relative;
}
.hero-date::after{
  content:"";position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--line-2);
}
.hero-date .y{font-family:var(--lat);font-size:17px;letter-spacing:.24em;color:var(--ink-2)}
.hero-date .d{
  font-family:var(--lat);font-weight:600;font-size:clamp(46px,8.4vw,74px);
  line-height:.92;color:var(--ink);letter-spacing:.01em;
}
.hero-date .w{font-family:var(--caps);font-size:12.5px;letter-spacing:.3em;color:var(--gold-d)}
.hero-place{margin:18px 0 0;font-family:var(--serif);font-size:clamp(15px,2.3vw,18.5px);letter-spacing:.16em}
.hero-place small{display:block;font-family:var(--sans);font-size:12.5px;letter-spacing:.06em;color:var(--ink-2);margin-top:7px;line-height:1.85}
.hero-note{
  margin:26px 0 0;font-size:12.5px;line-height:1.95;color:var(--ink-2);
  padding-left:16px;border-left:1px solid var(--line);
}
/* ポスターは二重罫の額に入れる */
.hero-poster{position:relative;padding:12px;background:rgba(255,255,255,.42);box-shadow:0 30px 64px -30px rgba(94,61,44,.55)}
.hero-poster::before{content:"";position:absolute;inset:5px;border:1px solid var(--line);pointer-events:none;z-index:2}
.hero-poster img{width:100%;position:relative}
.hero-scroll{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
  font-family:var(--caps);font-size:9.5px;letter-spacing:.4em;color:var(--gold-d);text-align:center;
}
.hero-scroll::after{content:"";display:block;width:1px;height:42px;margin:12px auto 0;background:linear-gradient(var(--gold),transparent);animation:drop 2.6s ease-in-out infinite}
@keyframes drop{0%{transform:scaleY(.2);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(.2);transform-origin:bottom}}

.bokeh{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.bokeh i{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle at 34% 32%, rgba(255,255,255,.95), rgba(255,244,236,.35) 46%, rgba(255,240,230,0) 72%);
  animation:float 16s ease-in-out infinite;
}
@keyframes float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-28px,0)}}

/* ---------- コンセプト ---------- */
.concept{background:var(--ivory);text-align:center;position:relative}
.concept p{
  font-family:var(--serif);font-size:clamp(15px,2.2vw,18px);line-height:2.6;
  letter-spacing:.14em;margin:0 auto;max-width:33em;color:var(--ink);
}
.concept p + p{margin-top:1.7em}
.concept .lead{
  font-size:clamp(18px,3.2vw,27px);letter-spacing:.22em;line-height:2;color:var(--gold-d);
  margin-bottom:1.4em;
}

/* ---------- 開催概要 ---------- */
.outline{background:linear-gradient(180deg,#FDFAF7 0%,#F8EDE7 100%)}
.dl{max-width:780px;margin:0 auto;border-top:1px solid var(--line)}
.dl > div{
  display:grid;grid-template-columns:154px 1fr;gap:8px 26px;
  padding:22px 8px;border-bottom:1px solid var(--line-2);align-items:baseline;
}
.dl > div:last-child{border-bottom:1px solid var(--line)}
.dl dt{font-family:var(--serif);font-size:13.5px;letter-spacing:.22em;color:var(--gold-d);margin:0}
.dl dd{margin:0;font-size:15px;line-height:1.95}
.dl dd .tbd{
  display:inline-block;font-family:var(--serif);font-size:12.5px;letter-spacing:.18em;color:var(--gold-d);
  border:1px solid var(--line);border-radius:999px;padding:3px 16px;background:rgba(255,255,255,.6);
}
.dl dd small{display:block;font-size:12.5px;color:var(--ink-2);margin-top:8px;line-height:1.85}
@media (max-width:600px){
  .dl > div{grid-template-columns:1fr;gap:6px;padding:18px 4px}
  .dl dt{font-size:12.5px}
  .dl dd{font-size:14.5px}
}

/* カレンダーに追加 */
.cal{
  max-width:780px;margin:clamp(34px,4.6vw,56px) auto 0;padding:clamp(26px,3.6vw,38px) clamp(20px,3vw,34px);
  text-align:center;position:relative;border:1px solid var(--line);background:rgba(255,255,255,.5);
}
.cal::before{content:"";position:absolute;inset:5px;border:1px solid var(--line-2);pointer-events:none}
.cal-lead{font-family:var(--serif);font-size:14.5px;letter-spacing:.22em;color:var(--gold-d);margin:0 0 22px}
.cal-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.cal-btn{font-size:13px;padding:12px 22px;letter-spacing:.12em}
.cal-btn::after{display:none}
.cal-note{font-size:12px;color:var(--ink-3);margin:22px 0 0;line-height:1.95}
@media (max-width:640px){
  .cal-btns .btn{flex:1 1 100%;justify-content:center}
  .cal-lead{font-size:14px}
  .cal-note{font-size:11.5px;text-align:left}
}

/* ---------- 出演 ---------- */
.artists{background:var(--ivory)}
.a-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(30px,5vw,60px);align-items:start}
.a-card{position:relative;text-align:center}
/* 写真はホールのアーチに見立てて上を丸く */
.a-photo{
  position:relative;overflow:hidden;background:var(--cream);
  border-radius:50% 50% 3px 3px / 26% 26% 3px 3px;
  box-shadow:0 26px 52px -30px rgba(94,61,44,.6);
}
.a-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 20%;transition:transform 1.6s cubic-bezier(.2,.7,.3,1)}
.a-card:hover .a-photo img{transform:scale(1.035)}
.a-photo::after{
  content:"";position:absolute;inset:9px;pointer-events:none;
  border:1px solid rgba(255,255,255,.62);
  border-radius:50% 50% 2px 2px / 26% 26% 2px 2px;
}
/* 名前は写真に重ねた札に */
.a-plate{
  position:relative;z-index:2;width:min(88%,330px);margin:-42px auto 0;
  background:var(--ivory);border:1px solid var(--line);padding:18px 16px 16px;
}
.a-plate::before{content:"";position:absolute;inset:4px;border:1px solid var(--line-2);pointer-events:none}
.a-part{
  display:block;font-family:var(--caps);font-size:10px;
  letter-spacing:.4em;color:var(--gold);text-transform:uppercase;
}
.a-name{font-family:var(--serif);font-weight:600;font-size:clamp(20px,3.2vw,25px);letter-spacing:.2em;margin:9px 0 5px}
.a-en{font-family:var(--lat);font-size:12.5px;letter-spacing:.3em;color:var(--ink-3);margin:0}
.a-catch{font-family:var(--serif);font-size:14.5px;line-height:2.1;letter-spacing:.12em;color:var(--gold-d);margin:22px 0 0}
.a-desc{font-size:13.5px;line-height:2.05;color:var(--ink-2);margin:14px 0 0;text-align:left}
.a-awards{list-style:none;margin:18px 0 0;padding:18px 0 0;border-top:1px solid var(--line-2);text-align:left;display:grid;gap:8px}
.a-awards li{font-size:12.5px;line-height:1.75;color:var(--ink-2);padding-left:19px;position:relative}
.a-awards li::before{content:"";position:absolute;left:2px;top:.74em;width:6px;height:6px;border:1px solid var(--gold);transform:rotate(45deg)}
.a-links{
  display:flex;gap:10px 22px;justify-content:center;flex-wrap:wrap;
  margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line-2);
}
.a-links a{
  font-family:var(--serif);font-size:13px;letter-spacing:.12em;color:var(--gold-d);
  text-decoration:none;display:inline-flex;align-items:center;gap:8px;
  border-bottom:1px solid var(--line);padding-bottom:3px;transition:color .3s,border-color .3s;
}
.a-links a::after{content:"";width:12px;height:1px;background:currentColor;opacity:.7;transition:width .3s}
.a-links a:hover{color:var(--gold)}
.a-links a:hover::after{width:18px}
.p-who a{text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color .3s}
.p-who a:hover{border-color:var(--gold)}
.a-more{
  grid-column:1/-1;margin-top:clamp(26px,4vw,44px);
  border:1px solid var(--line);background:rgba(255,255,255,.5);
  padding:clamp(28px,4.4vw,44px);text-align:center;position:relative;
}
.a-more::before{content:"";position:absolute;inset:5px;border:1px solid var(--line-2);pointer-events:none}
.a-more .cs{font-family:var(--caps);font-size:12px;letter-spacing:.46em;color:var(--gold)}
.a-more p{margin:16px 0 0;font-size:14px;line-height:2.1;color:var(--ink-2)}
@media (max-width:700px){
  .a-grid{grid-template-columns:1fr;gap:52px}
  .a-desc,.a-awards{max-width:25em;margin-inline:auto}
  .a-awards{width:100%}
}

/* ---------- 演奏を聴く ---------- */
.perform{background:linear-gradient(180deg,#FDFAF7 0%,#F8F1EB 100%)}
.p-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,4.4vw,52px)}
.p-card{text-align:center}
.p-play{
  display:block;width:100%;padding:9px;margin:0;border:0;cursor:pointer;position:relative;
  background:rgba(255,255,255,.55);box-shadow:0 22px 46px -28px rgba(94,61,44,.6);
}
.p-play::before{content:"";position:absolute;inset:4px;border:1px solid var(--line);pointer-events:none;z-index:3}
.p-play img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.3,1),filter .6s}
.p-play:hover img{transform:scale(1.03)}
.p-ico{
  position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;z-index:4;
  border-radius:50%;background:rgba(253,250,247,.9);border:1px solid var(--gold);
  transition:background .35s,transform .35s;
}
.p-ico::after{
  content:"";position:absolute;left:52%;top:50%;transform:translate(-50%,-50%);
  border-left:15px solid var(--gold-d);border-top:9px solid transparent;border-bottom:9px solid transparent;
}
.p-play:hover .p-ico{background:var(--gold);transform:scale(1.06)}
.p-play:hover .p-ico::after{border-left-color:#fff}
.p-frame{position:relative;padding:9px;background:rgba(255,255,255,.55)}
.p-frame iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.p-title{font-family:var(--serif);font-size:clamp(15.5px,2.4vw,18px);letter-spacing:.14em;margin:22px 0 0}
.p-meta{margin:10px 0 0;display:flex;gap:12px;justify-content:center;align-items:baseline;flex-wrap:wrap}
.p-who{font-family:var(--serif);font-size:14px;letter-spacing:.16em;color:var(--ink)}
.p-part{font-family:var(--caps);font-size:10px;letter-spacing:.32em;color:var(--gold)}
.p-sub{margin:10px 0 0;font-size:12px;color:var(--ink-3);letter-spacing:.06em}
.p-sub a{color:var(--gold-d);text-decoration:none;border-bottom:1px solid var(--line)}
.p-sub a:hover{border-color:var(--gold)}
@media (max-width:700px){
  .p-grid{grid-template-columns:1fr;gap:44px}
  .p-ico{width:56px;height:56px;margin:-28px 0 0 -28px}
}

/* ---------- インタビュー ---------- */
.interview{background:var(--ivory)}
.iv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(26px,4vw,48px)}
.iv-card{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  background:rgba(255,255,255,.6);border:1px solid var(--line);position:relative;
  transition:transform .5s cubic-bezier(.2,.7,.3,1),box-shadow .5s;
}
.iv-card::before{content:"";position:absolute;inset:5px;border:1px solid var(--line-2);pointer-events:none;z-index:2}
.iv-card:hover{transform:translateY(-4px);box-shadow:0 26px 48px -32px rgba(94,61,44,.6)}
.iv-img{display:block;overflow:hidden;margin:9px 9px 0}
.iv-img img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.3,1)}
.iv-card:hover .iv-img img{transform:scale(1.04)}
.iv-body{display:block;padding:22px clamp(18px,2.4vw,26px) clamp(22px,3vw,28px)}
.iv-who{display:block;font-family:var(--caps);font-size:10px;letter-spacing:.34em;color:var(--gold)}
.iv-title{
  display:block;font-family:var(--serif);font-weight:600;
  font-size:clamp(15.5px,2.2vw,18px);line-height:1.85;letter-spacing:.1em;margin:10px 0 0;
}
.iv-lead{display:block;font-size:13px;line-height:2;color:var(--ink-2);margin:14px 0 0}
.iv-more{
  display:inline-flex;align-items:center;gap:10px;margin:18px 0 0;
  font-family:var(--serif);font-size:13px;letter-spacing:.16em;color:var(--gold-d);
}
.iv-more::after{content:"";width:16px;height:1px;background:currentColor;opacity:.75;transition:width .35s}
.iv-card:hover .iv-more::after{width:26px}
.iv-src{text-align:center;margin:clamp(26px,3.4vw,38px) 0 0;font-size:12px;letter-spacing:.08em;color:var(--ink-3)}
@media (max-width:700px){.iv-grid{grid-template-columns:1fr;gap:26px}}

/* ---------- コロムについて ---------- */
.corom{background:linear-gradient(180deg,#FDFAF7 0%,#F7F2EC 100%)}
.c-lede{text-align:center;max-width:35em;margin:0 auto}
.c-logo{width:62px;height:62px;margin:0 auto 24px;border-radius:50%;box-shadow:0 12px 28px -14px rgba(70,209,99,.6)}
.c-big{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(20px,3.6vw,29px);letter-spacing:.22em;margin:0 0 24px;
  position:relative;display:inline-block;padding-bottom:14px;
}
.c-big::after{
  content:"";position:absolute;left:14%;right:14%;bottom:0;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--corom-g),var(--corom-y));
}
.c-lede p{font-size:14.5px;line-height:2.25;color:var(--ink-2);margin:0}
.c-lede p + p{margin-top:1.5em}

.steps{list-style:none;margin:clamp(44px,6vw,70px) auto 0;padding:0;max-width:700px;position:relative;display:grid;gap:6px}
.steps::before{
  content:"";position:absolute;left:7px;top:18px;bottom:18px;width:1px;
  background:linear-gradient(180deg,var(--line),rgba(70,209,99,.45),var(--corom-y));
}
.steps li{position:relative;padding:16px 0 16px 36px;display:grid;grid-template-columns:120px 1fr;gap:3px 20px;align-items:baseline}
.steps li::before{content:"";position:absolute;left:0;top:24px;width:15px;height:15px;border-radius:50%;background:var(--ivory);border:1px solid var(--line)}
.steps li.now::before{background:linear-gradient(135deg,var(--corom-g),var(--corom-y));border-color:transparent;box-shadow:0 0 0 5px rgba(70,209,99,.13)}
.st-date{font-family:var(--lat);font-size:14.5px;letter-spacing:.16em;color:var(--gold-d)}
.st-name{font-family:var(--serif);font-size:15.5px;letter-spacing:.12em;color:var(--ink)}
.st-place{grid-column:2;font-size:12.5px;color:var(--ink-3);letter-spacing:.06em}
.steps li.now .st-name{font-weight:600}
.steps li.now .st-date{color:var(--ink)}
@media (max-width:600px){
  .steps li{grid-template-columns:1fr;padding-left:32px}
  .st-place{grid-column:1}
  .st-date{font-size:12.5px}
}
.c-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:clamp(36px,5vw,56px)}
@media (max-width:520px){.c-actions .btn{flex:1 1 100%;justify-content:center}}

/* ---------- 会場 ---------- */
.venue{background:linear-gradient(180deg,#F8EDE7 0%,#FDFAF7 100%)}
.v-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,5vw,68px);align-items:start}
.v-name{font-family:var(--serif);font-size:clamp(22px,3.6vw,31px);letter-spacing:.2em;margin:0 0 8px}
.v-en{font-family:var(--caps);font-size:10.5px;letter-spacing:.36em;color:var(--gold);margin:0 0 22px}
.v-addr{font-size:14.5px;line-height:2.05;margin:0 0 20px}
.v-desc{font-size:14px;line-height:2.2;color:var(--ink-2);margin:0 0 26px;padding-left:16px;border-left:1px solid var(--line)}
.v-access{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.v-access li{font-size:13.5px;line-height:1.85;padding-left:24px;position:relative;color:var(--ink-2)}
.v-access li::before{content:"";position:absolute;left:0;top:.66em;width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);background:var(--ivory)}
.v-access b{color:var(--ink);font-weight:500}
.v-links{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px}
.btn{
  display:inline-flex;align-items:center;gap:12px;text-decoration:none;
  font-family:var(--serif);font-size:13.5px;letter-spacing:.18em;
  padding:14px 26px;border:1px solid var(--gold);color:var(--gold-d);
  background:rgba(255,255,255,.55);transition:background .35s,color .35s,border-color .35s;
}
.btn::after{content:"";width:14px;height:1px;background:currentColor;opacity:.75;transition:width .35s}
.btn:hover{background:var(--gold);color:#fff}
.btn:hover::after{width:22px}
.btn.solid{background:var(--gold);color:#fff}
.btn.solid:hover{background:var(--gold-d);border-color:var(--gold-d)}
.btn.corom-btn{border-color:rgba(70,209,99,.62);color:#2E8C46}
.btn.corom-btn:hover{background:linear-gradient(90deg,var(--corom-g),var(--corom-y));color:#1E3B26;border-color:transparent}
.v-map{position:relative;padding:10px;background:rgba(255,255,255,.55);box-shadow:0 20px 46px -30px rgba(94,61,44,.55)}
.v-map::before{content:"";position:absolute;inset:4px;border:1px solid var(--line);pointer-events:none;z-index:2}
.v-map iframe{display:block;width:100%;height:352px;border:0}
@media (max-width:860px){
  .v-grid{grid-template-columns:1fr}
  .v-map iframe{height:270px}
  .v-links{gap:11px}
  .v-links .btn{flex:1 1 100%;justify-content:center}
}

/* ---------- チケット ---------- */
.ticket{background:var(--ivory);text-align:center}
.t-box{
  max-width:740px;margin:0 auto;padding:clamp(34px,5vw,58px);position:relative;
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(248,240,234,.85));
}
.t-box::before{content:"";position:absolute;inset:6px;border:1px solid var(--line-2);pointer-events:none}
.t-box p{margin:0;font-size:15px;line-height:2.2;color:var(--ink-2)}
.t-actions{display:flex;flex-wrap:wrap;gap:13px;justify-content:center;margin-top:30px}
@media (max-width:520px){.t-actions .btn{flex:1 1 100%;justify-content:center}}

/* ---------- フッター ---------- */
.foot{
  background:linear-gradient(180deg,#F5E9E2 0%,#F1E2DA 100%);
  border-top:1px solid var(--line);
  padding:64px 0 calc(env(safe-area-inset-bottom,0px) + 52px);text-align:center;
}
.foot-logo{width:38px;height:38px;border-radius:50%;margin:0 auto 20px;opacity:.95}
.foot-title{font-family:var(--serif);font-size:16.5px;letter-spacing:.24em;margin:0 0 10px}
.foot-date{font-family:var(--caps);font-size:11px;letter-spacing:.3em;color:var(--gold-d);margin:0 0 28px}
.foot-org{font-size:13px;line-height:2;color:var(--ink-2);margin:0}
.foot-links{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin:24px 0 0;padding:0;list-style:none}
.foot-links a{font-size:13px;letter-spacing:.12em;color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:3px;transition:color .3s,border-color .3s}
.foot-links a:hover{color:var(--gold-d);border-color:var(--gold)}
.copy{margin:32px 0 0;font-family:var(--caps);font-size:10px;letter-spacing:.28em;color:var(--ink-3)}
@media (max-width:430px){
  .foot-org{font-size:12.5px;letter-spacing:.02em}
  .foot-title{font-size:15px;letter-spacing:.16em}
  .foot-date{font-size:10px;letter-spacing:.2em}
}

/* ---------- 出現アニメーション ---------- */
.rv{opacity:0;transform:translateY(24px);transition:opacity 1.1s cubic-bezier(.2,.7,.3,1),transform 1.1s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .bokeh i,.hero-scroll::after{animation:none}
  .a-card:hover .a-photo img{transform:none}
  html{scroll-behavior:auto}
}

/* ---------- 幅の調整 ---------- */
@media (min-width:861px) and (max-width:1100px){
  h1.hero-title{font-size:clamp(34px,5.4vw,58px)}
  .hero-in{grid-template-columns:1fr minmax(240px,320px)}
  .hero-script{font-size:clamp(52px,8vw,96px)}
}
@media (max-width:860px){
  .hero-in{grid-template-columns:1fr;text-align:center;gap:38px}
  .hero-eyebrow{justify-content:center}
  .hero-date{justify-content:center}
  .hero-script{left:50%;transform:translateX(-50%);top:-.46em}
  .hero-note{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:18px;text-align:left}
  .hero-poster{max-width:min(68vw,296px);margin:0 auto;order:-1}
  .hero-scroll{display:none}
}

/* =========================================================
   2026-10-08 改訂：出演10名・昼の部／夜の部・出演者ページ
   ========================================================= */

/* ---------- 昼／夜の印 ---------- */
.ico{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;flex:none}
.show-tag{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--serif);font-size:12.5px;letter-spacing:.14em;line-height:1.4;
  padding:4px 13px 4px 10px;border-radius:999px;border:1px solid var(--line);
  background:rgba(255,255,255,.7);color:var(--gold-d);text-decoration:none;white-space:nowrap;
}
.show-tag.soiree{color:#4B5A86;border-color:rgba(75,90,134,.3)}
.show-tag small{font-family:var(--caps);font-size:9.5px;letter-spacing:.24em;opacity:.8}

/* ---------- ヒーロー（顔写真版） ---------- */
.hero.faces .hero-in{grid-template-columns:minmax(0,1fr) minmax(0,1.04fr)}
.hero-cast{display:grid;gap:18px}
.cast-box{
  display:block;text-decoration:none;color:inherit;position:relative;
  background:rgba(255,255,255,.5);border:1px solid var(--line);padding:18px 18px 20px;
  transition:background .4s,box-shadow .4s;
}
.cast-box::before{content:"";position:absolute;inset:4px;border:1px solid var(--line-2);pointer-events:none}
.cast-box:hover{background:rgba(255,255,255,.78);box-shadow:0 22px 44px -30px rgba(94,61,44,.55)}
.cast-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.cast-ttl{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-size:15px;letter-spacing:.2em;font-weight:600}
.cast-ttl small{font-family:var(--caps);font-size:10px;letter-spacing:.3em;color:var(--gold);font-weight:400}
.cast-box.soiree .cast-ttl small{color:#5D6C98}
.cast-more{font-family:var(--serif);font-size:12px;letter-spacing:.14em;color:var(--gold-d);display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.cast-more::after{content:"";width:14px;height:1px;background:currentColor;opacity:.75;transition:width .35s}
.cast-box:hover .cast-more::after{width:22px}
.cast-faces{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;list-style:none;margin:0;padding:0}
.cast-box.soiree .cast-faces{grid-template-columns:repeat(3,1fr);max-width:62%}
.cast-faces li{text-align:center;min-width:0}
.cast-faces .ph{
  display:block;overflow:hidden;background:var(--cream);
  border-radius:50% 50% 3px 3px / 30% 30% 3px 3px;aspect-ratio:3/4;
}
.cast-faces .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.cast-faces .nm{display:block;font-family:var(--serif);font-size:11px;letter-spacing:.04em;line-height:1.45;margin-top:7px;color:var(--ink)}
.cast-faces .pt{display:block;font-size:9.5px;letter-spacing:.06em;color:var(--ink-3);line-height:1.4}
@media (max-width:1100px) and (min-width:861px){
  .cast-faces{grid-template-columns:repeat(4,1fr)}
  .cast-box.soiree .cast-faces{max-width:76%}
}
@media (max-width:860px){
  .hero.faces .hero-in{grid-template-columns:1fr}
  .hero-cast{text-align:left}
}
@media (max-width:600px){
  .cast-box{padding:16px 12px 18px}
  .cast-faces{grid-template-columns:repeat(4,1fr);gap:9px 7px}
  .cast-box.soiree .cast-faces{grid-template-columns:repeat(3,1fr);max-width:78%}
  .cast-faces .nm{font-size:11px}
  .cast-ttl{font-size:14px;letter-spacing:.14em}
  .cast-more{font-size:11.5px}
}

/* 写真がまだない人：名前の頭文字の札 */
.noph{
  display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  background:
    radial-gradient(90% 70% at 30% 20%,rgba(255,255,255,.95),rgba(255,255,255,0) 70%),
    linear-gradient(160deg,#F6E3DC 0%,#EBD3C0 100%);
  font-family:var(--serif);color:var(--gold-d);font-size:clamp(20px,3.4vw,42px);letter-spacing:0;
}
.noph b{font-weight:600}

/* ---------- 公演構成（昼の部／夜の部） ---------- */
.program{background:linear-gradient(180deg,#FDFAF7 0%,#F8EFE9 100%)}
.pg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,3.6vw,44px);align-items:stretch}
.pg-card{
  position:relative;background:rgba(255,255,255,.62);border:1px solid var(--line);
  padding:clamp(26px,3.4vw,40px) clamp(20px,3vw,36px);display:flex;flex-direction:column;
}
.pg-card::before{content:"";position:absolute;inset:5px;border:1px solid var(--line-2);pointer-events:none}
.pg-card.soiree{background:linear-gradient(180deg,rgba(236,234,244,.7),rgba(255,255,255,.62))}
.pg-mark{display:flex;align-items:center;gap:12px;margin:0 0 6px}
.pg-mark .ico{width:30px;height:30px}
.pg-name{font-family:var(--serif);font-weight:600;font-size:clamp(20px,3vw,25px);letter-spacing:.2em;margin:0}
.pg-en{font-family:var(--caps);font-size:10.5px;letter-spacing:.36em;color:var(--gold);margin:0 0 4px}
.pg-card.soiree .pg-en{color:#5D6C98}
.pg-meta{font-size:13px;color:var(--ink-2);margin:6px 0 22px;letter-spacing:.06em;line-height:1.9}
.tt{list-style:none;margin:0 0 26px;padding:0;border-top:1px solid var(--line)}
.tt > li{display:grid;grid-template-columns:86px 1fr;gap:4px 16px;padding:16px 2px;border-bottom:1px solid var(--line-2)}
.tt .tt-k{font-family:var(--serif);font-size:13px;letter-spacing:.14em;color:var(--gold-d);line-height:1.8}
.tt .tt-k small{display:block;font-family:var(--sans);font-size:11.5px;letter-spacing:.04em;color:var(--ink-3)}
.tt .tt-v{font-size:14px;line-height:1.95}
.tt .tt-v b{font-family:var(--serif);font-weight:600;font-size:15px;letter-spacing:.1em;display:block;margin-bottom:4px}
.tt .tt-v ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px}
.tt .tt-v li{font-size:13.5px;white-space:nowrap}
.tt .tt-v li span{font-size:11.5px;color:var(--ink-3);margin-left:4px}
.tt > li.brk .tt-v{color:var(--ink-3);font-size:13px}
.pg-note{font-size:12.5px;color:var(--ink-3);line-height:1.9;margin:0 0 22px}
.pg-card .btn{align-self:flex-start;margin-top:auto}
@media (max-width:760px){
  .pg-grid{grid-template-columns:1fr}
  .tt > li{grid-template-columns:72px 1fr;gap:4px 12px}
  .pg-card .btn{align-self:stretch;justify-content:center}
}

/* ---------- 出演者一覧（小さなカード） ---------- */
.cast-sec{background:var(--ivory)}
.cg-group + .cg-group{margin-top:clamp(48px,6vw,72px)}
.cg-head{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 clamp(22px,3vw,32px)}
.cg-head .ico{width:24px;height:24px}
.cg-head h3{font-family:var(--serif);font-weight:600;font-size:clamp(17px,2.6vw,20px);letter-spacing:.22em;margin:0}
.cg-head small{font-family:var(--caps);font-size:10px;letter-spacing:.3em;color:var(--gold)}
.cg{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(22px,3vw,34px) clamp(14px,2.4vw,28px);list-style:none;margin:0;padding:0}
.cg.n3{grid-template-columns:repeat(3,1fr);max-width:820px;margin-inline:auto}
.cg a{display:block;text-decoration:none;color:inherit;text-align:center}
.cg .ph{
  display:block;overflow:hidden;background:var(--cream);aspect-ratio:3/4;position:relative;
  border-radius:50% 50% 3px 3px / 26% 26% 3px 3px;box-shadow:0 20px 40px -28px rgba(94,61,44,.6);
}
.cg .ph::after{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.6);border-radius:50% 50% 2px 2px / 26% 26% 2px 2px;pointer-events:none}
.cg .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transition:transform 1.4s cubic-bezier(.2,.7,.3,1)}
.cg a:hover .ph img{transform:scale(1.04)}
.cg .pt{display:block;font-family:var(--caps);font-size:9.5px;letter-spacing:.3em;color:var(--gold);margin-top:14px;text-transform:uppercase}
.cg .nm{display:block;font-family:var(--serif);font-weight:600;font-size:clamp(15px,2vw,17.5px);letter-spacing:.14em;margin-top:4px;line-height:1.6}
.cg .rl{display:block;font-size:12px;color:var(--ink-3);letter-spacing:.04em;margin-top:3px;line-height:1.6}
.cg .go{display:inline-flex;align-items:center;gap:7px;font-family:var(--serif);font-size:12px;letter-spacing:.14em;color:var(--gold-d);margin-top:8px}
.cg .go::after{content:"";width:12px;height:1px;background:currentColor;opacity:.75;transition:width .35s}
.cg a:hover .go::after{width:20px}
.cg .noph{font-size:clamp(30px,4.6vw,46px)}
.cast-all{text-align:center;margin-top:clamp(40px,5vw,60px)}
@media (max-width:860px){.cg{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){
  .cg,.cg.n3{grid-template-columns:repeat(2,1fr);gap:28px 14px}
  .cg .nm{font-size:15px;letter-spacing:.08em}
  .cast-all .btn{width:100%;justify-content:center}
}

/* ---------- チケット（席種表） ---------- */
.tk-table{width:100%;max-width:760px;margin:0 auto;border-collapse:collapse;font-size:14.5px;background:rgba(255,255,255,.6)}
.tk-table th,.tk-table td{padding:16px 14px;border-bottom:1px solid var(--line-2);text-align:center;line-height:1.7}
.tk-table thead th{font-family:var(--serif);font-weight:600;font-size:13.5px;letter-spacing:.14em;border-bottom:1px solid var(--line);border-top:1px solid var(--line);white-space:nowrap}
.tk-table thead th .ico{width:18px;height:18px;margin-right:4px}
.tk-table tbody th{font-family:var(--serif);font-weight:600;letter-spacing:.14em;text-align:left;white-space:nowrap}
.tk-table tbody th small{display:block;font-family:var(--sans);font-weight:400;font-size:11.5px;letter-spacing:.04em;color:var(--ink-3)}
.tk-table td b{font-family:var(--lat);font-size:19px;font-weight:600;letter-spacing:.04em}
.tk-table td.span{background:rgba(246,227,220,.45)}
.tk-table td.span small{display:block;font-size:11.5px;color:var(--ink-2)}
.tk-plan{display:inline-block;font-family:var(--serif);font-size:12px;letter-spacing:.16em;color:var(--gold-d);border:1px solid var(--line);border-radius:999px;padding:3px 14px;margin:0 0 18px;background:rgba(255,255,255,.7)}
.tk-notes{max-width:760px;margin:24px auto 0;padding:0;list-style:none;text-align:left;display:grid;gap:9px}
.tk-notes li{font-size:13px;line-height:1.85;color:var(--ink-2);padding-left:18px;position:relative}
.tk-notes li::before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:6px;border:1px solid var(--gold);transform:rotate(45deg)}
@media (max-width:600px){
  .tk-table{font-size:13px}
  .tk-table th,.tk-table td{padding:13px 7px}
  .tk-table td b{font-size:16.5px}
  .tk-table thead th{font-size:12.5px;letter-spacing:.06em}
  .tk-table tbody th{letter-spacing:.06em}
}

/* ---------- 下層ページ共通 ---------- */
.sub-hero{
  position:relative;padding:calc(env(safe-area-inset-top,0px) + 128px) 0 clamp(54px,7vw,84px);text-align:center;overflow:hidden;
  background:
    radial-gradient(110% 70% at 12% 0%, rgba(212,206,229,.85) 0%, rgba(212,206,229,0) 58%),
    radial-gradient(90% 60% at 92% 20%, rgba(246,221,212,.95) 0%, rgba(246,221,212,0) 62%),
    linear-gradient(180deg,#ECE7F1 0%,#F7E6DE 60%,#FDFAF7 100%);
}
.sub-hero.soiree{
  background:
    radial-gradient(110% 70% at 12% 0%, rgba(176,184,214,.75) 0%, rgba(176,184,214,0) 58%),
    radial-gradient(90% 60% at 92% 20%, rgba(232,214,222,.9) 0%, rgba(232,214,222,0) 62%),
    linear-gradient(180deg,#DFE1EE 0%,#EFE3E6 60%,#FDFAF7 100%);
}
.sub-hero .ico{width:44px;height:44px;margin:0 auto 14px;display:block}
.sub-en{font-family:var(--caps);font-size:11px;letter-spacing:.46em;color:var(--gold);margin:0 0 12px}
.sub-hero.soiree .sub-en{color:#5D6C98}
.sub-ttl{font-family:var(--serif);font-weight:700;font-size:clamp(28px,5.4vw,46px);letter-spacing:.2em;margin:0;line-height:1.4}
.sub-lead{font-family:var(--serif);font-size:clamp(14px,2.2vw,16.5px);letter-spacing:.14em;color:var(--ink-2);margin:18px auto 0;max-width:34em;line-height:2.1}
.sub-meta{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:22px 0 0;font-size:13px;color:var(--ink-2);letter-spacing:.08em}
.sub-meta span{display:inline-flex;align-items:center;gap:8px}
.sub-meta span + span::before{content:"";width:1px;height:12px;background:var(--line)}
@media (max-width:600px){.sub-meta span + span::before{display:none}}
.crumb{font-size:12px;color:var(--ink-3);letter-spacing:.06em;margin:0 0 22px;line-height:1.8}
.crumb a{color:var(--gold-d);text-decoration:none;border-bottom:1px solid var(--line)}
.sub-hero .crumb{margin-bottom:26px}
.show-switch{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:clamp(40px,5vw,60px)}
@media (max-width:520px){.show-switch .btn{flex:1 1 100%;justify-content:center}}

/* 公演ページの出演者（大きいカード）：既存 .a-card を3列で使う */
.a-grid.n3{grid-template-columns:repeat(3,1fr)}
.a-card .a-role{display:block;font-size:12px;color:var(--ink-3);letter-spacing:.06em;margin-top:6px;line-height:1.6}
.a-card a.a-wrap{text-decoration:none;color:inherit;display:block}
.a-photo .noph{aspect-ratio:3/4;font-size:clamp(44px,6vw,64px)}
@media (max-width:960px){.a-grid.n3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.a-grid.n3{grid-template-columns:1fr}}
.part-h{display:flex;align-items:center;gap:14px;justify-content:center;margin:0 0 clamp(26px,3.4vw,40px)}
.part-h::before,.part-h::after{content:"";flex:0 1 80px;height:1px;background:var(--line)}
.part-h b{font-family:var(--serif);font-weight:600;font-size:clamp(16px,2.4vw,19px);letter-spacing:.2em}
.part-h small{font-size:12px;color:var(--ink-3);letter-spacing:.06em;margin-left:6px;font-weight:400}
.part-block + .part-block{margin-top:clamp(56px,7vw,88px)}
.brk-line{display:flex;align-items:center;justify-content:center;gap:14px;margin:clamp(48px,6vw,72px) 0;font-family:var(--serif);font-size:13px;letter-spacing:.24em;color:var(--ink-3)}
.brk-line::before,.brk-line::after{content:"";flex:0 1 120px;height:1px;background:repeating-linear-gradient(90deg,var(--line) 0 4px,transparent 4px 9px)}

/* ---------- 出演者の個別ページ ---------- */
.ap{padding:calc(env(safe-area-inset-top,0px) + 118px) 0 clamp(70px,9vw,120px);background:linear-gradient(180deg,#F7E6DE 0%,#FDFAF7 38%)}
.ap.soiree{background:linear-gradient(180deg,#E6E4F0 0%,#FDFAF7 38%)}
.ap-grid{display:grid;grid-template-columns:minmax(260px,400px) 1fr;gap:clamp(30px,5vw,72px);align-items:start}
.ap-photo{position:sticky;top:96px}
.ap-photo .a-photo img,.ap-photo .noph{aspect-ratio:3/4}
.ap-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.ap-part{display:block;font-family:var(--caps);font-size:11px;letter-spacing:.42em;color:var(--gold);text-transform:uppercase}
.ap-name{font-family:var(--serif);font-weight:700;font-size:clamp(30px,5.2vw,46px);letter-spacing:.16em;margin:10px 0 6px;line-height:1.4}
.ap-en{font-family:var(--lat);font-size:14px;letter-spacing:.3em;color:var(--ink-3);margin:0}
.ap-catch{font-family:var(--serif);font-size:clamp(16px,2.4vw,19px);line-height:2.05;letter-spacing:.12em;color:var(--gold-d);margin:28px 0 0}
.ap-desc{font-size:14.5px;line-height:2.15;color:var(--ink-2);margin:16px 0 0}
.ap-h{font-family:var(--caps);font-size:10.5px;letter-spacing:.38em;color:var(--gold);margin:40px 0 14px;display:flex;align-items:center;gap:12px}
.ap-h::after{content:"";flex:1;height:1px;background:var(--line-2)}
.ap .a-awards{margin:0;padding:0;border:0}
.ap .a-awards li{font-size:13.5px}
.ap-tbd{font-size:13px;color:var(--ink-3);margin:0;line-height:1.9}
.ap-stage{border:1px solid var(--line);background:rgba(255,255,255,.62);padding:20px 22px;position:relative}
.ap-stage::before{content:"";position:absolute;inset:4px;border:1px solid var(--line-2);pointer-events:none}
.ap-stage dl{margin:0;display:grid;grid-template-columns:72px 1fr;gap:8px 16px;font-size:14px;line-height:1.85}
.ap-stage dt{font-family:var(--serif);font-size:12.5px;letter-spacing:.14em;color:var(--gold-d)}
.ap-stage dd{margin:0}
.ap-stage dd a{color:var(--gold-d)}
.ap-links{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.ap-links a{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;border:1px solid var(--line-2);background:rgba(255,255,255,.55);padding:12px 14px;transition:border-color .3s,background .3s}
.ap-links a:hover{border-color:var(--gold);background:#fff}
.ap-links img{width:96px;aspect-ratio:16/9;object-fit:cover;flex:none}
.ap-links .lk-k{display:block;font-family:var(--caps);font-size:9.5px;letter-spacing:.3em;color:var(--gold)}
.ap-links .lk-t{display:block;font-family:var(--serif);font-size:14px;letter-spacing:.06em;line-height:1.7;margin-top:2px}
.ap .p-card{margin-top:4px;text-align:left}
.ap .p-title{margin-top:14px;font-size:15.5px}
.ap-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
@media (max-width:860px){
  .ap-grid{grid-template-columns:1fr}
  .ap-photo{position:static;max-width:340px;margin:0 auto;width:100%}
  .ap-head{text-align:center}
  .ap-tags{justify-content:center}
}
@media (max-width:520px){
  .ap-cta .btn{flex:1 1 100%;justify-content:center}
  .ap-stage{padding:18px 16px}
  .ap-stage dl{grid-template-columns:62px 1fr;gap:6px 12px;font-size:13.5px}
  .ap-links img{width:84px}
}
.others{background:linear-gradient(180deg,#FDFAF7 0%,#F7EEE8 100%);padding:clamp(56px,7vw,88px) 0}
.others .cg{grid-template-columns:repeat(9,1fr);gap:16px 10px}
.others .cg .nm{font-size:12.5px;letter-spacing:.04em}
.others .cg .pt{font-size:8.5px;letter-spacing:.2em;margin-top:9px}
.others .cg .noph{font-size:24px}
@media (max-width:960px){.others .cg{grid-template-columns:repeat(5,1fr)}}
@media (max-width:600px){.others .cg{grid-template-columns:repeat(3,1fr);gap:20px 10px}}
/* スマホでの最小文字（ヒーローの顔写真の下） */
.cast-faces .pt{font-size:11px}
@media (max-width:600px){
  .cast-faces .nm{font-size:12.5px;letter-spacing:0}
  .cast-faces .pt{font-size:11px;letter-spacing:0}
}

/* ---------- 10/8 見た目の調整 ---------- */
/* 顔写真ヒーロー：右列が広がった分、タイトルを1行に収める */
.hero.faces h1.hero-title{font-size:clamp(36px,4.7vw,60px);white-space:nowrap}
.hero.faces .hero-script{font-size:clamp(48px,5.6vw,80px)}
@media (max-width:860px){.hero.faces h1.hero-title{font-size:clamp(30px,8.6vw,52px)}}
/* 昼の部は4列（4＋3）、夜の部は3人を少し大きく */
.cast-faces,.cast-box.soiree .cast-faces{grid-template-columns:repeat(4,1fr)}
.cast-box.soiree .cast-faces{grid-template-columns:repeat(3,1fr);max-width:76%}
@media (max-width:600px){
  .cast-faces{grid-template-columns:repeat(4,1fr)}
  .cast-box.soiree .cast-faces{grid-template-columns:repeat(3,1fr);max-width:none}
}
.cast-faces .nm{word-break:keep-all}
/* 最後の行を中央に寄せる（グリッド→折り返しの横並び） */
.cg{display:flex;flex-wrap:wrap;justify-content:center}
.cg > li{flex:0 0 calc((100% - 3 * clamp(14px,2.4vw,28px)) / 4)}
.cg.n3{max-width:820px}
.cg.n3 > li{flex-basis:calc((100% - 2 * clamp(14px,2.4vw,28px)) / 3)}
@media (max-width:860px){.cg > li{flex-basis:calc((100% - 2 * clamp(14px,2.4vw,28px)) / 3)}}
@media (max-width:600px){.cg > li,.cg.n3 > li{flex-basis:calc((100% - 14px) / 2)}}
.others .cg > li{flex-basis:calc((100% - 8 * 10px) / 9)}
@media (max-width:960px){.others .cg > li{flex-basis:calc((100% - 4 * 10px) / 5)}}
@media (max-width:600px){.others .cg > li{flex-basis:calc((100% - 2 * 10px) / 3)}}
.a-grid.n3{display:flex;flex-wrap:wrap;justify-content:center}
.a-grid.n3 > .a-card{flex:0 0 calc((100% - 2 * clamp(30px,5vw,60px)) / 3)}
@media (max-width:960px){.a-grid.n3 > .a-card{flex-basis:calc((100% - clamp(30px,5vw,60px)) / 2)}}
@media (max-width:700px){.a-grid.n3 > .a-card{flex-basis:100%}}
.a-grid.n2{max-width:780px;margin-inline:auto}
/* インタビュー5本：PCは3列で、最後の行は中央に */
.iv-grid{display:flex;flex-wrap:wrap;justify-content:center}
.iv-grid > .iv-card{flex:0 0 calc((100% - 2 * clamp(26px,4vw,48px)) / 3)}
@media (max-width:960px){.iv-grid > .iv-card{flex-basis:calc((100% - clamp(26px,4vw,48px)) / 2)}}
@media (max-width:700px){.iv-grid > .iv-card{flex-basis:100%}}
.nw{white-space:nowrap}
.dl dd .cast-line{display:block}
.dl dd .cast-line + .cast-line{margin-top:6px}
.dl dd .cast-line b{font-family:var(--serif);font-weight:600;font-size:13px;letter-spacing:.12em;color:var(--gold-d);margin-right:8px}
@media (max-width:700px){.a-grid.n3 > .a-card,.a-grid.n2 > .a-card{max-width:340px;margin-inline:auto;width:100%}}
.hero.faces .hero-scroll{display:none}

/* =========================================================
   10/8 スマホ崩れの修正
   ========================================================= */
/* 区切り見出し（第1部／休憩）：文字は1行に、線は残りの幅で伸び縮み */
.part-h b,.part-h small{white-space:nowrap}
.part-h::before,.part-h::after{flex:1 1 40px;min-width:24px;max-width:120px}
.brk-line{white-space:nowrap}
.brk-line::before,.brk-line::after{flex:1 1 40px;min-width:24px;max-width:140px}
.nw{white-space:nowrap}

@media (max-width:700px){
  /* 公演ページの出演者：1人1画面 → 2列のコンパクトなカード */
  .a-grid.n3,.a-grid.n2{display:grid;grid-template-columns:repeat(2,1fr);gap:30px 14px;max-width:none}
  .a-grid.n3 > .a-card,.a-grid.n2 > .a-card{max-width:none;margin:0;flex:none;width:auto}
  .a-grid.n3 > .a-card:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - 7px);justify-self:center}
  .a-grid.n3 .a-photo::after,.a-grid.n2 .a-photo::after{inset:6px}
  .a-grid.n3 .a-plate,.a-grid.n2 .a-plate{width:92%;margin-top:-26px;padding:11px 6px 10px}
  .a-grid.n3 .a-plate::before,.a-grid.n2 .a-plate::before{inset:3px}
  .a-grid.n3 .a-part,.a-grid.n2 .a-part{font-size:9px;letter-spacing:.24em}
  .a-grid.n3 .a-name,.a-grid.n2 .a-name{font-size:16px;letter-spacing:.06em;margin:5px 0 2px;line-height:1.5}
  .a-grid.n3 .a-en,.a-grid.n2 .a-en{display:none}
  .a-grid.n3 .a-role,.a-grid.n2 .a-role{font-size:11px;letter-spacing:0;line-height:1.55;margin-top:3px}
  .a-grid.n3 .a-catch,.a-grid.n2 .a-catch{display:none}
  .a-grid.n3 .a-links,.a-grid.n2 .a-links{margin-top:10px;padding-top:10px}
  .a-grid.n3 .a-links a,.a-grid.n2 .a-links a{font-size:12px;letter-spacing:.06em}
  .a-grid.n3 .a-photo .noph,.a-grid.n2 .a-photo .noph{font-size:40px}
  .part-block + .part-block{margin-top:48px}
  .brk-line{margin:40px 0}

  /* 字間を詰めて、1〜2文字だけ次の行に落ちるのを防ぐ */
  .concept p{letter-spacing:.06em;line-height:2.4}
  .concept .lead{letter-spacing:.12em}
  .sec-lead,.sub-lead{letter-spacing:.06em}
  .iv-title{letter-spacing:.03em}
  .c-lede p{letter-spacing:.03em}
  .a-desc,.ap-desc{letter-spacing:.03em}
  .ap-catch{letter-spacing:.06em}
  .dl dd{letter-spacing:.03em}

  /* 長いボタンは折り返しても中央に */
  .btn{justify-content:center;text-align:center}
}
@media (max-width:860px){
  /* 筆記体の飾りを見出しの後ろへ（小見出しと重ならない位置） */
  .hero.faces .hero-script{top:1.15em;font-size:clamp(44px,13vw,72px)}
}
/* 出演者ページの「公演」行：役割は改行して読む */
.ap-stage dd .role{display:block;color:var(--ink-2);font-size:13px}
@media (max-width:700px){
  .a-grid.n3 .a-role .r,.a-grid.n2 .a-role .r{display:none}
  .ap .a-awards li{letter-spacing:0}
}
@media (max-width:860px){.hero.faces .hero-script{top:.7em}}

/* =========================================================
   10/8 40代以上でも読める視認性（文字サイズ・濃さ・押しやすさ）
   基準: スマホは本文18px・最小16px（英字の飾りラベルは13px）、
         文字色は背景に対して4.5:1以上、押せる所は高さ44px以上
   ========================================================= */
:root{
  --ink-2:#55453E;   /* 旧 #6B5850 */
  --ink-3:#66574F;   /* 旧 #95837A（3.6:1で不足していた） */
  --gold-t:#7A5226;  /* 文字に使う金。--gold(#B08050)は線・飾り専用 */
}
/* 金色の文字はすべて濃い金に */
.sec-no,.sec-en,.a-part,.p-part,.iv-who,.v-en,.cast-ttl small,.cg .pt,.ap-part,.ap-h,.pg-en,.lk-k,
.sub-en,.cg-head small,.show-tag,.show-tag small,.hero-eyebrow,.hero-sub,.hero-date .w,.a-catch,.ap-catch,
.dl dt,.dl dd .tbd,.cal-lead,.tk-plan,.tt .tt-k,.st-date,.foot-date,.cast-more,.cg .go,.iv-more,.a-links a,
.btn,.crumb a,.p-sub a,.dl dd .cast-line b,.concept .lead{color:var(--gold-t)}
.btn.solid{color:#fff;background:var(--gold-t);border-color:var(--gold-t)}
.btn.solid:hover{background:#5E3E1A;border-color:#5E3E1A}
.btn{border-color:var(--gold-t)}
.btn:hover{background:var(--gold-t);color:#fff}
.btn.corom-btn{color:#1F6B33;border-color:#2E8C46}
.pg-card.soiree .pg-en,.sub-hero.soiree .sub-en,.cast-box.soiree .cast-ttl small,.show-tag.soiree,.show-tag.soiree small{color:#3E4B78}
.sec-no{color:var(--gold-t);opacity:.75}
.hero-script{color:rgba(176,128,80,.12)}
.bar-brand span{color:var(--gold-t)}
.bar-nav a{color:var(--ink)}
.tt .tt-v li span,.cg .rl,.st-place,.p-sub,.iv-src,.cal-note,.pg-note,.ap-tbd,.copy{color:var(--ink-3)}

/* ---------- PC：小さすぎる文字だけ底上げ ---------- */
@media (min-width:701px){
  body{font-size:17px}
  .sec-en,.a-part,.cg .pt,.ap-part,.ap-h,.pg-en,.lk-k,.sub-en,.cg-head small,.v-en,.iv-who,.p-part,.cast-ttl small,.show-tag small{font-size:12.5px}
  .sec-lead,.sub-lead{font-size:18px}
  .dl dt{font-size:15px}.dl dd{font-size:17px}.dl dd small{font-size:15px}
  .a-desc,.iv-lead,.v-desc,.v-access li,.c-lede p,.tk-notes li,.ap-desc{font-size:16px}
  .a-awards li,.ap .a-awards li{font-size:15px}
  .a-role,.cg .rl,.pg-meta,.pg-note,.cal-note,.p-sub,.iv-src,.st-place,.foot-org,.foot-links a,.crumb,.ap-tbd,.ap-stage dd .role{font-size:15px}
  .tt .tt-k,.tt .tt-v li{font-size:15.5px}.tt .tt-v li span{font-size:13.5px}
  .tk-table{font-size:16px}.tk-table tbody th small,.tk-table td.span small{font-size:13.5px}
  .btn{font-size:15px}
  .cast-faces .nm{font-size:13px}.cast-faces .pt{font-size:12px}
  .cast-more{font-size:13.5px}
  .others .cg .nm{font-size:14px}
  .ap-stage dl{font-size:15.5px}.ap-stage dt{font-size:14px}
  .ap-links .lk-t{font-size:15.5px}
}

/* ---------- スマホ ---------- */
@media (max-width:700px){
  body{font-size:18px;line-height:1.95;letter-spacing:.02em}
  /* ヘッダー・メニュー */
  .bar-brand span{font-size:12px;letter-spacing:.2em}
  .bar-brand b{font-size:15px;letter-spacing:.1em}
  .bar-nav a{font-size:20px;letter-spacing:.14em;padding:8px 0}
  .burger{width:48px;height:48px}

  /* ヒーロー */
  .hero-eyebrow{font-size:15px;letter-spacing:.16em}
  .hero-sub{font-size:19px;letter-spacing:.2em}
  .hero-date .y{font-size:18px}.hero-date .w{font-size:14px;letter-spacing:.16em}
  .hero-place{font-size:19px;letter-spacing:.08em}
  .hero-place small{font-size:16px;letter-spacing:.02em}
  .hero-note{font-size:16.5px;line-height:1.9;color:var(--ink-2)}
  /* 顔写真は3列にして大きく */
  .cast-faces,.cast-box.soiree .cast-faces{grid-template-columns:repeat(3,1fr);gap:14px 10px;max-width:none}
  .cast-ttl{font-size:17px}.cast-ttl small{font-size:12px;letter-spacing:.2em}
  .cast-more{font-size:15px;letter-spacing:.04em}
  .cast-head{flex-wrap:wrap;row-gap:6px}
  .cast-faces .nm{font-size:15px;letter-spacing:0;margin-top:8px}
  .cast-faces .pt{font-size:14px;letter-spacing:0;color:var(--ink-2)}

  /* 見出し */
  .sec-no{font-size:14px}
  .sec-en{font-size:13px;letter-spacing:.3em}
  .sec-jp{font-size:27px;letter-spacing:.14em}
  .sec-lead,.sub-lead{font-size:17.5px;line-height:2;color:var(--ink-2)}

  /* コンセプト */
  .concept p{font-size:18px;line-height:2.2;letter-spacing:.04em}
  .concept .lead{font-size:21px;letter-spacing:.08em}

  /* 公演の構成 */
  .pg-name{font-size:23px;letter-spacing:.1em}
  .pg-en{font-size:12.5px}
  .pg-meta{font-size:16px;color:var(--ink-2)}
  .tt > li{grid-template-columns:78px 1fr}
  .tt .tt-k{font-size:16px;letter-spacing:.06em}
  .tt .tt-k small{font-size:15px}
  .tt .tt-v b{font-size:18px}
  .tt .tt-v ul{flex-direction:column;gap:6px}
  .tt .tt-v li{font-size:17px}
  .tt .tt-v li span{font-size:15px;margin-left:8px}
  .tt > li.brk .tt-v{font-size:16px}
  .pg-note{font-size:16px}

  /* 出演者一覧 */
  .cg .pt{font-size:12.5px;letter-spacing:.18em}
  .cg .nm{font-size:19px;letter-spacing:.06em}
  .cg .rl{font-size:16px}
  .cg .go{font-size:15px}
  .cg-head h3{font-size:20px;letter-spacing:.12em}
  .cg-head small{font-size:12px}

  /* 開催概要 */
  .dl dt{font-size:15.5px;letter-spacing:.12em}
  .dl dd{font-size:17.5px;line-height:1.9}
  .dl dd small{font-size:16px;color:var(--ink-2)}
  .dl dd .tbd{font-size:15.5px;padding:4px 18px}
  .dl dd .cast-line b{font-size:15.5px}
  .cal-lead{font-size:17px;letter-spacing:.12em}
  .cal-note{font-size:16px;text-align:left}

  /* チケット */
  .tk-plan{font-size:15px}
  .tk-table{font-size:16px}
  .tk-table thead th{font-size:15.5px;letter-spacing:.02em}
  .tk-table tbody th{font-size:17px}
  .tk-table tbody th small{font-size:14px}
  .tk-table td b{font-size:20px}
  .tk-table td.span small{font-size:14.5px}
  .tk-table th,.tk-table td{padding:15px 6px}
  .tk-notes li{font-size:16.5px;line-height:1.85;color:var(--ink-2)}

  /* 演奏・インタビュー */
  .p-title{font-size:18.5px;letter-spacing:.06em}
  .p-who{font-size:17px}
  .p-part{font-size:12.5px}
  .p-sub{font-size:15.5px}
  .iv-who{font-size:12.5px}
  .iv-title{font-size:18.5px;line-height:1.75}
  .iv-lead{font-size:16.5px;line-height:1.9;color:var(--ink-2)}
  .iv-more{font-size:16px}
  .iv-src{font-size:15px}

  /* コロムとは */
  .c-big{font-size:23px}
  .c-lede p{font-size:17.5px;line-height:2;color:var(--ink-2)}
  .st-date{font-size:15.5px}
  .st-name{font-size:17.5px}
  .st-place{font-size:15.5px}

  /* 会場 */
  .v-name{font-size:26px}
  .v-en{font-size:12.5px}
  .v-addr{font-size:17.5px}
  .v-desc{font-size:16.5px;color:var(--ink-2)}
  .v-access li{font-size:16.5px;color:var(--ink-2)}

  /* ボタン：大きく、押しやすく */
  .btn{font-size:16.5px;letter-spacing:.08em;min-height:54px;padding:14px 20px}
  .cal-btn{font-size:16.5px}

  /* フッター */
  .foot-title{font-size:17px;letter-spacing:.1em}
  .foot-date{font-size:12.5px;letter-spacing:.14em}
  .foot-org{font-size:15.5px;letter-spacing:0;line-height:1.8}
  .foot-links{gap:4px 22px}
  .foot-links a{font-size:16.5px;display:inline-block;padding:10px 2px}
  .copy{font-size:11.5px}

  /* 下層ページ */
  .crumb{font-size:15px}
  .crumb a{display:inline-block;padding:6px 0}
  .sub-en{font-size:13px}
  .sub-ttl{font-size:34px}
  .sub-meta{font-size:16px;color:var(--ink-2)}
  .part-h b{font-size:20px;letter-spacing:.12em}
  .part-h small{font-size:15.5px}
  .brk-line{font-size:16px}
  .show-tag{font-size:15px;padding:6px 16px 6px 12px}
  .show-tag small{font-size:12px}

  /* 公演ページの出演者カード（2列） */
  .a-grid.n3 .a-part,.a-grid.n2 .a-part{font-size:11.5px;letter-spacing:.16em}
  .a-grid.n3 .a-name,.a-grid.n2 .a-name{font-size:18.5px;letter-spacing:.04em}
  .a-grid.n3 .a-role,.a-grid.n2 .a-role{font-size:15.5px;color:var(--ink-2)}
  .a-grid.n3 .a-links a,.a-grid.n2 .a-links a{font-size:15px;letter-spacing:.02em;padding:8px 0 6px}
  .a-grid.n3 .a-plate,.a-grid.n2 .a-plate{width:96%;padding:12px 4px 11px}

  /* 出演者の個別ページ */
  .ap-part{font-size:13px}
  .ap-name{font-size:34px}
  .ap-en{font-size:14.5px}
  .ap-catch{font-size:19.5px;line-height:1.9}
  .ap-desc{font-size:17.5px;line-height:2;color:var(--ink-2)}
  .ap-h{font-size:13px;letter-spacing:.3em}
  .ap .a-awards li{font-size:16.5px;line-height:1.75;color:var(--ink-2)}
  .ap-tbd{font-size:16.5px}
  .ap-stage dl{grid-template-columns:64px 1fr;font-size:16.5px}
  .ap-stage dt{font-size:15.5px;letter-spacing:.06em}
  .ap-stage dd .role{font-size:15.5px}
  .ap-links .lk-k{font-size:12px}
  .ap-links .lk-t{font-size:16.5px;line-height:1.7}
  .ap-links a{min-height:60px}
  .others .cg > li{flex-basis:calc((100% - 2 * 10px) / 3)}
  .others .cg .nm{font-size:15.5px;letter-spacing:0}
  .others .cg .pt{font-size:11px;letter-spacing:.12em}
}
/* 検査で拾った残り（和文16px未満・押せる所44px未満・薄い金） */
.ap-links .lk-k{color:var(--gold-t)}
@media (max-width:700px){
  .bar-brand{min-height:44px}
  .bar-brand b{font-size:16px}
  .hero-eyebrow,.hero-date .w,.cast-more,.dl dt,.dl dd .tbd,.dl dd .cast-line b,.tk-plan,.tk-table thead th,
  .tk-table tbody th small,.tk-table td.span small,.tt .tt-k small,.tt .tt-v li span,.p-sub,.p-sub a,.iv-src,
  .st-place,.foot-org,.crumb,.show-tag,.ap-stage dt,.ap-stage dd .role,.part-h small,
  .a-grid.n3 .a-role,.a-grid.n2 .a-role,.p-part,.iv-who,.cg .rl{font-size:16px}
  .p-part,.iv-who{letter-spacing:.06em}
  .ap .p-title{font-size:18px}
  .ap-links .lk-k{font-size:13px;letter-spacing:.14em}
  /* 顔写真の名前：16pxで「ピアニストユリ」が1行に収まるよう箱を少し広げる */
  .hero-cast{margin-inline:-8px}
  .cast-box{padding:14px 10px 16px}
  .cast-faces,.cast-box.soiree .cast-faces{gap:14px 8px}
  .cast-faces .nm{font-size:16px;letter-spacing:-.03em}
  .cast-faces .pt{font-size:16px;letter-spacing:-.03em}
  .others .cg .nm{font-size:16px}
  /* 英字の飾りラベルは13px前後に */
  .cast-ttl small,.show-tag small,.cg-head small{font-size:12.5px}
  .a-grid.n3 .a-part,.a-grid.n2 .a-part,.others .cg .pt{font-size:12.5px;letter-spacing:.12em}
  .copy{font-size:12.5px;letter-spacing:.16em}
  /* 押せる所は44px以上 */
  .crumb a{padding:10px 0}
  .show-tag{padding:10px 18px 10px 14px}
}
@media (max-width:700px){
  .bar-brand span{font-size:12.5px}
  .a-grid.n3 .a-links a,.a-grid.n2 .a-links a{font-size:16px}
}
/* PC：和文は15px以上、英字の飾りは12px以上 */
@media (min-width:701px){
  .bar-brand span{font-size:12px}
  .bar-brand b{font-size:15px}
  .bar-nav a{font-size:15px}
  .hero-eyebrow,.hero-date .w{font-size:15px}
  .hero-place small,.hero-note{font-size:15.5px}
  .hero-note{color:var(--ink-2)}
  .cast-more{font-size:15px}
  .cast-faces .nm{font-size:15px;letter-spacing:0}
  .cast-faces .pt{font-size:14px;letter-spacing:0}
  .cast-ttl{font-size:16px}
  .tt .tt-k small,.tt .tt-v li span{font-size:14.5px}
  .tt > li.brk .tt-v{font-size:15px}
  .dl dd .tbd,.dl dd .cast-line b{font-size:15px}
  .tk-plan,.tk-table thead th,.tk-table tbody th small,.tk-table td.span small{font-size:15px}
  .p-part,.iv-who{font-size:14px;letter-spacing:.1em}
  .iv-more{font-size:15px}
  .foot-date{font-size:12.5px}
  .copy{font-size:12px}
  .a-card .a-role{font-size:15px;color:var(--ink-2)}
  .a-card .a-en{font-size:14px}
  .a-card .a-part{font-size:12px}
  .a-card .a-catch{font-size:16px}
  .a-card .a-links a{font-size:15px}
  .sub-meta,.sub-meta span{font-size:15.5px}
  .brk-line{font-size:15.5px}
  .part-h small{font-size:15px}
  .show-tag{font-size:15px;padding:8px 16px 8px 12px}
  .show-tag small{font-size:12px}
  .ap-links .lk-k{font-size:12px}
  .others .cg .pt{font-size:11px;letter-spacing:.12em}
  .others .cg .nm{font-size:15px}
  .others .cg{gap:20px 12px}
  .others .cg > li{flex-basis:calc((100% - 4 * 12px) / 5)}
  .cg .rl{font-size:15px}
  .cg .go{font-size:15px}
  .crumb{font-size:15px}
  .crumb a{display:inline-block;padding:10px 0}
  .bar-nav a{padding:12px 0}
  .bar-brand{min-height:44px}
  .foot-links a{display:inline-block;padding:10px 2px}
}
@media (min-width:701px){
  .cast-faces .pt,.tt .tt-k small,.tt .tt-v li span,.cal-lead,.p-who,.p-who a,.p-part,.iv-who,.v-addr,.a-card .a-en,.ap-stage dt{font-size:15px}
  .v-addr{font-size:16px}
  .a-card .a-links a{padding:10px 0 6px}
  .show-tag{padding:11px 18px 11px 14px}
}
.ap-grid > *{min-width:0}.ap-links a > span{min-width:0}.ap-links .lk-t{overflow-wrap:anywhere}
.ap-links picture{flex:none;width:96px}
.ap-links picture img{width:100%}
@media (max-width:700px){
  .ap-links picture{width:84px}
  .cast-faces,.cast-box.soiree .cast-faces{display:flex;flex-wrap:wrap;justify-content:center}
  .cast-faces > li{flex:0 0 calc((100% - 16px) / 3)}
  .a-grid.n3 .a-links a::after,.a-grid.n2 .a-links a::after{display:none}
}

/* ---------- よくあるご質問（10/12 AI検索対策で追加） ---------- */
.faq{background:linear-gradient(180deg,#FDFAF7 0%,#F8EFE9 100%)}
.faq-list{max-width:820px;margin:0 auto;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line-2)}
.faq-item summary{
  list-style:none;cursor:pointer;position:relative;
  padding:20px 44px 20px 4px;min-height:56px;
  font-family:var(--serif);font-weight:600;font-size:17px;letter-spacing:.06em;line-height:1.7;color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"Q.";font-family:var(--lat);color:var(--gold-t);margin-right:10px}
.faq-item summary::after{
  content:"";position:absolute;right:12px;top:50%;width:11px;height:11px;margin-top:-8px;
  border-right:1.5px solid var(--gold-t);border-bottom:1.5px solid var(--gold-t);transform:rotate(45deg);transition:transform .3s;
}
.faq-item[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq-item p{margin:0;padding:0 8px 24px 4px;font-size:16px;line-height:2;color:var(--ink-2)}
@media (max-width:700px){
  .faq-item summary{font-size:18px;letter-spacing:.02em;padding-right:40px}
  .faq-item p{font-size:17px;line-height:1.95}
}
@media (min-width:701px){.others .cg .pt{font-size:12px}}
/* 公演構成表の「ソロ」「伴奏」の札（10/12） */
.tt .tt-v li{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 2px}
.tt-tag{font-style:normal;font-family:var(--serif);font-size:13px;letter-spacing:.06em;color:var(--gold-t);
  border:1px solid var(--line);border-radius:3px;padding:0 7px;margin-right:9px;line-height:1.7;background:rgba(255,255,255,.7)}
@media (max-width:700px){.tt-tag{font-size:15px}}
@media (min-width:701px){.tt-tag{font-size:14px}}

/* ---------- 10/12 カード表記：ジャンル（和文）／アーティスト名／ふりがな ---------- */
.a-part,.cg .pt,.ap-part,.others .cg .pt{
  font-family:var(--serif);text-transform:none;font-weight:600;color:var(--gold-t);
}
.a-card .a-part{font-size:14px;letter-spacing:.12em}
.a-kana,.ap-kana{margin:2px 0 0;font-family:var(--sans);color:var(--ink-3);letter-spacing:.12em}
.a-kana{font-size:13.5px}
.ap-kana{font-size:16px;margin-top:6px}
.cg .pt{font-size:14px;letter-spacing:.1em;margin-top:14px}
.cg .rl{letter-spacing:.1em}
.ap-part{font-size:16px;letter-spacing:.14em}
.others .cg .pt{font-size:13px;letter-spacing:.04em}
@media (min-width:701px){
  .a-card .a-part,.cg .pt,.others .cg .pt{font-size:15px}
  .a-kana{font-size:15px}
}
@media (max-width:700px){
  .a-grid.n3 .a-part,.a-grid.n2 .a-part{font-size:16px;letter-spacing:.02em}
  .a-kana{font-size:16px;letter-spacing:.02em}
  .cg .pt{font-size:16px;letter-spacing:.02em}
  .cg .rl{font-size:16px;letter-spacing:.02em}
  .ap-part{font-size:17px}
  .others .cg .pt{font-size:16px;letter-spacing:0}
}
/* 個別ページの追加情報（10/12） */
.ap-bio{font-size:16px;line-height:2.05;color:var(--ink-2);margin:12px 0 0}
.ap-ayumi{font-size:16px;line-height:1.95;color:var(--ink-2);margin:0 0 16px}
.ap-mp{width:100%;justify-content:center}
.ap-h{font-family:var(--serif);font-weight:600;letter-spacing:.14em;font-size:15px}
@media (max-width:700px){.ap-bio,.ap-ayumi{font-size:17px}.ap-h{font-size:16px;letter-spacing:.1em}}
@media (min-width:701px){.ap-mp{width:auto}}
/* 10/12 検査対応：和文になったラベルの大きさと、構成表の名前リンクの押しやすさ */
.tt .tt-v li a{display:inline-block;padding:8px 0;line-height:1.6}
.tt .tt-v ul{row-gap:0}
.ap-links .lk-k{letter-spacing:.06em;text-transform:none;font-family:var(--serif);font-weight:600}
@media (min-width:701px){.ap-links .lk-k,.tt-tag{font-size:15px}}
@media (max-width:700px){.ap-links .lk-k,.tt-tag{font-size:16px}}
.tt .tt-v li a{padding:10px 0;min-height:44px}
.a-kana:empty,.cg .rl:empty{display:none}
