@charset "UTF-8";
/* ===========================================
 * 関数 / mixin
 * ===========================================
*/
/* -------------------------------------------
 * breakpoint
*/
/* $break-point以下の時に@contentを適用 */
/* $break-point以上の時に@contentを適用 */
/* $break-point-min以上、$break-point-max以下の時に@contentを適用 */
/* -------------------------------------------
 * font-size（768pxを基準にvw換算など）
*/
/* -------------------------------------------
 * cqw換算：Figmaのデザイン基準幅375pxに対する比率でコンテナ幅基準(cqw)に変換
 *  例) cw(16) → 16/375*100 = 4.2667cqw（SP375pxで16px・PC768pxで約32px）
 *  ※ container-type:inline-size を .content-contaier に設定して使用
*/
/* $base-font-sizeを基準に$sizeを%で指定 */
/* $base-font-sizeを基準に$sizeをremで指定 */
/* $base-font-sizeを基準に$sizeをpxで指定 */
/* $base-font-sizeを基準に$sizeをvwで指定（375基準ではなく768基準） */
/* ===========================================
 * 変数
 * ===========================================
*/
/* --- Figma デザイントークン（テンプレ board 24:10 準拠：ハーフ成人＝スレート/セージ基調） --- */
/* ベースカラー（FV・セクション背景） */
/* 補助カラー */
/* メインカラー（濃スレート） */
/* メインカラー（淡ブルーグレー） */
/* テキスト（主） */
/* テキスト（副） */
/* テキスト（淡） */
/* CTA・サブ見出し */
/* アクセント（筆記体・装飾） */
/* アクセント２（コーラル） */
/* 線・区切り（グレー） */
/* 線・区切り（セージ） */
/* 旧753エイリアス（既存共通パーツ用・半成人値へ再ポイント） */
/* テキスト */
/* メイン */
/* 強調 */
/* --- 既存LP踏襲（共通パーツ用：メニュー・店舗・LINE等。各ボード実装時に最終調整） --- */
/* --- フォント（Figmaスタイルガイド準拠：ハーフ成人＝セリフ基調） --- */
/* 補足・本文・Q&A・店舗情報 */
/* タイトル日本語 */
/* タイトル英語・数字 */
/* 筆記体（既定：Special Services 等） */
/* 筆記体（FV Campaign のみ・デザイン実使用） */
/* コピーライト */
/* ===========================================
 * style（共通土台）
 * ===========================================
*/
body {
  font-family: "Noto Sans JP", sans-serif;
  margin: 0;
  padding: 0;
  color: #3F4A54;
  text-align: center;
}

section {
  width: 92%;
  margin: 0 auto;
}

p {
  margin: 0;
  padding: 0;
}

img {
  width: 100%;
}

h2 {
  font-weight: bold;
  margin-bottom: 24px;
}

.splide__track {
  border-radius: 8px;
}

/* -------------------------------------------
 * container（SP固定・PCは中央寄せ最大768px）
*/
.content-contaier {
  position: relative;
  width: 100vw;
  max-width: 768px;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
  background-color: #FFFFFF;
  box-shadow: 0 8px 8px #666666;
  container-type: inline-size; /* cqw（cw関数）の基準コンテナ */
}

/* -------------------------------------------
 * nav / ハンバーガーメニュー
 * ※ Figmaの「メニュー表示時」ボードに合わせて実装時に最終調整
*/
.navbar {
  padding: 0;
}
.navbar .navbar-brand {
  margin: 0;
  padding: 0;
  height: 56px;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  text-align: left;
  background-color: rgba(255, 255, 255, 0.75);
}
.navbar .navbar-brand__img {
  display: inline-block;
  margin: 2%;
  height: 40px;
  width: auto;
}
.navbar .navbar-brand__text {
  font-size: 12px;
  margin-left: 4%;
}
.navbar .navSpBtn { /* Figma 2009:618：白角丸ボタン・スレート3本線・薄影 */
  display: block;
  position: fixed;
  width: 13.8666666667cqw;
  height: 13.8666666667cqw;
  top: 3.2cqw;
  right: 5.3333333333cqw;
  background-color: #FFFFFF;
  border: 1px solid rgba(63, 74, 84, 0.06);
  border-radius: 2.6666666667cqw;
  box-shadow: 0 0.5333333333cqw 2.1333333333cqw rgba(63, 74, 84, 0.12);
  cursor: pointer;
  z-index: 12;
  transition: opacity 0.4s, visibility 0.4s;
  /* PC（列が中央寄せ768px）ではコンテンツ列の右端に合わせる */
}
@media screen and (min-width: 768px) {
  .navbar .navSpBtn {
    right: calc(50% - 384px + 5.3333333333cqw);
  }
}
.navbar .navSpBtn span { /* 中央の線 */
  display: block;
  position: absolute;
  width: 5.8666666667cqw;
  height: 0.5333333333cqw;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background-color: #5F6872;
  background-image: none; /* Bootstrap .navbar-toggler-icon のグレーアイコンを打ち消す */
  border-radius: 0.5333333333cqw;
}
.navbar .navSpBtn span:before, .navbar .navSpBtn span:after { /* 上下の線 */
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #5F6872;
  border-radius: 0.5333333333cqw;
}
.navbar .navSpBtn span:before {
  transform: translateY(-1.7333333333cqw);
}
.navbar .navSpBtn span:after {
  transform: translateY(1.7333333333cqw);
}
.navbar {
  /* オーバーレイ（暗いフィルター） */
}
.navbar .navbar-collapse {
  display: block;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  z-index: 11;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}
