/* ==========================================================================
   Main Stylesheet - Minna no Wedding (mwed.jp) x Saison Platinum AMEX
   (White x Mwed Emerald Teal & Navy x Champagne Gold x Subtle Rose)
   ========================================================================== */

/* [kufu] ローカルTTF(約24MB)の読み込みを停止。Shippori Mincho は index.html の Google Fonts 側で供給 */
@import url('https://img2.mwed.jp/pr/amlp/css/variables.css');

/* Global Reset Supplements */
*, *::before, *::after {
  box-sizing: border-box;
}

button, input, select, textarea {
  font: inherit;
  color: inherit;
  border: none;
  outline: none;
  background: none;
  padding: 0;
  margin: 0;
}

body {
  font-family: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: #334155;
  background-color: #F8FAFC;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  word-break: auto-phrase;
  line-break: strict;
  line-height: 1.75;
  overflow-x: hidden;
  margin: 0;
  padding: 0;
}

/* Selection color */
::selection {
  background: rgba(0, 144, 168, 0.2);
  color: #0F2D4A;
}

/* Typography Helpers */
.font-serif { font-family: 'Noto Serif JP', 'Shippori Mincho', serif; }
.font-sans  { font-family: 'Noto Sans JP', sans-serif; }
.font-en    { font-family: 'Playfair Display', serif; }
.font-script { font-family: 'Alex Brush', cursive; }

.u-inline-block { display: inline-block; vertical-align: top; }
.u-nowrap       { white-space: nowrap; }

@media (max-width: 768px) {
  .u-hidden-sp { display: none !important; }
}

@media (min-width: 769px) {
  .u-hidden-pc { display: none !important; }
}

.u-text-teal { color: #0090A8; font-weight: 700; }
.u-text-teal-strong { color: #0090A8; font-weight: 800; }
.u-text-pink { color: #C25064; font-weight: 700; }
.u-text-navy-strong { color: #0F2D4A; font-weight: 800; }

.text-gold {
  color: #B88E3E;
  font-weight: 700;
}

/* Containers */
.l-container {
  width: 100%;
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

/* Section Common */
.p-section {
  padding-top: clamp(68px, 8.5vw, 115px);
  padding-bottom: clamp(68px, 8.5vw, 115px);
  position: relative;
}

/* ==========================================================================
   Header
   ========================================================================== */
.p-header {
  width: 100%;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(226, 232, 240, 0.8);
  padding: 14px 0;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.03);
}

.p-header__inner {
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-header__logos {
  display: flex;
  align-items: center;
  gap: 16px;
}

.p-header__logo-img--mwed {
  height: 30px;
  width: auto;
  object-fit: contain;
}

.p-header__divider {
  color: #CBD5E1;
  display: flex;
  align-items: center;
}

.p-header__logo-img--saison {
  height: 32px;
  width: auto;
  object-fit: contain;
}

/* ==========================================================================
   Hero / First View (FV)
   ========================================================================== */
.p-hero {
  position: relative;
  min-height: clamp(600px, 75vh, 760px);
  display: flex;
  align-items: center;
  background: #FFFFFF;
  overflow: hidden;
  padding: clamp(36px, 5vw, 64px) 0 80px;
}

.p-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}

.p-hero__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 85% 15%; /* 人物の顔が画面拡大時も見切れないように上部・右寄りに固定 */
  opacity: 1;
}

.p-hero__bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, 
    #FFFFFF 0%, 
    rgba(255, 255, 255, 0.98) 46%, 
    rgba(255, 255, 255, 0.88) 58%, 
    rgba(255, 255, 255, 0.15) 78%, 
    rgba(255, 255, 255, 0) 92%
  );
}

.p-hero__sp-visual {
  display: none;
}

@media (max-width: 960px) {
  .p-hero {
    flex-direction: column;
    min-height: auto;
    padding-top: 0;
    padding-bottom: 60px;
  }
  .p-hero__bg {
    display: none;
  }
  .p-hero__sp-visual {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 737 / 421;
    max-height: 290px;
    position: relative;
    overflow: hidden;
  }
  .p-hero__sp-visual-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }
  .p-hero__sp-visual-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, 
      rgba(255, 255, 255, 0) 0%, 
      rgba(255, 255, 255, 0) 50%, 
      rgba(255, 255, 255, 0.7) 82%, 
      #FFFFFF 100%
    );
  }
}

.p-hero__bg-script {
  position: absolute;
  top: 10%;
  left: 5%;
  font-family: 'Alex Brush', cursive;
  font-size: clamp(64px, 9vw, 110px);
  color: rgba(0, 144, 168, 0.08);
  line-height: 1;
  pointer-events: none;
  z-index: 2;
  white-space: nowrap;
  transform: rotate(-3deg);
}

.p-hero__content {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 0 clamp(20px, 3vw, 48px);
  width: 100%;
}

@media (max-width: 960px) {
  .p-hero__content {
    align-items: center;
    justify-content: center;
    padding-left: 16px;
    padding-right: 16px;
    margin-top: -20px;
  }
}

.p-hero__offer-area {
  max-width: 580px;
}

@media (max-width: 960px) {
  .p-hero__offer-area {
    text-align: center;
    max-width: 100%;
  }
}

/* マイナビ調 リボンキャッチコピー */
.p-hero__ribbon-tag {
  margin-bottom: 12px;
}

.p-hero__ribbon-text {
  font-size: clamp(12px, 1.3vw, 13.5px);
  font-weight: 700;
  color: #0090A8;
  letter-spacing: 0.04em;
}

.p-hero__badge-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.p-hero__offer-area {
  max-width: 640px;
  background: none;
  border: none;
  box-shadow: none;
  padding: 0;
  position: relative;
  z-index: 2;
}

@media (max-width: 960px) {
  .p-hero__offer-area {
    margin: 0 auto;
    text-align: center;
    max-width: 480px;
    padding: 10px 8px;
  }
}

.p-hero__top-row {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}

@media (max-width: 960px) {
  .p-hero__top-row {
    justify-content: center;
  }
}

.p-hero__tieup-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-left: 3px solid #DFB76C;
  padding: 2px 0 2px 10px;
}

.p-hero__tieup-star {
  color: #DFB76C;
  font-size: 13px;
  line-height: 1;
}

.p-hero__tieup-text {
  font-size: clamp(12px, 1.25vw, 13.5px);
  font-weight: 700;
  color: #0090A8;
  letter-spacing: 0.05em;
}

.p-hero__lead-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

@media (max-width: 960px) {
  .p-hero__lead-row {
    justify-content: center;
  }
}

.p-hero__slash {
  font-size: clamp(18px, 2.2vw, 26px);
  color: #0090A8;
  font-weight: 400;
  opacity: 0.7;
}

.p-hero__imanara {
  font-family: 'Klee One', 'Shippori Mincho', serif;
  font-size: clamp(28px, 3.8vw, 44px);
  font-weight: 600;
  color: #0090A8;
  letter-spacing: 0.08em;
  line-height: 1;
  position: relative;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.8);
}

.p-hero__imanara::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: -4px;
  right: -4px;
  height: 2.5px;
  background: linear-gradient(90deg, transparent, #84D6E2 20%, #0090A8 50%, #84D6E2 80%, transparent);
  border-radius: 2px;
}

.p-hero__sublead {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(19px, 2.5vw, 28px);
  font-weight: 800;
  color: #0F2D4A;
  letter-spacing: 0.04em;
  line-height: 1;
  margin-left: 2px;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.8);
}

.p-hero__brand-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

@media (max-width: 960px) {
  .p-hero__brand-row {
    justify-content: center;
  }
}

.p-hero__amazon-logo {
  height: 26px;
  width: auto;
  filter: drop-shadow(0 1px 3px rgba(255, 255, 255, 0.8));
}

.p-hero__brand-name {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 2.6vw, 30px);
  font-weight: 800;
  color: #0F2D4A;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.8);
}

/* 10万円プレゼント直上のリボンキャッチコピー（10万円プレゼントと完全密着） */
.p-hero__offer-ribbon {
  margin: 0 0 -6px 0;
  line-height: 1.1;
  z-index: 2;
  position: relative;
}

@media (max-width: 960px) {
  .p-hero__offer-ribbon {
    text-align: center;
    margin-bottom: -4px;
  }
}

.p-hero__ribbon-text {
  font-size: clamp(13px, 1.45vw, 15px);
  font-weight: 700;
  color: #0090A8;
  letter-spacing: 0.04em;
  text-shadow: 0 1px 3px rgba(255, 255, 255, 0.9);
}

/* 中央：10万円プレゼント ＆ セゾンプラチナ券面の融合 */
.p-hero__center-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 10px;
}

@media (max-width: 960px) {
  .p-hero__center-row {
    flex-direction: column;
    gap: 14px;
    text-align: center;
  }
}

.p-hero__main-offer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  flex: 1;
}

@media (max-width: 960px) {
  .p-hero__main-offer {
    align-items: center;
    justify-content: center;
  }
}

.p-hero__offer-num-text-box {
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-hero__num-wrap {
  flex-shrink: 0;
  line-height: 1;
}

.p-hero__num-10 {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-size: clamp(96px, 13.5vw, 154px);
  font-weight: 900;
  font-style: italic;
  line-height: 0.86;
  letter-spacing: -0.04em;
  background: linear-gradient(145deg, #00A9C5 0%, #0090A8 45%, #00687A 85%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
  padding: 2px 4px 6px 2px;
  filter: drop-shadow(2px 4px 12px rgba(0, 144, 168, 0.28));
}

.p-hero__offer-text-block {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}

.p-hero__man-text {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(28px, 3.8vw, 44px);
  font-weight: 800;
  color: #0F2D4A;
  line-height: 1.1;
  letter-spacing: 0.02em;
  display: flex;
  align-items: center;
  gap: 8px;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.8);
}

/* 高品質ベクターSVGスパークル */
.c-sparkle-svg-wrap {
  display: inline-flex;
  align-items: center;
  animation: sparkleRotate 3.5s ease-in-out infinite;
}

.c-sparkle-svg {
  filter: drop-shadow(0 2px 6px rgba(223, 183, 108, 0.45));
}

@keyframes sparkleRotate {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.18) rotate(20deg); }
}

.p-hero__present-text {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(26px, 3.5vw, 40px);
  font-weight: 800;
  color: #0F2D4A;
  line-height: 1.15;
  margin: 0;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.8);
}

/* 枠なし・自然フロートの券面ブロック（一回り大きく） */
.p-hero__floating-card-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  max-width: 220px;
}

.p-hero__raw-card-img {
  width: clamp(185px, 20vw, 220px);
  height: auto;
  border-radius: 9px;
  filter: drop-shadow(0 12px 28px rgba(15, 23, 42, 0.3));
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.p-hero__raw-card-img:hover {
  transform: translateY(-4px) scale(1.03);
}

.p-hero__raw-card-info {
  margin-top: 8px;
  text-align: center;
}

.p-hero__raw-card-name {
  font-size: 11px;
  font-weight: 800;
  color: #0F2D4A;
  line-height: 1.3;
  display: block;
  text-shadow: 0 1px 3px rgba(255, 255, 255, 0.9);
}

.p-hero__raw-card-fee {
  font-size: 9.5px;
  color: #475569;
  line-height: 1.35;
  margin-top: 2px;
  display: block;
  text-shadow: 0 1px 3px rgba(255, 255, 255, 0.9);
}

/* 利用条件ライン（丸カプセル枠を廃止し、洗練されたエディトリアルラインへ） */
.p-hero__condition-line {
  display: flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  margin: 10px 0 0 0;
}

@media (max-width: 960px) {
  .p-hero__condition-line {
    justify-content: center;
    margin: 12px auto 0 auto;
    width: 100%;
    max-width: 360px;
  }
}

@media (max-width: 480px) {
  .p-hero__condition-line {
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
  }
}

.p-hero__condition-badge {
  font-family: 'Montserrat', sans-serif;
  background: #0090A8;
  color: #FFFFFF;
  font-size: 10.5px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 2px;
  letter-spacing: 0.06em;
  line-height: 1.2;
  flex-shrink: 0;
}

.p-hero__condition-text {
  font-size: clamp(12px, 1.35vw, 14.5px);
  font-weight: 600;
  color: #334155;
  margin: 0;
  line-height: 1.4;
  white-space: nowrap;
}

@media (max-width: 420px) {
  .p-hero__condition-text {
    font-size: 11.5px;
    white-space: normal;
    text-align: center;
  }
}

.p-hero__condition-amount {
  font-size: clamp(15.5px, 1.95vw, 19.5px);
  font-weight: 800;
  color: #0090A8;
  margin: 0 2px;
}

.p-hero__condition-amount small {
  font-size: 11px;
  font-weight: 600;
}

/* メインビジュアル全体の左右中央：直線と角の美学を活かしたクラシカル・スマートCTAエリア */
.p-hero__center-action-area {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: 100%;
  margin: clamp(24px, 3.5vw, 40px) auto 0 auto;
  position: relative;
  z-index: 5;
}

@media (max-width: 960px) {
  .p-hero__center-action-area {
    flex-direction: column;
    gap: 12px;
    margin-top: 18px;
    width: 100%;
    max-width: 360px;
    padding: 0 12px;
    box-sizing: border-box;
  }
}

/* 青背景×白文字のクリーンなキャンペーン期間プレート（仮削除・サイズ拡大・SP最適化） */
.p-hero__bottom-period-box {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, #0090A8 0%, #00778B 100%);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 4px;
  padding: 13px 28px;
  box-shadow: 0 10px 28px rgba(0, 144, 168, 0.32);
  flex-shrink: 0;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-sizing: border-box;
}

.p-hero__bottom-period-box:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 34px rgba(0, 144, 168, 0.4);
}

