/* ============================================================
   LIVE / EVENT 特集（トップ・ヒーロー直下）
   コンセプト：小さなカフェに、いろんな世界が集まってくる。
   ライブハウスの壁に貼られたポスターを、現代のWebに組み直す。
   ・3つの世界観（festival / theater / okinawa）は色・形・動きを別にし、
     「大きさ・傾き・重なり・余白」の共通ルールでひとつの壁にまとめる
   ・サイズはコンテナ幅(cqw)基準：主役（大枠）でも脇役（小枠）でも崩れない
   ・動きは「登場」「ゆっくりした光/波」「タップへの反応」のみ。点滅なし・reduced-motion尊重
   ============================================================ */
.lf{
  --lf-ink:#f6ecde; --lf-muted:#c9b9b2; --lf-gold:#d9b86a;
  position:relative; isolation:isolate; overflow:hidden; color:var(--lf-ink);
  background:#170f1b; padding:clamp(54px,9vw,110px) 0 0;
  font-family:var(--sans-jp,'Noto Sans JP',sans-serif);
}
.lf *{box-sizing:border-box}
.lf img{display:block;max-width:100%;height:auto}
.lf-wall{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(ellipse 60% 40% at 12% 8%,rgba(255,90,85,.20),transparent 70%),
    radial-gradient(ellipse 55% 45% at 90% 30%,rgba(120,60,200,.24),transparent 70%),
    radial-gradient(ellipse 60% 40% at 20% 92%,rgba(20,160,224,.16),transparent 70%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.022) 0 1px,transparent 1px 38px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 76px),
    #170f1b;}
.lf-inner{max-width:1240px;margin:0 auto;padding:0 clamp(12px,3vw,32px) clamp(30px,5vw,60px)}

/* ---------- 見出し ---------- */
.lf-head{margin:0 0 clamp(26px,5vw,52px);padding:0 4px}
.lf-head__en{margin:0;font:800 clamp(3.1rem,15.5vw,8.6rem)/.92 var(--sans-en,'Montserrat',sans-serif);letter-spacing:-.045em;
  color:transparent;-webkit-text-stroke:1.5px var(--lf-ink);text-transform:uppercase;white-space:nowrap}
