@charset "utf-8";

/* 共通 */
:root {
  --mls-content-max: 550px;
  --mls-content-pad: 15px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* 文字組み：プロポーショナル（palt）で見た目を整える（対応フォントのみ有効） */
body {
  font-feature-settings: "palt";
  font-variant-east-asian: proportional-width;
  font-kerning: normal;
}

.max_w_1024 {
  max-width: var(--mls-content-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--mls-content-pad);
  padding-right: var(--mls-content-pad);
}

.max_w_470 {
  max-width: var(--mls-content-max);
  margin-right: auto;
  margin-left: auto;
  padding-left: var(--mls-content-pad);
  padding-right: var(--mls-content-pad);
}

.flex_center {
  display: flex;
  justify-content: center;
  align-items: center;
}

/* 本文テキスト：両端揃え（ボタン/見出し等は個別CSSで上書き） */
main p,
main li,
main dd {
  text-align: justify;
  text-justify: inter-ideograph;
}

header .header_wrapper {
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
}

header .gnav--open {
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
}

/* メニュー展開時：ロゴ（ヘッダー）とメニューの境界に影ライン */
body.gnav-is-open header .header_wrapper {
  position: relative;
  z-index: 5;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.14);
}

/* トップMV上：3ボタンCTA */
.mv {
  position: relative;
}

.mv__cta {
  position: absolute;
  left: 50%;
  bottom: 34px;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  width: min(86vw, 420px);
  display: grid;
  gap: 14px;
  z-index: 2;
}

.mv__cta__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(211, 198, 166, 0.9);
  color: #877343;
  font-family: "Source Han Serif JP", "源ノ明朝", "Noto Serif JP", serif;
  font-size: 20px;
  letter-spacing: 0.12em;
  text-align: center;
  /* 右シェブロン分の余白を左右対称にして、文字を真正面センターへ */
  padding: 18px 52px;
  text-decoration: none;
}

.mv__cta__btn::after {
  content: "";
  width: 10px;
  height: 10px;
  position: absolute;
  top: 50%;
  right: 18px;
  background: none;
  background-image: none;
  border-right: 1px solid #877343;
  border-bottom: 1px solid #877343;
  transform: translateY(-50%) rotate(-45deg);
  -webkit-transform: translateY(-50%) rotate(-45deg);
  -ms-transform: translateY(-50%) rotate(-45deg);
  opacity: 0.9;
}

@media screen and (max-height: 740px) {
  .mv__cta {
    bottom: 22px;
    gap: 10px;
  }

  .mv__cta__btn {
    padding-top: 14px;
    padding-bottom: 14px;
  }
}

/* ハンバーガーメニュー（画像→テキスト） */
header .gnav .link a.gnav__item {
  padding: 0 30px;
  position: relative;
  padding-right: 48px; /* 右端シェブロンの分 */
}

header .gnav .link a.gnav__item::after {
  content: "";
  width: 14px;
  height: 14px;
  background: none;
  background-image: none;
  position: absolute;
  top: 50%;
  right: 28px;
  border: none;
  border-right: 1px solid #54482A;
  border-bottom: 1px solid #54482A;
  transform-origin: center;
  transform: translateY(-50%) rotate(-45deg);
  -webkit-transform: translateY(-50%) rotate(-45deg);
  -ms-transform: translateY(-50%) rotate(-45deg);
  opacity: 0.9;
}

header .gnav__en {
  font-family: "Libre Baskerville", serif;
  font-size: 30px;
  line-height: 1.05;
  letter-spacing: 0.02em;
  color: #54482A;
  display: block;
}

header .gnav__jp {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.08em;
  color: #54482A;
  display: block;
  margin-top: 4px;
}

header .gnav .contact_btn a,
header .gnav .family a {
  font-family: "Noto Sans JP", sans-serif;
}

/* ハンバーガーメニュー：項目間隔を詰める */
header .gnav li:nth-child(n+2) {
  margin-top: 28px;
}

header .gnav .contact_btn {
  margin-top: 34px;
}

header .gnav .family {
  margin-top: 22px;
}

/* 下部（For Family / コラム）はさらに詰める */
header .gnav li.family + li.family {
  margin-top: 12px;
}

/* 画面が低い端末向け：メニューが隠れないよう上下余白・間隔をさらに圧縮 */
@media screen and (max-height: 740px) {
  header .gnav ul {
    padding-top: 12px;
    padding-bottom: calc(env(safe-area-inset-bottom) + 24px);
  }

  header .gnav li:nth-child(n+2) {
    margin-top: 14px;
  }

  header .gnav .contact_btn {
    margin-top: 18px;
  }
}

@media screen and (max-height: 680px) {
  header .gnav__en {
    font-size: 26px;
  }

  header .gnav__jp {
    font-size: 12px;
    letter-spacing: 0.06em;
    margin-top: 0px;
  }

  header .gnav li:nth-child(n+2) {
    margin-top: 12px;
  }
}

main .links {
  margin-top: 140px;
  margin-bottom: 40px;
}

main .links .link_btn_01 {
  margin: 0 auto;
}

/* Plan: 料金プラン上部のボタン群（スクショUI） */
body.plan main .plan_menu {
  margin-top: 40px;
}

body.plan main .plan_menu__btn {
  max-width: var(--mls-content-max);
  width: 100%;
  margin: 0 auto;
  background-color: #fff;
  border: 1px solid #D3C6A6;
  color: #877343;
  font-family: "源ノ明朝", "Source Han Serif JP", "Noto Serif JP", serif;
  /* 画面幅に連動して縮小（このボタン群だけ） */
  font-size: clamp(14px, 4.6vw, 18px);
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: hidden; /* テキスト描画のはみ出しで横スクロールが発生するのを防ぐ */
  padding: 16px 34px 16px 10px;
  position: relative;
}

body.plan main .plan_menu__btn + .plan_menu__btn {
  margin-top: 14px;
}

body.plan main .plan_menu__btn::after {
  content: "";
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid #877343;
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
}

/* 1行優先：それでも収まらない幅では段階的にサイズ調整 */
@media screen and (max-width: 390px) {
  body.plan main .plan_menu__btn {
    letter-spacing: 0.02em;
    padding-right: 34px;
  }
}

@media screen and (max-width: 360px) {
  body.plan main .plan_menu__btn {
    letter-spacing: 0.01em;
  }
}

body.plan main .plan_menu__btn--solid {
  background-color: #877343;
  border-color: #877343;
  color: #fff;
}

body.plan main .plan_menu__btn--solid::after {
  border-top-color: #fff;
}

/* Plan: MV見出し（Plan / 料金プラン） */
body.plan main .ml_mv__catch {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

body.plan main .ml_mv__title {
  position: static;
  top: auto;
  left: auto;
  transform: none;
  -webkit-transform: none;
  -ms-transform: none;
  font-family: "Libre Baskerville", serif;
  font-size: 40px;
  line-height: 1;
  color: #505050;
}

body.plan main .ml_mv__subtitle {
  margin-top: 6px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.4;
  color: #505050;
}

/* Plan: プラン一覧の上下マージン */
body.plan main .plans {
  max-width: var(--mls-content-max);
  margin: 60px auto 140px;
}

/* Plan: 横スクロール原因になりやすい fixedヘッダーのサブピクセルはみ出し対策 */
body.plan header {
  left: 0;
  right: 0;
  width: 100%;
  transform: none;
  -webkit-transform: none;
  -ms-transform: none;
}

body.plan header .gnav {
  left: 0;
  right: 0;
  transform: none;
  -webkit-transform: none;
  -ms-transform: none;
}

/* Plan: Shooting Spot */
body.plan main .shooting_spot {
  max-width: var(--mls-content-max);
  margin: 40px auto 0;
}

body.plan main .shooting_spot__title {
  font-family: "Libre Baskerville", sans-serif;
  font-size: 40px;
  letter-spacing: 0.05em;
  color: #D3C6A6;
  text-align: center;
  line-height: 1.2;
}

body.plan main .shooting_spot__subtitle {
  margin-top: 6px;
  font-size: 16px;
  letter-spacing: 0.2em;
  color: #877343;
  text-align: center;
}

body.plan main .shooting_spot__grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px 12px;
}