@media (max-width: 960px) {
  .p-hero__bottom-period-box {
    gap: 8px;
    padding: 11px 16px;
    width: 100%;
    justify-content: center;
  }
}

.p-hero__bottom-period-tag-clean {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(11.5px, 1.3vw, 14px);
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 0.08em;
  line-height: 1;
  white-space: nowrap;
}

.p-hero__bottom-period-divider {
  color: rgba(255, 255, 255, 0.45);
  font-weight: 300;
  font-size: 14px;
  margin: 0 2px;
}

.p-hero__bottom-period-date {
  font-family: 'Playfair Display', 'Noto Serif JP', serif;
  font-size: clamp(14.5px, 1.8vw, 20px);
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.03em;
  white-space: nowrap;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.p-hero__bottom-period-date small {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 1px;
}

.p-hero__period-tilde {
  color: #DFB76C;
  margin: 0 3px;
  font-weight: 700;
}

.p-hero__bottom-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  width: auto;
}

@media (max-width: 960px) {
  .p-hero__bottom-cta {
    width: 100%;
  }
}

/* プラチナゴールドのスクエアプレートCTA（角丸4px） */
.p-hero__primary-cta-btn {
  padding: 16px 52px;
  font-size: 17.5px;
  font-weight: 800;
  letter-spacing: 0.05em;
  border-radius: 4px;
  background: linear-gradient(135deg, #DFB76C 0%, #B88E3E 50%, #8C621E 100%);
  color: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: 0 10px 28px rgba(184, 142, 62, 0.38);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  box-sizing: border-box;
}

@media (max-width: 960px) {
  .p-hero__primary-cta-btn {
    width: 100%;
    padding: 14px 20px;
    font-size: 16.5px;
  }
}

.p-hero__primary-cta-btn:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 12px 32px rgba(140, 98, 30, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.p-hero__cta-microcopy {
  font-size: 10.5px;
  color: #64748B;
  margin: 3px 0 0 0;
  text-align: center;
  line-height: 1;
}

@media (max-width: 960px) {
  .p-hero__cta-microcopy {
    margin-left: 0;
  }
}

.p-hero__cta-subtext {
  font-size: 9.5px;
  color: #64748B;
  margin-top: 4px;
  line-height: 1;
}

/* FVから第1セクションへの優雅なウェーブ境界 ＆ スクロールインジケーター */
.p-hero__bottom-divider {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 65px;
  z-index: 15;
  pointer-events: none;
}

.p-hero__scroll-indicator {
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  display: flex;
  justify-content: center;
}

@media (max-width: 768px) {
  .p-hero {
    padding-bottom: 75px;
  }
  .p-hero__scroll-indicator {
    top: -18px;
  }
  .p-hero__card-micro-box {
    margin-bottom: 20px;
  }
}

.p-hero__scroll-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: #FFFFFF;
  border: 1.5px solid rgba(0, 144, 168, 0.4);
  padding: 6px 14px;
  border-radius: 100px;
  box-shadow: 0 4px 16px rgba(0, 144, 168, 0.15);
  animation: scrollBounce 2.5s ease-in-out infinite;
}

.p-hero__scroll-text {
  font-family: 'Montserrat', sans-serif;
  font-size: 9px;
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.15em;
  line-height: 1;
}

.p-hero__scroll-arrow {
  color: #B88E3E;
}

@keyframes scrollBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(6px);
  }
}

.p-hero__bottom-wave {
  width: 100%;
  height: 100%;
  display: block;
}

