/* ---- 0. 会員限定印 ---- */
.zenplace-members-only {
  padding:16px;
  background-color:#70c9e2;
  text-align: center;
}
.zenplace-members-only span {
  padding:12px 36px;
  border:1px solid #fff;
  border-radius: 32px;
  color:#fff;
}

/* ---- 1. ベースリセット ---- */
:root { font-size: 16px; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; }
a { color: #347C94; }
a:hover { color: #263238; }

/* ---- 2. タイポグラフィ（#zenplace-measurement-campaign スコープ内） ---- */
#zenplace-measurement-campaign > div {
  font-size: 16px;
  line-height: 1.8;
  color: #333333;
  font-family: 'LINE Seed JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif;
}
#zenplace-measurement-campaign h1,
#zenplace-measurement-campaign h2,
#zenplace-measurement-campaign h3 {
  margin: 0;
  letter-spacing: .025em;
  overflow-wrap: anywhere;
  font-family: 'Shippori Mincho', serif;
  font-weight: 800;
}
#zenplace-measurement-campaign h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 1.2; }
#zenplace-measurement-campaign h2 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); line-height: 1.35; }
#zenplace-measurement-campaign h3 { margin: 0; font-size: 20px; font-weight: 700; font-family: inherit; }
#zenplace-measurement-campaign p { margin: 0; line-height: 1.85; }
#zenplace-measurement-campaign a { text-decoration: none; transition: opacity .15s ease; }
#zenplace-measurement-campaign a:hover { opacity: .88; }

/* ---- 3. レイアウト用ユーティリティクラス ---- */
.mc-root {
  background: #F3FAFC;
  color: #263238;
}
.mc-section--dark { background: #263238; color: #FFFFFF; }
.mc-section--white { background: #FFFFFF; }

.mc-section-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 72px 24px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.mc-heading-group { display: flex; flex-direction: column; gap: 8px; }
.mc-eyebrow { font-size: 14px; font-weight: 700; letter-spacing: .2em; }
.mc-eyebrow--brand { color: #347C94; }
.mc-eyebrow--on-dark { color: #FFFFFF; }

.mc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--mc-grid-min, 260px), 1fr));
  gap: 16px;
}
.mc-grid--wide { gap: 24px; }