body.plan main .shooting_spot__img img {
  display: block;
  width: 100%;
  height: auto;
}

body.plan main .shooting_spot__caption {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.4;
  color: #505050;
}

/* Plan: 「プラン詳細」先頭にアイコンを付与 */
body.plan main .plan__details .title {
  position: relative;
  padding-left: 30px;
  margin-bottom: 15px;
}

body.plan main .plan__details .title::before {
  content: "";
  width: 20px;
  height: 20px;
  background-color: #EAE4D5;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

body.plan main .plan__details .title {
  margin-top: 22px;
}

body.plan main .plan__details .title:first-of-type {
  margin-top: 0;
}

body.plan main .plan__details .plan__desc_lead {
  margin-top: 10px;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
}

body.plan main .plan__details .plan__desc_text {
  margin-top: 10px;
  font-size: 14px;
  line-height: 22px;
  color: #646464;
}

body.plan main .plans .plan__card__caption .up_price {
  border-bottom: none;
  padding: 0;
  margin-top: 8px;
}

body.plan main .plans .plan__media__caption .up_price {
  padding: 0;
}

body.plan main .plans .plan__card__caption .up_price::after {
  display: none;
}

body.plan main .plans .plan__card__caption .up_price::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 3px;
  background-color: #222;
  display: inline-block;
  margin-right: 8px;
  vertical-align: middle;
}

body.plan main .plans .plan__card__caption .name {
  font-family: "源ノ明朝", "Source Han Serif JP", "Noto Serif JP", serif;
  font-size: 20px;
}

body.plan main .plans .plan__card__caption .price {
  padding: 0;
  line-height: 1;
}

body.plan main .plans .plan__card__caption .price .param {
  line-height: 1;
}

/* プラン名/価格/UP料金のブロック下に区切り線（スクショの見た目） */
body.plan main .plans .plan__card__caption {
  border-bottom: 1px solid #707070;
  padding-bottom: 12px;
}

body.plan main .plans .plan__details {
  margin-top: 16px;
}

body.plan main .plan__detail_list {
  margin-top: 12px;
}

body.plan main .plan__detail_list li {
  position: relative;
  padding-left: 16px;
}

body.plan main .plan__detail_list li + li {
  margin-top: 14px;
}

body.plan main .plan__detail_list li::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 3px;
  background-color: #222;
  position: absolute;
  top: 0.6em;
  left: 0;
}

body.plan main .plan__detail_row {
  display: block;
  line-height: 1.6;
  font-size: 15px;
}

body.plan main .plan__detail_name {
  font-weight: 700;
}

body.plan main .plan__detail_price {
  margin-left: 12px;
  font-weight: 400;
}

body.plan main .plan__detail_meta {
  margin-top: 0;
  font-size: 15px;
  color: #505050;
}

body.plan main .plan__details_note {
  margin-top: 4px;
  font-size: 12px !important;
  color: #646464;
}

/* Plan: 各プランの下端に5pxボーダー */
body.plan main .plans > .plan {
  padding-bottom: 50px;
  margin-bottom: 30px;
  border-bottom: 5px solid #D3C6A6;
}

/* Plan: 2枚並びのメイン画像（ロケ＋スタジオ等） */
body.plan main .plan__card__catches--split {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

body.plan main .plan__card__catch_split {
  width: 100%;
  background-image: var(--split-img);
  background-repeat: no-repeat;
  background-size: 200% 100%;
  background-color: #f5f5f5;
  padding-top: 100%;
}

body.plan main .plan__card__catch_split--left {
  background-position: left center;
}

body.plan main .plan__card__catch_split--right {
  background-position: right center;
}

/* Plan: Options */
body.plan main .plan_options {
  max-width: var(--mls-content-max);
  margin: 0 auto 140px;
}

body.plan main .plan_options__title {
  font-family: "源ノ明朝", "Source Han Serif JP", "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.05em;
  border-bottom: 1px solid #707070;
  padding-bottom: 5px;
}

body.plan main .plan_options__list {
  margin: 0;
  padding: 0;
  margin-top: 4px;
  list-style: disc;
  list-style-position: inside;
}

body.plan main .plan_options__list li {
  padding: 0;
  margin-top: 12px;
  font-size: 14px;
  line-height: 1.9;
  color: #505050;
}

body.plan main .plan_options__list li + li {
  margin-top: 2px;
}

/* ページ内リンク：スムーズスクロール＆固定ヘッダー分のオフセット */
@supports (scroll-behavior: smooth) {
  html {
    scroll-behavior: smooth;
  }
}

body.plan main .plan[id],
body.plan main section[id] {
  scroll-margin-top: 90px; /* header(約80px) + 余白 */
}

header .header_wrapper .logo {
  max-width: 130px;
}

/* ロゴ領域の境界が分かるようにドロップシャドウ */
header .logo a {
  display: inline-block;
  background: none;
  padding: 0;
  box-shadow: none;
}

header .logo a img {
  display: block;
  /* 添付のように“画像に”影を落とす */
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.18));
}

header .header_wrapper .inner .access,
header .header_wrapper .inner .hm {
  margin-left: 18px;
}

header .tel {
  max-width: 18%;
}

header .access {
  max-width: 18%;
}

footer {
  max-width: 750px;
}

footer .share {
  max-width: 180px;
}

footer .share li {
  max-width: 50px;
}

.link-page-wrapper {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.link-page > *:last-child {
  margin-bottom: 0;
}

.link-page__list {
  margin-bottom: 8px;
}

.link-page__link {
  line-height: 1.43;
  color: #646464;
}

footer .copy_right {
  margin-top: 20px;
  color: #d3c6a6;
  line-height: 1.57;
}

.sp-space {
  width: 100%;
  max-width: var(--mls-content-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--mls-content-pad);
  padding-right: var(--mls-content-pad);
}

/* トップ Plan：背景（plan__items）は全幅、内側だけ 550px 上限に */
body.home main .plan__items.sp-space,
body.front-page main .plan__items.sp-space {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

body.home main .plan__items.sp-space > .wrapper,
body.front-page main .plan__items.sp-space > .wrapper {
  max-width: var(--mls-content-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--mls-content-pad);
  padding-right: var(--mls-content-pad);
}

.inline-block {
  display: inline-block;
}

@media screen and (min-width: 360px) {
  header .header_wrapper .logo {
    max-width: 150px;
  }
}

@media screen and (min-width: 375px) {
  .s_375_none {
    display: none;
  }
}

@media screen and (min-width: 414px) {
  header .header_wrapper .logo {
    max-width: 180px;
  }
  header .header_wrapper .inner .access,
  header .header_wrapper .inner .hm {
    margin-left: 30px;
  }
  header .tel {
    max-width: 100%;
  }
  header.access {
    max-width: 100%;
  }
  .s_414_none {
    display: none;
  }
}

@media screen and (min-width: 470px) {
  .s_470_none {
    display: none;
  }
}

/* topページ */
body {
  /*	background-image: url(../img/home/bg_01.jpg);
	background-repeat: repeat;
	background-size: cover;
	background-position: left 0 top 0;
	background-attachment: fixed;
	position: relative;
	z-index: -100;*/
  background-color: #f9f7f3;
}

body > div {
  background-color: #fff;
  padding-bottom: 1px;
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 12;
}

@media screen and (min-width: 772px) {
  body > div::before {
    content: "";
    width: 11px;
    height: 100%;
    display: block;
    background: linear-gradient(
      to right,
      #bead81 0%,
      #d3c6a6 50%,
      #d3c6a6 100%
    );
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.16);
    position: absolute;
    top: 0;
    left: 100%;
    z-index: 101;
  }

  body > div::after {
    content: "";
    width: 11px;
    height: 100%;
    display: block;
    background: linear-gradient(
      to right,
      #bead81 0%,
      #d3c6a6 50%,
      #d3c6a6 100%
    );
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.16);
    position: absolute;
    top: 0;
    right: 100%;
    z-index: 101;
  }
}