.p-hero__bottom-blur {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 24px;
  background: linear-gradient(180deg, transparent 0%, rgba(244, 250, 249, 0.8) 100%);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* ==========================================================================
   Section Title Box (アトレ風 スクリプト英字アクセント)
   ========================================================================== */
.p-section-title-box {
  text-align: center;
  margin-bottom: clamp(40px, 5.5vw, 64px);
  position: relative;
}

.p-section-title-box__script {
  font-family: 'Alex Brush', cursive;
  font-size: clamp(38px, 5.2vw, 64px);
  color: rgba(0, 136, 160, 0.48);
  line-height: 1.15;
  display: block;
  margin-bottom: clamp(6px, 1vw, 10px);
}

.p-section-title-box__main {
  font-family: 'Noto Serif JP', 'Shippori Mincho', serif;
  font-size: clamp(22px, 2.9vw, 34px);
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.45;
  margin: 0 0 clamp(16px, 2vw, 22px);
  letter-spacing: 0.03em;
  position: relative;
  z-index: 2;
}

.p-section-title-box__lead {
  font-size: clamp(13.5px, 1.4vw, 15.5px);
  color: #334155;
  line-height: 1.85;
  margin: 0;
}

/* ==========================================================================
   Section 1: 【共感】マイナビ調 オーガニックサークルバブル
   ========================================================================== */
.p-section--bubbles {
  background: #F4FAF9;
  background-image: radial-gradient(rgba(0, 144, 168, 0.06) 1.5px, transparent 1.5px);
  background-size: 28px 28px;
  overflow: hidden;
}

.p-bubbles-cluster {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
  max-width: 1100px;
  margin: 0 auto;
  align-items: center;
  justify-items: center;
  width: 100%;
}

@media (max-width: 1040px) {
  .p-bubbles-cluster {
    grid-template-columns: repeat(3, 1fr);
    gap: 18px 14px;
    max-width: 580px;
  }
}

@media (max-width: 560px) {
  .p-bubbles-cluster {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px 8px;
    max-width: 380px;
    padding: 0 4px;
  }
}

.c-bubble-item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.c-bubble-item__circle {
  width: 100%;
  max-width: 155px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: radial-gradient(135% 135% at 30% 20%, rgba(255, 255, 255, 0.98) 0%, rgba(230, 247, 249, 0.8) 100%);
  border: 1.5px dashed rgba(0, 144, 168, 0.45);
  box-shadow: 0 8px 24px rgba(0, 144, 168, 0.08), inset 0 2px 6px rgba(255, 255, 255, 0.9);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 6px;
  text-align: center;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  box-sizing: border-box;
}

@media (max-width: 560px) {
  .c-bubble-item__circle {
    max-width: 110px;
    padding: 8px 4px;
  }
}

.c-bubble-item__circle:hover {
  transform: translateY(-5px) scale(1.04);
  border-color: #0090A8;
  border-style: solid;
  box-shadow: 0 14px 32px rgba(0, 144, 168, 0.16);
}

.c-bubble-item__icon {
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease;
}

@media (max-width: 560px) {
  .c-bubble-item__icon svg {
    width: 24px;
    height: 24px;
  }
}

.c-bubble-item__circle:hover .c-bubble-item__icon {
  transform: scale(1.12);
}

.c-bubble-item__name {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(11.5px, 1.2vw, 13.5px);
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.35;
  letter-spacing: 0.02em;
}

@media (max-width: 560px) {
  .c-bubble-item__name {
    font-size: 11px;
  }
}

@media (max-width: 768px) {
  .c-bubble-item__circle {
    max-width: 145px;
    padding: 8px 4px;
  }
  .c-bubble-item--center .c-bubble-item__circle {
    max-width: 145px;
  }
}

@media (max-width: 360px) {
  .c-bubble-item__circle {
    max-width: 126px;
    padding: 6px 2px;
  }
  .c-bubble-item--center .c-bubble-item__circle {
    max-width: 126px;
  }
}

.c-bubble-item:hover .c-bubble-item__circle {
  transform: translateY(-4px) scale(1.03);
  box-shadow: 0 16px 36px rgba(0, 144, 168, 0.16);
}

.c-bubble-item__icon {
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-bubble-item__icon svg {
  width: 28px;
  height: 28px;
}

@media (min-width: 769px) {
  .c-bubble-item__icon svg {
    width: 34px;
    height: 34px;
  }
  .c-bubble-item--center .c-bubble-item__icon svg {
    width: 40px;
    height: 40px;
  }
}

.c-bubble-item__name {
  font-size: clamp(12px, 1.2vw, 14px);
  font-weight: 700;
  color: #0F2D4A;
  margin-bottom: 4px;
  line-height: 1.2;
}

.c-bubble-item__tag {
  font-family: 'Playfair Display', 'Noto Sans JP', sans-serif;
  font-size: clamp(10.5px, 1vw, 12px);
  font-weight: 800;
  color: #B88E3E;
  background: #FCF7EE;
  border: 1px solid rgba(184, 142, 62, 0.3);
  padding: 1px 8px;
  border-radius: 100px;
  white-space: nowrap;
}

/* ==========================================================================
   Section 2: 【データ＆実態】アトレ風 レイヤードコラージュ ＆ IBJ風 インフォグラフィック
   ========================================================================== */
.p-section--data {
  background: #FFFFFF;
}

.p-layered-magazine {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: center;
  max-width: 1040px;
  margin: 0 auto 52px;
}

@media (max-width: 860px) {
  .p-layered-magazine {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

.p-layered-magazine__visual {
  position: relative;
  min-height: 380px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-layered-magazine__photo--main {
  position: absolute;
  top: 10px;
  left: 0;
  width: 78%;
  z-index: 1;
}

.p-layered-magazine__photo--sub {
  position: absolute;
  bottom: 10px;
  right: 0;
  width: 58%;
  z-index: 2;
}

/* ポラロイド風ホワイト写真フレーム ＆ ななめ配置 */
.p-photo-snap {
  background: #FFFFFF;
  padding: 10px 10px 30px 10px;
  border-radius: 4px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12), 0 2px 6px rgba(15, 23, 42, 0.05);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
}

.p-photo-snap--1 {
  transform: rotate(-3.5deg);
}

.p-photo-snap--2 {
  transform: rotate(4deg);
}

.p-photo-snap:hover {
  transform: rotate(0deg) scale(1.03);
  box-shadow: 0 24px 56px rgba(15, 23, 42, 0.18), 0 4px 12px rgba(15, 23, 42, 0.08);
  z-index: 5;
}

.p-photo-snap__img {
  width: 100%;
  height: clamp(160px, 20vw, 220px);
  object-fit: cover;
  display: block;
  border-radius: 2px;
}

/* IBJ風 統計ハイライトボックス */
.c-stat-highlight-box {
  background: linear-gradient(135deg, #FFFFFF 0%, #F4FAF9 100%);
  border: 1.5px solid rgba(0, 144, 168, 0.35);
  border-radius: 24px;
  padding: 32px 28px;
  box-shadow: 0 12px 36px rgba(0, 144, 168, 0.07);
}

.c-stat-highlight-box__header {
  margin-bottom: 20px;
}

.c-stat-highlight-box__badge {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 800;
  color: #0090A8;
  background: #E0F4F7;
  padding: 3px 14px;
  border-radius: 100px;
  display: inline-block;
  margin-bottom: 8px;
}

.c-stat-highlight-box__title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(17px, 2.2vw, 21px);
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.45;
  margin: 0;
}

.c-stat-highlight-box__body {
  display: flex;
  align-items: center;
  gap: 24px;
}

@media (max-width: 580px) {
  .c-stat-highlight-box__body {
    flex-direction: column;
    text-align: center;
  }
}

/* ドーナツ円グラフ (ティールブルーグラデーション) */
.c-donut-chart {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: conic-gradient(#0090A8 0% var(--chart-val), #E6F3F5 var(--chart-val) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 22px rgba(0, 144, 168, 0.16);
  flex-shrink: 0;
}

.c-donut-chart__inner {
  width: 104px;
  height: 104px;
  background: #FFFFFF;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.04);
}

.c-donut-chart__val {
  font-family: 'Montserrat', sans-serif;
  font-size: 28px;
  font-weight: 800;
  color: #0090A8;
  line-height: 1;
}

.c-donut-chart__val small {
  font-size: 14px;
}

.c-donut-chart__lbl {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: #64748B;
  margin-top: 2px;
}

.c-stat-highlight-box__desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12.5px;
  color: #475569;
  line-height: 1.65;
  margin: 0 0 12px;
}

.c-stat-total-tag {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  color: #0F2D4A;
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  padding: 8px 16px;
  border-radius: 12px;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  text-align: left;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

@media (max-width: 580px) {
  .c-stat-total-tag {
    align-items: center;
    text-align: center;
  }
}

.c-stat-total-tag strong {
  font-size: 15px;
  color: #0090A8;
}

.c-stat-total-tag__note {
  font-size: 11px;
  color: #64748B;
  line-height: 1.4;
  font-weight: 400;
}

/* 還元比較インフォグラフィック */
.p-compare-box {
  background: linear-gradient(145deg, #FFFDFB 0%, #FAF5EE 100%);
  border: 1.5px solid rgba(220, 185, 140, 0.5);
  border-radius: 22px;
  max-width: 900px;
  margin: 0 auto;
  padding: 32px 36px;
  box-shadow: 0 14px 36px rgba(184, 142, 62, 0.09);
  position: relative;
  text-align: center;
}

.p-compare-box__badge {
  position: absolute;
  top: -13px;
  left: 36px;
  background: linear-gradient(135deg, #DFB76C 0%, #B88E3E 100%);
  color: #FFFFFF;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 18px;
  border-radius: 100px;
  box-shadow: 0 3px 10px rgba(184, 142, 62, 0.35);
}

.p-compare-box__title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(17.5px, 2.3vw, 23px);
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 24px;
}

.p-compare-grid {
  display: grid;
  grid-template-columns: 1fr auto 1.25fr;
  align-items: center;
  gap: 18px;
}

@media (max-width: 768px) {
  .p-compare-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.c-compare-card {
  background: #FFFFFF;
  border-radius: 18px;
  padding: 24px 18px;
  text-align: center;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.03);
  position: relative;
}

.c-compare-card--normal {
  border: 1px solid #E2E8F0;
  opacity: 0.9;
}

.c-compare-card--platinum {
  border: 2px solid #DFB76C;
  background: linear-gradient(145deg, #FFFFFF 0%, #FCF9F2 100%);
  box-shadow: 0 10px 28px rgba(184, 142, 62, 0.16);
}

.c-compare-card__crown {
  position: absolute;
  top: -13px;
  right: 18px;
  background: #0090A8;
  color: #FFFFFF;
  font-size: 11.5px;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 100px;
  box-shadow: 0 2px 8px rgba(0, 144, 168, 0.35);
}

.c-compare-card__header {
  font-size: 13.5px;
  font-weight: 700;
  color: #64748B;
  margin-bottom: 6px;
}

.c-compare-card--platinum .c-compare-card__header {
  color: #0F2D4A;
  font-size: 14.5px;
}

.c-compare-card__rate {
  font-size: 12px;
  color: #94A3B8;
  margin-bottom: 4px;
}

.c-compare-card__amount {
  font-size: 18px;
  font-weight: 700;
  color: #475569;
  margin-bottom: 8px;
}

.c-compare-card__amount strong {
  font-size: 28px;
  font-family: 'Playfair Display', serif;
}

.c-compare-card__amount--gold {
  color: #B88E3E;
}

.c-compare-card__amount--gold strong {
  color: #0090A8;
  font-size: 32px;
}

.c-compare-card__desc {
  font-size: 12px;
  color: #64748B;
  line-height: 1.55;
  margin: 0;
}

.c-compare-vs {
  font-family: 'Montserrat', sans-serif;
  font-size: 20px;
  font-weight: 900;
  font-style: italic;
  color: #CBD5E1;
}

/* ==========================================================================
   Section 3: 【旅とマイル】動きのある3ステップ・ハネムーンロードマップ
   ========================================================================== */
.p-roadmap-step3 {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 16px;
  max-width: 1040px;
  margin: 0 auto clamp(40px, 5vw, 60px);
  position: relative;
}

@media (max-width: 860px) {
  .p-roadmap-step3 {
    flex-direction: column;
    align-items: center;
    gap: 16px;
    max-width: 420px;
  }
}

.c-step-card {
  flex: 1;
  background: #FFFFFF;
  border: 1.5px solid rgba(0, 144, 168, 0.25);
  border-radius: 20px;
  padding: 24px 20px 22px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, border-color 0.35s ease;
  overflow: hidden;
}

.c-step-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0, 144, 168, 0.15);
  border-color: #0090A8;
}

.c-step-card--goal {
  border: 2px solid #DFB76C;
  background: linear-gradient(160deg, #FFFFFF 0%, #FCF9F2 100%);
  box-shadow: 0 12px 32px rgba(184, 142, 62, 0.16);
}

.c-step-card--goal:hover {
  border-color: #B88E3E;
  box-shadow: 0 20px 48px rgba(184, 142, 62, 0.22);
}

.c-step-card__ribbon {
  position: absolute;
  top: 10px;
  right: -28px;
  background: linear-gradient(135deg, #DFB76C 0%, #B88E3E 100%);
  color: #FFFFFF;
  font-family: 'Montserrat', sans-serif;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  padding: 3px 28px;
  transform: rotate(45deg);
  box-shadow: 0 2px 6px rgba(184, 142, 62, 0.3);
}

.c-step-card__header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 14px;
  width: 100%;
}

.c-step-card__num {
  font-family: 'Montserrat', sans-serif;
  font-size: 12px;
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.05em;
  background: #E0F4F7;
  padding: 3px 10px;
  border-radius: 100px;
}

.c-step-card__num--gold {
  color: #B88E3E;
  background: #FCF7EE;
}

.c-step-card__badge {
  font-size: 11px;
  font-weight: 700;
  color: #64748B;
  background: #F1F5F9;
  padding: 3px 10px;
  border-radius: 100px;
}

.c-step-card__badge--teal {
  color: #0090A8;
  background: #E6F7F9;
}

.c-step-card__badge--gold {
  color: #B88E3E;
  background: #FCF7EE;
  border: 1px solid rgba(184, 142, 62, 0.3);
}

.c-step-card__icon-wrap {
  margin-bottom: 12px;
}

.c-step-card__icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #F0FAFC;
  border: 1.5px solid rgba(0, 144, 168, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  transition: transform 0.3s ease;
}

.c-step-card:hover .c-step-card__icon {
  transform: scale(1.08) rotate(3deg);
}

.c-step-card__icon--gold {
  background: #FCF9F2;
  border-color: rgba(184, 142, 62, 0.3);
}

.c-step-card__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.4;
  margin: 0 0 8px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-step-card__title--gold {
  color: #0F2D4A;
}

.c-step-card__desc {
  font-size: 12px;
  color: #64748B;
  line-height: 1.6;
  margin: 0 0 16px;
  flex: 1;
}

.c-step-card__highlight {
  width: 100%;
  margin-top: auto;
}

.c-step-card__tag {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  color: #0090A8;
  background: #E0F4F7;
  padding: 5px 10px;
  border-radius: 8px;
  letter-spacing: 0.02em;
}

.c-step-card__tag--teal {
  color: #FFFFFF;
  background: #0090A8;
  box-shadow: 0 2px 8px rgba(0, 144, 168, 0.25);
}

.c-step-card__tag--gold {
  color: #FFFFFF;
  background: linear-gradient(135deg, #DFB76C 0%, #B88E3E 100%);
  box-shadow: 0 2px 8px rgba(184, 142, 62, 0.3);
}

/* 洗練された流れる光のプログレスバーコネクター（矢印全廃） */
.c-step-connector {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: clamp(36px, 4vw, 52px);
  flex-shrink: 0;
  padding: 0 4px;
}

.c-step-connector__line {
  width: 100%;
  height: 3px;
  background: rgba(0, 144, 168, 0.15);
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.c-step-connector__pulse {
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, #0090A8 40%, #DFB76C 80%, #FFFFFF 100%);
  animation: pulseFlow 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  border-radius: 4px;
}

@keyframes pulseFlow {
  0% {
    left: -100%;
  }
  60%, 100% {
    left: 100%;
  }
}

/* スマホ表示時は縦向きの洗練バーコネクター */
@media (max-width: 860px) {
  .c-step-connector {
    width: 3px;
    height: 36px;
    margin: -2px auto;
    z-index: 5;
    padding: 0;
  }
  .c-step-connector__line {
    width: 3px;
    height: 100%;
    margin-bottom: 0;
  }
  .c-step-connector__pulse {
    top: -100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, transparent 0%, #0090A8 40%, #DFB76C 80%, #FFFFFF 100%);
    animation: pulseFlowV 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  }
}

@keyframes pulseFlowV {
  0% {
    top: -100%;
  }
  60%, 100% {
    top: 100%;
  }
}

@keyframes arrowNudgeV {
  0%, 100% {
    transform: rotate(90deg) translateX(0);
  }
  50% {
    transform: rotate(90deg) translateX(3px);
  }
}

.p-section--mile {
  background: #F8FAFC;
  position: relative;
  overflow: hidden;
}

.p-mile__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.p-mile__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  opacity: 0.38;
}

.p-mile__bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, 
    #F8FAFC 0%, 
    rgba(248, 250, 252, 0.92) 25%, 
    rgba(248, 250, 252, 0.72) 60%, 
    rgba(248, 250, 252, 0.96) 100%
  );
}

.p-mile__container {
  position: relative;
  z-index: 10;
}

.c-roadmap-node__circle--navy .c-roadmap-node__num {
  color: #DFB76C;
}

.c-roadmap-node__title {
  font-size: 13.5px;
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.35;
}

.c-roadmap-node__title--white {
  color: #FFFFFF;
}

.c-roadmap-node__sub {
  font-size: 11.5px;
  color: #64748B;
}

.c-roadmap-arrow {
  color: #CBD5E1;
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  .c-roadmap-arrow {
    transform: rotate(90deg);
  }
}

/* SAISON MILE CLUB（セゾンマイルプログラム）公式ロゴ＆仕組み解説カード */
.p-saison-mile-program {
  max-width: 980px;
  margin: clamp(40px, 5vw, 64px) auto;
}

.p-saison-mile-program__card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 252, 253, 0.98) 100%);
  border: 1.5px solid rgba(0, 144, 168, 0.28);
  border-radius: 24px;
  padding: clamp(28px, 4vw, 44px);
  box-shadow: 0 16px 44px rgba(0, 144, 168, 0.08);
  position: relative;
  overflow: hidden;
}

.p-saison-mile-program__card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #0090A8 0%, #DFB76C 100%);
}

.p-saison-mile-program__header {
  display: none;
}

/* 1. 上部プロフィール（左ロゴ × 右カード詳細） */
.p-mile-service-profile {
  display: flex;
  align-items: center;
  gap: clamp(24px, 3.5vw, 44px);
  background: #FFFFFF;
  border: 1px solid rgba(0, 144, 168, 0.2);
  border-radius: 20px;
  padding: clamp(24px, 3.5vw, 36px);
  margin-bottom: clamp(24px, 3vw, 32px);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
}

@media (max-width: 768px) {
  .p-mile-service-profile {
    flex-direction: column;
    text-align: center;
    gap: 20px;
    padding: 24px 18px;
  }
}

.p-mile-service-profile__logo-col {
  flex: 0 0 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .p-mile-service-profile__logo-col {
    flex: 0 0 auto;
  }
}

.p-mile-service-profile__logo {
  max-width: 200px;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.p-mile-service-profile__info-col {
  flex: 1;
  text-align: left;
}

@media (max-width: 768px) {
  .p-mile-service-profile__info-col {
    text-align: center;
  }
}

.p-mile-service-profile__sub {
  font-size: 11.5px;
  font-weight: 700;
  color: #64748B;
  letter-spacing: 0.08em;
  display: block;
  margin-bottom: 4px;
}

.p-mile-service-profile__title {
  font-family: 'Playfair Display', 'Noto Serif JP', serif;
  font-size: clamp(22px, 2.6vw, 28px);
  font-weight: 700;
  color: #0F2D4A;
  letter-spacing: 0.04em;
  margin: 0 0 12px;
  line-height: 1.2;
}

.p-mile-service-profile__divider {
  width: 100%;
  height: 1px;
  background: #E2E8F0;
  margin-bottom: 14px;
}

.p-mile-service-profile__fee-tag {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 6px;
  padding: 4px 12px;
  margin-bottom: 12px;
}

.p-mile-service-profile__fee-label {
  font-size: 11px;
  font-weight: 700;
  color: #475569;
}

.p-mile-service-profile__fee-val {
  font-size: 13px;
  font-weight: 800;
  color: #0090A8;
}

.p-mile-service-profile__fee-val small {
  font-size: 10.5px;
  font-weight: 600;
  color: #64748B;
}

.p-mile-service-profile__text {
  font-size: 13px;
  color: #334155;
  line-height: 1.7;
  margin: 0;
}

/* 2. メリットボックス（「思った以上に、たくさん貯まります。」＆ 仕組み図） */
.p-mile-mechanism-box {
  background: #FFFFFF;
  border: 1px solid rgba(0, 144, 168, 0.2);
  border-radius: 20px;
  padding: clamp(24px, 3.5vw, 36px);
  margin-bottom: clamp(24px, 3vw, 32px);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
  text-align: center;
}

.p-mile-mechanism-box__header {
  margin-bottom: 22px;
}

.p-mile-mechanism-box__catch {
  font-family: 'Noto Serif JP', 'Shippori Mincho', serif;
  font-size: clamp(17.5px, 2.2vw, 22px);
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.p-mile-mechanism-box__catch-line {
  display: inline-block;
  width: clamp(20px, 3.5vw, 40px);
  height: 1px;
  background: rgba(184, 142, 62, 0.5);
}

.p-mile-mechanism-box__lead {
  font-size: clamp(12.5px, 1.25vw, 14px);
  color: #334155;
  line-height: 1.8;
  max-width: 800px;
  margin: 0 auto;
}

/* 数式・インフォグラフィック図 */
.p-mile-rate-formula {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 2vw, 24px);
  background: #F8FAFC;
  border: 1px dashed rgba(0, 144, 168, 0.35);
  border-radius: 16px;
  padding: clamp(18px, 2.5vw, 26px);
  margin: 0 auto;
  max-width: 820px;
}

@media (max-width: 768px) {
  .p-mile-rate-formula {
    flex-direction: column;
    gap: 14px;
    padding: 16px 12px;
  }
}

.c-formula-item {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.4vw, 16px);
}

@media (max-width: 480px) {
  .c-formula-item {
    gap: 8px;
  }
}

.c-formula-pair {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.c-formula-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 14px;
  border-radius: 100px;
  border: 1px solid #CBD5E1;
  background: #FFFFFF;
  color: #334155;
  line-height: 1.3;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.c-formula-badge--navy {
  color: #0F2D4A;
  border-color: #CBD5E1;
}

.c-formula-badge--teal {
  color: #0090A8;
  border-color: rgba(0, 144, 168, 0.4);
  background: #F0F9FA;
}

.c-formula-badge--gold {
  color: #B88E3E;
  border-color: rgba(184, 142, 62, 0.4);
  background: #FDFBF7;
}

.c-formula-value {
  font-family: 'Playfair Display', 'Montserrat', serif;
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 800;
  font-style: italic;
  color: #0F2D4A;
  line-height: 1;
}

.c-formula-value small {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  font-style: normal;
  margin-left: 2px;
}

.c-formula-value--teal {
  color: #0090A8;
}

.c-formula-value--gold {
  color: #B88E3E;
}

.c-formula-arrow {
  font-size: 11px;
  color: #94A3B8;
}

.c-formula-operator {
  font-size: 22px;
  font-weight: 800;
  color: #0090A8;
  line-height: 1;
}

/* プレミアム試算インフォグラフィック（脱AI感・統一感のあるブライダルデザイン） */
.p-mile-simulation {
  background: linear-gradient(135deg, #FFFFFF 0%, #FAF8F5 100%);
  border: 1.5px solid rgba(223, 183, 108, 0.45);
  border-radius: 20px;
  padding: clamp(24px, 3.5vw, 36px);
  margin-top: 30px;
  box-shadow: 0 10px 32px rgba(184, 142, 62, 0.08);
  position: relative;
}

.p-mile-simulation__head {
  text-align: center;
  margin-bottom: 24px;
}

.p-mile-simulation__tag {
  background: linear-gradient(135deg, #DFB76C 0%, #B88E3E 100%);
  color: #FFFFFF;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 12px;
  border-radius: 2px;
  letter-spacing: 0.1em;
  display: inline-block;
  margin-bottom: 8px;
}

.p-mile-simulation__title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: 700;
  color: #0F2D4A;
  margin: 0;
  line-height: 1.4;
}

.p-mile-simulation__body {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 20px;
  align-items: center;
}

@media (max-width: 860px) {
  .p-mile-simulation__body {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.p-mile-simulation__breakdown {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

@media (max-width: 600px) {
  .p-mile-simulation__breakdown {
    flex-direction: column;
    gap: 8px;
  }
}

.c-sim-card {
  flex: 1;
  background: #FFFFFF;
  border: 1px solid rgba(0, 144, 168, 0.2);
  border-radius: 12px;
  padding: 16px 14px;
  box-shadow: 0 4px 14px rgba(0, 144, 168, 0.04);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.c-sim-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 144, 168, 0.08);
}

.c-sim-card__header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 8px;
  width: 100%;
}

.c-sim-card__step {
  font-size: 10px;
  font-weight: 800;
  color: #0090A8;
  background: #E0F4F7;
  padding: 2px 6px;
  border-radius: 2px;
}

.c-sim-card__type {
  font-size: 11.5px;
  font-weight: 700;
  color: #0F2D4A;
  white-space: nowrap;
}

.c-sim-card__rate {
  font-size: 10.5px;
  color: #64748B;
  margin-bottom: 8px;
  text-align: center;
}

.c-sim-card__result {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 3px;
  width: 100%;
}

.c-sim-card__val {
  font-family: 'Playfair Display', serif;
  font-size: clamp(22px, 2.5vw, 26px);
  font-weight: 800;
  color: #0090A8;
  line-height: 1;
}

.c-sim-card__unit {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: #0F2D4A;
}

.p-mile-simulation__operator {
  color: #DFB76C;
  font-size: 20px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-mile-simulation__total-card {
  background: linear-gradient(135deg, #DFB76C 0%, #B88E3E 100%);
  color: #FFFFFF;
  border-radius: 14px;
  padding: 20px 22px;
  text-align: center;
  box-shadow: 0 8px 24px rgba(184, 142, 62, 0.3);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.p-mile-simulation__total-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.p-mile-simulation__total-badge {
  font-size: 10.5px;
  font-weight: 800;
  color: #B88E3E;
  background: #FFFFFF;
  padding: 2px 8px;
  border-radius: 100px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.p-mile-simulation__total-label {
  font-size: 12px;
  font-weight: 700;
  color: #0F2D4A;
  letter-spacing: 0.04em;
}

.p-mile-simulation__total-amount {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin: 4px 0 6px;
}

.p-mile-simulation__total-lead {
  font-size: 14px;
  font-weight: 700;
}

.p-mile-simulation__total-number {
  font-family: 'Playfair Display', serif;
  font-size: clamp(28px, 3.2vw, 34px);
  font-weight: 900;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.p-mile-simulation__total-unit {
  font-size: 13px;
  font-weight: 700;
}

.p-mile-simulation__total-caption {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.95);
  margin: 0;
  line-height: 1.4;
}

/* 公式重要注記ブロック */
.p-saison-mile-program__notes {
  background: rgba(241, 245, 249, 0.7);
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 16px 20px;
  margin-top: 16px;
}

.p-saison-mile-program__note-item {
  font-size: 11px;
  color: #64748B;
  line-height: 1.65;
  margin: 0 0 4px;
  text-indent: -1em;
  padding-left: 1em;
}

.p-saison-mile-program__note-item:last-child {
  margin-bottom: 0;
}

.c-step-card__micro-note {
  font-size: 10.5px;
  color: #00778B;
  margin-top: 8px;
  margin-bottom: 0;
  line-height: 1.35;
  font-weight: 500;
}

/* デスティネーションカード（写真付き・最上部提示） */
.p-destination-box {
  max-width: 1040px;
  margin: clamp(44px, 6vw, 68px) auto 0;
  text-align: center;
}

.p-destination-box__header {
  margin-bottom: 28px;
}

.p-destination-box__badge {
  background: linear-gradient(135deg, #0090A8 0%, #0F2D4A 100%);
  color: #FFFFFF;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 800;
  padding: 4px 14px;
  border-radius: 100px;
  letter-spacing: 0.1em;
  display: inline-block;
  margin-bottom: 10px;
  box-shadow: 0 3px 10px rgba(0, 144, 168, 0.25);
}

.p-destination-box__title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(19px, 2.3vw, 24px);
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 8px;
}

.p-destination-box__sub {
  font-size: clamp(13px, 1.35vw, 14.5px);
  color: #64748B;
  margin: 0 auto;
}

.p-destination-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

@media (max-width: 860px) {
  .p-destination-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

.c-destination-card {
  background: #FFFFFF;
  border: 1px solid rgba(226, 232, 240, 0.9);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
  text-align: left;
  position: relative;
  display: flex;
  flex-direction: column;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.c-destination-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
}

.c-destination-card--popular {
  border: 2px solid #DFB76C;
  box-shadow: 0 12px 36px rgba(184, 142, 62, 0.14);
}

.c-destination-card__img-wrap {
  height: 160px;
  overflow: hidden;
  position: relative;
}

.c-destination-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.c-destination-card:hover .c-destination-card__img {
  transform: scale(1.08);
}

.c-destination-card__tag {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  font-size: 10.5px;
  font-weight: 700;
  color: #0F2D4A;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(4px);
  padding: 4px 12px;
  border-radius: 100px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.c-destination-card__tag--gold {
  color: #B88E3E;
  background: #FFFFFF;
  border: 1px solid rgba(223, 183, 108, 0.5);
}

.c-destination-card__body {
  padding: 18px 18px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.c-destination-card__name {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #0F2D4A;
  margin-bottom: 10px;
  text-align: center;
}

.c-destination-card__mile-box {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  background: #F0F9FA;
  border: 1.5px solid rgba(0, 144, 168, 0.28);
  border-radius: 10px;
  padding: 8px 20px;
  margin-bottom: 0;
  width: 100%;
  box-sizing: border-box;
}

.c-destination-card__mile-lbl {
  font-size: 11px;
  color: #64748B;
  font-weight: 600;
}

.c-destination-card__mile-val {
  font-family: 'Montserrat', sans-serif;
  font-size: 21px;
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.02em;
}

.c-destination-card__mile-val small {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  font-weight: 700;
  margin-left: 3px;
}

.c-destination-card__desc {
  font-size: 12px;
  color: #64748B;
  line-height: 1.55;
  margin: 0;
}

/* 口コミセクション */
.p-reviews-section {
  max-width: 980px;
  margin: 0 auto;
}

.p-reviews-header {
  text-align: center;
  margin-bottom: 30px;
}

.p-reviews-header__tag {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.1em;
  background: #E0F4F7;
  padding: 3px 14px;
  border-radius: 100px;
  display: inline-block;
  margin-bottom: 8px;
}

.p-reviews-header__title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(18.5px, 2.5vw, 25px);
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 6px;
}

.p-reviews-header__sub {
  font-size: 13.5px;
  color: #64748B;
  margin: 0;
}

.p-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media (max-width: 860px) {
  .p-reviews-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.c-review-card {
  background: #FFFFFF;
  border: 1px solid rgba(226, 232, 240, 0.85);
  border-radius: 18px;
  padding: 24px 20px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.03);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.c-review-card__stars {
  color: #EAB308;
  font-size: 14px;
  letter-spacing: 2px;
  margin-bottom: 10px;
}

.c-review-card__title {
  font-size: 14px;
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.45;
  margin: 0 0 12px;
}

.c-review-card__text {
  font-size: 12.5px;
  color: #475569;
  line-height: 1.65;
  margin: 0 0 16px;
  flex: 1;
}

.c-review-card__author {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #F1F5F9;
  padding-top: 12px;
}

.c-review-card__name {
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}

.c-review-card__status {
  font-size: 10.5px;
  color: #94A3B8;
  margin-top: 1px;
}

/* ==========================================================================
   Section 4: 【上質な暮らし】アトレ風 ジグザグ・レイヤード配置 (プラチナ特典)
   ========================================================================== */
.p-section--lifestyle {
  background: #FFFFFF;
}

.p-zigzag-perks {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.c-zigzag-row {
  display: flex;
  align-items: center;
  position: relative;
}

@media (max-width: 768px) {
  .c-zigzag-row {
    flex-direction: column;
  }
}

.c-zigzag-row__img-box {
  width: 58%;
  height: 320px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08);
  position: relative;
}

.c-zigzag-row__img-box::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0, 144, 168, 0.12) 0%, rgba(15, 45, 74, 0.18) 100%);
  pointer-events: none;
  transition: opacity 0.3s ease;
}

@media (max-width: 768px) {
  .c-zigzag-row__img-box {
    width: 100%;
    height: 220px;
  }
}

.c-zigzag-row__img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.c-zigzag-row {
  display: flex;
  align-items: stretch;
  position: relative;
  gap: clamp(24px, 3vw, 40px);
}

.c-zigzag-row__img-box {
  width: 46%;
  height: auto;
  min-height: 280px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08);
  position: relative;
  flex-shrink: 0;
}

.c-zigzag-row__card {
  width: 54%;
  background: #FFFFFF;
  border: 1.5px solid rgba(0, 144, 168, 0.25);
  border-radius: 20px;
  padding: 32px 28px;
  box-shadow: 0 14px 36px rgba(0, 144, 168, 0.06);
  margin-left: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (max-width: 768px) {
  .c-zigzag-row {
    flex-direction: column;
    gap: 16px;
  }
  .c-zigzag-row__img-box {
    width: 100%;
    height: 220px;
    min-height: auto;
  }
  .c-zigzag-row__card {
    width: 100%;
    margin-left: 0;
    margin-top: 0;
    padding: 24px 20px;
  }
}

.c-zigzag-row--reverse {
  flex-direction: row-reverse;
}

@media (max-width: 768px) {
  .c-zigzag-row--reverse {
    flex-direction: column;
  }
}

.c-zigzag-row--reverse .c-zigzag-row__card {
  margin-left: 0;
  margin-right: 0;
}

@media (max-width: 768px) {
  .c-zigzag-row--reverse .c-zigzag-row__card {
    margin-right: 0;
    margin-top: -30px;
  }
}

.c-zigzag-row__tag {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.08em;
  background: #E0F4F7;
  padding: 3px 12px;
  border-radius: 100px;
  display: inline-block;
  margin-bottom: 10px;
}

.c-zigzag-row__title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16.5px, 2vw, 20px);
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 12px;
}

.c-zigzag-row__desc {
  font-size: 13px;
  color: #475569;
  line-height: 1.7;
  margin: 0;
}

/* 2枚グリッドペア */
.c-zigzag-grid-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

@media (max-width: 680px) {
  .c-zigzag-grid-pair {
    grid-template-columns: 1fr;
  }
}

.c-perk-subcard {
  background: #FFFFFF;
  border: 1px solid rgba(226, 232, 240, 0.9);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
}

.c-perk-subcard__img-wrap {
  width: 100%;
  height: 180px;
  position: relative;
}

.c-perk-subcard__img-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0, 144, 168, 0.1) 0%, rgba(15, 45, 74, 0.16) 100%);
  pointer-events: none;
}

.c-perk-subcard__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.c-perk-subcard__body {
  padding: 24px 20px;
}

.c-perk-subcard__tag {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
  display: inline-block;
}

.c-perk-subcard__title {
  font-size: 15px;
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 8px;
}

.c-perk-subcard__desc {
  font-size: 12px;
  color: #64748B;
  line-height: 1.6;
  margin: 0;
}

/* ==========================================================================
   Section 5: 【企画追加】キャンペーン適用の流れ (Campaign Flow)
   ========================================================================== */
.p-section--flow {
  background: #F8FAFC;
  border-top: 1px solid rgba(0, 144, 168, 0.15);
  border-bottom: 1px solid rgba(0, 144, 168, 0.15);
  padding: clamp(50px, 6vw, 80px) 0;
  position: relative;
}

.p-flow-steps {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 16px;
  max-width: 1040px;
  margin: 0 auto clamp(36px, 4.5vw, 50px);
}

@media (max-width: 860px) {
  .p-flow-steps {
    flex-direction: column;
    align-items: center;
    gap: 16px;
    max-width: 420px;
  }
}

.c-flow-card {
  flex: 1;
  background: #FFFFFF;
  border: 1.5px solid rgba(0, 144, 168, 0.25);
  border-radius: 20px;
  padding: 24px 20px 22px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, border-color 0.35s ease;
}

.c-flow-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0, 144, 168, 0.15);
  border-color: #0090A8;
}

.c-flow-card--goal {
  border: 2px solid #DFB76C;
  background: linear-gradient(160deg, #FFFFFF 0%, #FCF9F2 100%);
  box-shadow: 0 12px 32px rgba(184, 142, 62, 0.15);
}

.c-flow-card--goal:hover {
  border-color: #B88E3E;
  box-shadow: 0 20px 48px rgba(184, 142, 62, 0.22);
}

.c-flow-card__header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 16px;
  width: 100%;
}

.c-flow-card__step-num {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.05em;
  background: #E0F4F7;
  padding: 3px 10px;
  border-radius: 100px;
}

.c-flow-card__step-num--gold {
  color: #B88E3E;
  background: #FCF7EE;
}

.c-flow-card__period {
  font-size: 11px;
  font-weight: 700;
  color: #64748B;
  background: #F1F5F9;
  padding: 3px 10px;
  border-radius: 100px;
}

.c-flow-card__period--gold {
  color: #B88E3E;
  background: #FCF7EE;
  border: 1px solid rgba(184, 142, 62, 0.3);
}

.c-flow-card__icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #F0FAFC;
  border: 1.5px solid rgba(0, 144, 168, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  transition: transform 0.3s ease;
}

.c-flow-card:hover .c-flow-card__icon {
  transform: scale(1.08) rotate(4deg);
}

.c-flow-card__icon--gold {
  background: #FCF9F2;
  border-color: rgba(184, 142, 62, 0.3);
}

.c-flow-card__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.4;
  margin: 0 0 8px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-flow-card__title--gold {
  color: #0F2D4A;
}

.c-flow-card__desc {
  font-size: 12.5px;
  color: #64748B;
  line-height: 1.65;
  margin: 0;
  flex: 1;
}

.c-flow-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  flex-shrink: 0;
}

