@charset "UTF-8";
/**
 * 繝｡繧､繝ｳ繧ｨ繝ｳ繝医Μ
 * 繧ｷ繝・ぅ繧ｳ繝ｳ繧ｿ繧ｯ繝・譁ｰ逕滓ｴｻ蠢懈抄繝輔ぉ繧｢ LP
 * 蜷・ヱ繝ｼ繧ｷ繝｣繝ｫ繧定ｪｭ縺ｿ霎ｼ縺ｿ
 */
/**
 * 変数定義
 * シティコンタクト 新生活応援フェア LP
 * カラー・フォント・スペーシング等の共通変数
 */
/* カラー */
/* ファーストビュー・サイドバー用（タイトル背景グラデーション 5段階） */
/* セクションタイトル下線（左＝緑 / 右＝水色） */
/* フェア・選べる眼鏡オプション（背景＝緑 / 注釈文「いずれか1つ…」＝茶色） */
/* フェア・超薄型レンズ（タグ・タイトル） */
/* ご相談セクション（チェックアイコン：枠・アイコン色） */
/* フェア・超薄型レンズ（マスタードタグ・茶系タイトル） */
/* 利用者の声オーバーレイ台形（とがり位置: 左寄せ時は右端から、右寄せ時は左端から） */
/* フォント（明朝体・通常） */
/* 明朝体・太字を優先（Demibold/Bold を先に指定） */
/* スペーシング */
/* ブレークポイント */
/* 992px未満1カラム時: 中央カラム幅を3カラム時と同じに保つ（992px時の中央40% ≒ 397px） */
/* トランジション */
/* セクション背景：下端の斜め部分を見せるための下余白 */
/* セクション背景：左右のサブピクセル隙間を潰す横方向の描画オーバー量 */
/**
 * 繝｡繧､繝ｳ繧ｨ繝ｳ繝医Μ
 * 繧ｷ繝・ぅ繧ｳ繝ｳ繧ｿ繧ｯ繝・譁ｰ逕滓ｴｻ蠢懈抄繝輔ぉ繧｢ LP
 * 蜷・ヱ繝ｼ繧ｷ繝｣繝ｫ繧定ｪｭ縺ｿ霎ｼ縺ｿ
 */
/**
 * ベーススタイル
 * リセット・タイポグラフィ・全体の土台
 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 18px;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: hidden;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", "MS Mincho", serif;
  font-size: 1rem;
  line-height: 1.6;
  color: #000000;
  background-color: #ffffff;
  -webkit-font-smoothing: antialiased;
}

/* 太字は明朝体の Bold 系を優先 */
strong,
b,
h1, h2, h3, h4, h5, h6,
[class*=__name],
[class*=__title],
[class*=__catch] {
  font-family: "Yu Mincho Demibold", "Yu Mincho Bold", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", "MS Mincho", serif;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a {
  color: #0066cc;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/**
 * 繝｡繧､繝ｳ繧ｨ繝ｳ繝医Μ
 * 繧ｷ繝・ぅ繧ｳ繝ｳ繧ｿ繧ｯ繝・譁ｰ逕滓ｴｻ蠢懈抄繝輔ぉ繧｢ LP
 * 蜷・ヱ繝ｼ繧ｷ繝｣繝ｫ繧定ｪｭ縺ｿ霎ｼ縺ｿ
 */
/**
 * レイアウト
 * ヘッダー・メイン・フッター・コンテナ
 */
.l-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}
@media (min-width: 768px) {
  .l-container {
    padding: 0 40px;
  }
}

.l-header {
  padding: 16px 0;
  background-color: #ffffff;
  border-bottom: 1px solid #e0e0e0;
}

.l-main {
  min-height: 60vh;
}

.l-footer {
  margin-top: 64px;
  padding: 40px 0;
  background-color: #f8f9fa;
  border-top: 1px solid #e0e0e0;
  text-align: center;
  font-size: 0.875rem;
  color: #666666;
}

.l-section {
  padding: 64px 0;
}
@media (min-width: 768px) {
  .l-section {
    padding: 76.8px 0;
  }
}

.l-section--alt {
  background-color: #f8f9fa;
}

.l-section__title {
  margin: 0 0 40px;
  font-size: 1.5rem;
  font-weight: bold;
  text-align: center;
}
@media (min-width: 768px) {
  .l-section__title {
    font-size: 2rem;
  }
}

/* ========================================
   ファーストビュー 3カラム（中央スクロール・左右固定）
   SP: 1カラム（中央→左→右の順）
   ======================================== */
.p-fv {
  /* 992px未満: 中央の枠の横幅は変えず中央配置、両脇は白 */
}
@media (max-width: 991px) {
  .p-fv {
    background-color: #ffffff;
  }
}
@media (min-width: 992px) {
  .p-fv {
    min-height: 100vh;
  }
}

/* 中央コンテンツ用スクロールを画面右端に出すためのラッパー（PC時のみ） */
@media (min-width: 992px) {
  .p-fv__scroll-wrap {
    width: 100%;
    height: 100vh;
    overflow-y: auto;
  }
}