body.home main .msg {
  background-image: url(../img/home/bg_msg_01.png);
  background-size: contain;
  background-color: #f0ece1;
}

body.home main .msg__deco {
  font-family: "Dancing Script", sans-serif !important;
  font-size: 40px !important;
  font-size: 4rem !important;
}

body.home main .mv__slider__item img {
  object-position: left 23%;
}

body.home main .album__list {
  margin-left: auto;
  margin-right: auto;
}

/* トップ Album：添付デザイン寄せ（リストを・付き＋価格右寄せ、ボタン位置調整） */
body.home main .album {
  position: relative;
  /* パネル下端にボタンを半分被せるための白い余白 */
  padding-bottom: 90px;
}

/* タイトルの途中から背景パネルが始まる＝ALBUMテキストと半分被る */
body.home main .album::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  /* ALBUM(英字40px)の半分程度から背景を開始して、タイトルと被せる */
  top: 18px;
  /* ボタンが半分被る“境界”を作る */
  bottom: 60px;
  background-color: #F9F7F3;
  z-index: 0;
}

body.home main .album {
  background: none;
}

body.home main .album__catch {
  margin: 24px auto 0;
  position: relative;
  z-index: 2;
  /* 画像など“内側コンテンツ”は 550px 上限 */
  max-width: var(--mls-content-max);
  padding: 0 var(--mls-content-pad);
}

body.home main .album__title.section_title--stack {
  position: relative;
  z-index: 3;
}

/* コンテンツは背景パネルの上に載せる */
body.home main .album .wrapper {
  position: relative;
  z-index: 2;
  background: none;
  max-width: var(--mls-content-max);
  margin-left: auto;
  margin-right: auto;
  padding: 18px var(--mls-content-pad) 30px;
  margin-top: 0;
}

body.home main .album .archive_btn_01 {
  /* ボタンを下端に固定して、背景パネルの境界に半分被せる（崩れない） */
  position: absolute;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  margin: 0;
  width: min(86vw, 470px);
  z-index: 3;
}

body.home main .album__list {
  max-width: var(--mls-content-max);
  margin: 28px auto 0;
  padding: 0;
  list-style: none;
}

body.home main .album__list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  position: relative;
  padding-left: 14px;
}

body.home main .album__list li::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #505050;
  position: absolute;
  left: 0;
  top: 0.9em;
}

body.home main .album__list li:nth-child(n + 2) {
  margin-top: 12px;
}

body.home main .album__list .name {
  padding-left: 0;
}

body.home main .album__list .name::after {
  display: none;
}

body.home main .access__info .parking {
  padding-left: 9%;
}

body.home main .mv__lead span.inline-block {
  display: inline-block;
}

/* セクションタイトル（画像→テキスト） */
body.home main .section_title,
body.front-page main .section_title {
  width: 100%;
  max-width: var(--mls-content-max);
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

/* トップ News/Column セクション本体の幅（home.min.css の 410px 固定を上書き） */
body.home main .news,
body.front-page main .news {
  max-width: var(--mls-content-max) !important;
}

/* トップ Column（news.column）も同様に 550px 上限へ */
body.home main .news.column,
body.front-page main .news.column {
  max-width: var(--mls-content-max) !important;
  margin-left: auto;
  margin-right: auto;
}

/* トップ Reason：背景は全幅のまま、内側のコンテンツ（画像/見出し/本文）だけ 550px 上限に */
body.home main .recommend__point,
body.front-page main .recommend__point {
  max-width: var(--mls-content-max) !important; /* home.min.css の 470px 固定を上書き */
  margin-left: auto;
  margin-right: auto;
}

/* トップ FAQ：内側コンテンツを 550px 上限に（背景は全幅のまま） */
body.home main .faq .ml_faq_accordion,
body.front-page main .faq .ml_faq_accordion {
  width: 100%;
  max-width: var(--mls-content-max) !important;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--mls-content-pad);
  padding-right: var(--mls-content-pad);
}

/* News/Column（英左＋日右） */
body.home main .section_title--row,
body.front-page main .section_title--row {
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  background: none;
}

body.home main .section_title--row::before,
body.front-page main .section_title--row::before,
body.home main .section_title--row::after,
body.front-page main .section_title--row::after {
  content: none;
}

body.home main .section_title--row::before,
body.front-page main .section_title--row::before {
  left: 0;
}

body.home main .section_title--row::after,
body.front-page main .section_title--row::after {
  right: 0;
}

body.home main .section_title__en,
body.front-page main .section_title__en {
  font-family: "Libre Baskerville", serif;
  font-size: 40px;
  line-height: 1;
  color: #D3C6A6;
  letter-spacing: 0.02em;
  display: block;
}

body.home main .section_title__ja,
body.front-page main .section_title__ja {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1;
  color: #222;
  letter-spacing: 0.1em;
  display: block;
}

/* row（News/Column）：英日をベースライン揃え */
body.home main .section_title--row .section_title__en,
body.front-page main .section_title--row .section_title__en,
body.home main .section_title--row .section_title__ja,
body.front-page main .section_title--row .section_title__ja {
  display: inline-block;
  vertical-align: baseline;
}

/* それ以外（英→日 の上下） */
body.home main .section_title--stack,
body.front-page main .section_title--stack {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 0 20px;
}

body.home main .section_title--stack .section_title__en,
body.front-page main .section_title--stack .section_title__en {
  order: 1;
}

body.home main .section_title--stack .section_title__ja,
body.front-page main .section_title--stack .section_title__ja {
  order: 2;
}

body.home main .section_title--stack .section_title__ja,
body.front-page main .section_title--stack .section_title__ja {
  margin-top: 12px;
}

/* News/Column：タイトル下線と記事一覧の線が近く見えるので間隔を広げる */
body.home main section.news > .news__articles {
  margin-top: 20px;
}

/* News/Columnアーカイブ：トップ（home.min.css）の news__articles デザインを踏襲 */
body.post-type-archive-column main .news__articles,
body.post-type-archive-news main .news__articles {
  margin-top: 40px;
  margin-bottom: 140px;
  padding-top: 0;
  padding-bottom: 0;
}

/* 2件目以降は点線区切り（トップと同じ） */
body.post-type-archive-column main .news__articles li:nth-child(n + 2),
body.post-type-archive-news main .news__articles li:nth-child(n + 2) {
  border-top: 1px dotted #707070;
}

/* 上下の実線＋左右ドット（トップと同じ構成：first/last） */
body.post-type-archive-column main .news__articles li:first-child,
body.post-type-archive-news main .news__articles li:first-child,
body.post-type-archive-column main .news__articles li:last-child,
body.post-type-archive-news main .news__articles li:last-child {
  position: relative;
}

body.post-type-archive-column main .news__articles li:first-child::before,
body.post-type-archive-news main .news__articles li:first-child::before,
body.post-type-archive-column main .news__articles li:first-child::after,
body.post-type-archive-news main .news__articles li:first-child::after,
body.post-type-archive-column main .news__articles li:last-child::before,
body.post-type-archive-news main .news__articles li:last-child::before,
body.post-type-archive-column main .news__articles li:last-child::after,
body.post-type-archive-news main .news__articles li:last-child::after {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: #505050;
  position: absolute;
}

body.post-type-archive-column main .news__articles li:first-child::before,
body.post-type-archive-news main .news__articles li:first-child::before,
body.post-type-archive-column main .news__articles li:last-child::before,
body.post-type-archive-news main .news__articles li:last-child::before {
  left: 0;
}

body.post-type-archive-column main .news__articles li:first-child::after,
body.post-type-archive-news main .news__articles li:first-child::after,
body.post-type-archive-column main .news__articles li:last-child::after,
body.post-type-archive-news main .news__articles li:last-child::after {
  right: 0;
}