.mc-card {
  background: #FFFFFF;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mc-card-tag { font-size: 13px; font-weight: 700; color: #61747A; }
.mc-card-title { font-size: 18px; font-weight: 700; }
.mc-card p { font-size: 15px; }
.mc-badge-new {
  color: #FFFFFF;
  background: #FF5395;
  padding: 1px 6px;
  font-size: 13px;
  font-weight: 700;
}

.mc-group-title {
  color: #347C94;
  border-bottom: 1px solid #347C94;
  padding-bottom: 8px;
}
.mc-measure-group { display: flex; flex-direction: column; gap: 16px; }

.mc-step {
  display: flex;
  flex-direction: column;
  gap: 6px;
  border-top: 2px solid #263238;
  padding-top: 16px;
}
.mc-step--pad18 { gap: 8px; padding-top: 18px; }
.mc-step-num {
  font-family: 'Shippori Mincho', serif;
  font-weight: 800;
  color: #347C94;
}
.mc-step-num--xl { font-size: 32px; }
.mc-step-num--lg { font-size: 28px; }
.mc-step-title { font-size: 18px; font-weight: 700; }
.mc-step p { font-size: 15px; }

/* ---- hero（ファーストビュー）専用 ---- */
.mc-hero {
  max-width: 1120px;
  margin: 0 auto;
  padding: 48px 24px 72px;
  display: flex;
  flex-wrap: wrap;
  gap: 48px;
}
.mc-hero-main {
  flex: 999 1 520px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.mc-period-badge {
  align-self: flex-start;
  background: #347C94;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.06em;
  padding: 6px 14px;
}
.mc-hero-lead { font-size: 18px; max-width: 34rem; }
.mc-hero-price-box {
  flex: 1 1 300px;
  background: #263238;
  color: #FFFFFF;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mc-hero-price-bnr {
  flex: 1 1 300px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mc-hero-price-bnr img {
  max-width: 360px;
}
.mc-hero-price-label { font-size: 15px; letter-spacing: 0.06em; }
.mc-hero-note { font-size: 14px; }

/* ---- 価格表示（hero／PRICEセクション共通） ---- */
.mc-price-amount-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.mc-price-amount {
  font-family: 'Shippori Mincho', serif;
  font-weight: 800;
  font-size: 4rem;
  line-height: 1;
}
.mc-price-amount--brand { color: #347C94; }
.mc-price-unit { font-size: 24px; font-weight: 700; }
.mc-price-tax { font-size: 15px; }

.mc-price-layout { display: flex; flex-wrap: wrap; gap: 32px; align-items: stretch; }
.mc-price-list { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; }
.mc-price-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid #61747A;
}
.mc-price-row:last-child { border-bottom: none; }
.mc-price-row--total { color: #FFFFFF; font-weight: 700; }
.mc-price-note { font-size: 14px; color: #FFFFFF; }
.mc-price-value { font-size: 20px; font-weight: 700; white-space: nowrap; }
.mc-price-callout {
  flex: 1 1 300px;
  background: #F3FAFC;
  color: #263238;
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}
.mc-price-callout-label { font-size: 16px; font-weight: 700; }
.mc-price-callout-text { font-size: 16px; }

.mc-schedule-intro { font-size: 16px; }
.mc-schedule-item {
  border-top: 1px solid #F3FAFC;
  padding-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mc-schedule-num { font-size: 13px; font-weight: 700; color: #FFFFFF; }
.mc-schedule-place { font-size: 22px; font-weight: 700; }
.mc-schedule-place a { color:#70c9e2; }
.mc-schedule-place a:hover { padding-bottom:4px; border-bottom:1px solid #70c9e2; }
.mc-schedule-date { font-size: 16px; }

.mc-overview-table { display: flex; flex-direction: column; background: #FFFFFF; }
.mc-overview-row {
  display: flex;
  flex-wrap: wrap;
  border-bottom: 1px solid #D7E6EB;
  padding: 18px 24px;
  gap: 4px 24px;
}
.mc-overview-row:last-child { border-bottom: none; }
.mc-overview-label { flex: 0 0 140px; font-weight: 700; }
.mc-overview-value { flex: 1 1 260px; }

.mc-final-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
  padding-top: 16px;
}
.mc-final-headline {
  font-family: 'Shippori Mincho', serif;
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 800;
}
.mc-disclaimer { font-size: 13px; color: #61747A; }

/* 予約開始前のCTA: 3箇所とも意図的に非活性（クリック不可）です */
.booking-coming-soon {
  cursor: default !important;
  pointer-events: none;
  opacity: 1 !important;
  white-space: normal;
  text-align: center;
  text-decoration: none;
  font-weight: 700;
}
.booking-coming-soon .coming-soon-sub {
  display: block;
  font-size: .78em;
  letter-spacing: .07em;
  font-weight: 600;
  margin-top: 2px;
}
.mc-cta--hero {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  background: #F3FAFC;
  color: #263238;
}
.mc-cta--final {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 48px;
  background: #347C94;
  color: #FFFFFF;
  font-size: 18px;
}

/* ---- 4. ファーストビュー背景（ライン画像＋グラデーション） ---- */
#zenplace-measurement-campaign #measurement-fv-hero {
  position: relative;
  isolation: isolate;
  overflow: visible;
  align-items: flex-end;
  min-height: 450px;
}
#zenplace-measurement-campaign #measurement-fv-hero::before,
#zenplace-measurement-campaign #measurement-fv-hero::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  pointer-events: none;
}
#zenplace-measurement-campaign #measurement-fv-hero::before {
  z-index: -2;
  background-image: url("../img/hero-fv-bg.webp");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: .98;
}
#zenplace-measurement-campaign #measurement-fv-hero::after {
  z-index: -1;
  background: linear-gradient(90deg,
    rgba(248,252,254,.94) 0%,
    rgba(248,252,254,.82) 25%,
    rgba(248,252,254,.43) 46%,
    rgba(248,252,254,.04) 72%,
    rgba(248,252,254,0) 100%);
}
#zenplace-measurement-campaign #measurement-fv-hero > div:first-child {
  position: relative;
  z-index: 1;
}

/* ---- 5. レスポンシブ ---- */
@media (max-width: 767px) {
  #zenplace-measurement-campaign > div { font-size: 15px; line-height: 1.8; }
  #zenplace-measurement-campaign section > div { min-width: 0; }
  #zenplace-measurement-campaign h1 { font-size: clamp(34px, 9vw, 48px); line-height: 1.3; }
  #zenplace-measurement-campaign h2 { font-size: clamp(25px, 6.5vw, 33px); line-height: 1.35; }
  #zenplace-measurement-campaign h3 { font-size: clamp(18px, 5vw, 23px); }
  #zenplace-measurement-campaign p { font-size: 15px; line-height: 1.85; }
  #zenplace-measurement-campaign section { overflow-wrap: anywhere; }

  #zenplace-measurement-campaign #measurement-fv-hero { min-height: 0; }
  #zenplace-measurement-campaign #measurement-fv-hero::before {
    background-position: 72% center;
    opacity: .76;
  }
  #zenplace-measurement-campaign #measurement-fv-hero::after {
    background: linear-gradient(90deg, rgba(248,252,254,.88), rgba(248,252,254,.48));
  }
  .mc-hero-price-bnr img {
    max-width: 100%;
  }
}
/* ---- 6. 最下部バナー（PC／SP出し分け） ---- */
.mc-bottom-banner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 36px 24px 72px 24px;
}
.mc-bottom-banner img {
  display: block;
  width: 100%;
  height: auto;
}
.mc-bottom-banner img.mc-bottom-banner__sp { display: none; }
@media (max-width: 767px) {
  .mc-bottom-banner { padding:24px 0;}
  .mc-bottom-banner img.mc-bottom-banner__pc { display: none; }
  .mc-bottom-banner img.mc-bottom-banner__sp { display: block; }
}