.p-fv__inner {
  display: grid;
  gap: 0;
  /* SP: 1カラム、表示順は order で制御 */
  grid-template-columns: 1fr;
  grid-template-areas: "center" "left" "right";
  /* 992px未満: 中央枠のサイズはそのまま（max 397px）、左右は白 */
}
@media (max-width: 991px) {
  .p-fv__inner {
    max-width: 396.8px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 992px) {
  .p-fv__inner {
    /* 1000px時: 左340px / 中央320px / 右340px → 34:32:34 の比率 */
    grid-template-columns: 34fr 32fr 34fr;
    grid-template-areas: "left center right";
    min-height: 100vh;
  }
}

.p-fv__left {
  grid-area: left;
  order: 2;
  /* 1カラム時: 左サイドバーは非表示（店舗一覧は .p-fv__stores-sp で表示） */
}
@media (max-width: 991px) {
  .p-fv__left {
    display: none;
  }
}
@media (min-width: 992px) {
  .p-fv__left {
    order: 0;
    position: sticky;
    top: 0;
    align-self: start;
    max-height: 100vh;
    overflow-y: auto;
  }
}

.p-fv__center {
  grid-area: center;
  order: 1;
  min-width: 0;
}
@media (min-width: 992px) {
  .p-fv__center {
    order: 0;
    /* スクロールは .p-fv__scroll-wrap で行い、スクロールバーを画面右端に表示 */
    overflow: visible;
    /* 3カラム境界のサブピクセル割れによる白筋を防ぐ */
    margin-left: -1px;
    margin-right: -1px;
    width: calc(100% + 2px);
  }
}

.p-fv__right {
  grid-area: right;
  order: 3;
  /* 1カラム時: 右サイドバーは非表示（フレームは .p-fv__frames-sp で表示） */
}
@media (max-width: 991px) {
  .p-fv__right {
    display: none;
  }
}
@media (min-width: 992px) {
  .p-fv__right {
    order: 0;
    position: sticky;
    top: 0;
    align-self: start;
    max-height: 100vh;
    overflow-y: auto;
  }
}

/* 1カラム時のみ表示: ページ内リンク・フレームブロック・店舗ブロック */
@media (max-width: 991px) {
  /* 3つ並びボタン: 通常はファーストビュー下の位置のまま */
  .p-fv__anchor-nav {
    display: flex;
    gap: 2px;
    margin: 5px 3px;
  }
  /* 下にスクロールしてナビが画面外に出たときだけ、画面下部に固定（幅・余白は元のまま・JSで幅をセット） */
  .p-fv__anchor-nav.is-fixed {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 100;
    background-color: #ffffff;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.08);
    margin: 0;
  }
  body.anchor-nav-fixed {
    padding-bottom: 88px;
  }
  .p-fv__anchor-link {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 16px 0px 0px;
    font-size: 0.65rem;
    font-weight: 800;
    line-height: 1.35;
    color: #2c2c2c;
    background: linear-gradient(180deg, #a8d8c8 0%, #c5e5a8 100%);
    border: none;
    border-radius: 0;
    text-decoration: none;
    text-align: center;
  }
  .p-fv__anchor-link:hover {
    opacity: 0.95;
  }
  .p-fv__anchor-link-text {
    display: block;
    max-width: 100%;
  }
  .p-fv__anchor-link-icon {
    display: block;
    width: 32px;
    height: 32px;
    margin-top: 0;
    transform: rotate(90deg);
    flex-shrink: 0;
  }
  .p-fv__date-sp {
    display: block;
    margin: 8px 0 24px 0;
    text-align: center;
  }
  .p-fv__date-sp img {
    display: block;
    width: 100%;
    max-width: 300px;
    height: auto;
    margin: 0 auto;
  }
}
/* 375px以下: 3つ並びボタンは最初から画面下部に固定（スクロールでついてくるイメージ） */
@media (max-width: 375px) {
  .p-fv__anchor-nav-wrap {
    min-height: 88px;
  }
  .p-fv__anchor-nav {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 396.8px;
    box-sizing: border-box;
    z-index: 100;
    background-color: #ffffff;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.08);
    margin: 0;
  }
  body {
    padding-bottom: 88px;
  }
}
@media (min-width: 992px) {
  .p-fv__anchor-nav,
  .p-fv__date-sp,
  .p-fv__frames-sp,
  .p-fv__stores-sp {
    display: none !important;
  }
}
/* 左・右サイドバーのスクロールバーのみ非表示（中央は .p-fv__scroll-wrap でスクロールしバーは画面右端に表示） */
@media (min-width: 992px) {
  .p-fv__left,
  .p-fv__right {
    -ms-overflow-style: none;
    /* IE / Edge Legacy */
    scrollbar-width: none;
    /* Firefox */
  }
  .p-fv__left::-webkit-scrollbar,
  .p-fv__right::-webkit-scrollbar {
    width: 0;
    height: 0;
  }
}
/**
 * 繝｡繧､繝ｳ繧ｨ繝ｳ繝医Μ
 * 繧ｷ繝・ぅ繧ｳ繝ｳ繧ｿ繧ｯ繝・譁ｰ逕滓ｴｻ蠢懈抄繝輔ぉ繧｢ LP
 * 蜷・ヱ繝ｼ繧ｷ繝｣繝ｫ繧定ｪｭ縺ｿ霎ｼ縺ｿ
 */
/**
 * コンポーネント
 * ヒーロー・CTA・カード等の再利用可能なパーツ
 */
/* ヒーローエリア */
.c-hero {
  padding: 64px 24px;
  background: linear-gradient(135deg, #f8f9fa 0%, #e8f4fc 100%);
  text-align: center;
}

.c-hero__title {
  margin: 0 0 16px;
  font-size: 1.75rem;
  font-weight: bold;
  color: #000000;
}
@media (min-width: 768px) {
  .c-hero__title {
    font-size: 2.5rem;
  }
}

.c-hero__lead {
  margin: 0;
  font-size: 1rem;
  color: #666666;
}
@media (min-width: 768px) {
  .c-hero__lead {
    font-size: 1.125rem;
  }
}

/* CTAボタン */
.c-btn {
  display: inline-block;
  padding: 16px 40px;
  font-size: 1rem;
  font-weight: bold;
  text-align: center;
  color: #ffffff;
  background-color: #0066cc;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.c-btn:hover {
  background-color: #004c99;
  text-decoration: none;
}

.c-btn--accent {
  background-color: #eb6100;
}
.c-btn--accent:hover {
  background-color: rgb(184, 75.9489361702, 0);
}

/* カード（キャンペーン内容など） */
.c-card {
  padding: 24px;
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
}

.c-card__title {
  margin: 0 0 16px;
  font-size: 1.125rem;
  font-weight: bold;
}

.c-card__text {
  margin: 0;
  font-size: 0.9375rem;
  color: #666666;
}

/* ========================================
   ファーストビュー用コンポーネント
   ======================================== */
/* サイドバー・緑グラデヘッダー */
.c-sidebar {
  background-color: #ffffff;
}

.c-sidebar__header {
  padding: 24px;
  background: linear-gradient(120deg, #35b597 0%, #a7d398 15%, #bad988 30%, #d5e7af 60%, #eaf2c7 100%);
  color: #231815;
  font-size: 1.2rem;
  font-weight: bold;
  text-align: center;
}

/* 店舗一覧（県名のみ四角で囲む、その下に店舗名、中央揃え）
   四角の幅は全県で統一＝店舗名の最長（福岡の行）に合わせる */
.c-store-list-wrap {
  text-align: center;
}

.c-store-list {
  margin: 0;
  padding: 0;
  text-align: center;
  display: inline-block;
  max-width: 400px;
  width: 100%;
}

.c-store-list__item {
  margin-bottom: 24px;
  width: 100%;
}

.c-store-list__item:last-child {
  margin-bottom: 0;
}

/* 県名のみ枠で囲む（幅は親＝リスト幅に合わせる＝最長の店舗名行に揃う） */
.c-store-list__pref {
  display: block;
  margin: 0;
  padding: 0 16px;
  border: 1px solid #000000;
  font-size: 1rem;
  font-weight: bold;
  width: 100%;
  box-sizing: border-box;
}

.c-store-list__stores {
  margin: 8px 0 0;
  font-size: 1rem;
  font-weight: bold;
  color: #000000;
  line-height: 1.5;
  text-align: center;
  /* ・の横の改行由来の余白を詰める */
  word-spacing: -0.3em;
}

/* 店舗名リンク：ホバー時は文字色のみ変化（ベースの a:hover 下線を打ち消す） */
.c-store-list__link {
  color: inherit;
  text-decoration: none !important;
  transition: color 0.2s ease;
}
.c-store-list__link:hover, .c-store-list__link:focus, .c-store-list__link:visited {
  color: #0066cc;
  text-decoration: none !important;
}

/* 写真＋ラベル（屋外ではコンタクト / 部ではメガネ 等） */
.c-photo-label {
  margin-bottom: 24px;
}

.c-photo-label__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  background-color: #f8f9fa;
}

.c-photo-label__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 6px 16px;
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: bold;
}

.c-photo-label__badge--contact {
  background-color: #2563eb;
}

.c-photo-label__badge--megane {
  background-color: #16a34a;
}

/* イベントロゴ（CITY-MEGANE NEW LIFE FAIR） */
.c-event-logo {
  margin: 24px 0;
  text-align: center;
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  color: #000000;
}
@media (min-width: 768px) {
  .c-event-logo {
    font-size: 1.25rem;
  }
}

/* キャッチコピー */
.c-catch {
  margin: 24px 0;
  font-size: 1rem;
  font-weight: bold;
  text-align: center;
  color: #000000;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .c-catch {
    font-size: 1.125rem;
  }
}

/* 中央カラムのブランドヘッダー */
.c-center-header {
  padding: 24px;
  text-align: center;
}

.c-center-header__logo {
  margin: 0;
  font-size: 1.25rem;
  font-weight: bold;
  color: #000000;
}

.c-center-header__img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

.c-center-header__icon {
  display: inline-flex;
  gap: 4px;
  margin-bottom: 4px;
}

.c-center-header__icon-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

/* フレームカード（おすすめ眼鏡）
   構成: ヘッダーバー（青系）＋コンテンツエリア（薄グレー）＋説明・画像（矢印）・区切り線・価格/特徴 */
.c-frame-card {
  margin-bottom: 16px;
  background-color: #e8eef4;
  overflow: hidden;
}

.c-frame-card__name {
  margin: 0;
  padding: 10px 16px;
  font-size: 1rem;
  font-weight: bold;
  background-color: #6da0b5;
  text-align: left;
}

.c-frame-card__content {
  padding: 16px;
  background-color: #ededed;
}

.c-frame-card__desc {
  margin: 0 0 16px;
  font-size: 0.8125rem;
  color: #000000;
  line-height: 1.5;
  text-align: left;
  font-weight: bold;
}

.c-frame-card__img-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 0 0 16px;
}

.c-frame-card__img {
  width: 100%;
  max-width: 200px;
  height: auto;
  display: block;
  aspect-ratio: 2/1;
  object-fit: contain;
  border-radius: 4px;
}

.c-frame-card__separator {
  margin: 0 0 16px;
  border: none;
  border-top: 1px solid #e0e0e0;
}

/** 品番・価格を2行で表示するブロック（他フレーム用） */
.c-frame-card__price-block {
  margin: 0;
}