@media (max-width: 860px) {
  .c-flow-arrow {
    transform: rotate(90deg);
    margin: -4px 0;
  }
}

/* ==========================================================================
   Section 3-2: 【完全独立特集】家族カード：ふたりで持つ、新しいプラチナの形。
   ========================================================================== */
.p-section--family {
  background: linear-gradient(180deg, #F4FAF9 0%, #FFFFFF 50%, #F4FAF9 100%);
  position: relative;
  overflow: hidden;
  padding: clamp(64px, 8vw, 104px) 0;
}

.p-family-editorial {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: clamp(36px, 5.5vw, 68px);
  align-items: center;
  margin-top: clamp(36px, 4.5vw, 56px);
  position: relative;
  z-index: 1;
}

@media (max-width: 960px) {
  .p-family-editorial {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

.p-family-editorial__visual {
  position: relative;
  display: flex;
  justify-content: center;
}

/* CSSで写真を水平に配置（見やすさとモダンな統一感） */
.p-family-editorial__img-frame {
  position: relative;
  background: #FFFFFF;
  padding: 10px;
  border-radius: 18px;
  box-shadow: 0 16px 44px rgba(15, 23, 42, 0.1), 0 2px 8px rgba(15, 23, 42, 0.04);
  transform: none;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  max-width: 480px;
  width: 100%;
}

.p-family-editorial__img-frame:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 52px rgba(15, 23, 42, 0.15);
}

.p-family-editorial__img {
  width: 100%;
  height: clamp(260px, 32vw, 380px);
  object-fit: cover;
  display: block;
  border-radius: 12px;
}

.p-family-editorial__badge {
  position: absolute;
  bottom: 24px;
  right: 24px;
  background: rgba(15, 45, 74, 0.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1.5px solid rgba(223, 183, 108, 0.7);
  border-radius: 14px;
  padding: 10px 18px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
  text-align: right;
}

.p-family-editorial__badge-sub {
  font-size: 11px;
  color: #DFB76C;
  font-weight: 700;
  display: block;
  letter-spacing: 0.04em;
}

.p-family-editorial__badge-main {
  color: #FFFFFF;
  line-height: 1.15;
  margin: 2px 0;
}

.p-family-editorial__badge-main strong {
  font-family: 'Montserrat', sans-serif;
  font-size: 24px;
  font-weight: 800;
  color: #FFFFFF;
}

.p-family-editorial__badge-main small {
  font-size: 11px;
  font-weight: 600;
  color: #E2E8F0;
  margin-left: 2px;
}

.p-family-editorial__badge-note {
  font-size: 10.5px;
  color: #CBD5E1;
  display: block;
  margin-top: 2px;
  font-weight: 500;
}

/* 右側：カード式を完全撤廃したエディトリアルリスト */
.p-family-editorial__content {
  display: flex;
  flex-direction: column;
}

.p-family-editorial__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.c-family-perk-row {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(223, 183, 108, 0.3);
  position: relative;
  transition: transform 0.3s ease;
}

.c-family-perk-row:first-child {
  padding-top: 4px;
}

.c-family-perk-row:last-child {
  border-bottom: none;
  padding-bottom: 8px;
}

.c-family-perk-row:hover {
  transform: translateX(6px);
}

.c-family-perk-row__num {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 900;
  font-style: italic;
  color: #B88E3E;
  line-height: 1;
  flex-shrink: 0;
  width: 36px;
  margin-top: 2px;
}

.c-family-perk-row__body {
  flex: 1;
}

.c-family-perk-row__title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 1.7vw, 18.5px);
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 6px;
  line-height: 1.35;
  letter-spacing: 0.02em;
}

.c-family-perk-row__desc {
  font-size: clamp(13px, 1.35vw, 14px);
  color: #475569;
  line-height: 1.7;
  margin: 0;
}

.p-family-editorial__note {
  font-size: 11.5px;
  color: #94A3B8;
  margin-top: 14px;
  text-align: right;
}

@media (max-width: 960px) {
  .p-family-editorial__note {
    text-align: center;
  }
}

.p-flow-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 10px;
}