.navbar {
  /* 右からスライドインするパネル（Figma 228px・#F5F9FC・角丸16） */
}
.navbar .navbar-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: 60.8cqw;
  padding: 14.1333333333cqw 8.2666666667cqw 10.6666666667cqw;
  background-color: #F5F9FC;
  border-radius: 4.2666666667cqw;
  transform: translateX(100%);
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.navbar .navbar-close {
  position: absolute;
  top: 3.4666666667cqw;
  right: 8.2666666667cqw;
  width: 8.8cqw;
  height: 8.8cqw;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.navbar .navbar-close::before, .navbar .navbar-close::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5.8666666667cqw;
  height: 0.5333333333cqw;
  background-color: #6F8796;
  border-radius: 0.5333333333cqw;
}
.navbar .navbar-close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.navbar .navbar-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.navbar .navbar-nav {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}
.navbar .navbar-nav .nav-item {
  border-bottom: 1px solid #D6E6EE;
}
.navbar .navbar-nav .nav-item:last-child {
  border-bottom: 0;
}
.navbar .navbar-nav .nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4.6666666667cqw 0; /* Figma：項目ピッチ52px（実装49.8で詰まり気味のため微増） */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 3.7333333333cqw;
  line-height: 1.2;
  color: #6F8796;
  cursor: pointer;
}
.navbar .navbar-nav .nav-arrow {
  margin-left: 2.1333333333cqw;
  padding-right: 4.8cqw; /* Figma：＞は右端からやや内側 */
  font-size: 3.7333333333cqw;
  color: #6F8796;
}

.show .navSpBtn { /* メニュー展開中はハンバーガーを隠す（パネルの×で閉じる） */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.show .navbar-collapse {
  opacity: 1;
  visibility: visible;
}
.show .navbar-panel {
  transform: translateX(0);
}

/* -------------------------------------------
 * modal（LINE公式）
*/
.modal .modal-dialog .modal-content .modal-header,
.modal .modal-dialog .modal-content .modal-footer {
  background-color: #4CC764;
  color: #FFF;
}
.modal .modal-dialog .modal-content .modal-body .copy-text {
  width: 90%;
  font-size: 14px;
}
.modal .modal-dialog .modal-content .modal-body .btn-copy {
  width: 90%;
  padding: 0.5rem 0;
  font-size: 13px;
}
.modal .modal-dialog .modal-content .modal-body .copy-notice {
  font-size: 12px;
}
.modal .modal-dialog .modal-content .modal-body .text-notice {
  font-size: 12px;
}

/* ===========================================
 * 各セクション（Figma _01〜_05 を上から順に実装）
 * ↓ ここから下にセクション単位で追記していく
 * ===========================================
*/
/* -------------------------------------------
 * _01 FV（ファーストビュー）
 *  Figma 375x341（土台_01 FV）。375基準で縦横とも cw()=cqw で比例配置
*/
.fv {
  position: relative;
  width: 100%;
  height: 90.9333333333cqw;
  background-color: #F5F7F9;
  overflow: hidden;
  font-family: "Noto Serif JP", serif;
  /* ヒーロー写真（背景・右寄りの女の子＋ブーケ） */
}
.fv__photo {
  position: absolute;
  top: 17.0666666667cqw;
  left: -28cqw;
  width: 148.5333333333cqw;
  height: 73.8666666667cqw;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top center;
     object-position: top center;
  z-index: 1;
}
.fv {
  /* ヘッダーバー（ロゴ左＋キャッチ中央） */
}
.fv__bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 19.2cqw;
  background-color: #F5F7F9;
  z-index: 3;
}
.fv__logo {
  position: absolute;
  left: 1.6cqw;
  top: 0;
  width: 24cqw;
  height: 17.0666666667cqw;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: left center;
     object-position: left center;
}
.fv__catch {
  position: absolute;
  top: 7.7333333333cqw;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 2.6666666667cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
  z-index: 3;
}
.fv {
  /* タイトル群（half / ハーフ成人フォト / — Campaign —） */
}
.fv__title-en {
  position: absolute;
  left: 11.7333333333cqw;
  top: 36.8cqw;
  font-family: "Libre Bodoni", serif;
  font-weight: 600;
  font-size: 16.5333333333cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
  z-index: 2;
}
.fv__title-ja {
  position: absolute;
  left: 11.2cqw;
  top: 53.6cqw;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 4cqw;
  letter-spacing: -0.04cqw;
  line-height: 1;
  color: #6F8796;
  white-space: nowrap;
  z-index: 2;
}
.fv__title-campaign {
  position: absolute;
  left: 16cqw;
  top: 58.6666666667cqw;
  font-family: "Parisienne", cursive; /* FV Campaign は Parisienne（デザイン実使用） */
  font-size: 5.8666666667cqw;
  line-height: 1;
  color: #8FA7B8;
  white-space: nowrap;
  z-index: 2;
}
.fv__title-dash {
  position: absolute;
  top: 63.2cqw;
  width: 2.9333333333cqw;
  height: 0.2666666667cqw;
  background-color: #8FA7B8;
  z-index: 2;
}
.fv__title-dash--l {
  left: 11.7333333333cqw;
}
.fv__title-dash--r {
  left: 39.2cqw;
}
.fv {
  /* 縦書きキャッチ（右上・2列） */
}
.fv__vtext-col {
  position: absolute;
  writing-mode: vertical-rl;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 3.2cqw;
  line-height: 1;
  letter-spacing: 0.2666666667cqw;
  color: #3F4A54;
  white-space: nowrap;
  z-index: 2;
}
.fv__vtext-col--1 {
  top: 24cqw;
  left: 86.9333333333cqw;
}
.fv__vtext-col--2 {
  top: 36.2666666667cqw;
  left: 82.6666666667cqw;
}
.fv__vtext-col {
  /* 「10」の縦中横。固定幅セル cw(12)=3.2cqw の inline-block にし text-align:center で
     数字をセル内中央へ。幅がフォントに依存しないため Web フォントの swap でも位置が動かず、
     「初回ロード時だけ右ズレ」する text-combine の不具合を構造的に回避する。
     vertical-align は baseline（既定）で CJK 字面の中心軸に一致（実測:重心差 0.19px）。
     ※ middle は +2.7px 右へずれるため不可。 */
}
.fv__vtext-col .tcy {
  display: inline-block;
  writing-mode: horizontal-tb;
  width: 3.2cqw;
  font-size: 3.2cqw;
  line-height: 1;
  text-align: center;
  letter-spacing: normal;
  white-space: nowrap;
  vertical-align: baseline;
}
.fv {
  /* キャンペーン期間バンド（下部） */
}
.fv__period-band {
  position: absolute;
  top: 80.2666666667cqw;
  left: 0;
  width: 100%;
  height: 6.4cqw;
  background-color: rgba(250, 251, 252, 0.8);
  box-shadow: 0 0 2.6666666667cqw rgba(115, 103, 97, 0.1);
  z-index: 3;
}
.fv__period-label {
  position: absolute;
  top: 83.2cqw;
  left: 14.9333333333cqw;
  transform: translateY(-50%);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 3.7333333333cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
  z-index: 4;
}
.fv__period-sep {
  position: absolute;
  top: 83.7333333333cqw;
  left: 46.6666666667cqw;
  width: 7.4666666667cqw;
  height: 0.2666666667cqw;
  background-color: #3F4A54;
  z-index: 4;
}
.fv__period-date {
  position: absolute;
  top: 83.2cqw;
  left: 56.2666666667cqw;
  transform: translateY(-50%);
  font-family: "Noto Serif JP", serif;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
  z-index: 4;
}
.fv__period-date .s14 {
  font-size: 3.7333333333cqw;
}
.fv__period-date .s16 {
  font-size: 4.2666666667cqw;
}
.fv__period-date .s20 {
  font-size: 5.3333333333cqw;
  font-weight: 700;
}
.fv__period-date .b {
  font-weight: 600;
}

