/* ============================================================
   おそとのフードマーケット サイトデザイン (2026-10 納品)
   イベントTOP / コンセプト / 長久手会場 / 蟹江会場 で共有する。

   納品物 (各ページの <style>。4 ページとも同一) をそのまま配置し、
   WordPress 側の都合で必要になったスタイルを末尾に追記している。
   header-ofm-site.php / footer-ofm-site.php から読み込む。
   共通の style.css / Bootstrap、名駅北 LP の ofm-lp.css とは併用しない (セレクタが衝突する)。
   ============================================================ */
/* 色は元サイト (kodawarin.jp/ofm) の配色をそのまま使う */
:root{
  --orange:#FF6633;
  --peach:#fff8f7;
  --gray:#f8f8f8;
  --beige:#f7f4ed;
  --ink:#333333;
  --ink-strong:#212529;
  --muted:#777777;
  --gold:#a57a43;
  --gold-light:#d1ad80;
  --line:#06c755;
  --white:#ffffff;

  --col-w:440px;
  --panel-w:360px;
  --gap-r:120px;
  --col-left:max(48px, calc(100vw - var(--panel-w) - var(--col-w) - var(--gap-r)));
  --mincho:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --gothic:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans",sans-serif;
  --latin:"Cormorant Garamond",var(--mincho);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink-strong);color:var(--ink);font-family:var(--gothic);font-size:14px;line-height:1.9;letter-spacing:.04em;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,h5,p,ul,dl,dd{margin:0}
ul{padding:0;list-style:none}

/* ===== 固定背景 ===== */
.bg{position:fixed;inset:0;z-index:0;overflow:hidden}
.bg__img{position:absolute;inset:-4%;background:var(--bg) center/cover no-repeat;animation:bgZoom 30s ease-in-out infinite alternate}
.bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(33,37,41,.55) 0%,rgba(33,37,41,.25) 45%,rgba(255,102,51,.18) 100%)}
@keyframes bgZoom{to{transform:scale(1.06)}}

/* 参考サイトの流れ星モチーフ → 光の粒が流れる演出に置き換え */
.spark{position:absolute;z-index:1;width:140px;height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.9));transform:rotate(-28deg);opacity:0;animation:spark 7s linear infinite}
.spark:nth-child(2){top:12%;left:58%;animation-delay:0s}
.spark:nth-child(3){top:46%;left:8%;animation-delay:2.4s}
.spark:nth-child(4){top:70%;left:62%;animation-delay:4.1s}
.spark:nth-child(5){top:28%;left:30%;animation-delay:5.6s;width:90px}
@keyframes spark{0%{opacity:0;translate:0 0}6%{opacity:1}22%{opacity:0;translate:-180px 96px}100%{opacity:0;translate:-180px 96px}}

/* ===== 左側（PC のみ） ===== */
.side-left{position:fixed;z-index:2;top:0;bottom:0;left:0;width:var(--col-left);display:flex;flex-direction:column;justify-content:space-between;padding:56px 0 48px 56px;color:var(--white);pointer-events:none}
.side-left > *{pointer-events:auto}
.catch{font-family:var(--mincho);font-weight:400;font-size:clamp(22px,2.1vw,32px);line-height:1.9;letter-spacing:.14em;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.catch span{display:block}
.catch span:nth-child(2){padding-left:2.2em}
.next-card{position:relative;width:min(300px,calc(var(--col-left) - 110px));margin-left:44px}
.next-card__label{position:absolute;left:-44px;top:0;writing-mode:vertical-rl;font-family:var(--mincho);font-size:13px;letter-spacing:.3em}
.next-card__img{aspect-ratio:3/2;overflow:hidden;border-radius:2px}
.next-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.next-card:hover .next-card__img img{transform:scale(1.05)}
.next-card__date{margin-top:14px;font-family:var(--latin);font-size:14px;letter-spacing:.1em}
.next-card__title{font-family:var(--mincho);font-size:15px;line-height:1.7}
.next-card__more{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.7);font-size:12px;letter-spacing:.1em}

/* ===== 中央カラム ===== */
.main{position:relative;z-index:3;width:var(--col-w);margin-left:var(--col-left);background:var(--white);min-height:100vh;box-shadow:0 0 40px rgba(0,0,0,.18)}