.p-flow-cta__btn {
  padding: 15px 44px;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: 0.04em;
  box-shadow: 0 8px 24px rgba(184, 142, 62, 0.35);
  min-width: 280px;
}

.p-flow-cta__link {
  font-size: 13px;
  color: #64748B;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-decoration: underline;
  cursor: pointer;
  background: none;
  border: none;
  padding: 4px;
  transition: color 0.2s ease;
}

.p-flow-cta__link:hover {
  color: #0F2D4A;
}

.p-flow-cta__subtext {
  font-size: 11px;
  color: #94A3B8;
  margin: 0;
}

/* ==========================================================================
   Section 3-2: 【企画特集】家族カード：ふたりで持つ、新しいプラチナの形。
   ========================================================================== */
.p-family-showcase {
  margin-top: clamp(48px, 6vw, 76px);
  position: relative;
}

.p-family-showcase__card {
  background: linear-gradient(135deg, #FFFFFF 0%, #F5FBFC 45%, #FCF8F0 100%);
  border: 1.5px solid rgba(223, 183, 108, 0.45);
  border-radius: 32px;
  padding: clamp(32px, 4.5vw, 56px);
  box-shadow: 0 20px 60px rgba(15, 45, 74, 0.08);
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: clamp(32px, 4.5vw, 60px);
  align-items: center;
  position: relative;
  overflow: hidden;
}

.p-family-showcase__card::before {
  content: '';
  position: absolute;
  top: -80px;
  right: -80px;
  width: 240px;
  height: 240px;
  background: radial-gradient(circle, rgba(0, 144, 168, 0.08) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

@media (max-width: 900px) {
  .p-family-showcase__card {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 28px 20px;
  }
}

.p-family-showcase__visual {
  position: relative;
}

.p-family-showcase__img-wrap {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.14);
  border: 4px solid #FFFFFF;
}

.p-family-showcase__img {
  width: 100%;
  height: clamp(260px, 32vw, 370px);
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.p-family-showcase__img-wrap:hover .p-family-showcase__img {
  transform: scale(1.035);
}

.p-family-showcase__badge {
  position: absolute;
  bottom: 14px;
  right: 14px;
  background: rgba(15, 45, 74, 0.96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1.5px solid rgba(223, 183, 108, 0.65);
  border-radius: 16px;
  padding: 10px 18px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
  text-align: right;
}

.p-family-showcase__badge-sub {
  font-size: 10.5px;
  color: #DFB76C;
  font-weight: 700;
  display: block;
  letter-spacing: 0.04em;
}

.p-family-showcase__badge-main {
  color: #FFFFFF;
  line-height: 1.1;
  margin: 3px 0;
}

.p-family-showcase__badge-unit {
  font-size: 11px;
  color: #E2E8F0;
  margin-right: 4px;
}

.p-family-showcase__badge-main strong {
  font-family: 'Playfair Display', serif;
  font-size: 24px;
  font-weight: 900;
  color: #DFB76C;
}

.p-family-showcase__badge-main small {
  font-size: 11px;
  font-weight: 600;
  color: #FFFFFF;
}

.p-family-showcase__badge-note {
  font-size: 9.5px;
  color: #CBD5E1;
  display: block;
  margin-top: 1px;
}

/* 右側コンテンツ */
.p-family-showcase__content {
  display: flex;
  flex-direction: column;
}

.p-family-showcase__tag {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.1em;
  background: #E0F4F7;
  border: 1px solid rgba(0, 144, 168, 0.3);
  padding: 4px 16px;
  border-radius: 100px;
  display: inline-block;
  align-self: flex-start;
  margin-bottom: 12px;
}

.p-family-showcase__title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(22px, 2.7vw, 32px);
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.4;
  margin: 0 0 12px;
  letter-spacing: 0.02em;
}

.p-family-showcase__desc {
  font-size: clamp(13px, 1.4vw, 14.5px);
  color: #475569;
  line-height: 1.8;
  margin: 0 0 22px;
}

.p-family-showcase__list {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.c-family-perk-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(223, 183, 108, 0.4);
  border-left: 4px solid #B88E3E;
  border-radius: 16px;
  padding: 14px 20px;
  box-shadow: 0 4px 16px rgba(15, 45, 74, 0.04);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-family-perk-item:hover {
  background: #FFFFFF;
  border-color: rgba(0, 144, 168, 0.5);
  border-left-color: #0090A8;
  box-shadow: 0 8px 24px rgba(0, 144, 168, 0.1);
  transform: translateX(4px);
}

.c-family-perk-item__icon-wrap {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, #F0FAFC 0%, #E3F5F7 100%);
  border: 1px solid rgba(0, 144, 168, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.c-family-perk-item__body {
  flex: 1;
}

.c-family-perk-item__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 3px;
  line-height: 1.35;
}

.c-family-perk-item__desc {
  font-size: 12.5px;
  color: #475569;
  line-height: 1.6;
  margin: 0;
}

.p-family-showcase__note {
  font-size: 11.5px;
  color: #94A3B8;
  margin-top: 4px;
}

/* ==========================================================================
   Section 6: 【要素追加】よくあるご質問 (FAQ アコーディオン)
   ========================================================================== */
.p-section--faq {
  background: #FFFFFF;
  padding: clamp(50px, 6vw, 80px) 0;
}

.p-faq-list {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.c-faq-item {
  border: 1.5px solid #E2E8F0;
  border-radius: 16px;
  overflow: hidden;
  background: #FFFFFF;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.c-faq-item.is-open {
  border-color: #0090A8;
  box-shadow: 0 6px 20px rgba(0, 144, 168, 0.08);
}

.c-faq-item__question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  background: #FFFFFF;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background 0.2s ease;
}

.c-faq-item__question:hover {
  background: #F8FAFC;
}

.c-faq-item__q-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #E0F4F7;
  color: #0090A8;
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.c-faq-item__q-text {
  flex: 1;
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.45;
}

.c-faq-item__arrow {
  color: #64748B;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s ease;
  flex-shrink: 0;
}

.c-faq-item.is-open .c-faq-item__arrow {
  transform: rotate(180deg);
  color: #0090A8;
}

.c-faq-item__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  background: #F8FAFC;
}

.c-faq-item.is-open .c-faq-item__answer {
  max-height: 800px;
}

.c-faq-item__a-inner {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 22px 22px;
  border-top: 1px dashed #E2E8F0;
}

.c-faq-item__a-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #DFB76C;
  color: #FFFFFF;
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.c-faq-item__a-text {
  flex: 1;
  font-size: 14px;
  color: #334155;
  line-height: 1.8;
  margin: 0;
}

.c-faq-item__a-text a {
  color: #0090A8;
  text-decoration: underline;
  font-weight: 600;
  transition: opacity 0.2s ease;
}

.c-faq-item__a-text a:hover {
  opacity: 0.8;
}

.c-faq-item__a-note {
  display: block;
  font-size: 12px;
  color: #64748B;
  line-height: 1.6;
  margin-top: 8px;
}

/* ==========================================================================
   Buttons (c-btn)
   ========================================================================== */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700;
  border-radius: 100px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none;
  box-sizing: border-box;
}

.c-btn--gold {
  background: linear-gradient(135deg, #C9A04E 0%, #A87D32 50%, #8C6220 100%);
  color: #FFFFFF;
  box-shadow: 0 6px 18px rgba(140, 98, 32, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.c-btn--gold:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(140, 98, 32, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

/* ==========================================================================
   Footer
   ========================================================================== */
.p-footer {
  background: #F0F4F8;
  border-top: 1px solid #E2E8F0;
  padding-top: 44px;
  padding-bottom: 120px;
  position: relative;
  z-index: 10;
}

@media (max-width: 768px) {
  .p-footer {
    padding-top: 36px;
    padding-bottom: 220px;
  }
}

.p-footer__notes {
  font-size: 11.5px;
  color: #64748B;
  line-height: 1.8;
  margin-bottom: 22px;
}

.p-footer__notes p {
  margin: 0 0 6px;
}

.p-footer__copyright {
  text-align: center;
  font-size: 11.5px;
  color: #94A3B8;
}

/* ==========================================================================
   Floating CTA
   ========================================================================== */
.p-floating-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top: 2px solid #DFB76C;
  box-shadow: 0 -6px 24px rgba(15, 23, 42, 0.12);
  padding: 10px 0;
  transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.p-floating-cta.is-active {
  transform: translateY(0);
}

.p-floating-cta__inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.p-floating-cta__text {
  font-size: 13.5px;
  color: #0F2D4A;
}

.p-floating-cta__sub {
  display: block;
  font-size: 11px;
  color: #64748B;
  margin-top: 2px;
}

.p-floating-cta__action {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

.p-floating-cta__btn {
  width: 100%;
  min-width: 220px;
  padding: 11px 24px;
  font-size: 15px;
}

.p-floating-cta__microcopy {
  font-size: 10px;
  color: #94A3B8;
  margin-top: 3px;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .p-floating-cta {
    padding: 10px 14px 14px;
  }
  .p-floating-cta__inner {
    flex-direction: column;
    gap: 8px;
    padding: 0;
    text-align: center;
  }
  .p-floating-cta__action {
    width: 100%;
  }
  .p-floating-cta__btn {
    width: 100%;
    min-width: unset;
    padding: 13px 20px;
    font-size: 16px;
  }
}

/* ==========================================================================
   Modals
   ========================================================================== */
.p-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.p-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.p-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.p-modal__content {
  position: relative;
  z-index: 1;
  background: #FFFFFF;
  border-radius: 20px;
  padding: clamp(24px, 4vw, 36px);
  max-width: 640px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.25);
  transform: translateY(20px) scale(0.97);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.p-modal--wide .p-modal__content,
.p-modal__content--wide {
  max-width: 840px;
}

.p-modal.is-open .p-modal__content {
  transform: translateY(0) scale(1);
}

.p-modal__close-btn {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #F1F5F9;
  color: #64748B;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.p-modal__close-btn:hover {
  background: #E2E8F0;
  color: #0F172A;
}

.p-modal__header {
  text-align: center;
  margin-bottom: 24px;
}

.p-modal__title {
  font-size: 20px;
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 6px;
}

.p-modal__subtitle {
  font-size: 13.5px;
  color: #64748B;
  margin: 0;
}

.p-modal__branches {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}

@media (max-width: 580px) {
  .p-modal__branches {
    grid-template-columns: 1fr;
  }
}

.c-branch-card {
  border: 1.5px solid #E2E8F0;
  border-radius: 16px;
  padding: 20px 16px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: all 0.25s ease;
  position: relative;
  background: #FFFFFF;
}

.c-branch-card:hover {
  border-color: #B88E3E;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(184, 142, 62, 0.12);
}

.c-branch-card--primary {
  border-color: rgba(184, 142, 62, 0.4);
  background: linear-gradient(145deg, #FFFFFF 0%, #FDFBF7 100%);
  justify-content: center;
  gap: 16px;
}

.c-branch-card--primary .c-branch-card__title {
  margin-bottom: 0;
}

.c-branch-card__badge {
  font-size: 10.5px;
  font-weight: 700;
  color: #64748B;
  background: #F1F5F9;
  padding: 2px 10px;
  border-radius: 100px;
  margin-bottom: 8px;
}

.c-branch-card__badge--gold {
  color: #B88E3E;
  background: #FDF3E0;
}

.c-branch-card__title {
  font-size: 15px;
  font-weight: 700;
  color: #0F2D4A;
  margin-bottom: 6px;
}

.c-branch-card__desc {
  font-size: 12px;
  color: #64748B;
  line-height: 1.5;
  margin: 0 0 14px;
  flex: 1;
}

.c-branch-card__btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 700;
  color: #475569;
}

.c-branch-card__btn--gold {
  color: #B88E3E;
}

.p-modal__notice {
  font-size: 10.5px;
  color: #94A3B8;
  line-height: 1.5;
  border-top: 1px solid #F1F5F9;
  padding-top: 14px;
}

.p-modal__notice p {
  margin: 0 0 4px;
}

.c-spec-table--modal {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}

.c-spec-table--modal th,
.c-spec-table--modal td {
  padding: 12px 14px;
  font-size: 13px;
  border-bottom: 1px solid #E2E8F0;
  text-align: left;
}

.c-spec-table--modal th {
  width: 30%;
  background: #F8FAFC;
  font-weight: 700;
  color: #0F2D4A;
}

.c-spec-table--modal td {
  color: #334155;
}

/* ==========================================================================
   Campaign Detail Modal (本体LPデザインシステム完全調和: ブライダルラグジュアリー)
   ========================================================================== */
.p-modal__content--campaign {
  max-width: 860px !important;
  padding: clamp(28px, 4.5vw, 44px) clamp(20px, 3.5vw, 36px) !important;
  background: #FFFFFF !important;
  border: 1px solid rgba(184, 142, 62, 0.28) !important;
  border-radius: 24px !important;
  box-shadow: 0 24px 64px rgba(15, 45, 74, 0.18), 0 4px 16px rgba(0, 0, 0, 0.04) !important;
}

.p-cp-modal__inner {
  display: flex;
  flex-direction: column;
  gap: 28px;
  color: #334155;
}

/* モーダルヘッダー */
.p-cp-modal__header {
  text-align: center;
  margin-bottom: 28px;
  position: relative;
}

.p-cp-modal__header-script {
  font-family: 'Alex Brush', cursive;
  font-size: clamp(34px, 4.8vw, 48px);
  color: rgba(184, 142, 62, 0.35);
  line-height: 0.85;
  display: block;
  margin-bottom: 2px;
  user-select: none;
}

.p-cp-modal__main-title {
  font-family: 'Noto Serif JP', 'Shippori Mincho', serif;
  font-size: clamp(20px, 2.6vw, 26px);
  font-weight: 700;
  color: #0F2D4A;
  letter-spacing: 0.04em;
  margin: 8px 0 12px;
  line-height: 1.4;
}

.p-cp-modal__header-ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 14px;
}

.p-cp-modal__header-line {
  width: 50px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184, 142, 62, 0.6), transparent);
}

.p-cp-modal__header-sparkle {
  color: #B88E3E;
  font-size: 13px;
  line-height: 1;
}

/* セクション構造 */
.p-cp-modal__section {
  display: flex;
  flex-direction: column;
}

.p-cp-modal__section-heading {
  font-family: 'Noto Serif JP', 'Shippori Mincho', serif;
  font-size: 16.5px;
  font-weight: 700;
  color: #0F2D4A;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #EAEFF2;
  line-height: 1.4;
  letter-spacing: 0.03em;
}

.p-cp-modal__section-heading::before {
  content: '◆';
  font-size: 9px;
  color: #B88E3E;
  line-height: 1;
}

/* 特典内容カード（本体LP調 ラグジュアリーカード） */
.p-cp-modal__benefit-card {
  background: linear-gradient(145deg, #F4FAF9 0%, #FDFBF7 100%);
  border: 1.5px solid rgba(184, 142, 62, 0.35);
  border-radius: 16px;
  padding: 22px 24px;
  box-shadow: 0 4px 16px rgba(15, 45, 74, 0.04);
}

.p-cp-modal__benefit-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: #FFFFFF;
  background: linear-gradient(135deg, #DFB76C 0%, #BA8933 100%);
  padding: 3px 12px;
  border-radius: 100px;
  margin-bottom: 10px;
  letter-spacing: 0.05em;
  box-shadow: 0 2px 6px rgba(184, 142, 62, 0.3);
}

.p-cp-modal__lead {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(17px, 2.2vw, 20px);
  font-weight: 700;
  color: #0F2D4A;
  margin: 0 0 10px;
  line-height: 1.4;
}

.p-cp-modal__lead-amount {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(22px, 2.8vw, 27px);
  font-weight: 800;
  color: #0090A8;
  letter-spacing: 0.02em;
}

.p-cp-modal__desc {
  font-size: 14px;
  line-height: 1.8;
  color: #475569;
  margin: 0;
}

/* 対象期間リスト */
.p-cp-modal__period-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #FAFCFD;
  border: 1px solid rgba(37, 125, 142, 0.18);
  border-radius: 14px;
  padding: 16px 20px;
  margin-bottom: 8px;
}

.p-cp-modal__period-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-size: 14.5px;
  flex-wrap: wrap;
}

.p-cp-modal__period-label {
  font-weight: 700;
  color: #0F2D4A;
  min-width: 140px;
}

.p-cp-modal__period-val {
  font-weight: 700;
  color: #257D8E;
  font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
}

.p-cp-modal__period-note {
  font-size: 12px;
  color: #64748B;
  line-height: 1.7;
  margin: 4px 0 0;
}

/* スケジュール表（シャンパンゴールドグラデーションヘッダー） */
.p-cp-modal__table-wrap {
  overflow-x: auto;
  margin-top: 8px;
  border-radius: 12px;
  border: 1.5px solid rgba(184, 142, 62, 0.35);
  box-shadow: 0 4px 16px rgba(15, 45, 74, 0.04);
}

.p-cp-modal__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  text-align: center;
  min-width: 520px;
}

.p-cp-modal__table th {
  background: linear-gradient(135deg, #DFB76C 0%, #BA8933 100%);
  color: #FFFFFF;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: 0.03em;
  padding: 13px 12px;
  border-right: 1px solid rgba(255, 255, 255, 0.25);
  text-shadow: 0 1px 2px rgba(138, 102, 33, 0.4);
}

.p-cp-modal__table th:last-child {
  border-right: none;
}

.p-cp-modal__table td {
  padding: 13px 10px;
  border-bottom: 1px solid #EAEFF2;
  border-right: 1px solid #EAEFF2;
  color: #334155;
  font-weight: 500;
  background: #FFFFFF;
}

.p-cp-modal__table td:last-child {
  border-right: none;
}

.p-cp-modal__table tr:last-child td {
  border-bottom: none;
}

.p-cp-modal__table tr:nth-child(even) td {
  background: #F8FBFA;
}

/* 引換方法アコーディオン */
.p-cp-modal__accordion {
  border: 1.5px solid rgba(37, 125, 142, 0.25);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(15, 45, 74, 0.04);
  margin-top: 14px;
}

.p-cp-modal__acc-btn {
  width: 100%;
  background: linear-gradient(135deg, #0F2D4A 0%, #173752 50%, #257D8E 100%);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 22px;
  font-family: 'Noto Serif JP', serif;
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: 0.03em;
  cursor: pointer;
  border: none;
  transition: opacity 0.25s ease;
}

.p-cp-modal__acc-btn:hover {
  opacity: 0.95;
}

.p-cp-modal__acc-icon {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(223, 183, 108, 0.2);
  border: 1px solid rgba(223, 183, 108, 0.6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: #F9E7B9;
  font-weight: 400;
  line-height: 1;
}

.p-cp-modal__acc-body {
  background: #F8FAF9;
  padding: clamp(20px, 3vw, 32px) clamp(14px, 2.5vw, 24px);
  display: block;
}

.p-cp-modal__accordion:not(.is-open) .p-cp-modal__acc-body {
  display: none;
}

.p-cp-modal__steps-flow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  max-width: 660px;
  margin: 0 auto;
}

.p-cp-modal__step-card {
  width: 100%;
  background: #FFFFFF;
  border: 1px solid rgba(37, 125, 142, 0.16);
  border-radius: 16px;
  padding: 22px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  box-shadow: 0 4px 16px rgba(15, 45, 74, 0.04);
  transition: box-shadow 0.2s ease;
}

.p-cp-modal__step-card:hover {
  box-shadow: 0 8px 24px rgba(37, 125, 142, 0.08);
}

@media (max-width: 640px) {
  .p-cp-modal__step-card {
    flex-direction: column;
    align-items: flex-start;
    padding: 18px 16px;
    gap: 16px;
  }
}

.p-cp-modal__step-text {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex: 1;
}

.p-cp-modal__step-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: linear-gradient(135deg, #257D8E 0%, #185263 100%);
  color: #FFFFFF;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 14px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 1px;
  border: 1.5px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 2px 8px rgba(37, 125, 142, 0.35);
}

.p-cp-modal__step-p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14.5px;
  font-weight: 700;
  color: #0F2D4A;
  line-height: 1.6;
  margin: 0;
}

.p-cp-modal__step-media {
  max-width: 250px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}

@media (max-width: 640px) {
  .p-cp-modal__step-media {
    max-width: 100%;
  }
}

.p-cp-modal__step-media img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid #E2E8F0;
  box-shadow: 0 4px 14px rgba(15, 45, 74, 0.08);
}

.p-cp-modal__step-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 1px solid rgba(37, 125, 142, 0.22);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  color: #257D8E;
}

/* 注意事項パネル（本体LP調の注記ボックス） */
.p-cp-modal__notes-card {
  background: #FAFCFD;
  border: 1px solid #E2E8F0;
  border-radius: 14px;
  padding: 18px 22px;
}

.p-cp-modal__notes-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-cp-modal__notes-list li {
  font-size: 12px;
  line-height: 1.75;
  color: #64748B;
  position: relative;
  padding-left: 1.2em;
  text-indent: -1.2em;
}

/* モーダル下部CTAアクション（本体LPのCTAボタンと完全調和するプロポーション） */
.p-cp-modal__footer-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid #EAEFF2;
}

.p-cp-modal__cta-btn {
  background: linear-gradient(180deg, #D5A44E 0%, #BA8933 100%) !important;
  color: #FFFFFF !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  padding: 15px 42px !important;
  border-radius: 9999px !important;
  box-shadow: 0 6px 20px rgba(186, 137, 51, 0.38), 0 2px 4px rgba(0, 0, 0, 0.08) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  border: none !important;
  cursor: pointer !important;
  text-shadow: 0 1px 2px rgba(138, 102, 33, 0.4);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
  min-width: 280px;
  max-width: 360px;
  width: auto;
}

.p-cp-modal__cta-btn:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 10px 26px rgba(186, 137, 51, 0.48) !important;
}

.p-cp-modal__cta-btn .c-btn__arrow {
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

.p-cp-modal__cta-btn:hover .c-btn__arrow {
  transform: translateX(4px);
}

.p-cp-modal__cta-subtext {
  font-size: 11.5px;
  color: #64748B;
  margin: 10px 0 0;
  text-align: center;
}

@media (max-width: 480px) {
  .p-cp-modal__cta-btn {
    width: 100%;
    min-width: unset;
    max-width: 100%;
    padding: 14px 20px !important;
    font-size: 16px !important;
  }
}

/* フローCTA内のリンクボックステーブル */
.p-flow-cta__links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 10px;
  flex-wrap: wrap;
}

/* ==========================================================================
   2026-09 赤入れ修正用追加スタイル
   ========================================================================== */

/* ヘッダー：新スクエア型セゾンロゴ */
.p-header__logo-img--saison-square {
  height: 32px;
  width: auto;
  object-fit: contain;
  vertical-align: middle;
}

/* FV：カード名称のフォントサイズ拡大 */
.p-hero__raw-card-name--lg {
  font-size: 13.5px !important;
  font-weight: 700;
  color: #0F2D4A;
}

/* SAISON MILE CLUB サービス紹介ボックス */
.p-smc-intro {
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 30px 36px;
  background: linear-gradient(135deg, #FFFFFF 0%, #F4FAF9 100%);
  border: 1px solid rgba(0, 144, 168, 0.15);
  border-radius: 16px;
  margin-bottom: 32px;
  box-shadow: 0 8px 24px rgba(15, 45, 74, 0.04);
}

@media (max-width: 768px) {
  .p-smc-intro {
    flex-direction: column;
    text-align: center;
    padding: 24px 18px;
    gap: 16px;
  }
}

.p-smc-intro__logo-wrap {
  flex-shrink: 0;
}

.p-smc-intro__logo {
  max-width: 220px;
  height: auto;
}

.p-smc-intro__content {
  flex: 1;
}

.p-smc-intro__subtag {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: #0090A8;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.p-smc-intro__title {
  font-family: 'Montserrat', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #0F2D4A;
  letter-spacing: 0.08em;
  margin: 0 0 10px;
}

.p-smc-intro__divider {
  width: 100%;
  height: 1px;
  background: #CBD5E1;
  margin-bottom: 12px;
}

.p-smc-intro__fee {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
}

@media (max-width: 768px) {
  .p-smc-intro__fee {
    justify-content: center;
  }
}

.p-smc-intro__fee-lbl {
  font-size: 13px;
  font-weight: 700;
  color: #475569;
}

.p-smc-intro__fee-val {
  font-size: 18px;
  font-weight: 800;
  color: #0F2D4A;
}

.p-smc-intro__desc {
  font-size: 13.5px;
  color: #64748B;
  line-height: 1.6;
  margin: 0;
}

/* 「思った以上に、たくさん貯まります。」計算ブロック */
.p-smc-accumulate {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 32px 36px;
  border: 1px solid #E2E8F0;
  margin-bottom: 32px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(15, 45, 74, 0.03);
}

@media (max-width: 768px) {
  .p-smc-accumulate {
    padding: 24px 16px;
  }
}

.p-smc-accumulate__title {
  font-size: 20px;
  font-weight: 800;
  color: #0F2D4A;
  margin: 0 0 10px;
}

.p-smc-accumulate__lead {
  font-size: 14px;
  color: #475569;
  line-height: 1.7;
  margin: 0 auto 24px;
  max-width: 700px;
}

.p-smc-calc-flow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  background: #F8FAFC;
  padding: 16px 24px;
  border-radius: 12px;
  border: 1px dashed #CBD5E1;
}

.c-calc-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8px 16px;
  background: #FFFFFF;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  min-width: 120px;
}

