/* ─── ストーリーの後ろのセクション ─── */
.rest{background:#fff;color:var(--ink);position:relative;z-index:1}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.sec{padding:clamp(96px,14vh,160px) 0}
.eyebrow{font-family:var(--en);font-weight:600;font-size:13px;letter-spacing:.24em;color:var(--pink);margin-bottom:18px}
.h2{font-weight:900;font-size:clamp(34px,5vw,72px);line-height:1.15;letter-spacing:-.035em}
.lead{margin-top:20px;font-size:clamp(15px,1.3vw,19px);line-height:1.85;color:var(--ink2);max-width:560px}
.btn.dark{background:var(--ink);color:#fff}
.btn.lg{height:60px;padding:0 36px;font-size:17px}
.btn{cursor:pointer;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px -10px rgba(0,0,0,.35)}

/* ナビ：空の上は白ロゴのまま、白いセクションに入ったら濃い帯を敷く */
.nav{transition:background .4s,backdrop-filter .4s}
.nav.solid{background:rgba(20,30,48,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}

/* ハイライト（横に流れるカルーセル） */
.hl{background:var(--paper);overflow:hidden}
.rail{display:flex;gap:clamp(16px,2vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  padding:clamp(48px,7vh,72px) max(clamp(20px,5vw,56px),calc((100vw - 1180px)/2 + 56px)) 12px}
.rail::-webkit-scrollbar{display:none}
.card-h{flex:0 0 auto;width:clamp(260px,24vw,320px);scroll-snap-align:start;background:#fff;border-radius:28px;padding:28px 24px 30px;
  box-shadow:0 30px 60px -30px rgba(20,30,48,.25);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.card-h:hover{transform:translateY(-6px)}
.card-h .phone{--pw:min(200px,52vw);margin:0 auto 26px}
.card-h h3{font-size:20px;font-weight:900;letter-spacing:-.01em}
.card-h p{margin-top:8px;font-size:14px;line-height:1.75;color:var(--ink2)}
.rail-nav{display:flex;align-items:center;gap:18px;margin-top:28px}
.arw{width:48px;height:48px;border-radius:99px;border:1px solid rgba(0,0,0,.15);background:#fff;font-size:18px;cursor:pointer}
.dots{display:flex;gap:6px}.dots b{width:6px;height:6px;border-radius:9px;background:rgba(0,0,0,.18);transition:all .3s}.dots b.on{width:24px;background:var(--ink)}

/* スマホの中身 */
.recb{white-space:nowrap;position:absolute;top:12%;left:50%;transform:translateX(-50%);z-index:4;font-size:10px;font-weight:700;color:#fff;background:#FF3B30;padding:4px 10px;border-radius:99px}
.recb.w{background:#fff;color:#000}
.rec{position:absolute;bottom:6%;left:50%;transform:translateX(-50%);width:50px;height:50px;border-radius:99px;border:4px solid #fff;display:grid;place-items:center;z-index:4}
.rec::after{content:"";width:16px;height:16px;border-radius:4px;background:#FF3B30}
.appui{position:absolute;inset:0;background:#fff;padding:26% 8% 0;font-size:10px;color:var(--ink);text-align:left}
.appui .t{font-size:15px;font-weight:900;line-height:1.35}
.appui .box{margin-top:10px;border-radius:12px;padding:10px;background:#F2FBF4;line-height:1.55}
.appui .box.n{background:#FFF6E8}
.appui .box b{display:block;font-size:10px;margin-bottom:3px}
.appui .m{display:flex;gap:6px;margin-top:10px}
.appui .m div{flex:1;background:#F5F5F7;border-radius:10px;padding:8px}
.appui .m .v{font-family:var(--en);font-size:20px;font-weight:800}
.score{text-align:center;padding-top:24%}
.score .hole{display:flex;flex-direction:column;align-items:center}
.score .hole span{font-family:var(--en);font-size:9px;letter-spacing:.2em;color:var(--ink2)}
.score .hole b{font-family:var(--en);font-size:26px;font-weight:800;line-height:1}
.score .hole em{font-style:normal;font-size:9px;color:var(--ink2);margin-top:2px}
.score .big-n{font-family:var(--en);font-size:64px;font-weight:800;line-height:1;margin-top:10px}
.score .pm{display:flex;justify-content:center;gap:12px;margin-top:8px}
.score .pm i{font-style:normal;width:46px;height:46px;border-radius:14px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:20px}
.score .pm.s i{width:30px;height:30px;border-radius:10px;font-size:14px;background:#EDEDF0;color:var(--ink)}
.score .pm.s b{font-family:var(--en);font-size:20px;align-self:center;width:24px}
.score .lbl{margin-top:12px;font-size:9px;color:var(--ink2)}
.score .clubs{display:flex;justify-content:center;gap:5px;margin-top:14px}
.score .clubs span{font-family:var(--en);font-size:10px;font-weight:600;padding:5px 8px;border-radius:8px;background:#EDEDF0}
.score .clubs span.on{background:var(--pink);color:#fff}

/* 写真を全面に */
.bleed{position:relative;height:clamp(460px,86vh,860px);overflow:hidden;color:#fff}
.bleed-img{position:absolute;inset:-12% 0;width:100%;height:124%;object-fit:cover;will-change:transform}
.bleed::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,35,.15),rgba(10,20,35,.1) 40%,rgba(10,20,35,.55))}
.bleed-txt{position:absolute;left:0;right:0;bottom:clamp(40px,9vh,96px);z-index:2;max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.bleed-txt .eyebrow{color:#fff;opacity:.85}
.trio{padding-top:clamp(64px,10vh,110px)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px)}
.it .num{font-family:var(--en);font-weight:800;font-size:15px;color:var(--pink)}
.it h3{margin-top:12px;font-size:22px;font-weight:900;letter-spacing:-.01em}
.it p{margin-top:10px;font-size:15px;line-height:1.85;color:var(--ink2)}

/* 料金 */
.price{background:var(--paper)}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:56px;max-width:920px}
.plan{background:#fff;border-radius:28px;padding:40px 36px;display:flex;flex-direction:column}
.plan.pro{background:var(--ink);color:#fff}
.pk{font-family:var(--en);font-weight:800;font-size:15px;letter-spacing:.2em}
.plan.pro .pk{color:var(--pink)}
.pp{font-family:var(--en);font-weight:800;font-size:56px;letter-spacing:-.03em;margin-top:12px;line-height:1}
.pp small{font-family:var(--jp);font-size:14px;font-weight:500;margin-left:10px;opacity:.6;letter-spacing:0}
.pl{margin-top:16px;font-size:14px;line-height:1.8;opacity:.75}
.plan ul{list-style:none;padding:0;margin:24px 0 32px;flex:1}
.plan li{padding:12px 0;border-top:1px solid rgba(128,128,128,.2);font-size:15px}
.plan li::before{content:"✓";margin-right:10px;color:var(--pink);font-weight:700}
.plan .btn{align-self:flex-start}

/* 商品・お知らせ */
.items .grid3{margin-top:56px}
.prod{display:block;color:inherit;text-decoration:none;cursor:pointer}
.prod .pi{aspect-ratio:1;border-radius:24px;overflow:hidden;background:var(--paper)}
.prod img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.prod:hover img{transform:scale(1.05)}
.prod h3{margin-top:18px;font-size:17px;font-weight:700}
.prod p{font-size:13px;color:var(--ink2);margin-top:4px}
.prod b{display:block;margin-top:8px;font-family:var(--en);font-size:18px}
.news{padding-top:0}
.nlist{border-top:1px solid rgba(0,0,0,.1)}
 .nlist .n{display:grid;grid-template-columns:160px 1fr;gap:28px;align-items:center;padding:24px 0;border-bottom:1px solid rgba(0,0,0,.1);color:inherit;cursor:pointer}
 .nlist .n img{width:160px;aspect-ratio:16/10;object-fit:cover;border-radius:14px}
 .nlist .n time{font-family:var(--en);font-size:12px;letter-spacing:.1em;color:var(--ink2)}
 .nlist .n h3{font-size:18px;font-weight:700;margin-top:6px}

/* 締め：4場面目の夕焼けに戻る */
.final{position:relative;height:clamp(560px,92vh,900px);overflow:hidden;color:#fff;display:grid;place-items:center;text-align:center}
.fsky{position:absolute;inset:0;background:url(bg/sky4.jpg) center/cover}
.fter{position:absolute;left:-4%;right:-4%;bottom:-6vh;height:40vh;background:url(bg/ter4.webp) center bottom/100% 100% no-repeat}
.final .grain{position:absolute;inset:0;z-index:1}
.finner{position:relative;z-index:2;padding:0 20px;transform:translateY(-6vh)}
.flogo{width:min(520px,78vw);filter:drop-shadow(0 6px 24px rgba(10,30,60,.3))}
.finner p{margin:26px 0 30px;font-size:clamp(17px,1.6vw,22px);font-weight:700;letter-spacing:.04em}
.foot{background:#0F1624;color:rgba(255,255,255,.6);font-size:13px;padding:28px 0}
.fr{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot nav{display:flex;gap:22px;flex-wrap:wrap}.foot a{cursor:pointer}
/* © は運営の入口。見た目は文字のまま（lime. と同じ動線）。
   ★ 隠してあるのは動線から外すためで、守っているのはここではない。
     実際の防御は is_staff() と各テーブルのRLS（決定事項 §81）。 */
.cmark{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:default;-webkit-tap-highlight-color:transparent}
/* 特商法の表記を足してリンクが5本になった。スマホでは幅に収まらないので折り返す */
@media(max-width:720px){.foot nav{gap:14px 18px}}

/* 出てくる動き */
.rv{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}

@media (max-width:700px){
  .grid3,.plans{grid-template-columns:1fr}
  .grid3{gap:40px}
   .nlist .n{grid-template-columns:96px 1fr;gap:16px} .nlist .n img{width:96px} .nlist .n h3{font-size:15px}
  .plan{padding:32px 26px}
  .card-h{width:78vw}
  .bleed{height:72vh}.bleed-img{object-position:62% center}
}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
.plan.pro .btn.dark{background:#fff;color:var(--ink)}
@media (max-width:700px){.fter{left:0;right:0;background-size:auto 100%;height:34vh}.bleed-img{object-position:50% center}}
/* AIキャディ */
.cd{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,96px);align-items:center}
.pts{list-style:none;padding:0;margin-top:40px}
.pts li{padding:18px 0;border-top:1px solid rgba(0,0,0,.1);display:grid;grid-template-columns:150px 1fr;gap:16px}
.pts b{font-size:16px;font-weight:900}.pts span{font-size:15px;line-height:1.8;color:var(--ink2)}
.cd-ph{display:flex;justify-content:center}
.cd-ph .phone{--pw:clamp(250px,24vw,300px)}
.map{position:absolute;inset:0;background:linear-gradient(180deg,#4E7F3A,#3E6A2E);color:#fff;padding:24% 7% 0}
.mtop{display:flex;justify-content:space-between;font-family:var(--en);font-size:11px}.mtop span{opacity:.8;letter-spacing:.15em}
.map .hole{width:100%;height:56%;margin-top:6px}
.sug{display:flex;gap:8px;margin-top:4px}
.sug>div{flex:1;background:rgba(255,255,255,.95);color:var(--ink);border-radius:14px;padding:8px 10px}
.sug small{font-size:9px;color:var(--ink2)}.sug b{font-family:var(--en);font-size:28px;font-weight:800;margin:0 2px}
.sug .club b{color:var(--pink)}.sug .club{display:flex;flex-direction:column}
.map .tip{margin-top:8px;font-size:10px;line-height:1.5;background:rgba(0,0,0,.25);border-radius:10px;padding:8px 10px}
/* つながり 2列 */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px)}
/* イベント */
.events{background:var(--paper)}
.ev{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:56px}
.evc{background:#fff;border-radius:28px;padding:28px}
.evc h3{margin-top:24px;font-size:20px;font-weight:900}.evc p{margin-top:10px;font-size:15px;line-height:1.8;color:var(--ink2)}
.evv{border-radius:20px;height:280px;overflow:hidden;position:relative}
.rank{background:linear-gradient(160deg,#2E5E9E,#E59BB8);color:#fff;padding:22px}
.rh span{font-size:11px;background:#fff;color:var(--pink);border-radius:99px;padding:3px 10px;font-weight:700}
.rh b{display:block;font-size:20px;margin-top:10px}.rh em{font-style:normal;font-family:var(--en);font-size:12px;opacity:.8}
.rank ol{list-style:none;padding:0;margin-top:14px}
.rank li{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.16);border-radius:10px;padding:7px 12px;margin-top:6px;font-size:14px}
.rank li i{font-style:normal;font-family:var(--en);font-weight:800;width:20px}.rank li b{margin-left:auto;font-family:var(--en)}.rank li s{text-decoration:none}
.rank li.me{background:#fff;color:var(--ink)}
.mk{background:#E9EEE5;display:flex;align-items:center;gap:20px;padding:20px}
.mk img{width:56%;height:100%;object-fit:cover;border-radius:16px}
.col{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;flex:1}
.col span{aspect-ratio:1;border-radius:50%;border:2px dashed rgba(0,0,0,.2)}
.col span.on{border:0;background:radial-gradient(circle at 35% 35%,#E6C48F,#B98A4E)}
.col em{grid-column:1/-1;font-style:normal;font-size:12px;color:var(--ink2);text-align:center}
@media (max-width:700px){
  .cd,.ev,.grid2{grid-template-columns:1fr}
  .pts li{grid-template-columns:1fr;gap:4px}
  .cd-ph{order:-1}
}
.protag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:6px;background:var(--ink);color:#fff;letter-spacing:.1em;font-size:11px;vertical-align:1px}
/* スマホ：写真を横いっぱいに全部見せ、見出しは写真の下に置く（人物を切らない） */
@media (max-width:700px){
  .bleed{height:auto;overflow:visible;color:var(--ink);background:#fff}
  .bleed::after{display:none}
  .bleed-img{position:static;display:block;width:100%;height:auto;aspect-ratio:1894/1265;object-fit:cover;object-position:center;transform:none!important}
  .bleed-txt{position:static;padding:36px 20px 0}
  .bleed-txt .eyebrow{color:var(--pink);opacity:1}
  .trio{padding-top:40px}
}

/* ─── スマホ：1セクション＝ほぼ1画面に収める（2026-09-22） ───
   ナビを細くし、余白を詰め、縦に積むと長くなる所は横スワイプにする。
   スマホのモックは中の文字サイズが固定なので、幅ではなく zoom で縮める。 */
@media (max-width:700px){
  .nav{padding:12px 16px}
  .logo-img{height:28px}
  .nav .btn.sm{height:34px;padding:0 14px;font-size:12px}
  .rest section{scroll-margin-top:58px}
  .sec{padding:52px 0 60px}
  .eyebrow{font-size:11px;margin-bottom:10px}
  .h2{font-size:clamp(26px,7.6vw,32px);line-height:1.22}
  .lead{margin-top:12px;font-size:14px;line-height:1.75}

  /* AIコーチ：カード小さく、次のカードを少し覗かせる */
  .rail{padding:24px 20px 8px;gap:12px;scroll-padding:0 20px}
  .card-h{width:66vw;max-width:280px;padding:18px 16px 20px;border-radius:22px}
  .card-h .phone{--pw:200px;zoom:.7;margin:0 auto 22px}
  .card-h h3{font-size:17px}
  .card-h p{font-size:13px;line-height:1.65}
  .rail-nav{margin-top:14px}
  .arw{width:40px;height:40px;font-size:15px}

  /* AIキャディ：見出しは上、スマホは説明の横に小さく */
  .cd{grid-template-columns:1fr auto;column-gap:14px;row-gap:0;align-items:start}
  .cd-txt{display:contents}
  .cd-txt>.eyebrow,.cd-txt>.h2,.cd-txt>.lead{grid-column:1/-1}
  .cd-ph{order:0;grid-column:2;grid-row:4;margin-top:22px}
  .cd-ph .phone{--pw:240px;zoom:.56}
  .pts{grid-column:1;grid-row:4;margin-top:18px}
  .pts li{padding:12px 0;gap:2px}
  .pts b{font-size:14px}.pts span{font-size:13px;line-height:1.65}

  /* つながり */
  .bleed-txt{padding-top:28px}
  .trio{padding-top:28px}
  .grid3{gap:26px}
  .it h3{margin-top:6px;font-size:18px}
  .it p{font-size:14px;line-height:1.75;margin-top:6px}

  /* 横スワイプ（イベント・料金・商品） */
  .ev,.plans,.items .grid3{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
    gap:12px;margin:24px -20px 0;padding:0 20px 6px;scroll-padding:0 20px;max-width:none}
  .ev::-webkit-scrollbar,.plans::-webkit-scrollbar,.items .grid3::-webkit-scrollbar{display:none}
  .ev>*,.plans>*,.items .grid3>*{flex:0 0 84vw;max-width:340px;scroll-snap-align:start}
  .items .grid3>*{flex-basis:62vw;max-width:260px}
  .sdots{display:flex;justify-content:center;gap:6px;margin-top:14px}
  .sdots b{width:6px;height:6px;border-radius:9px;background:rgba(0,0,0,.18);transition:all .3s}
  .sdots b.on{width:20px;background:var(--ink)}

  .evc{padding:18px;border-radius:22px}
  .evv{height:210px}
  .rank{padding:16px}.rh b{font-size:17px;margin-top:8px}
  .rank ol{margin-top:10px}.rank li{padding:5px 10px;margin-top:5px;font-size:13px}
  .evc h3{margin-top:16px;font-size:17px}.evc p{font-size:13px;line-height:1.7;margin-top:6px}

  .plan{padding:24px 20px;border-radius:22px}
  .pp{font-size:42px;margin-top:8px}
  .pl{margin-top:10px;font-size:13px;line-height:1.7}
  .plan ul{margin:14px 0 18px}
  .plan li{padding:8px 0;font-size:13px}
  .plan .btn{height:44px;font-size:14px}

  .prod .pi{border-radius:18px}
  .prod h3{margin-top:12px;font-size:14px}
  .prod b{font-size:16px;margin-top:4px}

  .news{padding-top:0}
   .nlist .n{padding:14px 0} .nlist .n img{width:88px} .nlist .n{grid-template-columns:88px 1fr}
   .nlist .n time{font-size:11px} .nlist .n h3{font-size:14px;margin-top:4px}

  .final{height:78svh;min-height:520px}
  .flogo{width:70vw}
  .finner p{margin:18px 0 22px;font-size:16px}
  .btn.lg{height:52px;padding:0 28px;font-size:15px}
}
.foot a{color:inherit;text-decoration:none}
@media (max-width:700px){.evv{height:236px}}
/* AIキャディ：ラウンド中の写真の上に、提案を重ねる（2026-09-22） */
.map.ph{background:#1d2a1a;padding:22% 7% 11%;display:flex;flex-direction:column}
.map.ph .mbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.map.ph::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,0) 26%,rgba(0,0,0,0) 52%,rgba(0,0,0,.6))}
.map.ph>*:not(.mbg){position:relative;z-index:1}
.map.ph .hole.mini{position:absolute;right:7%;top:28%;width:26%;height:auto;margin:0;padding:6px 4px;border-radius:12px;background:rgba(20,40,24,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.map.ph .sug{margin-top:auto}
.map.ph::before{z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.08) 24%,rgba(0,0,0,0) 50%,rgba(0,0,0,.55))}
.map.ph>*:not(.mbg){z-index:2}
/* スマホの描画を軽く：すりガラスは使わず、色の帯にする（2026-09-22） */
@media (max-width:700px){
  .nav.solid{background:rgba(20,30,48,.94);backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav{transition:background .3s}
  .chip,.map.ph .hole.mini{backdrop-filter:none;-webkit-backdrop-filter:none}
  .map.ph .hole.mini{background:rgba(20,40,24,.7)}
}
@media (max-width:700px){.rv{transform:translateY(20px);transition-duration:.6s}}
/* スマホの締め：バーの出入りで大きさが変わらない単位に */
@media (max-width:700px){.fter{height:34svh;bottom:-6svh}.finner{transform:translateY(-6svh)}}
/* コンペ記念のカード：左に芝生の写真、右にコレクション（2026-09-22）
   写真は元画像 1441×953。スマホとマーカーが写真枠の横中央・下端に来るように拡大して置く。
   マーカーの上（y≈470）から下端までの 483px が枠の高さに収まる倍率＝197%。スマホの中心は横 54% の位置。 */
.mk .mkimg{position:relative;flex:none;width:56%;height:100%;border-radius:16px;overflow:hidden;background:#2E6B27}
.mk .mkimg .mkph{position:absolute;left:50%;bottom:0;height:197%;width:auto;max-width:none;border-radius:0;object-fit:initial;transform:translateX(-54%)}
.col em{white-space:nowrap}
@media (max-width:700px){.evv.mk{gap:12px;padding:14px}.mk .col{gap:8px}.col em{font-size:10.5px}}