.c-frame-card__code {
  margin: 0 0 2px;
  font-size: 0.8125rem;
  color: #000000;
  text-align: left;
  font-weight: bold;
}

.c-frame-card__code--blank {
  visibility: hidden;
}

.c-frame-card__price {
  margin: 0;
  font-size: 0.8125rem;
  color: #000000;
  text-align: left;
  font-weight: bold;
}

.c-frame-card__features {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.8125rem;
  color: #000000;
  line-height: 1.5;
  text-align: left;
}

.c-frame-card__features li {
  margin-bottom: 2px;
}

/**
 * 繝｡繧､繝ｳ繧ｨ繝ｳ繝医Μ
 * 繧ｷ繝・ぅ繧ｳ繝ｳ繧ｿ繧ｯ繝・譁ｰ逕滓ｴｻ蠢懈抄繝輔ぉ繧｢ LP
 * 蜷・ヱ繝ｼ繧ｷ繝｣繝ｫ繧定ｪｭ縺ｿ霎ｼ縺ｿ
 */
/**
 * 蜿ｳ繧ｵ繧､繝峨ヰ繝ｼ・医ヵ繝ｬ繝ｼ繝邏ｹ莉具ｼ・ * .p-fv__right 蜀・・繧ｵ繧､繝峨ヰ繝ｼ繝ｻ繝輔Ξ繝ｼ繝繧ｫ繝ｼ繝・2ﾃ・ 繧ｰ繝ｪ繝・ラ逕ｨ繧ｹ繧ｿ繧､繝ｫ
 */
/* 3繧ｫ繝ｩ繝譎・ 繝｡繧ｬ繝阪ヵ繝ｬ繝ｼ繝縺ｮ繧ｿ繧､繝医Ν縺ｯ蜿悶ｊ謇ｱ縺・ｺ苓・荳隕ｧ縺ｨ蜷梧ｧ倥↓繧ｰ繝ｩ繝・・繧ｷ繝ｧ繝ｳ閭梧勹・・omponents 縺ｮ .c-sidebar__header 繧偵◎縺ｮ縺ｾ縺ｾ菴ｿ逕ｨ・・*/
/* 蜿ｳ繧ｵ繧､繝峨ヰ繝ｼ: 繝輔Ξ繝ｼ繝邏ｹ莉九ｒ 2ﾃ・ 繧ｰ繝ｪ繝・ラ縲：V繝薙ず繝･繧｢繝ｫ縺ｨ蜷檎ｨ句ｺｦ縺ｮ鬮倥＆縺ｧ邵ｦ菴咏區螟壹ａ */
.p-fv__right .c-sidebar__body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 0 0 40px 0;
  border-radius: 0;
}

.p-fv__right .c-frame-card {
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-radius: 0;
}

.p-fv__right .c-frame-card__name {
  font-size: 0.875rem;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  padding: 8px 8px;
}

/* 繧｢繝ｼ繝舌Φ繝医Ξ繧､繝ｫ繝ｻ繧ｽ繝ｩ繧､繧ｺ: 繧ｿ繧､繝医Ν閭梧勹 #99d4d7 */
.p-fv__right .c-frame-card[data-frame=urban-trail] .c-frame-card__name,
.p-fv__right .c-frame-card[data-frame=solaiz] .c-frame-card__name {
  background-color: #99d4d7;
}

/* 繧ｸ繝ｧ繧ｻ繝輔・繧｢繧ｯ繧｢繝ｪ繝舌ユ繧｣: 繧ｿ繧､繝医Ν閭梧勹 #abd6a9 */
.p-fv__right .c-frame-card[data-frame=joseph] .c-frame-card__name,
.p-fv__right .c-frame-card[data-frame=aqua-liberty] .c-frame-card__name {
  background-color: #abd6a9;
}

/* 轤ｹ邱夲ｼ亥刀逡ｪ繝ｻ萓｡譬ｼ縺ｮ荳奇ｼ峨・菴咲ｽｮ繧貞・繝輔Ξ繝ｼ繝縺ｧ謠・∴繧九◆繧√さ繝ｳ繝・Φ繝・↓譛蟆城ｫ倥＆繧呈欠螳・*/
.p-fv__right .c-frame-card__content {
  padding: 8px;
  flex: 1;
  min-height: 300px;
  display: flex;
  flex-direction: column;
}

.p-fv__right .c-frame-card__desc {
  font-size: 0.75rem;
  font-weight: bold;
  line-height: 1.45;
  margin: 0 0 6px;
  flex: 0 1 auto;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}

.p-fv__right .c-frame-card__img-wrap {
  margin: 0 0 6px;
  height: 150px;
  flex-shrink: 0;
}

.p-fv__right .c-frame-card__img {
  flex: 1;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: center;
  background-color: transparent;
}

/* 遏｢蜊ｰ繝懊ち繝ｳ・亥承繧ｵ繧､繝峨ヰ繝ｼ蟆ら畑繝ｻcomponents 縺ｫ縺ｯ謖√◆縺ｪ縺・ｼ・*/
.p-fv__right .c-frame-card__arrow {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-position: center;
  cursor: pointer;
}

.p-fv__right .c-frame-card__arrow--prev {
  transform: scaleX(-1);
}

.p-fv__right .c-frame-card__separator {
  margin: auto 0 0;
  border-top: 1px dashed #666666;
  flex-shrink: 0;
}

.p-fv__right .c-frame-card__price-block {
  margin-top: 0;
}

.p-fv__right .c-frame-card__code {
  font-size: 0.65rem;
  font-weight: bold;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  text-align: center;
  margin: 0 0 2px;
}

.p-fv__right .c-frame-card__price {
  font-size: 0.65rem;
  font-weight: bold;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  text-align: center;
  margin: 0;
}

/* 価格の前に区切り線がないカード（アクアリバティ）も点線を1本・上側余白で他カードと線を揃える */
.p-fv__right .c-frame-card[data-frame=aqua-liberty] .c-frame-card__price-block {
  margin-top: auto;
  border-top: 1px dashed #666666;
}

.p-fv__right .c-frame-card__features {
  font-size: 0.55rem;
  font-weight: bold;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  margin: 0;
  padding-top: 8px;
  margin-top: 8px;
}

/* ソライズは2行なので点線を2本（リスト上に1本、2行目の上に1本） */
.p-fv__right .c-frame-card__features li {
  padding-top: 8px;
  border-top: 1px dashed #666666;
  margin-top: 8px;
}

.p-fv__right .c-frame-card__features li:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

/* ソライズ: 2段目（特徴）を1段目（説明）のすぐ下に小さめの文字で配置・点線は価格の上1本のみ */
.p-fv__right .c-frame-card__features--solaiz {
  list-style: none;
  padding: 4px 0 0 1em;
  margin: 0;
  flex-shrink: 0;
}

.p-fv__right .c-frame-card__features--solaiz .c-frame-card__features-text {
  font-size: 0.55rem;
  font-weight: bold;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  margin: 0 0 2px;
  line-height: 1.4;
  color: #000000;
}

.p-fv__right .c-frame-card__features--solaiz .c-frame-card__features-text:last-of-type {
  margin-bottom: 0;
}

.p-fv__right .c-frame-card__price-block--solaiz {
  margin-top: auto;
  border-top: 1px dashed #666666;
}

/* ソライズのみ: 画像を枠幅いっぱいにし、矢印を画像の上に重ねる */
.p-fv__right .c-frame-card[data-frame=solaiz] .c-frame-card__img-wrap {
  position: relative;
  width: 100%;
  border-radius: 0;
}

/* ソライズ: 画像上の「2,000円OFF」SVG（画像の一番上に配置） */
.p-fv__right .c-frame-card[data-frame=solaiz] .c-frame-card__off-badge {
  position: absolute;
  left: 50%;
  top: 10px;
  transform: translateX(-50%);
  z-index: 1;
  width: 100%;
  max-width: 150px;
  height: auto;
  display: block;
  pointer-events: none;
}

.p-fv__right .c-frame-card[data-frame=solaiz] .c-frame-card__img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 0;
}

.p-fv__right .c-frame-card[data-frame=solaiz] .c-frame-card__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}

.p-fv__right .c-frame-card[data-frame=solaiz] .c-frame-card__arrow--prev {
  left: 4px;
  transform: translateY(-50%) scaleX(-1);
}