body.post-type-archive-column main .news__articles li:first-child,
body.post-type-archive-news main .news__articles li:first-child {
  border-top: 1px solid #505050;
}

body.post-type-archive-column main .news__articles li:first-child::before,
body.post-type-archive-news main .news__articles li:first-child::before,
body.post-type-archive-column main .news__articles li:first-child::after,
body.post-type-archive-news main .news__articles li:first-child::after {
  top: -3px;
}

body.post-type-archive-column main .news__articles li:last-child,
body.post-type-archive-news main .news__articles li:last-child {
  border-bottom: 1px solid #505050;
}

body.post-type-archive-column main .news__articles li:last-child::before,
body.post-type-archive-news main .news__articles li:last-child::before,
body.post-type-archive-column main .news__articles li:last-child::after,
body.post-type-archive-news main .news__articles li:last-child::after {
  bottom: -3px;
}

body.post-type-archive-column main .news__articles a,
body.post-type-archive-news main .news__articles a {
  padding: 15px 0;
  display: block;
}

body.post-type-archive-column main .news__articles .time,
body.post-type-archive-news main .news__articles .time {
  font-weight: 500;
  font-size: 12px;
  line-height: 1;
}

body.post-type-archive-column main .news__articles .title,
body.post-type-archive-news main .news__articles .title {
  margin-top: 10px;
}

/* News/Column：日付とタイトルの間隔を10px程度詰める */
body.home main .news__articles .title,
body.front-page main .news__articles .title,
body.post-type-archive-column main .news__articles .title,
body.post-type-archive-news main .news__articles .title {
  margin-top: 0 !important;
}

/* Column詳細：日付とタイトルは太字にしない */
body.single-column main .post_time,
body.single-news main .post_time,
body.single-column main .post_time time,
body.single-news main .post_time time,
body.single-column main .article__title,
body.single-news main .article__title {
  font-weight: 400 !important;
}

body.single-column main .article__title,
body.single-news main .article__title {
  font-size: 1.8rem;
}

/* News/Column 詳細：本文コンテンツ幅を 550px 上限に */
body.single-column main article.article,
body.single-news main article.article {
  max-width: var(--mls-content-max);
  margin: 40px auto 0;
  padding-left: var(--mls-content-pad);
  padding-right: var(--mls-content-pad);
}

/* トップ Reason：見出しを源ノ明朝 20px に */
body.home main .recommend__point__lead {
  font-family: "Source Han Serif JP", "源ノ明朝", "Noto Serif JP", serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

/* トップ Plan：カード内ボタン（詳細を見る） */
body.home main .plan__item__btn {
  display: block;
  width: 100%;
  max-width: 310px;
  margin: 18px auto 0;
  background-color: #EAE4D5;
  color: #54482A;
  text-align: center;
  letter-spacing: 0.12em;
  line-height: 60px;
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
}

/* トップ Plan：プラン名（源ノ明朝 20px） */
body.home main .plan__item__caption .name {
  font-family: "Source Han Serif JP", "源ノ明朝", "Noto Serif JP", serif;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.06em;
}

/* トップ Plan：すべてのプランを見る */
body.home main .plan__all_btn {
  max-width: 470px;
  /* 旧「一覧を見る」と同じ位置感にする（カード背景に少し食い込ませる） */
  margin: -30px auto 0;
  padding: 0 20px;
}

body.home main .plan__all_btn a {
  display: block;
  border: 1px solid #877343;
  color: #877343;
  background-color: #fff;
  text-align: center;
  letter-spacing: 0.12em;
  line-height: 60px;
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
}

body.home main .plan__all_btn a::after {
  content: "";
  width: 10px;
  height: 10px;
  position: absolute;
  top: 50%;
  right: 20px;
  border-right: 1px solid #877343;
  border-bottom: 1px solid #877343;
  transform: translateY(-50%) rotate(-45deg);
  -webkit-transform: translateY(-50%) rotate(-45deg);
  -ms-transform: translateY(-50%) rotate(-45deg);
}

/* トップ Dress Lineup：添付デザイン寄せ */
body.home main .line_up {
  position: relative;
  /* パネル下端にボタンを半分被せるための白い余白 */
  padding-bottom: 120px;
}

/* タイトルの途中から背景パネルが始まる */
body.home main .line_up::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 18px;
  /* ボタンが半分被る“境界”を作る */
  bottom: 60px;
  background-color: #F9F7F3;
  z-index: 0;
}

body.home main .line_up > * {
  position: relative;
  z-index: 1;
}

body.home main .line_up__mv {
  width: 100% !important;
  max-width: var(--mls-content-max) !important;
  margin: 30px auto 0 !important;
  background: none !important;
  height: auto !important;
  position: relative !important;
  z-index: 1 !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;
  -webkit-transform: none !important;
  -ms-transform: none !important;
}

body.home main .line_up__mv__catch {
  width: 100% !important;
  max-width: none !important;
  background: none;
  padding: 0;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.16);
  position: relative !important;
  margin: 0 auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;
  -webkit-transform: none !important;
  -ms-transform: none !important;
}

body.home main .line_up__mv__catch img {
  display: block;
}

body.home main .line_up__lead {
  margin: 22px auto 0;
  max-width: var(--mls-content-max);
  padding: 0 var(--mls-content-pad);
  text-align: center;
  font-family: "Source Han Serif JP", "源ノ明朝", "Noto Serif JP", serif;
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #54482A;
}

body.home main .line_up__text {
  margin-top: 14px;
  max-width: var(--mls-content-max);
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--mls-content-pad);
  text-align: center;
  font-size: 14px;
  line-height: 1.9;
  color: #505050;
}

body.home main .line_up .catches {
  background: none;
  margin-top: 26px;
  height: auto;
  position: static !important;
  z-index: auto;
  overflow: visible !important;
}

body.home main .line_up .catches .wrapper {
  width: 100%;
  max-width: var(--mls-content-max);
  margin: 0 auto !important;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  position: relative !important;
  top: auto;
  left: auto;
  transform: none;
  -webkit-transform: none;
  -ms-transform: none;
}

body.home main .line_up .catches__catch {
  width: 100%;
  display: block;
  background: none;
  padding: 0;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.16);
}

body.home main .line_up .catches__catch img {
  display: block;
}

body.home main .line_up .archive_btn_01 {
  /* ボタンを下端に固定して、背景パネルの境界に半分被せる（画像に被らない） */
  position: absolute !important;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  margin: 0 !important;
  width: min(86vw, 470px);
  z-index: 2;
}

/* トップ Photo Gallery：タイトルテキストを背景に半分被せる */
body.home main .gallery {
  position: relative;
  /* パネル下端にボタンを半分被せるための白い余白 */
  padding-bottom: 90px;
}

body.home main .gallery::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  /* 英字40pxの途中から背景を開始して、タイトルに半分被せる */
  top: 18px;
  /* ボタンが半分被る“境界”を作る */
  bottom: 60px;
  background-color: #F9F7F3;
  z-index: 0;
}

body.home main .gallery > * {
  position: relative;
  z-index: 1;
}

body.home main .gallery__title.section_title--stack {
  position: relative;
  z-index: 2;
}

/* 既存の背景色はセクションのパネルに任せる */
body.home main .gallery .catches {
  background: none;
}

/* トップ Photo Gallery：Instagram feed（Smash Balloon） */
body.home main .gallery .gallery__insta,
body.front-page main .gallery .gallery__insta {
  width: 100%;
  max-width: var(--mls-content-max);
  margin: 30px auto 0;
  padding: 0 var(--mls-content-pad);
  margin-bottom: 40px;
}