.top-bar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:var(--white)}
.top-bar__logo img{height:30px;width:auto}
.top-bar__sub{font-family:var(--mincho);font-size:11px;color:var(--orange);letter-spacing:.14em}

/* ヒーロー */
.hero{position:relative;padding:12px 22px 64px;background:var(--white);overflow:hidden}
.hero__eyebrow{font-family:var(--mincho);color:var(--orange);font-size:13px;letter-spacing:.24em}
.hero__title{margin-top:6px;font-family:var(--mincho);font-weight:600;font-size:27px;line-height:1.55;letter-spacing:.1em;color:var(--ink-strong)}
.hero__addr{margin-top:8px;font-size:12px;color:var(--muted)}
.hero__addr a{color:var(--orange);border-bottom:1px solid currentColor;margin-left:6px}
.hero__visual{position:relative;margin-top:28px;display:flex;gap:18px;align-items:flex-start}
.hero__circle{flex:0 0 250px;height:250px;border-radius:50%;overflow:hidden;box-shadow:0 10px 30px rgba(255,102,51,.2)}
.hero__circle img{width:100%;height:100%;object-fit:cover}
.hero__vtext{writing-mode:vertical-rl;font-family:var(--mincho);font-size:18px;line-height:2;letter-spacing:.2em;color:var(--ink-strong);height:300px}
.hero__vtext em{font-style:normal;color:var(--orange)}
.hero__lead{display:flex;justify-content:flex-end;margin-top:28px}
.hero__lead p{writing-mode:vertical-rl;inline-size:max-content;font-family:var(--mincho);font-size:14px;line-height:2.4;letter-spacing:.18em}
.hero__ring{position:absolute;right:-60px;top:120px;width:200px;height:200px;border-radius:50%;border:1px dashed rgba(255,102,51,.35)}

.btn-line-arrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:36px;padding:14px 4px 10px;border-bottom:1px solid var(--ink);font-family:var(--mincho);font-size:14px;letter-spacing:.14em;transition:color .3s,border-color .3s}
.btn-line-arrow::after{content:"→";font-family:var(--gothic);transition:transform .3s}
.btn-line-arrow:hover{color:var(--orange);border-color:var(--orange)}
.btn-line-arrow:hover::after{transform:translateX(6px)}

/* 破れ紙風の境界 */
.torn{position:relative}
.torn::before{content:"";position:absolute;left:0;right:0;top:-17px;height:18px;background:inherit;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 440 18' preserveAspectRatio='none'%3E%3Cpath d='M0 18V9l14-3 11 5 17-6 13 4 9-5 18 7 12-4 15 3 10-6 16 5 13-2 11 4 19-7 14 6 9-3 17 2 12-6 15 7 11-4 16 3 10-5 18 6 13-3 12 2 15-6 9 5 17-3 11 4 14-5 10 3 16-4 12 6 9-2V18Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 440 18' preserveAspectRatio='none'%3E%3Cpath d='M0 18V9l14-3 11 5 17-6 13 4 9-5 18 7 12-4 15 3 10-6 16 5 13-2 11 4 19-7 14 6 9-3 17 2 12-6 15 7 11-4 16 3 10-5 18 6 13-3 12 2 15-6 9 5 17-3 11 4 14-5 10 3 16-4 12 6 9-2V18Z'/%3E%3C/svg%3E") center/100% 100% no-repeat}

/* 次回開催 */
.next{background:var(--orange);color:var(--white);padding:56px 22px 60px;text-align:center}
.next__label{font-family:var(--mincho);font-size:14px;letter-spacing:.3em}
.next__date{font-variant-numeric:lining-nums;display:flex;align-items:baseline;justify-content:center;gap:6px;margin-top:10px;font-family:var(--latin);line-height:1}
.next__date b{font-weight:500;font-size:84px;letter-spacing:.02em}
.next__date i{font-style:normal;font-size:40px;opacity:.85}
.next__date small{font-family:var(--mincho);font-size:16px;margin-left:8px;padding:6px 10px;border:1px solid rgba(255,255,255,.8);border-radius:999px;align-self:center}
.next__time{margin-top:16px;font-family:var(--mincho);font-size:18px;letter-spacing:.14em}
.next__copy{margin-top:18px;font-size:13px;line-height:2}
.next__nav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:30px}
.next__nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:82px;padding:10px 4px;background:var(--white);color:var(--orange);font-family:var(--mincho);font-size:12px;line-height:1.5;letter-spacing:.06em;border-radius:999px 999px 6px 6px;transition:transform .3s}
.next__nav a::after{content:"↓";font-family:var(--gothic);font-size:11px}
.next__nav a:hover{transform:translateY(-3px)}