/* -------------------------------------------
 * _01 Campaign（キャンペーンプラン）
 *  Figma 29:650（375×349）。背景写真＋ブーケ帯はパララックス
*/
.campaign {
  position: relative;
  width: 100%;
  height: 93.0666666667cqw;
  box-sizing: border-box;
  background-color: #FFFFFF;
  overflow: hidden;
  /* 背景写真（パララックス・50%） */
}
.campaign__bg {
  position: absolute;
  top: -1.6cqw;
  left: 0;
  width: 100%;
  height: 63.7333333333cqw;
  opacity: 0.5;
  overflow: hidden;
  z-index: 0;
}
.campaign__bg-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 18.6666666667cqw);
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  will-change: transform;
}
.campaign {
  /* 見出し */
}
.campaign__head {
  position: absolute;
  top: 7.4666666667cqw;
  left: 0;
  width: 100%;
  text-align: center;
  z-index: 2;
}
.campaign__en {
  display: inline-flex;
  align-items: center;
  gap: 2.6666666667cqw;
  font-family: "Libre Bodoni", serif;
  font-weight: 600;
  font-size: 6.6666666667cqw;
  line-height: 1;
  letter-spacing: 0.6666666667cqw;
  color: #3F4A54;
  white-space: nowrap;
}
.campaign__dash {
  width: 7.4666666667cqw;
  height: 0.2666666667cqw;
  background-color: #3F4A54;
}
.campaign__ja {
  margin-top: 1.8666666667cqw;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 3.2cqw;
  line-height: 1;
  color: #3F4A54;
}
.campaign {
  /* 3カード（カット数 / 撮影時間 / 衣装） */
}
.campaign__cards {
  position: absolute;
  top: 24cqw;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.8cqw;
  z-index: 2;
}
.campaign__card {
  position: relative;
  width: 28.5333333333cqw;
  height: 35.4666666667cqw;
  background-color: #FFFFFF;
  box-shadow: 0 1.0666666667cqw 0.5333333333cqw rgba(0, 0, 0, 0.15);
}
.campaign__card-head {
  position: absolute;
  top: 1.8666666667cqw;
  left: 3.2cqw;
  width: 21.8666666667cqw;
  height: 7.4666666667cqw;
  background-color: #6F8796;
  border-radius: 0.5333333333cqw;
  color: #FFFFFF;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 4.2666666667cqw;
  line-height: 7.4666666667cqw;
  text-align: center;
}
.campaign__card-icon {
  position: absolute;
  top: 10.6666666667cqw;
  left: 50%;
  transform: translateX(-50%);
  width: 7.2cqw;
  height: 7.2cqw;
}
.campaign__card-num {
  position: absolute;
  top: 18.4cqw;
  left: 0;
  width: 100%;
  text-align: center;
  font-family: "Libre Bodoni", serif;
  font-weight: 700;
  font-size: 9.0666666667cqw;
  line-height: 1;
  letter-spacing: 0.9066666667cqw;
  color: #3F4A54;
}
.campaign__card-unit {
  position: absolute;
  top: 28cqw;
  left: 0;
  width: 100%;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 4.2666666667cqw;
  line-height: 1;
  color: #5B6570;
}
.campaign__card-suffix {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 4.2666666667cqw;
  letter-spacing: 0;
  color: #5B6570;
  margin-left: 0.8cqw;
}
.campaign__card--wear .campaign__card-num {
  letter-spacing: 0;
}
.campaign {
  /* ブーケ写真帯（パララックス＋ティント） */
}
.campaign__bouquet {
  position: absolute;
  top: 61.8666666667cqw;
  left: 0;
  width: 100%;
  height: 31.2cqw;
  overflow: hidden;
  z-index: 1;
}
.campaign__bouquet::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(63, 74, 84, 0.08);
  pointer-events: none;
  z-index: 1;
}
.campaign__bouquet-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 18.6666666667cqw);
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center bottom;
     object-position: center bottom;
  will-change: transform;
}

/* -------------------------------------------
 * 共通：コーディングCTA（空枠確認・予約する）※全セクション再利用
*/
.cv-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 69.6cqw;
  height: 16cqw;
  margin: 0 auto;
  background-color: #6F8796;
  border: 1px solid #FFFFFF;
  border-radius: 0.5333333333cqw;
  box-shadow: 1.0666666667cqw 1.0666666667cqw 0.8cqw rgba(0, 0, 0, 0.23);
  text-decoration: none;
  animation: cv-cta-pulse 2.4s ease-in-out infinite;
}
.cv-cta__text {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 5.3333333333cqw;
  letter-spacing: 0.2666666667cqw;
  line-height: 1;
  color: #FFFFFF;
}
.cv-cta__arrow {
  position: absolute;
  right: 5.8666666667cqw;
  top: 50%;
  transform: translateY(-50%);
  width: 5.7333333333cqw;
  height: 1.6cqw;
}

