/* ============================================================
   BALI GIRLS SURF TRIP 2027 — Sasurai Surf TV KANAN
   feminine / bright palette. base: srilanka_sari.css
   ============================================================ */
.geek-lp,.geek-lp *,.geek-lp *::before,.geek-lp *::after{ margin:0; padding:0; box-sizing:border-box }
:root{
      --deep:#4a3540;        /* warm plum : 本文テキスト・最も濃いアクセント */
      --plum:#6b4b57;
      --rose:#d98a92;        /* ローズ */
      --coral:#e59a8b;       /* コーラル（CTA等の主アクセント寄り） */
      --rose-soft:#f7e6e2;   /* 淡いローズのセクション背景 */
      --sand:#f1cabb;        /* ピーチ */
      --cream:#fdf6f1;       /* ブラッシュクリーム */
      --white:#fff;
      --gold:#d99a93;        /* ローズゴールド（旧goldの置換・アクセント全般） */
      --teal:#c9818c;        /* 明色セクションのラベル用 深ローズ */
    }
html{ scroll-behavior:smooth }
.geek-lp{
      font-family:'Noto Sans JP',sans-serif;
      font-weight:300;
      color:var(--deep);
      background:var(--white);
      overflow-x:hidden;
      line-height:1.6;
    }
.geek-lp img{ display:block; max-width:100% }
/* 日本語本文を文節で折り返す（語中での不自然な改行を抑制。非対応ブラウザは normal にフォールバック） */
.geek-lp p{ word-break:auto-phrase }

/* ---- 画像プレースホルダ（後日 <img> に差し替え） ---- */
.geek-lp .ph{
      position:absolute; inset:0; width:100%; height:100%;
      background:linear-gradient(135deg, var(--rose-soft) 0%, var(--sand) 100%);
      display:flex; align-items:center; justify-content:center;
    }
.geek-lp .ph::after{
      content:'PHOTO COMING SOON'; font-family:'Bebas Neue',sans-serif;
      font-size:13px; letter-spacing:.3em; color:rgba(74,53,64,.42);
    }

/* ================= HERO ================= */
.geek-lp .hero{
      position:relative; height:86vh; min-height:600px;
      display:flex; align-items:flex-end; overflow:hidden;
    }
.geek-lp .hero__bg{
      position:absolute; inset:0;
      background:url('/wp-content/themes/geekout/library/images/geektour/special_surf_kanan_girls/hero.jpg') center 72%/cover no-repeat, var(--sand);
      transform:scale(1.05); animation:heroZoom 20s ease-out forwards;
    }
@keyframes heroZoom{ to{ transform:scale(1) } }
/* ヒーロー クロスフェードスライダー（1枚目KANAN / 2枚目Bali） */
.geek-lp .hero__slides{ position:absolute; inset:0; z-index:0 }
.geek-lp .hero__slide{ position:absolute; inset:0; background-size:cover; background-position:center; background-repeat:no-repeat; opacity:0; transition:opacity 1.4s ease; will-change:opacity }
.geek-lp .hero__slide.is-active{ opacity:1 }
.geek-lp .hero__overlay{
      position:absolute; inset:0; z-index:1;
      background:
        radial-gradient(85% 90% at 78% 80%, rgba(74,53,64,.42) 0%, rgba(74,53,64,0) 62%),
        linear-gradient(to bottom, rgba(74,53,64,.04) 0%, rgba(74,53,64,.14) 42%, rgba(74,53,64,.60) 100%);
    }
.geek-lp .hero__inner{
      position:relative; z-index:2; width:100%; max-width:1160px;
      margin:0 auto; padding:0 28px 66px; display:flex; justify-content:flex-end;
    }
.geek-lp .hero__content{
      max-width:580px; text-align:right;
      text-shadow:0 2px 18px rgba(74,53,64,.55);
      animation:fadeUp 1.2s ease-out .3s both;
    }