/* 汎用セクション */
.sec{padding:76px 22px 84px;background:var(--white)}
.sec--peach{background:var(--peach)}
.sec--beige{background:var(--beige)}
.sec-head{display:flex;align-items:center;gap:16px;color:var(--ink-strong)}
.sec-head__slash{width:22px;height:1px;background:currentColor;transform:rotate(-60deg);opacity:.6}
.sec-head__en{font-family:var(--latin);font-weight:500;font-size:34px;letter-spacing:.14em;line-height:1}
.sec-head__ja{display:block;margin-top:6px;font-family:var(--mincho);font-size:12px;color:var(--orange);letter-spacing:.2em}
.sec-title{margin-top:30px;font-family:var(--mincho);font-weight:600;font-size:24px;line-height:1.65;letter-spacing:.12em;color:var(--ink-strong)}
.sec-text{margin-top:16px;line-height:2.1}

/* 出店者カード */
.shops{display:grid;grid-template-columns:1fr 1fr;gap:28px 14px;margin-top:36px}
.shop{display:block;width:100%;text-align:left}
.shop__img{position:relative;aspect-ratio:4/5;border-radius:999px 999px 4px 4px;overflow:hidden;background:var(--gray)}
.shop__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.shop:hover .shop__img img{transform:scale(1.06)}
.shop__face{position:absolute;right:6px;bottom:6px;width:46px;height:46px;border-radius:50%;overflow:hidden;border:2px solid var(--white);background:var(--white)}
.shop__face img{width:100%;height:100%;object-fit:cover}
.shop__cat{margin-top:12px;font-size:11px;color:var(--orange);letter-spacing:.06em;line-height:1.5}
.shop__name{margin-top:2px;font-family:var(--mincho);font-weight:600;font-size:15px;line-height:1.5;color:var(--ink-strong)}
.shop__more{display:flex;justify-content:space-between;margin-top:8px;padding-bottom:4px;border-bottom:1px solid #ccc;font-size:11px;color:var(--muted);transition:color .3s,border-color .3s}
.shop:hover .shop__more{color:var(--orange);border-color:var(--orange)}

/* 体験 */
.exp-list{margin-top:40px;display:grid;gap:56px}
.exp__no{font-variant-numeric:lining-nums;position:relative;z-index:1;font-family:var(--latin);font-size:46px;line-height:1;color:var(--orange);letter-spacing:.04em}
.exp__img{margin-top:-14px;aspect-ratio:3/2;border-radius:200px 200px 0 0;overflow:hidden}
.exp__img img{width:100%;height:100%;object-fit:cover}
.exp__title{margin-top:20px;font-family:var(--mincho);font-weight:600;font-size:18px;line-height:1.7;color:var(--ink-strong)}
.exp__body{margin-top:12px;font-size:13px;line-height:2}
.exp__body.is-clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.exp__toggle{margin-top:6px;font-size:12px;color:var(--orange);border-bottom:1px solid currentColor}
.exp__thumbs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.exp__thumbs img{aspect-ratio:3/2;width:100%;object-fit:cover;border-radius:4px}
.exp__info{margin-top:18px;background:var(--white);border-top:2px solid var(--orange);padding:14px 16px;font-size:12px}
.exp__info div{display:flex;gap:10px;padding:5px 0;border-bottom:1px dashed #e9ecef}
.exp__info div:last-child{border-bottom:0}
.exp__info dt{flex:0 0 5.5em;color:var(--orange);font-weight:700}
.exp__info dd{flex:1}
.exp__shop{margin-top:10px;text-align:right;font-family:var(--mincho);font-size:12px;color:var(--gold)}

/* ステージ */
.stage__img{margin-top:32px;border-radius:50%;aspect-ratio:1;overflow:hidden;width:78%;margin-inline:auto}
.stage__img img{width:100%;height:100%;object-fit:cover}
.stage__title{margin-top:28px;text-align:center;font-family:var(--mincho);font-weight:600;font-size:19px;color:var(--ink-strong)}
.stage__body{margin-top:10px;text-align:center;font-size:13px}
.stage__thumbs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px}
.stage__thumbs img{aspect-ratio:3/2;width:100%;object-fit:cover;border-radius:4px}

/* LINE */
.line-box{position:relative;margin-top:30px;padding:30px 22px;background:var(--white);border:1px solid #e9ecef;text-align:center}
.line-box::before{content:"";position:absolute;inset:8px;border:1px solid var(--gold-light);pointer-events:none;opacity:.6}
.line-box__btn{position:relative;display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:15px 34px;border-radius:999px;background:var(--line);color:var(--white);font-weight:700;letter-spacing:.08em;transition:opacity .3s}
.line-box__btn:hover{opacity:.85}
.line-box__note{margin-top:12px;font-size:11px;color:var(--muted)}

/* アクセス */
.map{margin-top:30px;aspect-ratio:4/3;border-radius:4px;overflow:hidden;background:var(--gray)}
.map iframe{width:100%;height:100%;border:0;filter:saturate(.85)}
.access{margin-top:22px;font-size:13px}
.access div{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #e9ecef}
.access dt{flex:0 0 4.5em;font-family:var(--mincho);color:var(--orange)}
.access dd a{color:var(--orange);border-bottom:1px solid currentColor}
.access-note{margin-top:20px;padding:14px 16px;background:var(--beige);font-size:12px;color:var(--gold);line-height:1.9}

/* フッター */
.footer{padding:56px 22px 120px;background:var(--ink-strong);color:rgba(255,255,255,.85);text-align:center;font-size:12px}
.footer__logo{display:inline-block;padding:10px 16px;background:var(--white);border-radius:4px}
.footer__logo img{height:26px;width:auto}
.footer__sns{display:flex;justify-content:center;gap:16px;margin-top:24px}
.footer__sns a{width:38px;height:38px;border:1px solid rgba(255,255,255,.4);border-radius:50%;display:grid;place-items:center;transition:background .3s}
.footer__sns a:hover{background:var(--orange);border-color:var(--orange)}
.footer__links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;margin-top:22px}
.footer__copy{margin-top:22px;font-family:var(--latin);letter-spacing:.1em;opacity:.7}

/* 開催場所リスト（TOP・コンセプト） */
.place-lead{margin-top:22px;font-size:14px;line-height:2.1}
.place-lead em{font-style:normal;color:var(--orange);font-weight:700}
.places{margin-top:34px;border-top:1px solid var(--ink)}
.place{display:grid;grid-template-columns:auto 1fr auto;gap:4px 16px;align-items:center;padding:22px 4px;border-bottom:1px solid #ccc;transition:background .3s}
.place:hover{background:var(--peach)}
.place__no{grid-row:span 3;align-self:start;font-family:var(--latin);font-variant-numeric:lining-nums;font-size:30px;line-height:1;color:var(--orange)}
.place__name{font-family:var(--mincho);font-weight:600;font-size:17px;line-height:1.5;color:var(--ink-strong)}
.place__addr{grid-column:2;font-size:11.5px;color:var(--muted)}
.place__date{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px}
.place__date b{display:inline-block;padding:3px 14px;border-radius:999px;background:var(--orange);color:var(--white);font-weight:500;font-size:13px;letter-spacing:.06em}
.place__date small{font-size:11.5px;color:var(--gold)}
.place__arrow{grid-column:3;grid-row:1 / span 3;font-size:14px;color:var(--orange);transition:transform .3s}
.place:hover .place__arrow{transform:translateX(4px)}

/* 開催レポート */
.report{display:block;margin-top:30px}
.report__img{aspect-ratio:3/2;border-radius:200px 200px 0 0;overflow:hidden}
.report__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.report:hover .report__img img{transform:scale(1.05)}
.report__date{margin-top:14px;font-family:var(--latin);font-variant-numeric:lining-nums;font-size:14px;color:var(--orange);letter-spacing:.1em}
.report__title{font-family:var(--mincho);font-weight:600;font-size:16px;line-height:1.7;color:var(--ink-strong)}

/* 汎用ボタン */
.btn-fill{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px;padding:18px 26px;border-radius:999px;background:var(--orange);color:var(--white);font-family:var(--mincho);font-weight:600;font-size:15px;letter-spacing:.12em;transition:transform .3s,box-shadow .3s}
.btn-fill::after{content:"→";font-family:var(--gothic)}
.btn-fill:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(255,102,51,.3)}

/* コンセプト：お約束 */
.promise-list{display:grid;gap:60px;margin-top:40px}
.promise__head{display:flex;align-items:flex-end;gap:14px}
.promise__no{font-family:var(--latin);font-variant-numeric:lining-nums;font-size:64px;line-height:.9;color:var(--orange)}
.promise__label{font-family:var(--latin);font-size:13px;letter-spacing:.2em;color:var(--gold);padding-bottom:6px}
.promise__img{margin-top:14px;aspect-ratio:4/3;border-radius:200px 200px 0 0;overflow:hidden}
.promise__img img{width:100%;height:100%;object-fit:cover}
.promise__title{margin-top:22px;font-family:var(--mincho);font-weight:600;font-size:20px;line-height:1.7;letter-spacing:.08em;color:var(--ink-strong)}
.promise__body{margin-top:12px;font-size:13.5px;line-height:2.1}
.promise__body p + p{margin-top:.9em}

/* コンセプト：食育の効果 */
.effects{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:30px}
.effects li{display:flex;align-items:center;min-height:64px;padding:12px 14px;background:var(--white);border-radius:6px;font-size:12.5px;line-height:1.7;border-left:3px solid var(--orange)}
.effects li:nth-child(odd){border-left-color:var(--gold-light)}
.growth{margin-top:34px;padding:26px 18px;text-align:center;border:1px solid var(--orange);background:var(--white);font-family:var(--mincho);font-size:16px;line-height:2;color:var(--ink-strong)}
.growth em{font-style:normal;color:var(--orange);font-weight:600}
.growth span{display:block;font-family:var(--gothic);font-size:20px;color:var(--orange);line-height:1}

/* 開催スケジュール（会場ページ） */
.schedule{margin-top:28px;padding:20px 18px;border:1px solid rgba(255,255,255,.7);border-radius:4px;text-align:left}
.schedule p{font-family:var(--mincho);font-size:13px;letter-spacing:.14em;text-align:center}
.schedule ul{margin-top:10px}
.schedule li{display:flex;justify-content:space-between;align-items:center;padding:8px 4px;border-bottom:1px dashed rgba(255,255,255,.5);font-size:13.5px}
.schedule li:last-child{border-bottom:0}
.schedule li.is-next b{padding:1px 10px;border-radius:999px;background:var(--white);color:var(--orange);font-size:11px;font-weight:700}
.schedule li.is-past{opacity:.6}

/* ===== 右パネル（メニュー） ===== */
.panel{position:fixed;z-index:4;top:0;right:0;bottom:0;width:var(--panel-w);background:var(--orange);color:var(--white);display:flex;flex-direction:column;padding:48px 36px 40px 76px;overflow-y:auto}
.panel__label{position:absolute;left:26px;top:48px;writing-mode:vertical-rl;font-family:var(--latin);font-size:16px;letter-spacing:.2em}
.panel__nav li a{display:flex;justify-content:space-between;align-items:center;padding:12px 0 8px;border-bottom:1px solid rgba(255,255,255,.45);font-family:var(--mincho);font-size:13.5px;letter-spacing:.1em;transition:padding .3s}
.panel__nav li a::after{content:"→";font-family:var(--gothic);font-size:12px}
.panel__nav li a:hover{padding-left:6px}
.panel__venues{margin-top:26px}
.panel__venues p{font-family:var(--latin);font-size:13px;letter-spacing:.18em;opacity:.85}
.panel__venues ul{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.panel__venues a{display:block;padding:4px 12px;border:1px solid rgba(255,255,255,.6);border-radius:999px;font-size:11.5px;transition:background .3s,color .3s}
.panel__venues a:hover,.panel__venues a[aria-current]{background:var(--white);color:var(--orange)}
.panel__sns{display:flex;align-items:center;gap:10px;margin-top:26px;font-size:12px}
.panel__sns svg{flex:0 0 auto}
.panel__links{display:flex;flex-wrap:wrap;gap:4px 14px;white-space:nowrap;margin-top:16px;font-size:11px;opacity:.9}
.panel__cta{margin-top:auto;padding-top:28px;text-align:center}
.panel__cta-line{width:1px;height:56px;margin:0 auto 18px;background:rgba(255,255,255,.6)}
.panel__cta a{display:block}
.panel__cta strong{display:block;font-family:var(--mincho);font-weight:600;font-size:21px;letter-spacing:.14em}
.panel__cta span{display:block;margin-top:4px;font-size:12px;letter-spacing:.1em}
.panel__close{display:none}

/* 会場アクセスへの円形バッジ */
.badge{position:fixed;z-index:5;bottom:26px;left:calc(var(--col-left) + var(--col-w) - 66px);width:126px;height:126px;border-radius:50%;background:var(--gold);color:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:var(--mincho);line-height:1.5;box-shadow:0 6px 20px rgba(0,0,0,.2);transition:transform .4s}
.badge::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(255,255,255,.55)}
.badge b{font-weight:600;font-size:16px;letter-spacing:.1em}
.badge small{font-size:11px;letter-spacing:.12em}
.badge i{font-style:normal;font-size:12px;margin-top:2px}
.badge:hover{transform:rotate(-8deg) scale(1.04)}

/* 固定 LINE 登録ボタン（会場アクセスバッジの左） */
.line-fix{position:fixed;z-index:5;bottom:56px;left:calc(var(--col-left) + 22px);width:calc(var(--col-w) - 100px);height:66px;display:flex;align-items:center;gap:12px;padding:0 20px 0 16px;border-radius:999px;background:var(--line);color:var(--white);box-shadow:0 6px 20px rgba(0,0,0,.2);transition:transform .3s,opacity .3s}
.line-fix:hover{transform:translateY(-2px)}
.line-fix__icon{flex:0 0 38px;height:38px;border-radius:50%;background:var(--white);color:var(--line);display:grid;place-items:center}
.line-fix__txt{flex:1;line-height:1.35}
.line-fix__txt small{display:block;font-size:10.5px;letter-spacing:.04em;opacity:.95}
.line-fix__txt b{display:block;font-size:15px;letter-spacing:.08em}
.line-fix::after{content:"→";font-size:14px}

.menu-btn{display:none}

/* モーダル（店舗ストーリー） */
dialog.story{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 48px);padding:0;border:0;border-radius:6px;background:var(--peach);color:var(--ink)}
dialog.story::backdrop{background:rgba(33,37,41,.7);backdrop-filter:blur(3px)}
.story__inner{padding:44px 26px 40px}
.story__close{position:sticky;top:0;float:right;margin:-30px -12px 0 0;width:40px;height:40px;border-radius:50%;background:var(--orange);color:var(--white);font-size:22px;line-height:40px;z-index:1}
.story__cat{font-size:12px;color:var(--orange);letter-spacing:.1em}
.story__name{margin-top:4px;font-family:var(--mincho);font-weight:600;font-size:24px;letter-spacing:.08em;color:var(--ink-strong)}
.story__catch{margin-top:14px;font-family:var(--mincho);font-size:16px;line-height:1.8;color:var(--ink-strong)}
.story__imgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin-top:20px}
.story__imgs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}
.story__points{position:relative;margin-top:30px;padding:28px 20px 18px;background:var(--white);border:1px solid var(--orange)}
.story__points h4{position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:0 12px;background:var(--peach);white-space:nowrap;font-family:var(--mincho);font-size:14px;color:var(--orange);letter-spacing:.1em}
.story__points li{display:flex;gap:12px;padding:10px 0;border-bottom:1px dashed #e9ecef;font-size:13px;line-height:1.9}
.story__points li:last-child{border-bottom:0}
.story__points li b{flex:0 0 auto;font-family:var(--latin);font-weight:500;font-size:22px;line-height:1.2;color:var(--orange)}
.story__body{margin-top:28px;font-size:13.5px;line-height:2.1}
.story__body p + p{margin-top:1em}
.story__body img{margin:16px 0;border-radius:4px}
.story__insta{display:inline-flex;align-items:center;gap:8px;margin-top:26px;padding:10px 20px;border:1px solid var(--orange);border-radius:999px;color:var(--orange);font-size:12px;transition:background .3s,color .3s}
.story__insta:hover{background:var(--orange);color:var(--white)}
.story__insta[hidden],.story__points[hidden]{display:none}

/* スクロール表示 */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .bg__img,.spark{animation:none}
}