@keyframes cv-cta-pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.03);
  }
}
/* -------------------------------------------
 * _01 嬉しいサービス（Special Services）＋YouTube
 *  Figma 29:655（375×680）。YouTube は node 32:731 位置（top427）に埋め込み
*/
.service {
  position: relative;
  width: 100%;
  height: 181.3333333333cqw;
  box-sizing: border-box;
  background-color: #F5F7F9;
  overflow: hidden;
}
.service__title {
  position: absolute;
  top: 9.3333333333cqw;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 5.3333333333cqw;
  letter-spacing: -0.2666666667cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
  z-index: 2;
}
.service__en {
  position: absolute;
  top: 5.8666666667cqw;
  left: calc(50% + 17.6cqw);
  font-family: "Sacramento", cursive;
  font-size: 4.8cqw;
  letter-spacing: -0.144cqw;
  line-height: 1;
  color: rgba(111, 135, 150, 0.6);
  white-space: nowrap;
  transform: rotate(20.86deg);
  transform-origin: left center;
  z-index: 1;
}
.service__orn {
  position: absolute;
  top: 17.0666666667cqw;
  left: 50%;
  transform: translateX(-50%);
  width: 32cqw;
  height: 1.4186666667cqw; /* SVGが width/height:100% のため高さを明示（auto だと暴走） */
  z-index: 1;
}
.service__div {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 69.8666666667cqw;
  height: 0.2666666667cqw;
  background-color: #B8C2CB;
  z-index: 0;
}
.service__div--1 {
  top: 30.9333333333cqw;
}
.service__div--2 {
  top: 43.2cqw;
}
.service__row {
  position: absolute;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.6666666667cqw;
  z-index: 1;
}
.service__row--1 {
  top: 22.9333333333cqw;
}
.service__row--2 {
  top: 33.8666666667cqw;
}
.service__icon {
  width: 8.8cqw;
  height: 8.8cqw;
  flex: none;
}
.service__txt {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 4.2666666667cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
}
.service__txt .em {
  color: #D97A73;
  font-size: 5.6cqw;
  letter-spacing: -0.56cqw;
}
.service__txt .em--lg {
  font-size: 6.1333333333cqw;
  letter-spacing: -0.6133333333cqw;
}
.service__mount {
  position: absolute;
  top: 49.0666666667cqw;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 5.0666666667cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
  z-index: 1;
}
.service__mount .m {
  font-size: 4.2666666667cqw;
}
.service__mount .s {
  font-size: 3.7333333333cqw;
}
.service__price {
  position: absolute;
  top: 57.3333333333cqw;
  left: 14.1333333333cqw;
  width: 71.4666666667cqw;
  height: 21.3333333333cqw;
  box-sizing: border-box;
  background-color: rgba(255, 255, 255, 0.5);
  border: 0.2666666667cqw solid #6F7882;
  border-radius: 0.8cqw;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.6cqw;
  z-index: 1;
}
.service__price::before {
  content: "";
  position: absolute;
  inset: 1.3333333333cqw;
  border: 0.2666666667cqw solid #6F7882;
  border-radius: 0.5333333333cqw;
  pointer-events: none;
}
.service__price-day {
  writing-mode: vertical-rl;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 4.8cqw;
  letter-spacing: -0.192cqw;
  line-height: 1.05;
  color: #3F4A54;
}
.service__price-num {
  font-family: "Libre Bodoni", serif;
  font-weight: 600;
  font-size: 12cqw;
  letter-spacing: -0.36cqw;
  line-height: 1;
  color: #3F4A54;
  text-shadow: 0.5333333333cqw 0.5333333333cqw 0.8cqw rgba(186, 182, 182, 0.4);
}
.service__price-tax {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  color: #3F4A54;
}
.service__price-tax .t {
  font-size: 2.6666666667cqw;
  letter-spacing: 0.2666666667cqw;
  line-height: 1.4;
}
.service__price-tax .y {
  font-size: 5.6cqw;
  line-height: 1;
}
.service__period {
  position: absolute;
  top: 80cqw;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 3.2cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
  z-index: 1;
}
.service__cta {
  position: absolute;
  top: 89.0666666667cqw;
  left: 15.2cqw;
  margin: 0;
  z-index: 2;
}
.service__movie {
  position: absolute;
  top: 113.8666666667cqw;
  left: 50%;
  transform: translateX(-50%);
  width: 88.8cqw;
  height: 49.8666666667cqw;
  z-index: 1;
}
.service__movie iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 1.0666666667cqw;
}