.p-fv__right .c-frame-card[data-frame=solaiz] .c-frame-card__arrow--next {
  right: 4px;
}

/* 繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ閭梧勹逕ｨ mixin・育判蜒上ヱ繧ｹ繧貞､峨∴繧九□縺代〒菴ｿ縺・屓縺励・鬮倥＆縺・▲縺ｱ縺・〒荳狗ｫｯ縺ｮ譁懊ａ縺ｾ縺ｧ陦ｨ遉ｺ・・*/
/* ========================================
   LP 蝗ｺ譛峨せ繧ｿ繧､繝ｫ・医・繝ｼ繧ｸ蟆ら畑縺ｮ荳頑嶌縺阪↑縺ｩ・・
   ======================================== */
.p-campaign-list {
  display: grid;
  gap: 24px;
  margin: 0;
}
@media (min-width: 768px) {
  .p-campaign-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 992px) {
  .p-campaign-list {
    grid-template-columns: repeat(3, 1fr);
  }
}

.p-cta-wrap {
  text-align: center;
  margin-top: 40px;
}

.p-cta-lead {
  text-align: center;
  margin: 0 0 40px;
}

/* 荳ｭ螟ｮ繧ｫ繝ｩ繝縺ｮ繧ｳ繝ｳ繝・Φ繝・ヶ繝ｭ繝・け */
.p-fv-center-block {
  padding: 0 1rem 1rem;
}

.p-fv-center-block--noborder {
  border-bottom: none;
  padding: 1rem;
}

/* 繝輔ぃ繝ｼ繧ｹ繝医ン繝･繝ｼ 繝｡繧､繝ｳ繝薙ず繝･繧｢繝ｫ・・op-fv.png 繧貞・縺ｮ豈皮紫縺ｮ縺ｾ縺ｾ陦ｨ遉ｺ・・*/
.p-fv-hero {
  position: relative;
  margin-bottom: 0;
}

.p-fv-hero__img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}

@media (max-width: 375px) {
  .p-fv-hero__img {
    height: 75vh;
    object-fit: cover;
  }
}
.p-fv-hero__text {
  position: absolute;
  left: 0;
  top: 0;
  width: 50%;
  max-width: 320px;
  height: auto;
  display: block;
  object-fit: contain;
  pointer-events: none;
  z-index: 2;
  top: 10%;
  margin-left: 24px;
}

/* 1繧ｫ繝ｩ繝譎ゅ・縺ｿ: 繝偵・繝ｭ繝ｼ逕ｻ蜒丞ｷｦ荳九↓ sp-hata.svg 繧帝㍾縺ｭ繧・*/
.p-fv-hero__sp-hata {
  display: none;
}

@media (max-width: 991px) {
  .p-fv-hero__sp-hata {
    display: block;
    position: absolute;
    left: 50px;
    bottom: 0;
    width: 35%;
    max-width: 120px;
    height: auto;
    pointer-events: none;
    z-index: 2;
  }
}
@media (min-width: 992px) {
  .p-fv-hero__sp-hata {
    display: none !important;
  }
}
/* fair-main.svg 繧偵ヲ繝ｼ繝ｭ繝ｼ逶ｴ荳九↓鄂ｮ縺・◆縺ｨ縺阪・菴咏區 */
.p-fv-below--right-after-hero {
  margin-top: 16px;
}

/* 1繧ｫ繝ｩ繝譎・ fair-main.svg 縺ｯ髱櫁｡ｨ遉ｺ */
@media (max-width: 991px) {
  .p-fv-below--right-after-hero {
    display: none !important;
  }
}
/* 2譫壻ｸｦ縺ｳ繝薙ず繝･繧｢繝ｫ・倶ｸｭ螟ｮ繝ｩ繝吶Ν */
.p-fv-visual {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 0;
}

.p-fv-visual__panel {
  position: relative;
}

/* 4譫壹・蜀咏悄繧貞酔縺伜髄縺搾ｼ亥承荳翫′繧奇ｼ峨〒譁懊ａ繧ｫ繝・ヨ・井ｸ願ｾｺ繝ｻ荳玖ｾｺ縺ｨ繧ゅ↓蛯ｾ縺代ｋ・・*/
.p-fv-visual--overlay-bottom .p-fv-visual__panel,
.p-fv-visual--overlay-top .p-fv-visual__panel {
  clip-path: none;
}

/* 譁懊ａ繧ｫ繝・ヨ縺ｯ蜀咏悄譛ｬ菴薙・縺ｿ縺ｫ驕ｩ逕ｨ・医が繝ｼ繝舌・繝ｬ繧､縺ｯ蛻・ｉ縺ｪ縺・ｼ・*/
.p-fv-visual--overlay-bottom .p-fv-visual__photo,
.p-fv-visual--overlay-top .p-fv-visual__photo {
  clip-path: polygon(0 6%, 100% 0, 100% 94%, 0 100%);
}

/* 荳句ｱ､: PNG蜀咏悄 */
.p-fv-visual__photo {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  vertical-align: middle;
  aspect-ratio: 1/1;
}

/* 荳雁ｱ､: SVG・域枚蟄励・繧､繝ｩ繧ｹ繝茨ｼ峨ｒ蜀咏悄縺ｮ荳翫↓ absolute 縺ｧ驥阪・繧・*/
.p-fv-visual__overlay-wrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.p-fv-visual__overlay,
.p-fv-visual__overlay-wrap .p-fv-visual__overlay {
  position: absolute;
  width: 80%;
  height: auto;
  display: block;
  object-fit: contain;
  object-position: left bottom;
  pointer-events: none;
  z-index: 2;
  left: 0;
  right: auto;
  top: auto;
  bottom: 4%;
}

.p-fv-catch {
  width: 80%;
  margin: 40px auto;
  /* 繝壹・繧ｸ蜀・Μ繝ｳ繧ｯ縺ｧ鬟帙ｓ縺縺ｨ縺阪∝・鬆ｭ縺九ｉ 80px 荳九′縺｣縺滉ｽ咲ｽｮ縺ｫ陦ｨ遉ｺ */
  scroll-margin-top: 60px;
}

/* 蟾ｦ繧ｫ繝ｩ繝・亥ｱ句､悶・繧ｹ繝昴・繝・ｼ・ 繝・く繧ｹ繝医・繧｢繧､繧ｳ繝ｳ繧偵ヱ繝阪Ν蜀・〒蜿ｳ蟇・○繝ｻ荳狗ｫｯ */
.p-fv-visual__panel:first-child .p-fv-visual__overlay,
.p-fv-visual__panel:first-child .p-fv-visual__overlay-wrap .p-fv-visual__overlay {
  left: auto;
  right: 0;
  object-position: right bottom;
}

/* 蜿ｳ繧ｫ繝ｩ繝・磯Κ螻九・蜍牙ｼｷ・・ 繝・く繧ｹ繝医・繧｢繧､繧ｳ繝ｳ繧偵ヱ繝阪Ν蜀・〒蟾ｦ蟇・○繝ｻ荳狗ｫｯ・医ョ繝輔か繝ｫ繝医・縺ｾ縺ｾ・・*/
/* 縺昴・荳・ 荳・譫壹→1譫壹〒蛻・￠繧九∽ｸ翫・逕ｻ蜒上・荳句濠蛻・・髫繧後↑縺・ｨ句ｺｦ縺ｫ驥阪・繧・*/
.p-fv-below {
  position: relative;
  padding: 0;
  min-height: clamp(220px, 55vw, 400px);
  margin-bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
}

.p-fv-below__main-img {
  display: block;
  width: 80%;
  max-width: none;
  height: auto;
  margin: -120px auto 0;
  padding-bottom: 0;
  object-fit: contain;
}

/* 荳・譫・ flex 縺ｧ讓ｪ荳ｦ縺ｳ繝ｻ荳ｭ螟ｮ謠・∴縲∝ｰ代＠縺縺台ｸ翫・逕ｻ蜒上↓驥阪↑繧・*/
.p-fv-below__row {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-top: -40px;
  padding: 0 0 40px;
  z-index: 1;
}

.p-fv-below__flag {
  max-width: 50%;
  height: auto;
  object-fit: contain;
  object-position: left center;
}