/* ===== レスポンシブ ===== */
@media (max-width:1280px){
  :root{--gap-r:60px}
  .next-card{display:none}
}
@media (max-width:1080px){
  :root{--col-w:min(100vw,520px);--col-left:calc((100vw - var(--col-w)) / 2)}
  .side-left{display:none}
  .panel{width:min(360px,88vw);transform:translateX(100%);visibility:hidden;transition:transform .45s cubic-bezier(.7,0,.2,1),visibility 0s .45s}
  body.is-menu .panel{transform:none;visibility:visible;box-shadow:-10px 0 30px rgba(0,0,0,.2);transition:transform .45s cubic-bezier(.7,0,.2,1)}
  .panel__close{display:block;position:absolute;top:14px;right:14px;width:40px;height:40px;font-size:24px}
  .menu-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;position:fixed;z-index:6;top:12px;right:max(12px,calc(var(--col-left) + 12px));width:50px;height:50px;border-radius:50%;background:var(--orange);color:var(--white);box-shadow:0 4px 14px rgba(0,0,0,.18)}
  .menu-btn span{width:18px;height:1px;background:currentColor}
  .menu-btn small{font-family:var(--latin);font-size:10px;line-height:1;letter-spacing:.1em}
  body.is-menu .menu-btn,body.is-menu .badge,body.is-menu .line-fix{opacity:0;pointer-events:none}
  .badge{left:auto;right:max(14px,calc(var(--col-left) + 14px));bottom:16px;width:96px;height:96px}
  .badge b{font-size:13px;letter-spacing:.04em}
  .line-fix{left:max(14px,calc(var(--col-left) + 14px));right:max(124px,calc(var(--col-left) + 124px));width:auto;bottom:38px;height:52px;padding:0 14px 0 8px;gap:8px}
  .line-fix__icon{flex-basis:34px;height:34px}
  .line-fix__txt small{font-size:9.5px}
  .line-fix__txt b{font-size:13px;letter-spacing:.04em}
  .badge small{font-size:10px}
  .top-bar{padding-right:78px}
  .top-bar__sub{display:none}
}
@media (max-width:400px){
  .hero__title{font-size:22px}
  .hero__circle{flex-basis:210px;height:210px}
  .hero__vtext{font-size:16px;height:260px}
  .next__date b{font-size:70px}
}

/* ============================================================
   ここから WordPress 組み込み時の追記
   ============================================================ */

/* 出店者モーダルの本文は投稿本文 (the_content) の HTML をそのまま出すため、
   納品版が JS で組み立てていた <p> / <img> 以外の要素も整える */
.story__body > :first-child{margin-top:0}
.story__body p{margin:0}
.story__body img{max-width:100%;height:auto}
.story__body a{color:var(--orange);border-bottom:1px solid currentColor}
.story__body h2,.story__body h3,.story__body h4,.story__body h5{margin:1.6em 0 .6em;font-family:var(--mincho);font-weight:600;line-height:1.6;color:var(--ink-strong)}
.story__body ul,.story__body ol{margin:1em 0;padding-left:1.4em;list-style:disc}
.story__body iframe{max-width:100%}

/* 出店者・体験が未登録のとき */
.sec-empty{margin-top:30px;padding:26px 18px;text-align:center;background:var(--white);border:1px dashed #ccc;font-size:13px;color:var(--muted)}

/* 開催レポートが複数件あるときの間隔 */
.report + .report{margin-top:44px}

/* 日程が未定の会場 (schedule.php に今日以降の日付がない) */
.place__date b.is-tbd{background:var(--muted)}