@keyframes fadeUp{ from{opacity:0; transform:translateY(40px)} to{opacity:1; transform:translateY(0)} }
.geek-lp .hero__label{
      font-family:'Bebas Neue',sans-serif;
      font-size:clamp(13px,1.6vw,17px); letter-spacing:.3em;
      color:#ffe9e2; margin-bottom:16px; text-transform:uppercase;
    }
.geek-lp .hero__title{
      font-family:'Cormorant Garamond',serif; font-weight:300;
      font-size:clamp(30px,5.6vw,66px); color:var(--white);
      line-height:1.08; margin-bottom:10px;
    }
.geek-lp .hero__title em{ font-style:italic; color:#ffd9cf }
.geek-lp .hero__title .vol{ font-family:'Bebas Neue',sans-serif; letter-spacing:.1em; font-size:.42em; vertical-align:.25em; color:#ffe1d4 }
.geek-lp .hero__jp{
      font-family:'Noto Serif JP',serif; font-weight:400;
      font-size:clamp(14px,1.9vw,21px); color:var(--white);
      letter-spacing:.06em; margin:14px 0 22px;
    }
.geek-lp .hero__date{
      display:inline-block; border:1px solid rgba(255,255,255,.85);
      padding:11px 22px; font-family:'Bebas Neue',sans-serif;
      font-size:clamp(14px,2vw,20px); letter-spacing:.12em; color:#fff;
      background:rgba(217,138,146,.22); backdrop-filter:blur(2px);
    }
.geek-lp .hero__scroll{ position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:2; animation:bounce 2s infinite }
.geek-lp .hero__scroll span{ display:block; width:1px; height:46px; background:rgba(255,255,255,.55); margin:0 auto }
.geek-lp .hero__scroll::after{ content:'SCROLL'; font-family:'Bebas Neue',sans-serif; font-size:10px; letter-spacing:.3em; color:rgba(255,255,255,.65); display:block; margin-top:8px }
@keyframes bounce{ 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

/* ================= 共通セクション ================= */
.geek-lp .wrap{ max-width:1100px; margin:0 auto; padding:0 24px }
.geek-lp section{ padding:104px 24px }
.geek-lp .section-cream{ background:var(--cream) }
.geek-lp .section-rose{ background:var(--rose-soft) }
.geek-lp .section-white{ background:var(--white) }
.geek-lp .intro{ text-align:center; max-width:820px; margin:0 auto }
.geek-lp .section-label{
      font-family:'Bebas Neue',sans-serif; font-size:13px;
      letter-spacing:.34em; color:var(--teal); margin-bottom:16px; text-transform:uppercase;
    }
.geek-lp .section-heading{
      font-family:'Cormorant Garamond','Noto Serif JP',serif; font-weight:300;
      font-size:clamp(22px,4.4vw,50px); line-height:1.4; margin-bottom:30px; color:var(--deep);
    }
.geek-lp .num{ font-family:'Noto Serif JP',serif; font-style:normal; }
.geek-lp .br-pc{ display:inline }
.geek-lp .br-sp{ display:none }
.geek-lp .intro p{ font-size:15px; line-height:2.1; color:#6a5660 }
.geek-lp .lead{ font-family:'Noto Serif JP',serif; font-size:clamp(16px,2vw,20px); letter-spacing:.04em; margin-bottom:22px; color:var(--plum) }

/* ---- ハート小飾り（絵文字の代替） ---- */
.geek-lp .deco-heart{ display:block; width:46px; height:1px; background:var(--rose); margin:0 auto 20px; position:relative }
.geek-lp .deco-heart::after{ content:''; position:absolute; left:50%; top:50%; width:9px; height:9px; transform:translate(-50%,-50%) rotate(45deg); background:var(--rose);
      box-shadow:-3px -3px 0 -1px var(--rose), 3px 3px 0 -1px var(--rose); border-radius:0 0 2px 0 }

/* ================= PHOTO GRID ================= */
.geek-lp .photo-grid{ display:grid; grid-template-columns:1fr 1fr; gap:4px }
.geek-lp .photo-grid__item{ position:relative; overflow:hidden; aspect-ratio:16/10 }
.geek-lp .photo-grid__item--tall{ grid-row:span 2; aspect-ratio:auto }
.geek-lp .photo-grid__item img{ width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.25,0,.15,1) }
.geek-lp .photo-grid__item:hover img{ transform:scale(1.05) }

/* ================= SPLIT ================= */
.geek-lp .split{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch }
.geek-lp .split__image{ position:relative; overflow:hidden; min-height:500px }
.geek-lp .split__image img{ width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.25,0,.15,1) }
.geek-lp .split__image:hover img{ transform:scale(1.04) }
.geek-lp .split__content{ display:flex; flex-direction:column; justify-content:center; padding:72px 60px }
.geek-lp .split__num{ font-family:'Bebas Neue',sans-serif; font-size:15px; letter-spacing:.28em; color:var(--rose); margin-bottom:14px }
.geek-lp .split__content h3{
      font-family:'Cormorant Garamond','Noto Serif JP',serif; font-weight:400;
      font-size:clamp(21px,3.2vw,38px); line-height:1.5; margin-bottom:22px; color:var(--deep);
    }
.geek-lp .split__content p{ font-size:14.5px; line-height:2.05; color:#6a5660 }
.geek-lp .split--cream{ background:var(--cream) }
.geek-lp .split--rose{ background:var(--rose-soft) }
.geek-lp .split--white{ background:var(--white) }

/* ================= 全幅クォート ================= */
.geek-lp .full-image{ position:relative; height:42vh; min-height:300px; overflow:hidden }
.geek-lp .full-image img{ width:100%; height:100%; object-fit:cover }
.geek-lp .full-image--band{ background:linear-gradient(120deg, var(--rose) 0%, var(--coral) 45%, var(--plum) 100%) }
.geek-lp .full-image__caption{
      position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:24px;
      background:linear-gradient(to top, rgba(74,53,64,.55), rgba(74,53,64,.12) 55%, rgba(74,53,64,.30));
      text-align:center;
    }
.geek-lp .full-image--band .full-image__caption{ background:none }
.geek-lp .full-image__caption p{
      font-family:'Cormorant Garamond','Noto Serif JP',serif; font-weight:300; font-style:italic;
      font-size:clamp(22px,3.4vw,38px); color:var(--white); max-width:820px; margin:0 auto; line-height:1.5;
      text-shadow:0 2px 20px rgba(74,53,64,.5);
    }

/* ================= MESSAGE ================= */
.geek-lp .msg__name{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:20px; color:var(--teal); margin-top:22px }

/* ================= PROFILE ================= */
.geek-lp .profile{ max-width:980px; margin:0 auto; display:grid; grid-template-columns:300px 1fr; gap:48px; align-items:center }
.geek-lp .profile__photo{ position:relative; aspect-ratio:3/4; border-radius:4px; overflow:hidden; box-shadow:0 20px 50px -28px rgba(74,53,64,.45) }
.geek-lp .profile__photo img{ width:100%; height:100%; object-fit:cover }
.geek-lp .profile__name{ font-family:'Cormorant Garamond','Noto Serif JP',serif; font-weight:400; font-size:clamp(24px,3.4vw,40px); color:var(--deep); line-height:1.15; margin-bottom:6px }
.geek-lp .profile__name small{ display:block; font-family:'Bebas Neue',sans-serif; font-size:.42em; letter-spacing:.2em; color:var(--rose); margin-top:10px }
.geek-lp .profile__body p{ font-size:14px; line-height:2.05; color:#6a5660; margin-top:14px }

/* ================= PLAN / COMING SOON ================= */
.geek-lp .coming{ text-align:center; max-width:640px; margin:0 auto }
.geek-lp .coming__badge{ display:inline-block; font-family:'Bebas Neue',sans-serif; letter-spacing:.3em; font-size:14px; color:var(--rose); border:1px solid var(--rose); border-radius:40px; padding:9px 24px; margin-bottom:26px }
.geek-lp .coming p{ font-size:14.5px; line-height:2; color:#6a5660; margin-bottom:34px }

/* ---- サンプル注記（型であることを明示） ---- */
.geek-lp .sample-note{ text-align:center; font-size:12px; letter-spacing:.04em; color:#b89aa0; margin-top:34px }

/* ---- PLAN カード ---- */
.geek-lp .plans{ display:flex; gap:28px; margin-top:8px; align-items:stretch; justify-content:center; flex-wrap:wrap }
.geek-lp .plan-card{
      flex:1 1 360px; max-width:440px; background:#fff;
      border:1px solid #f1dcd7; border-radius:16px; overflow:hidden;
      display:flex; flex-direction:column; box-shadow:0 18px 50px -30px rgba(74,53,64,.35);
    }
.geek-lp .plan-card__head{ background:linear-gradient(135deg, var(--coral), var(--rose)); color:#fff; padding:30px 28px 26px; text-align:center }
.geek-lp .plan-card__nights{ font-family:'Bebas Neue',sans-serif; letter-spacing:.14em; font-size:16px; opacity:.92 }
.geek-lp .plan-card__title{ font-family:'Bebas Neue','Noto Sans JP',sans-serif; font-size:40px; font-weight:400; letter-spacing:.04em; line-height:1; margin:8px 0 10px }
.geek-lp .plan-card__date{ font-size:13px; color:rgba(255,255,255,.9); letter-spacing:.05em }
.geek-lp .plan-card__body{ padding:26px 28px 30px; flex:1 }
.geek-lp .plan-card__body ul{ list-style:none }
.geek-lp .plan-card__body li{ font-size:13.5px; color:#6a5660; padding:9px 0 9px 24px; position:relative; border-bottom:1px dashed #f1ded8; line-height:1.6 }
.geek-lp .plan-card__body li:last-child{ border-bottom:none }
.geek-lp .plan-card__body li::before{ content:''; position:absolute; left:4px; top:15px; width:7px; height:7px; border-radius:50%; background:var(--rose) }
.geek-lp .plan-card__foot{ padding:0 28px 30px }
.geek-lp .btn-cta.is-soon{ background:#ead9d5; color:#fff; border-color:#ead9d5; pointer-events:none; box-shadow:none }
.geek-lp .btn-cta.is-soon::after{ opacity:.6 }
.geek-lp .btn-note{ font-size:11px; color:#b89aa0; text-align:center; margin-top:10px; letter-spacing:.03em }

/* ---- ツアー概要テーブル ---- */
.geek-lp .tour-table-wrap{ max-width:820px; margin:44px auto 0 }
.geek-lp .tour-table{ width:100%; border-collapse:collapse; font-size:14.5px }
.geek-lp .tour-table tr{ border-bottom:1px solid #f1ded8 }
.geek-lp .tour-table th,.geek-lp .tour-table td{ padding:20px 18px; text-align:left; vertical-align:top }
.geek-lp .tour-table th{ font-family:'Bebas Neue',sans-serif; font-weight:400; font-size:14px; letter-spacing:.08em; color:var(--teal); width:128px; white-space:nowrap }
.geek-lp .tour-table td{ color:#6a5660; line-height:1.75 }
.geek-lp .tour-table td .soon{ color:#c9a3a9; font-size:13px }

/* ================= CTA ================= */
.geek-lp .btn-cta{
      display:inline-block; box-sizing:border-box; text-align:center; white-space:nowrap;
      padding:18px 40px;
      background:var(--coral); color:#fff; text-decoration:none;
      font-family:'Noto Sans JP',sans-serif; font-weight:500; font-size:15px; letter-spacing:.12em;
      border:1px solid var(--coral); border-radius:40px;
      transition:background .4s ease, color .4s ease, box-shadow .4s ease, transform .25s ease, border-color .4s ease;
    }
.geek-lp .btn-cta::after{
      content:''; display:inline-block; vertical-align:middle;
      width:7px; height:7px; margin:-2px 0 0 14px;
      border-top:1.5px solid currentColor; border-right:1.5px solid currentColor;
      transform:rotate(45deg); transition:margin-left .4s ease;
    }
.geek-lp .btn-cta:hover{ background:#eaa897; transform:translateY(-3px); box-shadow:0 16px 36px -14px rgba(229,154,139,.7) }
.geek-lp .btn-cta:hover::after{ margin-left:22px }
.geek-lp .btn-cta--ghost{ background:transparent; color:var(--coral) }
.geek-lp .btn-cta--ghost:hover{ background:var(--coral); color:#fff }
.geek-lp .cta{ position:relative; text-align:center; padding:130px 24px; overflow:hidden }
.geek-lp .cta__bg{ position:absolute; inset:0; background:linear-gradient(130deg, var(--coral) 0%, var(--rose) 45%, var(--plum) 100%) }
.geek-lp .cta__overlay{ position:absolute; inset:0; background:rgba(74,53,64,.16) }
.geek-lp .cta__inner{ position:relative; z-index:2; max-width:720px; margin:0 auto }
.geek-lp .cta h2{ font-family:'Cormorant Garamond','Noto Serif JP',serif; font-weight:300; font-size:clamp(28px,5vw,56px); color:var(--white); margin-bottom:20px; text-shadow:0 2px 20px rgba(74,53,64,.5) }
.geek-lp .cta p{ font-size:15px; color:rgba(255,255,255,.9); margin:0 auto 46px; max-width:600px; line-height:2; text-shadow:0 1px 14px rgba(74,53,64,.5) }
.geek-lp .cta__btns{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap }
.geek-lp .cta__btns .btn-cta{ min-width:280px }
/* CTAのグラデ地で埋もれないよう、白ボタンに */
.geek-lp .cta .btn-cta{ background:#fff; color:var(--coral); border-color:#fff; box-shadow:0 12px 30px -14px rgba(74,53,64,.5) }
.geek-lp .cta .btn-cta:hover{ background:#fff; color:var(--plum); transform:translateY(-3px); box-shadow:0 18px 40px -14px rgba(74,53,64,.55) }
.geek-lp .cta .btn-cta--ghost{ background:rgba(255,255,255,.12); color:#fff; border-color:#fff }
.geek-lp .cta .btn-cta--ghost:hover{ background:#fff; color:var(--coral); border-color:#fff }

/* ================= reveal ================= */
.geek-lp .reveal{ opacity:0; transform:translateY(32px); transition:opacity .9s ease, transform .9s ease }
.geek-lp .reveal.visible{ opacity:1; transform:translateY(0) }

/* ================= responsive ================= */
/* 全幅クォートはPCで1行に */
@media(min-width:861px){ .geek-lp .full-image__caption p{ white-space:nowrap; max-width:none } }
@media(max-width:860px){
.geek-lp section{ padding:80px 20px }
.geek-lp .split{ grid-template-columns:1fr }
.geek-lp .split__image{ min-height:300px; order:-1 }
.geek-lp .split--reverse .split__image{ order:-1 }
.geek-lp .split__content{ padding:48px 26px }
.geek-lp .hero__inner{ justify-content:center; padding-bottom:54px }
.geek-lp .hero__content{ max-width:100%; text-align:center }
.geek-lp .profile{ grid-template-columns:1fr; gap:30px; max-width:420px }
.geek-lp .profile__photo{ max-width:280px; margin:0 auto }
.geek-lp .profile__body{ text-align:center }
}
@media(max-width:600px){
.geek-lp .photo-grid{ grid-template-columns:1fr }
.geek-lp .photo-grid__item--tall{ grid-row:span 1; aspect-ratio:16/10 }
.geek-lp .hero{ height:82vh }
.geek-lp .cta__btns .btn-cta{ width:100%; min-width:0 }
.geek-lp .btn-cta{ padding:16px 20px; letter-spacing:.04em; font-size:14.5px }
.geek-lp .btn-cta::after{ margin-left:10px }
.geek-lp .br-pc{ display:none }
.geek-lp .br-sp{ display:inline }
.geek-lp .tour-table th{ width:92px; font-size:13px }
.geek-lp .tour-table th,.geek-lp .tour-table td{ padding:16px 12px }
}