.lf-head__en span{display:inline-block;margin:0 .06em;color:#ff5a55;-webkit-text-stroke:0;transform:translateY(-.04em) rotate(8deg);font-weight:600}
.lf-head__copy{margin:clamp(14px,3vw,24px) 0 10px;font:400 clamp(1.3rem,5.6vw,2.2rem)/1.55 var(--serif-jp,serif);letter-spacing:.04em}
.lf-head__sub{margin:0;font-size:clamp(.82rem,3.4vw,.98rem);line-height:2;color:var(--lf-muted);letter-spacing:.03em}
.lf-chips{display:flex;flex-wrap:wrap;gap:8px;margin:clamp(18px,4vw,28px) 0 0}
.lf-chip{display:inline-flex;align-items:baseline;gap:8px;min-height:44px;padding:8px 16px;border-radius:99px;text-decoration:none;
  font-size:.8rem;font-weight:700;letter-spacing:.04em;transition:transform .2s;color:#1b1218}
.lf-chip b{font:800 1.12rem/1 var(--sans-en,'Montserrat',sans-serif);letter-spacing:-.02em}
.lf-chip:hover,.lf-chip:focus-visible{transform:translateY(-2px) rotate(-2deg)}
.lf-chip:focus-visible{outline:3px solid #fff;outline-offset:2px}
.lf-chip--festival{background:#ff6b63}
.lf-chip--theater{background:#c8a6ff}
.lf-chip--okinawa{background:#7fd6ff}
.lf-chip--festival:nth-child(odd){transform:rotate(-1.5deg)}
.lf-chip:nth-child(even){transform:rotate(1.4deg)}
.lf-empty{margin:0 0 30px;padding:28px;border:1px dashed rgba(255,255,255,.3);border-radius:14px;color:var(--lf-muted);text-align:center;line-height:1.9}

/* ---------- タイル配置（スマホは縦。幅・位置・傾きに変化をつける） ---------- */
.lf-tiles{display:flex;flex-direction:column;gap:clamp(34px,8vw,64px)}
.lf-tile{position:relative;container-type:inline-size;isolation:isolate;border-radius:clamp(14px,3.4cqw,26px)}
.lf-tile--festival{width:calc(100% + 8px);margin-left:-4px}
.lf-tile--theater{width:92%;margin-left:auto}
.lf-tile--okinawa{width:94%;margin-right:auto}
@media (min-width:640px){
  .lf-tiles{align-items:center}
  .lf-tile{width:100%;max-width:640px;margin-left:0;margin-right:0}
}
@media (min-width:960px){
  .lf-tiles{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(22px,3vw,40px);align-items:start}
  .lf-tile{max-width:none;width:auto}
  .lf-tile--lead{grid-column:1 / span 7;grid-row:1 / span 2}
  .lf-tile:not(.lf-tile--lead){grid-column:8 / span 5}
  .lf-tile:nth-child(2){margin-top:clamp(0px,1vw,10px);transform:rotate(1.1deg)}
  .lf-tile:nth-child(3){transform:rotate(-1.2deg);margin-left:-3%;width:106%}
  .lf-tile:nth-child(n+4){grid-column:span 6}
  .lf-tile--lead{transform:rotate(-.5deg)}
}
.lf-count{position:absolute;z-index:9;top:10px;right:12px;padding:5px 12px 4px;border-radius:99px;background:#fff;color:#1b1218;
  font:800 .74rem/1.2 var(--sans-en,'Montserrat',sans-serif),var(--sans-jp,sans-serif);letter-spacing:.06em;box-shadow:0 4px 10px rgba(0,0,0,.35);transform:rotate(-4deg)}

/* ---------- 共通：日付・ボタン・イベント情報 ---------- */
.lf-count--flow{position:static;display:inline-block;margin:0 0 10px;transform:rotate(-2deg);background:#4d7350;color:#fff;box-shadow:none}
.lf-oki__body .lf-count--flow{background:#14a0e0}
.lf-eyebrow{margin:0 0 10px;font:600 .66rem/1.5 var(--sans-en,'Montserrat',sans-serif);letter-spacing:.18em}
.lf-date{margin:0;display:flex;align-items:baseline;gap:.5em;line-height:1}
.lf-date__md{font:800 clamp(2.6rem,18cqw,5.2rem)/.9 var(--sans-en,'Montserrat',sans-serif);letter-spacing:-.06em}
.lf-date__sub{font:700 clamp(.7rem,3.2cqw,.9rem)/1 var(--sans-en,'Montserrat',sans-serif);letter-spacing:.12em}
.lf-facts{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}
.lf-facts li{padding:6px 12px;border-radius:99px;font-size:max(.78rem,3.3cqw);font-weight:700;line-height:1.4;letter-spacing:.02em}
.lf-actions{margin:0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.lf-more,.lf-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:46px;padding:10px 20px;border-radius:99px;border:0;cursor:pointer;
  font:700 max(.86rem,3.5cqw)/1 var(--sans-jp,sans-serif);letter-spacing:.03em;text-decoration:none;transition:transform .2s,background .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}
.lf-more:hover,.lf-ghost:hover{transform:translateY(-2px) rotate(-1.2deg)}
.lf-more:active,.lf-ghost:active{transform:scale(.96)}
.lf-more:focus-visible,.lf-ghost:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px #1b1218}
.lf-more span{transition:transform .2s}
.lf-more:hover span{transform:translateX(4px)}

/* ---------- 登場の動き（JS有効かつ reduced-motion でない時のみ） ---------- */
.lf-live .lf-pop{opacity:0;transform:translateY(22px) scale(.94) rotate(var(--r0,-3deg));
  transition:opacity .55s ease calc(var(--i,0)*.07s),transform .7s cubic-bezier(.2,1.25,.4,1) calc(var(--i,0)*.07s)}
.lf-live .is-in .lf-pop{opacity:1;transform:none}

/* ============================================================
   FESTIVAL ─ cafe nora 15周年（明るい・にぎやか・感謝）
   ============================================================ */
.lf-tile--festival{background:linear-gradient(180deg,#f9f1de,#f3e8d0);color:#2a1418;overflow:hidden;box-shadow:0 22px 40px -18px rgba(0,0,0,.65),0 0 0 3px #6f8f62 inset}
.lf-fes__confetti{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.lf-fes__confetti i{position:absolute;width:11px;height:11px;border-radius:50%;background:#ff5a55;opacity:.5;animation:lfDrift 9s ease-in-out infinite alternate}
.lf-fes__confetti i:nth-child(2){left:90%;top:30%;background:#2e9c6a;width:8px;height:8px;animation-duration:11s}
.lf-fes__confetti i:nth-child(3){left:6%;top:48%;background:#f2b134;animation-duration:8s}
.lf-fes__confetti i:nth-child(4){left:84%;top:58%;background:#26a7e0;width:9px;height:9px;animation-duration:12s}
.lf-fes__confetti i:nth-child(5){left:46%;top:36%;background:#e5007f;width:7px;height:7px;animation-duration:10s}
.lf-fes__confetti i:nth-child(6){left:20%;top:70%;background:#2e9c6a;width:10px;height:10px;animation-duration:13s}
.lf-fes__confetti i:nth-child(7){left:70%;top:80%;background:#f2b134;width:8px;height:8px;animation-duration:9s}
.lf-fes__confetti i:nth-child(8){left:56%;top:16%;background:#ff5a55;width:6px;height:6px;animation-duration:14s}
.lf-fes__confetti i:nth-child(1){left:12%;top:26%}
@keyframes lfDrift{from{transform:translate(0,0)}to{transform:translate(10px,-16px)}}
.lf-fes__banner{position:relative;z-index:1;margin:0 -2cqw 0;transform:rotate(-1.6deg);transform-origin:50% 100%}
.lf-fes__banner img{width:100%}
.lf-live .lf-fes__banner.lf-pop{--r0:2deg}
.lf-fes__photos{position:relative;z-index:2;container-type:inline-size;aspect-ratio:100/112;margin:-6cqw 0 0}
.lf-pol{position:absolute;margin:0;background:#fff;padding:1.8cqw;box-shadow:0 1.4cqw 3cqw rgba(70,40,20,.32);transition:transform .25s}
.lf-pol::before{content:"";position:absolute;left:50%;top:-2.2cqw;width:16cqw;height:4.6cqw;margin-left:-8cqw;background:rgba(196,160,112,.62);transform:rotate(-3deg);box-shadow:0 .3cqw .8cqw rgba(0,0,0,.12)}
.lf-pol img{width:100%;height:100%;object-fit:cover}
.lf-pol--a{left:2%;top:1%;width:62%;transform:rotate(-3.2deg);z-index:2}
.lf-pol--a img{aspect-ratio:16/10}
.lf-pol--x{right:3%;top:17%;width:37%;transform:rotate(4deg);z-index:3}
.lf-pol--x img{aspect-ratio:3/4}
.lf-pol--k{left:2%;top:35%;width:58%;transform:rotate(2.2deg);z-index:4}
.lf-pol--k img{aspect-ratio:16/9}
.lf-pol--b{right:3%;top:57%;width:40%;transform:rotate(3.4deg);z-index:3}
.lf-pol--b img{aspect-ratio:4/3}
.lf-pol--b::before,.lf-pol--k::before{display:none}
.lf-pol--i{left:5%;top:61%;width:54%;transform:rotate(-3.4deg);z-index:5}
.lf-pol--i img{aspect-ratio:16/9}
.lf-pol:hover{transform:rotate(0deg) scale(1.04);z-index:7}
.lf-live .lf-pol--a.lf-pop{--r0:-9deg}.lf-live .lf-pol--x.lf-pop{--r0:10deg}.lf-live .lf-pol--k.lf-pop{--r0:-7deg}.lf-live .lf-pol--b.lf-pop{--r0:9deg}.lf-live .lf-pol--i.lf-pop{--r0:-14deg}
.lf-live .is-in .lf-pol--a{transform:rotate(-3.2deg)}
.lf-live .is-in .lf-pol--x{transform:rotate(4deg)}
.lf-live .is-in .lf-pol--k{transform:rotate(2.2deg)}
.lf-live .is-in .lf-pol--b{transform:rotate(3.4deg)}
.lf-live .is-in .lf-pol--i{transform:rotate(-3.4deg)}
.lf-date--fes{position:absolute;z-index:5;right:3%;top:-2%;width:30cqw;height:30cqw;border-radius:50%;background:#4d7350;color:#fff8e6;flex-direction:column;
  align-items:center;justify-content:center;gap:1.6cqw;transform:rotate(8deg);box-shadow:0 1.2cqw 2.4cqw rgba(30,50,30,.4),0 0 0 1cqw #f9f1de,0 0 0 1.5cqw #4d7350}
.lf-date--fes .lf-date__md{font-size:11.5cqw;letter-spacing:-.07em;line-height:.85}
.lf-date--fes .lf-date__sub{font-size:3.1cqw}
.lf-live .is-in .lf-date--fes{animation:lfBob 4.2s ease-in-out 1s infinite alternate}
@keyframes lfBob{from{transform:rotate(8deg)}to{transform:rotate(3deg) translateY(-1.2cqw)}}
.lf-fes__text{position:relative;z-index:2;padding:4cqw 6cqw 3cqw}
.lf-fes__text .lf-eyebrow{color:#4d7350}
.lf-fes__copy{margin:0 0 8px;font:400 clamp(1.2rem,6.6cqw,2.5rem)/1.45 var(--serif-jp,serif);letter-spacing:.02em;color:#2a1418}
.lf-fes__thanks{margin:0 0 14px;font:600 max(.95rem,4.2cqw)/1.6 var(--serif-jp,serif);color:#c3363f;letter-spacing:.04em}
.lf-fes__thanks::before{content:"♥ ";color:#e8353d}
.lf-fes__text .lf-facts li{background:#fff;border:1.5px solid #2a1418;color:#2a1418}
.lf-fes__text .lf-facts li:first-child{background:#ffd34f}
/* 参加料金は「詳しく見る」を開かなくても全区分を確認可能に */
.lf-fes__fees{margin:0 0 14px;padding:12px 13px 10px;background:rgba(255,255,255,.83);border:1px solid rgba(74,52,41,.3);border-radius:11px;color:#2a1418}
.lf-fes__fees-title{margin:0 0 6px;font-size:max(.78rem,3.25cqw);font-weight:800;letter-spacing:.035em}
.lf-fes__fees-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin:0;padding:0;list-style:none}
.lf-fes__fees-grid li{display:flex;align-items:baseline;justify-content:space-between;gap:3px;white-space:nowrap;font-size:max(.74rem,3.15cqw);line-height:1.65}
.lf-fes__fees-grid li strong{font-size:max(.82rem,3.5cqw);font-weight:800;letter-spacing:-.025em}
.lf-fes__fees-note{margin:8px 0 0;color:#573d34;font-size:max(.69rem,2.95cqw);line-height:1.55}
@container (max-width:330px){.lf-fes__fees{padding:10px 8px}.lf-fes__fees-grid{gap:4px 8px}.lf-fes__fees-grid li{font-size:.69rem}.lf-fes__fees-grid li strong{font-size:.76rem}}
.lf-fes__who{margin:0 0 16px;font-size:max(.8rem,3.4cqw);line-height:1.8;color:#5b3d38}
.lf-fes__who span{display:inline-block}
.lf-fes__text .lf-more{background:#4d7350;color:#fff}
.lf-fes__text .lf-more:hover{background:#3d5e41}
.lf-fes__text .lf-ghost{background:#fff;color:#2a1418;border:1.5px solid #2a1418}
.lf-stickers{position:relative;z-index:2;list-style:none;margin:0;padding:3cqw 4cqw 7cqw;display:grid;grid-template-columns:repeat(3,1fr);gap:3.2cqw 3cqw}
.lf-st{margin:0;display:flex;flex-direction:column;align-items:center;gap:1.2cqw;transition:transform .25s}
.lf-st__img{display:flex;align-items:center;justify-content:center;width:100%;background:#fff;padding:1.8cqw;border-radius:1.2cqw;box-shadow:0 .8cqw 1.8cqw rgba(70,20,20,.22);aspect-ratio:1/1;overflow:hidden}
.lf-st__img img{max-width:100%;max-height:100%;width:auto;height:auto;mix-blend-mode:multiply}
.lf-st--photo .lf-st__img{padding:1.2cqw}
.lf-st--photo .lf-st__img img{width:100%;height:100%;object-fit:cover;mix-blend-mode:normal;border-radius:.6cqw}
.lf-st--sol .lf-st__img img{height:100%;width:auto}
.lf-st>span:empty{display:none}
.lf-st>span:last-child{font-size:max(.68rem,2.9cqw);font-weight:700;line-height:1.35;text-align:center;color:#4a2b2c;letter-spacing:.01em}
.lf-st:nth-child(1){transform:rotate(-3deg)}.lf-st:nth-child(2){transform:rotate(2.4deg) translateY(1.6cqw)}.lf-st:nth-child(3){transform:rotate(-1.6deg)}
.lf-st:nth-child(4){transform:rotate(3deg) translateY(1cqw)}.lf-st:nth-child(5){transform:rotate(-2.6deg)}.lf-st:nth-child(6){transform:rotate(2deg) translateY(1.4cqw)}
.lf-st:hover,.lf-st:active{transform:rotate(0) scale(1.07)!important;z-index:3}
.lf-live .lf-st.lf-pop{--r0:-10deg}
.lf-live .is-in .lf-st:nth-child(1){transform:rotate(-3deg)}
.lf-live .is-in .lf-st:nth-child(2){transform:rotate(2.4deg) translateY(1.6cqw)}
.lf-live .is-in .lf-st:nth-child(3){transform:rotate(-1.6deg)}
.lf-live .is-in .lf-st:nth-child(4){transform:rotate(3deg) translateY(1cqw)}
.lf-live .is-in .lf-st:nth-child(5){transform:rotate(-2.6deg)}
.lf-live .is-in .lf-st:nth-child(6){transform:rotate(2deg) translateY(1.4cqw)}
/* 主役（広い枠）では 2カラムの大きなコラージュに */
@container (min-width:1100px){
  .lf-tile--festival .lf-in{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);grid-template-areas:"banner banner" "photos text" "stickers stickers"}
  .lf-fes__banner{grid-area:banner}
  .lf-fes__photos{grid-area:photos;margin:-5cqw 0 0 1cqw;aspect-ratio:100/118}
  .lf-fes__text{grid-area:text;align-self:center;padding:2cqw 5cqw 2cqw 2cqw}
  .lf-stickers{grid-area:stickers;grid-template-columns:repeat(6,1fr);padding:2cqw 4cqw 4.5cqw}
  .lf-fes__copy{font-size:clamp(1.5rem,4.2cqw,2.5rem)}
  .lf-fes__thanks{font-size:max(1rem,2.3cqw)}
  .lf-facts li{font-size:max(.8rem,1.9cqw)}
  .lf-more,.lf-ghost{font-size:max(.88rem,2cqw)}
  .lf-st>span:empty{display:none}
.lf-st>span:last-child{font-size:max(.72rem,1.55cqw)}
}

/* ============================================================
   THEATER ─ 蜂鳥あみ太くん（妖しい・濃密・劇場の照明）
   ============================================================ */
.lf-tile--theater{background:linear-gradient(165deg,#220b3d 0%,#10061c 52%,#3a0d1f 100%);color:#f3e6d3;box-shadow:0 26px 46px -18px rgba(0,0,0,.8),0 0 0 1px rgba(217,184,106,.5) inset}
.lf-tile--theater .lf-in{padding:6cqw 5cqw 7cqw}
.lf-thr__lights{position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:inherit;pointer-events:none}
.lf-thr__lights i{position:absolute;width:90cqw;height:90cqw;border-radius:50%;filter:blur(8px);will-change:transform,opacity}
.lf-thr__lights i:first-child{left:-24%;top:-12%;background:radial-gradient(circle,rgba(140,70,255,.55),transparent 66%);animation:lfLightA 11s ease-in-out infinite alternate}
.lf-thr__lights i:last-child{right:-30%;bottom:-18%;background:radial-gradient(circle,rgba(190,25,70,.5),transparent 66%);animation:lfLightB 13s ease-in-out infinite alternate}
@keyframes lfLightA{from{transform:translate(0,0) scale(1);opacity:.9}to{transform:translate(18%,10%) scale(1.15);opacity:.45}}
@keyframes lfLightB{from{transform:translate(0,0) scale(1.1);opacity:.35}to{transform:translate(-16%,-8%) scale(.95);opacity:.95}}
.lf-thr__paper{position:absolute;z-index:-1;left:-8%;top:34%;width:78%;opacity:.09;transform:rotate(-7deg);mix-blend-mode:screen;pointer-events:none;filter:saturate(.7)}
.lf-thr__head{display:flex;justify-content:space-between;align-items:flex-start;gap:4cqw}
.lf-date--thr{flex-direction:column;align-items:flex-start;gap:1.6cqw;color:var(--lf-gold)}
.lf-date--thr .lf-date__md{font:italic 400 clamp(3.4rem,25cqw,7rem)/.82 var(--serif-en,'Lora',serif);letter-spacing:-.04em;text-shadow:0 0 28px rgba(190,120,255,.55)}
.lf-date--thr .lf-date__sub{color:#e9d9c1}
.lf-thr__bw{margin:0;width:25cqw;flex:none;transform:rotate(5deg);border:1.2cqw solid #f3e6d3;box-shadow:0 1.2cqw 2.6cqw rgba(0,0,0,.6);background:#f3e6d3}
.lf-thr__bw img{aspect-ratio:1/1;width:100%;object-fit:cover;object-position:50% 22%;filter:contrast(1.04)}
.lf-thr__copy{margin:5cqw 0 0;font:400 clamp(1.4rem,8.6cqw,3.1rem)/1.3 var(--serif-jp,serif);letter-spacing:.04em;color:#fbefdc;text-shadow:0 2px 24px rgba(160,80,255,.55)}
.lf-thr__copy span{display:block}
.lf-thr__copy span:nth-child(2){padding-left:1.4em;color:var(--lf-gold)}
.lf-live .is-in .lf-thr__copy span{animation:lfTitle 1.5s cubic-bezier(.2,.8,.2,1) both}
.lf-live .is-in .lf-thr__copy span:nth-child(2){animation-delay:.28s}
@keyframes lfTitle{from{opacity:0;transform:translateY(26px);letter-spacing:.36em;filter:blur(7px)}to{opacity:1;transform:none;letter-spacing:.06em;filter:blur(0)}}
.lf-live .lf-tile--theater:not(.is-in) .lf-thr__copy span{opacity:0}
.lf-thr__photo{position:relative;margin:5cqw -1cqw 0 14cqw;transform:rotate(1.6deg);border:1px solid rgba(217,184,106,.7);box-shadow:0 0 0 1.4cqw #0e0716,0 0 7cqw rgba(150,80,255,.55),0 2cqw 4cqw rgba(0,0,0,.7)}
.lf-thr__photo img{width:100%;aspect-ratio:5/6;object-fit:cover;object-position:50% 38%}
.lf-thr__photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:14cqw 4cqw 3.5cqw;background:linear-gradient(0deg,rgba(12,4,22,.92),transparent);
  font:400 max(.9rem,4.1cqw)/1.5 var(--serif-jp,serif);letter-spacing:.04em;color:#fbefdc;text-wrap:balance}
/* 写真キャプションの出演者名は2行で区切る（スマホの不自然な中途改行を避ける） */
.lf-thr__photo figcaption{white-space:pre-line;text-wrap:wrap}
.lf-thr__text{margin-top:6cqw}
.lf-thr__text .lf-eyebrow{color:var(--lf-gold)}
.lf-thr__text .lf-facts li{border:1px solid rgba(217,184,106,.65);color:#f3e6d3;background:rgba(255,255,255,.05)}
.lf-thr__note{margin:0 0 16px;font-size:max(.86rem,3.7cqw);line-height:1.95;color:#dccbb7;letter-spacing:.03em}
.lf-thr__text .lf-more{background:var(--lf-gold);color:#1a0f1f}
.lf-thr__text .lf-more:hover{background:#ecca7f}
.lf-live .lf-thr__photo.lf-pop{--r0:5deg}
.lf-live .is-in .lf-thr__photo{transform:rotate(1.6deg)}
.lf-live .is-in .lf-thr__bw{transform:rotate(5deg)}
@container (min-width:1100px){
  .lf-tile--theater .lf-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"head photo" "copy photo" "text photo";column-gap:5cqw;align-content:start;padding:5cqw}
  .lf-thr__head{grid-area:head}
  .lf-thr__copy{grid-area:copy;margin-top:2cqw}
  .lf-thr__photo{grid-area:photo;margin:2cqw 0 0 0}
  .lf-thr__photo img{aspect-ratio:4/5}
  .lf-thr__text{grid-area:text;margin-top:3cqw}
  .lf-date--thr .lf-date__md{font-size:clamp(3.4rem,15cqw,7rem)}
  .lf-thr__bw{width:15cqw}
  .lf-thr__copy{font-size:clamp(1.8rem,5.6cqw,3.1rem)}
  .lf-thr__note{font-size:max(.86rem,2.1cqw)}
  .lf-facts li{font-size:max(.8rem,1.9cqw)}
  .lf-more,.lf-ghost{font-size:max(.88rem,2cqw)}
}

/* ============================================================
   OKINAWA ─ とぅるばーる 大新年会（鮮やか・陽気・宴会）
   ============================================================ */
.lf-tile--okinawa{background:#faf0df;color:#2b2218;overflow:hidden;box-shadow:0 22px 40px -18px rgba(0,0,0,.65),0 0 0 3px #1ba0e2 inset}
.lf-oki__band{position:relative;z-index:1;margin:-1cqw -3cqw 0;transform:rotate(-1.2deg)}
.lf-oki__band img{width:100%}
.lf-oki__body{position:relative;z-index:2;padding:1cqw 6cqw 0}
.lf-oki__live{position:absolute;z-index:3;top:1cqw;right:5cqw;width:37cqw;margin:0;background:#fff;padding:1.4cqw;transform:rotate(4deg);box-shadow:0 1cqw 2.4cqw rgba(60,40,20,.3)}
.lf-oki__live img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:50% 40%}
.lf-live .is-in .lf-oki__live{transform:rotate(4deg)}
.lf-live .lf-oki__live.lf-pop{--r0:10deg}
.lf-date--oki{align-items:flex-end;gap:2.4cqw}
.lf-date--oki .lf-date__md{font:900 clamp(3.6rem,24cqw,6.6rem)/.85 var(--sans-jp,'Noto Sans JP',sans-serif);letter-spacing:-.05em;display:flex;align-items:flex-end}
.lf-date--oki b{font-weight:900;display:inline-block}
.lf-date--oki .c1{color:#e5007f}.lf-date--oki .c2{color:#f08a1c;margin:0 -.02em}.lf-date--oki .c3{color:#1d8a3f}
.lf-date--oki .lf-date__sub{color:#14a0e0;font-size:max(.8rem,3.6cqw);padding-bottom:1.4cqw}
.lf-live .is-in .lf-date--oki .c1{animation:lfHop 3.6s ease-in-out 1s infinite}
.lf-live .is-in .lf-date--oki .c3{animation:lfHop 3.6s ease-in-out 1.4s infinite}
@keyframes lfHop{0%,82%,100%{transform:translateY(0)}90%{transform:translateY(-1.8cqw) rotate(-3deg)}}
.lf-oki__chips{list-style:none;margin:3cqw 0 3cqw;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}
.lf-oki__chips li{padding:6px 12px;border-radius:99px;background:#fff;border:1.5px solid #2b2218;font-size:max(.8rem,3.5cqw);font-weight:700}
.lf-oki__chips li b{color:#14a0e0;margin-right:.3em}
.lf-oki__chips li.hot{background:#e60012;border-color:#e60012;color:#fff}
.lf-oki__fee{margin:0 0 6px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.lf-oki__fee small{flex-basis:100%;font-size:max(.78rem,3.3cqw);font-weight:700}
.lf-oki__fee b{font:900 clamp(2.4rem,14cqw,4.4rem)/1 var(--sans-jp,sans-serif);letter-spacing:-.03em;color:#2b2218}
.lf-oki__fee span{font:800 max(1rem,5cqw)/1 var(--sans-jp,sans-serif)}
.lf-oki__inc{margin:0 0 10px;font-size:max(.82rem,3.5cqw);line-height:1.85;font-weight:600}
.lf-oki__who{margin:0 0 16px;font-size:max(.82rem,3.5cqw);line-height:1.85;color:#5a4a36}
.lf-oki__who span{display:inline-block;margin-top:2px;padding:1px 10px;border-radius:4px;background:#1d8a3f;color:#fff;font-weight:700;letter-spacing:.06em}
.lf-tile--okinawa .lf-more{background:#e5007f;color:#fff}
.lf-tile--okinawa .lf-more:hover{background:#c40070}
.lf-tile--okinawa .lf-ghost{background:#fff;color:#2b2218;border:1.5px solid #2b2218}
.lf-oki__foot{position:relative;z-index:1;margin-top:2cqw;height:40cqw}
.lf-oki__wave{position:absolute;left:0;right:0;bottom:0;height:24cqw;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 45%);mask-image:linear-gradient(transparent,#000 45%)}
.lf-oki__wave div{width:200%;height:100%;background:url(../images/live/newyear-wave-band.webp) 0 100%/50% 100% repeat-x;animation:lfWave 48s linear infinite}
@keyframes lfWave{to{transform:translateX(-50%)}}
.lf-oki__shisa{position:absolute;bottom:8cqw;height:auto;transition:transform .5s cubic-bezier(.2,1.2,.4,1)}
.lf-oki__shisa{-webkit-mask-composite:source-in;mask-composite:intersect}
.lf-oki__shisa--l{-webkit-mask-image:linear-gradient(180deg,transparent,#000 14%),linear-gradient(90deg,#000 65%,transparent);mask-image:linear-gradient(180deg,transparent,#000 14%),linear-gradient(90deg,#000 65%,transparent)}
.lf-oki__shisa--r{-webkit-mask-image:linear-gradient(180deg,transparent,#000 14%),linear-gradient(270deg,#000 65%,transparent);mask-image:linear-gradient(180deg,transparent,#000 14%),linear-gradient(270deg,#000 65%,transparent)}
.lf-oki__shisa--l{left:-2cqw;width:25cqw}
.lf-oki__shisa--r{right:-1cqw;width:22cqw}
.lf-live .lf-tile--okinawa:not(.is-in) .lf-oki__shisa--l{transform:translateX(-120%)}
.lf-live .lf-tile--okinawa:not(.is-in) .lf-oki__shisa--r{transform:translateX(120%)}
.lf-live .lf-oki__band.lf-pop{--r0:-3deg}
@container (min-width:1100px){
  .lf-tile--okinawa .lf-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-template-areas:"band band" "body foot"}
  .lf-oki__band{grid-area:band}
  .lf-oki__body{grid-area:body;padding-bottom:5cqw}
  .lf-oki__foot{grid-area:foot;margin:0;height:auto;min-height:44cqw}
  .lf-oki__shisa--l{left:1cqw;width:17cqw;bottom:7cqw}
  .lf-oki__shisa--r{right:1cqw;width:15cqw;bottom:7cqw}
  .lf-oki__wave{height:14cqw}
  .lf-date--oki .lf-date__md{font-size:clamp(3.6rem,14cqw,6.6rem)}
  .lf-oki__fee b{font-size:clamp(2.4rem,8.4cqw,4.4rem)}
  .lf-oki__chips li,.lf-oki__inc,.lf-oki__who,.lf-oki__fee small{font-size:max(.82rem,1.9cqw)}
  .lf-more,.lf-ghost{font-size:max(.88rem,2cqw)}
}

/* ---------- 汎用タイル（未登録の世界観） ---------- */
.lf-tile:not(.lf-tile--festival):not(.lf-tile--theater):not(.lf-tile--okinawa){background:#2a1c33;padding:6cqw;color:#f6ecde}
.lf-gen__body h3{margin:10px 0;font:400 1.4rem/1.5 var(--serif-jp,serif)}
.lf-gen__body .lf-more{background:#f6ecde;color:#1b1218}
.lf-gen__body .lf-facts li{border:1px solid rgba(255,255,255,.4)}

/* ---------- これまで／リンク／マーキー ---------- */
.lf-archive{margin:clamp(34px,6vw,60px) 0 0;padding:20px 0 0;border-top:1px solid rgba(255,255,255,.18)}
.lf-archive p{margin:0 0 10px;font:600 .7rem/1 var(--sans-en,'Montserrat',sans-serif);letter-spacing:.18em;color:var(--lf-muted)}
.lf-archive ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.lf-archive button{min-height:44px;padding:8px 14px;border-radius:99px;border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--lf-ink);font:600 .8rem/1.3 var(--sans-jp,sans-serif);cursor:pointer}
.lf-archive button b{font-family:var(--sans-en,'Montserrat',sans-serif);margin-right:.4em;color:var(--lf-gold)}
.lf-links{margin:clamp(26px,5vw,44px) 0 0;display:flex;flex-wrap:wrap;gap:8px 26px}
.lf-links a{color:var(--lf-ink);text-decoration:none;font-size:.88rem;letter-spacing:.05em;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.4)}
.lf-links a:hover{border-bottom-color:#ff6b63}
.lf-br-s{display:inline}
@media (min-width:640px){.lf-br-s{display:none}}
.lf-marquee{overflow:hidden;white-space:nowrap;background:#ff5a55;color:#1b1218;padding:11px 0;transform:rotate(-1deg);margin:8px -2% 0;width:104%}
.lf-marquee div{display:inline-flex;animation:lfMarquee 46s linear infinite}
.lf-marquee span{font:800 .92rem/1 var(--sans-en,'Montserrat',sans-serif);letter-spacing:.2em;padding-right:.2em}
@keyframes lfMarquee{to{transform:translateX(-50%)}}

/* ---------- 詳細ダイアログ ---------- */
.lf-lock{overflow:hidden}
.lf-modal *{box-sizing:border-box}
.lf-modal img{display:block;max-width:100%;height:auto}
.lf-modal{padding:0;border:0;background:transparent;max-width:min(920px,100vw);width:100%;max-height:100dvh;margin:auto;overflow:auto;color:#2a1418}
.lf-modal::backdrop{background:rgba(10,5,14,.78)}
.lf-modal__card{position:relative;margin:clamp(0px,3vw,28px) auto;border-radius:clamp(0px,2.4vw,22px);background:#fff3da;min-height:100dvh;min-height:min(100dvh,100%)}
.lf-modal__inner{padding:clamp(60px,8vw,64px) clamp(18px,5vw,48px) clamp(34px,6vw,54px)}
.lf-modal__close{position:sticky;top:10px;float:right;z-index:3;margin:10px 10px -54px 0;width:46px;height:46px;border-radius:50%;border:0;background:#2a1418;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.35)}
.lf-modal__close:focus-visible{outline:3px solid #e8353d;outline-offset:3px}
.lf-modal .lf-eyebrow{color:#4d7350}
.lf-modal__title{margin:0 0 10px;font:400 clamp(1.5rem,5.4vw,2.4rem)/1.45 var(--serif-jp,serif)}
.lf-modal__lead{margin:0 0 22px;font-size:.92rem;line-height:2;color:#5b3d38}
.lf-modal__main{display:grid;gap:22px;align-items:start}
.lf-modal__flyer{margin:0;max-width:420px;filter:drop-shadow(0 10px 18px rgba(60,20,20,.25))}
.lf-modal__flyer img{width:100%;border-radius:4px}
.lf-date--modal{color:#4d7350;margin:0 0 8px}
.lf-date--modal .lf-date__md{font-size:clamp(2.6rem,12vw,4.2rem)}
.lf-modal__info h3{margin:0 0 6px;font:400 clamp(1.1rem,3.6vw,1.45rem)/1.55 var(--serif-jp,serif)}
.lf-modal__place{margin:0 0 14px;font-size:.85rem;color:#76685c}
.lf-dl{display:grid;grid-template-columns:96px 1fr;gap:12px 10px;margin:0;font-size:.9rem;line-height:1.75}
.lf-dl dt{font-weight:700;color:#6d4a46}
.lf-dl dd{margin:0}
.lf-dl small{display:block;margin-top:6px;color:#75695d;font-size:.78rem;line-height:1.7}
.lf-modal__spot{margin:18px 0 0;font-size:.88rem;line-height:1.95;color:#755e55}
.lf-people,.lf-gallery{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
.lf-people li{display:flex;flex-direction:column;gap:4px}
.lf-people img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;background:#fff}
.lf-people li:nth-child(4) img{object-fit:contain;padding:6px}
.lf-modal__sub{margin:28px 0 -14px;font-weight:700;font-size:.84rem;color:#4d7350;letter-spacing:.08em}
.lf-people b{font-size:.84rem}
.lf-people span{font-size:.76rem;line-height:1.6;color:#75695d}
.lf-gallery li img{width:100%;border-radius:8px}
.lf-gallery li.wide{grid-column:span 2}
.lf-modal__video{margin:0 0 22px}
.lf-modal__video video{display:block;width:100%;max-height:70vh;border-radius:10px;background:#000;aspect-ratio:16/9}
.lf-modal__actions{margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.lf-modal__actions a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 22px;border-radius:99px;text-decoration:none;font-size:.88rem;font-weight:700;flex:1 1 190px}
.lf-modal__actions a.primary{background:#4d7350;color:#fff}
.lf-modal__actions a.secondary{background:#fffbf7;color:#55473e;border:1px solid #ae9a8e}
.lf-modal__actions a:focus-visible{outline:3px solid #48633f;outline-offset:3px}
.lf-modal__reserve{margin:12px 0 0;font-size:.8rem;line-height:1.8;color:#7b6e62}
.lf-modal__links{margin:18px 0 0}
.lf-modal__links a{color:#55473e;font-size:.88rem}
@media (min-width:760px){
  .lf-modal__main{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:38px}
  .lf-people,.lf-gallery{grid-template-columns:repeat(4,1fr)}
  .lf-dl{grid-template-columns:110px 1fr}
}
.lf-modal[data-theme="theater"] .lf-modal__card{background:linear-gradient(165deg,#220b3d,#10061c 60%,#3a0d1f);color:#f3e6d3}
.lf-modal[data-theme="theater"] .lf-eyebrow,.lf-modal[data-theme="theater"] .lf-date--modal{color:#d9b86a}
.lf-modal[data-theme="theater"] .lf-modal__lead,.lf-modal[data-theme="theater"] .lf-modal__spot,.lf-modal[data-theme="theater"] .lf-modal__place,.lf-modal[data-theme="theater"] .lf-dl small{color:#dccbb7}
.lf-modal[data-theme="theater"] .lf-dl dt{color:#d9b86a}
.lf-modal[data-theme="theater"] .lf-modal__links a{color:#f3e6d3}
.lf-modal[data-theme="theater"] .lf-modal__actions a.secondary{background:transparent;color:#f3e6d3;border-color:rgba(217,184,106,.7)}
.lf-modal[data-theme="theater"] .lf-modal__close{background:#d9b86a;color:#1a0f1f}
.lf-modal[data-theme="okinawa"] .lf-modal__card{background:#faf0df;box-shadow:0 0 0 4px #1ba0e2 inset}
.lf-modal[data-theme="okinawa"] .lf-eyebrow,.lf-modal[data-theme="okinawa"] .lf-date--modal{color:#e5007f}
.lf-modal[data-theme="okinawa"] .lf-dl dt{color:#14a0e0}
.lf-modal[data-theme="okinawa"] .lf-modal__actions a.primary{background:#e5007f}
.lf-modal[open]{animation:lfModalIn .35s cubic-bezier(.2,.9,.3,1)}
@keyframes lfModalIn{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .lf *,.lf *::before,.lf *::after,.lf-modal,.lf-modal *{animation:none!important;transition:none!important}
  .lf-live .lf-pop,.lf-live .lf-oki__shisa{opacity:1!important;transform:none!important}
  .lf-live .lf-tile--theater:not(.is-in) .lf-thr__copy span{opacity:1}
  .lf-marquee div{transform:none}
}

/* 予約フォーム準備中（リンクではない表示のみ） */
.lf-soon{display:inline-flex;align-items:center;min-height:46px;padding:10px 18px;border-radius:99px;border:1.5px dashed currentColor;font:700 max(.82rem,3.3cqw)/1 var(--sans-jp,sans-serif);letter-spacing:.03em;opacity:.85;cursor:default}

/* ---------- 予約CTA（ご予約はこちら）：静止していてもはっきりボタン＋数秒に一度だけ縁を「キラリ」 ----------
   対象は予約フォームへのリンク（.lf-reserve-cta）のみ。DM・電話・「くわしく見る」は変更しない。
   タイル（.lf-ghost）と詳細ダイアログ（a.primary）の両方に同じ見た目を当てる。
   キラリ＝縁だけに細い光の帯が約1秒で通り抜け、残りの約4秒は静止（点滅・常時回転・拡縮なし）。 */
.lf a.lf-reserve-cta.lf-reserve-cta,
.lf-modal .lf-modal__actions a.primary.lf-reserve-cta{
  --cta-bg:linear-gradient(180deg,#fffaf0 0%,#f6e6bf 100%);--cta-fg:#2a1245;--cta-bd:1.5px solid #d9b86a;
  --cta-sh:0 7px 16px rgba(0,0,0,.42),0 1px 0 rgba(255,255,255,.55) inset,0 -2px 0 rgba(176,132,48,.28) inset;
  --cta-sh-hover:0 11px 22px rgba(0,0,0,.46),0 0 18px rgba(240,208,128,.35),0 1px 0 rgba(255,255,255,.6) inset,0 -2px 0 rgba(176,132,48,.28) inset;
  --cta-sh-active:0 3px 8px rgba(0,0,0,.4),0 1px 0 rgba(255,255,255,.5) inset;
  --cta-shine:rgba(255,246,214,.98);--cta-focus:#fff;--cta-focus-gap:#1b1218;
  position:relative;min-height:48px;padding:12px 28px;border-radius:999px;border:var(--cta-bd);
  background:var(--cta-bg);color:var(--cta-fg);box-shadow:var(--cta-sh);
  font-weight:800;letter-spacing:.06em;text-align:center;line-height:1.25;
  transition:transform .22s ease,box-shadow .22s ease;
}
.lf-tile--okinawa a.lf-reserve-cta.lf-reserve-cta,
.lf-modal[data-theme="okinawa"] .lf-modal__actions a.primary.lf-reserve-cta{
  --cta-bg:linear-gradient(180deg,#fff 0%,#fff6e3 100%);--cta-fg:#2b2218;--cta-bd:2px solid #2b2218;
  --cta-sh:0 6px 14px rgba(84,52,8,.30),0 0 16px rgba(244,208,120,.45),0 1px 0 #fff inset,0 -3px 0 rgba(217,184,106,.45) inset;
  --cta-sh-hover:0 10px 20px rgba(84,52,8,.34),0 0 22px rgba(244,208,120,.6),0 1px 0 #fff inset,0 -3px 0 rgba(217,184,106,.45) inset;
  --cta-sh-active:0 2px 7px rgba(84,52,8,.32),0 0 10px rgba(244,208,120,.4);
  --cta-shine:rgba(255,196,64,.95);--cta-focus:#2b2218;--cta-focus-gap:#fff;
}
.lf a.lf-reserve-cta.lf-reserve-cta:hover,
.lf-modal .lf-modal__actions a.primary.lf-reserve-cta:hover{transform:translateY(-3px);box-shadow:var(--cta-sh-hover);background:var(--cta-bg);color:var(--cta-fg)}
.lf a.lf-reserve-cta.lf-reserve-cta:active,
.lf-modal .lf-modal__actions a.primary.lf-reserve-cta:active{transform:translateY(0) scale(.985);box-shadow:var(--cta-sh-active)}
.lf a.lf-reserve-cta.lf-reserve-cta:focus-visible,
.lf-modal .lf-modal__actions a.primary.lf-reserve-cta:focus-visible{outline:3px solid var(--cta-focus);outline-offset:4px;box-shadow:var(--cta-sh),0 0 0 8px var(--cta-focus-gap)}
/* 縁の光の帯：ボタンの縁にだけ重なるリング（中は透過）に、斜めの帯グラデーションを1回走らせる */
.lf-reserve-cta::after{content:"";position:absolute;inset:-2px;border-radius:inherit;padding:3.5px;pointer-events:none;
  background:linear-gradient(115deg,transparent 43%,var(--cta-shine) 50%,transparent 57%) 85% 0/300% 100% no-repeat;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:lfCtaGlint 5.4s ease-in-out 1.6s infinite}
.lf-tile--okinawa .lf-reserve-cta::after{animation-delay:3.4s}
.lf-modal .lf-reserve-cta::after{animation-delay:1.1s}
@keyframes lfCtaGlint{0%{background-position:85% 0}18%,100%{background-position:15% 0}}
@media (prefers-reduced-motion:reduce){
  .lf-reserve-cta::after{animation:none!important;display:none!important}
  .lf a.lf-reserve-cta.lf-reserve-cta,.lf-modal .lf-modal__actions a.primary.lf-reserve-cta{transition:none!important}
  .lf a.lf-reserve-cta.lf-reserve-cta:hover,.lf-modal .lf-modal__actions a.primary.lf-reserve-cta:hover{transform:none}
}
/* スマホで読んでほしい日本語の最小サイズ（2026-10-22） */
@media (max-width:760px){.lf-count,.lf-fes__fees-grid li span,.lf-fes__fees-note,.lf-st span,.lf-stickers .lf-st.lf-st--logo span{font-size:12px}}