/* -------------------------------------------
 * _01 COST（料金内訳）
 *  Figma 42:358。料金表は構造化してコード（クリスプ）
*/
.cost {
  position: relative;
  width: 100%;
  height: 144cqw;
  box-sizing: border-box;
  background-color: #FFFFFF;
  overflow: hidden;
}
.cost__en {
  position: absolute;
  top: 5.6cqw;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Libre Bodoni", serif;
  font-weight: 400;
  font-size: 4.8cqw;
  letter-spacing: 0.096cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
}
.cost__cam {
  position: absolute;
  top: 12.2666666667cqw;
  left: 50%;
  transform: translateX(-50%);
  width: 6.9333333333cqw;
  height: 4.8cqw;
}
.cost__lead {
  position: absolute;
  top: 18.9333333333cqw;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 4.8cqw;
  line-height: 1;
  color: #3F4A54;
  white-space: nowrap;
}
.cost__lead .em {
  color: #D97A73;
  font-size: 5.8666666667cqw;
}
.cost__lead2 {
  position: absolute;
  top: 27.4666666667cqw;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 4.8cqw;
  line-height: 1.4;
  color: #3F4A54;
  text-align: center;
  white-space: nowrap;
}
.cost__lead2 .em2 {
  color: #6F8796;
  font-size: 5.8666666667cqw;
}
.cost__table {
  position: absolute;
  top: 48.5333333333cqw;
  left: 50%;
  transform: translateX(-50%);
  width: 89.0666666667cqw;
  box-sizing: border-box;
  background-color: #F0F0F3;
  border-radius: 1.3333333333cqw;
  box-shadow: 0 1.0666666667cqw 1.6cqw rgba(0, 0, 0, 0.08);
  padding: 2.6666666667cqw 4.2666666667cqw;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.6666666667cqw;
}
.cost__rows {
  width: 52cqw;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cost__rows li {
  height: 10.1333333333cqw;
  display: flex;
  align-items: center;
  padding: 0 2.6666666667cqw;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 4.2666666667cqw;
  color: #3F4A54;
  white-space: nowrap;
  border-bottom: 1px dashed rgba(229, 229, 229, 0.93);
}
.cost__zero {
  display: flex;
  align-items: baseline;
  color: #3F4A54;
  line-height: 1;
}
.cost__zero .yen {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 8cqw;
}
.cost__zero .num {
  font-family: "Libre Bodoni", serif;
  font-weight: 500;
  font-size: 24cqw;
}
.cost__note {
  position: absolute;
  top: 128.8cqw;
  left: 10.4cqw;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 3.2cqw;
  letter-spacing: -0.16cqw;
  line-height: 5.8666666667cqw;
  color: #3F4A54;
  text-align: left;
  white-space: nowrap;
}

/* -------------------------------------------
 * _01 プラン内容（旧753・未使用）
*/
.plan-content {
  position: relative;
  width: 100%;
  background-color: #EEF5F7;
  padding-top: 11.2cqw;
  padding-bottom: 5.3333333333cqw;
  overflow: hidden;
  text-align: center;
}
.plan-content__bg {
  position: absolute;
  top: 1.6cqw; /* 背景PLANを下げ、上端に余白を作る（Figma準拠で見切れさせない） */
  left: 50%;
  transform: translateX(-50%);
  font-family: "Libre Bodoni", serif;
  font-weight: 700;
  font-size: 24.2666666667cqw;
  line-height: 1;
  color: rgba(174, 217, 231, 0.27);
  opacity: 0.8;
  z-index: 0;
  pointer-events: none;
  white-space: nowrap;
}
.plan-content__title {
  position: relative;
  z-index: 1;
  margin: 0 0 4.8cqw;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 5.8666666667cqw;
  line-height: 1;
  color: #444444;
}
.plan-content__note {
  font-size: 3.2cqw;
  font-weight: 400;
}
.plan-content__row {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 7.4666666667cqw;
}
.plan-content {
  /* 下部の区切り線（破線・クリーム #FEE3AE） */
}
.plan-content::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 1.6cqw;
  transform: translateX(-50%);
  width: 89.3%;
  height: 0.5333333333cqw;
  background-image: repeating-linear-gradient(to right, #FEE3AE 0, #FEE3AE 1.0666666667cqw, transparent 1.0666666667cqw, transparent 2.1333333333cqw);
}

.plan-item {
  position: relative;
  width: 25.6cqw;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* 縦区切り線（破線・クリーム #FEE3AE / dasharray 4 4） */
}
.plan-item:not(:first-child)::before {
  content: "";
  position: absolute;
  left: -3.7333333333cqw;
  top: 9.6cqw;
  width: 0.5333333333cqw;
  height: 27.7333333333cqw;
  background-image: repeating-linear-gradient(to bottom, #FEE3AE 0, #FEE3AE 1.0666666667cqw, transparent 1.0666666667cqw, transparent 2.1333333333cqw);
}
.plan-item__label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24.2666666667cqw;
  height: 8.8cqw;
  background-color: #6F8796;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 4.2666666667cqw;
  letter-spacing: 0.04em;
  border-radius: 8cqw;
}
.plan-item__icon {
  width: 7.2cqw;
  height: 7.2cqw;
  margin-top: 3.4666666667cqw;
  -o-object-fit: contain;
     object-fit: contain;
}
.plan-item__num {
  display: flex;
  align-items: baseline;
  justify-content: center;
  margin-top: 1.0666666667cqw;
  font-family: "Libre Bodoni", serif;
  font-weight: 700;
  font-size: 9.8666666667cqw;
  line-height: 1;
  letter-spacing: -0.08em;
  color: #B8C2CB;
  text-shadow: 0 0 2px #FFFFFF;
}
.plan-item {
  /* カット数「100」は3桁のため少し小さめ＆詰め（デザイン34px） */
}
.plan-item:first-child .plan-item__num {
  font-size: 9.0666666667cqw;
  letter-spacing: -0.05em;
}
.plan-item__unit-inline {
  margin-left: 0.5333333333cqw;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 4.2666666667cqw;
  letter-spacing: normal;
  color: #444444;
}
.plan-item__unit {
  margin-top: 0.5333333333cqw;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 4.2666666667cqw;
  color: #444444;
}

/* -------------------------------------------
 * _01 女の子2人写真（全幅写真＋白30%オーバーレイ・パララックス）
*/
.girls-photo {
  position: relative;
  width: 100%;
  height: 66.6666666667cqw; /* 表示高さ（デザイン基準） */
  overflow: hidden;
}
.girls-photo__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 18.6666666667cqw); /* パララックス可動分の余白 */
  -o-object-fit: cover;
     object-fit: cover;
  will-change: transform;
}
.girls-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: rgba(255, 255, 255, 0.3);
  pointer-events: none;
}

/* -------------------------------------------
 * 共通：CTAボタン（空枠確認・予約する）※全セクションで再利用
*/
.cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.6666666667cqw;
  width: 74.9333333333cqw;
  height: 16cqw;
  margin: 0 auto;
  background-color: #B8C2CB; /* #C8C0D8 */
  color: #FFFFFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 4.2666666667cqw;
  border-radius: 11.4666666667cqw;
  box-shadow: 1.0666666667cqw 1.0666666667cqw 0.9333333333cqw rgba(0, 0, 0, 0.2);
  text-decoration: none;
  cursor: pointer;
}
.cta-btn__arrow {
  width: 5.8666666667cqw;
  height: auto;
}

/* 共通：破線（クリーム #FEE3AE） */
/* -------------------------------------------
 * 共通：セクション画像（高画質PNG 1.5x。作り込み系ブロックは画像化／用途=Google広告・SEO不問）
*/
.sec-img {
  position: relative;
  width: 100%;
  font-size: 0;
  line-height: 0;
}
.sec-img__img {
  display: block;
  width: 100%;
  height: auto;
}