body.home main .gallery .gallery__insta #sb_instagram,
body.front-page main .gallery .gallery__insta #sb_instagram,
body.home main .gallery .gallery__insta .sb_instagram,
body.front-page main .gallery .gallery__insta .sb_instagram {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* トップ側は「一覧を見る」ボタンを使うので、プラグインボタンは隠す */
body.home main .gallery .gallery__insta #sb_instagram .sbi_follow_btn,
body.home main .gallery .gallery__insta #sb_instagram .sbi_load_btn,
body.front-page main .gallery .gallery__insta #sb_instagram .sbi_follow_btn,
body.front-page main .gallery .gallery__insta #sb_instagram .sbi_load_btn,
body.home main .gallery .gallery__insta .sb_instagram .sbi_follow_btn,
body.home main .gallery .gallery__insta .sb_instagram .sbi_load_btn,
body.front-page main .gallery .gallery__insta .sb_instagram .sbi_follow_btn,
body.front-page main .gallery .gallery__insta .sb_instagram .sbi_load_btn {
  display: none !important;
}

/* フォトギャラリー：ボタンを背景パネルの境界に半分被せる（崩れない） */
body.home main .gallery .archive_btn_01 {
  position: absolute !important;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  margin: 0 !important;
  width: min(86vw, 470px);
  z-index: 2;
}

/* 下層ページMVタイトル（画像→テキスト） */
main .ml_mv__catch {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

main .ml_mv__catch .ml_mv__title {
  /* 各ページの min.css で absolute 配置されている場合があるのでリセット */
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  -webkit-transform: none !important;
  -ms-transform: none !important;
  /* 旧CSS（画像見出し前提）の max-width を無効化 */
  max-width: none !important;
  font-family: "Libre Baskerville", serif;
  /* 英語タイトルは必ず1行に（小さい画面では少しだけ縮む） */
  font-size: clamp(32px, 8vw, 40px);
  white-space: nowrap;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.02em;
  color: #54482A;
  order: 1;
}

/* Column（アーカイブ）：英字が右寄りに見えないよう、レイアウトとして中央固定 */
body.post-type-archive-column main .ml_mv__catch .ml_mv__title,
body.post-type-archive-column main .ml_mv__catch .ml_mv__subtitle {
  width: 100%;
  text-align: center;
}

main .ml_mv__catch .ml_mv__subtitle {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  -webkit-transform: none !important;
  -ms-transform: none !important;
  margin-top: 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.12em;
  color: #54482A;
  order: 2;
}

/* Dress Lineupページ：subtitleが上に来る崩れを防止（英→日で固定） */
body.line_up main .ml_mv__catch {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

body.line_up main .ml_mv__catch .ml_mv__title,
body.line_up main .ml_mv__catch .ml_mv__subtitle {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  -webkit-transform: none !important;
  -ms-transform: none !important;
}

body.line_up main .ml_mv__catch .ml_mv__title {
  order: 1 !important;
  margin-top: 0 !important;
}

body.line_up main .ml_mv__catch .ml_mv__subtitle {
  order: 2 !important;
  margin-top: 8px !important;
}

/* Dress Lineup（/dress/）：添付スクショのシンプル構成 */
body.line_up main .ml_mv__catch {
  background-image: url("../img/line_up/mv_01.jpg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 130px;
}

body.line_up main .line_up_page {
  max-width: var(--mls-content-max);
  margin: 30px auto 140px;
  padding: 0 var(--mls-content-pad);
}

body.line_up main .line_up_page__lead {
  text-align: center;
  line-height: 1.9;
  font-size: 14px;
  color: #505050;
}

body.line_up main .line_up_page__brides_link {
  display: block;
  width: min(100%, 340px);
  margin: 18px auto 0;
}

body.line_up main .line_up_page__brides_link img {
  display: block;
  width: 100%;
  height: auto;
}

body.line_up main .line_up_page__grid {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

body.line_up main .line_up_page__grid img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  height: auto;
}

body.line_up main .line_up_page__note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.6;
  color: #505050;
}

/* Gallery：Instagram feed */
body.gallery main .instagram_feed {
  max-width: 550px;
  margin: 60px auto 140px;
  padding: 0 20px;
}

/* Smash Balloon Instagram Feed の出力を2列グリッドに */
body.gallery main .instagram_feed #sb_instagram,
body.gallery main .instagram_feed .sb_instagram {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* プラグイン側の下部ボタンは使わない（ページ下の独自ボタンに統一） */
body.gallery main .instagram_feed #sb_instagram .sbi_follow_btn,
body.gallery main .instagram_feed #sb_instagram .sbi_load_btn,
body.gallery main .instagram_feed .sb_instagram .sbi_follow_btn,
body.gallery main .instagram_feed .sb_instagram .sbi_load_btn {
  display: none !important;
}

body.gallery main .instagram_feed__btnwrap {
  margin-top: 30px;
}

body.gallery main .instagram_feed__btn {
  max-width: 340px;
  margin: 0 auto;
  background-color: #EAE4D5;
  border: 1px solid rgba(211, 198, 166, 0.9);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 60px;
  line-height: 1;
  padding: 0 20px;
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
  color: #54482A;
  letter-spacing: 0.08em;
}

body.gallery main .instagram_feed__btn::before {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid #fff;
  pointer-events: none;
}

body.gallery main .instagram_feed__btnicon {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

body.gallery main .instagram_feed__btntxt {
  display: inline-block;
  line-height: 1;
}

/* Flow：撮影後について（スクショ準拠） */
body.flow main .photograph_after .photograph_after__data {
  background-color: #F9F9F9;
  margin-top: 20px;
  padding: 16px 15px;
}

body.flow main .photograph_after .photograph_after__heading {
  font-weight: 500;
  font-size: 14px;
  line-height: 1.6;
  color: #505050;
}

body.flow main .photograph_after .photograph_after__list {
  margin-top: 8px;
  padding-left: 0;
  list-style: none;
}

body.flow main .photograph_after .photograph_after__list li {
  position: relative;
  padding-left: 1em;
  line-height: 1.8;
  color: #505050;
}

body.flow main .photograph_after .photograph_after__list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

body.flow main .photograph_after .photograph_after__note {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.7;
  color: #505050;
}

body.flow main .photograph_after .photograph_after__album {
  margin-top: 22px;
}

body.flow main .photograph_after .photograph_after__album_title {
  background-color: #EAE4D5;
  line-height: 40px;
  font-weight: 500;
  font-size: 14px;
  text-align: center;
  color: #54482A;
}

body.flow main .photograph_after .photograph_after__album_lead {
  margin-top: 12px;
  line-height: 1.9;
  color: #505050;
}

body.flow main .photograph_after .contact_photograph__list {
  margin-top: 18px;
}

body.flow main .photograph_after .contact_photograph__list dt {
  font-weight: 500;
}

body.flow main .photograph_after .photograph_after__finish {
  margin-top: 18px;
  line-height: 1.9;
  color: #505050;
}

/* Flow：他のアコーディオンと同じ余白に統一（撮影後についてだけ例外になっていたため） */
body.flow main .accordions .accordion.photograph_after .contents {
  padding: 30px 15px 90px !important;
}

/* Familyページも固定ページH1と同じレイアウトに統一（背景や幅だけ既存に寄せる） */
body.family main .ml_mv {
  max-width: 470px;
  margin: 20px auto 0;
}

body.family main .ml_mv__catch {
  background-image: url("../img/family/mv_01.jpg");
  /* 元のFamily MV（family.min.cssの.mv__catch）と同じ高さにして見出しが欠けないようにする */
  height: 230px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
}

/* For Family：背景とH1が重なって読みにくいので、白60%のパネルを背面に敷く */
body.family main .ml_mv__catch::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  width: calc(100% - 30px);
  max-width: 520px;
  height: 110px;
  background: rgba(255, 255, 255, 0.6);
  z-index: 0;
}

body.family main .ml_mv__catch .ml_mv__title,
body.family main .ml_mv__catch .ml_mv__subtitle {
  position: relative;
  z-index: 1;
}

body.family main .ml_mv__text {
  line-height: 2;
  margin-top: 40px;
}

/* Reasonページ */
body.reason main,
body.page-template-page-reason main {
  background-color: #fff;
}

body.reason main .ml_mv__catch,
body.page-template-page-reason main .ml_mv__catch {
  background-image: url("../img/reason/mv_01.jpg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 130px;
}

body.reason main .ml_mv__text,
body.page-template-page-reason main .ml_mv__text {
  margin-top: 20px;
  padding: 0 15px;
}

body.reason main .reason,
body.page-template-page-reason main .reason {
  width: 100%;
  max-width: var(--mls-content-max);
  margin: 60px auto 140px;
  padding: 0 var(--mls-content-pad);
}

body.reason main .reason__intro,
body.page-template-page-reason main .reason__intro {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

body.reason main .reason__intro__text,
body.page-template-page-reason main .reason__intro__text {
  font-size: 14px;
  line-height: 1.9;
  color: #54482A;
  text-align: center;
  letter-spacing: 0.06em;
}

body.reason main .reason__items,
body.page-template-page-reason main .reason__items {
  margin-top: 30px;
}

body.reason main .reason__item,
body.page-template-page-reason main .reason__item {
  background: transparent;
  box-shadow: none;
  padding-bottom: 0;
}

body.reason main .reason__item + .reason__item,
body.page-template-page-reason main .reason__item + .reason__item {
  margin-top: 48px;
}

body.reason main .reason__item__img img,
body.page-template-page-reason main .reason__item__img img {
  display: block;
  width: 100%;
  height: auto;
}

body.reason main .reason__item__title,
body.page-template-page-reason main .reason__item__title {
  margin-top: 14px;
  padding: 0;
  font-family: "Source Han Serif JP", "源ノ明朝", "Noto Serif JP", serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: #54482A;
  text-align: center;
}

body.reason main .reason__item__text,
body.page-template-page-reason main .reason__item__text {
  margin-top: 10px;
  padding: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 1.9;
  color: #505050;
}

/* familyページのMVタイトル（画像→テキスト） */
main .mv__catch {
  display: flex;
  flex-direction: column;
  align-items: center;
}

main .mv__catch .mv__title {
  font-family: "Libre Baskerville", serif;
  font-size: clamp(32px, 8vw, 40px);
  white-space: nowrap;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.02em;
  color: #54482A;
  order: 1;
}

main .mv__catch .mv__subtitle {
  margin-top: 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.12em;
  color: #54482A;
  order: 2;
}

/* トップMV：リード（フォトウェディング・家族写真なら / MY LITTLE STUDIO）を上へ移動 */
body.home main .mv__lead,
body.front-page main .mv__lead {
  top: 70px;
  bottom: auto;
  background: none;
  padding: 0;
}

body.home main .mv__lead span,
body.front-page main .mv__lead span {
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

body.home main .mv__lead .ja,
body.front-page main .mv__lead .ja {
  font-size: 22px;
}

body.home main .mv__lead .en,
body.front-page main .mv__lead .en {
  /* 1.3倍くらい（28px → 約36px） */
  font-size: 36px;
  margin-top: 15px;
}

@media screen and (max-height: 740px) {
  body.home main .mv__lead,
  body.front-page main .mv__lead {
    top: 50px;
  }
}

/* planページ */
body.plan main .plans .plan__details .no-remark {
  font-size: 16px;
  font-size: 1.6rem;
  color: #222;
  padding-left: 15px;
}

body.plan main .plans .plan__card__caption .up_price::after {
  top: 43%;
}

body.plan main .plans .plan__card__caption .up_price::after {
  top: 40%;
}

body.plan main .plans .plan__details .remark::after {
  top: 26%;
}

@media screen and (min-width: 406px) {
  body.plan main .plans .plan__details .remark::after {
    top: 50%;
  }
}

body.plan main .plans .plan__media__caption .up_price::after {
  top: 27%;
}

@media screen and (min-width: 448px) {
  body.plan main .plans .plan__media__caption .up_price::after {
    top: 50%;
  }
}

body.plan main .plans .plan__media__caption .price {
  display: block;
  line-height: 1;
}

body.plan main .plans .plan__media__caption .price .tax {
  margin-left: 123px;
  display: inline-block;
}

@media screen and (min-width: 375px) {
  body.plan main .plans .plan__media__caption .price {
    display: flex;
    line-height: normal;
  }

  body.plan main .plans .plan__media__caption .price .tax {
    margin-left: 10px;
  }
}

body.plan main .plans .plan__details__list .item {
  line-height: 1.4;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 9.9px;
  padding-bottom: 9.1px;
}

@media screen and (min-width: 450px) {
  body.plan main .plans .plan__details__list .item {
    line-height: 40px;
    display: block;
    padding-top: 0;
    padding-bottom: 0;
  }
}

/* flowページ */
.ml_step_diagram .diagrams .time_required {
  border-bottom: none;
  text-align: center;
  padding-bottom: 5px;
  margin-top: 20px;
}

.ml_step_diagram .diagrams .note {
  text-align: center;
}

/* flow（/flow/）の本文幅を他ページと同じ 550px 上限に */
body.flow main .accordions .accordion {
  max-width: var(--mls-content-max);
}

body.flow
  main
  .accordions
  .memorial_photo_wedding__preparation
  .msg
  p:last-child {
  margin-top: 5px;
}

body.flow main .accordions .photograph_after .contents {
  padding: 0px 15px;
}

body.flow main .accordions .photograph_after_msg_wrapper {
  margin-bottom: 80px;
}

body.flow main .accordions .photograph_after .msg {
  padding: 20px 16px;
}

body.flow main .accordions .photograph_after .msg .photograph_after__text {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.5;
}

body.flow main .accordions .accordion .target {
  padding: 13px 47px 11px 15px;
  line-height: 1.45;
  display: flex;
  align-items: center;
  cursor: pointer;
}

body.flow
  main
  .accordions
  .photograph_after
  .msg
  .photograph_after__text:first-child {
  margin-bottom: 30px;
}

.body.flow main .accordions .data_select__list {
  padding-top: 20px;
}

body.flow
  main
  .accordions
  .photograph_after
  .photograph_after__dataselect
  .msg {
  padding: 14px 16px 13px 16px;
  background-color: #f9f7f3;
  margin-top: 20px;
  margin-bottom: 20px;
  line-height: 1.57;
  margin-bottom: 20px;
}

.dataselect_text {
  font-weight: bold;
}

.ml_time_line_diagram .diagrams .time_line .time.w_66 {
  width: 66px;
}

.ml_step_diagram .diagrams .step .number {
  line-height: 1.2;
}

.ml_step_diagram .diagrams .step .number.w_84 {
  width: 84px;
}

.ml_step_diagram .diagrams .step .number.w_75 {
  width: 75px;
}

.ml_step_diagram .diagrams .step .number.w_70 {
  width: 70px;
}
.ml_step_diagram .diagrams .step .number--win {
  padding-top: 10px;
}

@media screen and (min-width: 375px) {
  .ml_time_line_diagram .diagrams .time_line .time.w_66 {
    width: 60px;
  }
  .ml_step_diagram .diagrams .step .number.w_84 {
    width: 70px;
  }
  .ml_step_diagram .diagrams .step .number.w_75 {
    width: 60px;
  }
  .ml_step_diagram .diagrams .step .number.w_70 {
    width: 60px;
  }
}

@media screen and (min-width: 414px) {
  .ml_step_diagram .diagrams .step .number.w_84 {
    width: 64px;
  }
}

/* for familyページ */
body.family main .gallery {
  padding: 60px 0 40px;
}

body.family main > *:last-child {
  padding-bottom: 0;
}

body.family main .gallery.mt_0 {
  margin-top: 0;
}

body.family main .gallery .back_btn {
  margin-top: 43px;
}

body.family .links {
  margin-top: 140px;
  margin-bottom: 40px;
}

body.family .links .link_btn_01 {
  margin-left: auto;
  margin-right: auto;
}

body.family main .menu {
  position: relative;
}

/* ボタン */
#footer .back_btn {
  position: fixed;
  bottom: 0;
  left: 0;
  display: none;
}

#footer .back_btn {
  max-width: 160px;
  background-color: #54482a;
  padding: 11px 24px 12px 23px;
  margin-top: 40px;
}

#footer .back_btn a {
  font-size: 16px;
  font-size: 1.6rem;
  color: #fff;
  text-align: center;
  display: block;
}

@media screen and (min-width: 470px) {
  #footer .back_btn {
    position: fixed;
    left: 50%;
    margin-left: -236px;
  }
}

/* albumページ */
body.album main .items {
  max-width: var(--mls-content-max);
  margin: 60px auto 140px;
  padding-right: var(--mls-content-pad);
  padding-left: var(--mls-content-pad);
}

/* album：ブロック幅を550px上限へ。画像は3:2比率で拡大し、幅拡張で画角が崩れにくいようにする */
body.album main .items .album {
  max-width: none;
  width: 100%;
}

body.album main .items .album__slider__item img {
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

body.album main .items .album__design {
  margin-top: 30px;
}

body.album main .items .album__design .type__name {
  text-align: left;
}

body.album main .items .album__info .name {
  margin-bottom: 10px;
}

body.album main .items .album__info .text {
  line-height: 1.42;
}

body.album main .items .album .finish {
  margin-top: 10px;
}

body.album main .items .album:nth-child(n + 2) {
  margin-top: 180px;
}

body.album main .items .album__design .type {
  margin-top: 10px;
}

body.album main .items .album__design .type .inner {
  margin-bottom: 15px;
}

@media screen and (min-width: 375px) {
  body.album main .items .album__design .type__name {
    text-align: center;
  }
}

/* contactページ */
.ml_mv_inner {
  max-width: 60%;
}

/* contact：本文幅を550px上限へ（ボタン等は既存のまま） */
body.contact main .ml_mv .ml_mv__text,
body.contact main .ml_mv .remark {
  padding-left: 0;
  padding-right: 0;
}

body.contact main .form {
  max-width: var(--mls-content-max);
  margin: 40px auto 140px;
  padding-left: var(--mls-content-pad);
  padding-right: var(--mls-content-pad);
}

body.contact main .form__msg {
  padding-left: 0;
  padding-right: 0;
}

body.contact main .form .mw_wp_form form {
  max-width: none;
  width: 100%;
}

body.contact main .form form .input .radios label {
  line-height: 1.4;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
}

body.contact main .form__title {
  line-height: 1.45;
}

body.contact .mw_wp_form .horizontal-item + .horizontal-item {
  margin-left: 0;
}

body.contact main .form form .input .radios label.active {
  background-color: #97814b;
  color: #fff;
}

.mw_wp_form_send_error {
  text-align: center;
  padding-top: 50px;
}

@media screen and (min-width: 375px) {
  body.contact main .form__title {
    line-height: 1;
  }
}

/* confirmationページ */
.confirmation dd {
  background-color: #e5e5e5;
  padding: 15px 0 15px 10px;
  border: 1px solid #c2c2c2;
}

body.contact
  main
  .form
  .mw_wp_form_confirm
  input[name="mwform_submitButton-718"] {
  margin-top: 23px;
}

/* completeページ */
.thankyou_message {
  max-width: var(--mls-content-max);
  margin: 90px auto 0;
  padding-left: var(--mls-content-pad);
  padding-right: var(--mls-content-pad);
}

.thankyou_message p:last-of-type {
  margin-top: 20px;
}

.thankyou_message .no-mail {
  padding-left: 0;
}

.thankyou_message .no-mail li {
  margin-top: 10px;
}

/* garalleryページ */
body.gallery main .pictures .picture__caption {
  text-align: left;
  height: 89px;
}

.lum-lightbox-inner .lum-lightbox-image-wrapper .lum-img {
  max-width: 360px !important;
  height: auto !important;
}

.lum-close-button {
  left: 42% !important;
}

.lum-close-button:after {
  box-shadow: 2px -2px rgba(0 0 0 / 50%);
}
.lum-close-button:before {
  box-shadow: -2px -2px rgba(0 0 0 / 50%);
}

@media screen and (min-width: 375px) {
  .lum-close-button {
    left: 50% !important;
  }
}

@media screen and (min-width: 450px) {
  body.gallery main .pictures .picture__caption {
    height: auto;
  }
}

@media screen and (min-width: 960px) {
  .lum-close-button {
    -webkit-transform: translate(280px, -372px) !important;
    -ms-transform: translate(280px, -372px) !important;
    transform: translate(280px, -372px) !important;
  }
  .lum-lightbox-inner .lum-lightbox-image-wrapper .lum-img {
    max-width: 630px !important;
    height: 630px !important;
  }
  .lum-next-button {
    -webkit-transform: translate(382px, -25%) !important;
    -ms-transform: translate(382px, -25%) !important;
    transform: translate(382px, -25%) !important;
  }
  .lum-previous-button {
    -webkit-transform: translate(-382px, -25%) !important;
    -ms-transform: translate(-382px, -25%) !important;
    transform: translate(-382px, -25%) !important;
  }
}

@media screen and (min-width: 960px) {
  .lum-lightbox-inner .lum-lightbox-image-wrapper .lum-img {
    max-width: 100% !important;
    height: auto !important;
    width: auto;
  }
}

/* news_detailページ */
body.news_detail main .article {
  padding: 50px 15px 0;
}
/* column */
body.home main .news.column {
  margin-bottom: 100px;
}
/* faqページ */
body.faq main .q_a__title {
  padding-left: 15px;
}

.ml_faq_accordion__item .question {
  padding: 15px 28px 15px 15px;
  cursor: pointer;
}

@media screen and (min-width: 375px) {
  .ml_faq_accordion__item .question {
    padding: 15px;
  }
}

@media screen and (min-width: 500px) {
  body.faq main .q_a__title {
    padding-left: 0;
  }
}

/* dressページ */
body.line_up main .sliders .slider .swiper-slide {
  text-align: center;
  padding-right: 15px;
  padding-left: 15px;
}

body.line_up main .sliders .slider .swiper-slide img {
  height: 435px;
}

body.line_up main .sliders .hatsuko_endo .swiper-slide img {
  height: 100%;
}

body.line_up main .sliders .hatsuko_endo::after {
  height: 93.5%;
}

body.line_up main .sliders .slider::after {
  height: 94%;
}

@media screen and (min-width: 375px) {
  body.line_up main .sliders .slider .swiper-slide img {
    height: 517.5px;
  }
}

@media screen and (min-width: 414px) {
  body.line_up main .sliders .slider .swiper-slide img {
    height: 555px;
  }
}

@media screen and (min-width: 450px) {
  body.line_up main .sliders .slider .swiper-slide img {
    -o-object-fit: cover;
    object-fit: cover;
    height: 600px;
  }

  body.line_up main .sliders .slider .swiper-slide {
    text-align: left;
    padding-right: 0;
    padding-left: 0;
  }

  body.line_up main .sliders .hatsuko_endo::after {
    height: 590px;
  }

  body.line_up main .sliders .slider::after {
    height: 690px;
  }
}

/* ボタン */
.swiper-button-next,
.swiper-button-prev {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
}

/* swiper-button01 */
.swiper-button-next01,
.swiper-button-prev01 {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
  position: absolute;
  top: 50%;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next01 {
  right: 10px;
  left: auto;
}

.swiper-button-prev01 {
  left: 10px;
  right: auto;
}

/* swiper-button02 */
.swiper-button-next02,
.swiper-button-prev02 {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
  position: absolute;
  top: 50%;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next02 {
  right: 10px;
  left: auto;
}

.swiper-button-prev02 {
  left: 10px;
  right: auto;
}

/* swiper-button03 */
.swiper-button-next03,
.swiper-button-prev03 {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
  position: absolute;
  top: 50%;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next03 {
  right: 10px;
  left: auto;
}

.swiper-button-prev03 {
  left: 10px;
  right: auto;
}

/* swiper-button04 */
.swiper-button-next04,
.swiper-button-prev04 {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
  position: absolute;
  top: 50%;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next04 {
  right: 10px;
  left: auto;
}

.swiper-button-prev04 {
  left: 10px;
  right: auto;
}

/* swiper-button05 */
.swiper-button-next05,
.swiper-button-prev05 {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
  position: absolute;
  top: 50%;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next05 {
  right: 10px;
  left: auto;
}

.swiper-button-prev05 {
  left: 10px;
  right: auto;
}

/* swiper-button06 */
.swiper-button-next06,
.swiper-button-prev06 {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
  position: absolute;
  top: 50%;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next06 {
  right: 10px;
  left: auto;
}

.swiper-button-prev06 {
  left: 10px;
  right: auto;
}

/* swiper-button07 */
.swiper-button-next07,
.swiper-button-prev07 {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
  position: absolute;
  top: 50%;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next07 {
  right: 10px;
  left: auto;
}

.swiper-button-prev07 {
  left: 10px;
  right: auto;
}

/* swiper-button08 */
.swiper-button-next08,
.swiper-button-prev08 {
  width: 18px;
  height: 35.5px;
  background-size: 18px 35.5px;
  margin-top: -24px;
  position: absolute;
  top: 50%;
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next08 {
  right: 10px;
  left: auto;
}

.swiper-button-prev08 {
  left: 10px;
  right: auto;
}

/* 次ページボタンのスタイル */
.swiper-button-next {
  background-image: none;
}
@media screen and (min-width: 750px) {
  .swiper-button-next {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
  .swiper-button-next01 {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
  .swiper-button-next02 {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
  .swiper-button-next03 {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
  .swiper-button-next04 {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
  .swiper-button-next05 {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
  .swiper-button-next06 {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
  .swiper-button-next07 {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
  .swiper-button-next08 {
    background-image: url(../img/line_up/ico_arrow_right.png);
  }
}

/* 前ページボタンのスタイル */
.swiper-button-prev {
  background-image: none;
}
@media screen and (min-width: 750px) {
  .swiper-button-prev {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
  .swiper-button-prev01 {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
  .swiper-button-prev02 {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
  .swiper-button-prev03 {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
  .swiper-button-prev04 {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
  .swiper-button-prev05 {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
  .swiper-button-prev06 {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
  .swiper-button-prev07 {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
  .swiper-button-prev08 {
    background-image: url(../img/line_up/ico_arrow_left.png);
  }
}

.swiper-button-disabled {
  display: none;
}

/* 404ページ */
.hp404 {
  text-align: center;
  margin-top: 80px;
}
.hp404__title {
  font-size: 6rem;
  font-weight: bold;
}
.hp404__sub-title {
  font-size: 1.8rem;
}
.hp404__reverse {
  margin: 80px auto;
}
.hp404__reverse-btn {
  font-size: 1.8rem;
  padding: 20px 20px;
  border: 2px solid #505050;
  display: inline-block;
}
@media screen and (min-width: 750px) {
  .hp404__title {
    font-size: 7rem;
  }
  .hp404__sub-title {
    font-size: 3.2rem;
  }
  .hp404__reverse-btn {
    padding: 20px 130px;
  }
}
/* 個人情報保護方針ページ */
.privacy .ml_mv__catch {
  height: auto !important;
  background: linear-gradient(#d3c6a6, #eae4d5);
  padding: 24px 20px !important;
}
.privacy .ml_mv__title {
  font-size: 40px !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  font-family: "Libre Baskerville", serif !important;
  color: #54482a !important;
}
.privacy .ml_mv__subtitle {
  font-size: 16px !important;
  line-height: 1.4 !important;
  font-family: "Noto Sans JP", sans-serif !important;
  color: #54482a !important;
}
.privacy .ml_mv__text {
  margin-bottom: 25px;
  line-height: 1.92;
}
.praivacy_main {
  padding: 0 15px;
}
.praivacy__content {
  margin-bottom: 40px;
}
.mb80 {
  margin-bottom: 80px;
}
.praivacy__title {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3125;
  color: #171717;
  width: 100%;
  padding: 3.5px 20px;
  background: #f2f2f2;
  margin-bottom: 14px;
}
.praivacy__body {
  padding: 0 20px;
  line-height: 1.93;
}
.praivacy__lists {
  margin-top: 14px;
  list-style-type: disc;
  padding-left: 16px;
}
.praivacy__lists > *:last-child {
  margin-bottom: 0;
}
.praivacy__list {
  margin-bottom: 4px;
}
.praivacy-contact__title {
  font-weight: bold;
  line-height: 1.5;
  color: #171717;
  padding-bottom: 4px;
  border-bottom: 1px solid #505050;
  margin-bottom: 16px;
}
.praivacy-contact__text {
  line-height: 1.93;
}
.privacy .links {
  margin-top: 40px;
}
/* 特定商取引法ページ */
.tokushoho .ml_mv__catch {
  height: auto !important;
  background: linear-gradient(#d3c6a6, #eae4d5);
  padding: 24px 20px !important;
}
.tokushoho .ml_mv__title {
  font-size: 40px !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  font-family: "Libre Baskerville", serif !important;
  color: #54482a !important;
}
.tokushoho .ml_mv__subtitle {
  font-size: 16px !important;
  line-height: 1.4 !important;
  font-family: "Noto Sans JP", sans-serif !important;
  color: #54482a !important;
}
.tokushoho_main {
  padding: 20px 15px 0;
}
.tokushoho__content {
  margin-bottom: 40px;
}
.mb140 {
  margin-bottom: 140px;
}
.tokushoho__title {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3125;
  color: #171717;
  width: 100%;
  padding: 3.5px 20px;
  background: #f2f2f2;
  margin-bottom: 14px;
}
.tokushoho__body {
  padding: 0 20px;
  line-height: 1.93;
}
.tokushoho__link {
  color: #54482a;
  text-decoration: underline;
}
.tokushoho__lists {
  margin-top: 14px;
}
.tokushoho-contact__title {
  font-weight: bold;
  line-height: 1.5;
  color: #171717;
  padding-bottom: 4px;
  border-bottom: 1px solid #505050;
  margin-bottom: 16px;
}
.tokushoho-contact__text {
  line-height: 1.93;
}
.tokushoho .links {
  margin-top: 40px;
}

/* トップページ追加 */
body.home main .recommend .archive_btn_01 {
  margin: 40px auto 0;
}

body.home main .review_btn {
  margin-top: 90px;
  max-width: 470px;
  margin-right: auto;
  margin-left: auto;
  padding: 0 20px;
}

body.home main .review_btn a {
  display: block;
  background-color: #fff;
  border: 2px solid #877343;
  padding: 22px 56px 18px;
  text-align: center;
  position: relative;
}

body.home main .review_btn a::before {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid #877343;
  pointer-events: none;
}

body.home main .review_btn a::after {
  content: "";
  width: 10px;
  height: 10px;
  position: absolute;
  top: 50%;
  right: 22px;
  border-right: 1px solid #877343;
  border-bottom: 1px solid #877343;
  transform: translateY(-50%) rotate(-45deg);
  -webkit-transform: translateY(-50%) rotate(-45deg);
  -ms-transform: translateY(-50%) rotate(-45deg);
}

body.home main .review_btn__en {
  display: block;
  font-family: "Libre Baskerville", serif;
  font-size: 48px;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #D3C6A6;
}

body.home main .review_btn__ja {
  display: block;
  margin-top: 12px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #54482A;
}

body.home .lum-gallery-button {
  display: none;
}

body.home .lum-lightbox-inner {
  top: 6%;
  right: 0;
  left: 0;
}

body.home .lum-lightbox-inner .lum-lightbox-image-wrapper .lum-img {
  max-width: 100% !important;
  object-fit: contain;
}

body.home .lum-close-button:before {
  box-shadow: none;
}

body.home .lum-close-button:after {
  box-shadow: none;
}

body.home .lum-lightbox {
  background: rgba(21, 21, 21, 0.7);
}

body.home .lum-close-button {
  opacity: 1;
  transform: none !important;
  right: 5px !important;
  top: 5px !important;
  left: auto !important;
  cursor: pointer;
}