.c-calc-item__chip {
  font-size: 11px;
  font-weight: 700;
  color: #64748B;
  margin-bottom: 4px;
}

.c-calc-item__chip--jal {
  color: #C25064;
}

.c-calc-item__chip--pt {
  color: #0090A8;
}

.c-calc-item__amount {
  font-size: 15px;
  font-weight: 700;
  color: #0F2D4A;
}

.c-calc-item__amount--bold {
  font-size: 18px;
  font-weight: 800;
  color: #0090A8;
}

.c-calc-arrow {
  display: flex;
  align-items: center;
}

.c-calc-operator {
  font-size: 20px;
  font-weight: 800;
  color: #94A3B8;
  padding: 0 6px;
}

/* ファミリーカード：水平写真 ＆ すっきり年会費バッジ */
.p-family-editorial__img-frame--straight {
  transform: none !important;
  box-shadow: 0 12px 32px rgba(15, 45, 74, 0.08) !important;
  border-radius: 16px;
  overflow: hidden;
}

.p-family-editorial__badge--clean {
  position: absolute;
  bottom: 16px;
  right: 16px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  padding: 14px 20px;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(15, 45, 74, 0.12);
  border: 1px solid rgba(0, 144, 168, 0.2);
  text-align: center;
}

/* 追従CTA：中央配置 ＆ ボタンのみ */
.p-floating-cta__inner--center {
  justify-content: center !important;
  padding: 8px 20px;
}