.p-fv-below__people {
  max-width: 50%;
  height: auto;
  object-fit: contain;
  object-position: right center;
}

/* 1譫・ 荳逡ｪ荳九√Ξ繧､繝､繝ｼ譛蜑埼擇 */
.p-fv-below__brand {
  position: relative;
  padding-bottom: 24px;
  z-index: 2;
}

.p-fv-below__brand-img {
  display: block;
  margin: 0 auto;
  max-width: 90%;
  width: 260px;
  height: auto;
  object-fit: contain;
}

/* 蠢懈抄繝輔ぉ繧｢・・lue-waku + ouen1/ouen2 繧剃ｽｿ縺・∪繧上＠・・*/
.p-ouen {
  padding: 24px;
}

.p-ouen__block {
  position: relative;
  margin-bottom: 24px;
}

.p-ouen__block:last-child {
  margin-bottom: 0;
}

.p-ouen__frame {
  display: block;
  width: 100%;
  height: auto;
}

.p-ouen__flag {
  display: none;
}

.p-ouen__text {
  display: none;
}

.p-ouen__line {
  margin: 0 0 2px;
  font-size: clamp(0.8rem, 0.7rem + 0.5vw, 1.3rem);
  line-height: 1.45;
  color: #000000;
  letter-spacing: -1.5px;
}
.p-ouen__line:last-child {
  margin-bottom: 0;
}

.p-ouen__line--highlight {
  color: #eb6100;
  font-weight: bold;
}

/* 繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ繧ｿ繧､繝医Ν・医％繧薙↑縺頑か縺ｿ縺ゅｋ譁ｹ蠢・ｦ具ｼ・ｼ・譛ｬ縺ｮ荳狗ｷ夲ｼ・
   __inner 繧・inline-block 縺ｫ縺励∫ｷ壹・髟ｷ縺輔ｒ繧ｿ繧､繝医Ν譁・ｭ怜ｹ・・90%縺ｫ・亥崋螳壼､繝ｻJS荳崎ｦ・ｼ・*/
.p-section-title {
  margin: 40px 0 0;
  padding: 0 8px;
  text-align: center;
  font-weight: bold;
  color: #000;
  scroll-margin-top: 30px;
}

.p-section-title__inner {
  display: inline-block;
  text-align: center;
}

.p-section-title__text {
  display: block;
}

/* 邱壹・髟ｷ縺包ｼ拈_inner・茨ｼ昴ち繧､繝医Ν譁・ｭ怜ｹ・ｼ峨・90%縲・譛ｬ縺ｮ髢薙・繧ｹ繝壹・繧ｹ縺ｯ gap 縺ｧ邯ｭ謖・*/
.p-section-title__lines {
  display: flex;
  justify-content: center;
  gap: 0.5em;
  margin-top: 6px;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}

.p-section-title__line {
  height: 5px;
  border-radius: 0;
  background-color: #61c3d5;
}

.p-section-title__line--left {
  width: 55%;
  background-color: #abd6a9;
}

.p-section-title__line--right {
  width: 35%;
}

/* 991px莉･荳九・縺ｨ縺榊推繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ繧ｿ繧､繝医Ν縺ｮ繝輔か繝ｳ繝医し繧､繧ｺ繧・1rem 縺ｫ */
@media (max-width: 991px) {
  .p-section-title,
  .p-section-title__text {
    font-size: 1rem;
  }
  .l-section__title {
    font-size: 1rem;
  }
  .c-sidebar__header {
    font-size: 1rem;
  }
}
/* 繧ｷ繝・ぅ繝｡繧ｬ繝阪＃蛻ｩ逕ｨ閠・・螢ｰ・医ち繧､繝医Ν縺ｯ閭梧勹縺ｫ縺九・繧峨↑縺・・閭梧勹縺ｯ inner 縺ｮ縺ｿ・・*/
.p-voice {
  position: relative;
  z-index: 1;
}

.p-voice__inner {
  position: relative;
  margin: 0 auto;
  overflow: hidden;
}

.p-voice__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
  pointer-events: none;
}

.p-voice__content {
  position: relative;
  z-index: 1;
  padding: 90px 0 120px;
  display: grid;
  row-gap: 2rem;
}

.p-voice__card {
  margin: 0;
}

.p-voice__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* 逕ｻ蜒上・荳奇ｼ壹ユ繧｣繝ｼ繝ｫ・狗區縺ｮ2谿ｵ蜿ｰ蠖｢繧ｪ繝ｼ繝舌・繝ｬ繧､・・/C: 蟾ｦ蟇・○ / B: 蜿ｳ蟇・○縺ｯ --right 縺ｧ蛻・ｊ譖ｿ縺茨ｼ・*/
.p-voice__overlay {
  position: relative;
  margin-top: -100px;
  margin-left: 0;
  max-width: 40%;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
}
.p-voice__overlay--right {
  margin-left: auto;
  margin-right: 0;
}
.p-voice__overlay--wide {
  max-width: 50%;
}

/* 991px莉･荳九・縺ｨ縺阪が繝ｼ繝舌・繝ｬ繧､縺ｮ蟷・ｒ蠎・ａ縺ｫ */
@media (max-width: 991px) {
  .p-voice__overlay {
    max-width: 60%;
    margin-top: -65px;
  }
  .p-voice__overlay--wide {
    max-width: 70%;
  }
}
.p-voice__overlay-block {
  padding: 16px 24px;
  font-size: 0.9375rem;
  line-height: 1.5;
  font-weight: bold;
}
.p-voice__overlay-block--teal {
  background-color: #61c3d5;
  color: #ffffff;
  clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%);
}
.p-voice__overlay-block--white {
  background-color: #ffffff;
  color: #61c3d5;
  margin-top: -1px;
  clip-path: polygon(0 0, 92% 0, 100% 100%, 0 100%);
}

/* 隕ｪ縺ｫ莉倅ｸ取凾・壹◎縺ｮ overlay 蜀・・荳｡繝悶Ο繝・け縺ｫ繝代ョ繧｣繝ｳ繧ｰ謖・ｮ夲ｼ・縺輔ｓ繧ｫ繝ｼ繝臥畑・・*/
.p-voice__overlay-block--wide-padding .p-voice__overlay-block {
  padding: 16px 40px;
}

/* 蜿ｳ蟇・○譎ゑｼ壼床蠖｢繧貞ｷｦ蜿ｳ蜿崎ｻ｢・亥承縺檎峩隗偵・縺ｨ縺後ｊ蟾ｦ蜷代″・・*/
.p-voice__overlay--right .p-voice__overlay-block--teal {
  clip-path: polygon(100% 0, 0 0, 8% 100%, 100% 100%);
}

.p-voice__overlay--right .p-voice__overlay-block--white {
  clip-path: polygon(100% 0, 8% 0, 0 100%, 100% 100%);
}

.p-voice__meta {
  margin: 0;
}

.p-voice__usage {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
}

.p-voice__quote {
  font-size: clamp(1rem, 0.94rem + 0.3vw, 1.3rem);
  line-height: 1.7;
  color: #000000;
  border: none;
  background: transparent;
  font-weight: 700;
}

/* 991px莉･荳九・縺ｨ縺榊ｼ慕畑譁・・繝輔か繝ｳ繝医し繧､繧ｺ繧・1rem 縺ｫ・磯壼ｸｸ繧医ｊ蠕後↓譖ｸ縺・※荳頑嶌縺阪☆繧具ｼ・*/
@media (max-width: 991px) {
  .p-voice__quote {
    font-size: 1rem;
  }
}
/* 繝輔ぉ繧｢譌･莉倥そ繧ｯ繧ｷ繝ｧ繝ｳ・郁レ譎ｯ繧剃ｸ翫・繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ縺ｮ荳九↓陲ｫ縺帙・蛻ｩ逕ｨ閠・・螢ｰ繝ｻ豬√ｌ縺ｨ蜷梧ｧ倥↓隕ｪ蟷・＞縺｣縺ｱ縺・〒髫咎俣縺ｪ縺暦ｼ・*/
.p-fair {
  margin-top: -110px;
  position: relative;
  z-index: 0;
}