/* 共通：CTAボタン（独立要素・透過SVG・アニメーション付与可） */
.cta {
  display: block;
  width: 74.9333333333cqw;
  margin: 0 auto;
  line-height: 0;
  animation: cta-pulse 2.2s ease-in-out infinite;
}
.cta__img {
  display: block;
  width: 100%;
  height: auto;
}
.cta:hover {
  opacity: 0.88;
}

@keyframes cta-pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.04);
  }
}
/* プラン内容２（画像版）：CTA下の余白（design 75px） */
.plan2-img {
  padding-bottom: 20cqw;
}

/* _02 スケジュール（画像版・背景 #F4F6F7）：CTA下の余白（design 35px） */
.schedule-img {
  background-color: #F4F6F7;
  padding-bottom: 9.3333333333cqw;
}

/* _03 プラン一覧/オプション（画像版） */
.plan-sec {
  padding-bottom: 9.3333333333cqw;
  background-color: #F3F6F7; /* オプションパネルの淡色（CTA帯の背景連続用） */
}
.plan-sec__option {
  margin-top: 0;
}
.plan-sec { /* プラン↔オプションは隣接フレーム＝余白0で連結 */ }
.plan-sec .cta {
  margin-top: 2.1333333333cqw;
}
.plan-sec { /* option.png下端(y348)→CTA(y356)の8px */ }

/* _04 選ばれる理由/口コミ（画像版） ※次回 余白を実機で微調整 */
.reason-sec {
  padding-bottom: 9.3333333333cqw;
}
.reason-sec .sannin-photo {
  margin-top: 10.6666666667cqw;
}
.reason-sec { /* point03(〜1345)→3人写真(1391) Figma実測46px相当 */ }
.reason-sec__review {
  margin-top: 0;
}
.reason-sec { /* review.png上端に23px白を内包＝Figmaの23px隙間 */ }
.reason-sec .cta {
  margin-top: 2.1333333333cqw;
}
.reason-sec { /* review.png下端→CTA Figma実測8px */ }

/* 3人写真（パララックス・白オーバーレイ30%あり：Figma 71:641） */
.sannin-photo {
  position: relative;
  width: 100%;
  height: 66.6666666667cqw;
  overflow: hidden;
}
.sannin-photo__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 18.6666666667cqw);
  -o-object-fit: cover;
     object-fit: cover;
  will-change: transform;
}
.sannin-photo::after { /* Figma 71:641：白オーバーレイ30%（girls-photoと同一） */
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: rgba(255, 255, 255, 0.3);
  pointer-events: none;
}

/* -------------------------------------------
 * _05 Q&A（アコーディオン・単一開閉）
*/
.faq {
  padding: 3.7333333333cqw 5.3333333333cqw;
}
.faq__head {
  position: relative;
  padding: 2.6666666667cqw 0;
  text-align: center;
}
.faq__title {
  display: inline-block;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  color: #6F8796; /* #7DC1D7 */
  line-height: 1;
}
.faq__title .lg {
  font-size: 5.8666666667cqw;
}
.faq__title .sm {
  font-size: 4.8cqw;
}
.faq__title::after { /* 見出し下の短いアクセントライン（Figma Group22） */
  content: "";
  display: block;
  width: 6.0453333333cqw;
  height: 1.0666666667cqw;
  margin: 1.8666666667cqw auto 0;
  background-color: #6F8796;
}
.faq__list {
  list-style: none;
  margin: 3.4666666667cqw 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3.4666666667cqw;
}
.faq__item {
  border-bottom: 1px solid #DCDCDC;
}
.faq__q {
  display: flex;
  align-items: center;
  gap: 1.6cqw;
  width: 100%;
  padding: 0.8cqw 1.0666666667cqw;
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 4.2666666667cqw;
  font-weight: 400;
  color: #000000;
  line-height: 1.4;
  transition: background-color 0.2s, color 0.2s;
}
.faq__q-text {
  flex: 1 1 auto;
}
.faq__icon {
  flex: 0 0 auto;
  position: relative;
  width: 8cqw;
  height: 7.4666666667cqw;
}
.faq__icon::before { /* シェブロン（下向き） */
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2.6666666667cqw;
  height: 2.6666666667cqw;
  border-right: 2px solid #6F8796;
  border-bottom: 2px solid #6F8796;
  transform: translate(-50%, -75%) rotate(45deg);
  transition: transform 0.25s, border-color 0.2s;
}
.faq__a { /* grid 0fr→1fr で高さ自動アニメーション */
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}
.faq__a-inner {
  overflow: hidden;
}
.faq__a p {
  margin: 0;
  padding: 3.4666666667cqw 1.3333333333cqw 2.6666666667cqw;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 4.2666666667cqw;
  color: #000000;
  line-height: 1.6;
  text-align: left;
}
.faq {
  /* --- 開いた状態（Figma：グレー背景・白字・上矢印） --- */
}
.faq__item.is-open .faq__q {
  background-color: #DCDCDC;
  border-radius: 1.3333333333cqw;
  color: #FFFFFF;
}
.faq__item.is-open .faq__icon::before {
  border-color: #FFFFFF;
  transform: translate(-50%, -25%) rotate(-135deg);
}
.faq__item.is-open .faq__a {
  grid-template-rows: 1fr;
}

