/*
  北信越大家の会 — 和モダン・上質リデザイン
  ベージュ × 墨 × 臙脂 × 金の細罫 / 明朝見出し
*/
:root{
  --paper:#f3ecdd;        /* 生成りベージュ（地） */
  --paper-deep:#ece2cf;   /* 一段深いベージュ */
  --card:#fdfaf3;         /* 温かい白（カード） */
  --ink:#201c17;          /* 墨黒 */
  --ink-soft:#6a6154;     /* 補助テキスト */
  --accent:#8a1c24;       /* 深い臙脂 */
  --accent-dark:#6e141b;
  --gold:#a98847;         /* アンティークゴールド（細罫・小飾り） */
  --gold-soft:#d8c9a6;
  --hair:#ddd1b8;         /* ベージュ地の罫線 */
  --line-green:#06c755; --line-green-dark:#05a847;
  --serif:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","YuMincho",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,"Yu Gothic Medium",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.9;
  -webkit-font-smoothing:antialiased;padding-bottom:78px;font-size:15px;}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{width:100%;max-width:720px;margin:0 auto;padding:0 24px;}
.wrap-wide{width:100%;max-width:960px;margin:0 auto;padding:0 24px;}
section{padding:92px 0;}

/* --- 明朝見出し・ラベル --- */
h1,h2,h3,.serif{font-family:var(--serif);font-weight:600;}
h2{font-size:1.7rem;line-height:1.6;letter-spacing:.02em;margin-bottom:10px;}
.label{font-family:var(--serif);font-size:.74rem;letter-spacing:.34em;color:var(--gold);
  text-transform:uppercase;display:inline-flex;align-items:center;gap:12px;margin-bottom:18px;}
.label::before{content:"";width:26px;height:1px;background:var(--gold);display:inline-block;}
.lead{color:var(--ink-soft);font-size:1rem;line-height:2;margin-bottom:8px;}
.hr-gold{width:44px;height:1px;background:var(--gold);border:0;margin:22px 0;}
.center{text-align:center;}
.center .label{justify-content:center;}

/* --- ボタン --- */
.btn-line{display:inline-flex;align-items:center;justify-content:center;gap:11px;
  background:var(--line-green);color:#fff;font-size:1rem;font-weight:700;font-family:var(--sans);
  text-decoration:none;padding:17px 30px;border-radius:2px;letter-spacing:.02em;
  box-shadow:0 6px 20px rgba(6,199,85,.22);transition:transform .18s,box-shadow .18s;}
.btn-line:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(6,199,85,.3);}
.btn-line .line-icon{width:24px;height:24px;flex-shrink:0;}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;font-family:var(--serif);font-size:.92rem;
  color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px;letter-spacing:.04em;}
.btn-peatix{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);
  color:var(--card);font-family:var(--serif);font-weight:600;font-size:.98rem;text-decoration:none;
  padding:16px 40px;border-radius:2px;letter-spacing:.06em;}
.btn-form{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid var(--accent);color:var(--accent);font-family:var(--serif);font-weight:600;
  text-decoration:none;padding:15px 36px;border-radius:2px;letter-spacing:.06em;background:transparent;
  transition:background .18s,color .18s;}
.btn-form:hover{background:var(--accent);color:#fff;}

/* --- header --- */
header.bar{position:sticky;top:0;z-index:100;background:rgba(243,236,221,.9);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--hair);}
header.bar .inner{max-width:960px;margin:0 auto;padding:0 24px;display:flex;align-items:center;
  justify-content:space-between;height:64px;gap:16px;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;}
.brand .seal{width:34px;height:34px;flex-shrink:0;}
.brand .nm{font-family:var(--serif);font-weight:600;font-size:1.04rem;letter-spacing:.06em;line-height:1.2;}
.brand .nm small{display:block;font-family:var(--serif);font-size:.54rem;letter-spacing:.28em;color:var(--gold);font-weight:600;}
.bar-right{display:flex;align-items:center;gap:22px;}
.bar-nav{display:flex;gap:22px;}
.bar-nav a{font-family:var(--serif);font-size:.9rem;color:var(--ink);text-decoration:none;letter-spacing:.06em;}
.bar-nav a:hover{color:var(--accent);}
.bar-cta{background:var(--accent);color:#fff;font-family:var(--serif);font-size:.84rem;font-weight:600;
  text-decoration:none;padding:10px 20px;border-radius:2px;white-space:nowrap;letter-spacing:.06em;}

/* --- hero --- */
.hero{background:radial-gradient(1200px 400px at 82% -12%, rgba(169,136,71,.12), transparent 60%), var(--paper);
  border-bottom:1px solid var(--hair);padding:74px 0 82px;}
.hero .wrap-wide{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;}
.hero .kicker{font-family:var(--serif);font-size:.78rem;letter-spacing:.34em;color:var(--gold);margin-bottom:22px;}
.hero .catch{font-family:var(--serif);font-size:2.85rem;font-weight:600;line-height:1.5;letter-spacing:.04em;}
.hero .catch .en{display:block;font-size:.78rem;letter-spacing:.3em;color:var(--ink-soft);margin-top:18px;font-weight:400;}
.hero .sub{color:var(--ink-soft);font-size:1rem;line-height:2.1;margin:26px 0 34px;}
.hero .cta-row{display:flex;align-items:center;gap:26px;flex-wrap:wrap;}