/* 991px莉･荳九・縺ｨ縺阪ヵ繧ｧ繧｢繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ縺ｮ荳翫・繝ｼ繧ｸ繝ｳ繧堤ｷｩ繧√ｋ */
@media (max-width: 991px) {
  .p-fair {
    margin-top: -90px;
  }
}
.p-fair__inner {
  position: relative;
  margin: 0 auto;
  overflow: hidden;
}

.p-fair__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
  pointer-events: none;
}

.p-fair__content {
  position: relative;
  z-index: 1;
  padding: 90px 24px 120px;
}
.p-fair__content .p-ouen__block {
  margin-top: 64px;
}

/* 繝輔ぉ繧｢繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ譛ｫ蟆ｾ・哽CB繧ｮ繝輔ヨ繧ｫ繝ｼ繝・*/
.p-fair__jcb {
  margin-top: 24px;
  text-align: center;
}

.p-fair__jcb-wrap {
  display: inline-block;
  position: relative;
  transform: rotate(-4deg);
}

.p-fair__jcb-img {
  display: block;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

.p-fair__jcb-note {
  display: block;
  font-size: 0.65rem;
  color: #666;
  text-align: right;
  margin-top: 4px;
}

.p-fair__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* 驕ｸ縺ｹ繧狗愍髀｡繧ｪ繝励す繝ｧ繝ｳ・医ざ繝ｼ繝ｫ繝芽ｧ剃ｸｸ繝舌リ繝ｼ・区ｳｨ驥茨ｼ・*/
.p-fair__option {
  margin-top: 24px;
  text-align: center;
}

.p-fair__option-label {
  display: inline-block;
  margin: 0;
  padding: 16px 0;
  background-color: #abd6a9;
  color: #ffffff;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  font-size: clamp(1rem, 0.92rem + 0.4vw, 1.4rem);
  font-weight: bold;
  line-height: 1.4;
  border-radius: 10px;
  width: 100%;
}

.p-fair__option-label-img {
  display: block;
  width: 250px;
  max-width: none;
  height: auto;
  margin: 0 auto;
}

.p-fair__option-note {
  margin: 8px 0 0;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  font-size: clamp(1rem, 0.96rem + 0.2vw, 1.2rem);
  color: #c7a03f;
  line-height: 1.5;
  font-weight: 700;
}

/* 逡ｪ蜿ｷ莉倥″繧ｫ繝ｼ繝会ｼ・縲・縺ｧ菴ｿ縺・屓縺励・蟾ｦ荳顔峩隗偵・莉冶ｧ剃ｸｸ繝ｻ荳芽ｧ抵ｼ区焚蟄暦ｼ・*/
.p-fair__card {
  margin-top: 24px;
  padding: 24px;
  background-color: #ffffff;
  border-radius: 0 10px 10px 10px;
  position: relative;
  overflow: hidden;
}
.p-fair__card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 80px;
  height: 80px;
  background-color: #abd6a9;
  clip-path: polygon(0 0, 0 100%, 100% 0);
  pointer-events: none;
}

.p-fair__card-num {
  position: absolute;
  left: 8px;
  top: 6px;
  color: #ffffff;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 2.5rem;
  font-weight: bold;
  line-height: 1;
  z-index: 1;
}

.p-fair__card-header {
  margin-bottom: 8px;
}

.p-fair__card-title {
  margin: 0;
  text-align: center;
}

.p-fair__card-title-img {
  display: inline-block;
  width: 70%;
  max-width: none;
  height: auto;
  vertical-align: middle;
}

.p-fair__card-title-img--1 {
  width: 70%;
}

.p-fair__card-title-img--2 {
  width: 50%;
}

.p-fair__card-title-img--3 {
  width: 35%;
}

.p-fair__card-desc {
  margin: 24px 0 16px;
  font-size: clamp(1rem, 0.96rem + 0.2vw, 1.2rem);
  line-height: 1.6;
  color: #000000;
  font-weight: 700;
}

/* 991px莉･荳九・縺ｨ縺阪ヵ繧ｧ繧｢繧ｫ繝ｼ繝芽ｪｬ譏取枚縺ｮ繝輔か繝ｳ繝医し繧､繧ｺ */
@media (max-width: 991px) {
  .p-fair__card-desc {
    font-size: 0.9rem;
  }
}
.p-fair__card-img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  height: auto;
  vertical-align: middle;
  object-fit: contain;
  object-position: center;
  max-width: 100%;
  background-color: #ffffff;
}

.p-fair__card-img--photo {
  object-fit: cover;
}

/* 縺頑か縺ｿ繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ・郁レ譎ｯ縺ｯ section-bg繝ｻ蛻ｩ逕ｨ閠・・螢ｰ繝ｻ豬√ｌ縺ｨ蜷梧ｧ倥↓隕ｪ蟷・＞縺｣縺ｱ縺・〒髫咎俣縺ｪ縺暦ｼ・*/
.p-nayami {
  margin-top: 24px;
}

.p-nayami__inner {
  position: relative;
  margin: 0 auto;
  overflow: hidden;
}

.p-nayami__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
  pointer-events: none;
}

.p-nayami__content {
  position: relative;
  z-index: 1;
  padding: 100px 24px 60px;
}

/* 991px莉･荳九・縺ｨ縺阪後％繧薙↑縺頑か縺ｿ縲阪そ繧ｯ繧ｷ繝ｧ繝ｳ縺ｮ繝代ョ繧｣繝ｳ繧ｰ */
@media (max-width: 991px) {
  .p-nayami__content {
    padding: 50px 24px 40px;
  }
  .p-nayami {
    margin-top: 0;
  }
}
.p-nayami__item {
  width: 100%;
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 24px;
}

.p-nayami__item:last-child {
  margin-bottom: 0;
}

.p-nayami__img {
  width: 100%;
  height: auto;
  display: block;
}

/* 鮟・棧・・ellow-waku.svg・会ｼ玖ｧ｣豎ｺ繝｡繝・そ繝ｼ繧ｸ縲√◎縺ｮ荳九・隱ｬ譏取枚 */
.p-nayami__solution {
  position: relative;
  margin-top: 40px;
  margin-bottom: 40px;
}

.p-nayami__waku {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}

.p-nayami__solution-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  margin: 0;
  font-size: clamp(1rem, 0.92rem + 0.4vw, 1.4rem);
  font-weight: bold;
  line-height: 1.6;
  text-align: center;
  color: #000000;
}

.p-nayami__lead {
  margin: 0 auto;
  max-width: 535px;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #000000;
  font-weight: 700;
  text-align: left;
}

/* 逶ｸ隲・す繝ｼ繝ｳ・・ospital.jpg 縺ｫ case-left / case-right 繧帝㍾縺ｭ繧具ｼ・*/
.p-nayami__consult {
  position: relative;
  margin: 40px auto;
  width: 100%;
}

.p-nayami__consult-img {
  display: block;
  width: 75%;
  height: auto;
  object-fit: cover;
  margin: 0 auto;
}

.p-nayami__consult-case {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 100%;
  width: auto;
  max-height: 300px;
  object-fit: contain;
  pointer-events: none;
}

.p-nayami__consult-case--left {
  left: 0%;
}

.p-nayami__consult-case--right {
  right: 0%;
}

/* 繧ｵ繝昴・繝井ｽ灘宛・医メ繧ｧ繝・け縺ｯ ico-check.svg・・*/
.p-nayami__support {
  margin: 40px 0 0;
  font-weight: 700;
  font-size: 0.9rem;
}

.p-nayami__support-intro {
  margin: 0 0 16px;
  line-height: 1.6;
  color: #000000;
}

.p-nayami__support-list {
  margin: 0 0 24px;
  padding: 0 22px;
  list-style: none;
}

/* 576px莉･荳九・縺ｨ縺阪後％繧薙↑縺頑か縺ｿ縲阪し繝昴・繝医Μ繧ｹ繝医・繝代ョ繧｣繝ｳ繧ｰ繧・縺ｫ */
@media (max-width: 576px) {
  .p-nayami__support-list {
    padding: 0;
  }
}
.p-nayami__support-list--check {
  margin-bottom: 24px;
  margin-top: 24px;
  margin-left: auto;
  margin-right: auto;
  max-width: 80%;
  text-align: left;
}

.p-nayami__support-list--check li {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  text-align: left;
  color: #eb6100;
}

.p-nayami__support-icon {
  flex-shrink: 0;
  width: 26px;
  height: auto;
  vertical-align: middle;
}