/* -------------------------------------------
 * 共通：装飾ドットライン（見出し下線・区切り）※Figma Group31 近似
*/
.deco-dots {
  display: block;
  width: 57.8666666667cqw;
  height: 1.0666666667cqw;
  background-image: radial-gradient(circle, #B8C9D6 34%, transparent 38%);
  background-size: 2.9333333333cqw 1.0666666667cqw;
  background-repeat: repeat-x;
  background-position: center;
}

/* sec-head 内の装飾下線（STORE等） */
.sec-head__line {
  position: absolute;
  left: 50%;
  bottom: 2.9333333333cqw;
  transform: translateX(-50%);
}

/* -------------------------------------------
 * _05 茨城県の店舗（アコーディオン・住所カード）
*/
.shop {
  background-color: #F8F8F8;
  padding: 1.0666666667cqw 5.6cqw 9.0666666667cqw;
}
.shop__list {
  margin-top: 2.4cqw;
  display: flex;
  flex-direction: column;
  gap: 3.2cqw;
}
.shop__head {
  display: flex;
  align-items: center;
  gap: 1.3333333333cqw;
  width: 100%;
  padding: 1.6cqw 4.2666666667cqw;
  background-color: #F5F9FC;
  border: 1px solid #B8C9D6;
  border-radius: 1.3333333333cqw;
  cursor: pointer;
}
.shop__pin {
  flex: 0 0 auto;
  width: 5.3333333333cqw;
  height: 7.7333333333cqw;
}
.shop__name {
  flex: 1 1 auto;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 4.2666666667cqw;
  color: #6F8796;
  text-align: left;
}
.shop__chev {
  flex: 0 0 auto;
  position: relative;
  width: 9.0666666667cqw;
  height: 7.4666666667cqw;
}
.shop__chev::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2.6666666667cqw;
  height: 2.6666666667cqw;
  border-right: 2px solid #6F8796;
  border-bottom: 2px solid #6F8796;
  transform: translate(-50%, -75%) rotate(45deg);
  transition: transform 0.25s;
}
.shop__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}
.shop__body-inner {
  overflow: hidden;
  padding-bottom: 2.1333333333cqw; /* card の影が overflow:hidden で下端に矩形クリップされるのを防ぐ */
}
.shop__card {
  margin-top: 2.9333333333cqw;
  padding: 2.6666666667cqw;
  background-color: #FFFFFF;
  border-radius: 4.2666666667cqw;
  box-shadow: 0 1.0666666667cqw 0.5333333333cqw rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  gap: 2.1333333333cqw;
  text-align: left; /* Figma：住所カード内は左揃え（親のcenterを打ち消す） */
}
.shop__row {
  padding: 0 2.6666666667cqw 2.1333333333cqw;
  border-bottom: 1px dashed #DCDCDC;
}
.shop__row--last {
  padding-bottom: 0;
  border-bottom: 0;
}
.shop__label {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 4.2666666667cqw;
  line-height: 6.6666666667cqw;
  color: #6F8796;
}
.shop__val {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 3.7333333333cqw;
  line-height: 6.6666666667cqw;
  color: #3F4A54;
}
.shop__line {
  margin: 4.2666666667cqw auto 2.4cqw;
}
.shop .cta {
  margin-top: 0.5333333333cqw;
}
.shop {
  /* 開いた状態：矢印を上向きに＋カード展開 */
}
.shop__item.is-open .shop__chev::before {
  transform: translate(-50%, -25%) rotate(-135deg);
}
.shop__item.is-open .shop__body {
  grid-template-rows: 1fr;
}

/* -------------------------------------------
 * 共通：セクション見出し（英大文字 透過 ＋ 日本語ラベル重ね）※GALLERY/STORE等で再利用
*/
.sec-head {
  position: relative;
  height: 30.1333333333cqw;
  text-align: center;
}
.sec-head__en {
  display: block;
  padding-top: 2.6666666667cqw;
  font-family: "Libre Bodoni", serif;
  font-weight: 700;
  font-size: 19.4666666667cqw;
  line-height: 1;
  letter-spacing: -1.168cqw;
  text-indent: -1.168cqw; /* letter-spacing末尾分のズレを補正して中央化 */
  color: rgba(174, 217, 231, 0.24); /* メイン水色 #AED9E7 24% */
}
.sec-head__ja {
  display: block;
  margin-top: -11.7333333333cqw; /* 英字の下部に重ねる（Figmaよりja約4px高かったため-48→-44で下げて一致） */
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 5.8666666667cqw;
  color: #3F4A54;
}

/* -------------------------------------------
 * _05 各セクションは全幅（共通 section{width:92%} を打ち消し、Figma 375幅に合わせる）
*/
.gallery,
.faq,
.shop,
.hp-banner {
  width: 100%;
  box-sizing: border-box;
}

/* -------------------------------------------
 * _05 GALLERY（自動マーキー・2行を逆方向に無限スクロール）
*/
/* ===== _04 GALLERY（Splide：中央1枚＋左右チラ見せ・ドット） ===== */
.gallery {
  width: 100%;
  box-sizing: border-box;
  padding-top: 12cqw;
  padding-bottom: 11.2cqw;
  background-color: #F5F7F9; /* #F5F7F9 */
  overflow: hidden;
}
.gallery__head {
  text-align: center;
  margin-bottom: 10.1333333333cqw;
}
.gallery__en {
  display: inline-flex;
  align-items: center;
  gap: 2.6666666667cqw;
  margin: 0;
  font-family: "Libre Bodoni", serif;
  font-weight: 600;
  font-size: 6.6666666667cqw;
  line-height: 1;
  letter-spacing: 0.6666666667cqw;
  color: #3F4A54;
  white-space: nowrap;
}
.gallery__dash {
  width: 7.4666666667cqw;
  height: 0.2666666667cqw;
  background-color: #3F4A54;
}
.gallery__ja {
  margin: 1.8666666667cqw 0 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 3.2cqw;
  line-height: 1;
  color: #3F4A54;
}
.gallery__splide {
  width: 100%;
}
.gallery__link {
  display: block;
  line-height: 0;
}
.gallery__img {
  display: block;
  width: 100%;
  height: 43.7333333333cqw;
  -o-object-fit: cover;
     object-fit: cover;
  box-shadow: 0 1.0666666667cqw 1.0666666667cqw rgba(0, 0, 0, 0.1);
}
.gallery {
  /* ドット */
}
.gallery .splide__pagination {
  position: static;
  margin-top: 4.2666666667cqw;
  padding: 0;
  gap: 2.4cqw;
}
.gallery .splide__pagination li {
  line-height: 0;
  margin: 0;
}
.gallery .splide__pagination__page {
  width: 1.3333333333cqw;
  height: 1.3333333333cqw;
  margin: 0;
  background-color: rgba(63, 74, 84, 0.25);
  opacity: 1;
  transform: none;
}
.gallery .splide__pagination__page.is-active {
  background-color: #6F8796;
  transform: none;
}