/* --- 写真プレースホルダ（上品な枠） --- */
.photo{background:linear-gradient(135deg,#efe6d3,#e6dcc6);border:1px solid var(--hair);position:relative;overflow:hidden;}
.photo::after{content:attr(data-cap);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:6px;font-family:var(--serif);color:#b0a184;font-size:.8rem;letter-spacing:.14em;text-align:center;padding:18px;line-height:1.7;}
.hero-figure .photo{aspect-ratio:4/5;}

/* --- editorial story --- */
.story{background:var(--card);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.story .wrap-wide{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:start;}
.story .lead-quote{font-family:var(--serif);font-size:1.5rem;line-height:1.95;color:var(--accent);letter-spacing:.03em;}
.story .lead-quote .g{color:var(--gold);}
.story p{font-size:.98rem;line-height:2.05;margin-bottom:18px;}
.story .sign{font-family:var(--serif);font-size:.9rem;color:var(--ink-soft);margin-top:8px;letter-spacing:.06em;}

/* --- stats --- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.stat{text-align:center;padding:26px 8px;border-right:1px solid var(--hair);}
.stat:last-child{border-right:none;}
.stat .num{font-family:var(--serif);font-size:2.1rem;color:var(--accent);line-height:1.2;font-weight:600;}
.stat .num small{font-size:.8rem;color:var(--ink);}
.stat .label2{font-size:.74rem;color:var(--ink-soft);margin-top:8px;letter-spacing:.08em;}

/* --- できること：editorial list --- */
.do-list{margin-top:14px;border-top:1px solid var(--hair);}
.do-item{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:baseline;
  padding:24px 4px;border-bottom:1px solid var(--hair);}
.do-item .no{font-family:var(--serif);font-size:1.05rem;color:var(--gold);letter-spacing:.1em;}
.do-item h3{font-family:var(--serif);font-size:1.14rem;font-weight:600;margin-bottom:4px;letter-spacing:.03em;}
.do-item p{font-size:.9rem;color:var(--ink-soft);line-height:1.9;}

/* --- instagram --- */
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:8px;}
.ig-grid .photo{aspect-ratio:1;}

/* --- event (front) --- */
.event{background:var(--paper-deep);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.event-card{background:var(--card);border:1px solid var(--hair);padding:40px 34px;text-align:center;}
.event-card .when{font-family:var(--serif);color:var(--gold);letter-spacing:.14em;font-size:.86rem;margin-bottom:12px;}
.event-card .ttl{font-family:var(--serif);font-size:1.4rem;font-weight:600;line-height:1.6;letter-spacing:.02em;}
.event-card .ttl a{text-decoration:none;}
.price-row{display:flex;justify-content:center;margin:28px 0;border:1px solid var(--hair);}
.price-row .price{flex:1;padding:22px 10px;border-right:1px solid var(--hair);}
.price-row .price:last-child{border-right:none;}
.price-row .price.member{background:#fbf3f2;}
.price-row .who{font-size:.76rem;color:var(--ink-soft);letter-spacing:.1em;margin-bottom:6px;}
.price-row .amt{font-family:var(--serif);font-size:1.5rem;color:var(--ink);font-weight:600;}
.price-row .price.member .amt{color:var(--accent);}

/* --- event list / single --- */
.page-head{background:var(--paper);border-bottom:1px solid var(--hair);text-align:center;padding:64px 0 48px;}
.page-head h1{font-family:var(--serif);font-size:2rem;font-weight:600;letter-spacing:.08em;}
.page-head p{color:var(--ink-soft);font-size:.95rem;margin-top:12px;}
.ev-list{display:flex;flex-direction:column;}
.ev-card{display:grid;grid-template-columns:150px 1fr;gap:26px;padding:26px 0;
  border-bottom:1px solid var(--hair);text-decoration:none;align-items:center;}
.ev-card:first-child{border-top:1px solid var(--hair);}
.ev-card .photo{aspect-ratio:4/3;}
.ev-card .when{font-family:var(--serif);color:var(--gold);font-size:.82rem;letter-spacing:.1em;margin-bottom:8px;}
.ev-card .when.past{color:var(--ink-soft);}
.ev-card h3{font-family:var(--serif);font-size:1.18rem;font-weight:600;line-height:1.6;margin-bottom:8px;letter-spacing:.02em;}
.ev-card .meta{font-size:.82rem;color:var(--ink-soft);}
.ev-card .excerpt{font-size:.85rem;color:var(--ink-soft);margin-top:8px;line-height:1.8;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ev-hero{background:var(--paper);border-bottom:1px solid var(--hair);padding:56px 0 40px;text-align:center;}
.ev-hero .when{font-family:var(--serif);color:var(--gold);letter-spacing:.14em;font-size:.88rem;margin-bottom:14px;}
.ev-hero h1{font-family:var(--serif);font-size:1.8rem;font-weight:600;line-height:1.6;letter-spacing:.03em;}
.ev-info{border-top:1px solid var(--hair);margin:26px 0 30px;}
.ev-info .row{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:15px 4px;border-bottom:1px solid var(--hair);font-size:.94rem;}
.ev-info .row .k{font-family:var(--serif);color:var(--gold);letter-spacing:.08em;font-size:.86rem;}
.ev-body{font-size:.98rem;line-height:2.05;margin-bottom:34px;}
.ev-body h3{font-family:var(--serif);margin:26px 0 10px;font-size:1.15rem;}
.ev-body p{margin-bottom:16px;}
.back-link{display:inline-flex;gap:8px;font-family:var(--serif);color:var(--accent);text-decoration:none;
  letter-spacing:.04em;margin-top:26px;}

/* --- sponsors --- */
.sponsors{text-align:center;}
.sp-row{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--hair);margin-top:8px;}
.sp{padding:34px 24px;text-decoration:none;border-right:1px solid var(--hair);}
.sp:last-child{border-right:none;}
.sp .logo-fr{height:56px;display:flex;align-items:center;justify-content:center;color:#b0a184;
  font-family:var(--serif);letter-spacing:.14em;font-size:.8rem;margin-bottom:16px;border-bottom:1px solid var(--hair);padding-bottom:16px;}
.sp .nm{font-family:var(--serif);font-weight:600;font-size:1.05rem;letter-spacing:.04em;}
.sp .desc{font-size:.82rem;color:var(--ink-soft);margin-top:8px;line-height:1.8;}

/* --- membership --- */
.member-sec{background:var(--card);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);text-align:center;}
.steps{margin:28px 0 30px;border-top:1px solid var(--hair);text-align:left;}
.step{display:grid;grid-template-columns:auto 1fr;gap:24px;padding:24px 4px;border-bottom:1px solid var(--hair);align-items:baseline;}
.step .no{font-family:var(--serif);font-size:1.4rem;color:var(--gold);line-height:1;}
.step .t{font-family:var(--serif);font-weight:600;font-size:1.08rem;letter-spacing:.02em;}
.step .d{font-size:.86rem;color:var(--ink-soft);line-height:1.85;margin-top:2px;}
.fee{font-family:var(--serif);color:var(--ink-soft);font-size:.86rem;margin-top:14px;letter-spacing:.06em;}

/* --- faq --- */
details{border-bottom:1px solid var(--hair);}
summary{padding:20px 40px 20px 4px;font-family:var(--serif);font-size:1rem;font-weight:600;cursor:pointer;
  list-style:none;position:relative;letter-spacing:.02em;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"＋";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--gold);font-weight:400;}
details[open] summary::after{content:"−";}
details .ans{padding:0 4px 20px;font-size:.9rem;color:var(--ink-soft);line-height:1.9;}

/* --- footer --- */
footer{background:var(--ink);color:#d8cebe;text-align:center;padding:64px 0 40px;}
footer .seal{width:44px;height:44px;margin:0 auto 16px;}
footer .fn{font-family:var(--serif);color:#fff;font-size:1.2rem;letter-spacing:.1em;margin-bottom:6px;}
footer .tagline{font-family:var(--serif);font-size:.82rem;color:var(--gold-soft);letter-spacing:.18em;}
footer .info{font-size:.82rem;line-height:2;margin-top:18px;color:#b8ae9e;}
footer a{color:#d8cebe;}
.sns{display:flex;gap:14px;justify-content:center;margin:22px 0;}
.sns a{font-family:var(--serif);font-size:.8rem;letter-spacing:.14em;color:#d8cebe;text-decoration:none;
  border:1px solid rgba(216,206,190,.3);padding:8px 16px;border-radius:2px;}
.sns a:hover{border-color:var(--gold);color:var(--gold-soft);}

/* --- float cta --- */
.float-cta{position:fixed;bottom:0;left:0;right:0;background:rgba(253,250,243,.96);
  backdrop-filter:blur(10px);border-top:1px solid var(--hair);padding:11px 16px;z-index:200;text-align:center;}
.float-cta .btn-line{width:100%;max-width:460px;padding:14px 20px;}

@media(max-width:820px){
  .hero .wrap-wide,.story .wrap-wide{grid-template-columns:1fr;gap:36px;}
  .hero .catch{font-size:2.2rem;}
  .hero-figure .photo{aspect-ratio:16/10;}
}
@media(max-width:560px){
  section{padding:66px 0;}
  h2{font-size:1.44rem;}
  .hero .catch{font-size:1.95rem;}
  .do-item{grid-template-columns:1fr;gap:6px;}
  .ev-card{grid-template-columns:96px 1fr;gap:16px;}
  .bar-nav{display:none;}
}

/* ===== v3: 文字大きめ・非対称で視線移動・モーション ===== */
body{font-size:16.5px;}
h2{font-size:2.1rem;line-height:1.55;}
.lead{font-size:1.1rem;}
.label{font-size:.78rem;}
.hero .wrap-wide{grid-template-columns:1.15fr .85fr;gap:44px;}
.hero .kicker{font-size:.84rem;}
.hero .catch{font-size:3rem;}
.hero .sub{font-size:1.12rem;}
.story .lead-quote{font-size:1.85rem;}
.story p{font-size:1.08rem;}
.story .sign{font-size:.98rem;}
.stat .num{font-size:2.6rem;}
.stat .label2{font-size:.82rem;}
.do-item{padding:34px 6px;align-items:center;}
.do-item .no{font-size:2.6rem;opacity:.85;line-height:1;}
.do-item h3{font-size:1.34rem;margin-bottom:8px;}
.do-item p{font-size:1.02rem;}
.do-item:nth-child(even){grid-template-columns:1fr auto;text-align:right;}
.do-item:nth-child(even) .no{order:2;}
.event-card{padding:50px 36px;}
.event-card .when{font-size:.96rem;}
.event-card .ttl{font-size:1.74rem;}
.price-row .who{font-size:.84rem;}
.price-row .amt{font-size:1.9rem;}
.step{padding:30px 6px;}
.step .no{font-size:2.1rem;}
.step .t{font-size:1.26rem;}
.step .d{font-size:.96rem;}
.sp .nm{font-size:1.16rem;}
.sp .desc{font-size:.92rem;}
summary{font-size:1.1rem;}
details .ans{font-size:1rem;}
.page-head h1{font-size:2.45rem;}
.ev-hero h1{font-size:2.15rem;}
.ev-card h3{font-size:1.34rem;}
.ev-body{font-size:1.06rem;}

/* interactions */
.btn-line,.btn-peatix,.btn-form,.event-card,.sp,.ev-card,.bar-cta{transition:transform .2s ease,box-shadow .2s ease,background .22s ease,color .22s ease;}
.event-card:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(32,28,23,.10);}
.sp:hover{background:#faf5ea;}
.ev-card:hover h3{color:var(--accent);}
.bar-cta:hover{background:var(--accent-dark);}

/* scroll reveal + hero intro */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
  .reveal.in{opacity:1;transform:none;}
  .stagger>*{opacity:0;transform:translateY(24px);transition:opacity .66s cubic-bezier(.2,.7,.2,1),transform .66s cubic-bezier(.2,.7,.2,1);}
  .stagger.in>*{opacity:1;transform:none;}
  .stagger.in>*:nth-child(2){transition-delay:.09s;}
  .stagger.in>*:nth-child(3){transition-delay:.18s;}
  .stagger.in>*:nth-child(4){transition-delay:.27s;}
  .stagger.in>*:nth-child(5){transition-delay:.36s;}
  .stagger.in>*:nth-child(6){transition-delay:.45s;}
  .hero-copy>*{opacity:0;transform:translateY(22px);animation:heroIn .9s cubic-bezier(.2,.7,.2,1) forwards;}
  .hero-copy>*:nth-child(2){animation-delay:.1s;}
  .hero-copy>*:nth-child(3){animation-delay:.2s;}
  .hero-copy>*:nth-child(4){animation-delay:.3s;}
  .hero-figure{opacity:0;animation:heroIn 1s cubic-bezier(.2,.7,.2,1) .25s forwards;}
  @keyframes heroIn{to{opacity:1;transform:none;}}
}

/* mobile re-tune（最後に置く） */
@media(max-width:560px){
  .hero .catch{font-size:1.9rem;letter-spacing:.02em;}
  h2{font-size:1.62rem;}
  .story .lead-quote{font-size:1.5rem;}
  .do-item,.do-item:nth-child(even){grid-template-columns:auto 1fr;text-align:left;}
  .do-item:nth-child(even) .no{order:0;}
  .do-item .no{font-size:2.1rem;}
  .event-card .ttl{font-size:1.46rem;}
  .stat .num{font-size:2.1rem;}
  .page-head h1{font-size:2rem;}
}

/* ===== v4: ゆったり余白 ＋ お知らせ一覧 ===== */
body{line-height:2.0;}
section{padding:128px 0;}
section > .center + .wrap{margin-top:30px;}
h2{margin-bottom:16px;}
.label{margin-bottom:24px;}
.lead{margin-bottom:16px;line-height:2.05;}
.hr-gold{margin:30px 0;}
.hero{padding:100px 0 108px;}
.hero .sub{margin:32px 0 40px;}
.hero .cta-row{gap:32px;}
.story .wrap-wide{gap:76px;}
.story p{margin-bottom:26px;line-height:2.15;}
.story .sign{margin-top:18px;}
.stats{margin-top:60px;}
.stat{padding:38px 8px;}
.do-list{margin-top:24px;}
.do-item{padding:46px 8px;gap:34px;}
.event-card{padding:66px 46px;}
.price-row{margin:40px 0;}
.price-row .price{padding:30px 10px;}
.ig-grid{gap:4px;margin-top:14px;}
.steps{margin:40px 0 40px;}
.step{padding:40px 8px;gap:34px;}
.sp{padding:48px 34px;}
.sp .logo-fr{margin-bottom:22px;padding-bottom:22px;}
summary{padding:28px 44px 28px 4px;}
details .ans{padding-bottom:26px;line-height:2;}

/* お知らせ一覧（WP投稿：お知らせ） */
.news-list{border-top:1px solid var(--hair);margin-top:26px;}
.news-row{display:grid;grid-template-columns:auto auto 1fr;gap:22px;align-items:baseline;
  padding:24px 4px;border-bottom:1px solid var(--hair);text-decoration:none;}
.news-row .date{font-family:var(--serif);color:var(--gold);font-size:.9rem;letter-spacing:.06em;white-space:nowrap;}
.news-row .cat{font-family:var(--serif);font-size:.72rem;color:var(--accent);border:1px solid var(--accent);
  padding:3px 12px;white-space:nowrap;letter-spacing:.08em;align-self:center;}
.news-row .t{font-size:1.04rem;color:var(--ink);line-height:1.7;}
.news-row:hover .t{color:var(--accent);}

@media(max-width:560px){
  section{padding:88px 0;}
  .hero{padding:70px 0 78px;}
  .do-item{padding:34px 6px;gap:22px;}
  .event-card{padding:44px 24px;}
  .step{padding:30px 6px;gap:22px;}
  .story .wrap-wide{gap:44px;}
  .news-row{grid-template-columns:auto 1fr;gap:6px 16px;}
  .news-row .cat{grid-row:1;grid-column:2;justify-self:start;}
  .news-row .t{grid-column:1 / -1;}
}

/* stack hero/story on tablet & mobile（v3の2カラム指定を最後に上書き） */
@media(max-width:820px){
  .hero .wrap-wide,.story .wrap-wide{grid-template-columns:1fr !important;gap:40px;}
  .hero-figure .photo{aspect-ratio:16/10;}
}

/* ============================================================
   v5: 引き継ぎ指示書（GPT）反映 — 均一/対称を崩して強弱をつける
   ※指示書の変数 --bdr/--dark/--muted/--acc は当テーマの
     --hair/--ink/--ink-soft/--accent にマッピング
   ============================================================ */

/* 1. ヒーロー：余白を詰めてキャッチに塊感 */
.hero{padding:64px 0 72px;}
.hero .catch{line-height:1.2;letter-spacing:-0.01em;}

/* 2. stats：数字を極端に大きく・左寄せでリズムを崩す */
.stats{display:flex;justify-content:flex-start;gap:0;margin-top:0;padding-top:48px;border:none;}
.stat{padding:0 48px 0 0;border-right:1px solid var(--hair);border-top:none;margin-right:48px;text-align:left;min-width:140px;}
.stat:last-child{border-right:none;margin-right:0;padding-right:0;}
.stat .num{font-size:80px;line-height:1;font-weight:700;color:var(--ink);}
.stat .num small{font-size:.35em;font-weight:400;color:var(--ink);}
.stat .label2{font-size:11px;letter-spacing:.1em;margin-top:8px;color:var(--ink-soft);}

/* 3. Instagram：マガジン風（1枚大＋4枚＝3+2構成） */
.ig-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:1fr;gap:6px;max-width:700px;margin:14px auto 0;}
.ig-grid .photo{aspect-ratio:1;}
.ig-grid .photo:first-child{grid-row:1 / 3;aspect-ratio:auto;}
.ig-grid .photo:nth-child(6){display:none;}

/* 4. 価格：対称を崩し会員価格を強調 */
.price-row{display:flex;align-items:flex-end;justify-content:center;gap:32px;margin:24px 0;border:none;}
.price{border:none;background:none;padding:0;flex:0 0 auto;text-align:left;}
.price.member{background:none;}
.price .who{font-size:11px;color:var(--ink-soft);letter-spacing:.08em;margin-bottom:6px;}
.price .amt{font-size:22px;color:var(--ink-soft);font-weight:400;}
.price.member .who{color:var(--accent);font-weight:600;}
.price.member .amt{font-size:40px;font-weight:700;color:var(--accent);}

/* 5. セクション余白：役割で変化させる */
.story{padding-block:120px 80px;}
section:has(.steps),.member-sec{padding-block:80px;}
.sponsors{padding-block:60px;}
section:last-of-type{padding-block:100px;}

/* 6. ボタン序列：Peatix申込は補助に格下げ */
.btn-peatix{font-size:13px;padding:10px 24px;letter-spacing:.06em;opacity:.85;}

/* v5 mobile 調整 */
@media(max-width:560px){
  .hero{padding:44px 0 52px;}
  .stats{padding-top:36px;}
  .stat{min-width:0;padding-right:18px;margin-right:18px;}
  .stat .num{font-size:44px;}
  .ig-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;}
  .ig-grid .photo:first-child{grid-row:auto;aspect-ratio:1;}
  .price-row{gap:22px;}
  .price.member .amt{font-size:34px;}
}

/* ============================================================
   v6: レビュー反映（コピー整え＋ボタン統一＋SNSアイコン等）
   ============================================================ */
/* 英語キャッチの字間を詰める（トラッキング過多の解消） */
.hero .catch .en{letter-spacing:.06em;}
/* 英語キャッチ↔本文の間隔を広げる */
.hero .sub{margin-top:44px;}
/* 会員申込ボタンを"塗り"に統一（LINEと同じ塊感の主要CTA） */
.btn-form{background:var(--accent);color:#fff;border:none;padding:17px 44px;border-radius:2px;}
.btn-form:hover{background:var(--accent-dark);color:#fff;}
/* Instagram：実写真は必ずセルを埋める（アスペクト崩れ防止） */
.ig-grid .photo img,.ig-grid img{width:100%;height:100%;object-fit:cover;display:block;}
/* フローティングLINE：ヒーローを抜けてから出す */
.float-cta{transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.float-cta.show{transform:none;}
/* フッターSNS：アイコン＋ラベルで識別性を上げる */
.sns{flex-wrap:wrap;}
.sns a{display:inline-flex;align-items:center;gap:8px;}
.sns a svg{width:18px;height:18px;flex-shrink:0;}
@media(max-width:560px){
  .sns a{padding:7px 13px;font-size:.74rem;letter-spacing:.08em;}
  .sns a svg{width:16px;height:16px;}
}
/* ヘッダーのLINEチップにもロゴを添える（LINE表現を統一） */
.bar-cta{display:inline-flex;align-items:center;gap:7px;}
.bar-cta svg{width:15px;height:15px;flex-shrink:0;}

/* ===== v7: イベント詳細への導線を明確化 ===== */
.ev-card{position:relative;}
.ev-card .more{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-family:var(--serif);
  color:var(--accent);font-size:.86rem;letter-spacing:.04em;font-weight:600;}
.ev-card .more::after{content:"→";transition:transform .2s ease;}
.ev-card:hover .more::after{transform:translateX(5px);}
.ev-card:hover h3{color:var(--accent);}
.event-card .ev-detail{display:inline-block;margin:2px 0 8px;font-family:var(--serif);color:var(--accent);
  font-size:.92rem;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px;}
.event-card .ev-detail:hover{color:var(--accent-dark);}

/* ============================================================
   v8: 味付け — 和紙の質感・縦書き・臙脂の面・判子・透かし文字
   ============================================================ */

/* 全体に和紙の粒子（ごく薄いノイズ） */
body::after{content:"";position:fixed;inset:0;z-index:999;pointer-events:none;
  mix-blend-mode:multiply;opacity:.55;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="160" height="160"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="2" stitchTiles="stitch"/><feColorMatrix type="saturate" values="0"/><feComponentTransfer><feFuncA type="linear" slope="0.055"/></feComponentTransfer></filter><rect width="160" height="160" filter="url(%23n)"/></svg>');}

/* キャッチの句点だけ朱 */
.catch .maru{color:var(--accent);}

/* 透かし文字（セクションの奥に大きな一文字） */
section{position:relative;overflow:hidden;}
.ghost{position:absolute;top:18px;right:3%;font-family:var(--serif);font-weight:600;
  font-size:230px;line-height:1;color:rgba(169,136,71,.09);pointer-events:none;user-select:none;z-index:0;}

/* ストーリーの引用を縦書きに（PCのみ） */
@media(min-width:821px){
  .story .lead-quote{writing-mode:vertical-rl;height:300px;line-height:2.3;justify-self:center;
    font-size:1.6rem;letter-spacing:.14em;}
}

/* 署名に落款（判子） */
.hanko{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;
  background:var(--accent);color:#f6efe0;font-family:var(--serif);font-size:1.02rem;
  border-radius:3px;margin-left:12px;vertical-align:middle;}

/* ヒーロー写真に金のオフセット枠（二重枠） */
.hero-figure{position:relative;z-index:0;}
.hero-figure::before{content:"";position:absolute;top:16px;left:16px;width:100%;height:100%;
  border:1px solid var(--gold);z-index:-1;}

/* イベントカードに金の上罫 */
.event-card{border-top:2px solid var(--gold);}

/* 有料会員セクション＝臙脂の面（ページ中盤の色の見せ場） */
.member-sec{background:linear-gradient(165deg,#71151b 0%,#5c1015 100%);border-top:none;border-bottom:none;}
.member-sec .label{color:var(--gold-soft);}
.member-sec .label::before{background:var(--gold-soft);}
.member-sec h2{color:#f6efe0;}
.member-sec .lead{color:#cdbba6;}
.member-sec .steps,.member-sec .step{border-color:rgba(216,201,166,.25);}
.member-sec .step .no{color:var(--gold-soft);}
.member-sec .step .t{color:#f6efe0;}
.member-sec .step .d{color:#c9b8a3;}
.member-sec .btn-form{background:#f6efe0;color:#6e141b;border:none;}
.member-sec .btn-form:hover{background:#fff;color:#5c1015;}
.member-sec .fee{color:#cdbba6;}
.member-sec .ghost{color:rgba(246,239,224,.06);}

@media(max-width:560px){
  .ghost{font-size:120px;top:10px;right:-2%;}
  .hero-figure::before{top:10px;left:10px;}
}

/* ============================================================
   v9: キャッチー転換 — 明朝→丸ゴ・朱×山吹・手書きラベル・
       マスキングテープ・蛍光マーカー・写真の傾き
   ============================================================ */
:root{
  --serif:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic Medium',sans-serif;
  --hand:'Yusei Magic','Zen Maru Gothic',sans-serif;
  --accent:#d8442e; --accent-dark:#b8371f;
  --gold:#dfa032; --gold-soft:#f0c97c;
  --paper:#f8f2e5; --paper-deep:#f1e7d2; --card:#fffdf7;
}

/* 見出し・ラベルの声を変える */
h1,h2,h3{font-weight:900;}
.label{font-family:var(--hand);font-size:1rem;letter-spacing:.04em;text-transform:none;color:var(--accent);}
.label::before{display:none;}
.hero .kicker{font-family:var(--hand);letter-spacing:.1em;font-size:.98rem;color:var(--accent);}
.hero .catch{font-weight:900;letter-spacing:.02em;}
footer .tagline{font-family:var(--hand);letter-spacing:.1em;}

/* ボタンは丸く・太く */
.btn-line,.btn-peatix,.btn-form,.bar-cta{border-radius:999px;font-family:var(--sans);font-weight:800;}
.btn-peatix{padding:14px 38px;}

/* 蛍光マーカー */
.mk{background:linear-gradient(transparent 58%, rgba(240,201,124,.65) 58%, rgba(240,201,124,.65) 92%, transparent 92%);padding:0 2px;}

/* 写真・カードの丸みと傾き */
.photo{border-radius:12px;}
.ig-grid{gap:10px;}
.ig-grid .photo:nth-child(odd){transform:rotate(-1.3deg);}
.ig-grid .photo:nth-child(even){transform:rotate(1.1deg);}
.event-card{border-radius:18px;position:relative;}
.sp-row{border-radius:16px;overflow:hidden;}
.news-row .cat{border-radius:999px;padding:3px 14px;}

/* マスキングテープ（写真・イベントカードを貼った風） */
.hero-figure .photo::before{content:"";position:absolute;top:-12px;left:16%;width:96px;height:26px;
  transform:rotate(-7deg);background:rgba(240,201,124,.82);box-shadow:0 1px 3px rgba(0,0,0,.08);z-index:3;}
.event-card::before{content:"";position:absolute;top:-12px;left:50%;width:112px;height:26px;
  transform:translateX(-50%) rotate(-3deg);background:rgba(240,201,124,.82);
  box-shadow:0 1px 3px rgba(0,0,0,.08);z-index:3;}

/* 透かし文字・数字も朱に */
.ghost{color:rgba(216,68,46,.07);}
.stat .num{color:var(--accent);font-weight:900;}

/* 有料会員の面：深臙脂→明るい朱 */
.member-sec{background:linear-gradient(165deg,#c14a2e 0%,#a13820 100%);}
.member-sec .label{color:#ffd9a1;}
.member-sec .step .no{color:#ffd9a1;}
.member-sec .lead,.member-sec .fee,.member-sec .step .d{color:#f3cdb9;}
.member-sec .steps,.member-sec .step{border-color:rgba(255,255,255,.28);}
.member-sec .btn-form{background:#fffdf7;color:#b8371f;}
.member-sec .btn-form:hover{background:#fff;color:#a13820;}
.member-sec .ghost{color:rgba(255,255,255,.08);}

@media(max-width:560px){
  .hero-figure .photo::before{width:74px;top:-10px;}
}

/* ============================================================
   v10: きっちり×キャッチー — 上映会LPの規律とあしらいを移植
   （手書き/傾き/テープ/マーカー撤去・太ゴシック・3Dボタン・
     番号サークル・カード化・ヘルパータグ）
   ============================================================ */
:root{
  --serif:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Hiragino Sans',sans-serif;
  --accent:#c73e28; --accent-dark:#a8331f;
}

/* 見出し＝太い角ゴシック（丸ゴ全面をやめる） */
h1,h2,h3{font-weight:900;letter-spacing:.01em;}

/* ラベル＝eyebrow方式（手書きフォント廃止） */
.label,.hero .kicker{font-family:var(--sans);font-size:.84rem;font-weight:800;
  letter-spacing:.05em;color:var(--accent-dark);}
footer .tagline{font-family:var(--sans);letter-spacing:.14em;}

/* 子供要素の撤去 */
.ig-grid .photo:nth-child(odd),.ig-grid .photo:nth-child(even){transform:none;}
.hero-figure .photo::before,.event-card::before{display:none;}
.mk{background:none;padding:0;font-weight:800;color:var(--accent-dark);}

/* 縦書き引用→横の大ゴシックに（ゴシックの縦組みは間延びするため） */
@media(min-width:821px){
  .story .lead-quote{writing-mode:horizontal-tb;height:auto;justify-self:start;
    font-size:1.8rem;line-height:1.75;letter-spacing:.02em;}
}

/* 3Dボタン（押し込み）＝上映会LPのCTA作法 */
.btn-line{box-shadow:0 4px 0 var(--line-green-dark);}
.btn-line:hover{transform:translateY(-1px);box-shadow:0 5px 0 var(--line-green-dark);}
.btn-line:active{transform:translateY(2px);box-shadow:0 2px 0 var(--line-green-dark);}
.btn-peatix{box-shadow:0 4px 0 rgba(0,0,0,.32);}
.btn-peatix:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.32);}
.member-sec .btn-form{box-shadow:0 4px 0 rgba(0,0,0,.22);}
.member-sec .btn-form:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.22);}

/* ヘルパータグ（ヒーローCTA下の安心材料ピル） */
.helper{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}
.helper span{background:#f7e3d3;color:#8a4a2e;font-size:.78rem;font-weight:700;
  padding:5px 13px;border-radius:999px;}

/* できること＝カード化＋番号サークル（罫線の行→整ったカード） */
.do-list{border-top:none;display:grid;gap:12px;}
.do-item{background:var(--card);border:1px solid var(--hair);border-bottom:1px solid var(--hair);
  border-radius:14px;padding:20px 22px;align-items:center;}
.do-item,.do-item:nth-child(even){grid-template-columns:auto 1fr;text-align:left;}
.do-item:nth-child(even) .no{order:0;}
.do-item .no{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;
  font-size:.92rem;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:0;}

/* 会員ステップも番号サークル */
.member-sec .step .no{width:36px;height:36px;border-radius:50%;background:#ffd9a1;color:#a8331f;
  font-size:.92rem;font-weight:800;display:flex;align-items:center;justify-content:center;}

/* イベントカード＝朱の太枠オファー */
.event-card{border:1.5px solid var(--accent);border-top:1.5px solid var(--accent);}

/* プレースホルダ写真＝ストライプ＋破線（仮置きが「設計済み」に見える） */
.photo{background:repeating-linear-gradient(45deg,#f3e6d5 0 12px,#efe0cd 12px 24px);
  border:1.5px dashed #d9c3a9;}

/* 会員の面は少しだけ深く（きっちり寄せ） */
.member-sec{background:linear-gradient(165deg,#b03d24 0%,#93301a 100%);}

/* ============================================================
   v11: イベントをリンクカード式に統一
   （価格表つきオファーカード廃止＝投稿の埋まり方に依存しない）
   ============================================================ */
.ev-list{gap:14px;}
.ev-card{background:var(--card);border:1px solid var(--hair);border-radius:14px;
  padding:16px 18px;grid-template-columns:150px 1fr;gap:20px;}
.ev-card:first-child{border-top:1px solid var(--hair);}
.ev-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(32,28,23,.08);}
.ev-card .photo{border-radius:10px;}
.ev-card .price-mini{font-size:.85rem;color:var(--ink-soft);margin-top:6px;}
.ev-card .price-mini b{color:var(--accent-dark);font-weight:800;}
@media(max-width:560px){.ev-card{grid-template-columns:96px 1fr;gap:14px;padding:14px;}}

/* ============================================================
   v12: 代表のポートレートをストーリー欄に追加
   ============================================================ */
.story-side{display:flex;flex-direction:column;gap:28px;}
.portrait .photo{aspect-ratio:4/5;border-radius:14px;}
.portrait .cap{font-size:.8rem;font-weight:700;color:var(--ink-soft);margin-top:10px;text-align:center;letter-spacing:.04em;}
@media(max-width:820px){
  .portrait{max-width:280px;margin:0 auto;}
}

/* ============================================================
   v13: カラー刷新 — 紺×コーラル×白
   （デザインパターン集③「信頼・スマート」ベース。
     紺=信頼の構造色 / コーラル=行動・楽しさ / 白地=クリーン）
   ============================================================ */
:root{
  --paper:#ffffff; --paper-deep:#eef2f8; --card:#ffffff;
  --ink:#1f2733; --ink-soft:#5c6675;
  --primary:#1d3d6f; --primary-dark:#14294d;
  --accent:#1d3d6f; --accent-dark:#14294d;   /* 構造アクセント＝紺 */
  --coral:#f0603a; --coral-dark:#d84f2b;      /* 行動アクセント＝コーラル */
  --gold:#7d8ba6; --gold-soft:#9fb3d1;        /* 旧金→スレート（日付・補助線） */
  --hair:#e2e7ef;
  --en:'Inter','Helvetica Neue',Arial,sans-serif;
}
body{background:var(--paper);}
header.bar{background:rgba(255,255,255,.92);}
.hero{background:radial-gradient(1100px 380px at 85% -10%, rgba(29,61,111,.07), transparent 60%), #fff;}
.story{background:#f7f9fc;}
.event{background:#eef2f8;}
.float-cta{background:rgba(255,255,255,.95);}

/* プレースホルダをクール系に */
.photo{background:repeating-linear-gradient(45deg,#eef1f7 0 12px,#e7ebf3 12px 24px);border-color:#c9d3e4;}
.photo::after{color:#8794ab;}

/* LINE導線はLINE緑に統一（ヘッダーも） */
.bar-cta{background:var(--line-green);}
.bar-cta:hover{background:var(--line-green-dark);}

/* 行動色＝コーラルの割り当て */
.catch .maru{color:var(--coral);}
.mk{color:var(--coral-dark);}
.hanko{background:#e0432f;}
.ev-card .more{color:var(--coral-dark);}
.ev-card:hover h3{color:var(--primary);}
.price-mini b{color:var(--coral-dark);}
.news-row:hover .t{color:var(--primary);}
.helper span{background:#e9eef6;color:#2c4d7f;}
.btn-form{background:var(--coral);color:#fff;box-shadow:0 4px 0 var(--coral-dark);}
.btn-form:hover{background:var(--coral-dark);color:#fff;}
.btn-peatix{background:var(--primary);color:#fff;box-shadow:0 4px 0 var(--primary-dark);}

/* 数字は欧文フォントで締める（パターン③の作法） */
.stat .num{color:var(--primary);font-family:var(--en);}
.ghost{color:rgba(29,61,111,.06);}

/* 有料会員の面＝紺（信頼のクライマックス） */
.member-sec{background:linear-gradient(165deg,#1e3f73 0%,#14294d 100%);}
.member-sec .label{color:#9fc0ee;}
.member-sec .step .no{background:#fff;color:#14294d;}
.member-sec .lead,.member-sec .fee,.member-sec .step .d{color:#b9c8de;}
.member-sec .steps,.member-sec .step{border-color:rgba(255,255,255,.22);}
.member-sec .btn-form{background:var(--coral);color:#fff;box-shadow:0 4px 0 rgba(0,0,0,.28);}
.member-sec .ghost{color:rgba(255,255,255,.06);}

/* フッター＝濃紺 */
footer{background:var(--primary-dark);color:#c3cede;}
footer .tagline{color:#9fb3d1;}
footer .info{color:#94a5be;}
footer a{color:#c3cede;}
.sns a{border-color:rgba(195,206,222,.35);color:#c3cede;}

/* ============================================================
   v14: 透かし漢字を撤去 → セクション区切りを波線に
   （色が変わる境目に、次セクション色の波を重ねる）
   ============================================================ */
.ghost{display:none;}
section{overflow:visible;}

[class*="wave-"]{position:relative;}
[class*="wave-"]::before{content:"";position:absolute;top:-22px;left:0;width:100%;height:23px;
  pointer-events:none;background-repeat:repeat-x;background-position:bottom;background-size:150px 23px;}

.wave-white::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 24" preserveAspectRatio="none"><path d="M0 12 C20 4 40 4 60 12 C80 20 100 20 120 12 L120 24 L0 24 Z" fill="%23ffffff"/></svg>');}
.wave-gray::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 24" preserveAspectRatio="none"><path d="M0 12 C20 4 40 4 60 12 C80 20 100 20 120 12 L120 24 L0 24 Z" fill="%23f7f9fc"/></svg>');}
.wave-blue::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 24" preserveAspectRatio="none"><path d="M0 12 C20 4 40 4 60 12 C80 20 100 20 120 12 L120 24 L0 24 Z" fill="%23eef2f8"/></svg>');}
.wave-navy::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 24" preserveAspectRatio="none"><path d="M0 12 C20 4 40 4 60 12 C80 20 100 20 120 12 L120 24 L0 24 Z" fill="%231e3f73"/></svg>');}
.wave-deep::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 24" preserveAspectRatio="none"><path d="M0 12 C20 4 40 4 60 12 C80 20 100 20 120 12 L120 24 L0 24 Z" fill="%2314294d"/></svg>');}

@media(max-width:560px){
  [class*="wave-"]::before{background-size:110px 18px;height:18px;top:-17px;}
}

/* ============================================================
   v15: あしらいリッチ化 — 見出しロックアップ・ロゴ刷新・
        行マスク演出・左右リビール・写真ズーム・数字カウント
   ============================================================ */

/* 見出しロックアップ：英字タグ(コーラル)＋和文ラベル(紺)＋ルール線 */
.label .en{font-family:var(--en);font-weight:800;font-size:.7rem;letter-spacing:.22em;
  color:var(--coral);margin-right:10px;vertical-align:1px;}
.label .en:last-child{margin-right:0;}
.h-rule{display:block;width:28px;height:3px;border-radius:2px;background:var(--coral);
  margin:16px auto 0;transform:scaleX(0);transform-origin:center;
  transition:transform .6s cubic-bezier(.2,.7,.2,1) .25s;}
.reveal.in .h-rule{transform:scaleX(1);}
.h-rule + .lead{margin-top:18px;}
.member-sec .label .en{color:#ff9d7e;}

@media (prefers-reduced-motion:no-preference){
  /* ヒーロー：キャッチは行マスクでせり上がり、他は時間差フェード */
  .hero-copy>*{animation:none;opacity:1;transform:none;}
  .catch .ln{display:inline-block;overflow:hidden;vertical-align:bottom;}
  .catch .ln>span{display:inline-block;transform:translateY(112%);
    animation:lnUp .85s cubic-bezier(.2,.7,.2,1) forwards;}
  .catch br + .ln>span{animation-delay:.14s;}
  @keyframes lnUp{to{transform:none;}}
  .hero-copy .kicker,.hero-copy .sub,.hero-copy .cta-row,.hero-copy .helper{
    opacity:0;transform:translateY(18px);animation:heroIn .8s cubic-bezier(.2,.7,.2,1) forwards;}
  .hero-copy .kicker{animation-delay:0s;}
  .hero-copy .sub{animation-delay:.28s;}
  .hero-copy .cta-row{animation-delay:.42s;}
  .hero-copy .helper{animation-delay:.54s;}
  .hero-figure{opacity:0;transform:scale(1.045);animation:heroPhoto 1.15s cubic-bezier(.2,.7,.2,1) .3s forwards;}
  @keyframes heroPhoto{to{opacity:1;transform:none;}}

  /* ストーリーは左右から */
  .story .story-side{transform:translateX(-30px);}
  .story .story-body{transform:translateX(30px);}
  .story .story-side.in,.story .story-body.in{transform:none;}
}

/* イベントカード：写真がゆっくりズーム */
.ev-card img.photo,.ev-card .photo{transition:transform .55s cubic-bezier(.2,.7,.2,1);}
.ev-card:hover img.photo,.ev-card:hover .photo{transform:scale(1.045);}

/* ============================================================
   v16: 北信越の地域性 — 波を「日本海のうねり」に（波長2倍・低起伏）、
        フッターは山並みの稜線、会員の面に七宝紋（ご縁）
   ============================================================ */

/* 日本海のうねり：長い波長・低い起伏で大人の水面に */
[class*="wave-"]::before{background-size:260px 20px;height:20px;top:-19px;}
.wave-white::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 20" preserveAspectRatio="none"><path d="M0 10 C40 3 80 3 120 10 C160 17 200 17 240 10 L240 20 L0 20 Z" fill="%23ffffff"/></svg>');}
.wave-gray::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 20" preserveAspectRatio="none"><path d="M0 10 C40 3 80 3 120 10 C160 17 200 17 240 10 L240 20 L0 20 Z" fill="%23f7f9fc"/></svg>');}
.wave-blue::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 20" preserveAspectRatio="none"><path d="M0 10 C40 3 80 3 120 10 C160 17 200 17 240 10 L240 20 L0 20 Z" fill="%23eef2f8"/></svg>');}
.wave-navy::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 20" preserveAspectRatio="none"><path d="M0 10 C40 3 80 3 120 10 C160 17 200 17 240 10 L240 20 L0 20 Z" fill="%231e3f73"/></svg>');}

/* フッター＝北信越の山並み（稜線シルエット） */
footer.wave-deep::before{top:-33px;height:34px;background-size:360px 34px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 360 36" preserveAspectRatio="none"><path d="M0 26 L36 12 L64 22 L104 6 L142 24 L178 10 L214 27 L252 9 L292 22 L324 15 L360 26 L360 36 L0 36 Z" fill="%2314294d"/></svg>');}

/* 会員の面に七宝紋（ご縁の紋様）をうっすら */
.member-sec{position:relative;}
.member-sec::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40"><g fill="none" stroke="rgba(255,255,255,.05)" stroke-width="1"><circle cx="0" cy="0" r="20"/><circle cx="40" cy="0" r="20"/><circle cx="0" cy="40" r="20"/><circle cx="40" cy="40" r="20"/><circle cx="20" cy="20" r="20"/></g></svg>') repeat;
  background-size:44px 44px;}
.member-sec .wrap{position:relative;z-index:1;}

@media(max-width:560px){
  [class*="wave-"]::before{background-size:200px 15px;height:15px;top:-14px;}
  footer.wave-deep::before{background-size:300px 27px;height:27px;top:-26px;}
}

/* ============================================================
   v17: 和柄の透かしを全体へ（気配レベルの濃度・場所ごとに意味）
   青海波=日本海(ヒーロー/最終CTA) / 霞=物語(ストーリー) /
   市松=にぎわい(イベント) / 七宝=ご縁(会員・既存) / 白地は無地で呼吸
   ============================================================ */
[class*="pat-"]{position:relative;}
[class*="pat-"]::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background-repeat:repeat;}
[class*="pat-"]>.wrap,[class*="pat-"]>.wrap-wide{position:relative;z-index:1;}

/* 青海波（穏やかな波が続く） */
.pat-seigaiha::after{background-size:72px 36px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="72" height="36"><g fill="none" stroke="rgba(29,61,111,.05)" stroke-width="1"><circle cx="36" cy="36" r="34"/><circle cx="36" cy="36" r="26"/><circle cx="36" cy="36" r="18"/><circle cx="36" cy="36" r="10"/><circle cx="0" cy="36" r="34"/><circle cx="0" cy="36" r="26"/><circle cx="0" cy="36" r="18"/><circle cx="0" cy="36" r="10"/><circle cx="72" cy="36" r="34"/><circle cx="72" cy="36" r="26"/><circle cx="72" cy="36" r="18"/><circle cx="72" cy="36" r="10"/></g></svg>');}

/* 霞（雲取り） */
.pat-kasumi::after{background-size:160px 80px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="160" height="80"><g fill="rgba(29,61,111,.045)"><rect x="0" y="18" width="90" height="5" rx="2.5"/><rect x="60" y="48" width="100" height="5" rx="2.5"/></g></svg>');}

/* 市松（途切れない繁栄） */
.pat-ichimatsu::after{background-size:56px 56px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="56" height="56"><rect x="0" y="0" width="28" height="28" fill="rgba(29,61,111,.03)"/><rect x="28" y="28" width="28" height="28" fill="rgba(29,61,111,.03)"/></svg>');}

/* ============================================================
   v18: 透かしをさらに淡く（気づかないレベルへ・レイヤー一括制御）
   ============================================================ */
[class*="pat-"]::after{opacity:.42;}   /* 青海波・霞・市松 ≒ 実効1.3〜2% */
.member-sec::after{opacity:.5;}        /* 七宝 ≒ 実効2.5% */

/* ============================================================
   v19: 区切りを波→斜線に統一（右肩上がり・山並みも廃止）
   ※クラス名は wave-* のまま流用（HTML変更なしで差し替え）
   ============================================================ */
[class*="wave-"]::before{background-repeat:no-repeat;background-size:100% 30px;height:30px;top:-29px;}
.wave-white::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 30" preserveAspectRatio="none"><polygon points="0,30 100,0 100,30" fill="%23ffffff"/></svg>');}
.wave-gray::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 30" preserveAspectRatio="none"><polygon points="0,30 100,0 100,30" fill="%23f7f9fc"/></svg>');}
.wave-blue::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 30" preserveAspectRatio="none"><polygon points="0,30 100,0 100,30" fill="%23eef2f8"/></svg>');}
.wave-navy::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 30" preserveAspectRatio="none"><polygon points="0,30 100,0 100,30" fill="%231e3f73"/></svg>');}
footer.wave-deep::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 30" preserveAspectRatio="none"><polygon points="0,30 100,0 100,30" fill="%2314294d"/></svg>');background-size:100% 30px;height:30px;top:-29px;}

@media(max-width:560px){
  [class*="wave-"]::before,footer.wave-deep::before{background-size:100% 16px;height:16px;top:-15px;}
}

/* ============================================================
   v20: FVの窮屈さ解消（要素削減＋余白拡大）／ストーリーの柄を
        霞→青海波へ（低濃度だと霞は「横棒」に見えるため）
   ============================================================ */
.hero{padding:92px 0 100px;}
.hero .wrap-wide{gap:64px;}
.hero .kicker{margin-bottom:26px;}
.hero .sub{margin:30px 0 38px;line-height:2.15;}
.hero .helper{margin-top:24px;gap:10px;}
.hero-figure .photo{aspect-ratio:4/4.5;}
@media(max-width:820px){
  .hero{padding:64px 0 72px;}
  .hero .wrap-wide{gap:40px;}
}

/* ============================================================
   v21: 公式素材の採用 — ロゴピン（ヘッダー/フッター/ファビコン）
        ＋FVを実写動画に
   ============================================================ */
img.seal{width:36px;height:36px;object-fit:contain;display:block;}
footer img.seal{width:46px;height:46px;background:#fff;border-radius:50%;padding:6px;margin:0 auto 16px;}
.hero-video{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  border-radius:12px;border:1px solid var(--hair);background:#dfe6f0;}
@media(max-width:820px){
  .hero-video{aspect-ratio:16/10;}
}

/* ============================================================
   v22: FV再構成 — 動画をフルワイドでドカン＋キャッチコピー専用
        セクションを直下に（映像で感情→コピーで意味→ボタンで行動）
   ============================================================ */
.hero-movie{position:relative;padding:0;background:#101c33;border-bottom:1px solid var(--hair);overflow:hidden;}
.hero-movie .hero-video-full{display:block;width:100%;height:min(76vh,660px);object-fit:cover;}
.hero-movie::after{content:"";position:absolute;left:0;right:0;bottom:0;height:96px;
  background:linear-gradient(to top,rgba(16,28,51,.42),transparent);pointer-events:none;}
.scroll-cue{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:2;
  color:#fff;font-family:var(--en);font-weight:700;font-size:.62rem;letter-spacing:.34em;
  display:flex;flex-direction:column;align-items:center;gap:8px;text-shadow:0 1px 8px rgba(0,0,0,.45);}
.scroll-cue::after{content:"";width:1px;height:28px;background:rgba(255,255,255,.85);
  animation:cueLine 1.8s cubic-bezier(.2,.7,.2,1) infinite;}
@keyframes cueLine{0%{transform:scaleY(0);transform-origin:top;opacity:1;}
  55%{transform:scaleY(1);transform-origin:top;opacity:1;}
  100%{transform:scaleY(1);transform-origin:top;opacity:0;}}

/* キャッチコピー専用セクション（中央寄せ・大きく） */
.copy-stage{padding:100px 0 108px;}
.copy-stage .wrap-wide{display:block;max-width:840px;}
.copy-stage .hero-copy{text-align:center;}
.copy-stage .catch{font-size:3.4rem;line-height:1.3;}
.copy-stage .sub{margin:30px auto 38px;}
.copy-stage .cta-row{justify-content:center;}
.copy-stage .helper{justify-content:center;}

@media(max-width:560px){
  .hero-movie .hero-video-full{height:min(56vh,420px);}
  .copy-stage{padding:66px 0 74px;}
  .copy-stage .catch{font-size:2.05rem;}
}

/* ============================================================
   v23: FV動画のレスポンシブ調整 — 端末ごとに切り抜き比率を最適化
        （スマホでテロップが切れない比率に）
   ============================================================ */
/* タブレット：切り抜きを浅く */
@media(max-width:900px){
  .hero-movie .hero-video-full{height:min(52vh,480px);}
}
/* スマホ：ほぼ元の比率（16:10）＝テロップが確実に読める */
@media(max-width:560px){
  .hero-movie .hero-video-full{height:auto;aspect-ratio:16/10;min-height:0;}
  .hero-movie::after{height:60px;}
  .scroll-cue{display:none;}  /* 低い帯にSCROLLは不要（次のコピーが見えている） */
}

/* ============================================================
   v25: 実素材の差し込み — 代表写真・Instagram埋め込み・LINEグループ
   ============================================================ */
.portrait img.photo{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;}
.ig-embed-frame{border:1px solid var(--hair);border-radius:14px;overflow:hidden;background:#fff;max-width:640px;margin:14px auto 0;}
.ig-embed-frame iframe{display:block;width:100%;height:520px;border:0;}
@media(max-width:560px){.ig-embed-frame iframe{height:440px;}}

/* ============================================================
   v26: 協賛企業ロゴを実ロゴに
   ============================================================ */
.sp .logo-wrap{height:76px;display:flex;align-items:center;justify-content:center;
  margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--hair);}
.sp .logo-wrap img{max-height:56px;max-width:86%;object-fit:contain;}