/* 縺薙・繧医≧縺ｪ譁ｹ縺ｯ縲√♀豌苓ｻｽ縺ｫ縺皮嶌隲・￥縺縺輔＞・亥茜逕ｨ閠・・螢ｰ繝ｻ豬√ｌ縺ｨ蜷梧ｧ倥↓隕ｪ蟷・＞縺｣縺ｱ縺・〒髫咎俣縺ｪ縺暦ｼ・*/
.p-soudan {
  margin-top: 24px;
}

.p-soudan__title-break {
  display: none;
}

@media (max-width: 1200px) {
  .p-soudan__title-break {
    display: block;
  }
}
/* 991px莉･荳九・縺ｨ縺阪ち繧､繝医Ν謾ｹ陦後ｒ縺ｪ縺上☆ */
@media (max-width: 991px) {
  .p-soudan__title-break {
    display: none;
  }
}
.p-soudan__inner {
  position: relative;
  margin: 0 auto;
  overflow: hidden;
}

.p-soudan__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
  pointer-events: none;
}

.p-soudan__content {
  position: relative;
  z-index: 1;
  padding: 24px 24px 120px;
  text-align: center;
  overflow: hidden;
}

.p-soudan__img {
  display: block;
  width: 100%;
  max-width: 170px;
  height: auto;
  margin: 0 auto 24px;
  vertical-align: middle;
}

.p-soudan__list {
  margin: 0;
  padding: 0 16px;
  list-style: none;
  text-align: left;
}

.p-soudan__item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #000000;
  font-weight: 700;
}
.p-soudan__item:last-child {
  margin-bottom: 0;
}

/* 991px莉･荳九・縺ｨ縺阪＃逶ｸ隲・Μ繧ｹ繝医・繝輔か繝ｳ繝医し繧､繧ｺ */
@media (max-width: 991px) {
  .p-soudan__item {
    font-size: 1rem;
  }
}
/* 繝√ぉ繝・け繧｢繧､繧ｳ繝ｳ・夐ｻ堤ｳｻ縺ｫ濶ｲ螟画鋤縺励※菴ｿ逕ｨ */
.p-soudan__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin-top: 3px;
}

.p-soudan__check-icon {
  width: 25px;
  height: auto;
  filter: brightness(0) saturate(100%);
  vertical-align: middle;
}

.p-soudan__item-text {
  flex: 1;
}

/* 縺疲擂蠎怜ｾ後・豬√ｌ・郁ｦ句・縺励・ p-section-title 繧剃ｽｿ縺・屓縺暦ｼ・*/
.p-flow {
  margin-top: 24px;
}

.p-flow__inner {
  position: relative;
  margin: 0 auto;
  overflow: hidden;
}

.p-flow__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
  pointer-events: none;
}

.p-flow__content {
  position: relative;
  z-index: 1;
  padding: 150px 0;
}

.p-flow__list {
  max-width: calc(100% - 40px);
  margin: 0 auto;
  padding: 0;
}

.p-flow__item {
  display: block;
  width: 100%;
  margin: 0 auto;
  height: auto;
  max-width: 555px;
}

/* 繝輔ャ繧ｿ繝ｼ縺ｯ荳ｭ螟ｮ繝｡繧､繝ｳ繧ｳ繝ｳ繝・Φ繝・忰蟆ｾ縺ｮ縺ｿ陦ｨ遉ｺ */
.p-main-footer {
  padding: 0 0 8px;
  text-align: center;
}

.p-main-footer__copyright {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.4;
  color: #000000;
  font-weight: 700;
}

.p-main-footer__links {
  margin: 16px 0 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(40px, 10vw, 110px);
}

.p-main-footer__link {
  font-size: 0.9rem;
  line-height: 1.4;
  color: #000000;
  font-weight: 700;
  text-decoration: none;
}

.p-main-footer__link:hover {
  text-decoration: underline;
}

.p-nayami__support-list--bullet li {
  position: relative;
  margin-bottom: 8px;
  line-height: 1.6;
  color: #000000;
}

.p-nayami__support-list--bullet li::before {
  content: "*";
  position: absolute;
  left: -1.25em;
  top: 0.4em;
  font-size: 0.5em;
  color: #000000;
}

/* 繝・く繧ｹ繝亥・縺ｫ笳上ｒ蜷ｫ繧繝ｪ繧ｹ繝医〒縺ｯ ::before 繧貞・縺輔↑縺・*/
.p-nayami__support-list--no-before li::before {
  content: none;
  display: none;
}