/* ===== _04 ALBUM（スクエアブック / 2面アルバム ＝各Splide。構造は本番テンプレ踏襲） ===== */
.album {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding: 5.3333333333cqw 5.6cqw 11.7333333333cqw;
  overflow: hidden;
}
.album__head {
  position: relative;
  text-align: center;
  padding-top: 4.8cqw;
}
.album__script {
  position: absolute;
  top: 8.5333333333cqw;
  left: 50%;
  margin-left: -49.4666666667cqw;
  font-family: "Sacramento", cursive; /* Sacramento */
  font-size: 6.6666666667cqw;
  line-height: 1;
  letter-spacing: -0.2cqw;
  color: rgba(111, 135, 150, 0.6);
  white-space: nowrap;
  transform: rotate(-19.95deg);
  transform-origin: left center;
}
.album__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 5.3333333333cqw;
  line-height: 1;
  color: #3F4A54;
}
.album__line {
  display: block;
  width: 32cqw;
  height: 0.2666666667cqw;
  margin: 3.2cqw auto 0;
  background-color: #6F8796;
}
.album__item {
  position: relative;
  margin-top: 8.5333333333cqw;
  text-align: center;
}
.album__splide {
  width: 77.8666666667cqw;
  margin: 0 auto;
}
.album__link {
  display: block;
  line-height: 0;
}
.album__img {
  display: block;
  width: 100%;
  height: 52.2666666667cqw;
  -o-object-fit: cover;
     object-fit: cover;
  box-shadow: 0 1.0666666667cqw 1.0666666667cqw rgba(0, 0, 0, 0.3);
}
.album__name {
  margin: 4.8cqw 0 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 5.8666666667cqw;
  line-height: 1;
  color: #3F4A54;
}
.album__en {
  margin: 1.8666666667cqw 0 0;
  font-family: "Sacramento", cursive;
  font-size: 3.4666666667cqw;
  line-height: 1;
  color: #6F8796;
}
.album__desc {
  margin: 3.2cqw 0 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 3.7333333333cqw;
  line-height: 1.5;
  letter-spacing: -0.1866666667cqw;
  color: #3F4A54;
}
.album {
  /* 2面アルバムの矢印（Figma：写真左右のシェブロン） */
}
.album .splide__arrow {
  width: 8cqw;
  height: 8cqw;
  background: rgba(255, 255, 255, 0.7);
  opacity: 1;
}
.album .splide__arrow svg {
  width: 3.7333333333cqw;
  height: 3.7333333333cqw;
  fill: #6F8796;
}
.album .splide__arrow:disabled {
  opacity: 0.3;
}
.album .splide__arrow--prev {
  left: -1.0666666667cqw;
}
.album .splide__arrow--next {
  right: -1.0666666667cqw;
}

@keyframes gallery-marquee-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes gallery-marquee-right {
  from {
    transform: translateX(-50%);
  }
  to {
    transform: translateX(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gallery__track {
    animation: none !important;
  }
}
/* -------------------------------------------
 * _05 公式HPバナー
*/
.hp-banner {
  background-color: #FFFFFF;
  padding: 10.6666666667cqw 2.6666666667cqw;
  text-align: center;
}
.hp-banner__lead {
  margin: 0 0 2.6666666667cqw;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 3.2cqw;
  color: #6F8796;
}
.hp-banner__link {
  display: inline-block;
  width: 73.8666666667cqw;
  line-height: 0;
  transition: opacity 0.2s;
}
.hp-banner__link:hover {
  opacity: 0.88;
}
.hp-banner__img {
  display: block;
  width: 100%;
  height: auto;
}

/* -------------------------------------------
 * footer
*/
/* 追従CTA（フローティングバナー） */
/* 追従フローティングCTA（スクロール220pxで表示／JS制御） */
.footer-nav__container {
  position: fixed;
  left: 50%;
  transform: translateX(-50%); /* PCでもコンテンツ列の中央に揃える */
  bottom: 0;
  width: 100%;
  max-width: 768px;
  z-index: 10;
  padding-bottom: 3.2cqw;
  text-align: center;
  pointer-events: none; /* 余白部分はクリックを透過 */
}

/* Figma：#7DC1D7のピル＋白の内側アウトライン＋白文字（全CSS） */
.float-cta {
  pointer-events: auto;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80.5333333333cqw;
  height: 21.3333333333cqw; /* Figma：ピル高さ約82px（実装は64で低かったため引き上げ） */
  background-color: #6F8796; /* #7DC1D7 */
  border-radius: 10.6666666667cqw;
  box-shadow: 0 0.8cqw 1.6cqw rgba(0, 0, 0, 0.25);
  cursor: pointer;
  text-decoration: none; /* aタグの下線を消す */
  animation: cta-pulse 2.2s ease-in-out infinite;
}
.float-cta::before { /* 白の内側アウトライン（Figma 内側vector・stroke white 2px） */
  content: "";
  position: absolute;
  inset: 1.3333333333cqw;
  border: 2px solid #FFFFFF;
  border-radius: 9.3333333333cqw; /* 内側ピル＝(高さ80-inset10)/2 */
  pointer-events: none;
}
.float-cta__text {
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 5.3333333333cqw;
  color: #FFFFFF;
  letter-spacing: 0.02em;
}
.float-cta:hover {
  opacity: 0.92;
}

.footer {
  background-color: #E4F0F3; /* Figma フッター背景 */
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 3.2cqw 0 5.3333333333cqw;
}
.footer__pageTop {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6cqw;
  cursor: pointer;
  -webkit-overflow-scrolling: touch;
}
.footer__pageTop-icon { /* 上向きシェブロン（CSS） */
  display: block;
  width: 3.4666666667cqw;
  height: 3.4666666667cqw;
  border-top: 2px solid #666666;
  border-left: 2px solid #666666;
  transform: translateY(25%) rotate(45deg);
}
.footer__pageTop-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 3.2cqw;
  color: #666666;
  line-height: 1;
}
.footer__logo {
  width: 24cqw;
  margin-top: 2.6666666667cqw;
}
.footer__logo-img {
  display: block;
  width: 100%;
  height: auto;
}
.footer__copy {
  margin: 3.7333333333cqw 0 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 2.9333333333cqw;
  color: #555555;
  line-height: 1;
}/*# sourceMappingURL=half-seijin.css.map */