.p-floating-cta__action--center {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
}

.p-floating-cta__btn {
  width: 100% !important;
  max-width: 380px;
  padding: 13px 32px;
  font-size: 16px;
}

@media (max-width: 768px) {
  .p-floating-cta__inner--center {
    padding: 0 16px;
  }
  .p-floating-cta__btn {
    max-width: 100%;
    padding: 13px 20px;
  }
}

/* ==========================================================================
   パターンC メインビジュアル (Hero Section - Pattern C: 人物背景全幅 ＆ 最適配置)
   ========================================================================== */
/* ヒーロー外側ラッパー */
.p-hero-wrapper {
  position: relative;
  width: 100%;
  background: #FFFFFF;
  overflow: hidden;
}

.p-hero--pattern-c {
  position: relative;
  overflow: hidden;
  background-color: #EAE5E1;
  background-image: url('https://img2.mwed.jp/pr/amlp/assets/images/fv_hero_pc_bg.jpg');
  background-repeat: no-repeat;
  /* 上下に絶対に余白ができないよう cover を適用 */
  background-size: cover;
  background-position: left 120px center;
  min-height: 680px;
  max-height: 840px;
  width: 100%;
  margin: 0 auto;
  padding: 16px 20px 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

/* メインビジュアル全幅：画像全面にぴったり重なるティファニーブルーのオーバーレイ */
.p-hero--pattern-c::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(129, 216, 208, 0.22) 0%, rgba(160, 232, 228, 0.14) 40%, rgba(129, 216, 208, 0.05) 100%);
  pointer-events: none;
  z-index: 2;
}

/* スマホ専用ビジュアル（PCでは非表示） */
.p-hero__sp-visual {
  display: none;
}

/* 2. コンテナ：右側にオファーカラムを配置 */
.p-hero--pattern-c .p-hero__container {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  max-width: 1360px;
  min-height: 680px;
  margin: 0 auto;
  padding: 0 20px 0 10px;
  background: transparent;
}

/* 3. メインオファーカラム：右側に端正に配置し、新郎との距離を常に美しく保持 */
.p-hero__main-col {
  width: 53%;
  max-width: 650px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: 0 0 0 auto;
}

/* 4. タイアップヘッダー */
.p-hero-c__tieup {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}

.p-hero-c__sparkle {
  color: #DFB76C;
  font-size: 14px;
}

.p-hero-c__tieup-text {
  font-size: clamp(14px, 1.2vw, 16px);
  font-weight: 700;
  color: #257D8E;
  letter-spacing: 0.08em;
}

/* カード券面ボックス：上部にコンパクトに配置 */
.p-hero-c__card-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: 4px 0 8px;
  width: 100%;
}

.p-hero-c__card-img {
  width: clamp(124px, 11.5vw, 150px);
  height: auto;
  border-radius: 7px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16), 0 2px 5px rgba(15, 23, 42, 0.06);
  transition: transform 0.3s ease;
}

.p-hero-c__card-img:hover {
  transform: translateY(-2px);
}

.p-hero-c__card-meta {
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.p-hero-c__card-name {
  font-size: clamp(11px, 1.05vw, 13px);
  font-weight: 700;
  color: #1E293B;
  line-height: 1.3;
  text-align: center;
  white-space: nowrap;
}

.p-hero-c__card-fee {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  color: #475569;
  margin-top: 1px;
  letter-spacing: 0.02em;
  text-align: center;
}

/* 5. ＼ 今なら 新規ご入会＆ご利用で ／（1行で確実に収める） */
.p-hero-c__lead {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 0.8vw, 11px);
  margin-bottom: 3px;
  white-space: nowrap;
  width: 100%;
}

.p-hero-c__slash {
  font-size: clamp(20px, 2.0vw, 25px);
  color: #72C0CB;
  font-weight: 300;
  flex-shrink: 0;
}

.p-hero-c__imanara {
  font-family: 'Shippori Mincho', 'Klee One', 'Noto Serif JP', serif;
  font-size: clamp(25px, 2.4vw, 33px);
  font-weight: 600;
  color: #217282;
  letter-spacing: 0.06em;
  line-height: 1.1;
  white-space: nowrap;
  flex-shrink: 0;
}

.p-hero-c__sublead {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(17px, 1.65vw, 23px);
  font-weight: 800;
  color: #1E293B;
  letter-spacing: 0.02em;
  line-height: 1.1;
  white-space: nowrap;
  flex-shrink: 0;
}

/* 6. Amazonギフトカード */
.p-hero-c__brand {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 3px 0 7px;
}

.p-hero-c__brand-name {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(25px, 2.6vw, 35px);
  font-weight: 900;
  color: #173752;
  letter-spacing: 0.04em;
  line-height: 1.1;
}

/* 7. リボン帯 */
.p-hero-c__ribbon-wrap {
  margin-bottom: 6px;
  position: relative;
  display: inline-flex;
  justify-content: center;
  width: 100%;
}

.p-hero-c__ribbon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(135deg, #E0F4F7 0%, #D0EFF3 50%, #C4ECF2 100%);
  border: 1px solid #72C0CB;
  padding: 5px clamp(16px, 2.2vw, 28px);
  border-radius: 40px;
  box-shadow: 0 2px 8px rgba(37, 125, 142, 0.1);
}

.p-hero-c__ribbon-text {
  font-size: clamp(12.5px, 1.15vw, 14.5px);
  font-weight: 700;
  color: #165663;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.p-hero-c__ribbon-heart {
  font-size: 13px;
}