/* 繧､繝吶Φ繝医Ο繧ｴ・九く繝｣繝・メ・・C縺ｧ讓ｪ荳ｦ縺ｳ・・*/
.p-fv-event-block {
  padding: 24px 16px;
  margin-bottom: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
@media (min-width: 768px) {
  .p-fv-event-block {
    flex-direction: row;
    justify-content: center;
    align-items: flex-end;
    gap: 24px;
  }
}

.p-fv-event-block__logo {
  max-width: 160px;
  height: auto;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .p-fv-event-block__logo {
    max-width: 180px;
  }
}

/* 繧ｭ繝｣繝・メ縺ｯ2陦後〒蜿弱∪繧九し繧､繧ｺ縺ｫ */
.p-fv-event-block__catch {
  margin: 0;
  font-size: 0.944rem;
  line-height: 1.5;
  text-align: center;
  max-width: none;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .p-fv-event-block__catch {
    font-size: 1rem;
    text-align: left;
    /* 譁・ｭ励・隕九◆逶ｮ縺ｮ荳狗ｫｯ繧偵Ο繧ｴ荳狗ｫｯ縺ｫ蜷医ｏ縺帙ｋ縺溘ａ縺ｮ蠕ｮ隱ｿ謨ｴ */
    transform: translateY(6px);
  }
}

/* 蟾ｦ繧ｵ繧､繝峨ヰ繝ｼ: FV繝薙ず繝･繧｢繝ｫ縺ｨ蜷檎ｨ句ｺｦ縺ｮ鬮倥＆繧剃ｽｿ縺・◆繧∫ｸｦ菴咏區繧貞､壹ａ縺ｫ */
.p-fv__left .c-sidebar__body {
  padding: 40px 24px;
}

/* 蟾ｦ繧ｵ繧､繝峨ヰ繝ｼ荳狗ｫｯ: 隕也函豢ｻ縺ｮ險ｭ險医Μ繝ｳ繧ｯ・・hiseikatu.svg・・*/
.p-fv__left .c-sidebar__shiseikatu {
  display: block;
  margin-top: 40px;
  line-height: 0;
}

.p-fv__left .c-sidebar__shiseikatu img {
  width: 100%;
  max-width: 400px;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* 1繧ｫ繝ｩ繝譎・ 繝輔Ξ繝ｼ繝繝悶Ο繝・け繝ｻ蠎苓・繝悶Ο繝・け縺ｮ繝ｬ繧､繧｢繧ｦ繝・*/
@media (max-width: 991px) {
  .p-nayami__item {
    margin-top: 16px;
  }
  /* 1繧ｫ繝ｩ繝譎・ 繝｡繧ｬ繝阪ヵ繝ｬ繝ｼ繝繝倥ャ繝繝ｼ繧剃ｻ悶そ繧ｯ繧ｷ繝ｧ繝ｳ縺ｨ蜷後§荳狗ｷ壹・鮟呈枚蟄励↓ */
  .p-fv__frames-sp .c-sidebar__header {
    color: #000;
    background: #ffffff;
    padding-bottom: 28px;
  }
  .p-fv__frames-sp .c-sidebar__header::after {
    content: "";
    display: block;
    width: 90%;
    height: 5px;
    margin: 6px auto 0;
    border-radius: 0;
    background: linear-gradient(to right, #abd6a9 0%, #abd6a9 55%, transparent 55%, transparent 60%, #61c3d5 60%, #61c3d5 100%);
  }
  /* 1繧ｫ繝ｩ繝譎・ 繝輔Ξ繝ｼ繝繧ｫ繝ｼ繝峨・遏｢蜊ｰ繝懊ち繝ｳ繧定｡ｨ遉ｺ */
  .p-fv__frames-sp .c-frame-card__arrow {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background-color: #f1f1f1;
    background-image: url("../images/arrow.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
    cursor: pointer;
  }
  .p-fv__frames-sp .c-frame-card__arrow--prev {
    transform: scaleX(-1);
  }
  /* 1繧ｫ繝ｩ繝譎・ 蜈ｨ繝輔Ξ繝ｼ繝繧ｫ繝ｼ繝峨・逕ｻ蜒上お繝ｪ繧｢繧貞酔縺倬ｫ倥＆縺ｫ縺励※繧ｺ繝ｬ繧偵↑縺上☆ */
  .p-fv__frames-sp .c-frame-card__img-wrap {
    height: 150px;
    flex-shrink: 0;
  }
  .p-fv__frames-sp .c-frame-card__img {
    width: auto;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
  }
  .p-fv__frames-sp {
    margin: 40px 0;
  }
  .p-fv__frames-sp .c-sidebar__body--stack {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 24px;
  }
  .p-fv__frames-sp .c-frame-card {
    margin-bottom: 0;
    max-width: 100%;
  }
  .p-fv__stores-sp {
    margin: 40px 0 0;
  }
  .p-fv__stores-sp .c-sidebar__body {
    padding: 40px 24px;
  }
  /* 991px莉･荳・ 蜿悶ｊ謇ｱ縺・ｺ苓・荳隕ｧ縺ｮ繧ｿ繧､繝医Ν繧剃ｻ悶そ繧ｯ繧ｷ繝ｧ繝ｳ縺ｨ蜷後§荳狗ｷ壹ち繧､繝励↓ */
  .p-fv__stores-sp .c-sidebar__header {
    color: #000;
    background: #ffffff;
    padding-bottom: 28px;
  }
  .p-fv__stores-sp .c-sidebar__header::after {
    content: "";
    display: block;
    width: 90%;
    height: 5px;
    margin: 6px auto 0;
    border-radius: 0;
    background: linear-gradient(to right, #abd6a9 0%, #abd6a9 55%, transparent 55%, transparent 60%, #61c3d5 60%, #61c3d5 100%);
  }
  /* 991px莉･荳・ 繧ｷ繝・ぅ繧ｳ繝ｳ繧ｿ繧ｯ繝医′謠先｡医☆繧具ｽ槭・繧ｿ繝ｳ縺ｯ髱櫁｡ｨ遉ｺ */
  .p-fv__stores-sp .c-sidebar__shiseikatu {
    display: none !important;
  }
  /* 991px莉･荳・ 蠎苓・荳隕ｧ縺ｮ蠎苓・蜷阪・繝輔か繝ｳ繝医し繧､繧ｺ */
  .c-store-list__stores {
    font-size: 0.9rem;
  }
  /* 1繧ｫ繝ｩ繝譎ゅ・繝輔Ξ繝ｼ繝繧ｫ繝ｼ繝・ 蜿ｳ繧ｵ繧､繝峨ヰ繝ｼ縺ｨ蜷梧ｧ倥・隕九◆逶ｮ・育ｸｦ荳ｦ縺ｳ・・*/
  .p-fv__frames-sp .c-frame-card__name {
    font-size: 0.875rem;
    padding: 8px 8px;
  }
  .p-fv__frames-sp .c-frame-card[data-frame=urban-trail] .c-frame-card__name,
  .p-fv__frames-sp .c-frame-card[data-frame=solaiz] .c-frame-card__name {
    background-color: #99d4d7;
  }
  .p-fv__frames-sp .c-frame-card[data-frame=joseph] .c-frame-card__name,
  .p-fv__frames-sp .c-frame-card[data-frame=aqua-liberty] .c-frame-card__name {
    background-color: #abd6a9;
  }
  /* 1繧ｫ繝ｩ繝譎・ 轤ｹ邱壹ョ繧ｶ繧､繝ｳ繧・3繧ｫ繝ｩ繝・亥・・峨→蜷後§縺ｫ縺励∫せ邱壻ｽ咲ｽｮ繧貞・繝輔Ξ繝ｼ繝縺ｧ謠・∴繧・*/
  .p-fv__frames-sp .c-frame-card__content {
    padding: 8px;
    flex: 1;
    min-height: 300px;
    display: flex;
    flex-direction: column;
  }
  .p-fv__frames-sp .c-frame-card__separator {
    margin: auto 0 0;
    border: none;
    border-top: 1px dashed #666666;
    flex-shrink: 0;
  }
  .p-fv__frames-sp .c-frame-card__price-block {
    margin-top: 0;
  }
  .p-fv__frames-sp .c-frame-card__code {
    font-size: 0.65rem;
    font-weight: bold;
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
    text-align: center;
    margin: 0 0 2px;
  }
  .p-fv__frames-sp .c-frame-card__price {
    font-size: 0.65rem;
    font-weight: bold;
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
    text-align: center;
    margin: 0;
  }
  .p-fv__frames-sp .c-frame-card[data-frame=aqua-liberty] .c-frame-card__price-block {
    margin-top: auto;
    border-top: 1px dashed #666666;
  }
  .p-fv__frames-sp .c-frame-card__features {
    font-size: 0.55rem;
    font-weight: bold;
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
    margin: 0;
    padding-top: 8px;
    margin-top: 8px;
  }
  .p-fv__frames-sp .c-frame-card__features li {
    padding-top: 8px;
    border-top: 1px dashed #666666;
    margin-top: 8px;
  }
  .p-fv__frames-sp .c-frame-card__features li:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
  }
  /* 1カラム時ソライズ: 3カラムの一番広い枠と同じ表示（長方形・150px高さ） */
  .p-fv__frames-sp .c-frame-card[data-frame=solaiz] .c-frame-card__img-wrap {
    position: relative;
    width: 100%;
    height: 150px;
    flex-shrink: 0;
  }
  .p-fv__frames-sp .c-frame-card[data-frame=solaiz] .c-frame-card__img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 0;
  }
  /* 1カラム時も 2000円OFF バッジは 3カラムと同じ配置 */
  .p-fv__frames-sp .c-frame-card[data-frame=solaiz] .c-frame-card__off-badge {
    position: absolute;
    left: 50%;
    top: 10px;
    transform: translateX(-50%);
    z-index: 1;
    width: 100%;
    max-width: 150px;
    height: auto;
    display: block;
    pointer-events: none;
  }
  /* ソライズ: 2段目を1段目のすぐ下に小さめの文字で・点線は価格の上1本のみ */
  .p-fv__frames-sp .c-frame-card[data-frame=solaiz] .c-frame-card__features--solaiz {
    list-style: none;
    padding: 4px 0 0 1em;
    margin: 0;
    flex-shrink: 0;
  }
  .p-fv__frames-sp .c-frame-card[data-frame=solaiz] .c-frame-card__features--solaiz .c-frame-card__features-text {
    font-size: 0.55rem;
    font-weight: bold;
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
    margin: 0 0 2px;
    line-height: 1.4;
    color: #000000;
  }
  .p-fv__frames-sp .c-frame-card[data-frame=solaiz] .c-frame-card__features--solaiz .c-frame-card__features-text:last-of-type {
    margin-bottom: 0;
  }
  .p-fv__frames-sp .c-frame-card[data-frame=solaiz] .c-frame-card__price-block--solaiz {
    margin-top: auto;
    border-top: 1px dashed #666666;
  }
}
/* 992px〜1200px: 3カラム維持しつつ中央カラムの崩れを抑える */
@media (min-width: 992px) and (max-width: 1200px) {
  .p-fv__inner {
    grid-template-columns: 30fr 40fr 30fr;
  }
  .p-fv-event-block {
    padding: 16px 8px;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  .p-fv-event-block__catch {
    white-space: normal;
    text-align: center;
    font-size: 0.9rem;
    transform: none;
  }
  .p-fair__content {
    padding-left: 16px;
    padding-right: 16px;
  }
  .p-fair__option-label {
    display: block;
    padding-left: 16px;
    padding-right: 16px;
  }
  .p-fair__option-label-img {
    width: min(100%, 220px);
    margin: 0 auto;
  }
  .p-fair__card {
    padding: 16px;
  }
  .p-fair__card-num {
    font-size: 2rem;
  }
  .p-nayami__item {
    max-width: 100%;
  }
}

/*# sourceMappingURL=main.css.map */
