/* === HERO(.ph) と CTA(.hubcta) はページCSSごとに定義する設計のため本ページ用に同梱 === */
.ph,.hubcta{padding:0}
.ph{position:relative;min-height:64vh;display:flex;flex-direction:column;padding-top:112px;overflow:hidden}
.ph-bg{position:absolute;inset:0;background-size:cover;background-position:center 30%;transform:scale(1.04)}
.ph-scrim{position:absolute;inset:0;background:linear-gradient(to top,var(--void-2) 2%,rgba(20,10,32,.12) 42%,rgba(20,10,32,.42))}
.ph-body{position:relative;z-index:2;max-width:1120px;width:100%;margin:auto auto 0;padding:30px 40px 62px}
.ph .crumbs{position:relative;z-index:2;max-width:1120px;width:100%;margin:0 auto;padding:0 40px}
.ph .crumbs ol{list-style:none;display:flex;gap:8px;padding:0;margin:0;font-size:.76rem;font-weight:700;text-shadow:0 1px 10px rgba(0,0,0,.75),0 0 2px rgba(0,0,0,.5)}
.ph .crumbs li{color:rgba(255,255,255,.8)}
.ph .crumbs li:not(:last-child)::after{content:"\203a";margin-left:8px;color:rgba(255,255,255,.55)}
.ph .crumbs a{color:rgba(255,255,255,.94)}
.ph .crumbs a:hover{color:#fff}
.ph-title{font-family:var(--min);font-weight:800;color:#fff;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:.1em;margin:10px 0 18px;text-shadow:0 4px 30px rgba(0,0,0,.5)}
.ph-tag{color:#fff;font-family:var(--min);font-weight:500;font-size:clamp(1rem,1.8vw,1.24rem);letter-spacing:.05em;line-height:1.85;margin-bottom:20px;text-shadow:0 2px 16px rgba(0,0,0,.55)}
.hubcta{position:relative;text-align:center;background:#2A1150 url('../img/flower-shizuku.jpg') center/cover}
.hubcta::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(106,44,176,.74) 0%,rgba(232,32,144,.6) 40%,rgba(47,182,230,.56) 68%,rgba(245,133,42,.66) 100%)}
.hubcta .mw{position:relative;z-index:1;padding:96px 40px}
.hubcta .eng{color:rgba(255,255,255,.9)}
.hubcta h2{font-family:var(--min);font-weight:700;color:#fff;font-size:clamp(1.4rem,3vw,2.1rem);line-height:1.7;letter-spacing:.06em;margin:14px 0 12px;text-shadow:0 2px 16px rgba(0,0,0,.25)}
.hubcta p{color:rgba(255,255,255,.92);font-size:.82rem;margin-bottom:28px;letter-spacing:.04em}
.hubcta .book{background:#fff;color:#8A1E5A}
@media(max-width:900px){
  .ph{min-height:54vh;padding-top:92px}.ph .crumbs{padding:0 24px}.ph-body{padding:22px 24px 46px}
  .hubcta .mw{padding:74px 24px}
}

/* 本文アクセント画像（テキストの多い節に添える） */
.ft-accent{margin:30px 0 4px;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 34px rgba(0,0,0,.3)}
.ft-accent img{display:block;width:100%;height:auto;max-height:320px;object-fit:cover;object-position:center 30%}

/* ============================================================
   初めての方へ 完全ガイド（page-first-time）専用
   ※ デザイントークン（--void/--pink/--gold/--min 等）は theme.css 準拠
   ※ HERO直下（ft-quick / #reason）には光源(::before)を置かない
   ============================================================ */

/* HERO 追加要素 */
.ft-hero .ph-tag{max-width:760px}
.ft-badges{display:flex;flex-wrap:wrap;gap:9px;list-style:none;margin:20px 0 0;padding:0}
.ft-badges li{font-family:var(--jp);font-size:.8rem;letter-spacing:.03em;color:#fff;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.1);border-radius:999px;padding:7px 15px;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.ft-herocta{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.ft-btn{display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 30px;border-radius:999px;font-family:var(--jp);font-weight:700;font-size:.9rem;letter-spacing:.05em;text-decoration:none;transition:transform .3s,box-shadow .3s}
.ft-btn--primary{background:#fff;color:#8A1E5A}
.ft-btn--primary:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.ft-btn--ghost{border:1px solid rgba(255,255,255,.5);color:#fff}
.ft-btn--ghost:hover{background:rgba(255,255,255,.14)}

/* ページ内クイックナビ（HERO直下＝無光源・地色は素のまま） */
.ft-quick{background:var(--void);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(198,168,222,.14);backdrop-filter:blur(6px)}
.ft-quick .mw{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:12px 24px}
.ft-quick a{font-family:var(--jp);font-size:.82rem;letter-spacing:.03em;color:var(--soft);text-decoration:none;padding:8px 15px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(198,168,222,.16);transition:.25s}
.ft-quick a:hover{color:#fff;border-color:var(--pink);background:rgba(255,98,166,.14)}

/* セクション共通 */
.ft-main{position:relative}
.ft-sec{position:relative;padding:74px 0;overflow:hidden}
.ft-sec .mw{position:relative;z-index:1}
.ft-sec .head{margin-bottom:34px}
.ft-h3{font-family:var(--min);font-weight:700;color:var(--gold);font-size:1.14rem;letter-spacing:.04em;margin:0 0 12px}

/* カードグリッド（理由・コツ） */
.ft-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ft-card{background:rgba(38,18,71,.34);border:1px solid rgba(255,255,255,.13);border-radius:16px;padding:24px 22px}
.ft-card h3{font-family:var(--min);font-weight:700;color:#fff;font-size:1.06rem;line-height:1.5;letter-spacing:.03em;margin:0 0 10px}
.ft-card p{margin:0;color:var(--soft);font-size:.9rem;line-height:1.95}

/* 料金テーブル */
.ft-table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.14);border-radius:16px}
.ft-table{width:100%;border-collapse:collapse;min-width:640px;background:rgba(20,10,32,.5)}
.ft-table th,.ft-table td{padding:15px 18px;text-align:left;border-bottom:1px solid rgba(255,255,255,.1);vertical-align:top}
.ft-table thead th{background:rgba(255,255,255,.08);color:#fff;font-family:var(--jp);font-size:.86rem;letter-spacing:.04em}
.ft-table tbody td{color:var(--soft);font-size:.9rem;line-height:1.7}
.ft-table tbody td:first-child{font-family:var(--min);color:#fff;font-weight:600}
.ft-table tbody tr:last-child td{border-bottom:0}
.ft-note{margin:14px 0 0;font-size:.8rem;color:var(--soft-2);letter-spacing:.02em}

/* 基本情報ブロック */
.ft-info{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px}
.ft-info-item{background:rgba(38,18,71,.34);border:1px solid rgba(255,255,255,.13);border-radius:16px;padding:22px 22px}
.ft-info-item .ft-h3{margin-top:0}
.ft-info-item p{margin:0;color:var(--soft);font-size:.9rem;line-height:1.95}

/* 迷ったら選び方 */
.ft-choose{margin-top:34px}
.ft-choose-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ft-choose-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:22px}
.ft-choose-tag{display:inline-block;font-family:var(--jp);font-size:.74rem;letter-spacing:.06em;color:#fff;background:rgba(255,98,166,.3);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:4px 12px;margin-bottom:10px}
.ft-choose-card b{display:block;font-family:var(--min);color:#fff;font-size:1.12rem;letter-spacing:.03em;margin-bottom:8px}
.ft-choose-card p{margin:0;color:var(--soft);font-size:.88rem;line-height:1.9}

/* 当日の流れ */
.ft-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:none}
.ft-step{position:relative;background:rgba(38,18,71,.34);border:1px solid rgba(255,255,255,.13);border-radius:16px;padding:26px 20px 22px}
.ft-step-no{position:absolute;top:-16px;left:20px;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--cor);font-size:1.15rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--pink),var(--purple));box-shadow:0 6px 16px rgba(122,52,192,.5)}
.ft-step h3{font-family:var(--min);color:var(--gold);font-size:1.04rem;margin:8px 0 10px;letter-spacing:.03em}
.ft-step p{margin:0;color:var(--soft);font-size:.87rem;line-height:1.9}

/* コツ ミニ */
.ft-mini{margin-top:24px;background:rgba(20,10,32,.4);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:22px 24px}
.ft-mini ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.ft-mini li{color:var(--soft);font-size:.9rem;line-height:1.8;padding-left:20px;position:relative}
.ft-mini li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:8px;border-radius:50%;background:var(--pink)}
.ft-mini li b{color:#fff}

/* FAQ アコーディオン */
.ft-faq{display:grid;gap:12px}
.ft-q{background:rgba(38,18,71,.34);border:1px solid rgba(255,255,255,.13);border-radius:14px;overflow:hidden}
.ft-q summary{list-style:none;cursor:pointer;padding:18px 52px 18px 22px;position:relative;font-family:var(--min);color:#fff;font-size:.98rem;letter-spacing:.02em;line-height:1.6}
.ft-q summary::-webkit-details-marker{display:none}
.ft-q summary::after{content:"";position:absolute;right:22px;top:50%;width:11px;height:11px;border-right:2px solid var(--pink);border-bottom:2px solid var(--pink);transform:translateY(-70%) rotate(45deg);transition:transform .3s}
.ft-q[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.ft-q summary:hover{background:rgba(255,255,255,.04)}
.ft-a{padding:14px 22px 22px}
.ft-a p{margin:0;color:var(--soft);font-size:.9rem;line-height:1.95}

/* 関連ページ */
.ft-links{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ft-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 20px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:#fff;font-family:var(--min);font-size:.92rem;letter-spacing:.02em;text-decoration:none;transition:.25s}
.ft-links a span{color:var(--pink);transition:transform .25s}
.ft-links a:hover{background:rgba(255,255,255,.13);transform:translateY(-2px)}
.ft-links a:hover span{transform:translateX(4px)}

/* レスポンシブ */
@media(max-width:900px){
  .ft-cards,.ft-flow{grid-template-columns:1fr 1fr}
  .ft-links{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .ft-sec{padding:56px 0}
  .ft-cards,.ft-flow,.ft-info,.ft-choose-grid,.ft-links{grid-template-columns:1fr}
  .ft-quick .mw{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start}
  .ft-quick a{flex:0 0 auto}
  .ft-herocta{flex-direction:column}
  .ft-btn{width:100%}
}

/* 変身イメージ ギャラリー */
.ft-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ft-gallery figure{margin:0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:rgba(20,10,32,.4);aspect-ratio:3/2}
.ft-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.ft-gallery figure:hover img{transform:scale(1.05)}
.ft-note a{color:var(--pink);text-decoration:underline;text-underline-offset:2px}
@media(max-width:900px){.ft-gallery{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ft-gallery{grid-template-columns:1fr 1fr;gap:10px}}

/* NATURE&CO アメニティ紹介 */
.ft-amenity{display:flex;gap:24px;align-items:center;margin-top:34px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:20px 22px}
.ft-amenity-img{flex:0 0 300px;max-width:300px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12)}
.ft-amenity-img img{width:100%;height:auto;display:block}
.ft-amenity-txt{flex:1;min-width:0}
.ft-amenity-tag{display:inline-block;font-family:var(--cor);font-style:italic;font-size:.82rem;letter-spacing:.1em;color:var(--gold);margin-bottom:6px}
.ft-amenity-txt .ft-h3{margin:0 0 10px}
.ft-amenity-txt p{margin:0;color:var(--soft);font-size:.9rem;line-height:1.95}
@media(max-width:700px){.ft-amenity{flex-direction:column;align-items:stretch}.ft-amenity-img{flex:none;max-width:100%}}

/* =========================================================
   LP強化：色とりどりのセクション配色＋動き
   ========================================================= */

/* --- 色とりどりのセクショングラデーション --- */
.grad-night{background:linear-gradient(160deg,var(--void) 0%,var(--void-2) 52%,var(--panel) 100%)}
.grad-rose{background:linear-gradient(135deg,#C21038 0%,#E01560 44%,#6A2CB0 100%)}
.grad-ocean{background:linear-gradient(140deg,#0B1636 0%,#154A8C 50%,#1E8FA6 100%)}
.grad-sunset{background:linear-gradient(135deg,#5A2A9E 0%,#E01560 48%,#F5852A 100%)}
.grad-blue{background:linear-gradient(140deg,#0E1A40 0%,#16306C 58%,#1E3E86 100%)}
.grad-plum{background:linear-gradient(150deg,#331858 0%,#5A2A8E 55%,#B02A8F 100%)}

/* セクション見出しまわりの色（各配色でも視認性を確保） */
.ft-sec .head .eng{color:#FFD24A}
.ft-sec .head .disp-s{color:#fff}
.ft-sec .h-r{color:rgba(255,255,255,.92)}

/* 見出しに伸びるアンダーライン（スクロールで出現） */
.ft-sec .head h2{position:relative;display:inline-block}
.ft-sec .head h2::after{content:"";position:absolute;left:0;bottom:-12px;width:0;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--pink),var(--gold))}
.js .ft-sec .head h2.in::after{width:56px;transition:width .7s cubic-bezier(.2,.7,.2,1) .2s}

/* --- HERO：ゆっくりズーム（Ken Burns）＋要素のスタッガー --- */
.ft-hero .ph-bg{animation:ftKen 22s ease-in-out infinite alternate}
@keyframes ftKen{from{transform:scale(1.04)}to{transform:scale(1.13)}}
.js .ft-hero .ph-title.reveal{transition-delay:.06s}
.js .ft-hero .ph-tag.reveal{transition-delay:.14s}
.js .ft-hero .ft-badges.reveal{transition-delay:.24s}
.js .ft-hero .ft-herocta.reveal{transition-delay:.34s}

/* --- カード・ステップのスタッガー出現 --- */
.js .ft-cards .reveal:nth-child(2){transition-delay:.08s}
.js .ft-cards .reveal:nth-child(3){transition-delay:.16s}
.js .ft-cards .reveal:nth-child(4){transition-delay:.24s}
.js .ft-cards .reveal:nth-child(5){transition-delay:.32s}
.js .ft-flow .reveal:nth-child(2){transition-delay:.1s}
.js .ft-flow .reveal:nth-child(3){transition-delay:.2s}
.js .ft-flow .reveal:nth-child(4){transition-delay:.3s}
.js .ft-info .reveal:nth-child(2){transition-delay:.08s}
.js .ft-info .reveal:nth-child(3){transition-delay:.16s}
.js .ft-info .reveal:nth-child(4){transition-delay:.24s}

/* --- ホバーの微動 --- */
.ft-card{transition:transform .3s,border-color .3s,background .3s}
.ft-card:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.32);background:rgba(38,18,71,.52)}
.ft-step{transition:transform .3s,border-color .3s}
.ft-step:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.3)}
.ft-choose-card{transition:transform .3s,border-color .3s}
.ft-choose-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.32)}

/* --- ステップ番号のふわふわ --- */
.ft-step-no{animation:ftFloat 3.4s ease-in-out infinite}
.ft-flow .ft-step:nth-child(2) .ft-step-no{animation-delay:.45s}
.ft-flow .ft-step:nth-child(3) .ft-step-no{animation-delay:.9s}
.ft-flow .ft-step:nth-child(4) .ft-step-no{animation-delay:1.35s}
@keyframes ftFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* --- CTA：グラデーションがゆっくり流れる --- */

/* --- 料金表：カテゴリータグ --- */
.ft-cat{display:inline-block;margin-left:8px;font-size:.6rem;letter-spacing:.05em;color:#fff;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:2px 8px;vertical-align:middle;font-family:var(--jp)}

/* --- 女性のお客様への安心コール（女装お断り＋洒落プラン） --- */
.ft-reassure{margin-top:34px;background:rgba(20,10,32,.44);border:1px solid rgba(255,255,255,.2);border-left:4px solid var(--pink);border-radius:14px;padding:22px 26px}
.ft-reassure-tag{display:inline-block;font-family:var(--cor);font-style:italic;font-size:.82rem;letter-spacing:.1em;color:#FFD24A;margin-bottom:6px}
.ft-reassure h3{font-family:var(--min);font-weight:700;color:#fff;font-size:1.16rem;letter-spacing:.03em;margin:0 0 10px}
.ft-reassure p{margin:0;color:var(--soft);font-size:.92rem;line-height:2}
.ft-reassure b{color:#fff}

/* --- スクロール進捗バー＋クイックナビのアクティブ表示 --- */
.ft-quick a.is-active{color:#fff;border-color:var(--pink);background:rgba(255,98,166,.24)}

@media(prefers-reduced-motion:reduce){
  .ft-hero .ph-bg,.ft-step-no,.hubcta::before{animation:none!important}
}

/* =========================================================
   追補：HERO継ぎ目の解消／セクション背景写真（透過・一個飛ばし）
   ========================================================= */

/* HERO下端をページ地色(void)に合わせて継ぎ目を消す */
.ft-hero .ph-scrim{background:linear-gradient(to top,var(--void) 0%,rgba(38,18,71,.16) 42%,rgba(20,10,32,.5) 100%)}

/* セクション背景に写真を薄く敷く（basics / tips / links） */
.ft-photobg::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;opacity:.14;z-index:0;pointer-events:none}
#basics.ft-photobg::before{background-image:url('../img/ft-photo-3.jpg')}
#tips.ft-photobg::before{background-image:url('../img/ft-photo-1.jpg')}
#links.ft-photobg::before{background-image:url('../img/ft-photo-4.jpg')}

/* 背景写真セクション：上に乗るボックスの背景を濃くして可読性UP */
.ft-photobg .ft-card,
.ft-photobg .ft-info-item{background:rgba(38,18,71,.66)}
.ft-photobg .ft-table{background:rgba(20,10,32,.76)}
.ft-photobg .ft-reassure{background:rgba(20,10,32,.7)}
.ft-photobg .ft-mini{background:rgba(20,10,32,.7)}
.ft-photobg .ft-choose-card,
.ft-photobg .ft-amenity,
.ft-photobg .ft-links a{background:rgba(255,255,255,.13)}

/* スマホでは背景写真を非表示（cover拡大による荒れを回避／グラデーションは残す） */
@media(max-width:640px){
  .ft-photobg::before{display:none}
}