/* 8. 10万円プレゼント：縦を抑えつつ迫力を維持 */
.p-hero-c__amount-box--standalone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 1vw, 12px);
  margin: 4px 0 8px;
  width: 100%;
}

.p-hero-c__amount-box {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.p-hero-c__num-10 {
  display: inline-block;
  font-family: 'Playfair Display', 'Didot', 'Times New Roman', serif;
  font-size: clamp(76px, 7.6vw, 104px);
  font-weight: 700;
  font-style: italic;
  line-height: 0.9;
  letter-spacing: -0.02em;
  padding: 2px 4px;
  margin: -26px 0 0 0;
  background: linear-gradient(160deg, #5B9CB0 0%, #2A7287 45%, #185263 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 3px 8px rgba(24, 82, 99, 0.18));
}

.p-hero-c__amount-labels {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  justify-content: center;
  gap: 2px;
}

.p-hero-c__man-row {
  display: flex;
  align-items: center;
  gap: 4px;
  line-height: 1.1;
}

.p-hero-c__man-text {
  font-family: 'Noto Serif JP', 'Shippori Mincho', serif;
  font-size: clamp(23px, 2.3vw, 31px);
  font-weight: 700;
  color: #173752;
  letter-spacing: 0.04em;
}

.p-hero-c__gold-star {
  color: #E2B755;
  font-size: clamp(18px, 1.8vw, 23px);
  line-height: 1;
  display: inline-block;
  transform: rotate(8deg);
}

.p-hero-c__present-text {
  font-family: 'Noto Serif JP', 'Shippori Mincho', serif;
  font-size: clamp(29px, 3.0vw, 40px);
  font-weight: 800;
  color: #173752;
  letter-spacing: 0.05em;
  margin: 0;
  line-height: 1.1;
}

/* 9. 達成条件 */
.p-hero-c__condition {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.p-hero-c__cond-badge {
  background: #257D8E;
  color: #FFFFFF;
  font-size: 12px;
  font-weight: 700;
  padding: 3px 11px;
  border-radius: 4px;
  letter-spacing: 0.04em;
  line-height: 1.2;
}

.p-hero-c__cond-text {
  font-size: clamp(13px, 1.15vw, 14.5px);
  color: #334155;
  margin: 0;
  line-height: 1.35;
}

.p-hero-c__cond-price {
  font-size: 1.15em;
  font-weight: 800;
  color: #257D8E;
}

/* 10. アクション行：キャンペーン期間 ＆ お申し込みボタン */
.p-hero-c__action-stacked {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
}

.p-hero-c__period-plate--large {
  background: linear-gradient(180deg, #257D8E 0%, #174E59 100%);
  border-radius: 10px;
  padding: 8px 24px 9px;
  color: #FFFFFF;
  text-align: center;
  box-shadow: 0 6px 18px rgba(23, 78, 89, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.3);
  margin-bottom: 8px;
  width: 100%;
  max-width: 460px;
}

.p-hero-c__period-title {
  display: block;
  font-size: 11.5px;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  padding-bottom: 3px;
  margin-bottom: 4px;
  font-weight: 600;
}

.p-hero-c__period-dates {
  font-family: 'Playfair Display', 'Noto Serif JP', serif;
  font-size: clamp(15px, 1.35vw, 17.5px);
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.p-hero-c__period-dates small {
  font-size: 11.5px;
  font-family: 'Noto Sans JP', sans-serif;
  margin: 0 1px;
}

.p-hero-c__period-tilde {
  margin: 0 3px;
  opacity: 0.8;
}

.p-hero-c__cta-wrap--full {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.p-hero-c__cta-btn {
  background: linear-gradient(180deg, #D5A44E 0%, #BA8933 100%) !important;
  border-radius: 9999px !important;
  padding: 13px 44px !important;
  font-size: clamp(16.5px, 1.45vw, 19px) !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  box-shadow: 0 6px 20px rgba(186, 137, 51, 0.4) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  transition: all 0.25s ease !important;
  border: none !important;
  cursor: pointer !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
  width: 100%;
  max-width: 460px;
}

.p-hero-c__cta-btn:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 10px 26px rgba(186, 137, 51, 0.48) !important;
}

.p-hero-c__cta-micro {
  font-size: 11px;
  color: #64748B;
  margin-top: 3px;
}

/* メインビジュアル最下部の全幅波ディバイダー */
.p-hero__bottom-divider {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: clamp(35px, 4vw, 55px);
  z-index: 15;
  pointer-events: none;
  overflow: hidden;
  line-height: 0;
}

.p-hero__bottom-wave {
  display: block;
  width: 100%;
  height: 100%;
}


/* 大画面ディスプレイ（1500px以上）：新郎新婦を適度に寄せつつ被りを完全解消 */
@media (min-width: 1501px) {
  .p-hero--pattern-c {
    background-position: left 220px center !important;
  }
}

@media (min-width: 1800px) {
  .p-hero--pattern-c {
    background-position: left 340px center !important;
  }
}

/* 中小画面（ノートPC・小型デスクトップ: 961px〜1200px）：テキストと新郎新婦の被りを防止 */
@media (min-width: 961px) and (max-width: 1200px) {
  .p-hero--pattern-c {
    background-position: left 0px center !important;
  }
  .p-hero__main-col {
    width: 53% !important;
    max-width: 540px !important;
  }
}

/* ==========================================================================
   パターンC レスポンシブ対応 (Tablet & Mobile: 画面いっぱい ＆ 迫力のある文字サイズ)
   ========================================================================== */
@media (max-width: 960px) {
  .p-hero-wrapper {
    background:
      linear-gradient(180deg, rgba(129, 216, 208, 0.12) 0%, rgba(129, 216, 208, 0.03) 60%, rgba(255, 255, 255, 0) 100%),
      #FFFFFF !important;
  }

  .p-hero--pattern-c {
    flex-direction: column;
    background: transparent !important;
    padding: 0 0 28px !important;
    min-height: auto !important;
    max-height: none !important;
    max-width: 100% !important;
  }

  .p-hero--pattern-c .p-hero__container {
    background-image: none !important;
    min-height: auto !important;
  }

  .p-hero--pattern-c::before {
    display: none;
  }


  /* スマホ専用ビジュアル：画像の周りに余白をつけず、画面幅100%いっぱいに表示 */
  .p-hero__sp-visual {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    overflow: hidden;
    position: relative;
    box-shadow: none !important;
  }

  .p-hero__sp-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(129, 216, 208, 0.14) 0%, rgba(129, 216, 208, 0.05) 100%);
    pointer-events: none;
  }

  .p-hero__sp-visual-img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 0 !important;
  }

  /* コンテナ：左右余白を適切に取り、画面からはみ出さないように */
  .p-hero--pattern-c .p-hero__container {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 0 10px !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }

  .p-hero__main-col {
    margin: 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    align-items: center !important;
    text-align: center !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  /* スマホの文字サイズを全体的に大きく視認性・迫力アップ */
  .p-hero-c__tieup {
    margin-bottom: 4px;
    gap: 6px;
    justify-content: center;
  }

  .p-hero-c__sparkle {
    font-size: 14px;
  }

  .p-hero-c__tieup-text {
    font-size: clamp(12.5px, 3.5vw, 14.5px);
    letter-spacing: 0.05em;
  }

  .p-hero-c__lead {
    margin-bottom: 3px;
    gap: 6px;
    justify-content: center;
    white-space: nowrap;
    width: 100%;
  }

  .p-hero-c__slash {
    font-size: clamp(16px, 4.5vw, 22px);
    flex-shrink: 0;
  }

  .p-hero-c__imanara {
    font-size: clamp(22px, 6.2vw, 29px);
    letter-spacing: 0.05em;
    white-space: nowrap;
    flex-shrink: 0;
  }

  .p-hero-c__sublead {
    font-size: clamp(14px, 4.0vw, 18.5px);
    letter-spacing: 0.01em;
    white-space: nowrap;
    flex-shrink: 0;
  }

  .p-hero-c__brand {
    margin: 3px 0 8px;
    justify-content: center;
  }

  .p-hero-c__brand-name {
    font-size: clamp(22px, 6.2vw, 26px);
  }

  .p-hero-c__ribbon-wrap {
    margin-bottom: 10px;
    max-width: 100%;
    width: 100%;
    padding: 0 6px;
    text-align: center;
    box-sizing: border-box;
  }

  .p-hero-c__ribbon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: 5px clamp(12px, 3.5vw, 24px);
    box-sizing: border-box;
  }

  .p-hero-c__ribbon-text {
    font-size: clamp(11px, 3.1vw, 13.5px);
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .p-hero-c__ribbon-heart {
    font-size: 13px;
    margin-left: 3px;
  }

  /* 10万円プレゼントとカード券面横並び：大迫力かつ見切れゼロの黄金比率 */
  .p-hero-c__offer-row {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: clamp(6px, 2vw, 12px);
    margin: 6px 0 14px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0 4px;
  }

  .p-hero-c__amount-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin: 6px 0 10px;
    width: 100%;
  }

  .p-hero-c__num-10 {
    font-size: clamp(64px, 18vw, 86px);
    line-height: 0.92;
    padding: 2px 4px;
    margin-top: -12px;
    margin-left: 0;
  }

  .p-hero-c__amount-labels {
    gap: 2px;
    padding-top: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
  }

  .p-hero-c__man-row {
    display: flex;
    align-items: center;
    gap: 4px;
    line-height: 1.1;
  }

  .p-hero-c__man-text {
    font-family: 'Noto Serif JP', 'Shippori Mincho', serif;
    font-size: clamp(19px, 5.2vw, 25px);
    line-height: 1.1;
    white-space: nowrap;
  }

  .p-hero-c__gold-star {
    font-size: clamp(14px, 3.8vw, 19px);
  }

  .p-hero-c__present-text {
    font-family: 'Noto Serif JP', 'Shippori Mincho', serif;
    font-size: clamp(23px, 6.4vw, 32px);
    margin-top: 0;
    line-height: 1.1;
    white-space: nowrap;
  }

  .p-hero-c__card-box {
    flex-shrink: 0;
    max-width: clamp(98px, 26vw, 126px);
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .p-hero-c__card-img {
    width: clamp(96px, 25vw, 122px);
    height: auto;
    transform: none;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.16);
  }

  .p-hero-c__card-meta {
    margin-top: 3px;
    text-align: center;
  }

  .p-hero-c__card-name {
    font-size: clamp(8.5px, 2.3vw, 10px);
    line-height: 1.25;
    display: block;
    white-space: nowrap;
  }

  .p-hero-c__condition {
    margin-bottom: 12px;
    gap: 6px;
    justify-content: center;
  }

  .p-hero-c__cond-badge {
    font-size: 12px;
    padding: 3px 10px;
  }

  .p-hero-c__cond-text {
    font-size: 14px;
  }

  .p-hero-c__action-row {
    flex-direction: column;
    gap: 8px;
    width: 100%;
    align-items: center;
    justify-content: center;
  }

  .p-hero-c__period-plate {
    width: 100%;
    max-width: 360px;
    padding: 8px 16px;
  }

  .p-hero-c__period-title {
    font-size: 11.5px;
  }

  .p-hero-c__period-dates {
    font-size: 16px;
  }

  .p-hero-c__cta-wrap {
    width: 100%;
    max-width: 360px;
  }

  .p-hero-c__cta-btn {
    width: 100% !important;
    justify-content: center !important;
    padding: 14px 24px !important;
    font-size: 18.5px !important;
  }

  .p-hero-c__cta-micro {
    font-size: 11px;
    margin-top: 5px;
  }
}

/* 極小スマホ（iPhone SE / 幅375px以下）での見切れ完全防止 */
@media (max-width: 375px) {
  .p-hero--pattern-c .p-hero__container {
    padding: 0 6px !important;
  }

  .p-hero-c__ribbon-wrap {
    padding: 0 2px;
  }

  .p-hero-c__ribbon {
    padding: 4px 14px;
  }

  .p-hero-c__ribbon-text {
    font-size: 11px;
  }

  .p-hero-c__offer-row {
    gap: 4px;
    padding: 0;
  }

  .p-hero-c__num-10 {
    font-size: 64px;
    margin-top: -10px;
    padding: 2px 2px;
  }

  .p-hero-c__man-text {
    font-size: 17px;
  }

  .p-hero-c__gold-star {
    font-size: 12px;
  }

  .p-hero-c__present-text {
    font-size: 19px;
  }

  .p-hero-c__card-box {
    max-width: 95px;
  }

  .p-hero-c__card-img {
    width: 92px;
  }

  .p-hero-c__card-name {
    font-size: 8px;
  }

  .p-hero-c__cond-text {
    font-size: 12.5px;
  }
}






/* 特典セクション・注記スタイル */
.c-zigzag-row__notes,
.c-perk-subcard__notes {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed rgba(0, 144, 168, 0.2);
}

.c-zigzag-row__note,
.c-perk-subcard__note {
  font-size: 11.5px;
  color: #64748B;
  line-height: 1.6;
  margin: 0 0 4px;
}

.p-destination-box__note {
  font-size: 11.5px;
  color: #64748B;
  line-height: 1.6;
  margin-top: 18px;
  padding: 0 8px;
}
