:root{
  --haru-radius: 16px;
  --haru-shadow: 0 14px 40px rgba(0,0,0,.14);
  --haru-accent: #06C755; /* LINE */
  --haru-text: #111;
  --haru-cta-h: 56px;
}

/* ===== モバイル固定CTA ===== */
.haru-sticky-cta{
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 10px;
  z-index: 9999;
}
.haru-sticky-cta--single{ grid-template-columns: 1fr; }

.haru-sticky-cta__btn{
  min-height: var(--haru-cta-h);
  padding: 10px 12px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: var(--haru-radius);
  box-shadow: var(--haru-shadow);
  text-decoration: none;
  font-weight: 900;
  letter-spacing: .02em;
  background: #fff;
  color: var(--haru-text);
  border: 1px solid rgba(0,0,0,.10);
  text-align: center;
  line-height: 1.15;
}

.haru-sticky-cta__btn.is-primary{
  background: var(--haru-accent);
  color: #fff;
  border-color: transparent;
}

.haru-sticky-cta__sub{
  display:block;
  font-size: 11px;
  font-weight: 800;
  opacity: .92;
  margin-top: 3px;
  line-height: 1.2;
}

/* PCは非表示 */
@media (min-width: 960px){
  .haru-sticky-cta{ display:none; }
}

/* 既存の固定UIと干渉しないよう余白を確保 */
@media (max-width: 959px){
  body{ padding-bottom: calc(var(--haru-cta-h) + 64px + env(safe-area-inset-bottom)); }
}

/* ===== Contact Hero（ファーストビュー最適化） ===== */
.haru-hero{
  margin: 18px 0 18px;
  background: linear-gradient(135deg, rgba(6,199,85,.10), rgba(255,255,255,1));
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 20px;
  box-shadow: var(--haru-shadow);
  overflow: hidden;
}
.haru-hero__inner{ padding: 18px 16px 18px; }

.haru-hero__pill{
  display: inline-block;
  font-weight: 900;
  font-size: 12px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(6,199,85,.12);
  color: rgba(0,0,0,.72);
  margin: 0 0 10px;
}

.haru-hero__title{
  margin: 0 0 8px;
  font-size: 22px;
  letter-spacing: .01em;
}

.haru-hero__lead{
  margin: 0 0 12px;
  line-height: 1.8;
  color: rgba(0,0,0,.80);
}

.haru-hero__steps{
  margin: 0 0 14px;
  padding-left: 18px;
  line-height: 1.8;
}

.haru-hero__cta{
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 10px;
  align-items: center;
}

/* ボタン */
.haru-btn{
  height: 50px;
  border-radius: 16px;
  font-weight: 900;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  color: #111;
  padding: 0 12px;
  text-align: center;
  white-space: normal;
  line-height: 1.15;
}
.haru-btn--primary{
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  background: var(--haru-accent);
  color:#fff;
  border-color: transparent;
  box-shadow: 0 10px 26px rgba(6,199,85,.25);
}
.haru-btn--xl{ height: 56px; }

.haru-btn__sub{
  display:block;
  font-size: 11px;
  font-weight: 800;
  opacity: .92;
  margin-left: 10px;
}

.haru-btn--ghost{
  cursor:pointer;
  background:#fff;
}

.haru-hero__note{
  margin: 10px 0 0;
  font-size: 12px;
  color: rgba(0,0,0,.60);
}

/* 狭い画面では縦積み */
@media (max-width: 420px){
  .haru-hero__cta{ grid-template-columns: 1fr; }
  .haru-btn--ghost{ height: 48px; }
}

/* ===== 折りたたみ（詳細手順） ===== */
.haru-details{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}
.haru-details__summary{
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 900;
}
.haru-details__body{
  padding: 4px 16px 14px;
}

/* ========= TOP FV（メインビジュアル）洗練 ========= */

/* タイトル・サブタイトルの可読性UP（上品な影） */
#main_visual .p-mainVisual__slideTitle,
#main_visual .p-mainVisual__slideText{
  text-shadow: 0 6px 22px rgba(0,0,0,.18);
}

/* FVのボタンを“主役”に（LINEグリーン＋影） */
#main_visual .c-mvBtn__btn{
  background: #06C755 !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 14px 34px rgba(6,199,85,.28) !important;
  font-weight: 900 !important;
  padding: 14px 18px !important;
  border-radius: 16px !important;
}

/* ボタン下に補足（迷いゼロ） */
#main_visual .c-mvBtn__btn::after{
  content: "（「撮影希望」を送る）";
  display: block;
  font-size: 12px;
  font-weight: 800;
  opacity: .92;
  margin-top: 4px;
}