/* Local mirror fallbacks. The original CSS/JS still drives the visual design. */
.c-loading,
.c-loading.-loaded {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

body.replica-ready .c-loading,
body.replica-ready .c-loading.-loaded {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

body.replica-amazinggrace .c-loading,
body.replica-amazinggrace .c-loading.-loaded {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

body.replica-ready .l-wrapper,
body.replica-ready .o-mainvisual__textarea,
body.replica-ready .o-mainvisual__ttl {
  opacity: 1;
}

body.replica-ready .prlxView.c-ttl-section,
body.replica-ready .prlxView[data-anime="fade"],
body.replica-ready .prlxView[data-anime="fadeToUp"] {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

body.replica-ready .o-mainvisual__slider li:first-child:not(.-show) {
  opacity: 1;
}

.o-mainvisual {
  background: #191C1B;
}

body.replica-amazinggrace .o-mainvisual {
  isolation: isolate;
  position: sticky;
  top: 0;
  z-index: 0;
  height: 100vh;
  height: 100svh;
  transform: none;
  will-change: position;
}

body.replica-amazinggrace .replica-hero-pin-stage {
  position: relative;
  z-index: 0;
  isolation: isolate;
  background: var(--amazinggrace-ivory);
}

body.replica-amazinggrace .replica-hero-pin-stage .o-mainvisual {
  z-index: 0;
}

body.replica-amazinggrace .replica-hero-pin-stage .o-nav-bar,
body.replica-amazinggrace .replica-hero-pin-stage .o-lead-concept {
  position: relative;
}

body.replica-amazinggrace .replica-hero-pin-stage .o-nav-bar {
  z-index: 8;
}

body.replica-amazinggrace .replica-hero-pin-stage .o-lead-concept {
  z-index: 4;
}

body.replica-amazinggrace .o-mainvisual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(247, 248, 247, 0.08) 0%, rgba(247, 248, 247, 0.42) 100%),
    rgba(253, 235, 241, 0.18);
  opacity: 0;
  transform: translateY(34px);
  -webkit-backdrop-filter: blur(0) saturate(1);
  backdrop-filter: blur(0) saturate(1);
  transition:
    opacity 0.7s cubic-bezier(0.2, 0.8, 0.2, 1),
    transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1),
    -webkit-backdrop-filter 0.9s ease,
    backdrop-filter 0.9s ease;
}

body.replica-amazinggrace.replica-concept-active .o-mainvisual::before {
  opacity: 0.58;
  transform: translateY(0);
  -webkit-backdrop-filter: blur(16px) saturate(1.08);
  backdrop-filter: blur(16px) saturate(1.08);
}

body.replica-amazinggrace .o-mainvisual__textarea,
body.replica-amazinggrace .o-mainvisual__ttl {
  position: relative;
  z-index: 2;
}

.o-mainvisual__slider {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.replica-hero-video-wrap {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  background: transparent;
  pointer-events: none;
}

.replica-hero-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  background: transparent;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.2s ease;
}

.replica-hero-photo {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  transform: scale(1.035);
  transition: opacity 1.2s ease, transform 6.5s ease;
}

.replica-hero-photo-wrap {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.replica-hero-video.-active,
.replica-hero-photo.-active {
  opacity: 1 !important;
}

.replica-hero-photo.-active {
  transform: scale(1);
}

body.replica-amazinggrace .replica-amazinggrace-logo {
  display: block;
  height: auto;
  max-width: 100%;
}

body.replica-amazinggrace .replica-amazinggrace-logo--light {
  filter: brightness(0) invert(1) drop-shadow(0 2px 10px rgba(0, 0, 0, 0.28));
}

body.replica-amazinggrace .l-header .c-logo {
  width: 230px;
  height: 88px;
}

body.replica-amazinggrace .l-header .c-logo a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
}

body.replica-amazinggrace .l-header {
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.42);
}

body.replica-amazinggrace .o-mainvisual__textarea {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.24);
}

body.replica-amazinggrace .c-logo-group .replica-amazinggrace-logo {
  width: 278px;
  margin: 0 auto;
}

body.replica-amazinggrace .c-ttl-section > .iconSvg {
  width: 92px;
  height: 36px;
  margin-bottom: 8px;
}

body.replica-amazinggrace .replica-amazinggrace-mark {
  display: block;
  width: 92px;
  height: auto;
  margin: 0 auto;
  opacity: 0.58;
}

body.replica-amazinggrace .replica-amazinggrace-watermark {
  display: block;
  width: min(520px, 42vw);
  height: auto;
  opacity: 0.06;
  filter: grayscale(1);
}

body.replica-amazinggrace .o-lead-concept__hero {
  background-image: url("../amazinggrace/amazinggrace-concept02.jpg");
  isolation: isolate;
}

body.replica-amazinggrace .o-lead-concept__hero:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(50, 60, 54, 0.58) 0%, rgba(72, 81, 75, 0.28) 44%, rgba(244, 245, 244, 0.04) 100%);
}

body.replica-amazinggrace .o-lead-concept__hero .c-ttl-middle {
  position: relative;
  z-index: 1;
  color: #fff;
  text-shadow: 0 3px 18px rgba(0, 0, 0, 0.48), 0 1px 5px rgba(0, 0, 0, 0.36);
}

body.replica-amazinggrace .o-lead-gallery {
  background-image: url("../amazinggrace/amazinggrace-lounge.jpg");
}

body.replica-amazinggrace .o-mainvisual__ttl h2 {
  white-space: nowrap;
}

body.replica-amazinggrace .o-mainvisual__ttl__deco {
  color: rgba(243, 169, 193, 0.82);
}

body.replica-amazinggrace {
  /* ページ全体を単一のアイボリーに統一し、セクション間の色段差（境目のスジ）をなくす。
     旧: ivory #F8F9F8 / beige #EDEFEE / concept #F4F5F4 / pages #F4F5F4 / stay #F4F5F4 を全て #F4F5F4 に集約。 */
  /* アメイジンググレイス前橋：クリーム×ガーデングリーン×ブラウン(ロゴ)。
     旧パレスの gold→緑（会場の庭・緑・白の世界観）、bordeaux→深いブラウン（ロゴのブラウンに同調）。
     変数名は据え置き（コード改修ゼロ）で値のみ差し替え。 */
  --amazinggrace-ivory: #FBFCFB;
  --amazinggrace-beige: #F4F5F4;
  --amazinggrace-gold: #F3A9C1;        /* 上品な薄いセージグリーン：主アクセント（ボタン地・罫・装飾） */
  --amazinggrace-gold-deep: #F3A9C1;   /* ディープセージ：見出し強調・リンク・ホバー */
  --amazinggrace-gold-accent: #F3A9C1; /* 上品なシャンパンゴールド：小英字ラベル・装飾（白×緑×金の金） */
  --amazinggrace-bordeaux: #F3A9C1;    /* 深いブラウン：ドラマティックな濃色ブロック（ロゴ色に同調） */
  --amazinggrace-ink: #4A5052;         /* ウォームチャコール：本文 */
  background: var(--amazinggrace-ivory);
  color: var(--amazinggrace-ink);
  font-family: "Roboto", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

/* 文節（フレーズ）折り返しユニット：節を inline-block 化し、節の途中では改行させない。
   単語の分断や句読点だけが行頭/行末に孤立する不自然な改行を防ぐ（PC/スマホ・端末幅を問わず、
   折り返しは常に節の境目で起きる）。replica.js の phr() と各見出し/コピーで使用。 */
body.replica-amazinggrace .jphr {
  display: inline-block;
}

body.replica-amazinggrace .l-wrapper,
body.replica-amazinggrace .o-lead-concept,
body.replica-amazinggrace .o-lead-report,
body.replica-amazinggrace .o-lead-instagram,
body.replica-amazinggrace .o-lead-information {
  background: var(--amazinggrace-ivory);
}

body.replica-amazinggrace .l-wrapper {
  overflow: visible;
}

body.replica-amazinggrace .o-nav-bar,
body.replica-amazinggrace .o-lead-concept,
body.replica-amazinggrace .o-lead-pages,
body.replica-amazinggrace .o-lead-fair,
body.replica-amazinggrace .o-lead-style,
body.replica-amazinggrace .o-lead-gallery,
body.replica-amazinggrace .o-lead-report,
body.replica-amazinggrace .o-lead-instagram,
body.replica-amazinggrace .o-lead-information,
body.replica-amazinggrace .o-lead-sns,
body.replica-amazinggrace .o-unit-page-pickup,
body.replica-amazinggrace .l-footer {
  position: relative;
  z-index: 2;
}

/* フッター背景にパレスホテル大宮らしい洗練カットを敷く（暗いオーバーレイで文字可読性を確保） */
body.replica-amazinggrace .o-foot-content {
  background-image:
    linear-gradient(180deg, rgba(21, 24, 22, 0.86) 0%, rgba(18, 21, 19, 0.8) 50%, rgba(19, 22, 21, 0.88) 100%),
    url("../amazinggrace/amazinggrace-official-pc-mv03.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

body.replica-amazinggrace .o-lead-fair,
body.replica-amazinggrace .o-unit-page-pickup {
  background: var(--amazinggrace-beige);
}

body.replica-amazinggrace .c-ttl-section__en,
body.replica-amazinggrace .c-ttl-item,
body.replica-amazinggrace .c-copy-basic {
  color: var(--amazinggrace-gold-deep);
}

body.replica-amazinggrace .c-desc,
body.replica-amazinggrace .c-copy,
body.replica-amazinggrace .c-ttl-section__ja {
  color: #565E60;
}

body.replica-amazinggrace .c-ttl-section__en,
body.replica-amazinggrace .c-ttl-item,
body.replica-amazinggrace .c-copy-basic,
body.replica-amazinggrace .o-gnav > ul > li,
body.replica-amazinggrace .o-mainvisual__ttl,
body.replica-amazinggrace .o-mainvisual__copy,
body.replica-amazinggrace .o-mainvisual__ttl__deco,
body.replica-amazinggrace .c-box-pickup__schedule .-date {
  font-family: "Cormorant Infant", "Cinzel", "Times New Roman", "Yu Mincho", YuMincho, serif;
}

body.replica-amazinggrace .l-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(22px, 3.4vw, 58px);
  min-width: 0;
  box-sizing: border-box;
  padding: 13px clamp(30px, 4vw, 72px);
  background: linear-gradient(180deg, rgba(38, 46, 41, 0.5) 0%, rgba(243, 169, 193, 0.18) 72%, rgba(38, 46, 41, 0) 100%);
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.58);
  transition: background 0.35s ease, box-shadow 0.35s ease, padding 0.35s ease;
}

body.replica-amazinggrace .l-header.-fixed,
body.replica-amazinggrace .l-header.-menu {
  padding-top: 11px;
  padding-bottom: 11px;
  background: rgba(248, 249, 248, 0.9);
  border-bottom: 1px solid rgba(243, 169, 193, 0.18);
  box-shadow: 0 10px 34px rgba(70, 80, 74, 0.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
  text-shadow: none;
}

body.replica-amazinggrace .l-header .c-logo {
  grid-column: 1;
  justify-self: start;
  width: clamp(168px, 14vw, 212px);
  height: 34px;
  margin: 0;
}

body.replica-amazinggrace .l-header .replica-amazinggrace-logo {
  width: 100%;
  height: 100%;
  max-height: 34px;
  object-fit: contain;
  margin: 0 auto;
}

body.replica-amazinggrace .l-header.-fixed .replica-amazinggrace-logo,
body.replica-amazinggrace .l-header.-menu .replica-amazinggrace-logo {
  filter: none;
}

body.replica-amazinggrace .o-gnav {
  grid-column: 2;
  justify-self: end;
  min-width: 0;
}

body.replica-amazinggrace .o-gnav > ul {
  gap: 0;
  align-items: center;
  justify-content: flex-end;
}

body.replica-amazinggrace .o-gnav > ul > li {
  align-items: center;
  font-size: clamp(1.05rem, 0.78vw, 1.22rem);
  letter-spacing: 0.1em;
  line-height: 1;
}

body.replica-amazinggrace .o-gnav > ul > li:nth-child(n+2):before {
  margin: 0 clamp(9px, 1vw, 16px);
  color: rgba(255, 255, 255, 0.58);
}

body.replica-amazinggrace .l-header.-fixed .o-gnav > ul > li:nth-child(n+2):before,
body.replica-amazinggrace .l-header.-menu .o-gnav > ul > li:nth-child(n+2):before {
  color: rgba(243, 169, 193, 0.34);
}

body.replica-amazinggrace .o-gnav__item a {
  padding: 8px 0;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

body.replica-amazinggrace .l-header.-fixed .o-gnav__item a,
body.replica-amazinggrace .l-header.-menu .o-gnav__item a {
  text-shadow: none;
}

body.replica-amazinggrace .o-gnav__child {
  display: none !important;
}

body.replica-amazinggrace .o-mainvisual:after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(26, 33, 29, 0.08) 0%, rgba(26, 33, 29, 0.08) 34%, rgba(29, 36, 32, 0.4) 58%, rgba(22, 29, 25, 0.72) 82%, rgba(17, 20, 19, 0.9) 100%),
    radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0) 42%),
    linear-gradient(90deg, rgba(24, 31, 27, 0.22) 0%, rgba(24, 31, 27, 0) 35%, rgba(24, 31, 27, 0.2) 100%);
}

body.replica-amazinggrace .o-mainvisual__timer,
body.replica-amazinggrace .o-mainvisual__dots {
  display: none;
}

body.replica-amazinggrace .o-mainvisual__textarea,
body.replica-amazinggrace .o-mainvisual__timer,
body.replica-amazinggrace .o-mainvisual__dots,
body.replica-amazinggrace .c-box-pickup {
  z-index: 2;
}

body.replica-amazinggrace .o-mainvisual__textarea {
  position: absolute;
  top: auto;
  bottom: clamp(86px, 12vh, 138px);
  left: 50%;
  width: min(660px, calc(100% - 64px));
  transform: translateX(-50%);
  text-align: left;
  text-shadow: 0 3px 22px rgba(0, 0, 0, 0.42), 0 1px 6px rgba(0, 0, 0, 0.36);
}

body.replica-amazinggrace .o-mainvisual__copy {
  display: block;
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.96);
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(1.85rem, 1.75vw, 2.7rem);
  line-height: 1.9;
  letter-spacing: 0.12em;
  text-shadow: 0 4px 30px rgba(0, 0, 0, 0.74), 0 1px 5px rgba(0, 0, 0, 0.68);
  transform: none !important;
}

body.replica-amazinggrace .o-mainvisual__copy span {
  display: block;
}

body.replica-amazinggrace .o-mainvisual__ttl h2 {
  color: #fff;
  text-shadow: 0 3px 28px rgba(26, 29, 27, 0.45);
}

body.replica-amazinggrace .o-mainvisual__ttl {
  display: none;
}

body.replica-amazinggrace .o-mainvisual__ttl__deco {
  display: none;
}

body.replica-amazinggrace .o-nav-bar {
  position: sticky;
  top: var(--amazinggrace-header-offset, 154px);
  z-index: 8;
  background: rgba(248, 249, 248, 0.82);
  -webkit-backdrop-filter: blur(16px) saturate(1.08);
  backdrop-filter: blur(16px) saturate(1.08);
  box-shadow: 0 1px 0 rgba(243, 169, 193, 0.16);
}

body.replica-amazinggrace .o-nav-bar__btns .c-btn-icon a {
  transition: background-color 0.35s ease, opacity 0.35s ease;
}

body.replica-amazinggrace .o-lead-concept__hero.prlxView,
body.replica-amazinggrace .c-box-caption.-full .c-box-caption__img.prlxView {
  transform: translate(-50%, 0);
}

body.replica-amazinggrace .c-box-pickup.-middle {
  position: fixed;
  left: 24px;
  right: auto;
  bottom: 24px;
  transform: none;
  z-index: 1000;
  border-color: rgba(243, 169, 193, 0.92);
  box-shadow: 0 14px 34px rgba(53, 60, 56, 0.18);
}

body.replica-amazinggrace.replica-concept-active .c-box-pickup.-middle {
  opacity: 0.72;
  transform: translateX(calc(-100% + 54px)) translateY(10px) scale(0.96);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

body.replica-amazinggrace.replica-concept-active .c-box-pickup.-middle:hover {
  opacity: 1;
  transform: none;
}

body.replica-amazinggrace .c-btn a,
body.replica-amazinggrace .c-item-fair__btn,
body.replica-amazinggrace .c-btn-large a {
  background-color: var(--amazinggrace-gold);
  border-color: var(--amazinggrace-gold);
  color: #fff;
}

body.replica-amazinggrace .c-btn a:hover,
body.replica-amazinggrace .c-btn-large a:hover {
  background-color: var(--amazinggrace-gold-deep);
  border-color: var(--amazinggrace-gold-deep);
}

body.replica-amazinggrace a[data-demo-disabled="true"] {
  cursor: default;
}

body.replica-amazinggrace .o-lead-pages .c-box-caption,
body.replica-amazinggrace .o-lead-style .c-box-caption {
  min-width: 0;
}

body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea,
body.replica-amazinggrace .o-lead-style .c-box-caption__textarea {
  box-sizing: border-box;
  max-width: 100%;
}

body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea:before,
body.replica-amazinggrace .o-lead-style .c-box-caption__textarea:before {
  box-sizing: border-box;
  max-width: calc(100% + 70px);
}

body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea__inner,
body.replica-amazinggrace .o-lead-style .c-box-caption__textarea__inner {
  box-sizing: border-box;
  max-width: 100%;
  padding-right: clamp(18px, 2vw, 34px);
  /* 上端は:beforeで50pxの白余白があるのに下端は0で窮屈だったため、下にも余白を足して上下バランスよく収める */
  padding-bottom: clamp(28px, 2.4vw, 40px);
}

body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea .c-ttl-item,
body.replica-amazinggrace .o-lead-style .c-box-caption__textarea .c-ttl-item {
  line-height: 1.05;
}

body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea .c-desc.-hyphen,
body.replica-amazinggrace .o-lead-style .c-box-caption__textarea .c-desc.-hyphen {
  margin-top: 6px;
  line-height: 1.45;
  letter-spacing: 0.08em;
}

body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea .c-copy,
body.replica-amazinggrace .o-lead-style .c-box-caption__textarea .c-copy {
  max-width: 100%;
  font-size: clamp(1.45rem, 1.05vw, 1.85rem);
  line-height: 1.62;
  letter-spacing: 0.055em;
  overflow-wrap: break-word;
}

body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea .c-desc,
body.replica-amazinggrace .o-lead-style .c-box-caption__textarea .c-desc {
  max-width: 100%;
  font-size: clamp(1.16rem, 0.86vw, 1.34rem);
  line-height: 1.9;
  letter-spacing: 0.035em;
  overflow-wrap: break-word;
  word-break: normal;
}

body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea .c-desc p,
body.replica-amazinggrace .o-lead-style .c-box-caption__textarea .c-desc p {
  max-width: 100%;
}

body.replica-amazinggrace .c-box-pickup.-middle .c-box-pickup__textarea {
  padding: 15px 16px 18px;
}

body.replica-amazinggrace .c-box-pickup.-middle .c-box-pickup__ttl {
  letter-spacing: 0.04em;
  line-height: 1.5;
}

body.replica-amazinggrace .c-link-list a:before,
body.replica-amazinggrace .c-link-sp-accordion__list a:before {
  content: "-" !important;
  transform: none !important;
  margin-right: 0.45em;
}

body.replica-amazinggrace .c-desc.-hyphen:before,
body.replica-amazinggrace .c-ttl-sub:before,
body.replica-amazinggrace .c-ttl.-hyphen.-list-tit:before,
body.replica-amazinggrace .c-modal-dress__data dt:before {
  content: "\2015" !important;
}

body.replica-amazinggrace .o-gnav__item a:before {
  content: "" !important;
  display: none !important;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .l-header {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 10px 16px 8px;
    background: linear-gradient(180deg, rgba(38, 46, 41, 0.6) 0%, rgba(243, 169, 193, 0.24) 70%, rgba(38, 46, 41, 0) 100%);
  }

  body.replica-amazinggrace .l-header .c-logo {
    width: 154px;
    height: 32px;
    margin-bottom: 0;
  }

  body.replica-amazinggrace .l-header .replica-amazinggrace-logo {
    width: 100%;
    height: 100%;
    max-height: 32px;
  }

  body.replica-amazinggrace .o-mainvisual__textarea {
    bottom: clamp(86px, 13vh, 124px);
    width: calc(100vw - 58px);
    white-space: normal;
  }

  body.replica-amazinggrace .o-mainvisual__copy {
    display: block;
    font-size: clamp(1.68rem, 5.2vw, 2.2rem);
    line-height: 1.82;
    letter-spacing: 0.1em;
    transform: none !important;
  }

  body.replica-amazinggrace .o-mainvisual__copy span {
    display: block;
  }

  body.replica-amazinggrace .o-mainvisual__ttl {
    display: none;
  }

  body.replica-amazinggrace .o-mainvisual__ttl h2 {
    white-space: normal;
  }

  body.replica-amazinggrace .c-box-pickup,
  body.replica-amazinggrace .c-box-pickup.-middle {
    position: fixed;
    left: 12px;
    right: auto;
    bottom: 88px;
    transform: none;
    z-index: 1000;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
  }

  body.replica-amazinggrace .o-lead-concept__hero.prlxView,
  body.replica-amazinggrace .c-box-caption.-full .c-box-caption__img.prlxView {
    transform: none;
  }

  body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea,
  body.replica-amazinggrace .o-lead-style .c-box-caption__textarea {
    padding: 26px 22px 28px;
  }

  body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea__inner,
  body.replica-amazinggrace .o-lead-style .c-box-caption__textarea__inner {
    padding: 18px 0 0;
  }

  body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea .c-copy,
  body.replica-amazinggrace .o-lead-style .c-box-caption__textarea .c-copy {
    font-size: 1.42rem;
    line-height: 1.68;
    letter-spacing: 0.035em;
  }

  body.replica-amazinggrace .o-lead-pages .c-box-caption__textarea .c-desc,
  body.replica-amazinggrace .o-lead-style .c-box-caption__textarea .c-desc {
    font-size: 1.16rem;
    line-height: 1.82;
    letter-spacing: 0.02em;
  }
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
  --concept-opacity: 1;
  --concept-panel-y: 0px;
  --concept-media-y: 0px;
  --concept-title-y: 0px;
  --concept-scale: 1;
  --concept-backdrop-blur: 18px;
  position: relative;
  z-index: 4;
  margin-top: 0;
  padding: clamp(68px, 8vw, 132px) 0 clamp(100px, 10vw, 164px);
  background: transparent;
  overflow: hidden;
  isolation: isolate;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::before {
  content: "";
  position: absolute;
  inset: 0 0 -18vh;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(253, 235, 241, 0.88) 0%, rgba(253, 235, 241, 0.72) 42%, rgba(244, 245, 244, 0.28) 100%),
    url("../amazinggrace/amazinggrace-mv03.jpg") center top / cover no-repeat;
  filter: blur(22px);
  opacity: 0.68;
  transform: scale(1.07);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(248, 249, 248, 0.1) 0%, rgba(248, 249, 248, 0.58) 18%, rgba(248, 249, 248, 0.96) 100%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.14) 52%, rgba(255, 255, 255, 0.48) 100%);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
  width: min(1480px, calc(100% - 8vw));
  min-height: min(860px, calc(100vh - 52px));
  display: grid;
  grid-template-columns: minmax(320px, 0.84fr) minmax(500px, 1.16fr);
  grid-template-areas:
    "heading media"
    "content media";
  align-items: center;
  column-gap: clamp(52px, 6vw, 112px);
  row-gap: clamp(28px, 4vw, 56px);
  padding: clamp(68px, 6vw, 112px);
  background: rgba(255, 255, 255, 0.64);
  border: 1px solid rgba(255, 255, 255, 0.68);
  box-shadow: 0 30px 86px rgba(58, 66, 60, 0.13), inset 0 1px 0 rgba(255, 255, 255, 0.68);
  -webkit-backdrop-filter: blur(var(--concept-backdrop-blur)) saturate(1.08);
  backdrop-filter: blur(var(--concept-backdrop-blur)) saturate(1.08);
  opacity: var(--concept-opacity);
  transform: translateY(var(--concept-panel-y));
  transition: opacity 0.16s linear, transform 0.16s linear, -webkit-backdrop-filter 0.16s linear, backdrop-filter 0.16s linear;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section {
  grid-area: heading;
  margin: 0;
  text-align: left;
  transform: translateY(var(--concept-title-y));
  transition: transform 0.16s linear;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section > .iconSvg {
  display: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__en {
  color: rgba(61, 69, 63, 0.7);
  font-size: clamp(7.2rem, 7vw, 12.8rem);
  line-height: 0.9;
  letter-spacing: 0.04em;
  text-transform: capitalize;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__ja {
  display: block;
  margin-top: clamp(18px, 2vw, 30px);
  color: rgba(70, 77, 79, 0.74);
  font-size: clamp(1.15rem, 0.95vw, 1.45rem);
  letter-spacing: 0.24em;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero {
  grid-area: media;
  width: 100%;
  min-width: 0;
  height: clamp(430px, 46vw, 640px);
  margin: 0;
  overflow: hidden;
  background-image: url("../amazinggrace/amazinggrace-exterior.jpg");
  background-position: center center;
  background-size: cover;
  box-shadow: 0 24px 70px rgba(50, 56, 52, 0.16);
  opacity: var(--concept-opacity);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero.prlxView {
  transform: translateY(var(--concept-media-y)) scale(var(--concept-scale)) !important;
  transition: opacity 0.16s linear, transform 0.16s linear;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero::before {
  background:
    linear-gradient(180deg, rgba(30, 37, 33, 0.08) 0%, rgba(30, 37, 33, 0.1) 58%, rgba(30, 37, 33, 0.36) 100%),
    linear-gradient(90deg, rgba(30, 37, 33, 0.26) 0%, rgba(30, 37, 33, 0) 58%);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero .c-ttl-middle {
  position: absolute;
  left: clamp(34px, 4.2vw, 68px);
  right: clamp(28px, 3.4vw, 56px);
  bottom: clamp(32px, 4vw, 64px);
  top: auto;
  width: auto;
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0;
  text-shadow: 0 4px 26px rgba(25, 28, 26, 0.48);
}

body.replica-amazinggrace .replica-concept-ja-line {
  display: block;
  max-width: 100%;
  color: rgba(255, 255, 255, 0.94);
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(1.35rem, 1.2vw, 1.9rem);
  font-weight: 400;
  letter-spacing: 0.17em;
  line-height: 1.6;
  white-space: nowrap;
}

body.replica-amazinggrace .replica-concept-en-line {
  display: block;
  margin-top: clamp(10px, 1.2vw, 18px);
  color: rgba(255, 255, 255, 0.9);
  font-family: "Cormorant Infant", "Cormorant Garamond", "Cinzel", "Times New Roman", serif;
  font-size: clamp(5.2rem, 5.8vw, 9.2rem);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 0.82;
  text-transform: uppercase;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__content {
  grid-area: content;
  display: block;
  max-width: 560px;
  transform: translateY(var(--concept-title-y));
  transition: transform 0.16s linear;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__img01,
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__img02 {
  display: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea {
  width: auto;
  margin: 0;
  padding: 0;
  background: transparent;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic {
  margin: 0 0 clamp(22px, 2.4vw, 34px);
  color: #474E50;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(2.1rem, 1.9vw, 3rem);
  line-height: 1.75;
  letter-spacing: 0.18em;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-desc {
  max-width: 520px;
  color: rgba(48, 54, 50, 0.82);
  font-size: clamp(1.25rem, 0.95vw, 1.5rem);
  line-height: 2.25;
  letter-spacing: 0.07em;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-btn {
  margin: clamp(30px, 3.2vw, 48px) 0 0;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-btn a {
  min-width: 250px;
  background: #767E80;
  border-color: #767E80;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__deco {
  left: auto;
  right: clamp(28px, 4vw, 70px);
  top: clamp(28px, 4vw, 70px);
  z-index: 0;
  opacity: 0.08;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .replica-amazinggrace-watermark {
  opacity: 0.32;
}

body.replica-amazinggrace .replica-motion {
  --motion-distance: 56px;
  opacity: 0;
  filter: blur(9px);
  clip-path: inset(0 0 12% 0);
  transform: translate3d(0, var(--motion-distance), 0) scale(0.985);
  transition:
    opacity 0.92s cubic-bezier(0.2, 0.8, 0.2, 1),
    filter 0.92s ease,
    clip-path 1.05s cubic-bezier(0.2, 0.8, 0.2, 1),
    transform 1.05s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition-delay: calc(var(--motion-index, 0) * 70ms);
  will-change: opacity, filter, clip-path, transform;
}

body.replica-amazinggrace .replica-motion-left {
  transform: translate3d(-46px, var(--motion-distance), 0) scale(0.985);
}

body.replica-amazinggrace .replica-motion-right {
  transform: translate3d(46px, var(--motion-distance), 0) scale(0.985);
}

body.replica-amazinggrace .replica-motion.replica-motion-in {
  opacity: 1;
  filter: blur(0);
  clip-path: inset(0);
  transform: translate3d(0, 0, 0) scale(1);
}

body.replica-amazinggrace .replica-motion .c-box-caption__img img,
body.replica-amazinggrace .replica-motion .c-item-report__img img,
body.replica-amazinggrace .replica-motion .c-item-information__img img,
body.replica-amazinggrace .replica-motion .c-item-pagelink__img img {
  transform: scale(1.06);
  transition: transform 1.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}

body.replica-amazinggrace .replica-motion.replica-motion-in .c-box-caption__img img,
body.replica-amazinggrace .replica-motion.replica-motion-in .c-item-report__img img,
body.replica-amazinggrace .replica-motion.replica-motion-in .c-item-information__img img,
body.replica-amazinggrace .replica-motion.replica-motion-in .c-item-pagelink__img img {
  transform: scale(1);
}

@media (max-width: 980px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "heading"
      "media"
      "content";
    row-gap: 34px;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__content {
    max-width: none;
  }
}

@media (max-width: 750px) {
  body.replica-amazinggrace .o-nav-bar {
    position: fixed;
    top: auto;
    z-index: 99;
  }

  body.replica-amazinggrace .o-mainvisual {
    height: calc(100svh - 70px);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
    margin-top: 0;
    padding: 76px 0 72px;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
    width: calc(100% - 28px);
    min-height: 0;
    padding: 36px 24px 42px;
    row-gap: 26px;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__en {
    font-size: clamp(5.4rem, 19vw, 8rem);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero {
    height: min(84vw, 360px);
    min-width: 0;
    margin: 0;
    padding: 0;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero.prlxView {
    transform: translateY(var(--concept-media-y)) scale(var(--concept-scale)) !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero .c-ttl-middle {
    left: 22px;
    right: 18px;
    bottom: 22px;
  }

  body.replica-amazinggrace .replica-concept-ja-line {
    font-size: clamp(1rem, 3.2vw, 1.35rem);
    letter-spacing: 0.08em;
  }

  body.replica-amazinggrace .replica-concept-en-line {
    margin-top: 8px;
    font-size: clamp(3.8rem, 12vw, 5.8rem);
    letter-spacing: 0.06em;
  }

  body.replica-amazinggrace .replica-motion-left,
  body.replica-amazinggrace .replica-motion-right {
    transform: translate3d(0, var(--motion-distance), 0) scale(0.985);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic {
    font-size: 1.9rem;
    line-height: 1.8;
    letter-spacing: 0.12em;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-desc {
    font-size: 1.25rem;
    line-height: 2;
  }
}

body.replica-amazinggrace .replica-amazinggrace-logo--light {
  filter: brightness(0) saturate(1);
  opacity: 0.9;
}

body.replica-amazinggrace .l-header {
  background: linear-gradient(180deg, rgba(251, 252, 251, 0.88) 0%, rgba(251, 252, 251, 0.48) 54%, rgba(251, 252, 251, 0) 100%);
  text-shadow: none;
}

body.replica-amazinggrace .o-gnav__item a,
body.replica-amazinggrace .o-gnav > ul > li {
  color: rgba(38, 44, 40, 0.86);
  text-shadow: none;
}

body.replica-amazinggrace .o-gnav > ul > li:nth-child(n+2):before {
  color: rgba(243, 169, 193, 0.38);
}

body.replica-amazinggrace .replica-hero-photo,
body.replica-amazinggrace .replica-hero-photo-wrap {
  background-position: center top;
}

body.replica-amazinggrace .o-mainvisual:after {
  background:
    linear-gradient(180deg, rgba(251, 252, 251, 0.08) 0%, rgba(251, 252, 251, 0) 36%, rgba(42, 48, 44, 0.22) 54%, rgba(27, 30, 28, 0.72) 82%, rgba(19, 22, 21, 0.92) 100%),
    linear-gradient(90deg, rgba(23, 30, 26, 0.2) 0%, rgba(23, 30, 26, 0) 32%, rgba(23, 30, 26, 0.18) 100%);
}

body.replica-amazinggrace .o-mainvisual__textarea {
  bottom: clamp(74px, 10vh, 118px);
  width: min(430px, calc(100% - 72px));
}

body.replica-amazinggrace .o-mainvisual__copy {
  color: rgba(255, 255, 255, 0.96);
  font-size: clamp(2rem, 1.9vw, 3rem);
  line-height: 1.85;
  letter-spacing: 0.13em;
  text-shadow: 0 5px 34px rgba(0, 0, 0, 0.76), 0 1px 6px rgba(0, 0, 0, 0.58);
}

body.replica-amazinggrace .o-mainvisual__copy em {
  display: inline-block;
  margin: 0 0.08em;
  font-size: 1.72em;
  font-style: normal;
  font-weight: 400;
  line-height: 0.6;
  /* 数字の強調。白で抜く（淡いピンクだと写真上で色が乗って見えるため） */
  color: #FFFFFF;
}

body.replica-amazinggrace .replica-hero-rule {
  display: block;
  width: 36px;
  height: 1px;
  margin: 12px 0 0;
  background: rgba(243, 169, 193, 0.86);
}

body.replica-amazinggrace .replica-hero-actions {
  display: grid;
  gap: 14px;
  margin-top: clamp(28px, 3.8vh, 42px);
  width: min(380px, 100%);
}

body.replica-amazinggrace .replica-hero-action {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 22px;
  border: 1px solid rgba(255, 255, 255, 0.64);
  color: #fff;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: 1.24rem;
  letter-spacing: 0.14em;
  text-decoration: none;
  text-shadow: 0 2px 12px rgba(27, 34, 29, 0.4);
  transition: background-color 0.32s ease, border-color 0.32s ease, transform 0.32s ease;
}

body.replica-amazinggrace .replica-hero-action span {
  margin-left: 20px;
  letter-spacing: 0;
}

body.replica-amazinggrace .replica-hero-action--primary {
  border-color: rgba(243, 169, 193, 0.9);
  background: linear-gradient(90deg, rgba(243, 169, 193, 0.92), rgba(253, 235, 241, 0.86));
}

body.replica-amazinggrace .replica-hero-action--ghost {
  background: rgba(255, 255, 255, 0.04);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

body.replica-amazinggrace .replica-hero-scroll {
  position: absolute;
  left: 50%;
  bottom: 18px;
  z-index: 3;
  display: grid;
  justify-items: center;
  gap: 8px;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.62);
  pointer-events: none;
}

/* スクロール誘導：細いトラックの中を、光る丸が上→下へ繰り返し流れる（スクロールを促す） */
body.replica-amazinggrace .replica-hero-scroll span {
  position: relative;
  width: 1px;
  height: 46px;
  background: rgba(255, 255, 255, 0.28);
  overflow: visible;
}
body.replica-amazinggrace .replica-hero-scroll span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: 6px;
  height: 6px;
  margin-left: -3px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 0 9px rgba(255, 255, 255, 0.65);
  animation: rxScrollDot 1.9s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}
@keyframes rxScrollDot {
  0% { transform: translateY(-3px); opacity: 0; }
  16% { opacity: 1; }
  70% { opacity: 1; }
  100% { transform: translateY(42px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .replica-hero-scroll span::after { animation: none; top: 20px; }
}

/* PC版：ファーストビューをちょうど1画面（100svh）に収める。
   他ルールの min-height:720px が短いPCビューポートで画面を超え「FVがでかい」原因になるため、
   PC幅では min-height を解除し高さを100svhに固定（max-heightで超過も防止）。 */
@media (min-width: 751px) {
  body.replica-amazinggrace .o-mainvisual {
    height: 100vh !important;
    height: 100svh !important;
    min-height: 0 !important;
    max-height: 100svh !important;
  }
}

/* （FV下部の重なり回避ブロックはファイル末尾へ移動＝後方の !important ロゴ規則に勝たせるため） */

body.replica-amazinggrace .replica-hero-scroll small {
  font-family: "Cinzel", "Times New Roman", serif;
  font-size: 0.78rem;
  letter-spacing: 0.32em;
}

body.replica-amazinggrace .c-box-pickup.-middle {
  opacity: 0;
  pointer-events: none;
  transform: translateY(16px) scale(0.98);
  transition: opacity 0.34s ease, transform 0.34s ease;
}

body.replica-amazinggrace.replica-after-hero .c-box-pickup.-middle {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}

body.replica-amazinggrace.replica-concept-active .c-box-pickup.-middle {
  opacity: 0.56;
  transform: translateX(calc(-100% + 54px)) translateY(10px) scale(0.96);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
  min-height: 100svh;
  padding: clamp(90px, 9vw, 150px) 0 clamp(96px, 10vw, 150px);
  background:
    linear-gradient(90deg, rgba(251, 252, 251, 0.96) 0%, rgba(251, 252, 251, 0.9) 45%, rgba(251, 252, 251, 0.72) 100%),
    #F4F5F4;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::before,
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::after {
  display: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
  position: relative;
  min-height: min(820px, calc(100svh - 80px));
  width: min(1480px, calc(100% - 9vw));
  grid-template-columns: minmax(360px, 0.78fr) minmax(520px, 1.22fr);
  grid-template-areas:
    "heading media"
    "content media";
  align-items: center;
  padding: clamp(70px, 6vw, 108px);
  overflow: hidden;
  background: transparent;
  border: 0;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
  content: "AMAZING";
  position: absolute;
  top: clamp(0px, 2vw, 34px);
  right: -0.1em;
  z-index: 0;
  color: rgba(243, 169, 193, 0.1);
  font-family: "Cormorant Infant", "Times New Roman", serif;
  font-size: clamp(9rem, 13vw, 19rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 0.8;
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
  content: "GRACE";
  position: absolute;
  left: clamp(-28px, -1.5vw, 0px);
  bottom: -0.25em;
  z-index: 0;
  color: rgba(255, 255, 255, 0.82);
  font-family: "Cormorant Infant", "Times New Roman", serif;
  font-size: clamp(8rem, 13vw, 18rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 0.8;
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section {
  position: relative;
  z-index: 2;
  align-self: end;
  width: auto;
  margin: 0 0 clamp(18px, 2vw, 30px);
  text-align: left;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section > .iconSvg,
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .replica-amazinggrace-mark {
  display: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__en {
  color: var(--amazinggrace-gold-deep);
  font-size: clamp(1.5rem, 1.25vw, 2rem);
  letter-spacing: 0.34em;
  text-transform: uppercase;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__ja {
  margin-top: 8px;
  color: rgba(243, 169, 193, 0.8);
  font-size: 1.1rem;
  letter-spacing: 0.24em;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section::after {
  content: "";
  display: block;
  width: 32px;
  height: 1px;
  margin-top: 16px;
  background: rgba(243, 169, 193, 0.7);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero {
  position: relative;
  z-index: 1;
  height: clamp(540px, 58vw, 820px);
  align-self: stretch;
  background-image: url("../amazinggrace/amazinggrace-official-concept01.jpg");
  background-position: center center;
  background-size: cover;
  box-shadow: none;
  opacity: var(--concept-opacity);
  mix-blend-mode: multiply;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero::before {
  background: linear-gradient(90deg, rgba(251, 252, 251, 0.78) 0%, rgba(251, 252, 251, 0.18) 42%, rgba(251, 252, 251, 0) 100%);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero .c-ttl-middle {
  display: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__content {
  position: relative;
  z-index: 2;
  max-width: 620px;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea::before {
  content: "AMAZING GRACE MAEBASHI WEDDING";
  display: block;
  margin: 0 0 clamp(22px, 2.4vw, 34px);
  padding-left: 24px;
  border-left: 1px solid rgba(243, 169, 193, 0.6);
  color: rgba(243, 169, 193, 0.84);
  font-family: "Cinzel", "Times New Roman", serif;
  font-size: 1rem;
  letter-spacing: 0.28em;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic {
  color: #26292A;
  font-size: clamp(3rem, 3vw, 5rem);
  line-height: 1.55;
  letter-spacing: 0.055em;
}

body.replica-amazinggrace .replica-weave-title {
  font-family: "Cormorant Infant", "Cormorant Garamond", "Times New Roman", serif;
  letter-spacing: 0.01em;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-desc {
  max-width: 460px;
  color: rgba(44, 50, 46, 0.84);
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(1.35rem, 1.05vw, 1.62rem);
  line-height: 2.18;
  letter-spacing: 0.08em;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-desc p + p {
  margin-top: 1.2em;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .l-header {
    height: 72px;
    padding: 18px 26px 12px;
    background: linear-gradient(180deg, rgba(251, 252, 251, 0.84) 0%, rgba(251, 252, 251, 0.28) 72%, rgba(251, 252, 251, 0) 100%);
  }

  body.replica-amazinggrace .l-header .c-logo {
    width: 202px;
    height: 32px;
  }

  body.replica-amazinggrace .l-header .replica-amazinggrace-logo {
    max-height: 32px;
  }

  body.replica-amazinggrace .o-nav-bar {
    display: none;
  }

  body.replica-amazinggrace .o-mainvisual {
    height: 100svh;
    min-height: 720px;
  }

  body.replica-amazinggrace .replica-hero-photo,
  body.replica-amazinggrace .replica-hero-photo-wrap {
    background-position: center top;
  }

  body.replica-amazinggrace .o-mainvisual:after {
    background:
      linear-gradient(180deg, rgba(251, 252, 251, 0.05) 0%, rgba(251, 252, 251, 0) 42%, rgba(33, 37, 35, 0.16) 53%, rgba(29, 32, 30, 0.76) 73%, rgba(19, 22, 21, 0.94) 100%),
      linear-gradient(90deg, rgba(23, 26, 25, 0.22) 0%, rgba(23, 26, 25, 0) 34%, rgba(23, 26, 25, 0.18) 100%);
  }

  body.replica-amazinggrace .o-mainvisual__textarea {
    bottom: clamp(74px, 8.8vh, 96px);
    left: 50%;
    width: min(292px, calc(100vw - 82px));
  }

  body.replica-amazinggrace .o-mainvisual__copy {
    font-size: clamp(1.82rem, 5.3vw, 2.18rem);
    line-height: 1.78;
    letter-spacing: 0.1em;
  }

  body.replica-amazinggrace .replica-hero-rule {
    margin-top: 10px;
  }

  body.replica-amazinggrace .replica-hero-actions {
    gap: 12px;
    margin-top: clamp(28px, 4.2vh, 38px);
  }

  body.replica-amazinggrace .replica-hero-action {
    min-height: 44px;
    font-size: 1.1rem;
    letter-spacing: 0.1em;
  }

  body.replica-amazinggrace .replica-hero-scroll {
    bottom: 12px;
  }

  body.replica-amazinggrace .c-box-pickup,
  body.replica-amazinggrace .c-box-pickup.-middle {
    bottom: 22px;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
    min-height: 100svh;
    padding: 0;
    background: #F4F5F4;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
    display: block;
    width: 100%;
    min-height: 100svh;
    padding: 118px 34px 56px;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
    top: 122px;
    right: -0.45em;
    font-size: clamp(8.4rem, 31vw, 13rem);
    color: rgba(243, 169, 193, 0.11);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
    left: 18px;
    bottom: 18px;
    font-size: clamp(7.4rem, 31vw, 12rem);
    color: rgba(255, 255, 255, 0.92);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section {
    margin: 0 0 42px;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__en {
    font-size: 1.45rem;
    letter-spacing: 0.3em;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__ja {
    font-size: 1rem;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero {
    position: absolute;
    right: -92px;
    bottom: 0;
    z-index: 0;
    width: 96%;
    height: 72%;
    min-width: 0;
    margin: 0;
    background-image: url("../amazinggrace/amazinggrace-official-sp-mv01.jpg");
    background-position: center bottom;
    background-size: cover;
    opacity: var(--concept-opacity);
    mix-blend-mode: multiply;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero.prlxView {
    transform: translateY(calc(var(--concept-media-y) * 0.45)) scale(var(--concept-scale)) !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero::before {
    background:
      linear-gradient(90deg, rgba(251, 252, 251, 0.96) 0%, rgba(251, 252, 251, 0.66) 42%, rgba(251, 252, 251, 0.08) 100%),
      linear-gradient(180deg, rgba(251, 252, 251, 0.24) 0%, rgba(251, 252, 251, 0) 44%, rgba(251, 252, 251, 0.28) 100%);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__content {
    max-width: 100%;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea::before {
    margin-bottom: 24px;
    padding-left: 18px;
    font-size: 0.78rem;
    letter-spacing: 0.24em;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic {
    max-width: 330px;
    font-size: clamp(2.02rem, 6.15vw, 2.48rem);
    line-height: 1.68;
    letter-spacing: 0.01em;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-desc {
    max-width: 275px;
    margin-top: 28px;
    font-size: 1.18rem;
    line-height: 2.05;
    letter-spacing: 0.06em;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-btn {
    display: none;
  }
}

body.replica-amazinggrace .o-nav-bar,
body.replica-amazinggrace .c-box-pickup,
body.replica-amazinggrace .c-box-pickup.-middle {
  display: none !important;
}

body.replica-amazinggrace .o-mainvisual {
  min-height: 720px;
}

/* 初期表示のフォールバック（!importantなし）。各レイヤーの画像は replica.js が制御し、
   スライドショー（複数枚クロスフェード）できるよう .replica-hero-photo への画像固定は外す */
body.replica-amazinggrace .replica-hero-photo-wrap {
  background-image: url("../amazinggrace/amazinggrace-official-pc-mv03.jpg");
  background-position: center center;
}

body.replica-amazinggrace .replica-hero-photo {
  background-position: center center;
  transform: scale(1.018);
  filter: saturate(1.03) brightness(1.28);
  transition:
    opacity 1.2s ease,
    transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1),
    filter 0.9s ease;
}

body.replica-amazinggrace.replica-concept-active .replica-hero-photo {
  transform: scale(1.06);
  filter: blur(7px) saturate(0.85) brightness(0.72);
}

body.replica-amazinggrace .o-mainvisual:after {
  z-index: 1;
  /* 下端の黒帯を弱め、コンセプトのアイボリーへ自然に繋ぐ。テキスト帯(中〜下)の暗さは確保しつつ、
     最下部(90%以降)は黒さを大きく落として段差を消す */
  background:
    radial-gradient(circle at 50% 42%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.08) 60%, rgba(0, 0, 0, 0.2) 100%),
    linear-gradient(180deg, rgba(17, 20, 19, 0.08) 0%, rgba(17, 20, 19, 0.05) 38%, rgba(22, 30, 25, 0.46) 64%, rgba(22, 30, 25, 0.5) 86%, rgba(30, 34, 32, 0.28) 100%),
    linear-gradient(90deg, rgba(12, 14, 13, 0.16) 0%, rgba(12, 14, 13, 0.02) 44%, rgba(12, 14, 13, 0.16) 100%);
}

body.replica-amazinggrace .o-mainvisual__textarea {
  z-index: 3;
  left: 50%;
  bottom: clamp(74px, 9vh, 118px);
  width: min(520px, calc(100% - 80px));
  text-align: center;
  transform: translateX(-50%);
}

body.replica-amazinggrace .o-mainvisual__copy {
  font-size: clamp(2.05rem, 2vw, 3.35rem);
  line-height: 1.78;
  letter-spacing: 0.11em;
}

body.replica-amazinggrace .replica-hero-rule {
  margin-right: auto;
  margin-left: auto;
}

body.replica-amazinggrace .replica-hero-actions {
  width: min(390px, 100%);
  margin-right: auto;
  margin-left: auto;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
  /* FVは初期100vhフル表示。重なりは“スクロール時”だけ発生させ、
     上部の透明→アイボリーのグラデ＋backdrop-blur でFVが溶けるように繋ぐ */
  margin-top: 0;
  padding-top: clamp(150px, 20vh, 250px);
  /* FV→コンセプトをシームレスに繋ぐため、上部を長い透明→アイボリーのグラデで溶かす。
     backdrop-filter:blur は要素上端に「ぼけ/くっきり」の硬い境界線を作り継ぎ目に見えるため使わない */
  background:
    linear-gradient(180deg,
      rgba(248, 249, 248, 0) 0%,
      rgba(248, 249, 248, 0.12) 7%,
      rgba(248, 249, 248, 0.42) 16%,
      rgba(248, 249, 248, 0.78) 26%,
      rgba(248, 249, 248, 0.96) 36%,
      #F4F5F4 46%),
    radial-gradient(circle at 82% 42%, rgba(243, 169, 193, 0.12) 0%, rgba(243, 169, 193, 0) 36%),
    #F4F5F4;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea::before {
  content: none !important;
  display: none !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
  overflow: visible;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
  content: "AMAZING" !important;
  display: block !important;
  position: absolute;
  /* コンセプト写真（右側）の上に重ねる */
  top: clamp(54px, 6vw, 104px);
  right: clamp(64px, 7.5vw, 150px);
  z-index: 2;
  /* 上=シャンパンゴールド */
  color: rgba(243, 169, 193, 0.34);
  font-family: "Cormorant Infant", "Times New Roman", serif;
  font-size: clamp(11rem, 14vw, 20rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 0.8;
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
  content: "GRACE" !important;
  display: block !important;
  position: absolute;
  /* コンセプト写真（右側）の下部に重ねる */
  left: auto;
  right: clamp(96px, 10vw, 210px);
  bottom: clamp(40px, 5vw, 110px);
  z-index: 2;
  /* 下=ボルドー */
  color: rgba(74, 80, 82, 0.26);
  font-family: "Cormorant Infant", "Times New Roman", serif;
  font-size: clamp(10rem, 14vw, 19rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 0.8;
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero {
  border-radius: 0;
  background-image: url("../amazinggrace/amazinggrace-official-concept01.jpg");
  opacity: var(--concept-opacity);
  mix-blend-mode: normal;
  filter: saturate(0.92) contrast(0.96);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero::before {
  background:
    linear-gradient(90deg, rgba(251, 252, 251, 0.94) 0%, rgba(251, 252, 251, 0.58) 38%, rgba(251, 252, 251, 0.08) 100%),
    linear-gradient(180deg, rgba(251, 252, 251, 0.08) 0%, rgba(251, 252, 251, 0.36) 100%);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic {
  max-width: 680px;
  font-size: clamp(3.2rem, 3.25vw, 5.2rem);
  line-height: 1.45;
  letter-spacing: 0.02em;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic span {
  display: block;
  white-space: nowrap;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic .replica-weave-title {
  margin-top: 0.18em;
  white-space: normal;
  /* コンセプトのキーフレーズを強調ゴールドに */
  color: var(--amazinggrace-gold-accent);
}

@media (max-width: 750px) {
  body.replica-amazinggrace .replica-hero-photo,
  body.replica-amazinggrace .replica-hero-photo-wrap {
    background-image: url("../amazinggrace/amazinggrace-official-sp-mv01.jpg") !important;
    background-position: center top !important;
  }

  body.replica-amazinggrace .o-mainvisual__textarea {
    width: min(292px, calc(100vw - 82px));
    text-align: left;
  }

  body.replica-amazinggrace .replica-hero-rule,
  body.replica-amazinggrace .replica-hero-actions {
    margin-left: 0;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
    margin-top: -10vh;
    padding-top: 0;
    -webkit-backdrop-filter: blur(12px) saturate(1.04);
    backdrop-filter: blur(12px) saturate(1.04);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic span {
    white-space: normal;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
    content: "AMAZING" !important;
    display: block !important;
    top: 96px;
    right: clamp(8px, 3vw, 18px);
    /* スマホで全文字が画面内に収まるサイズに縮小 */
    font-size: clamp(3.1rem, 18vw, 5.6rem);
    color: rgba(243, 169, 193, 0.34);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
    content: "GRACE" !important;
    display: block !important;
    left: clamp(8px, 3vw, 18px);
    bottom: 22px;
    font-size: clamp(2.9rem, 16vw, 5rem);
    color: rgba(74, 80, 82, 0.24);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .o-mainvisual::before,
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal,
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal *,
  body.replica-amazinggrace .replica-motion,
  body.replica-amazinggrace .replica-motion * {
    transition-duration: 0.01ms !important;
  }

  body.replica-amazinggrace .replica-motion {
    opacity: 1;
    filter: none;
    clip-path: inset(0);
    transform: none;
  }
}

/* Codex refinements 5: concept full-photo stage from supplied image. */
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
  min-height: 100svh;
  padding: clamp(84px, 8vw, 132px) 0 !important;
  background:
    url("../amazinggrace/amazinggrace-concept-full.jpg") right center / cover no-repeat,
    #F4F5F4 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(251, 252, 251, 0.94) 0%, rgba(251, 252, 251, 0.82) 34%, rgba(251, 252, 251, 0.34) 62%, rgba(251, 252, 251, 0.08) 100%),
    linear-gradient(180deg, rgba(251, 252, 251, 0.54) 0%, rgba(251, 252, 251, 0.12) 40%, rgba(31, 35, 33, 0.12) 100%);
  -webkit-backdrop-filter: blur(2.5px) saturate(1.02);
  backdrop-filter: blur(2.5px) saturate(1.02);
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at 24% 24%, rgba(255, 255, 255, 0.48) 0%, rgba(255, 255, 255, 0) 34%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0) 52%, rgba(74, 80, 82, 0.16) 100%);
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
  position: relative;
  z-index: 1;
  min-height: calc(100svh - clamp(168px, 16vw, 264px));
  width: min(1480px, calc(100% - 8vw));
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
  content: "AMAZING" !important;
  display: block !important;
  top: clamp(8px, 2vw, 38px) !important;
  right: -0.16em !important;
  z-index: 0 !important;
  color: rgba(243, 169, 193, 0.13) !important;
  font-size: clamp(11rem, 15vw, 23rem) !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
  content: "GRACE" !important;
  display: block !important;
  left: clamp(-18px, -1vw, 0px) !important;
  right: auto !important;
  bottom: clamp(-38px, -2vw, -12px) !important;
  z-index: 0 !important;
  color: rgba(255, 255, 255, 0.66) !important;
  font-size: clamp(10rem, 15vw, 22rem) !important;
}
/* PCでは「選ばれる理由をみる」CTAとHOTEL透かしが重なるため、透かしをやや小さく＋下へ寄せて回避 */
@media (min-width: 751px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
    font-size: clamp(8rem, 10.5vw, 14rem) !important;
    bottom: clamp(-70px, -4.4vw, -40px) !important;
  }
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section,
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__content {
  position: relative;
  z-index: 2;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero {
  background: transparent !important;
  box-shadow: none !important;
  opacity: 0 !important;
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero::before {
  content: none !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea {
  text-shadow: 0 1px 18px rgba(255, 255, 255, 0.54);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic .replica-concept-line {
  display: block;
  white-space: nowrap !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-btn {
  display: none !important;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
    min-height: 100svh;
    padding: 0 !important;
    background:
      url("../amazinggrace/amazinggrace-concept-full.jpg") center bottom / cover no-repeat,
      #F4F5F4 !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::before {
    background:
      linear-gradient(90deg, rgba(251, 252, 251, 0.94) 0%, rgba(251, 252, 251, 0.72) 45%, rgba(251, 252, 251, 0.08) 100%),
      linear-gradient(180deg, rgba(251, 252, 251, 0.64) 0%, rgba(251, 252, 251, 0.12) 42%, rgba(74, 80, 82, 0.2) 100%);
    -webkit-backdrop-filter: blur(1.5px) saturate(1.02);
    backdrop-filter: blur(1.5px) saturate(1.02);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
    display: block;
    width: 100%;
    min-height: 100svh;
    padding: clamp(112px, 28vw, 138px) 34px 48px !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
    top: clamp(108px, 28vw, 146px) !important;
    right: -0.5em !important;
    font-size: clamp(7.8rem, 30vw, 12.2rem) !important;
    color: rgba(243, 169, 193, 0.12) !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
    left: 18px !important;
    bottom: 18px !important;
    font-size: clamp(7.2rem, 30vw, 11.4rem) !important;
    color: rgba(255, 255, 255, 0.72) !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section {
    margin-bottom: clamp(30px, 9vw, 42px);
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__content {
    max-width: 330px;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic {
    max-width: 330px;
    color: #26292A;
    font-size: clamp(2.05rem, 6.1vw, 2.46rem);
    line-height: 1.66;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic .replica-weave-title {
    white-space: nowrap !important;
    font-size: 0.98em;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-desc {
    max-width: 268px;
    color: rgba(37, 43, 39, 0.86);
  }
}

/* =================================================================
   Lead sections（Ceremony〜Plan）エディトリアル・リデザイン
   - replica.js が生成する .rxlead-* マークアップ用の見た目定義
   - 透かし英字タイポ＋写真の重ね＋下部フルブリードカード
   ================================================================= */
body.replica-amazinggrace .o-lead-pages.rxbuilt {
  position: relative;
  padding: clamp(28px, 3.5vw, 48px) 0 0;
  background: #F4F5F4;
  /* overflow は visible（子孫の position:sticky を効かせるため）。
     横はみ出しは各セクション側（.rxshowcase 等）で個別に clip している。 */
  overflow: visible;
}

body.replica-amazinggrace .rxbuilt .rxlead {
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 64px);
  box-sizing: border-box;
}

/* --- 透かしタイポグラフィ --- */
body.replica-amazinggrace .rxbuilt .rxlead__wm {
  position: absolute;
  /* 写真ブロックの「下」に配置（メイン写真高さ + 余白）。右側の余白に置く */
  top: calc(clamp(280px, 36vw, 462px) + 16px);
  right: clamp(10px, 3vw, 46px);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  /* フォントはコンセプトの透かしと統一（Cormorant Infant） */
  font-family: "Cormorant Infant", "Cormorant Garamond", "Times New Roman", serif;
  font-weight: 400;
  line-height: 0.92;
  letter-spacing: 0.06em;
  font-size: clamp(40px, 7vw, 112px);
  z-index: 1;
  pointer-events: none;
  white-space: nowrap;
}

/* 透かしを上下で2色に（Ceremony=ゴールド / & Party=ボルドー） */
body.replica-amazinggrace .rxbuilt .rxlead__wm span:first-child {
  color: rgba(243, 169, 193, 0.42);
}
body.replica-amazinggrace .rxbuilt .rxlead__wm span:last-child {
  color: rgba(74, 80, 82, 0.34);
}

/* --- 共通テキスト要素 --- */
body.replica-amazinggrace .rxbuilt .rxlead-en {
  margin: 0;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(20px, 1.9vw, 31px);
  font-weight: 500;
  letter-spacing: 0.11em;
  color: #F3A9C1;
  line-height: 1.1;
}
body.replica-amazinggrace .rxbuilt .rxlead-jp {
  position: relative;
  margin: 12px 0 0;
  padding-left: 30px;
  font-size: 12px;
  letter-spacing: 0.2em;
  color: #F3A9C1;
}
body.replica-amazinggrace .rxbuilt .rxlead-jp::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 20px;
  height: 1px;
  background: #FDEBF1;
}
body.replica-amazinggrace .rxbuilt .rxlead-copy {
  margin: 20px 0 0;
  font-size: clamp(18px, 1.7vw, 26px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: #2b2b2b;
}
body.replica-amazinggrace .rxbuilt .rxlead-desc {
  margin: 16px 0 0;
  max-width: 30em;
  font-size: 13.5px;
  line-height: 2;
  letter-spacing: 0.03em;
  color: #5A6163;
}
body.replica-amazinggrace .rxbuilt .rxlead-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: #2b2b2b;
  text-decoration: none;
}
body.replica-amazinggrace .rxbuilt .rxlead-link span {
  display: inline-block;
  width: 46px;
  height: 1px;
  background: #2b2b2b;
  transition: width 0.4s ease;
}
body.replica-amazinggrace .rxbuilt .rxlead-link:hover span {
  width: 68px;
}

/* --- Ceremony --- */
body.replica-amazinggrace .rxbuilt .rxlead-cer {
  position: relative;
  z-index: 1;
}
body.replica-amazinggrace .rxbuilt .rxlead-cer__photos {
  position: relative;
}
body.replica-amazinggrace .rxbuilt .rxlead-cer__main {
  width: 70%;
  margin: 0;
}
body.replica-amazinggrace .rxbuilt .rxlead-cer__main img {
  display: block;
  width: 100%;
  height: clamp(280px, 36vw, 462px);
  object-fit: cover;
}
body.replica-amazinggrace .rxbuilt .rxlead-cer__sub {
  position: absolute;
  right: 0;
  top: 42%;
  width: 33%;
  margin: 0;
}
body.replica-amazinggrace .rxbuilt .rxlead-cer__sub img {
  display: block;
  width: 100%;
  height: clamp(220px, 26vw, 344px);
  object-fit: cover;
  border: 6px solid #F4F5F4;
  box-shadow: 0 26px 54px rgba(43, 49, 45, 0.18);
}
body.replica-amazinggrace .rxbuilt .rxlead-cer__text {
  width: min(48%, 540px);
  margin: 40px 0 0;
}

/* --- Banquet --- */
body.replica-amazinggrace .rxbuilt .rxlead-ban {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 0.82fr 1.04fr;
  gap: clamp(30px, 5vw, 72px);
  align-items: center;
  margin-top: clamp(74px, 9vw, 150px);
}
body.replica-amazinggrace .rxbuilt .rxlead-ban__list {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 3.5vw, 48px);
}
body.replica-amazinggrace .rxbuilt .rxlead-ban__item {
  margin: 0;
}
body.replica-amazinggrace .rxbuilt .rxlead-ban__img {
  overflow: hidden;
}
body.replica-amazinggrace .rxbuilt .rxlead-ban__img img {
  display: block;
  width: 100%;
  height: clamp(220px, 24vw, 332px);
  object-fit: cover;
  transition: transform 1.2s ease;
}
body.replica-amazinggrace .rxbuilt .rxlead-ban__item:hover .rxlead-ban__img img {
  transform: scale(1.05);
}
body.replica-amazinggrace .rxbuilt .rxlead-ban__cap {
  display: flex;
  flex-direction: column;
  margin-top: 16px;
}
body.replica-amazinggrace .rxbuilt .rxlead-en2 {
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(15px, 1.2vw, 19px);
  letter-spacing: 0.1em;
  color: #2b2b2b;
}
body.replica-amazinggrace .rxbuilt .rxlead-jp2 {
  margin-top: 5px;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: #F3A9C1;
}
body.replica-amazinggrace .rxbuilt .rxlead-captxt {
  margin-top: 11px;
  max-width: 34em;
  font-size: 12.5px;
  line-height: 1.9;
  color: #5A6163;
}

/* =================================================================
   Cuisine / Stay Wedding
   コンセプト／Ceremony と完全に統一したデザイン言語で構成：
   ・全幅の帯。写真の「テキスト側の縁」をマスクでクリームへ消し込み、
     写真と文字面がグラデーションで一体化して見える（＝繋がり）。
   ・巨大なセリフ透かし文字（Cormorant Infant）を写真の手前にレイヤー。
     色はコンセプトの amazinggrace と同じゴールドで、確実に視認できる濃度。
   ・見出し＝游明朝 / アイブロウ＝Cormorant小 / CTA＝ゴールド枠線ボタン
     （Ceremony・Party と同一トークン）。
   CUISINE = 左テキスト / 右に大きなメイン写真＋右端に小写真2枚縦積み（右端までブリード）
   STAY    = 左に写真 / 右テキスト（ミラー）
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxshowcase {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  /* セクション間余白（PC）：セレモニー↔パーティー（約112px）に見えるギャップを統一。
     料理/ガーデンは内部に上下 約50px のクリーム余白（min-height由来）があるため、
     margin は「112 − 内部クリーム(約50)」＝約62px に設定（見えるギャップ＝約112px）。 */
  margin-top: clamp(46px, 4.4vw, 74px);
  overflow: hidden; /* 透かし文字・写真を画面端で切る（コンセプトと同じ） */
}
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine {
  justify-content: flex-start;
  min-height: clamp(460px, 44vw, 648px);
  padding: clamp(44px, 5vw, 84px) 0;
}
body.replica-amazinggrace .rxbuilt .rxshowcase--stay {
  justify-content: flex-end;
  min-height: clamp(440px, 42vw, 612px);
  padding: clamp(44px, 5vw, 84px) 0;
}

/* --- テキスト（クリーム面の上に重なる） --- */
body.replica-amazinggrace .rxbuilt .rxshowcase__text {
  position: relative;
  z-index: 4;
}
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__text {
  width: min(33%, 430px);
  padding-left: clamp(20px, 5vw, 64px);
}
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__text {
  width: min(40%, 500px);
  padding-right: clamp(20px, 5vw, 64px);
}

/* --- ギャラリー（絶対配置で外側の画面端までブリード） --- */
body.replica-amazinggrace .rxbuilt .rxshowcase__gallery {
  position: absolute;
  top: clamp(28px, 3.6vw, 60px);
  bottom: clamp(28px, 3.6vw, 60px);
  z-index: 1;
  display: grid;
  gap: clamp(6px, 0.7vw, 12px);
}
/* CUISINE：右へブリード。メイン大（2行ぶち抜き）＋右端に小写真2枚縦積み */
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__gallery {
  right: 0;
  left: clamp(268px, 29%, 440px);
  grid-template-columns: 1fr clamp(128px, 15vw, 220px);
  grid-template-rows: 1fr 1fr;
}
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__main {
  grid-column: 1;
  grid-row: 1 / 3;
}
/* STAY：左へブリード。メイン1枚 */
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__gallery {
  left: 0;
  right: clamp(300px, 46%, 600px);
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}

body.replica-amazinggrace .rxbuilt .rxshowcase__main,
body.replica-amazinggrace .rxbuilt .rxshowcase__sub {
  position: relative;
  margin: 0;
  height: 100%;
  overflow: hidden;
}
body.replica-amazinggrace .rxbuilt .rxshowcase__main img,
body.replica-amazinggrace .rxbuilt .rxshowcase__sub img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.6s cubic-bezier(0.12, 0.72, 0.46, 1);
}
body.replica-amazinggrace .rxbuilt .rxshowcase:hover .rxshowcase__main img {
  transform: scale(1.04);
}

/* ★ 繋がり：メイン写真のテキスト側の縁をクリームへ消し込む（グラデーションで一体化） */
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__main {
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 24%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 24%, #000 100%);
}
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__main {
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 72%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0%, #000 72%, transparent 100%);
}

/* --- 巨大な透かし文字（写真の手前 z:3／amazinggrace と同じゴールド・視認できる濃度） --- */
body.replica-amazinggrace .rxbuilt .rxshowcase__wm {
  position: absolute;
  z-index: 3;
  font-family: "Cormorant Infant", "Times New Roman", serif;
  font-weight: 400;
  line-height: 0.8;
  letter-spacing: 0.08em;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  color: rgba(243, 169, 193, 0.42);
}
body.replica-amazinggrace .rxbuilt .rxshowcase__wm.-gold {
  left: clamp(16px, 4vw, 56px);
  bottom: clamp(14px, 3.4vw, 56px);
  font-size: clamp(4.5rem, 16.5vw, 16rem);
}
body.replica-amazinggrace .rxbuilt .rxshowcase__wm.-wine {
  right: clamp(16px, 4vw, 56px);
  bottom: clamp(12px, 3vw, 48px);
  font-size: clamp(4.5rem, 13vw, 13rem);
  text-align: right;
  /* コンセプトの「HOTEL」透かしと同色（半透明の白） */
  color: rgba(255, 255, 255, 0.62);
}

/* --- テキストのタイポグラフィ（Ceremony／コンセプトと統一） --- */
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-en {
  color: var(--amazinggrace-gold-deep) !important;
  font-family: "Cormorant Infant", "Cormorant Garamond", "Cinzel", "Times New Roman", serif !important;
  font-size: clamp(1rem, 1.05vw, 1.2rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
}
/* 添付は「英字アイブロウ＋和文見出し」のみ。和文サブラベルは非表示 */
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-jp {
  display: none !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-copy {
  margin-top: clamp(18px, 1.9vw, 28px) !important;
  color: #23282A !important;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: clamp(1.7rem, 1.95vw, 2.35rem) !important;
  font-weight: 500 !important;
  line-height: 1.64 !important;
  letter-spacing: 0.06em !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-em {
  color: inherit !important;
  font-weight: inherit !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-desc {
  margin-top: clamp(16px, 1.6vw, 24px) !important;
  max-width: 23em !important;
  color: rgba(64, 71, 73, 0.82) !important;
  font-size: clamp(1.17rem, 1.4vw, 1.26rem) !important;
  line-height: 2.1 !important;
  letter-spacing: 0.04em !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-width: min(232px, 100%) !important;
  margin-top: clamp(24px, 2.4vw, 40px) !important;
  padding: 15px 22px !important;
  border: 1px solid rgba(243, 169, 193, 0.72) !important;
  color: var(--amazinggrace-gold-deep) !important;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: clamp(1.14rem, 1.37vw, 1.23rem) !important;
  letter-spacing: 0.12em !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
  /* CTAを半透明のクリームにして、背後の巨大な透かし文字(CUISINE/GARDEN)がうっすら透けて見える
     “重なりを活かした”レイヤー表現に。可読性は薄いブラーで担保。 */
  background: rgba(240, 240, 240, 0.5) !important;
  -webkit-backdrop-filter: blur(2.5px) !important;
  backdrop-filter: blur(2.5px) !important;
  position: relative !important;
  z-index: 6 !important;
  box-shadow: 0 8px 22px -16px rgba(32, 46, 38, 0.32) !important;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-link span {
  flex: 0 0 auto !important;
  width: 6px !important;
  height: 6px !important;
  margin-left: 22px !important;
  border-radius: 50% !important;
  background: var(--amazinggrace-gold-deep) !important;
  transition: transform 0.4s ease, background 0.4s ease !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-link:hover {
  color: #fff !important;
  border-color: var(--amazinggrace-gold-deep) !important;
  background: var(--amazinggrace-gold-deep) !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-link:hover span {
  transform: translateX(5px) !important;
  background: #fff !important;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine,
  body.replica-amazinggrace .rxbuilt .rxshowcase--stay {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0 22px;
    margin-top: 64px;
  }
  /* スマホは絶対配置を解除して通常フロー（写真→テキスト） */
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__gallery,
  body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__gallery {
    position: static;
    order: -1;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    height: 74vw;
    margin-bottom: 20px;
  }
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__gallery {
    grid-template-columns: 1fr clamp(92px, 26vw, 124px);
  }
  /* スマホは写真をクリーム面へ溶かさずクリーンな矩形に */
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__main,
  body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__main {
    -webkit-mask-image: none;
    mask-image: none;
  }
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__text,
  body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__text {
    width: 100%;
    padding: 0;
  }
  body.replica-amazinggrace .rxbuilt .rxshowcase__wm.-gold,
  body.replica-amazinggrace .rxbuilt .rxshowcase__wm.-wine {
    left: 20px;
    right: 20px;
    bottom: auto;
    top: calc(74vw - clamp(50px, 14vw, 74px));
    font-size: clamp(44px, 15vw, 76px);
    text-align: left;
  }
  body.replica-amazinggrace .rxbuilt .rxshowcase__wm.-wine {
    text-align: right;
  }
}

/* --- 下部カード（フルブリード） --- */
body.replica-amazinggrace .rxbuilt .rxlead-cards {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(4px, 0.6vw, 10px);
  margin-top: clamp(74px, 9vw, 150px);
  background: #F4F5F4;
}
body.replica-amazinggrace .rxbuilt .rxlead-card {
  position: relative;
  display: block;
  overflow: hidden;
  text-decoration: none;
  aspect-ratio: 3 / 4.1;
}
body.replica-amazinggrace .rxbuilt .rxlead-card__img {
  position: absolute;
  inset: 0;
}
body.replica-amazinggrace .rxbuilt .rxlead-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.4s ease;
}
body.replica-amazinggrace .rxbuilt .rxlead-card:hover .rxlead-card__img img {
  transform: scale(1.06);
}
body.replica-amazinggrace .rxbuilt .rxlead-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(17, 23, 19, 0.04) 0%, rgba(17, 23, 19, 0.1) 42%, rgba(17, 23, 19, 0.64) 100%);
}
body.replica-amazinggrace .rxbuilt .rxlead-card__body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  padding: clamp(22px, 2vw, 38px);
  text-align: center;
  color: #fff;
}
body.replica-amazinggrace .rxbuilt .rxlead-card__en {
  display: block;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(18px, 1.5vw, 24px);
  letter-spacing: 0.12em;
}
body.replica-amazinggrace .rxbuilt .rxlead-card__jp {
  display: block;
  margin-top: 7px;
  font-size: 11px;
  letter-spacing: 0.2em;
  opacity: 0.9;
}
body.replica-amazinggrace .rxbuilt .rxlead-card__copy {
  margin: 15px 0 0;
  font-size: 12px;
  line-height: 1.8;
  opacity: 0.92;
}
body.replica-amazinggrace .rxbuilt .rxlead-card__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 10.5px;
  letter-spacing: 0.18em;
}
body.replica-amazinggrace .rxbuilt .rxlead-card__more .rxc-arrow {
  display: inline-block;
  width: 30px;
  height: 1px;
  background: #fff;
  transition: width 0.4s ease;
}
body.replica-amazinggrace .rxbuilt .rxlead-card:hover .rxlead-card__more .rxc-arrow {
  width: 46px;
}
/* 導線ラベルはPC=「詳しく見る」/ スマホ=「VIEW MORE」で出し分け（既定はPC） */
body.replica-amazinggrace .rxbuilt .rxlead-card__more .rxc-lbl--en {
  display: none;
}

/* --- スクロール・リビール --- */
body.replica-amazinggrace .rxbuilt .rxrev {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}
body.replica-amazinggrace .rxbuilt .rxrev.is-in {
  opacity: 1;
  transform: none;
}

/* --- スマホ --- */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-pages.rxbuilt {
    padding-top: clamp(16px, 5vw, 28px);
  }
  body.replica-amazinggrace .rxbuilt .rxlead {
    padding: 0 22px;
  }
  body.replica-amazinggrace .rxbuilt .rxlead__wm {
    top: clamp(70px, 28vw, 150px);
    right: 14px;
    font-size: 13.5vw;
    color: rgba(38, 45, 40, 0.22);
  }
  body.replica-amazinggrace .rxbuilt .rxlead-cer__main {
    width: 100%;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-cer__main img {
    height: 62vw;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-cer__sub {
    position: relative;
    top: auto;
    right: auto;
    width: 60%;
    margin: -16% 0 0 auto;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-cer__sub img {
    height: 50vw;
    border-width: 5px;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-cer__text {
    width: 100%;
    margin-top: 26px;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-ban {
    grid-template-columns: 1fr;
    gap: 26px;
    margin-top: 64px;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-ban__img img {
    height: 56vw;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-cards {
    grid-template-columns: 1fr;
    gap: 4px;
    margin-top: 60px;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-card {
    aspect-ratio: 16 / 11;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .rxbuilt .rxrev {
    opacity: 1;
    transform: none;
    transition-duration: 0.01ms;
  }
}

/* =================================================================
   強調カラー / Wedding Contents 見出し / おすすめプラン
   ================================================================= */

/* コピー強調（ゴールド） */
body.replica-amazinggrace .rxbuilt .rxlead-em {
  color: var(--amazinggrace-gold-accent);
  font-weight: 600;
}

/* --- Wedding Contents 見出し --- */
/* Wedding Contents: 上部に2枚の写真＋中央見出し。下のカードがこの写真に被さる */
body.replica-amazinggrace .rxbuilt .rxlead-contents {
  position: relative;
  z-index: 0;
  margin-top: clamp(80px, 10vw, 168px);
}
body.replica-amazinggrace .rxbuilt .rxlead-contents__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
body.replica-amazinggrace .rxbuilt .rxlead-contents__photo {
  margin: 0;
  overflow: hidden;
}
body.replica-amazinggrace .rxbuilt .rxlead-contents__photo img {
  display: block;
  width: 100%;
  height: clamp(440px, 54vh, 700px);
  object-fit: cover;
}
/* 見出し可読性のため中央上部に淡い陰影 */
body.replica-amazinggrace .rxbuilt .rxlead-contents__photos::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 34%, rgba(22, 30, 25, 0.34) 0%, rgba(22, 30, 25, 0.12) 38%, rgba(22, 30, 25, 0) 62%);
}
body.replica-amazinggrace .rxbuilt .rxlead-contents__head {
  position: absolute;
  left: 0;
  right: 0;
  top: clamp(96px, 16%, 200px);
  z-index: 1;
  text-align: center;
  color: #fff;
  pointer-events: none;
  text-shadow: 0 2px 26px rgba(22, 30, 25, 0.42);
}
body.replica-amazinggrace .rxbuilt .rxlead-contents__en {
  margin: 0;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(11px, 0.95vw, 14px);
  letter-spacing: 0.4em;
  color: rgba(255, 255, 255, 0.92);
}
body.replica-amazinggrace .rxbuilt .rxlead-contents__ttl {
  margin: clamp(14px, 1.4vw, 24px) 0 0;
  font-family: "Cormorant Infant", "Cormorant Garamond", "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(46px, 6.6vw, 110px);
  letter-spacing: 0.04em;
  line-height: 0.98;
  color: #fff;
}

/* 下部カードを上の写真に被せる（負マージンで持ち上げ、前面に） */
body.replica-amazinggrace .rxbuilt .rxlead-contents + .rxlead-cards {
  position: relative;
  z-index: 2;
  margin-top: clamp(-230px, -18vh, -150px);
  padding: 0 clamp(20px, 3vw, 56px);
  box-sizing: border-box;
  background: transparent;
}

/* --- おすすめプラン --- */
body.replica-amazinggrace .rxbuilt .rxplans {
  position: relative;
  z-index: 1;
  max-width: 1180px;
  margin: clamp(80px, 10vw, 160px) auto 0;
  padding: 0 clamp(20px, 5vw, 64px) clamp(20px, 4vw, 60px);
  box-sizing: border-box;
}
body.replica-amazinggrace .rxbuilt .rxplans__head {
  text-align: center;
  margin-bottom: clamp(34px, 4vw, 60px);
}
body.replica-amazinggrace .rxbuilt .rxplans__en {
  margin: 0;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(11px, 0.9vw, 13px);
  letter-spacing: 0.34em;
  color: var(--amazinggrace-gold-deep);
}
body.replica-amazinggrace .rxbuilt .rxplans__ttl {
  margin: 12px 0 0;
  font-size: clamp(26px, 2.6vw, 40px);
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--amazinggrace-ink);
}
body.replica-amazinggrace .rxbuilt .rxplans__lead {
  margin: 14px 0 0;
  font-size: 13.5px;
  letter-spacing: 0.04em;
  color: #5A6163;
}
body.replica-amazinggrace .rxbuilt .rxplans__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.4vw, 40px);
}
body.replica-amazinggrace .rxbuilt .rxplan {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  background: #fff;
  box-shadow: 0 18px 44px rgba(62, 72, 66, 0.08);
  transition: transform 0.5s ease, box-shadow 0.5s ease;
}
body.replica-amazinggrace .rxbuilt .rxplan:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 58px rgba(62, 72, 66, 0.14);
}
body.replica-amazinggrace .rxbuilt .rxplan__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
body.replica-amazinggrace .rxbuilt .rxplan__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s ease;
}
body.replica-amazinggrace .rxbuilt .rxplan:hover .rxplan__img img {
  transform: scale(1.06);
}
body.replica-amazinggrace .rxbuilt .rxplan__no {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, 3.4vw, 56px);
  height: clamp(44px, 3.4vw, 56px);
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(15px, 1.2vw, 19px);
  letter-spacing: 0.04em;
  color: #fff;
  background: var(--amazinggrace-bordeaux);
}
body.replica-amazinggrace .rxbuilt .rxplan__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: clamp(20px, 1.8vw, 30px) clamp(20px, 1.8vw, 28px) clamp(22px, 1.8vw, 30px);
}
body.replica-amazinggrace .rxbuilt .rxplan__name {
  margin: 0;
  font-size: clamp(16px, 1.3vw, 20px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.03em;
  color: var(--amazinggrace-ink);
}
body.replica-amazinggrace .rxbuilt .rxplan__desc {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.95;
  color: #5A6163;
}
body.replica-amazinggrace .rxbuilt .rxplan__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 20px;
}
body.replica-amazinggrace .rxbuilt .rxplan__price {
  font-size: clamp(15px, 1.2vw, 18px);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--amazinggrace-bordeaux);
}
body.replica-amazinggrace .rxbuilt .rxplan__more {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  color: var(--amazinggrace-gold-deep);
}
body.replica-amazinggrace .rxbuilt .rxplan__more span {
  display: inline-block;
  width: 26px;
  height: 1px;
  background: var(--amazinggrace-gold-deep);
  transition: width 0.4s ease;
}
body.replica-amazinggrace .rxbuilt .rxplan:hover .rxplan__more span {
  width: 40px;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxlead-contents {
    margin-top: 64px;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-contents__photo img {
    height: 60vw;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-contents__head {
    top: 26px;
  }
  body.replica-amazinggrace .rxbuilt .rxlead-contents__ttl {
    margin-top: 10px;
    font-size: 12.5vw;
  }
  /* モバイルはカードの被さりを控えめに（見出しを隠さない） */
  body.replica-amazinggrace .rxbuilt .rxlead-contents + .rxlead-cards {
    margin-top: -38px;
    padding: 0 16px;
  }
  body.replica-amazinggrace .rxbuilt .rxplans {
    margin-top: 64px;
    padding-left: 22px;
    padding-right: 22px;
  }
  body.replica-amazinggrace .rxbuilt .rxplans__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  body.replica-amazinggrace .rxbuilt .rxplan__img {
    aspect-ratio: 16 / 10;
  }
}

/* Codex refinements: normal FV scroll, centered hero logo, and amazinggrace editorial tone. */
body.replica-amazinggrace .o-mainvisual {
  position: relative !important;
  top: auto !important;
  z-index: 0;
  min-height: 720px;
  will-change: auto;
}

body.replica-amazinggrace .replica-hero-photo {
  filter: saturate(1) brightness(1) contrast(1) !important;
}

body.replica-amazinggrace.replica-concept-active .replica-hero-photo {
  filter: saturate(1) brightness(1) contrast(1) !important;
  transform: scale(1.018);
}

body.replica-amazinggrace.replica-concept-active .o-mainvisual::before {
  opacity: 0;
  transform: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.replica-amazinggrace .replica-hero-center-logo {
  position: absolute;
  top: clamp(94px, 17vh, 176px);
  left: 50%;
  z-index: 3;
  width: min(420px, 31vw);
  min-width: 240px;
  transform: translateX(-50%);
  pointer-events: none;
}

body.replica-amazinggrace .replica-hero-center-logo::before {
  content: "";
  position: absolute;
  inset: -34px -54px;
  z-index: -1;
  background: radial-gradient(ellipse at center, rgba(253, 254, 253, 0.46) 0%, rgba(253, 254, 253, 0.2) 44%, rgba(253, 254, 253, 0) 72%);
}

body.replica-amazinggrace .replica-hero-center-logo img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0.94;
  filter:
    drop-shadow(0 0 18px rgba(255, 255, 255, 0.72))
    drop-shadow(0 12px 28px rgba(32, 42, 36, 0.22));
}

body.replica-amazinggrace .rxbuilt .rxlead__wm {
  z-index: 3;
}

body.replica-amazinggrace .rxbuilt .rxlead-cer__photos {
  position: relative;
  z-index: 1;
}

body.replica-amazinggrace .rxbuilt .rxlead-cer__main,
body.replica-amazinggrace .rxbuilt .rxlead-cer__sub {
  position: relative;
  z-index: 1;
}

body.replica-amazinggrace .rxbuilt .rxlead-cer__text {
  position: relative;
  z-index: 4;
}

body.replica-amazinggrace .rxbuilt .rxplans {
  margin-top: clamp(96px, 11vw, 176px);
}

body.replica-amazinggrace .rxbuilt .rxplans__head {
  width: min(760px, 100%);
  margin-right: auto;
  margin-left: auto;
}

body.replica-amazinggrace .rxbuilt .rxplans__en {
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(12px, 0.95vw, 14px);
  font-weight: 500;
  letter-spacing: 0.34em;
  color: #F3A9C1;
}

body.replica-amazinggrace .rxbuilt .rxplans__ttl {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(30px, 3vw, 48px);
  font-weight: 400;
  letter-spacing: 0.12em;
}

body.replica-amazinggrace .rxbuilt .rxplans__lead {
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.06em;
}

body.replica-amazinggrace .rxbuilt .rxplans__grid {
  gap: clamp(12px, 1.4vw, 24px);
}

body.replica-amazinggrace .rxbuilt .rxplan {
  position: relative;
  overflow: hidden;
  background: rgba(251, 252, 251, 0.78);
  border-top: 1px solid rgba(243, 169, 193, 0.42);
  border-bottom: 1px solid rgba(243, 169, 193, 0.2);
  box-shadow: none;
}

body.replica-amazinggrace .rxbuilt .rxplan:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 54px rgba(58, 70, 63, 0.1);
}

body.replica-amazinggrace .rxbuilt .rxplan__img {
  aspect-ratio: 16 / 10.6;
}

body.replica-amazinggrace .rxbuilt .rxplan__img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(240, 240, 240, 0) 0%, rgba(25, 28, 26, 0.16) 100%);
  pointer-events: none;
}

body.replica-amazinggrace .rxbuilt .rxplan__no {
  top: 18px;
  left: 18px;
  width: auto;
  height: auto;
  padding: 8px 12px 7px;
  color: #fff;
  background: rgba(35, 40, 36, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.46);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

body.replica-amazinggrace .rxbuilt .rxplan__body {
  padding: clamp(24px, 2vw, 34px);
}

body.replica-amazinggrace .rxbuilt .rxplan__name {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(17px, 1.35vw, 22px);
  font-weight: 400;
  letter-spacing: 0.07em;
}

body.replica-amazinggrace .rxbuilt .rxplan__desc {
  font-size: 12.5px;
  line-height: 2;
  letter-spacing: 0.04em;
}

body.replica-amazinggrace .rxbuilt .rxplan__price {
  color: #F3A9C1;
}

body.replica-amazinggrace .rxbuilt .rxplan__more {
  color: #2b2b2b;
}

body.replica-amazinggrace .rxbuilt .rxplan__more span {
  background: #2b2b2b;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .o-mainvisual {
    min-height: 100svh;
  }

  body.replica-amazinggrace .replica-hero-center-logo {
    top: 76px;
    width: min(250px, 58vw);
    min-width: 0;
  }

  body.replica-amazinggrace .rxbuilt .rxlead__wm {
    display: flex !important;
    top: clamp(44px, 18vw, 104px);
    right: 10px;
    z-index: 3;
    font-size: clamp(42px, 14vw, 72px);
  }

  body.replica-amazinggrace .rxbuilt .rxlead__wm span:first-child {
    color: rgba(243, 169, 193, 0.44);
  }

  body.replica-amazinggrace .rxbuilt .rxlead__wm span:last-child {
    color: rgba(74, 80, 82, 0.34);
  }

  body.replica-amazinggrace .rxbuilt .rxplans__head {
    text-align: left;
  }

  body.replica-amazinggrace .rxbuilt .rxplans__ttl {
    font-size: clamp(28px, 9vw, 40px);
  }
}

/* Codex refinements 2: seamless FV, Japanese-first headings, and mobile polish. */
body.replica-amazinggrace .l-header {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

body.replica-amazinggrace .replica-header-fair-cta {
  grid-column: 3;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 18px;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(253, 235, 241, 0.96) 0%, rgba(243, 169, 193, 0.94) 48%, rgba(243, 169, 193, 0.96) 100%);
  border: 1px solid rgba(255, 255, 255, 0.42);
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: 1.16rem;
  letter-spacing: 0.14em;
  line-height: 1;
  text-decoration: none;
  text-shadow: 0 1px 12px rgba(52, 64, 57, 0.34);
  box-shadow: 0 12px 28px rgba(52, 58, 54, 0.18);
}

body.replica-amazinggrace .l-header.-fixed .replica-header-fair-cta,
body.replica-amazinggrace .l-header.-menu .replica-header-fair-cta {
  color: #fff;
  border-color: rgba(243, 169, 193, 0.28);
  text-shadow: none;
}

body.replica-amazinggrace .replica-hero-video,
body.replica-amazinggrace .replica-hero-photo {
  transition:
    opacity 0.9s ease,
    transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1),
    filter 0.9s ease;
}

body.replica-amazinggrace .o-mainvisual {
  height: 100svh !important;
  min-height: 720px;
  overflow: hidden;
}

body.replica-amazinggrace .o-mainvisual:after {
  background:
    radial-gradient(circle at 50% 42%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.08) 60%, rgba(0, 0, 0, 0.2) 100%),
    linear-gradient(180deg, rgba(17, 20, 19, 0.04) 0%, rgba(17, 20, 19, 0.02) 36%, rgba(22, 30, 25, 0.32) 62%, rgba(22, 30, 25, 0.46) 86%, rgba(22, 30, 25, 0.34) 100%),
    linear-gradient(90deg, rgba(12, 14, 13, 0.13) 0%, rgba(12, 14, 13, 0.02) 44%, rgba(12, 14, 13, 0.13) 100%);
}

body.replica-amazinggrace .replica-hero-center-logo {
  top: 48%;
  width: min(460px, 34vw);
  transform: translate(-50%, -50%);
}

body.replica-amazinggrace .replica-hero-action--primary {
  position: relative;
  overflow: hidden;
  /* クリアなガラス感：ghost と同系だが、うっすらゴールドの透かし＋やや強い金枠で「主」を示す。
     濃い塗りと大きな影は主張が強すぎるため撤去。 */
  border-color: rgba(253, 235, 241, 0.7);
  background: rgba(243, 169, 193, 0.2);
  -webkit-backdrop-filter: blur(5px) saturate(1.05);
  backdrop-filter: blur(5px) saturate(1.05);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

body.replica-amazinggrace .replica-hero-action--primary::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.28) 42%, rgba(255, 255, 255, 0) 68%);
  opacity: 0.24;
  transform: translateX(-64%);
  transition: transform 0.8s ease;
}

body.replica-amazinggrace .replica-hero-action--primary:hover::before {
  transform: translateX(64%);
}

body.replica-amazinggrace .replica-hero-action--primary span {
  position: relative;
  z-index: 1;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
  margin-top: 0 !important;
  padding-top: clamp(110px, 14vh, 190px);
  background:
    linear-gradient(180deg, #F4F5F4 0%, #F4F5F4 58%, #F4F5F4 100%),
    radial-gradient(circle at 82% 42%, rgba(243, 169, 193, 0.12) 0%, rgba(243, 169, 193, 0) 36%);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic .replica-concept-line {
  display: block;
  white-space: nowrap !important;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .l-header {
    display: block;
    padding: 12px 14px 8px;
    pointer-events: none;
  }

  body.replica-amazinggrace .l-header .c-logo {
    display: none !important;
  }

  body.replica-amazinggrace .replica-header-fair-cta {
    position: fixed;
    top: 22px;
    right: 78px;
    z-index: 1001;
    min-height: 30px;
    padding: 0 12px;
    color: rgba(255, 255, 255, 0.92);
    background: rgba(243, 169, 193, 0.44);
    border: 1px solid rgba(253, 235, 241, 0.42);
    box-shadow: 0 8px 22px rgba(29, 32, 30, 0.12);
    -webkit-backdrop-filter: blur(7px) saturate(1.02);
    backdrop-filter: blur(7px) saturate(1.02);
    font-family: "Cinzel", "Cormorant Infant", serif;
    font-size: 0.84rem;
    letter-spacing: 0.16em;
    text-shadow: 0 1px 9px rgba(27, 30, 28, 0.28);
    pointer-events: auto;
  }

  body.replica-amazinggrace .o-mainvisual {
    height: 100svh !important;
    min-height: 100svh !important;
    max-height: none;
  }

  body.replica-amazinggrace .replica-hero-video-wrap,
  body.replica-amazinggrace .replica-hero-photo-wrap,
  body.replica-amazinggrace .replica-hero-photo {
    height: 100% !important;
    min-height: 100% !important;
    background-size: cover !important;
  }

  body.replica-amazinggrace .o-mainvisual:after {
    background:
      radial-gradient(circle at 50% 38%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.07) 60%, rgba(0, 0, 0, 0.18) 100%),
      linear-gradient(180deg, rgba(17, 20, 19, 0.02) 0%, rgba(17, 20, 19, 0.02) 42%, rgba(22, 30, 25, 0.36) 67%, rgba(22, 30, 25, 0.5) 88%, rgba(22, 30, 25, 0.32) 100%);
  }

  body.replica-amazinggrace .replica-hero-center-logo {
    top: 51%;
    width: min(260px, 66vw);
    min-width: 0;
    transform: translate(-50%, -50%);
  }

  body.replica-amazinggrace .replica-hero-center-logo::before {
    inset: -26px -36px;
    background: radial-gradient(ellipse at center, rgba(253, 254, 253, 0.42) 0%, rgba(253, 254, 253, 0.18) 48%, rgba(253, 254, 253, 0) 74%);
  }

  body.replica-amazinggrace .o-mainvisual__textarea {
    bottom: clamp(54px, 7.2vh, 78px);
    left: 50%;
    width: min(330px, calc(100vw - 56px));
    text-align: center;
    transform: translateX(-50%);
  }

  body.replica-amazinggrace .o-mainvisual__ttl,
  body.replica-amazinggrace .o-mainvisual__ttl h2,
  body.replica-amazinggrace .o-mainvisual__ttl__deco {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.replica-amazinggrace .o-mainvisual__copy {
    font-size: clamp(1.5rem, 4.45vw, 1.86rem);
    line-height: 1.72;
    letter-spacing: 0.075em;
  }

  body.replica-amazinggrace .replica-hero-rule,
  body.replica-amazinggrace .replica-hero-actions {
    margin-right: auto;
    margin-left: auto;
  }

  body.replica-amazinggrace .replica-hero-actions {
    width: min(312px, 100%);
    margin-top: 24px;
    gap: 11px;
  }

  body.replica-amazinggrace .replica-hero-action {
    min-height: 48px;
    font-size: 1.12rem;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
    margin-top: 0 !important;
    padding-top: clamp(70px, 18vw, 104px) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic {
    font-size: clamp(2.55rem, 7.3vw, 3.3rem);
    line-height: 1.56;
    letter-spacing: 0.03em;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__textarea .c-copy-basic .replica-concept-line {
    white-space: nowrap !important;
  }

  body.replica-amazinggrace .rxbuilt .rxlead__wm {
    top: clamp(236px, 72vw, 330px);
    right: auto;
    left: 10px;
    align-items: flex-start;
    font-size: clamp(42px, 14.2vw, 68px);
    line-height: 0.9;
  }
}

@media (min-width: 751px) {
  body.replica-amazinggrace .o-mainvisual__textarea {
    bottom: clamp(58px, 7vh, 94px);
    width: min(430px, calc(100% - 96px));
  }

  body.replica-amazinggrace .o-mainvisual__copy {
    font-size: clamp(1.62rem, 1.34vw, 2.24rem);
    line-height: 1.72;
    letter-spacing: 0.08em;
    text-shadow: 0 3px 22px rgba(0, 0, 0, 0.5), 0 1px 4px rgba(0, 0, 0, 0.42);
  }

  body.replica-amazinggrace .o-mainvisual__copy em {
    font-size: 1.42em;
  }

  body.replica-amazinggrace .replica-hero-rule {
    width: 28px;
    margin-top: 10px;
    opacity: 0.68;
  }

  body.replica-amazinggrace .replica-hero-actions {
    width: min(310px, 100%);
    gap: 10px;
    margin-top: clamp(18px, 2.6vh, 30px);
  }

  body.replica-amazinggrace .replica-hero-action {
    min-height: 44px;
    padding: 0 18px;
    font-size: 1.08rem;
    letter-spacing: 0.1em;
  }

  body.replica-amazinggrace .replica-hero-action--primary {
    color: rgba(255, 255, 255, 0.92);
    background: rgba(243, 169, 193, 0.52);
    border-color: rgba(253, 235, 241, 0.42);
    box-shadow: 0 10px 24px rgba(40, 50, 44, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.18);
    -webkit-backdrop-filter: blur(5px) saturate(1.02);
    backdrop-filter: blur(5px) saturate(1.02);
  }

  body.replica-amazinggrace .replica-hero-action--primary::before {
    opacity: 0.16;
  }

  body.replica-amazinggrace .replica-hero-action--ghost {
    color: rgba(255, 255, 255, 0.88);
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.025);
  }
}

/* Codex refinements 4: mobile FV slideshow, frosted concept background, compact plan carousel. */
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
  position: relative;
  overflow: hidden;
  margin-top: 0 !important;
  background:
    linear-gradient(180deg, rgba(251, 252, 251, 0.08) 0%, rgba(251, 252, 251, 0.62) 17%, rgba(251, 252, 251, 0.88) 34%, #F4F5F4 78%),
    rgba(251, 252, 251, 0.62);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: -9vh -6vw -8vh;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(251, 252, 251, 0.74) 0%, rgba(251, 252, 251, 0.36) 48%, rgba(251, 252, 251, 0.62) 100%),
    url("../amazinggrace/amazinggrace-official-concept01.jpg") center center / cover no-repeat;
  filter: blur(30px) saturate(0.92) contrast(0.96);
  opacity: 0.72;
  transform: scale(1.1);
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(251, 252, 251, 0.12) 0%, rgba(251, 252, 251, 0.48) 24%, rgba(251, 252, 251, 0.88) 100%),
    radial-gradient(circle at 24% 22%, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0) 34%),
    radial-gradient(circle at 78% 46%, rgba(243, 169, 193, 0.16) 0%, rgba(243, 169, 193, 0) 38%);
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
  background: rgba(251, 252, 251, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.58);
  box-shadow:
    0 34px 90px rgba(56, 66, 60, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.62);
  -webkit-backdrop-filter: blur(22px) saturate(1.12);
  backdrop-filter: blur(22px) saturate(1.12);
}

body.replica-amazinggrace .rxbuilt .rxplans {
  max-width: none;
  width: 100%;
  /* 上の余白は o-lead-pages の padding-top で担保するため 0。下余白も見出しmarginに集約 */
  margin-top: 0;
  padding: 0 clamp(20px, 5vw, 64px);
  overflow: hidden;
}

body.replica-amazinggrace .rxbuilt .rxplans__head {
  width: 100%;
  max-width: 720px;
  /* 見出し→iframe の間隔（フェア側 rx-embed--fair と統一） */
  margin: 0 auto clamp(28px, 3.4vw, 44px);
  text-align: center;
}

body.replica-amazinggrace .rxbuilt .rxplans__grid {
  display: flex;
  grid-template-columns: none;
  gap: clamp(16px, 1.8vw, 26px);
  width: 100%;
  padding: 0 max(clamp(20px, 5vw, 64px), calc((100vw - 1180px) / 2 + 24px)) 24px 0;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-padding-left: 0;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

body.replica-amazinggrace .rxbuilt .rxplans__grid::-webkit-scrollbar {
  height: 3px;
}

body.replica-amazinggrace .rxbuilt .rxplans__grid::-webkit-scrollbar-track {
  background: rgba(243, 169, 193, 0.12);
}

body.replica-amazinggrace .rxbuilt .rxplans__grid::-webkit-scrollbar-thumb {
  background: rgba(243, 169, 193, 0.42);
}

body.replica-amazinggrace .rxbuilt .rxplan {
  flex: 0 0 clamp(330px, 31vw, 430px);
  min-width: 0;
  scroll-snap-align: start;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .replica-hero-photo,
  body.replica-amazinggrace .replica-hero-photo-wrap {
    background-position: center top !important;
    background-size: cover !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
    padding-top: clamp(72px, 18vw, 106px) !important;
    background:
      linear-gradient(180deg, rgba(251, 252, 251, 0.2) 0%, rgba(251, 252, 251, 0.72) 20%, #F4F5F4 70%),
      rgba(251, 252, 251, 0.64);
    -webkit-backdrop-filter: blur(16px) saturate(1.06) !important;
    backdrop-filter: blur(16px) saturate(1.06) !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::before {
    inset: -5vh -18vw -8vh;
    background:
      linear-gradient(90deg, rgba(251, 252, 251, 0.9) 0%, rgba(251, 252, 251, 0.46) 54%, rgba(251, 252, 251, 0.7) 100%),
      url("../amazinggrace/amazinggrace-official-sp-mv01.jpg") center bottom / cover no-repeat;
    filter: blur(26px) saturate(0.92);
    opacity: 0.72;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
    background: rgba(251, 252, 251, 0.34);
    border-color: rgba(255, 255, 255, 0.48);
    -webkit-backdrop-filter: blur(18px) saturate(1.08);
    backdrop-filter: blur(18px) saturate(1.08);
  }

  body.replica-amazinggrace .rxbuilt .rxplans {
    margin-top: 20px;
    padding: 0 22px 20px;
  }
  /* プラン下の余白は最小限に。次セクション(.rxlead)の padding-top(42px)と合わせて
     カード上下の余白を均等化（下重心の「浮き」を解消） */
  body.replica-amazinggrace .rxbuilt .rxplans__embed {
    margin-bottom: 4px;
  }

  body.replica-amazinggrace .rxbuilt .rxplans__head {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 22px;
    text-align: center;
  }

  body.replica-amazinggrace .rxbuilt .rxplans__lead {
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
  }

  body.replica-amazinggrace .rxbuilt .rxplans__grid {
    display: flex;
    grid-template-columns: none;
    gap: 16px;
    padding-right: 22px;
    padding-bottom: 20px;
  }

  body.replica-amazinggrace .rxbuilt .rxplan {
    flex: 0 0 min(286px, 78vw);
  }

  body.replica-amazinggrace .rxbuilt .rxplan__img {
    aspect-ratio: 16 / 10.8;
  }
}

/* Codex refinements 6: concept full-photo, no frosted glass. */
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
  min-height: 100svh;
  padding: clamp(84px, 8vw, 132px) 0 !important;
  background:
    url("../amazinggrace/amazinggrace-concept-full.jpg") right center / cover no-repeat,
    #F4F5F4 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: 0 !important;
  z-index: 0 !important;
  background:
    linear-gradient(90deg, rgba(251, 252, 251, 0.94) 0%, rgba(251, 252, 251, 0.78) 34%, rgba(251, 252, 251, 0.32) 62%, rgba(251, 252, 251, 0.04) 100%),
    linear-gradient(180deg, rgba(251, 252, 251, 0.5) 0%, rgba(251, 252, 251, 0.1) 44%, rgba(63, 72, 66, 0.16) 100%);
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: 0 !important;
  z-index: 0 !important;
  background:
    radial-gradient(circle at 24% 24%, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0) 34%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 52%, rgba(74, 80, 82, 0.14) 100%);
  filter: none !important;
  opacity: 1 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
  position: relative;
  z-index: 1;
  min-height: calc(100svh - clamp(168px, 16vw, 264px));
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero {
  background: transparent !important;
  box-shadow: none !important;
  opacity: 0 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  pointer-events: none;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero::before {
  content: none !important;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
    min-height: 100svh;
    padding: 0 !important;
    background:
      url("../amazinggrace/amazinggrace-concept-full.jpg") center bottom / cover no-repeat,
      #F4F5F4 !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal::before {
    background:
      linear-gradient(90deg, rgba(251, 252, 251, 0.94) 0%, rgba(251, 252, 251, 0.68) 45%, rgba(251, 252, 251, 0.06) 100%),
      linear-gradient(180deg, rgba(251, 252, 251, 0.58) 0%, rgba(251, 252, 251, 0.08) 44%, rgba(74, 80, 82, 0.2) 100%);
    filter: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}

/* Codex refinements 7: mobile concept watermark diagonal balance. */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
    top: clamp(72px, 18vw, 92px) !important;
    right: 4px !important;
    left: auto !important;
    width: auto !important;
    color: rgba(243, 169, 193, 0.105) !important;
    font-size: clamp(5.7rem, 23vw, 8.8rem) !important;
    letter-spacing: 0.075em !important;
    line-height: 0.82 !important;
    transform: none !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
    left: 18px !important;
    right: auto !important;
    bottom: clamp(-44px, -8.5vw, -30px) !important;
    color: rgba(255, 255, 255, 0.68) !important;
    font-size: clamp(5.2rem, 22vw, 8.4rem) !important;
    letter-spacing: 0.065em !important;
    line-height: 0.82 !important;
    transform: none !important;
  }
}

/* Codex refinements 9: remove amazinggrace Wedding and Photo Gallery blocks. */
body.replica-amazinggrace .o-lead-style,
body.replica-amazinggrace .o-lead-gallery,
body.replica-amazinggrace .o-lead-report {
  display: none !important;
}

/* Codex refinements 8: watermark sizing, Wedding Contents spacing, staggered cards, mobile dress crop. */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
    top: clamp(40px, 11vw, 54px) !important;
    right: 12px !important;
    color: rgba(243, 169, 193, 0.092) !important;
    font-size: clamp(4.35rem, 17.2vw, 6.45rem) !important;
    letter-spacing: 0.065em !important;
  }

  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
    left: 16px !important;
    bottom: clamp(-42px, -7.8vw, -28px) !important;
    color: rgba(255, 255, 255, 0.62) !important;
    font-size: clamp(4.8rem, 19vw, 7.25rem) !important;
    letter-spacing: 0.055em !important;
  }
}

@media (min-width: 751px) {
  body.replica-amazinggrace .rxbuilt .rxlead-contents {
    margin-top: clamp(96px, 10vw, 156px);
    margin-bottom: 0;
  }

  body.replica-amazinggrace .rxbuilt .rxlead-contents__head {
    z-index: 3;
  }

  body.replica-amazinggrace .rxbuilt .rxlead-contents__ttl {
    font-size: clamp(42px, 5.6vw, 86px);
  }

  body.replica-amazinggrace .rxbuilt .rxlead-contents + .rxlead-cards {
    margin-top: clamp(56px, 6vw, 96px) !important;
    padding: 0 clamp(32px, 5vw, 72px) !important;
  }

  body.replica-amazinggrace .rxbuilt .rxlead-cards {
    gap: clamp(12px, 1.4vw, 22px);
    background: transparent;
  }

  body.replica-amazinggrace .rxbuilt .rxlead-card {
    aspect-ratio: 4 / 4.7;
  }
}

body.replica-amazinggrace .rxbuilt .rxlead-card.rxrev {
  filter: blur(10px);
  clip-path: inset(0 0 16% 0);
  transform: translateY(44px) scale(0.985);
  transition:
    opacity 0.86s cubic-bezier(0.22, 0.9, 0.18, 1),
    filter 0.86s ease,
    clip-path 1s cubic-bezier(0.22, 0.9, 0.18, 1),
    transform 1s cubic-bezier(0.22, 0.9, 0.18, 1);
}

body.replica-amazinggrace .rxbuilt .rxlead-card.rxrev:nth-child(1) {
  transition-delay: 0ms;
}

body.replica-amazinggrace .rxbuilt .rxlead-card.rxrev:nth-child(2) {
  transition-delay: 140ms;
}

body.replica-amazinggrace .rxbuilt .rxlead-card.rxrev:nth-child(3) {
  transition-delay: 280ms;
}

body.replica-amazinggrace .rxbuilt .rxlead-card.rxrev.is-in {
  opacity: 1;
  filter: blur(0);
  clip-path: inset(0);
  transform: translateY(0) scale(1);
}

body.replica-amazinggrace .rxbuilt .rxlead-card.rxrev .rxlead-card__body {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.74s ease,
    transform 0.86s cubic-bezier(0.22, 0.9, 0.18, 1);
  transition-delay: inherit;
}

body.replica-amazinggrace .rxbuilt .rxlead-card.rxrev.is-in .rxlead-card__body {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxlead-card:nth-child(2) .rxlead-card__img img {
    object-position: 64% 18%;
  }
}

/* Codex refinements 10: single mobile FV logo. */
@media (max-width: 750px) {
  body.replica-amazinggrace .replica-hero-center-logo {
    display: block !important;
    top: 51% !important;
    left: 50% !important;
    width: min(218px, 56vw) !important;
    min-width: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate(-50%, -50%) !important;
  }

  body.replica-amazinggrace .replica-hero-center-logo::before {
    display: none !important;
    content: none !important;
  }

  body.replica-amazinggrace .replica-hero-center-logo img {
    opacity: 0.88 !important;
    filter:
      brightness(0) invert(1)
      drop-shadow(0 2px 14px rgba(28, 35, 30, 0.28)) !important;
  }

  body.replica-amazinggrace .o-mainvisual__ttl {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.replica-amazinggrace .o-mainvisual__ttl h2 {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.replica-amazinggrace .o-mainvisual__ttl__deco {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
}

/* Codex refinements 11: mobile hero photos already include the amazinggrace logo. */
@media (max-width: 750px) {
  body.replica-amazinggrace .replica-hero-center-logo,
  body.replica-amazinggrace .replica-hero-center-logo img {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.replica-amazinggrace .o-mainvisual__ttl,
  body.replica-amazinggrace .o-mainvisual__ttl h2,
  body.replica-amazinggrace .o-mainvisual__ttl__deco {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
}

/* Codex refinements 12: richer mobile FV bottom gradient. */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-mainvisual::after {
    z-index: 1;
    background:
      radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0) 42%),
      linear-gradient(180deg,
        rgba(17, 20, 19, 0.02) 0%,
        rgba(17, 20, 19, 0.02) 32%,
        rgba(18, 21, 19, 0.22) 52%,
        rgba(22, 29, 25, 0.58) 72%,
        rgba(17, 20, 19, 0.82) 90%,
        rgba(12, 14, 13, 0.9) 100%),
      linear-gradient(90deg, rgba(19, 22, 21, 0.12) 0%, rgba(19, 22, 21, 0) 48%, rgba(19, 22, 21, 0.12) 100%) !important;
  }
}

/* Codex refinements 13: logo-free mobile photos + one controlled logo. */
@media (max-width: 750px) {
  body.replica-amazinggrace .replica-hero-center-logo {
    display: block !important;
    top: 50.8% !important;
    left: 50% !important;
    z-index: 3 !important;
    width: min(210px, 54vw) !important;
    height: auto !important;
    min-width: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: none !important;
  }

  body.replica-amazinggrace .replica-hero-center-logo::before {
    display: none !important;
    content: none !important;
  }

  body.replica-amazinggrace .replica-hero-center-logo img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    opacity: 0.9 !important;
    visibility: visible !important;
    filter:
      brightness(0) invert(1)
      drop-shadow(0 2px 16px rgba(20, 23, 21, 0.34)) !important;
  }

  body.replica-amazinggrace .replica-hero-photo,
  body.replica-amazinggrace .replica-hero-photo-wrap {
    background-position: center center !important;
  }
}

/* Codex refinements 14: Ceremony / Party editorial auto-slider repair. */
body.replica-amazinggrace .rxbuilt .rxlead {
  position: relative !important;
  max-width: min(1560px, calc(100% - 8vw)) !important;
  margin: 0 auto !important;
  /* 上パディングを縮小：直前の「おすすめプラン」カードの下余白が大きすぎて下重心（浮き）に
     見えていたため、プラン側の上余白と釣り合う値に。
     下パディングは 0（＝パーティー→料理のギャップは .rxshowcase--cuisine の margin-top に一元化。
     セクション間ギャップをセレモニー↔パーティー基準＝約112pxで統一するため）。 */
  padding: clamp(40px, 3.6vw, 56px) 0 0 !important;
  overflow: visible !important;
}

body.replica-amazinggrace .rxbuilt .rxlead::before {
  content: "" !important;
  position: absolute !important;
  top: clamp(108px, 10vw, 170px) !important;
  left: 13% !important;
  width: min(940px, 64vw) !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  background: rgba(232, 234, 232, 0.44) !important;
  z-index: 0 !important;
  pointer-events: none !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature {
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-columns: minmax(270px, 0.42fr) minmax(560px, 0.9fr) !important;
  gap: clamp(48px, 6.2vw, 112px) !important;
  align-items: center !important;
  margin: 0 !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature + .rxfeature {
  margin-top: clamp(76px, 8vw, 136px) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature--party {
  grid-template-columns: minmax(560px, 0.9fr) minmax(270px, 0.42fr) !important;
  align-items: end !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__text {
  width: 100% !important;
  max-width: 390px !important;
  min-width: 0 !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__text {
  justify-self: start !important;
  margin-bottom: clamp(14px, 2vw, 34px) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-en {
  color: #F3A9C1 !important;
  font-size: clamp(3rem, 2.6vw, 4.4rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  line-height: 1 !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-jp {
  margin-top: 12px !important;
  padding-left: 0 !important;
  color: #68718a !important;
  font-size: 1.22rem !important;
  letter-spacing: 0.14em !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-jp::before {
  display: none !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-copy {
  margin-top: 34px !important;
  font-size: clamp(1.75rem, 1.22vw, 2.15rem) !important;
  line-height: 1.9 !important;
  letter-spacing: 0.06em !important;
  color: #343235 !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-em {
  color: inherit !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-desc {
  margin-top: 24px !important;
  max-width: 35em !important;
  font-size: 1.26rem !important;
  line-height: 2.1 !important;
  color: #56505a !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-width: min(285px, 100%) !important;
  margin-top: 34px !important;
  padding: 15px 22px !important;
  border: 1px solid rgba(49, 90, 154, 0.72) !important;
  color: #F3A9C1 !important;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: 1.23rem !important;
  letter-spacing: 0.12em !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
  background: rgba(255, 255, 255, 0.36) !important;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link span {
  flex: 0 0 auto !important;
  width: 6px !important;
  height: 6px !important;
  margin-left: 22px !important;
  border-radius: 50% !important;
  background: #F3A9C1 !important;
  transition: transform 0.4s ease, background 0.4s ease !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link:hover {
  background: #F3A9C1 !important;
  color: #fff !important;
  border-color: #F3A9C1 !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link:hover span {
  width: 6px !important;
  transform: translateX(5px) !important;
  background: #fff !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__slider {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9.25 !important;
  overflow: hidden !important;
  margin: 0 !important;
  background: #fff !important;
  box-shadow: 0 24px 64px rgba(36, 41, 37, 0.08) !important;
}

/* スタック用の入れ物（スライドを重ねる） */
body.replica-amazinggrace .rxbuilt .rxfeature__track {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  animation: none !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__track {
  animation: none !important;
}

/* 3枚を重ねて opacity でとんとん切替（フェード） */
body.replica-amazinggrace .rxbuilt .rxfeature__slide {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  opacity: 0;
  animation: rxFade 12s ease-in-out infinite !important;
}
/* 1→2→3 の順（新しい写真が前面に重なって出るので継ぎ目で背景が透けない） */
body.replica-amazinggrace .rxbuilt .rxfeature__slide:nth-child(1) { animation-delay: 0s !important; }
body.replica-amazinggrace .rxbuilt .rxfeature__slide:nth-child(2) { animation-delay: -8s !important; }
body.replica-amazinggrace .rxbuilt .rxfeature__slide:nth-child(3) { animation-delay: -4s !important; }
/* パーティーはセレモニーと少しずらして単調さを回避 */
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__slide:nth-child(1) { animation-delay: -2s !important; }
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__slide:nth-child(2) { animation-delay: -10s !important; }
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__slide:nth-child(3) { animation-delay: -6s !important; }

body.replica-amazinggrace .rxbuilt .rxfeature__dots {
  display: none !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__slide img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transform: scale(1.01) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__dots {
  position: absolute !important;
  right: 24px !important;
  bottom: 20px !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__dots span {
  display: block !important;
  width: 5px !important;
  height: 5px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.62) !important;
  box-shadow: 0 0 0 1px rgba(35, 40, 42, 0.15) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__dots span:nth-child(1) {
  animation: rxFeatureDot 11.4s linear infinite !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__dots span:nth-child(2) {
  animation: rxFeatureDot 11.4s linear infinite -3.8s !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__dots span:nth-child(3) {
  animation: rxFeatureDot 11.4s linear infinite -7.6s !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__dots span:nth-child(1) {
  animation-delay: -3.8s !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__dots span:nth-child(2) {
  animation-delay: -7.6s !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__dots span:nth-child(3) {
  animation-delay: -11.4s !important;
}

/* 自然な切替：新しい写真が前面(z-index)でゆっくりフェードインし、しばらく表示後、
   次の写真に覆われてから消える（＝継ぎ目で背景が透けない、なめらかなフェード） */
@keyframes rxFade {
  0%     { opacity: 0; z-index: 2; }
  17%    { opacity: 1; z-index: 2; }
  33%    { opacity: 1; z-index: 2; }
  34%    { opacity: 1; z-index: 1; }
  50%    { opacity: 1; z-index: 1; }
  67%    { opacity: 0; z-index: 1; }
  68%    { opacity: 0; z-index: 0; }
  100%   { opacity: 0; z-index: 0; }
}

@keyframes rxFeatureDot {
  0%, 24% {
    background: #fff;
    transform: scale(1.45);
  }
  25%, 100% {
    background: rgba(255, 255, 255, 0.62);
    transform: scale(1);
  }
}

@media (max-width: 900px) {
  body.replica-amazinggrace .rxbuilt .rxlead {
    max-width: calc(100% - 40px) !important;
    /* プランカード下の余白を上余白と釣り合わせる（下重心の浮きを解消） */
    padding-top: 34px !important;
    padding-bottom: 68px !important;
  }

  body.replica-amazinggrace .rxbuilt .rxlead::before {
    top: 12% !important;
    left: auto !important;
    right: -26% !important;
    width: min(520px, 110vw) !important;
    opacity: 0.5 !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature,
  body.replica-amazinggrace .rxbuilt .rxfeature--party {
    display: flex !important;
    flex-direction: column !important;
    gap: 28px !important;
    align-items: stretch !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature + .rxfeature {
    margin-top: 68px !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__slider {
    order: 2 !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__text {
    order: 1 !important;
    margin-bottom: 0 !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature__text {
    max-width: 100% !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-en {
    font-size: clamp(2.8rem, 9vw, 4rem) !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-copy {
    margin-top: 24px !important;
    font-size: 1.72rem !important;
    line-height: 1.75 !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-desc {
    max-width: none !important;
    font-size: 1.22rem !important;
    line-height: 2 !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link {
    width: min(290px, 100%) !important;
    min-width: 0 !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature__slider {
    aspect-ratio: 4 / 3.05 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .rxbuilt .rxfeature__track,
  body.replica-amazinggrace .rxbuilt .rxfeature__dots span {
    animation: none !important;
  }
  /* モーション抑制時はフェードを止め、1枚目を表示 */
  body.replica-amazinggrace .rxbuilt .rxfeature__slide {
    animation: none !important;
    opacity: 0 !important;
  }
  body.replica-amazinggrace .rxbuilt .rxfeature__slide:nth-child(1) {
    opacity: 1 !important;
  }
}

/* Codex refinements 15: amazinggrace tone, mobile reading order, calmer concept reveal. */
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
  transition:
    opacity 0.58s cubic-bezier(0.22, 0.72, 0.22, 1),
    transform 0.68s cubic-bezier(0.22, 0.72, 0.22, 1),
    -webkit-backdrop-filter 0.58s cubic-bezier(0.22, 0.72, 0.22, 1),
    backdrop-filter 0.58s cubic-bezier(0.22, 0.72, 0.22, 1) !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section,
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__content {
  transition: transform 0.68s cubic-bezier(0.22, 0.72, 0.22, 1) !important;
}

body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero.prlxView {
  transition:
    opacity 0.72s cubic-bezier(0.22, 0.72, 0.22, 1),
    transform 0.82s cubic-bezier(0.22, 0.72, 0.22, 1) !important;
}

body.replica-amazinggrace .o-lead-fair .c-ttl-section__en,
body.replica-amazinggrace .o-lead-instagram .c-ttl-section__en,
body.replica-amazinggrace .o-lead-information .c-ttl-section__en {
  color: var(--amazinggrace-gold-deep) !important;
  font-family: "Cormorant Infant", "Cormorant Garamond", "Cinzel", "Times New Roman", serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  text-transform: capitalize !important;
}

body.replica-amazinggrace .o-lead-fair .c-ttl-section__ja,
body.replica-amazinggrace .o-lead-instagram .c-ttl-section__ja,
body.replica-amazinggrace .o-lead-information .c-ttl-section__ja {
  color: rgba(70, 77, 79, 0.72) !important;
  font-size: clamp(1.05rem, 0.85vw, 1.32rem) !important;
  letter-spacing: 0.18em !important;
}

body.replica-amazinggrace .rxbuilt .rxplans__en {
  color: var(--amazinggrace-gold-deep) !important;
  font-family: "Cormorant Infant", "Cormorant Garamond", "Cinzel", "Times New Roman", serif !important;
  font-size: 4rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.4 !important;
  text-transform: capitalize !important;
}

body.replica-amazinggrace .rxbuilt .rxplans__ttl {
  margin-top: clamp(12px, 1.5vw, 20px) !important;
  color: rgba(70, 77, 79, 0.72) !important;
  font-size: clamp(1.15rem, 0.9vw, 1.42rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.2em !important;
}

body.replica-amazinggrace .rxbuilt .rxlead::before {
  background: rgba(253, 235, 241, 0.46) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-en {
  color: var(--amazinggrace-gold-deep) !important;
  font-family: "Cormorant Infant", "Cormorant Garamond", "Cinzel", "Times New Roman", serif !important;
  font-size: clamp(3.8rem, 3.25vw, 5.6rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-jp {
  color: rgba(70, 77, 79, 0.72) !important;
  font-size: 1.18rem !important;
  letter-spacing: 0.18em !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-jp::after {
  content: "" !important;
  display: block !important;
  width: 34px !important;
  height: 1px !important;
  margin-top: 16px !important;
  background: rgba(243, 169, 193, 0.74) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-copy {
  color: #373E40 !important;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: clamp(1.75rem, 1.22vw, 2.15rem) !important;
  font-weight: 400 !important;
  line-height: 1.95 !important;
  letter-spacing: 0.08em !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-desc {
  color: rgba(64, 71, 73, 0.78) !important;
  font-size: 1.25rem !important;
  line-height: 2.18 !important;
  letter-spacing: 0.06em !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link {
  min-width: min(286px, 100%) !important;
  border-color: rgba(243, 169, 193, 0.72) !important;
  color: var(--amazinggrace-gold-deep) !important;
  background: rgba(251, 252, 251, 0.48) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link span {
  background: var(--amazinggrace-gold-deep) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link:hover {
  color: #fff !important;
  border-color: var(--amazinggrace-gold-deep) !important;
  background: var(--amazinggrace-gold-deep) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link:hover span {
  background: #fff !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__slider {
  box-shadow: 0 24px 64px rgba(58, 70, 63, 0.1) !important;
}

body.replica-amazinggrace .rxbuilt .rxfeature__dots span {
  background: rgba(251, 252, 251, 0.7) !important;
  box-shadow: 0 0 0 1px rgba(94, 106, 98, 0.22) !important;
}

@keyframes rxFeatureDot {
  0%, 24% {
    background: #F3A9C1;
    transform: scale(1.45);
  }
  25%, 100% {
    background: rgba(251, 252, 251, 0.7);
    transform: scale(1);
  }
}

@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxlead {
    max-width: calc(100% - 40px) !important;
    padding-top: 42px !important;
    padding-bottom: 74px !important;
  }

  body.replica-amazinggrace .rxbuilt .rxlead::before {
    display: none !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature,
  body.replica-amazinggrace .rxbuilt .rxfeature--party {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature + .rxfeature {
    margin-top: 76px !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature__text {
    display: contents !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-en {
    order: 1 !important;
    margin: 0 !important;
    font-size: clamp(3.5rem, 12vw, 5.2rem) !important;
    line-height: 0.98 !important;
    letter-spacing: 0.09em !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-jp {
    order: 2 !important;
    margin: 10px 0 0 !important;
    font-size: 1.12rem !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-jp::after {
    margin-top: 13px !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature__slider,
  body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__slider {
    order: 3 !important;
    margin-top: 26px !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-copy {
    order: 4 !important;
    margin: 24px 0 0 !important;
    font-size: 1.62rem !important;
    line-height: 1.82 !important;
    letter-spacing: 0.05em !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-desc {
    order: 5 !important;
    margin-top: 18px !important;
    font-size: 1.17rem !important;
    line-height: 2.04 !important;
    letter-spacing: 0.045em !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature .rxlead-link {
    order: 6 !important;
    width: 100% !important;
    margin-top: 22px !important;
    padding: 14px 18px !important;
    font-size: 1.14rem !important;
  }

  body.replica-amazinggrace .rxbuilt .rxfeature__slide {
    aspect-ratio: 4 / 3.08 !important;
  }

  body.replica-amazinggrace .rxbuilt .rxplans__en {
    font-size: 3rem !important;
  }

  body.replica-amazinggrace .rxbuilt .rxplans__ttl {
    font-size: 1.12rem !important;
  }

  body.replica-amazinggrace .replica-header-fair-cta {
    top: 23px !important;
    right: 72px !important;
    min-width: 92px !important;
    min-height: 30px !important;
    padding: 0 12px !important;
    overflow: hidden !important;
    color: transparent !important;
    font-size: 0 !important;
    letter-spacing: 0 !important;
  }

  body.replica-amazinggrace .replica-header-fair-cta::before {
    content: "フェア予約" !important;
    color: rgba(255, 255, 255, 0.94) !important;
    font-family: "Cinzel", "Cormorant Infant", "Yu Gothic", sans-serif !important;
    font-size: 0.8rem !important;
    letter-spacing: 0.06em !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }
}

/* ========================================
   公式予約サイト（official-wedding.net）の
   ライブパーツ（フェア/プラン）をセクション幅いっぱいに配置。
   .l-inner / .rxplans の外に出しているので左右の余白は最小限のガター
   のみ。背景は透過にしてセクション自体の背景色をそのまま見せる。
======================================== */
body.replica-amazinggrace .rx-embed {
  width: 100%;
  box-sizing: border-box;
  background: transparent;
  padding: 0 clamp(16px, 3.4vw, 40px);
  overflow: hidden;
}

body.replica-amazinggrace .rx-embed__frame {
  display: block;
  width: 100%;
  height: 460px;
  border: 0;
  background: transparent;
  transition: height 0.35s ease;
}

/* フェアセクションの上下余白（テーマ既定100pxを圧縮しプランと揃える） */
body.replica-amazinggrace .o-lead-fair {
  padding: clamp(44px, 5.5vw, 72px) 0;
}

/* =====================================================================
   背景装飾：クリーム×ゴールドの幾何ファン（コーナー装飾）。
   画像は右上が白でフェードするため、background-blend-mode: multiply で
   白をクリーム地に自然に溶かし、左下のファンだけがふわっと現れる。
   フェア → BEST RATE → おすすめプラン に“fixed”で連続。
   セレモニー以降(.rxpin 等)には付けない＝従来の装飾(丸)を継続。
   画像未設置時はクリーム背景にフォールバック。
   ===================================================================== */
body.replica-amazinggrace .o-lead-fair,
body.replica-amazinggrace .rxbest,
body.replica-amazinggrace .rxbuilt .rxplans-group {
  /* 幾何ファンの背景装飾(fair-deco.webp)は削除。クリーム地のみ。
     ※セレモニー以降の丸(.rxpin__circle)は別機構なので影響なし。 */
  background-color: #E8EAE9;
  background-image: none !important;
}

/* 「ブライダルフェア一覧」ボタンは非表示（iframe内にフェア導線があるため） */
body.replica-amazinggrace .rx-embed--fair .c-btn {
  display: none !important;
}

/* フェア見出し→iframe の間隔（プラン見出し→iframe と統一） */
body.replica-amazinggrace .rx-embed--fair {
  margin-top: clamp(28px, 3.4vw, 44px);
}

body.replica-amazinggrace .rx-embed--fair .c-btn {
  margin-top: clamp(28px, 4vw, 48px);
}

/* プラン見出し(.rxplans__head margin-bottom)側で間隔を作るのでembedの上余白は0 */
/* プランiframeは外部ウィジェット（別ドメイン）で中身の白背景は変更不可のため、
   角丸＋やわらかい影＋白余白で「意図した白いカード」に見せてクリーム地に馴染ませる */
body.replica-amazinggrace .rx-embed--plan {
  margin: 0 auto;
  max-width: 1180px;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
body.replica-amazinggrace .rx-embed--plan .rx-embed__frame {
  border-radius: 8px;
}
@media (max-width: 750px) {
  body.replica-amazinggrace .rx-embed--plan {
    padding: 0;
    border-radius: 0;
  }
}

@media (max-width: 750px) {
  body.replica-amazinggrace .rx-embed {
    padding: 0 16px;
  }
}

/* =================================================================
   円装飾のスクロール追従（ピン止め）
   .rxpin = セレモニー〜ウェディングコンテンツを内包するラッパー。
   その中の .rxpin__circle を position:sticky にすることで、円が
   その範囲だけ画面に貼り付いて「ついてくる」。旧 .rxlead::before は無効化。
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxlead::before {
  display: none !important;
}

body.replica-amazinggrace .rxbuilt .rxpin {
  position: relative;
  /* 装飾を各ゾーン内に収める：放射は料理の終わりで切れる（clipはスクロールコンテナを作らずstickyを壊さない） */
  overflow: clip;
}

body.replica-amazinggrace .rxbuilt .rxpin__circle {
  position: -webkit-sticky;
  position: sticky;
  top: clamp(96px, 15vh, 176px);
  height: 0;
  z-index: 0;
  pointer-events: none;
}
/* 太めの丸ライン（中央くり抜き＝縁の輪）。PCは中央に「完全な円」。
   セレモニー〜料理までピン止め追従。height:0 の sticky 擬似要素で描画。 */
/* 塗りつぶし半円：左端から大きな円がのぞく（Stay側の右半円と対になる構成） */
body.replica-amazinggrace .rxbuilt .rxpin__circle::before {
  content: "";
  position: absolute;
  left: -12%;
  top: 0;
  transform: translateX(-50%);
  width: min(600px, 52vw);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  border: 0;
  background: rgba(200, 206, 202, 0.5);
  pointer-events: none;
}
/* グロー（旧・放射の芯）は不要なので消す */
body.replica-amazinggrace .rxbuilt .rxpin__circle::after {
  display: none;
}

/* 丸装飾は「セレモニーのメイン画像」と同時に出現：
   既定は透明、JSが付ける .rx-circle-in（セレモニーが画像と同一閾値でビューイン）でフェードイン。 */
body.replica-amazinggrace .rxbuilt .rxpin__circle::before {
  opacity: 0;
  transition: opacity 0.9s ease;
}
body.replica-amazinggrace .rxbuilt .rxpin__circle.rx-circle-in::before {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .rxbuilt .rxpin__circle::before { opacity: 1; transition: none; }
}

/* =================================================================
   STAY（宿泊・ステイウェディング）の半円装飾＝縁の輪。
   ピン止めなし（通常スクロール）で、右端から太めの丸ラインが半円状にのぞく。
   塗りではなく“中央くり抜きのリング”にして上質・洗練に。
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxpin__night {
  position: absolute;
  top: clamp(80px, 12vh, 180px);
  left: 0;
  right: 0;
  height: 0;
  z-index: 0;
  pointer-events: none;
}
body.replica-amazinggrace .rxbuilt .rxpin__night::before {
  content: "";
  position: absolute;
  right: -10%;
  top: 0;
  width: min(600px, 52vw);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  border: 0;
  background: rgba(200, 206, 202, 0.5);
  pointer-events: none;
}
body.replica-amazinggrace .rxbuilt .rxpin__night::after { display: none; }

@media (max-width: 750px) {
  /* スマホも塗りつぶし半円（左端からのぞく・淡め） */
  body.replica-amazinggrace .rxbuilt .rxpin__circle {
    /* スマホは初期登場位置を約50px下げてから追従（sticky top を +50px） */
    top: clamp(130px, 18vh, 180px);
  }
  body.replica-amazinggrace .rxbuilt .rxpin__circle::before {
    left: -46vw;
    transform: none;
    width: 122vw;
    border: 0;
    border-radius: 50%;
    background: rgba(200, 206, 202, 0.42);
    opacity: 1;
  }
}

/* =================================================================
   放射線は料理の終わりまで見せる。ただし料理写真のマスク透過部分から
   放射線が「透けて」見えると汚いので、写真の下地（ギャラリー）にだけ
   不透明なクリームを敷く（＝写真のフェード端はクリームに溶ける）。
   放射線は料理の“文字側（左のクリーム面）”には自然に届く。
   Wedding Contents は写真が主役なので従来どおり不透明クリームで装飾をブロック。
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__gallery,
body.replica-amazinggrace .rxbuilt .rxlead-contents {
  background-color: #F4F5F4;
}

/* =================================================================
   各セクションに散在する「amazinggrace HOTEL OMIYA」ロゴ画像の透かしを全撤去。
   ・.replica-amazinggrace-mark      … セクション見出し上の小さいロゴ
   ・.replica-amazinggrace-watermark … セクション背景の大きい薄いロゴ透かし
   ・.c-ttl-section .iconSvg[data-icon="logo"] … 見出し上のロゴ枠ごと
   ※ ヘッダー/ヒーローの本ロゴ（.replica-amazinggrace-logo）には影響しない。
   ================================================================= */
body.replica-amazinggrace .replica-amazinggrace-mark,
body.replica-amazinggrace .replica-amazinggrace-watermark,
body.replica-amazinggrace .c-ttl-section .iconSvg[data-icon="logo"] {
  display: none !important;
}

/* 放射装飾は継続（ユーザー気に入り）。※Cuisine/施設カード等への透けは
   別途スコープ調整可能（.rxpin の範囲 or z-index）。 */

/* =================================================================
   スマホのみ：各リードセクションに大きなエディトリアル透かし文字を追加し、
   縦積みの単調さを解消する。料理(CUISINE)・ステイ(STAY)は既存の透かし語が
   出るため、Ceremony / Party にも同種の透かし語を足して統一感＋変化を出す。
   背面(z:-1)配置なので本文・写真の可読性は損なわない。PC には一切影響しない。
   ================================================================= */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxfeature--ceremony,
  body.replica-amazinggrace .rxbuilt .rxfeature--party {
    overflow: hidden; /* 透かし文字の画面外へのはみ出しをクリップ */
  }
  body.replica-amazinggrace .rxbuilt .rxfeature--ceremony::after,
  body.replica-amazinggrace .rxbuilt .rxfeature--party::after {
    position: absolute;
    z-index: -1;
    font-family: "Cormorant Infant", "Times New Roman", serif;
    font-weight: 400;
    line-height: 0.78;
    letter-spacing: 0.04em;
    color: rgba(243, 169, 193, 0.13);
    white-space: nowrap;
    pointer-events: none;
  }
  body.replica-amazinggrace .rxbuilt .rxfeature--ceremony::after {
    content: "Ceremony";
    top: 1%;
    right: -8%;
    font-size: 27vw;
  }
  body.replica-amazinggrace .rxbuilt .rxfeature--party::after {
    content: "Party";
    bottom: 4%;
    left: -5%;
    font-size: 32vw;
  }
}

/* =================================================================
   スマホ専用：料理セクション（添付モックの完コピ）
   ・PC(min-width:751px)では .rxcuisine-m を常に非表示＝PCは一切不変。
   ・スマホでは既存の料理中身を隠し、この専用ブロックだけ表示。
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxcuisine-m { display: none; }

@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine {
    display: block !important;
    margin-top: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #F4F5F4 !important;
  }
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__text,
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__gallery,
  body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__wm {
    display: none !important;
  }

  body.replica-amazinggrace .rxbuilt .rxcuisine-m {
    display: block;
    position: relative;
    background: #F4F5F4;
    color: #23282A;
    overflow: hidden;
  }

  /* --- ヒーロー写真（下辺を曲線でカット＋金のヘアライン） --- */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__hero {
    position: relative;
    width: 100%;
    height: 92vw;
    min-height: 320px;
    overflow: hidden;
  }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* 皿を主役に：下部のテーブル面が曲線から覗かないよう料理中心を見せる */
    object-position: center 38%;
  }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__curve {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    width: 100%;
    height: 150px;
    display: block;
  }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__curveFill { fill: #F4F5F4; }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__curveLine {
    fill: none;
    stroke: #F3A9C1;
    stroke-width: 1;
    opacity: 0.5;
  }

  /* --- コピーエリア --- */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__inner {
    position: relative;
    /* 曲線の左側は高い位置で切れるため、コンテンツを曲線帯へ引き上げて
       モック同様「曲線のすぐ下から見出しが始まる」リズムにする */
    margin-top: -58px;
    padding: 0 26px 34px;
  }

  /* 巨大透かし CUISINE（下部背景） */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__wm {
    position: absolute;
    left: -2%;
    bottom: 96px;
    z-index: 0;
    font-family: "Cormorant Infant", "Times New Roman", serif;
    font-weight: 400;
    font-size: 27vw;
    line-height: 0.8;
    letter-spacing: 0.04em;
    color: rgba(243, 169, 193, 0.13);
    white-space: nowrap;
    pointer-events: none;
  }

  /* 植物線画 */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__bot {
    position: absolute;
    z-index: 1;
    color: #F3A9C1;
    opacity: 0.4;
    pointer-events: none;
    height: auto;
  }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__bot--a { top: -2px; right: 26px; width: 120px; opacity: 0.42; }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__bot--b { bottom: 148px; right: -12px; width: 84px; opacity: 0.4; }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__bot--c { bottom: 168px; left: 4px; width: 58px; opacity: 0.3; }

  /* アイブロウ */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__eyebrow {
    position: relative;
    z-index: 2;
    margin: 14px 0 0;
    font-family: "Cinzel", "Cormorant Infant", serif;
    font-size: 0.82rem;
    letter-spacing: 0.22em;
    color: #F3A9C1;
  }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__eyebrow .sl { margin: 0 9px; opacity: 0.55; }

  /* 見出し */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__ttl {
    position: relative;
    z-index: 2;
    margin: 14px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #23282A;
  }

  /* 金の罫線 */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__rule {
    position: relative;
    z-index: 2;
    display: block;
    width: 40px;
    height: 1px;
    margin: 24px 0 0;
    background: #F3A9C1;
  }

  /* 本文（右の円写真ぶんだけ狭い左カラム） */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__desc {
    position: relative;
    z-index: 2;
    margin: 20px 0 0;
    max-width: 55%;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.94rem;
    line-height: 2.1;
    letter-spacing: 0.03em;
    color: #2F3638;
  }

  /* 真円写真（モック準拠：右端へ少しはみ出す） */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__circle {
    position: absolute;
    right: -26px;
    top: 160px;
    z-index: 1;
    width: 52vw;
    max-width: 238px;
    aspect-ratio: 1 / 1;
    margin: 0;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 18px 38px rgba(35, 40, 42, 0.16);
  }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__circle img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* ゴールドCTA（モック準拠：中央寄せ・約6割幅・スリム） */
  /* CTAは他セクション（Ceremony等）と同じ枠線ボタン（.rxlead-link）を流用。上余白のみ指定 */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__ctawrap {
    position: relative;
    z-index: 2;
    margin-top: 44px;
  }

  /* スライダードット */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__dots {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin: 20px 0 2px;
  }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__dots i {
    width: 8px; height: 8px;
    border-radius: 50%;
    border: 1px solid #F3A9C1;
    opacity: 0.5;
  }
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__dots i.is-on {
    background: #F3A9C1;
    opacity: 1;
  }
}

/* =================================================================
   フォトギャラリー（旧インスタグラム枠）
   左テキスト＋右アシンメトリック・モザイク。トンマナ踏襲：
   ゴールド・明朝/セリフ・クリームの淡いグラデーション地。
   ================================================================= */
body.replica-amazinggrace .o-lead-instagram {
  padding: 0 !important;
  background: transparent !important;
}
body.replica-amazinggrace .rxgallery {
  position: relative;
  display: block;
  padding: clamp(48px, 6vw, 96px) clamp(24px, 5vw, 72px);
  /* 上下端はページのアイボリーに溶かし、暖かみは中央だけに残す（前後セクションと継ぎ目なし） */
  background: linear-gradient(180deg, #F4F5F4 0%, #F4F5F4 46%, #F4F5F4 60%, #F4F5F4 100%);
}
/* 巨大な透かし文字「GALLERY」（下部背景・淡いゴールド） */
body.replica-amazinggrace .rxgallery__wm {
  position: absolute;
  left: clamp(-8px, -1vw, 0px);
  bottom: clamp(8px, 2vw, 40px);
  z-index: 0;
  font-family: "Cormorant Infant", "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(4.5rem, 14vw, 15rem);
  line-height: 0.8;
  letter-spacing: 0.05em;
  /* 控えめに：淡いシャンパンゴールドが上→下で徐々に薄くなり透明へフェード */
  background: linear-gradient(180deg,
    rgba(243, 169, 193, 0.15) 0%,
    rgba(243, 169, 193, 0.06) 55%,
    rgba(243, 169, 193, 0.02) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  white-space: nowrap;
  pointer-events: none;
}
/* 植物線画（テキスト下・淡いゴールド） */
body.replica-amazinggrace .rxgallery__bot {
  position: absolute;
  z-index: 1;
  left: clamp(20px, 4vw, 60px);
  bottom: clamp(-6px, 1vw, 24px);
  width: clamp(84px, 8vw, 116px);
  height: auto;
  color: #F3A9C1;
  opacity: 0.4;
  pointer-events: none;
}
/* 左：テキスト */
body.replica-amazinggrace .rxgallery__intro { position: relative; z-index: 2; }
body.replica-amazinggrace .rxgallery__eyebrow {
  margin: 0 0 16px;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(0.78rem, 0.95vw, 0.94rem);
  letter-spacing: 0.26em;
  color: #F3A9C1;
  text-transform: uppercase;
}
body.replica-amazinggrace .rxgallery__eyebrow .sl { margin: 0 9px; opacity: 0.55; }
body.replica-amazinggrace .rxgallery__ttl {
  margin: 0;
  font-family: "Cormorant Infant", "Cinzel", "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(1.9rem, 2.2vw, 2.6rem);
  line-height: 1.32;
  letter-spacing: 0.2em;
  /* 控えめに：シャンパンゴールドが上→下で徐々に薄くなり透明へフェード */
  background: linear-gradient(180deg,
    rgba(243, 169, 193, 0.92) 0%,
    rgba(243, 169, 193, 0.5) 55%,
    rgba(243, 169, 193, 0.24) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
body.replica-amazinggrace .rxgallery__rule {
  display: block;
  width: 44px;
  height: 1px;
  margin: 22px 0 0;
  background: #F3A9C1;
}
body.replica-amazinggrace .rxgallery__lead {
  margin: 20px 0 0;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(0.86rem, 1vw, 0.98rem);
  line-height: 2;
  letter-spacing: 0.06em;
  color: #4A5052;
}
body.replica-amazinggrace .rxgallery__more {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 26px;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  color: #F3A9C1;
  text-decoration: none;
}
body.replica-amazinggrace .rxgallery__more span {
  display: inline-block;
  width: 40px;
  height: 1px;
  background: #F3A9C1;
  transition: width 0.4s ease;
}
body.replica-amazinggrace .rxgallery__more:hover span { width: 62px; }

/* アシンメトリック・モザイク（4列×6行・テキストは左上マスに統合） */
body.replica-amazinggrace .rxgallery__mosaic {
  display: grid;
  grid-template-columns: 0.95fr 1.2fr 0.95fr 0.95fr;
  grid-auto-rows: clamp(72px, 6.4vw, 104px);
  gap: 10px;
}
body.replica-amazinggrace .rxgallery__cell {
  margin: 0;
  overflow: hidden;
}
body.replica-amazinggrace .rxgallery__cell img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.3s cubic-bezier(0.12, 0.72, 0.46, 1);
}
body.replica-amazinggrace .rxgallery__cell:hover img { transform: scale(1.05); }
/* PC配置：テキスト左上／チャペル中央大／花嫁縦長／右レール3枚／下段4枚 */
body.replica-amazinggrace .rxgallery__intro   { grid-column: 1 / 2; grid-row: 1 / 3; padding-right: 8px; }
body.replica-amazinggrace .rxgallery__cell--m1 { grid-column: 2 / 3; grid-row: 1 / 5; }
body.replica-amazinggrace .rxgallery__cell--m2 { grid-column: 3 / 4; grid-row: 1 / 5; }
body.replica-amazinggrace .rxgallery__cell--m4 { grid-column: 1 / 2; grid-row: 3 / 5; }
body.replica-amazinggrace .rxgallery__cell--m7 { grid-column: 4 / 5; grid-row: 1 / 3; }
body.replica-amazinggrace .rxgallery__cell--m8 { grid-column: 4 / 5; grid-row: 3 / 5; }
body.replica-amazinggrace .rxgallery__cell--m3 { grid-column: 1 / 2; grid-row: 5 / 7; }
body.replica-amazinggrace .rxgallery__cell--m5 { grid-column: 2 / 3; grid-row: 5 / 7; }
body.replica-amazinggrace .rxgallery__cell--m6 { grid-column: 3 / 4; grid-row: 5 / 7; }
body.replica-amazinggrace .rxgallery__cell--m9 { grid-column: 4 / 5; grid-row: 5 / 7; }

/* PCは添付レイアウト準拠のクリーンな面で見せる（帯・透かし・線画は非表示） */
@media (min-width: 751px) {
  body.replica-amazinggrace .rxgallery__ribbon,
  body.replica-amazinggrace .rxgallery__wm,
  body.replica-amazinggrace .rxgallery__bot {
    display: none;
  }
}

/* たなびくシルクの帯：背景装飾として全幅に敷く（グリッドの流れに入れない）。
   ※このルールが無いと帯SVGがグリッド1マス目を占有しレイアウトが崩壊する */
body.replica-amazinggrace .rxgallery__ribbon {
  position: absolute;
  left: 0;
  right: 0;
  top: 8%;
  width: 100%;
  height: 74%;
  z-index: 0;
  pointer-events: none;
  opacity: 0.85;
}
body.replica-amazinggrace .rxgallery__intro,
body.replica-amazinggrace .rxgallery__mosaic {
  position: relative;
  z-index: 2;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .rxgallery {
    padding: 48px 20px 56px;
  }
  body.replica-amazinggrace .rxgallery__ribbon {
    top: 2%;
    height: 34%;
    opacity: 0.7;
  }
  body.replica-amazinggrace .rxgallery__mosaic {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 38vw;
    gap: 6px;
  }
  /* テキストは全幅の先頭マス */
  body.replica-amazinggrace .rxgallery__intro   { grid-column: 1 / 3; grid-row: 1 / 2; padding: 4px 0 8px; }
  body.replica-amazinggrace .rxgallery__cell--m1 { grid-column: 1 / 3; grid-row: 2 / 4; }
  body.replica-amazinggrace .rxgallery__cell--m2 { grid-column: 1 / 2; grid-row: 4 / 6; }
  body.replica-amazinggrace .rxgallery__cell--m3 { grid-column: 2 / 3; grid-row: 4 / 5; }
  body.replica-amazinggrace .rxgallery__cell--m4 { grid-column: 2 / 3; grid-row: 5 / 7; }
  body.replica-amazinggrace .rxgallery__cell--m5 { grid-column: 1 / 2; grid-row: 6 / 7; }
  body.replica-amazinggrace .rxgallery__cell--m6 { grid-column: 1 / 2; grid-row: 7 / 8; }
  body.replica-amazinggrace .rxgallery__cell--m7 { grid-column: 2 / 3; grid-row: 7 / 8; }
  body.replica-amazinggrace .rxgallery__cell--m8 { grid-column: 1 / 2; grid-row: 8 / 9; }
  body.replica-amazinggrace .rxgallery__cell--m9 { grid-column: 2 / 3; grid-row: 8 / 9; }
}

/* たなびくシルクの帯（ギャラリー背面・全面に敷く） */
body.replica-amazinggrace .rxgallery__ribbon {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

/* =================================================================
   スマホ専用：STAY WEDDING（添付モック完コピ構成）
   ・右の大判写真＝下端と左端をクリームへグラデーションで溶かす
   ・左に STAY WEDDING（2行ゴールドセリフ）＋滞在型ウェディング＋金罫線
   ・巨大イニシャル「S」透かし＋左端に沿う植物線画
   ・中央寄せの明朝見出し・本文
   ・「一泊二日のステイウェディングの流れ」3ステップ（01›02›03）
   ・CTAは既存の枠線ボタン流用／ドットなし
   ・PC(min-width:751px)では .rxstay-m 非表示＝PCは一切不変
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxstay-m { display: none; }

@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxshowcase--stay {
    display: block !important;
    /* 料理セクションと直結（隙間からページ背景が帯状に覗く「謎の余白」を解消） */
    margin-top: 0 !important;
    padding: 0 !important;
    background: #F4F5F4 !important;
    overflow: hidden !important;
  }
  body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__text,
  body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__gallery,
  body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxshowcase__wm {
    display: none !important;
  }

  body.replica-amazinggrace .rxbuilt .rxstay-m {
    display: block;
    position: relative;
    overflow: hidden;
    color: #23282A;
    padding: 0 0 40px;
    background: #F4F5F4;
  }

  /* --- ヒーロー：全幅の没入写真。下端は長いグラデでアイボリーへ溶かす --- */
  body.replica-amazinggrace .rxbuilt .rxstay-m__hero {
    position: relative;
    height: 118vw;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__hero > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg,
      rgba(248, 249, 248, 0) 46%,
      rgba(248, 249, 248, 0.5) 72%,
      rgba(248, 249, 248, 0.94) 92%,
      #F8F9F8 100%);
  }
  /* 見出しは写真の溶けた下部に重ねる */
  body.replica-amazinggrace .rxbuilt .rxstay-m__head {
    position: absolute;
    left: 24px;
    bottom: 14px;
    z-index: 2;
    text-shadow: 0 0 14px rgba(248, 249, 248, 0.9), 0 0 4px rgba(248, 249, 248, 0.7);
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__en {
    margin: 0;
    font-family: "Cinzel", "Cormorant Infant", serif;
    font-size: 0.8rem;
    letter-spacing: 0.32em;
    color: #F3A9C1;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__jp {
    margin: 10px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 1.55rem;
    letter-spacing: 0.16em;
    color: #32363A;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__rule {
    display: block;
    width: 34px;
    height: 1px;
    margin: 14px 0 0;
    background: #F3A9C1;
  }

  /* --- 本文エリア --- */
  body.replica-amazinggrace .rxbuilt .rxstay-m__inner {
    position: relative;
    padding: 24px 24px 0;
  }
  /* 「S」「W」を重ねた透かし（見出し右・写真の溶け際にかかる） */
  body.replica-amazinggrace .rxbuilt .rxstay-m__sw {
    position: absolute;
    top: -32vw;
    right: 2px;
    z-index: 0;
    font-family: "Cormorant Infant", "Times New Roman", serif;
    font-weight: 400;
    font-size: 33vw;
    line-height: 0.8;
    /* S はコンセプトの amazinggrace 透かしと同じシャンパンゴールド */
    color: rgba(243, 169, 193, 0.34);
    pointer-events: none;
    user-select: none;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__sw i {
    font-style: normal;
    display: inline-block;
    margin-left: -0.34em;
    transform: translateY(0.22em);
    /* W は従来の淡いトーンのまま（Sとの重なりに階調がつく） */
    color: rgba(243, 169, 193, 0.22);
  }
  /* SWの傍に添える葉枝の線画 */
  body.replica-amazinggrace .rxbuilt .rxstay-m__bot {
    position: absolute;
    top: 2vw;
    right: 4px;
    width: 14vw;
    height: auto;
    z-index: 0;
    color: #F3A9C1;
    opacity: 0.42;
    pointer-events: none;
  }

  /* --- 見出し・本文（左寄せ・モック準拠のサイズ感） --- */
  body.replica-amazinggrace .rxbuilt .rxstay-m__ttl {
    position: relative;
    z-index: 2;
    margin: 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-weight: 600;
    font-size: 2.1rem;
    line-height: 1.7;
    letter-spacing: 0.06em;
    color: #282D2F;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__desc {
    position: relative;
    z-index: 2;
    margin: 16px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.92rem;
    line-height: 2.1;
    letter-spacing: 0.04em;
    color: #4A5052;
  }

  /* --- タイムライン（DAYレール＋金のドット線＋右写真） --- */
  body.replica-amazinggrace .rxbuilt .rxstay-m__tl {
    position: relative;
    z-index: 2;
    margin-top: 26px;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__item {
    position: relative;
    display: grid;
    grid-template-columns: 52px 1fr 40vw;
    gap: 0 12px;
    align-items: center;
    padding: 16px 0;
  }
  /* 縦のドット線（レール左端）：最初は点から、最後は点まで */
  body.replica-amazinggrace .rxbuilt .rxstay-m__item::before {
    content: "";
    position: absolute;
    left: 3px;
    top: 0;
    bottom: 0;
    border-left: 1px dotted rgba(243, 169, 193, 0.55);
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__item:first-child::before { top: 50%; }
  body.replica-amazinggrace .rxbuilt .rxstay-m__item:last-child::before { bottom: 50%; }
  /* 金の点マーカー（各DAYの位置） */
  body.replica-amazinggrace .rxbuilt .rxstay-m__item::after {
    content: "";
    position: absolute;
    left: 0.5px;
    top: calc(50% - 3px);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #F3A9C1;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__rail {
    display: flex;
    flex-direction: column;
    padding-left: 14px;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__rail em {
    font-style: normal;
    font-family: "Cinzel", "Cormorant Infant", serif;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    color: #F3A9C1;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__rail span {
    margin-top: 3px;
    font-family: "Cinzel", "Cormorant Infant", serif;
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    color: rgba(243, 169, 193, 0.75);
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__body h4 {
    margin: 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-weight: 600;
    font-size: 1.08rem;
    letter-spacing: 0.1em;
    color: #282D2F;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__body p {
    margin: 7px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.76rem;
    line-height: 1.9;
    letter-spacing: 0.02em;
    color: #5A6163;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__img {
    margin: 0;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-radius: 3px;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* --- CTA（既存の枠線ボタン流用・中央寄せ／ドットなし） --- */
  body.replica-amazinggrace .rxbuilt .rxstay-m__ctawrap {
    position: relative;
    z-index: 2;
    padding: 8px 22px 0;
    text-align: center;
  }
}

/* =================================================================
   スマホ専用：CEREMONY（添付モック完コピ構成）
   ・全幅の大判チャペル写真（104vw）
   ・右端に「CEREMONY」の縦積み透かし文字
     （白→ゴールドのグラデーション文字＋微ぼかし。写真から下のテキスト部まで縦断）
   ・下部＝左テキスト（アイブロウ／和ラベル／金罫線／明朝見出し／本文／ゴールドCTA）
     ＋右に縦長の花写真ストリップ（下端までフル）
   ・PC(min-width:751px)では .rxcer-m 非表示＝PCは一切不変
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxcer-m { display: none; }

@media (max-width: 750px) {
  /* 全幅ヒーローを許可（旧の透かしクリップを解除）し、旧透かしは新デザインへ置換 */
  body.replica-amazinggrace .rxbuilt .rxfeature--ceremony {
    overflow: visible;
  }
  body.replica-amazinggrace .rxbuilt .rxfeature--ceremony::after {
    content: none;
  }
  body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxfeature__text,
  body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxfeature__slider {
    display: none !important;
  }

  body.replica-amazinggrace .rxbuilt .rxcer-m {
    display: block;
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    /* 背景は透明＝背面の半円装飾（縁の輪）がテキスト面で透けて見える */
    background: transparent;
    overflow: hidden;
    color: #23282A;
  }

  /* --- 全幅の大判チャペル写真 --- */
  body.replica-amazinggrace .rxbuilt .rxcer-m__hero {
    margin: 0;
    height: 104vw;
    overflow: hidden;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* --- 「CEREMONY」縦積み透かし（グラデーション文字＋微ぼかし） --- */
  body.replica-amazinggrace .rxbuilt .rxcer-m__wm {
    position: absolute;
    top: 3vw;
    right: 0.5vw;
    z-index: 3;
    /* 縦帯の中で文字は横向き（90度回転） */
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-family: "Cormorant Infant", "Times New Roman", serif;
    font-weight: 400;
    font-size: 19vw;
    line-height: 1;
    letter-spacing: 0.1em;
    background: linear-gradient(180deg,
      rgba(255, 255, 255, 0.95) 0%,
      rgba(252, 253, 252, 0.6) 46%,
      rgba(225, 232, 228, 0.8) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: blur(0.5px);
    pointer-events: none;
    user-select: none;
  }

  /* --- 下部：左テキスト＋右の花ストリップ --- */
  body.replica-amazinggrace .rxbuilt .rxcer-m__body {
    position: relative;
    padding: 34px calc(31% + 16px) 46px 22px;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__strip {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 31%;
    margin: 0;
    overflow: hidden;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__strip img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__eyebrow {
    margin: 0;
    font-family: "Cinzel", "Cormorant Infant", serif;
    font-size: 0.84rem;
    letter-spacing: 0.3em;
    color: #F3A9C1;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__jp {
    margin: 10px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.84rem;
    letter-spacing: 0.2em;
    color: #2F3638;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__rule {
    display: block;
    width: 28px;
    height: 1px;
    margin: 14px 0 0;
    background: #F3A9C1;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__ttl {
    margin: 24px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-weight: 600;
    font-size: 1.5rem;
    line-height: 1.75;
    letter-spacing: 0.08em;
    color: #23282A;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__desc {
    margin: 18px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.88rem;
    line-height: 2.1;
    letter-spacing: 0.03em;
    color: #2F3638;
  }
  /* ゴールドのグラデーションCTA */
  /* CTAは元の枠線ボタン（.rxlead-link）を流用。ここでは余白のみ */
  body.replica-amazinggrace .rxbuilt .rxcer-m__ctawrap {
    margin: 28px 0 0;
  }
}

/* =================================================================
   スマホ専用：PARTY（添付モック完コピ構成）
   ・左端に「PARTY」縦積み透かし（正立文字・グラデーション文字＋微ぼかし、
     下部の会場写真の上にも薄く重なる）
   ・上部右のシャンデリア写真は左下方向へクリームに溶けるグラデーション
   ・下部＝左に細いクリーム帯を残した大判会場写真（白く明るいトーン）
   ・CTAは現行の枠線ボタンのまま
   ・PC(min-width:751px)では .rxparty-m 非表示＝PCは一切不変
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxparty-m { display: none; }

@media (max-width: 750px) {
  /* 全幅を許可し、旧エディトリアル透かしは新デザインへ置換 */
  body.replica-amazinggrace .rxbuilt .rxfeature--party {
    overflow: visible;
  }
  body.replica-amazinggrace .rxbuilt .rxfeature--party::after {
    content: none;
  }
  body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__text,
  body.replica-amazinggrace .rxbuilt .rxfeature--party .rxfeature__slider {
    display: none !important;
  }

  body.replica-amazinggrace .rxbuilt .rxparty-m {
    display: block;
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    background: transparent;
    overflow: hidden;
    color: #23282A;
  }

  /* --- 「PARTY」縦書き透かし（1文字ずつ90度横倒しで縦に流す。写真の下層） --- */
  body.replica-amazinggrace .rxbuilt .rxparty-m__wm {
    position: absolute;
    left: -3vw;
    top: -2vw;
    z-index: 0;
    writing-mode: vertical-rl;
    text-orientation: mixed; /* 欧文を90度回転（横倒し） */
    font-family: "Cormorant Infant", "Times New Roman", serif;
    font-weight: 400;
    font-size: 21vw;
    line-height: 1;
    letter-spacing: 0.24em;
    /* 深めのシャンパンゴールドで統一：クリーム地でも塗り半円（ベージュ）の上でも読める。
       淡い光のハロ（text-shadow）で背景から一段浮かせる */
    /* 控えめに：シャンパンゴールドが上→下で徐々に薄くなり透明へフェード（主張を弱める） */
    background: linear-gradient(180deg,
      rgba(243, 169, 193, 0.5) 0%,
      rgba(243, 169, 193, 0.26) 52%,
      rgba(243, 169, 193, 0.04) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-shadow: 0 0 16px rgba(253, 235, 241, 0.7);
    /* 文字自体もほんのり柔らかく（写真との馴染み） */
    filter: blur(0.3px);
    pointer-events: none;
    user-select: none;
  }

  /* --- メイン写真：左端を広くなだらかなグラデーションで溶かし、
         透かし文字と写真がぼかしで自然につながる --- */
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1 {
    position: relative;
    margin: 0 0 0 13vw;
    height: 96vw;
    z-index: 1;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg,
      rgba(0, 0, 0, 0) 0%,
      rgba(0, 0, 0, 0.14) 10%,
      rgba(0, 0, 0, 0.38) 22%,
      rgba(0, 0, 0, 0.72) 34%,
      #000 46%);
    mask-image: linear-gradient(90deg,
      rgba(0, 0, 0, 0) 0%,
      rgba(0, 0, 0, 0.14) 10%,
      rgba(0, 0, 0, 0.38) 22%,
      rgba(0, 0, 0, 0.72) 34%,
      #000 46%);
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1 img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 20%;
    filter: brightness(1.1) saturate(0.9);
  }
  /* 下端はクリームへ静かにフェード（次のコンテンツへのつなぎ） */
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(240, 240, 240, 0) 86%, rgba(240, 240, 240, 0.7) 100%);
  }

  /* --- 本文2カラム：左テキスト＋右に重なる写真2枚 --- */
  body.replica-amazinggrace .rxbuilt .rxparty-m__content {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 38vw;
    column-gap: 12px;
    padding: 7vw 0 0 22px;
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__text {
    min-width: 0;
    position: relative;
    z-index: 3;
    padding: 0;
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__eyebrow {
    margin: 0;
    font-family: "Cinzel", "Cormorant Infant", serif;
    font-size: 0.84rem;
    letter-spacing: 0.3em;
    color: #F3A9C1;
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__jp {
    margin: 10px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.84rem;
    letter-spacing: 0.2em;
    color: #2F3638;
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__rule {
    display: block;
    width: 28px;
    height: 1px;
    margin: 14px 0 0;
    background: #F3A9C1;
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__ttl {
    margin: 22px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 1.8;
    letter-spacing: 0.04em;
    color: #23282A;
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__desc {
    margin: 16px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.8rem;
    line-height: 2.05;
    letter-spacing: 0.02em;
    color: #2F3638;
  }
  /* CTAは元の枠線ボタン（.rxlead-link）を流用。狭い左カラムでも1行で伸ばす */
  body.replica-amazinggrace .rxbuilt .rxparty-m__ctawrap {
    margin: 24px 0 0;
    width: max-content;
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__ctawrap .rxlead-link {
    white-space: nowrap;
  }

  /* --- 右カラム：メイン写真に重なる花のクローズアップ＋テーブルセッティング --- */
  body.replica-amazinggrace .rxbuilt .rxparty-m__side {
    position: relative;
    z-index: 2;
    margin-top: -24vw;
    min-width: 0;
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph2 {
    margin: 0;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    box-shadow: 0 16px 36px rgba(35, 40, 42, 0.14);
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph3 {
    position: relative;
    margin: -9vw -12px 0 8vw;
    aspect-ratio: 1 / 1.05;
    overflow: hidden;
    box-shadow: 0 16px 36px rgba(35, 40, 42, 0.16);
  }
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph2 img,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph3 img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(1.06) saturate(0.94);
  }
}

/* =================================================================
   SP：フォトギャラリー（添付モック完コピ構成）
   ・ヒーロー＝チャペル写真の左側がアイボリーへ溶け、その上に見出し
   ・コラージュ＝12カラムグリッドで6枚を重ねて配置（左右ブリード）
   ・下部＝A STORY OF BEAUTY AND TIME＋キャプション（左の花嫁写真の右隣）
   ・PC(min-width:751px)では .rxgal-m 非表示＝PCは一切不変
   ================================================================= */
body.replica-amazinggrace .rxgal-m { display: none; }

@media (max-width: 750px) {
  /* モバイルは新デザインに全面置換（旧モザイク・装飾は隠す） */
  body.replica-amazinggrace .rxgallery {
    padding: 0 0 10vw;
  }
  body.replica-amazinggrace .rxgallery__mosaic,
  body.replica-amazinggrace .rxgallery__ribbon,
  body.replica-amazinggrace .rxgallery__wm,
  body.replica-amazinggrace .rxgallery__bot {
    display: none;
  }

  body.replica-amazinggrace .rxgal-m {
    display: block;
    position: relative;
    overflow: hidden;
    color: #23282A;
  }

  /* --- ヒーロー：写真の左側がアイボリーへ溶け、その上に見出しを重ねる --- */
  body.replica-amazinggrace .rxgal-m__hero {
    position: relative;
    height: 76vw;
  }
  body.replica-amazinggrace .rxgal-m__hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 68% 30%;
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.24) 30%, #000 62%);
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.24) 30%, #000 62%);
  }
  body.replica-amazinggrace .rxgal-m__head {
    position: absolute;
    left: 22px;
    top: 9vw;
    z-index: 2;
    width: 62%;
  }
  body.replica-amazinggrace .rxgal-m__ttl {
    margin: 0;
    font-family: "Cormorant Infant", "Cinzel", "Times New Roman", serif;
    font-weight: 400;
    font-size: 10.5vw;
    line-height: 1.18;
    letter-spacing: 0.1em;
    /* 控えめに：シャンパンゴールドが上→下で徐々に薄くなり透明へフェード（主張を弱める） */
    background: linear-gradient(180deg,
      rgba(243, 169, 193, 0.52) 0%,
      rgba(243, 169, 193, 0.26) 52%,
      rgba(243, 169, 193, 0.06) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
  body.replica-amazinggrace .rxgal-m__lead {
    margin: 18px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.95rem;
    line-height: 2.15;
    letter-spacing: 0.06em;
    color: #4A5052;
  }
  body.replica-amazinggrace .rxgal-m__more {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.9rem;
    letter-spacing: 0.1em;
    color: #F3A9C1;
    text-decoration: none;
  }
  body.replica-amazinggrace .rxgal-m__more span {
    display: inline-block;
    width: 38px;
    height: 1px;
    background: #F3A9C1;
  }

  /* --- コラージュ：12カラム×4vw行グリッドで重ねる --- */
  body.replica-amazinggrace .rxgal-m__collage {
    position: relative;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 4vw;
    margin-top: 6vw;
  }
  body.replica-amazinggrace .rxgal-m__c {
    margin: 0;
    overflow: hidden;
  }
  body.replica-amazinggrace .rxgal-m__c img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  body.replica-amazinggrace .rxgal-m__c1 { grid-column: 1 / 9;  grid-row: 1 / 12;  z-index: 1; }
  body.replica-amazinggrace .rxgal-m__c2 { grid-column: 8 / 13; grid-row: 2 / 12;  z-index: 2; box-shadow: 0 14px 30px rgba(35, 40, 42, 0.14); }
  body.replica-amazinggrace .rxgal-m__c3 { grid-column: 5 / 11; grid-row: 7 / 13;  z-index: 3; box-shadow: 0 16px 34px rgba(35, 40, 42, 0.18); }
  body.replica-amazinggrace .rxgal-m__c4 { grid-column: 1 / 6;  grid-row: 13 / 18; z-index: 1; }
  body.replica-amazinggrace .rxgal-m__c5 { grid-column: 1 / 7;  grid-row: 16 / 28; z-index: 2; box-shadow: 0 14px 30px rgba(35, 40, 42, 0.14); }
  body.replica-amazinggrace .rxgal-m__c6 { grid-column: 6 / 13; grid-row: 13 / 20; z-index: 1; }

  /* --- ストーリー文（右下・花嫁写真の隣） --- */
  body.replica-amazinggrace .rxgal-m__foot {
    grid-column: 6 / 13;
    grid-row: 20 / 28;
    z-index: 4;
    align-self: start;
    padding: 3vw 22px 0 12px;
  }
  body.replica-amazinggrace .rxgal-m__story {
    margin: 0;
    font-family: "Cormorant Infant", "Cinzel", "Times New Roman", serif;
    font-weight: 400;
    font-size: 5.2vw;
    line-height: 1.4;
    letter-spacing: 0.1em;
    color: rgba(243, 169, 193, 0.52);
    white-space: nowrap;
  }
  body.replica-amazinggrace .rxgal-m__rule {
    display: block;
    width: 40px;
    height: 1px;
    margin: 12px 0 0;
    background: #F3A9C1;
  }
  body.replica-amazinggrace .rxgal-m__cap {
    margin: 14px 0 0;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 0.82rem;
    line-height: 2;
    letter-spacing: 0.03em;
    color: #4A5052;
  }
}

/* =================================================================
   FVフェードインヒーロー（PC/SP共通・初回ロード時に1度だけ）
   ・ヒーロー全体がゆっくりフェードイン
   ・コピー/CTAはひと呼吸遅れて下からふわっと上がる
   ・ロゴ／SCROLLはさらに遅れてフェード
   コンセプトの「せり上がり」はJS側の --concept-panel-y（150px）で駆動。
   ※ textarea / ロゴ / SCROLL は translateX(-50%) で中央寄せしているため、
     transform を使うアニメーションを当てると中央寄せが恒久的に潰れる
     （animationのtransformが通常宣言に勝つ）。textarea の上昇は
     margin-bottom で行い、ロゴ・SCROLLは opacity のみ動かす。
   ================================================================= */
@keyframes rxHeroFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
/* シネマティック：各パーツを下から静かに立ち上げる（中央寄せしていない textarea 内の
   子要素にのみ transform を使う。translateX で中央寄せする logo/scroll は opacity のみ） */
@keyframes rxCineRise {
  from { opacity: 0; transform: translateY(32px); }
  to { opacity: 1; transform: translateY(0); }
}
/* 中央ロゴ画像がゆっくり寄って定着（映画的なプッシュイン） */
@keyframes rxImgSettle {
  from { transform: scale(1.08); }
  to { transform: scale(1); }
}
/* 仕切り線が左から引かれる */
@keyframes rxRuleDraw {
  from { opacity: 0; transform: scaleX(0); }
  to { opacity: 1; transform: scaleX(1); }
}

/* ヒーロー全体の opacity フェードは行わない（裏の白背景を透かして白フラッシュになるため）。
   写真は .-active で暗色→写真へフェードしつつ 11s かけてゆっくり寄る（rxImgSettle は写真側で処理）。 */

/* 中央ロゴ：DIVはフェードのみ（translateX中央寄せを壊さない）、中の画像がゆっくり定着 */
body.replica-amazinggrace .replica-hero-center-logo {
  animation: rxHeroFadeIn 1.9s cubic-bezier(0.22, 0.61, 0.36, 1) 0.5s both;
}
body.replica-amazinggrace .replica-hero-center-logo img {
  animation: rxImgSettle 3s cubic-bezier(0.16, 0.7, 0.2, 1) 0.5s both;
}

/* コピー：3行を1行ずつ、間を置いて静かに立ち上げる */
body.replica-amazinggrace .o-mainvisual__copy span {
  animation: rxCineRise 1.35s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
body.replica-amazinggrace .o-mainvisual__copy span:nth-child(1) { animation-delay: 0.95s; }
body.replica-amazinggrace .o-mainvisual__copy span:nth-child(2) { animation-delay: 1.18s; }
body.replica-amazinggrace .o-mainvisual__copy span:nth-child(3) { animation-delay: 1.41s; }

/* 仕切り線：コピーの後に左から引かれる */
body.replica-amazinggrace .replica-hero-rule {
  transform-origin: left center;
  animation: rxRuleDraw 1.15s cubic-bezier(0.22, 0.61, 0.36, 1) 1.75s both;
}

/* CTA：さらにひと呼吸おいてふわっと上がる */
body.replica-amazinggrace .replica-hero-actions {
  animation: rxCineRise 1.3s cubic-bezier(0.22, 0.61, 0.36, 1) 1.95s both;
}

/* SCROLL：最後に静かに点灯 */
body.replica-amazinggrace .replica-hero-scroll {
  animation: rxHeroFadeIn 1.3s ease 2.3s both;
}

/* 写真の寄り（ケンバーンズ）はCSSアニメーションでは行わない。
   写真の transform は JS の setLayerActive() がインラインで2レイヤー分を管理しており、
   CSSアニメを重ねるとクロスフェード時に2枚が別スケールで重なって「継ぎ目／ゴースト」が出る。
   写真のわずかなスケール定着は既存のJS＋テーマ挙動に任せる。 */

/* コンセプトのせり上がりをSPでも確実に効かせる（後勝ちで担保） */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner {
    opacity: var(--concept-opacity);
    transform: translateY(var(--concept-panel-y));
  }
}

@media (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .o-mainvisual,
  body.replica-amazinggrace .o-mainvisual__textarea,
  body.replica-amazinggrace .replica-hero-center-logo,
  body.replica-amazinggrace .replica-hero-center-logo img,
  body.replica-amazinggrace .o-mainvisual__copy span,
  body.replica-amazinggrace .replica-hero-rule,
  body.replica-amazinggrace .replica-hero-actions,
  body.replica-amazinggrace .replica-hero-scroll {
    animation: none;
  }
}

/* 没入演出フルパッケージのうち「blurフォーカスイン」「per-lineスタッガー」は撤去済み
   （白線・スマホ文字崩れの原因）。ここではスクロール連動の「ヒーロー後退」だけを
   blur無しで復活させる：スクロールに応じて写真が微ズームしつつ下から暗転していき、
   せり上がってくるコンセプトパネルへ自然に受け渡す。JSが --hero-exit（0→1）を設定する。 */
body.replica-amazinggrace .replica-hero-video-wrap {
  transform: scale(calc(1 + var(--hero-exit, 0) * 0.06));
  transform-origin: center center;
  transition: transform 0.16s linear;
}
/* FV→コンセプトの継ぎ目：スクロールに応じて下端をクリームへ溶かし込み、
   せり上がるコンセプト（クリーム地）へ“明るいまま”継ぎ目なく受け渡す（暗転させない）。 */
body.replica-amazinggrace .replica-hero-video-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(180deg,
    rgba(240, 240, 240, 0) 20%,
    rgba(240, 240, 240, 0.22) 48%,
    rgba(240, 240, 240, 0.55) 70%,
    rgba(240, 240, 240, 0.85) 86%,
    rgba(240, 240, 240, 1) 97%);
  opacity: calc(var(--hero-exit, 0) * 1);
  transition: opacity 0.16s linear;
}

@media (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .replica-hero-video-wrap,
  body.replica-amazinggrace .o-mainvisual__copy span,
  body.replica-amazinggrace .replica-hero-rule,
  body.replica-amazinggrace .replica-hero-actions,
  body.replica-amazinggrace .replica-hero-scroll,
  body.replica-amazinggrace .replica-hero-center-logo {
    animation: none;
  }
  body.replica-amazinggrace .o-mainvisual {
    transform: none;
    filter: none;
  }
  body.replica-amazinggrace .replica-hero-video-wrap {
    transform: none;
  }
  body.replica-amazinggrace .replica-hero-video-wrap::after {
    opacity: 0;
  }
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before,
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
    transform: none;
  }
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero.prlxView {
    clip-path: none;
  }
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__en {
    letter-spacing: 0.04em;
  }
}

/* =================================================================
   コンセプト：シネマティック・リビール（スクロール駆動・JSの --concept-* と連動）
   ・写真は clip-path で内側からゆっくり開く
   ・英字見出しは字間が広→締まりながら定着（映画のタイトルバック風）
   ・amazinggrace(ゴールド)/HOTEL(ボルドー)透かしは別速度でパララックス＝奥行きの層
   ================================================================= */
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .o-lead-concept__hero.prlxView {
  clip-path: inset(calc((1 - var(--concept-opacity, 1)) * 6.5%));
  transition:
    opacity 0.16s linear,
    transform 0.16s linear,
    clip-path 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal .c-ttl-section__en {
  letter-spacing: calc(0.04em + (1 - var(--concept-opacity, 1)) * 0.18em);
  transition: letter-spacing 0.26s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.16s linear;
}
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
  transform: translateY(var(--wm-amazinggrace-y, 0px));
  transition: transform 0.2s linear;
}
body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
  transform: translateY(var(--wm-hotel-y, 0px));
  transition: transform 0.2s linear;
}

/* =================================================================
   フォトギャラリーのスクロール・リビール（PC/SP共通）
   ・rxg-rev: ふわっと上昇＋フェード（時差は --rxg-d で個別指定）
   ・PC写真セル: クリップが内側から開くマスクリビール
   ・SPヒーロー/コラージュ: 中の写真がわずかに縮んで定着（スケールセトル）
   ・rxg-soft: 移動なしのフェードのみ（SPヒーロー用）
   ================================================================= */
body.replica-amazinggrace .rxg-rev {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.95s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 0.95s cubic-bezier(0.22, 0.61, 0.36, 1),
    clip-path 1.15s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-delay: var(--rxg-d, 0s);
}
body.replica-amazinggrace .rxg-rev.is-in {
  opacity: 1;
  transform: translateY(0);
}
body.replica-amazinggrace .rxg-soft,
body.replica-amazinggrace .rxg-soft.is-in {
  transform: none;
}

/* PC写真セル：クリップが内側から開く */
body.replica-amazinggrace .rxgallery__cell.rxg-rev {
  clip-path: inset(12% 6% 12% 6%);
}
body.replica-amazinggrace .rxgallery__cell.rxg-rev.is-in {
  clip-path: inset(0 0 0 0);
}

/* SPヒーロー／コラージュ：写真がわずかな拡大から等倍へ静かに定着 */
body.replica-amazinggrace .rxgal-m__hero.rxg-rev img,
body.replica-amazinggrace .rxgal-m__c.rxg-rev img {
  transform: scale(1.07);
  transition: transform 1.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-delay: var(--rxg-d, 0s);
}
body.replica-amazinggrace .rxgal-m__hero.rxg-rev.is-in img,
body.replica-amazinggrace .rxgal-m__c.rxg-rev.is-in img {
  transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .rxg-rev,
  body.replica-amazinggrace .rxg-rev img {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    transition: none !important;
  }
}


/* スクリーンリーダー専用（視覚的に隠すがSEO/アクセシビリティ上は有効なh1等）。 */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}

/* === FV下部の重なり回避（ファイル末尾＝最後の !important で確実に適用） ===
   スクロール誘導（縦線＋光る丸）がCTA(資料請求)に被らないよう、コピー/CTAブロックを上げて
   下部に余白を確保。中央ロゴは top:% 固定だと画面高で破綻するため「コピーと同じ下端基準」で
   アンカーし、どの画面高でもロゴ↔コピーの余白を一定に保つ（短い画面でも重ならない）。
   ＝ ロゴ↔コピー↔CTA↔スクロール が常に重ならない。 */
body.replica-amazinggrace .o-mainvisual__textarea {
  bottom: clamp(128px, 17vh, 196px) !important;
}
body.replica-amazinggrace .replica-hero-center-logo {
  top: auto !important;
  bottom: calc(clamp(128px, 17vh, 196px) + 300px) !important;
  transform: translateX(-50%) !important;
}
@media (max-width: 750px) {
  body.replica-amazinggrace .o-mainvisual__textarea {
    bottom: clamp(106px, 18vh, 152px) !important;
  }
  body.replica-amazinggrace .replica-hero-center-logo {
    bottom: calc(clamp(106px, 18vh, 152px) + 250px) !important;
  }
}

/* =================================================================
   Wedding Contents ＝ セクション全面を1枚の背景写真にし、その上に
   見出し・ポートレート・下部カードをすべて重ねるエディトリアル構成。
   （旧 .rxlead-contents の2枚並び見出し → .rxwc に全面刷新）
   ・.rxwc__bg    … 全面背景写真（バンドの高さいっぱい・カードの背後まで）
   ・.rxwc__scrim … 上部を淡く明るくして濃色の見出しテキストを読ませる
   ・.rxwc__top   … 見出し（左）＋ポートレート＋スクリプト（右）
   ・.rxlead-cards… 下部の大判カード（写真の上に重なる。カード内部の
                    ダークグラデ＋白文字は既存のまま流用）
   ※ファイル末尾＝最後に適用され確実に効く。
   ================================================================= */
body.replica-amazinggrace .rxbuilt .rxwc {
  position: relative;
  z-index: 0;
  margin-top: clamp(64px, 8vw, 132px);
  overflow: hidden;
  isolation: isolate;
}
/* 全面背景写真（バンド全体＝カードの背後まで敷く） */
body.replica-amazinggrace .rxbuilt .rxwc__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
body.replica-amazinggrace .rxbuilt .rxwc__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 32%;
}
/* 上部を明るく／最下部をわずかに締めて、テキストとカードを読ませる */
body.replica-amazinggrace .rxbuilt .rxwc__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg,
      rgba(249, 250, 249, 0.66) 0%,
      rgba(249, 250, 249, 0.30) 20%,
      rgba(249, 250, 249, 0.08) 40%,
      rgba(24, 32, 27, 0) 60%,
      rgba(24, 32, 27, 0.20) 100%);
}
body.replica-amazinggrace .rxbuilt .rxwc__inner {
  position: relative;
  z-index: 2;
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 120px) clamp(20px, 4vw, 72px) clamp(48px, 6vw, 104px);
  box-sizing: border-box;
}

/* --- 上段：見出し（左）＋ポートレート／スクリプト（右） --- */
body.replica-amazinggrace .rxbuilt .rxwc__top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(30px, 3.6vw, 60px);
  margin-bottom: clamp(44px, 5.5vw, 92px);
  text-align: center;
}
body.replica-amazinggrace .rxbuilt .rxwc__head {
  text-align: center;
  max-width: 640px;
}
body.replica-amazinggrace .rxbuilt .rxwc__en {
  margin: 0;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(11px, 0.95vw, 14px);
  letter-spacing: 0.42em;
  text-indent: 0.42em;
  color: var(--amazinggrace-gold-accent);
}
body.replica-amazinggrace .rxbuilt .rxwc__ttl {
  margin: clamp(10px, 1.2vw, 20px) 0 0;
  font-family: "Cormorant Infant", "Cormorant Garamond", "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(48px, 6.4vw, 104px);
  line-height: 0.96;
  letter-spacing: 0.03em;
  color: var(--amazinggrace-gold-deep);
}
body.replica-amazinggrace .rxbuilt .rxwc__div {
  display: block;
  width: clamp(90px, 9vw, 150px);
  height: 1px;
  margin: clamp(20px, 2.2vw, 34px) auto clamp(20px, 2.2vw, 32px);
  background: linear-gradient(90deg, transparent, var(--amazinggrace-gold-accent) 22%, var(--amazinggrace-gold-accent) 78%, transparent);
}
body.replica-amazinggrace .rxbuilt .rxwc__lead {
  margin: 0;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(13px, 1vw, 15px);
  line-height: 2.2;
  letter-spacing: 0.08em;
  color: #F3A9C1;
}

/* --- ポートレート＋スクリプト装飾 --- */
body.replica-amazinggrace .rxbuilt .rxwc__aside {
  position: relative;
  width: min(300px, 62%);
  margin: 0 auto;
}
body.replica-amazinggrace .rxbuilt .rxwc__portrait {
  margin: 0;
  padding: clamp(7px, 0.7vw, 12px);
  background: #fff;
  box-shadow: 0 26px 60px rgba(48, 58, 52, 0.22);
}
body.replica-amazinggrace .rxbuilt .rxwc__portrait img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4.15;
  object-fit: cover;
  object-position: center 22%;
}
body.replica-amazinggrace .rxbuilt .rxwc__script {
  position: absolute;
  left: clamp(-56px, -3vw, -20px);
  bottom: clamp(-30px, -2.6vw, -14px);
  z-index: 3;
  /* 上品で主張控えめな手書き筆記体（Parisienne） */
  font-family: "Parisienne", "Snell Roundhand", "Apple Chancery", cursive;
  font-weight: 400;
  font-size: clamp(26px, 2.5vw, 42px);
  line-height: 1.12;
  letter-spacing: 0.01em;
  color: var(--amazinggrace-gold-deep);
  opacity: 0.9;
  text-shadow: 0 2px 16px rgba(249, 250, 249, 0.9);
  transform: rotate(-4deg);
  transform-origin: left bottom;
  pointer-events: none;
}
body.replica-amazinggrace .rxbuilt .rxwc__script em {
  display: block;
  margin-top: -2px;
  font-style: normal;
  font-size: 1.15em;
}

/* --- 下部カード：全面写真の上に重ねる（背景は透過にして写真を見せる） --- */
body.replica-amazinggrace .rxbuilt .rxwc .rxlead-cards {
  position: relative;
  z-index: 2;
  margin-top: 0;
  gap: clamp(12px, 1.4vw, 24px);
  background: transparent;
}
body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card {
  box-shadow: 0 24px 54px rgba(32, 42, 36, 0.28);
}

/* --- スマホ：縦積み。写真背景は維持しつつ見出し→ポートレート→カード --- */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxwc {
    margin-top: clamp(48px, 14vw, 84px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc__inner {
    padding: clamp(44px, 12vw, 72px) 20px clamp(40px, 10vw, 64px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc__top {
    grid-template-columns: 1fr;
    gap: clamp(40px, 12vw, 64px);
    margin-bottom: clamp(40px, 11vw, 68px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc__ttl {
    font-size: clamp(44px, 15vw, 76px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc__aside {
    width: min(74%, 300px);
    margin: 0 auto;
  }
  body.replica-amazinggrace .rxbuilt .rxwc__script {
    left: clamp(-24px, -6vw, -12px);
    font-size: clamp(20px, 6.4vw, 28px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-cards {
    grid-template-columns: 1fr;
    gap: 12px;
    background: transparent;
  }
}

/* =================================================================
   Wedding Contents ＝ スマホ専用レイアウト（添付モック完コピ）。
   ・上＝全幅の花嫁写真の上に「Wedding Contents」＋区切り＋リード
   ・写真は下へアイボリーに溶け、下段は横長バナー型カード3枚（左＝濃色に
     英字大見出し／区切り／和文／VIEW MORE、右＝各コンテンツ写真）
   ・PC(min-width:751px)には一切影響しない（すべて max-width:750px 内）
   ================================================================= */
@media (max-width: 750px) {
  /* 花嫁写真をヘッダー上部にしっかり見せ、下はアイボリーへ溶かす */
  body.replica-amazinggrace .rxbuilt .rxwc__inner {
    padding: clamp(150px, 46vw, 240px) clamp(14px, 4vw, 20px) clamp(34px, 9vw, 56px);
  }
  /* 花嫁写真は「引き（広め）」に。全幅×縦長のバンド全体を cover すると
     横22%しか見えず寄って見えるため、ヘッダー高さに絞って cover させ、
     写真の見える範囲を広げる（下端はスクリムでアイボリーに溶ける）。 */
  body.replica-amazinggrace .rxbuilt .rxwc__bg {
    bottom: auto;
    height: clamp(460px, 138vw, 560px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc__bg img {
    object-position: center 30%;
  }
  /* ヘッダーは写真のまま、下段（カード帯）でアイボリーに変わる */
  body.replica-amazinggrace .rxbuilt .rxwc__scrim {
    background: linear-gradient(180deg,
      rgba(249, 250, 249, 0) 0%,
      rgba(249, 250, 249, 0) 40%,
      rgba(253, 235, 241, 0.4) 48%,
      rgba(240, 240, 240, 0.92) 55%,
      #F4F5F4 60%,
      #F4F5F4 100%);
  }
  /* モックには小さな英字アイブロウ／右のポートレートは無い */
  body.replica-amazinggrace .rxbuilt .rxwc__en {
    display: none;
  }
  body.replica-amazinggrace .rxbuilt .rxwc__aside {
    display: none;
  }
  body.replica-amazinggrace .rxbuilt .rxwc__top {
    display: block;
    margin-bottom: clamp(30px, 8vw, 52px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc__head {
    max-width: 30em;
    margin: 0 auto;
  }
  body.replica-amazinggrace .rxbuilt .rxwc__ttl {
    margin-top: 0;
    font-size: clamp(52px, 17vw, 92px);
    color: var(--amazinggrace-gold-deep);
    text-shadow: 0 2px 20px rgba(249, 250, 249, 0.6);
  }
  body.replica-amazinggrace .rxbuilt .rxwc__lead {
    color: #F3A9C1;
    line-height: 2;
  }

  /* --- 下段：横長バナー型カード（左＝濃色テキスト／右＝写真） --- */
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-cards {
    padding: 0;
    gap: clamp(12px, 3.4vw, 16px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card {
    aspect-ratio: auto;
    min-height: clamp(128px, 38vw, 172px);
    box-shadow: 0 14px 34px rgba(32, 42, 36, 0.2);
  }
  /* 写真は右側の被写体を見せ、左を濃色グラデで暗くしてテキストを載せる */
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__img img {
    object-position: 72% center;
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card:nth-child(1) .rxlead-card__img img {
    object-position: 60% center;
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card:nth-child(2) .rxlead-card__img img {
    object-position: 64% 22%;
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card:nth-child(3) .rxlead-card__img img {
    object-position: 58% center;
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card::after {
    background: linear-gradient(90deg,
      rgba(22, 29, 24, 0.86) 0%,
      rgba(22, 29, 24, 0.72) 32%,
      rgba(22, 29, 24, 0.34) 58%,
      rgba(22, 29, 24, 0) 84%);
  }
  /* 本文＝左寄せ・縦中央。コピー文は隠し、英字→区切り→和文→VIEW MORE */
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__body {
    top: 0;
    bottom: 0;
    right: auto;
    width: 60%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
    padding: 0 0 0 clamp(20px, 6vw, 32px);
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__en {
    font-size: clamp(19px, 6vw, 26px);
    line-height: 1.16;
    letter-spacing: 0.09em;
  }
  /* 英字見出し下の小さな区切り線 */
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__en::after {
    content: "";
    display: block;
    width: clamp(38px, 11vw, 48px);
    height: 1px;
    margin: clamp(9px, 2.4vw, 12px) 0 0;
    background: linear-gradient(90deg, rgba(253, 235, 241, 0.9), rgba(253, 235, 241, 0.2));
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__jp {
    margin-top: clamp(9px, 2.4vw, 12px);
    font-size: clamp(11px, 3.2vw, 13px);
    letter-spacing: 0.18em;
    opacity: 0.96;
  }
  /* モックはリード文（コピー）を出さない */
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__copy {
    display: none;
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__more {
    margin-top: clamp(12px, 3.4vw, 18px);
  }
  /* 導線ラベルはPCと統一（スマホも「詳しく見る」／VIEW MOREは出さない） */
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__more .rxc-lbl--jp {
    display: inline;
  }
  body.replica-amazinggrace .rxbuilt .rxwc .rxlead-card__more .rxc-lbl--en {
    display: none;
  }
}

/* =================================================================
   スマホ：セクション間の余白を詰めて縦リズムを揃える（変な余白の解消）。
   ・情報(News)節は上下80px→52pxへ（ギャラリー↔News、News↔SNSの間延び解消）
   ・PCには影響しない（すべて max-width:750px 内）
   ================================================================= */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-information {
    padding-top: 52px;
    padding-bottom: 52px;
  }
}

/* =================================================================
   スマホ：フォントサイズを読みやすく統一（バランス調整）。
   極小だった本文(8〜9px台)・ラベル(8px台)・タイムライン(5.8〜7.6px)・
   セレモニー/パーティー見出し(14〜15px)を底上げし、セクション間の大きさを揃える。
   基準＝料理セクション。ルート10px換算（1rem=10px）。PCには影響しない。
   ================================================================= */
@media (max-width: 750px) {
  /* ① 本文コピー → 13.5px・行間ゆったりで全セクション統一 */
  body.replica-amazinggrace .rxbuilt .rxcer-m__desc,
  body.replica-amazinggrace .rxbuilt .rxparty-m__desc,
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__desc,
  body.replica-amazinggrace .rxbuilt .rxstay-m__desc,
  body.replica-amazinggrace .rxgal-m__lead {
    font-size: 1.35rem !important;
    line-height: 2 !important;
  }
  /* ギャラリー（.rxbuilt 外）のキャプション・リンクも底上げ */
  body.replica-amazinggrace .rxgal-m__cap {
    font-size: 1.15rem !important;
  }
  body.replica-amazinggrace .rxgal-m__hero a,
  body.replica-amazinggrace .rxgal-m a.rxgal-m__link {
    font-size: 1.15rem !important;
  }
  /* 料理本文は右の円写真と干渉しない範囲で少し広げる */
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__desc {
    max-width: 60% !important;
  }

  /* ② 英字アイブロウ（CEREMONY / PARTY / CUISINE）→ 11.5px */
  body.replica-amazinggrace .rxbuilt .rxcer-m__eyebrow,
  body.replica-amazinggrace .rxbuilt .rxparty-m__eyebrow,
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__eyebrow {
    font-size: 1.15rem !important;
  }
  /* ③ 和文ラベル（挙式会場 / 披露宴会場）→ 12.5px */
  body.replica-amazinggrace .rxbuilt .rxcer-m__jp,
  body.replica-amazinggrace .rxbuilt .rxparty-m__jp {
    font-size: 1.25rem !important;
  }

  /* ④ セクション見出し（和文ヘッドライン）→ 23px で統一（料理に合わせる） */
  body.replica-amazinggrace .rxbuilt .rxcer-m__ttl,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ttl,
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__ttl,
  body.replica-amazinggrace .rxbuilt .rxstay-m__ttl {
    font-size: 2.3rem !important;
    line-height: 1.62 !important;
  }

  /* ⑤ ステイのタイムライン（極小だった箇所）を底上げ */
  body.replica-amazinggrace .rxbuilt .rxstay-m__rail em {
    font-size: 0.98rem !important;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__rail span {
    font-size: 0.86rem !important;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__body h4 {
    font-size: 1.3rem !important;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__body p {
    font-size: 1.15rem !important;
    line-height: 1.9 !important;
  }

  /* ⑥ プラン（大きな「Plan」＋和文サブ見出し）＝サブとリードを読みやすく */
  body.replica-amazinggrace .rxbuilt .rxplans__ttl {
    font-size: 1.3rem !important;
  }
  body.replica-amazinggrace .rxbuilt .rxplans__lead {
    font-size: 1.35rem !important;
    line-height: 1.9 !important;
  }
}

/* =================================================================
   スリムで上質なフッター（旧メガフッターを置換）＋メニューのスリム化
   トンマナ：クリーム地／シャンパンゴールド／Cinzel・明朝／余白広め
   ================================================================= */
body.replica-amazinggrace .l-footer .rxfoot {
  background: #F4F5F4;
  padding: clamp(48px, 6vw, 84px) clamp(24px, 6vw, 80px) clamp(28px, 3vw, 40px);
  text-align: center;
  border-top: 1px solid rgba(243, 169, 193, 0.24);
}
body.replica-amazinggrace .rxfoot__brand { margin: 0 0 clamp(26px, 3vw, 40px); }
body.replica-amazinggrace .rxfoot__name {
  margin: 0;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(1.05rem, 1.5vw, 1.5rem);
  letter-spacing: 0.26em;
  color: #23282A;
}
body.replica-amazinggrace .rxfoot__sub {
  margin: 8px 0 0;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 0.72rem;
  letter-spacing: 0.42em;
  color: #F3A9C1;
}
/* ナビ：英字＋和訳の2段。区切りの縦罫線で上品に */
body.replica-amazinggrace .rxfoot__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  margin: 0 auto clamp(30px, 3.4vw, 44px);
}
body.replica-amazinggrace .rxfoot__nav a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 0 clamp(14px, 2vw, 26px);
  text-decoration: none;
  transition: color 0.3s ease;
}
body.replica-amazinggrace .rxfoot__nav a + a {
  border-left: 1px solid rgba(243, 169, 193, 0.28);
}
body.replica-amazinggrace .rxfoot__nav .en {
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 0.86rem;
  letter-spacing: 0.16em;
  color: #F3A9C1;
}
body.replica-amazinggrace .rxfoot__nav .jp {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: #4A5052;
}
body.replica-amazinggrace .rxfoot__nav a:hover .en,
body.replica-amazinggrace .rxfoot__nav a:hover .jp { color: #F3A9C1; }

/* CTA：既存の枠線ボタン（.rxlead-link）に合わせる。中央寄せ配置のみ指定 */
body.replica-amazinggrace .rxfoot__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  max-width: 1040px;
  /* ナビとの間に十分な余白を（詰まって見えないように）＋上に区切り罫線 */
  margin: clamp(40px, 4.6vw, 68px) auto clamp(28px, 3vw, 40px);
  padding-top: clamp(30px, 3.4vw, 48px);
  border-top: 1px solid rgba(243, 169, 193, 0.2);
}
/* フッターは .rxbuilt 外なので、Ceremony等と同じ枠線ボタン意匠をここで完全再現 */
body.replica-amazinggrace .rxfoot__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  min-width: 220px;
  margin-top: 0;
  padding: 15px 24px;
  border: 1px solid rgba(243, 169, 193, 0.72);
  color: var(--amazinggrace-gold-deep, #F3A9C1);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(0.82rem, 0.92vw, 0.95rem);
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-decoration: none;
  background: rgba(251, 252, 251, 0.5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
body.replica-amazinggrace .rxfoot__cta span {
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  margin-left: 22px;
  border-radius: 50%;
  background: var(--amazinggrace-gold-deep, #F3A9C1);
  transition: transform 0.4s ease, background 0.4s ease;
}
body.replica-amazinggrace .rxfoot__cta:hover {
  color: #fff;
  border-color: var(--amazinggrace-gold-deep, #F3A9C1);
  background: var(--amazinggrace-gold-deep, #F3A9C1);
}
body.replica-amazinggrace .rxfoot__cta:hover span {
  transform: translateX(5px);
  background: #fff;
}
body.replica-amazinggrace .rxfoot__copy {
  margin: 0;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  line-height: 1.9;
  color: #6E7B72;
}
body.replica-amazinggrace .rxfoot__copy small {
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  color: rgba(74, 80, 82, 0.55);
}
@media (max-width: 750px) {
  body.replica-amazinggrace .rxfoot__nav {
    max-width: 320px;
    gap: 14px 0;
  }
  body.replica-amazinggrace .rxfoot__nav a { flex: 0 0 50%; padding: 6px 0; }
  body.replica-amazinggrace .rxfoot__nav a + a { border-left: 0; }
  body.replica-amazinggrace .rxfoot__actions { flex-direction: column; align-items: center; }
  body.replica-amazinggrace .rxfoot__cta { width: min(300px, 100%); }
}

/* --- ハンバーガーメニュー：トンマナ合わせのスリム＆オシャレ版 --- */
/* ドロワーは .o-gnav__lists > .c-link-sp-accordion（__label>a に<p>英字+<small>和訳、__list=サブリンク） */
/* サブリンク群・開閉ボタンを畳み、上位項目だけをエレガントに見せる */
/* ★重要：このブロックはSPドロワー専用。必ず @media(max-width:750px) 内に置くこと。
   囲まないと .o-gnav / .o-gnav__lists がPCの横並びナビにも適用され、縦積み＋背景付きでPCが壊れる。 */
@media (max-width: 750px) {
body.replica-amazinggrace .o-gnav .c-link-sp-accordion__list,
body.replica-amazinggrace .o-gnav .c-link-sp-accordion .-btn,
body.replica-amazinggrace .o-gnav .o-gnav__child {
  display: none !important;
}
body.replica-amazinggrace .o-gnav {
  background: linear-gradient(180deg, #F4F5F4 0%, #F4F5F4 100%) !important;
}
/* リスト全体：中央寄せ・ゆったり */
body.replica-amazinggrace .o-gnav .o-gnav__lists {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: 0 !important;
  max-width: 460px;
  margin: 0 auto !important;
  padding: clamp(12px, 3vw, 30px) clamp(20px, 6vw, 48px) !important;
  list-style: none !important;
}
/* 各項目：細い金の区切り線でリズムを作る */
body.replica-amazinggrace .o-gnav .c-link-sp-accordion {
  border: 0 !important;
  border-bottom: 1px solid rgba(243, 169, 193, 0.22) !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}
body.replica-amazinggrace .o-gnav .c-link-sp-accordion:last-child {
  border-bottom: 0 !important;
}
body.replica-amazinggrace .o-gnav .c-link-sp-accordion__label {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: none !important;
}
/* 各リンク：英字（Cinzel・金）＋和訳（明朝）の2段中央 */
body.replica-amazinggrace .o-gnav .c-link-sp-accordion__label > a {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: clamp(14px, 2.2vw, 21px) 0 !important;
  text-align: center;
  text-decoration: none !important;
  background: none !important;
  transition: letter-spacing 0.35s ease;
}
body.replica-amazinggrace .o-gnav .c-link-sp-accordion__label > a > p {
  margin: 0 !important;
  font-family: "Cinzel", "Cormorant Infant", serif !important;
  font-size: clamp(15px, 1.5vw, 18px) !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em;
  line-height: 1.2;
  color: #F3A9C1 !important;
  transition: color 0.35s ease;
}
body.replica-amazinggrace .o-gnav .c-link-sp-accordion__label > a > small {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: 11px !important;
  letter-spacing: 0.24em;
  color: #F3A9C1 !important;
  opacity: 0.85;
}
body.replica-amazinggrace .o-gnav .c-link-sp-accordion__label > a:hover {
  letter-spacing: 0.06em;
}
body.replica-amazinggrace .o-gnav .c-link-sp-accordion__label > a:hover > p {
  color: #F3A9C1 !important;
}
} /* end @media (max-width:750px) ハンバーガー（SPドロワー）専用 */

/* =====================================================================
   TOP用 統一ハンバーガーメニュー（下層 site-menu と同じ内容・トンマナ）
   テーマ既存の .c-btn-menu / .o-gnav は使わず、rx-menu に一本化する
   ===================================================================== */
body.replica-amazinggrace .c-btn-menu { display: none !important; }

/* ハンバーガーボタン：ヘッダー右端（FAIR CTAの右隣） */
body.replica-amazinggrace .rx-menu-btn {
  position: absolute;
  top: 50%;
  right: clamp(16px, 2.6vw, 41px);
  transform: translateY(-50%);
  z-index: 1002;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 6px 2px;
  background: none;
  border: 0;
  cursor: pointer;
}
body.replica-amazinggrace .rx-menu-btn__lines { display: block; width: 26px; }
body.replica-amazinggrace .rx-menu-btn__lines i { display: block; height: 1.5px; background: #F3A9C1; margin: 5px 0; }
body.replica-amazinggrace .rx-menu-btn__label {
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 0.6rem;
  letter-spacing: 0.22em;
  color: #F3A9C1;
}
/* FAIR CTA をハンバーガー分だけ左へ寄せる */
body.replica-amazinggrace .replica-header-fair-cta { margin-right: 58px; }

/* オーバーレイ：下層 .site-menu と同一の見た目 */
body.replica-amazinggrace .rx-menu {
  position: fixed;
  inset: 0;
  z-index: 1005;
  background: linear-gradient(180deg, #F4F5F4 0%, #F4F5F4 100%);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.4s ease, transform 0.5s ease, visibility 0.4s;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
}
body.replica-amazinggrace.rx-menu-open { overflow: hidden; }
body.replica-amazinggrace.rx-menu-open .rx-menu { opacity: 1; visibility: visible; transform: translateY(0); }
body.replica-amazinggrace .rx-menu__close {
  position: fixed;
  top: clamp(16px, 2vw, 28px);
  right: clamp(16px, 3vw, 44px);
  z-index: 1012;
  width: 54px;
  height: 54px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(243, 169, 193, 0.5);
  border-radius: 50%;
  background: rgba(252, 253, 252, 0.9);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  cursor: pointer;
  /* テキスト「Close」は隠して×アイコンで表現 */
  font-size: 0;
  color: transparent;
  box-shadow: 0 6px 18px -10px rgba(70, 77, 79, 0.5);
  transition: background 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}
body.replica-amazinggrace .rx-menu__close::before,
body.replica-amazinggrace .rx-menu__close::after {
  content: "";
  position: absolute;
  width: 22px;
  height: 1.6px;
  background: #F3A9C1;
  transition: background 0.35s ease;
}
body.replica-amazinggrace .rx-menu__close::before { transform: rotate(45deg); }
body.replica-amazinggrace .rx-menu__close::after { transform: rotate(-45deg); }
body.replica-amazinggrace .rx-menu__close:hover {
  background: #F3A9C1;
  border-color: #F3A9C1;
  transform: rotate(90deg);
}
body.replica-amazinggrace .rx-menu__close:hover::before,
body.replica-amazinggrace .rx-menu__close:hover::after { background: #FFFFFF; }
body.replica-amazinggrace .rx-menu__inner { width: min(460px, 86vw); margin: auto; padding: 72px 0 56px; }
body.replica-amazinggrace .rx-menu__list { list-style: none; margin: 0; padding: 0; }
body.replica-amazinggrace .rx-menu__list li { border-bottom: 1px solid rgba(243, 169, 193, 0.22); }
body.replica-amazinggrace .rx-menu__list li:last-child { border-bottom: 0; }
body.replica-amazinggrace .rx-menu__list a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: clamp(10px, 1.4vw, 15px) 0;
  text-decoration: none;
  text-align: center;
  transition: letter-spacing 0.35s ease;
}
body.replica-amazinggrace .rx-menu__list .en {
  font-family: "Cormorant Infant", "Cinzel", serif;
  font-weight: 500;
  font-size: clamp(14px, 1.3vw, 16px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #F3A9C1;
  transition: color 0.35s ease;
}
body.replica-amazinggrace .rx-menu__list .jp {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 10px;
  letter-spacing: 0.24em;
  color: #4A5052;
  opacity: 0.85;
}
body.replica-amazinggrace .rx-menu__list a:hover { letter-spacing: 0.06em; }
body.replica-amazinggrace .rx-menu__list a:hover .en { color: #F3A9C1; }

@media (max-width: 750px) {
  body.replica-amazinggrace .rx-menu-btn { position: fixed; top: 18px; right: 16px; transform: none; }
  body.replica-amazinggrace .replica-header-fair-cta { margin-right: 0; }
}

/* --- rx-menu 再設計：左揃え2カラムのエディトリアルグリッド（下層と統一） --- */
body.replica-amazinggrace .rx-menu__inner { width: min(700px, 88vw); padding: 76px 0 60px; }
body.replica-amazinggrace .rx-menu__inner::before {
  content: "Menu";
  display: block;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: 0.66rem;
  letter-spacing: 0.44em;
  text-transform: uppercase;
  color: #F3A9C1;
  margin: 0 0 26px 2px;
}
body.replica-amazinggrace .rx-menu__list { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(40px, 7vw, 90px); }
body.replica-amazinggrace .rx-menu__list li { border-bottom: 0; }
body.replica-amazinggrace .rx-menu__list a { align-items: flex-start; gap: 3px; padding: clamp(11px, 1.5vw, 15px) 0; text-align: left; }
body.replica-amazinggrace .rx-menu__list .en {
  position: relative;
  font-family: "Cormorant Infant", "Cinzel", serif;
  font-weight: 500;
  font-size: clamp(17px, 1.8vw, 21px);
  letter-spacing: 0.12em;
  color: #23282A;
}
body.replica-amazinggrace .rx-menu__list .en::after { content: ""; position: absolute; left: 0; bottom: -3px; width: 0; height: 1px; background: #F3A9C1; transition: width 0.4s ease; }
body.replica-amazinggrace .rx-menu__list .jp { font-size: 9.5px; letter-spacing: 0.3em; color: #F3A9C1; opacity: 0.8; }
body.replica-amazinggrace .rx-menu__list a:hover { letter-spacing: 0; }
body.replica-amazinggrace .rx-menu__list a:hover .en { color: #F3A9C1; }
body.replica-amazinggrace .rx-menu__list a:hover .en::after { width: 100%; }
/* CTA：2×2のスリム金枠ボタングリッド */
body.replica-amazinggrace .rx-menu__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
body.replica-amazinggrace .rx-menu__cta a {
  flex: 1 1 calc(50% - 6px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 18px;
  border: 1px solid rgba(243, 169, 193, 0.6);
  background: rgba(251, 252, 251, 0.4);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 0.86rem;
  letter-spacing: 0.12em;
  color: #F3A9C1;
  text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
body.replica-amazinggrace .rx-menu__cta a:hover { background: #F3A9C1; border-color: #F3A9C1; color: #fff; }
@media (max-width: 750px) {
  body.replica-amazinggrace .rx-menu__inner { width: min(560px, 88vw); }
  body.replica-amazinggrace .rx-menu__list { column-gap: 22px; }
  body.replica-amazinggrace .rx-menu__list .en { font-size: 15px; }
  /* CTAもスマホで2列（2×2）に。縦の長さを抑える */
  body.replica-amazinggrace .rx-menu__cta { flex-direction: row; gap: 10px; margin-top: 24px; }
  body.replica-amazinggrace .rx-menu__cta a { flex: 1 1 calc(50% - 5px); padding: 12px 8px; font-size: 0.8rem; }
}

/* --- TOPフッター再設計：整然としたグリッド（4列×3行・英字＋和訳を中央揃え） --- */
body.replica-amazinggrace .rxfoot__nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 2.6vw, 32px) clamp(10px, 2vw, 26px);
  max-width: 720px;
  margin: 0 auto;
  width: 100%;
}
body.replica-amazinggrace .rxfoot__nav a { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 0; border: 0; text-decoration: none; }
body.replica-amazinggrace .rxfoot__nav a + a { border-left: 0; }
body.replica-amazinggrace .rxfoot__nav .en { font-family: "Cinzel", "Cormorant Infant", serif; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: #F3A9C1; transition: color 0.3s ease; }
body.replica-amazinggrace .rxfoot__nav .jp { display: block; position: relative; font-size: 12px; letter-spacing: 0.12em; color: #6E7B72; padding-bottom: 3px; transition: color 0.3s ease; }
body.replica-amazinggrace .rxfoot__nav .jp::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: 0; height: 1px; background: #F3A9C1; transition: left 0.35s ease, right 0.35s ease; }
body.replica-amazinggrace .rxfoot__nav a:hover .jp::after { left: 0; right: 0; }
body.replica-amazinggrace .rxfoot__nav a:hover .en, body.replica-amazinggrace .rxfoot__nav a:hover .jp { color: #F3A9C1; }
@media (max-width: 750px) {
  /* iPhone8等でも各ラベルが1行に収まるよう2列に（3列は8文字ラベルが折り返す） */
  body.replica-amazinggrace .rxfoot__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 92vw; gap: 18px 16px; }
  body.replica-amazinggrace .rxfoot__nav .jp { font-size: 11.5px; letter-spacing: 0.08em; white-space: nowrap; }
  body.replica-amazinggrace .rxfoot__nav .en { font-size: 10.5px; }
}

/* =====================================================================
   BEST RATE 訴求セクション（フェアとプランの間）
   2枚全幅写真＋中央下すりガラスカード
   ===================================================================== */
body.replica-amazinggrace .rxbest {
  position: relative;
  margin: clamp(40px, 5vw, 80px) 0 clamp(48px, 6vw, 96px);
}
body.replica-amazinggrace .rxbest__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px; /* 参考イメージの細い白の継ぎ目 */
  background: #fff;
}
body.replica-amazinggrace .rxbest__photo { margin: 0; overflow: hidden; }
body.replica-amazinggrace .rxbest__photo img {
  display: block;
  width: 100%;
  height: clamp(340px, 42vw, 700px);
  object-fit: cover;
  transform: scale(1.06);
  transition: transform 2.2s cubic-bezier(0.22, 1, 0.36, 1);
}
body.replica-amazinggrace .rxbest__photo:first-child img { object-position: 60% 45%; }
body.replica-amazinggrace .rxbest__photo:last-child img { object-position: 42% center; }
body.replica-amazinggrace .rxbest--in .rxbest__photo img { transform: scale(1); }

/* すりガラスカード（暖色クリームのフロスト・スリム・高透明） */
body.replica-amazinggrace .rxbest__glass {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, 22px);
  width: min(600px, 44vw);
  padding: clamp(22px, 2.4vw, 34px) 24px clamp(24px, 2.6vw, 38px);
  text-align: center;
  background: rgba(240, 240, 240, 0.24);
  -webkit-backdrop-filter: blur(10px) saturate(1.03);
  backdrop-filter: blur(10px) saturate(1.03);
  border-top: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow: 0 14px 44px rgba(70, 77, 79, 0.08);
  opacity: 0;
  clip-path: inset(0 42% 0 42%);
  transition: opacity 1s ease 0.1s,
    transform 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.1s,
    clip-path 1.3s cubic-bezier(0.22, 1, 0.36, 1) 0.1s;
}
/* ガラスが中央から横へすーっと開き、下から浮上する */
body.replica-amazinggrace .rxbest--in .rxbest__glass {
  opacity: 1;
  transform: translate(-50%, 0);
  clip-path: inset(0 0 0 0);
}

/* 中の文字は時間差でふわっと上がる */
body.replica-amazinggrace .rxbest__eyebrow,
body.replica-amazinggrace .rxbest__ttl,
body.replica-amazinggrace .rxbest__jp {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.9s ease, transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}
body.replica-amazinggrace .rxbest--in .rxbest__eyebrow { transition-delay: 0.45s; }
body.replica-amazinggrace .rxbest--in .rxbest__ttl { transition-delay: 0.6s; }
body.replica-amazinggrace .rxbest--in .rxbest__jp { transition-delay: 0.78s; }
body.replica-amazinggrace .rxbest--in .rxbest__eyebrow,
body.replica-amazinggrace .rxbest--in .rxbest__ttl,
body.replica-amazinggrace .rxbest--in .rxbest__jp {
  opacity: 1;
  transform: translateY(0);
}

/* 金の小さなアイキャッチ英字（本体 en と同じ様式） */
body.replica-amazinggrace .rxbest__eyebrow {
  margin: 0 0 10px;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-weight: 500;
  font-size: clamp(10px, 0.85vw, 12px);
  letter-spacing: 0.34em;
  text-indent: 0.34em;
  color: var(--amazinggrace-gold-deep);
}
/* ink の見出し（本体 ttl と同じ様式・スリムに） */
body.replica-amazinggrace .rxbest__ttl {
  margin: 0;
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-weight: 500;
  font-size: clamp(26px, 2.6vw, 40px);
  letter-spacing: 0.18em;
  text-indent: 0.18em;
  line-height: 1.1;
  color: var(--amazinggrace-ink);
}
body.replica-amazinggrace .rxbest__jp {
  margin: 13px 0 0;
  font-size: clamp(12px, 0.95vw, 13.5px);
  letter-spacing: 0.08em;
  color: #5A6163;
}

@media (max-width: 750px) {
  /* レスポンシブ：写真を縦積みで全表示。BEST RATE は2枚の写真の境目に
     うっすら白いカードを重ねてテキストを表示（画像は隠れすぎない）。 */
  body.replica-amazinggrace .rxbest__photos { grid-template-columns: 1fr; gap: 6px; }
  body.replica-amazinggrace .rxbest__photo img { height: 64vw; }
  body.replica-amazinggrace .rxbest__glass {
    position: absolute;
    left: 50%;
    top: 50%;
    bottom: auto;
    width: 68vw;
    transform: translate(-50%, -50%) translateY(34px);
    clip-path: none !important;
    opacity: 0;
    transition: opacity 1.6s ease, transform 1.9s cubic-bezier(0.2, 0.8, 0.2, 1);
    padding: 18px 14px 20px;
    background: rgba(255, 255, 255, 0.55);
    -webkit-backdrop-filter: blur(6px) saturate(1.02);
    backdrop-filter: blur(6px) saturate(1.02);
    border-top: 1px solid rgba(255, 255, 255, 0.6);
    box-shadow: 0 12px 32px rgba(70, 77, 79, 0.14);
  }
  body.replica-amazinggrace .rxbest__eyebrow,
  body.replica-amazinggrace .rxbest__ttl,
  body.replica-amazinggrace .rxbest__jp {
    opacity: 1 !important;
    transform: none !important;
  }
  body.replica-amazinggrace .rxbest__eyebrow { font-size: 8.5px; margin-bottom: 7px; }
  body.replica-amazinggrace .rxbest__ttl { font-size: 20px; }
  body.replica-amazinggrace .rxbest__jp { font-size: 10px; margin-top: 9px; line-height: 1.7; letter-spacing: 0.03em; }
  body.replica-amazinggrace .rxbest__jp-b { display: block; margin-top: 2px; }
}

/* =====================================================================
   Wedding Report セクション（フォトギャラリーの上／TOPトンマナ準拠）
   ===================================================================== */
body.replica-amazinggrace .rxreport { background: #F4F5F4; padding: clamp(58px, 8vw, 120px) 0; overflow: hidden; }
body.replica-amazinggrace .rxreport__inner { max-width: 1200px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 64px); }

/* 見出し（Wedding Report ＋ 右へ伸びる細線／背後に淡い透かし） */
body.replica-amazinggrace .rxreport__head { display: flex; align-items: center; gap: clamp(20px, 4vw, 54px); margin-bottom: clamp(30px, 4vw, 60px); }
body.replica-amazinggrace .rxreport__headMain { position: relative; flex: 0 0 auto; }
/* 透かし文字：TOPのゴールド系（#F3A9C1）に合わせる */
body.replica-amazinggrace .rxreport__wm { position: absolute; right: -8%; top: -72%; font-family: "Cormorant Infant", "Times New Roman", serif; font-size: clamp(42px, 6vw, 96px); line-height: 0.9; letter-spacing: 0.04em; color: rgba(243, 169, 193, 0.14); white-space: nowrap; pointer-events: none; }
/* 大見出し：TOPの大見出し（rxwc「Wedding Contents」）と同じゴールドディープ */
body.replica-amazinggrace .rxreport__en { margin: 0; font-family: "Cinzel", "Cormorant Infant", serif; font-weight: 500; font-size: clamp(26px, 3.6vw, 52px); letter-spacing: 0.14em; color: var(--amazinggrace-gold-deep, #F3A9C1); line-height: 1.05; }
/* 小ラベル：TOPの小ラベル（rxwc__en）と同じゴールドアクセント */
body.replica-amazinggrace .rxreport__ja { margin: 9px 0 0; font-size: 12px; letter-spacing: 0.28em; color: var(--amazinggrace-gold-accent, #F3A9C1); }
body.replica-amazinggrace .rxreport__rule { flex: 1; height: 1px; background: rgba(243, 169, 193, 0.5); }

/* カルーセル・ストリップ（ネイティブ横スクロール＋スナップ） */
body.replica-amazinggrace .rxreport__strip { display: flex; gap: clamp(16px, 2vw, 30px); overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: 38px 0 12px; scrollbar-width: none; }
body.replica-amazinggrace .rxreport__strip::-webkit-scrollbar { display: none; }
body.replica-amazinggrace .rxreport__card { position: relative; flex: 0 0 calc((100% - 3 * clamp(16px, 2vw, 30px)) / 4); scroll-snap-align: start; text-decoration: none; padding-top: 34px; }
/* 背後の淡い矩形（上・右へオフセット）。グレーだと浮くのでTOPの暖色ゴールドに統一 */
body.replica-amazinggrace .rxreport__frame { position: absolute; z-index: 0; top: 0; right: -14px; width: 74%; height: calc(100% - 44px); background: rgba(243, 169, 193, 0.13); }
/* 巨大な淡い番号 */
body.replica-amazinggrace .rxreport__num { position: absolute; z-index: 2; top: -4px; right: 8px; font-family: "Cormorant Infant", serif; font-size: clamp(34px, 3.4vw, 56px); font-weight: 400; color: rgba(96, 108, 100, 0.42); letter-spacing: 0.02em; }
/* 写真 */
body.replica-amazinggrace .rxreport__media { position: relative; z-index: 1; display: block; overflow: hidden; aspect-ratio: 1 / 1.14; box-shadow: 0 20px 44px -28px rgba(32, 46, 38, 0.4); }
body.replica-amazinggrace .rxreport__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s cubic-bezier(0.22, 0.61, 0.36, 1); }
body.replica-amazinggrace .rxreport__card:hover .rxreport__media img { transform: scale(1.06); }
/* タイトル */
body.replica-amazinggrace .rxreport__title { position: relative; z-index: 1; display: block; margin: 18px 4px 0; font-size: 13.5px; line-height: 1.85; letter-spacing: 0.04em; color: #2F3638; }
body.replica-amazinggrace .rxreport__new { font-style: normal; color: var(--amazinggrace-gold-deep, #F3A9C1); }
/* カップル名（右下の淡いボックス）。フレームと同系の暖色ゴールドで統一 */
body.replica-amazinggrace .rxreport__couple { position: relative; z-index: 1; display: block; margin: 18px 0 0 auto; width: -moz-fit-content; width: fit-content; padding: 8px 18px; background: rgba(243, 169, 193, 0.14); font-family: "Cinzel", "Cormorant Infant", serif; font-size: 12px; letter-spacing: 0.12em; color: #F3A9C1; }

/* ドット */
body.replica-amazinggrace .rxreport__dots { display: flex; justify-content: center; gap: 10px; margin-top: clamp(22px, 3vw, 40px); }
body.replica-amazinggrace .rxreport__dot { width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; background: rgba(243, 169, 193, 0.3); cursor: pointer; transition: background 0.3s ease, transform 0.3s ease; }
body.replica-amazinggrace .rxreport__dot.-on { background: var(--amazinggrace-gold-deep, #F3A9C1); transform: scale(1.25); }

/* 一覧ボタン（TOP標準CTA=ゴールド枠＋ドットに統一） */
body.replica-amazinggrace .rxreport__more { text-align: center; margin-top: clamp(30px, 4vw, 56px); }
body.replica-amazinggrace .rxreport__more a {
  display: inline-flex; align-items: center; justify-content: space-between;
  min-width: min(300px, 86vw); padding: 16px 26px;
  border: 1px solid rgba(243, 169, 193, 0.72);
  background: rgba(251, 252, 251, 0.5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  color: var(--amazinggrace-gold-deep, #F3A9C1);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(0.82rem, 0.92vw, 0.95rem); letter-spacing: 0.12em;
  text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
body.replica-amazinggrace .rxreport__more a span {
  flex: 0 0 auto; width: 6px; height: 6px; margin-left: 22px; border-radius: 50%;
  background: var(--amazinggrace-gold-deep, #F3A9C1); transition: transform 0.4s ease, background 0.4s ease;
}
body.replica-amazinggrace .rxreport__more a:hover { color: #fff; border-color: var(--amazinggrace-gold-deep, #F3A9C1); background: var(--amazinggrace-gold-deep, #F3A9C1); }
body.replica-amazinggrace .rxreport__more a:hover span { transform: translateX(5px); background: #fff; }

@media (max-width: 900px) {
  body.replica-amazinggrace .rxreport__card { flex: 0 0 calc((100% - clamp(16px, 2vw, 30px)) / 2); }
}
@media (max-width: 640px) {
  body.replica-amazinggrace .rxreport__wm { top: -48%; right: auto; left: 0; font-size: 52px; }
  /* スマホは2事例を横並び＋3枚目をのぞき見せ、スワイプで続きがあると直感的に伝える */
  body.replica-amazinggrace .rxreport__strip { gap: 10px; padding-top: 30px; }
  body.replica-amazinggrace .rxreport__card { flex: 0 0 40vw; padding-top: 30px; }
  body.replica-amazinggrace .rxreport__num { font-size: 32px; }
  body.replica-amazinggrace .rxreport__title { font-size: 12px; line-height: 1.7; }
  body.replica-amazinggrace .rxreport__couple { padding: 6px 12px; font-size: 11px; }
  body.replica-amazinggrace .rxreport__more a { min-width: 0; width: 100%; }
}

/* =====================================================================
   NEWS（新着情報）の「View More」を、TOP標準のゴールド枠CTAに統一
   （テーマ既定のソリッド金ボタンが他CTAと不統一だったため上書き）
   ===================================================================== */
body.replica-amazinggrace .o-lead-information .c-btn a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
  min-width: min(300px, 86vw) !important;
  padding: 15px 26px !important;
  border: 1px solid rgba(243, 169, 193, 0.72) !important;
  background: rgba(251, 252, 251, 0.5) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
  border-radius: 0 !important;
  color: var(--amazinggrace-gold-deep, #F3A9C1) !important;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: clamp(0.82rem, 0.92vw, 0.95rem) !important;
  letter-spacing: 0.14em !important;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease !important;
}
body.replica-amazinggrace .o-lead-information .c-btn a .iconSvg,
body.replica-amazinggrace .o-lead-information .c-btn a .iconSvg svg,
body.replica-amazinggrace .o-lead-information .c-btn a .iconSvg svg * {
  color: currentColor !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}
body.replica-amazinggrace .o-lead-information .c-btn a:hover {
  background: var(--amazinggrace-gold-deep, #F3A9C1) !important;
  color: #fff !important;
  border-color: var(--amazinggrace-gold-deep, #F3A9C1) !important;
}

/* =====================================================================
   コンセプトセクション → 「選ばれる理由」への導線（TOP標準ゴールド枠CTA）
   ===================================================================== */
/* 箱なしで上質、かつ目立つCTA：持続する金の下線＋シェブロン矢印。PCでは大きめ。 */
body.replica-amazinggrace .replica-concept-cta {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  margin-top: clamp(30px, 3.4vw, 48px);
  padding: 0 2px 12px;
  border: 0;
  border-bottom: 1.5px solid var(--amazinggrace-gold-deep, #F3A9C1);
  background: none;
  box-shadow: none;
  color: var(--amazinggrace-gold-deep, #F3A9C1);
  font-family: "Cinzel", "Cormorant Infant", serif;
  font-size: clamp(12.5px, 1vw, 15px);
  letter-spacing: 0.22em;
  text-transform: none;
  text-decoration: none;
  transition: color 0.4s ease, border-color 0.4s ease, letter-spacing 0.4s ease;
}
/* 末尾の span を金のシェブロン矢印（›）に */
body.replica-amazinggrace .replica-concept-cta span {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 0;
  background: none;
  border-right: 1.5px solid var(--amazinggrace-gold-deep, #F3A9C1);
  border-top: 1.5px solid var(--amazinggrace-gold-deep, #F3A9C1);
  transform: rotate(45deg);
  transition: transform 0.4s ease, border-color 0.4s ease;
}
body.replica-amazinggrace .replica-concept-cta:hover { color: var(--amazinggrace-gold, #F3A9C1); border-bottom-color: var(--amazinggrace-gold, #F3A9C1); letter-spacing: 0.26em; }
body.replica-amazinggrace .replica-concept-cta:hover span { transform: rotate(45deg) translate(3px, -3px); border-color: var(--amazinggrace-gold, #F3A9C1); }
/* PCはさらに存在感を（大きめ・余白広め） */
@media (min-width: 751px) {
  body.replica-amazinggrace .replica-concept-cta { font-size: 15px; letter-spacing: 0.24em; margin-top: clamp(38px, 4vw, 56px); padding-bottom: 13px; }
}

/* =============================================================
   ブライダルフェア／プラン：iframe廃止→会場公式サイト踏襲の静的カード
   （アメイジンググレイス前橋用・クリーム×ガーデングリーン）
   ============================================================= */
body.replica-amazinggrace .rx-embed--fair,
body.replica-amazinggrace .rxplans__embed.rx-embed--plan {
  width: min(1120px, 92vw);
  margin: 0 auto;
  padding: 0;
}
body.replica-amazinggrace .rxfair-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(14px, 1.6vw, 22px);
}
body.replica-amazinggrace .rxplan-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 1.8vw, 26px);
}
body.replica-amazinggrace .rxfair-card,
body.replica-amazinggrace .rxplan-card {
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
  border: 1px solid rgba(243, 169, 193, 0.16);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 18px 40px -30px rgba(60, 60, 40, 0.45);
  transition: transform 0.5s cubic-bezier(0.12,0.72,0.46,1), box-shadow 0.5s ease;
}
body.replica-amazinggrace .rxfair-card:hover,
body.replica-amazinggrace .rxplan-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 26px 50px -28px rgba(60, 60, 40, 0.5);
}
body.replica-amazinggrace .rxfair-card__img,
body.replica-amazinggrace .rxplan-card__img {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
body.replica-amazinggrace .rxfair-card__img img,
body.replica-amazinggrace .rxplan-card__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1.4s cubic-bezier(0.12,0.72,0.46,1);
}
body.replica-amazinggrace .rxfair-card:hover .rxfair-card__img img,
body.replica-amazinggrace .rxplan-card:hover .rxplan-card__img img { transform: scale(1.05); }

/* フェア：タグチップ（左上） */
body.replica-amazinggrace .rxfair-card__tags {
  position: absolute; top: 10px; left: 10px; display: flex; gap: 6px; flex-wrap: wrap;
}
body.replica-amazinggrace .rxfair-card__tags i {
  font-style: normal;
  font-size: 0.66rem; letter-spacing: 0.06em; line-height: 1;
  padding: 5px 9px; border-radius: 2px;
  background: rgba(243, 169, 193, 0.86); color: #FFFFFF;
  backdrop-filter: blur(2px);
}
/* プラン：特典バッジ（左上・塗り） */
body.replica-amazinggrace .rxplan-card__badge {
  position: absolute; top: 12px; left: 12px;
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em;
  padding: 6px 12px; border-radius: 2px;
  background: var(--amazinggrace-bordeaux); color: #FBFCFB;
}

body.replica-amazinggrace .rxfair-card__body,
body.replica-amazinggrace .rxplan-card__body {
  display: flex; flex-direction: column; flex: 1 1 auto;
  padding: clamp(14px, 1.4vw, 20px) clamp(15px, 1.5vw, 22px) clamp(18px, 1.6vw, 22px);
}
body.replica-amazinggrace .rxfair-card__date,
body.replica-amazinggrace .rxplan-card__period {
  font-family: "Cormorant Infant", "Cinzel", serif;
  font-size: 0.82rem; letter-spacing: 0.14em; color: var(--amazinggrace-gold-accent);
  text-transform: uppercase; margin: 0 0 8px;
}
body.replica-amazinggrace .rxfair-card__title,
body.replica-amazinggrace .rxplan-card__title {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.02rem, 1.15vw, 1.22rem); font-weight: 600;
  color: #23282A; line-height: 1.5; letter-spacing: 0.03em; margin: 0 0 10px;
}
body.replica-amazinggrace .rxfair-card__points,
body.replica-amazinggrace .rxplan-card__points {
  font-size: 0.83rem; line-height: 1.9; letter-spacing: 0.02em;
  color: rgba(64, 71, 73, 0.82); margin: 0 0 16px;
}
body.replica-amazinggrace .rxfair-card__btn,
body.replica-amazinggrace .rxplan-card__btn {
  display: inline-flex; align-items: center; justify-content: space-between;
  margin-top: auto; padding: 12px 18px;
  border: 1px solid rgba(243, 169, 193, 0.7);
  color: var(--amazinggrace-gold-deep);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 0.82rem; letter-spacing: 0.1em; text-decoration: none;
  border-radius: 2px; transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
body.replica-amazinggrace .rxfair-card__btn span,
body.replica-amazinggrace .rxplan-card__btn span {
  width: 6px; height: 6px; border-radius: 50%; margin-left: 14px;
  background: var(--amazinggrace-gold-deep); transition: transform 0.4s ease, background 0.4s ease;
}
body.replica-amazinggrace .rxfair-card__btn:hover,
body.replica-amazinggrace .rxplan-card__btn:hover {
  background: var(--amazinggrace-gold-deep); color: #fff; border-color: var(--amazinggrace-gold-deep);
}
body.replica-amazinggrace .rxfair-card__btn:hover span,
body.replica-amazinggrace .rxplan-card__btn:hover span { transform: translateX(5px); background: #fff; }

@media (max-width: 900px) and (min-width: 751px) {
  body.replica-amazinggrace .rxfair-cards { grid-template-columns: repeat(2, 1fr); }
  body.replica-amazinggrace .rxplan-cards { grid-template-columns: repeat(3, 1fr); }
}
/* スマホ：横スワイプのカルーセル（scroll-snap）。カードは画面幅の約80%で次カードが少し覗く */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxfair-cards,
  body.replica-amazinggrace .rxplan-cards {
    display: flex;
    grid-template-columns: none;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-padding: 0 16px;
    padding: 2px 16px 14px;
    margin: 0 -16px;
    scrollbar-width: none;
  }
  body.replica-amazinggrace .rxfair-cards::-webkit-scrollbar,
  body.replica-amazinggrace .rxplan-cards::-webkit-scrollbar { display: none; }
  body.replica-amazinggrace .rxfair-card,
  body.replica-amazinggrace .rxplan-card {
    flex: 0 0 80%;
    max-width: 320px;
    scroll-snap-align: center;
  }
}

/* =============================================================
   追補：セクション余白の統一／News CTA統一（アメイジンググレイス前橋）
   ============================================================= */
/* [1] （撤回）料理・ガーデンの showcase 内部レイアウトは元のまま維持。
   写真の占有率・ブリード・CTA位置・justify(料理=flex-start/ガーデン=flex-end)は変更しない。
   セクション間の上下余白の統一は下の [3] で「外側マージンのみ」調整する。 */

/* [2] News（新着情報）下の CTA：他セクションの枠線ボタンと統一。右切れ・英語表記を解消 */
body.replica-amazinggrace .o-lead-information .c-btn {
  text-align: center !important;
  margin-top: clamp(30px, 3.2vw, 46px) !important;
  width: auto !important;
}
body.replica-amazinggrace .o-lead-information .c-btn a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 248px !important;
  max-width: 100% !important;
  height: auto !important;
  padding: 15px 30px !important;
  border: 1px solid rgba(243, 169, 193, 0.7) !important;
  border-radius: 2px !important;
  background: transparent !important;
  color: #F3A9C1 !important;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: 0.88rem !important;
  letter-spacing: 0.14em !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-indent: 0 !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease !important;
}
body.replica-amazinggrace .o-lead-information .c-btn a::before,
body.replica-amazinggrace .o-lead-information .c-btn a::after {
  display: none !important; /* テーマの矢印画像等による右切れを無効化 */
}
body.replica-amazinggrace .o-lead-information .c-btn a:hover {
  background: #F3A9C1 !important;
  border-color: #F3A9C1 !important;
  color: #FFFFFF !important;
}
/* News CTA：(1)下切れ解消 …テーマの .c-btn が overflow:hidden かつボタンより低いため
   ボタン下端が切れていた → overflow を解放し高さを内容なりに。
   (2)他のTOP CTAと同じ「点（ドット）」を付与 …block[2]で ::after を無効化していたため復活。 */
body.replica-amazinggrace .o-lead-information .c-btn {
  overflow: visible !important;
  height: auto !important;
}
body.replica-amazinggrace .o-lead-information .c-btn a {
  overflow: visible !important;
}
body.replica-amazinggrace .o-lead-information .c-btn a::after {
  content: "" !important;
  display: inline-block !important;
  width: 6px !important;
  height: 6px !important;
  min-width: 6px !important;
  margin-left: 14px !important;
  border-radius: 50% !important;
  background: currentColor !important;
  flex: 0 0 auto !important;
  opacity: 1 !important;
  transform: none !important;
}

/* [3] セクション間の「上下余白」だけを統一（外側マージンのみ／内部レイアウト・写真ブリード・CTA位置は不変）。
   セレモニー↔パーティー（約112px）を基準に、見えるクリーム幅を全ギャップで統一する。
   料理→ガーデンは「料理の内部クリーム下(約50) + stay margin + ガーデンの内部クリーム上(約50)」なので、
   margin = 112 − 100 ≒ 12px に設定（見えるギャップ＝約112px）。 */
body.replica-amazinggrace .rxbuilt .rxshowcase--stay {
  margin-top: clamp(8px, 0.9vw, 16px) !important;
}

/* =============================================================
   トップページの回遊ナビ「Contents／各ページのご案内」（下層と同趣）
   ============================================================= */
body.replica-amazinggrace .rxnavgrid {
  background: #F4F5F4;
  padding: clamp(56px, 7vw, 104px) clamp(20px, 5vw, 72px) clamp(60px, 7vw, 108px);
  border-top: 1px solid rgba(243, 169, 193, 0.18);
}
body.replica-amazinggrace .rxnavgrid__head {
  text-align: center;
  margin-bottom: clamp(30px, 3.4vw, 52px);
}
body.replica-amazinggrace .rxnavgrid__title {
  display: block;
  font-family: "Cormorant Infant", "Cinzel", "Times New Roman", serif;
  font-size: clamp(1.9rem, 3vw, 2.9rem);
  font-weight: 400;
  letter-spacing: 0.14em;
  color: var(--amazinggrace-gold-deep);
  line-height: 1.1;
}
body.replica-amazinggrace .rxnavgrid__sub {
  display: block;
  margin-top: 10px;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  color: var(--amazinggrace-gold-accent);
}
body.replica-amazinggrace .rxnavgrid__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: clamp(10px, 1vw, 16px);
  max-width: 1240px;
  margin: 0 auto;
}
body.replica-amazinggrace .rxnavgrid__tile {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  border-radius: 2px;
  text-decoration: none;
  box-shadow: 0 12px 30px -22px rgba(60, 60, 40, 0.5);
}
body.replica-amazinggrace .rxnavgrid__img {
  position: absolute;
  inset: 0;
}
body.replica-amazinggrace .rxnavgrid__img img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block;
  transition: transform 1.2s cubic-bezier(0.12, 0.72, 0.46, 1);
}
body.replica-amazinggrace .rxnavgrid__tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(38, 45, 41, 0) 34%, rgba(38, 45, 41, 0.16) 58%, rgba(31, 38, 34, 0.66) 100%);
  transition: background 0.4s ease;
}
body.replica-amazinggrace .rxnavgrid__tile:hover .rxnavgrid__img img { transform: scale(1.07); }
body.replica-amazinggrace .rxnavgrid__tile:hover::after {
  background: linear-gradient(180deg, rgba(38, 45, 41, 0.1) 20%, rgba(31, 38, 34, 0.5) 60%, rgba(28, 34, 30, 0.8) 100%);
}
body.replica-amazinggrace .rxnavgrid__label {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 0 8px clamp(12px, 1.4vw, 18px);
  text-align: center;
}
body.replica-amazinggrace .rxnavgrid__label .en {
  font-family: "Cormorant Infant", "Cinzel", serif;
  font-size: clamp(0.92rem, 1.1vw, 1.12rem);
  letter-spacing: 0.12em;
  color: #FFFFFF;
  line-height: 1.1;
}
body.replica-amazinggrace .rxnavgrid__label .jp {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  color: rgba(252, 253, 252, 0.9);
}
@media (max-width: 900px) {
  body.replica-amazinggrace .rxnavgrid__grid { grid-template-columns: repeat(4, 1fr); }
}
/* スマホ：参考デザイン準拠の3列コンパクトグリッド（正方形に近いタイル・ラベルは中央） */
@media (max-width: 600px) {
  body.replica-amazinggrace .rxnavgrid { padding: 40px 12px 48px; }
  body.replica-amazinggrace .rxnavgrid__head { margin-bottom: 20px; }
  body.replica-amazinggrace .rxnavgrid__title { font-size: 1.7rem; }
  body.replica-amazinggrace .rxnavgrid__sub { font-size: 0.68rem; letter-spacing: 0.22em; margin-top: 7px; }
  body.replica-amazinggrace .rxnavgrid__grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  body.replica-amazinggrace .rxnavgrid__tile { aspect-ratio: 1 / 1.14; border-radius: 1px; }
  /* ラベルはタイル中央に、背景は全面フラットな暗色でコンパクトでも視認性を確保 */
  body.replica-amazinggrace .rxnavgrid__tile::after {
    background: rgba(32, 36, 34, 0.42);
  }
  body.replica-amazinggrace .rxnavgrid__tile:hover::after { background: rgba(28, 34, 30, 0.5); }
  body.replica-amazinggrace .rxnavgrid__label {
    top: 0; bottom: 0;
    justify-content: center;
    padding: 0 4px;
    gap: 3px;
  }
  body.replica-amazinggrace .rxnavgrid__label .en {
    font-size: 0.74rem;
    letter-spacing: 0.05em;
    line-height: 1.18;
  }
  body.replica-amazinggrace .rxnavgrid__label .jp {
    font-size: 0.56rem;
    letter-spacing: 0.02em;
    line-height: 1.3;
  }
}

/* ファーストビュー：ループ動画（写真クロスフェード→動画に変更）*/
body.replica-amazinggrace .replica-hero-video-el {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  background: transparent !important;
  pointer-events: none !important;
}

/* ファーストビュー：動画を実物の明るさ（加工なし）に。全体の暗色オーバーレイを撤去し、
   最下部だけ極薄グラデ（コピー／SCROLLの可読性確保）に留める。PC/SP共通で最後に上書き。 */
body.replica-amazinggrace .o-mainvisual:after {
  background:
    linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 60%, rgba(17, 20, 19,0.12) 84%, rgba(15, 18, 17,0.26) 100%) !important;
}

/* =============================================================
   navGrid（Contents/各ページのご案内）文字サイズ調整
   ・このテーマは root=10px なので rem は10px基準。見出しは他セクション(News/Bridal Fair=40px)に統一。
   ・タイルの白文字ラベルを読みやすく拡大（PC/スマホ）。末尾で!important上書き。
   ============================================================= */
body.replica-amazinggrace .rxnavgrid__title { font-size: 4rem !important; letter-spacing: 0.08em !important; }
body.replica-amazinggrace .rxnavgrid__sub { font-size: 1.2rem !important; letter-spacing: 0.2em !important; margin-top: 1.1rem !important; }
body.replica-amazinggrace .rxnavgrid__label .en { font-size: 1.55rem !important; letter-spacing: 0.08em !important; line-height: 1.2 !important; }
body.replica-amazinggrace .rxnavgrid__label .jp { font-size: 1.15rem !important; letter-spacing: 0.04em !important; line-height: 1.35 !important; }
@media (max-width: 600px) {
  body.replica-amazinggrace .rxnavgrid__title { font-size: 2.8rem !important; }
  body.replica-amazinggrace .rxnavgrid__sub { font-size: 1.05rem !important; }
  body.replica-amazinggrace .rxnavgrid__label .en { font-size: 1.3rem !important; }
  body.replica-amazinggrace .rxnavgrid__label .jp { font-size: 1.0rem !important; }
}

/* FV中央ロゴ：PC(≥751px)でもスマホと同様に白抜きにする（明るい動画の上で視認性を確保） */
@media (min-width: 751px) {
  body.replica-amazinggrace .replica-hero-center-logo img {
    filter:
      brightness(0) invert(1)
      drop-shadow(0 3px 18px rgba(17, 23, 19, 0.38)) !important;
    opacity: 0.94 !important;
  }
}

/* FVの白コピー視認性UP：動画の明るさはそのまま、文字にだけ濃い影＋周囲のソフトな暗グローで
   コントラストを稼ぐ（全面オーバーレイは使わない＝動画は明るいまま）。 */
body.replica-amazinggrace .o-mainvisual__copy {
  text-shadow:
    0 1px 1px rgba(0, 0, 0, 0.92),
    0 2px 6px rgba(0, 0, 0, 0.74),
    0 4px 18px rgba(0, 0, 0, 0.55),
    0 0 42px rgba(0, 0, 0, 0.4) !important;
}
body.replica-amazinggrace .o-mainvisual__copy em {
  text-shadow:
    0 1px 2px rgba(32, 42, 36, 0.9),
    0 2px 10px rgba(0, 0, 0, 0.55),
    0 0 30px rgba(0, 0, 0, 0.35) !important;
}

/* FVコピーの背後だけに、羽根ぼかしの暗い楕円を敷く（箱に見えない／動画は明るいまま）。
   これで明るいフレームでも白文字が沈まない。 */
body.replica-amazinggrace .o-mainvisual__copy { position: relative; z-index: 1; }
body.replica-amazinggrace .o-mainvisual__copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 128%;
  height: 168%;
  background: radial-gradient(ellipse at center,
    rgba(0, 0, 0, 0.36) 0%,
    rgba(0, 0, 0, 0.24) 42%,
    rgba(0, 0, 0, 0.08) 66%,
    rgba(0, 0, 0, 0) 78%);
  pointer-events: none;
}


/* Planセクション（クリーム帯）の上下余白を拡張（2026-07-23調整：タイトル上・ボタン下を少し広げる） */
body.replica-amazinggrace .rxbuilt .rxplans-group {
  padding-top: clamp(40px, 5vw, 72px);
  padding-bottom: clamp(52px, 6vw, 92px);
}


/* EVENTカードのコピーをPCで1行に収める（2026-07-23） */
@media (min-width: 751px) {
  body.replica-amazinggrace .rxlead-card--event .rxlead-card__copy { white-space: nowrap; }
  body.replica-amazinggrace .rxlead-card--event .rxlead-card__copy .jphr { display: inline; white-space: nowrap; }
}


/* WeddingContents背景：新婦が見切れないよう位置調整（photo-6は縦長で被写体が中央〜下／2026-07-26） */
body.replica-amazinggrace .rxbuilt .rxwc__bg img { object-position: center 62% !important; }
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxwc__bg img { object-position: center 58% !important; }
}


/* スマホ ガーデン画像：左側が見えるよう表示位置を左寄せ（2026-07-28） */
body.replica-amazinggrace .rxbuilt .rxstay-m__hero > img { object-position: 62% center; }


/* =====================================================================
   TOP：白×グレー×グリーンの透明感強化（2026-07-28）
   ===================================================================== */
body.replica-amazinggrace { background: #FBFCFB; }

/* セクション地色を白〜淡グレーに統一（段差を出さない） */
body.replica-amazinggrace .rxbuilt .o-lead-pages.rxbuilt,
body.replica-amazinggrace .rxbuilt .rxplans-group,
body.replica-amazinggrace .o-lead-fair,
body.replica-amazinggrace .rxbest { background-color: #F4F5F4; }
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxshowcase__gallery,
body.replica-amazinggrace .rxbuilt .rxlead-contents { background-color: #F4F5F4; }

/* 見出し英字・小ラベル：グリーン */
body.replica-amazinggrace .rxbuilt .rxlead-en,
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-en { color: #F3A9C1 !important; }

/* CTA：白のシースリー＋グリーン細罫（ホバーでグリーン） */
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-link {
  background: rgba(255, 255, 255, 0.62) !important;
  border-color: rgba(243, 169, 193, 0.55) !important;
  color: #F3A9C1 !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-link:hover {
  background: rgba(243, 169, 193, 0.94) !important;
  border-color: #F3A9C1 !important;
  color: #fff !important;
}
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-link span { background: #F3A9C1 !important; }
body.replica-amazinggrace .rxbuilt .rxshowcase .rxlead-link:hover span { background: #fff !important; }

/* BEST RATE のガラスカード：より白く軽やかに */
body.replica-amazinggrace .rxbest__glass {
  background: rgba(255, 255, 255, 0.46);
  border-top-color: rgba(255, 255, 255, 0.7);
}

/* =====================================================================
   TOP：スマホ用 固定追尾CTAバー（SPのみ／2026-07-28）
   ===================================================================== */
.sp-fixbar { display: none; }

@media (max-width: 750px) {
  .sp-fixbar {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 9999;
    background: rgba(255, 255, 255, 0.92);
    -webkit-backdrop-filter: blur(12px) saturate(1.02);
    backdrop-filter: blur(12px) saturate(1.02);
    border-top: 1px solid rgba(243, 169, 193, 0.22);
    box-shadow: 0 -6px 24px -14px rgba(32, 46, 38, 0.28);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .sp-fixbar__item {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 4px; padding: 9px 2px 8px;
    text-decoration: none; color: #F3A9C1;
    -webkit-tap-highlight-color: transparent;
  }
  .sp-fixbar__item:not(:last-child) { border-right: 1px solid rgba(243, 169, 193, 0.16); }
  .sp-fixbar__icon { display: block; width: 21px; height: 21px; color: #F3A9C1; }
  .sp-fixbar__icon svg { width: 100%; height: 100%; display: block; }
  .sp-fixbar__label {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 9.5px; letter-spacing: 0.02em; line-height: 1.2; white-space: nowrap;
  }
  .sp-fixbar__item:active { background: rgba(243, 169, 193, 0.08); }

  /* 固定バーに隠れないようページ下端に余白を確保 */
  body.replica-amazinggrace { padding-bottom: 62px; }
}

/* TOP：メニューパネル下部：固定追尾バー分の余白（SP／2026-07-28） */
@media (max-width: 750px) {
  .site-menu__inner { padding-bottom: calc(84px + env(safe-area-inset-bottom)) !important; }
  .site-menu__cta { margin-bottom: 8px; }
}

/* =====================================================================
   フェアパーツ：両サイドの見切れを解消（2026-08-18）
   iframe内はカルーセル（前後のカードが左右にのぞく設計）のため、
   埋め込み枠を広げて overflow で切らないようにする
   ===================================================================== */
body.replica-amazinggrace .rx-embed--fair,
body.replica-amazinggrace .rxplans__embed.rx-embed--plan {
  width: 100% !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
body.replica-amazinggrace .rx-embed {
  padding: 0 !important;
  overflow: visible !important;
}

@media (max-width: 750px) {
  body.replica-amazinggrace .rx-embed { padding: 0 !important; }
}

/* BEST RATE：SPのみ下からスッと上がる（表示状態／2026-08-18） */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbest--in .rxbest__glass {
    opacity: 1;
    transform: translate(-50%, -50%) translateY(0);
  }
}
@media (max-width: 750px) and (prefers-reduced-motion: reduce) {
  body.replica-amazinggrace .rxbest__glass {
    opacity: 1;
    transform: translate(-50%, -50%) translateY(0);
    transition-duration: 0.01ms;
  }
}


/* =====================================================================
   Instagram セクション（Wedding Contents 直下／2026-08-18）
   投稿は外部ウィジェット（無料プラン）で自動反映。
   ウィジェット未設定時は #rxigFeed が空のままなので、
   プレースホルダー（3列グリッドの枠）で体裁を保つ。
   ===================================================================== */
body.replica-amazinggrace .rxig {
  background: #FBFCFB;
  padding: clamp(52px, 7vw, 108px) 0 clamp(44px, 6vw, 92px);
}
body.replica-amazinggrace .rxig__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 64px);
  box-sizing: border-box;
}
body.replica-amazinggrace .rxig__head { margin-bottom: clamp(22px, 3vw, 40px); }
body.replica-amazinggrace .rxig__en {
  margin: 0;
  font-family: "Cormorant Infant", "Cormorant Garamond", "Cinzel", serif;
  font-weight: 500;
  font-size: clamp(3rem, 2.6vw, 4.4rem); /* Party/Ceremony の見出しと同値 */
  letter-spacing: 0.08em;
  line-height: 1;
  font-weight: 400;
  color: #F3A9C1;
}
body.replica-amazinggrace .rxig__lead {
  margin: clamp(14px, 1.8vw, 22px) 0 0;
  max-width: 40em;
  font-size: clamp(1.17rem, 1.4vw, 1.26rem); /* 各セクションの詳細テキストと同じ */
  line-height: 2.18;
  letter-spacing: 0.06em;
  color: rgba(64, 71, 73, 0.8);
}

/* 投稿グリッド（ウィジェットが3列で出力される想定。未設定時は枠を表示） */
body.replica-amazinggrace .rxig__feed {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 1.4vw, 20px);
}
body.replica-amazinggrace .rxig__feed:empty { min-height: 320px; }
body.replica-amazinggrace .rxig__feed:empty::before {
  content: "";
  grid-column: 1 / -1;
  aspect-ratio: 3 / 2;
  background:
    linear-gradient(90deg, rgba(243, 169, 193,0.05) 0 33.33%, transparent 33.33%) ,
    linear-gradient(90deg, transparent 0 33.33%, rgba(243, 169, 193,0.08) 33.33% 66.66%, transparent 66.66%),
    linear-gradient(90deg, transparent 0 66.66%, rgba(243, 169, 193,0.05) 66.66%);
  border: 1px dashed rgba(243, 169, 193, 0.28);
}
/* ウィジェットが iframe / img を出力する場合の最適化 */
body.replica-amazinggrace .rxig__feed iframe { width: 100% !important; border: 0; display: block; }
body.replica-amazinggrace .rxig__feed img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 「@アカウント」リンク */
body.replica-amazinggrace .rxig__more { margin-top: clamp(20px, 2.6vw, 34px); text-align: center; }
body.replica-amazinggrace .rxig__more a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 13px 28px;
  border: 1px solid rgba(243, 169, 193, 0.55);
  background: rgba(255, 255, 255, 0.62);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  font-family: "Cormorant Infant", "Cinzel", serif;
  font-size: 0.9rem;
  letter-spacing: 0.12em;
  color: #F3A9C1;
  text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
body.replica-amazinggrace .rxig__more a span {
  width: 6px; height: 6px; border-radius: 50%;
  background: #F3A9C1; transition: transform 0.4s ease, background 0.4s ease;
}
body.replica-amazinggrace .rxig__more a:hover {
  background: rgba(243, 169, 193, 0.94); border-color: #F3A9C1; color: #fff;
}
body.replica-amazinggrace .rxig__more a:hover span { background: #fff; transform: translateX(4px); }

@media (max-width: 750px) {
  body.replica-amazinggrace .rxig { padding: 44px 0 36px; }
  body.replica-amazinggrace .rxig__inner { padding: 0 18px; }
  body.replica-amazinggrace .rxig__feed { gap: 8px; }
  body.replica-amazinggrace .rxig__lead { font-size: 1.05rem; line-height: 2.05; }
}

/* Instagram見出しをPartyと完全同値に（2026-08-18） */
body.replica-amazinggrace .rxbuilt .rxig__en {
  font-size: clamp(3.8rem, 3.25vw, 5.6rem) !important;
  letter-spacing: 0.1em !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  color: var(--amazinggrace-gold-deep) !important;
}
body.replica-amazinggrace .rxbuilt .rxig__lead {
  font-size: clamp(1.17rem, 1.4vw, 1.26rem) !important;
  letter-spacing: 0.06em !important;
  line-height: 2.18 !important;
}


/* Instagramボタンを他ボタンと同サイズに（2026-08-18） */
body.replica-amazinggrace .rxbuilt .rxig__more a {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif !important;
  font-size: clamp(1.14rem, 1.37vw, 1.23rem) !important;
  letter-spacing: 0.12em !important;
  padding: 15px 22px !important;
}


/* =====================================================================
   フッター：Googleマップ＋店舗情報（左マップ／右テキスト・縦幅コンパクト）
   2026-08-18
   ===================================================================== */
.site-footer__access {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(22px, 3vw, 48px);
  max-width: 1140px;
  margin: clamp(26px, 3.4vw, 44px) auto 0;
  padding: clamp(22px, 3vw, 34px) clamp(18px, 4vw, 40px) 0;
  box-sizing: border-box;
  border-top: 1px solid rgba(243, 169, 193, 0.18);
  text-align: left;
}
.site-footer__map {
  position: relative;
  height: clamp(210px, 21vw, 290px); /* 2まわり大きく */
  overflow: hidden;
  background: #EDEFEE;
}
.site-footer__map iframe { display: block; width: 100%; height: 100%; }

.site-footer__info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
}
.site-footer__info-name {
  margin: 0 0 14px;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(1.02rem, 1.25vw, 1.18rem);
  letter-spacing: 0.1em;
  color: #23282A;
  text-align: left;
}
.site-footer__info-dl {
  display: grid;
  grid-template-columns: 5.2em 1fr;
  gap: 8px 16px;
  margin: 0;
  width: 100%;
  font-size: clamp(0.8rem, 0.95vw, 0.88rem);
  line-height: 1.85;
  color: #4A5052;
  text-align: left;
}
.site-footer__info-dl dt {
  color: #F3A9C1;
  letter-spacing: 0.1em;
  text-align: left;
  white-space: nowrap;
}
.site-footer__info-dl dd { margin: 0; text-align: left; }
.site-footer__info-dl a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(243, 169, 193,0.4); }
.site-footer__info-dl a:hover { color: #F3A9C1; }

.site-footer__info-more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  align-self: flex-start;
  margin-top: 12px;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(0.72rem, 0.86vw, 0.8rem);
  letter-spacing: 0.1em;
  color: #F3A9C1;
  text-decoration: none;
}
.site-footer__info-more span {
  width: 5px; height: 5px; border-radius: 50%;
  background: #F3A9C1; transition: transform 0.35s ease;
}
.site-footer__info-more:hover span { transform: translateX(4px); }

@media (max-width: 750px) {
  .site-footer__access {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 18px 0;
    margin-top: 22px;
  }
  .site-footer__map { height: 150px; }
  .site-footer__info-dl { grid-template-columns: 4.2em 1fr; font-size: 0.7rem; }
}

/* =====================================================================
   ハンバーガーメニュー：CTA下のバナー（中央揃え／2026-08-19）
   ===================================================================== */
.site-menu__banner {
  margin: clamp(20px, 2.6vw, 32px) auto 0;
  text-align: center;
}
.site-menu__banner a {
  display: inline-block;
  max-width: min(420px, 100%);
  line-height: 0;
  transition: opacity 0.35s ease;
}
.site-menu__banner a:hover { opacity: 0.82; }
.site-menu__banner img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 750px) {
  .site-menu__banner { margin-top: 18px; }
  .site-menu__banner a { max-width: min(320px, 100%); }
}

/* =====================================================================
   フッター店舗情報：フォントをフッターメニューと統一＋右寄せ調整（2026-08-19）
   ===================================================================== */
.site-footer__access {
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr) !important;
  gap: clamp(30px, 4.5vw, 72px) !important; /* 情報側をもう少し右へ */
}
.site-footer__info { padding-left: clamp(0px, 2vw, 28px); }
.site-footer__info-name {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif !important;
  font-size: 13px !important;
  letter-spacing: 0.12em !important;
}
.site-footer__info-dl,
.site-footer__info-dl dt,
.site-footer__info-dl dd {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif !important;
  font-size: 12px !important;   /* フッターメニューの日本語と同サイズ */
  letter-spacing: 0.12em !important;
  line-height: 1.9 !important;
}
.site-footer__info-more {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
}

/* ハンバーガーメニューのバナー：PCは一回り大きく（SPは下のメディアクエリで維持） */
.site-menu__banner a { max-width: min(420px, 100%) !important; }

@media (max-width: 750px) {
  .site-footer__info { padding-left: 0; }
  .site-footer__info-dl,
  .site-footer__info-dl dt,
  .site-footer__info-dl dd { font-size: 11px !important; }
  .site-menu__banner a { max-width: min(300px, 100%) !important; }
}

/* ヘッダーのフェア予約ボタン：ナビが増えても2行に折り返さない */
.site-header__actions { flex: none !important; }
.site-header__fair {
  white-space: nowrap !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: max-content !important;
}
.site-header__nav { min-width: 0; }

/* ナビが11項目になったため、1400px未満では字間・余白を詰めて1列に収める */
@media (min-width: 1161px) and (max-width: 1400px) {
  .site-header { padding-left: 22px !important; padding-right: 22px !important; }
  .site-header__nav { margin-right: 14px !important; }
  .site-header__nav a { padding: 0 7px !important; }
  .site-header__nav a .en { font-size: 11.4px !important; letter-spacing: 0.05em !important; }
  .site-header__nav a .jp { font-size: 8.4px !important; letter-spacing: 0.02em !important; }
  .site-header__fair { padding: 0 13px !important; font-size: 11px !important; letter-spacing: 0.08em !important; }
  .site-header__actions { gap: 12px !important; }
}

/* スマホ：フッターの店舗情報とマップを縦並びにする（情報が上／マップが下）
   ※ 上位で grid-template-columns に !important があるため打ち消す */
@media (max-width: 750px) {
  .site-footer__access {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    align-items: start;
  }
  .site-footer__info { order: 1; padding-left: 0 !important; }
  .site-footer__map  { order: 2; height: 170px; }
}

/* PCのみ表示するインライン要素（ハンバーガーメニューの中黒など）
   スマホでは br.sp で改行するため中黒を隠す */
.pconly { display: inline; }
@media (max-width: 750px) { .pconly { display: none; } }

/* =====================================================================
   ヘッダー／ハンバーガーメニュー：文字色をグレー系に統一
   （CTAボタン「フェア予約」はボタンのためグリーンのまま）
   ===================================================================== */
/* ヘッダー横並びナビ */
.site-header__nav a { color: #4A5052 !important; }
.site-header__nav a .jp { color: rgba(74, 80, 82, 0.72) !important; }
.site-header__nav a:hover,
.site-header__nav a.is-current { color: #23282A !important; }
.site-header__nav a:hover .jp,
.site-header__nav a.is-current .jp { color: #23282A !important; }

/* パネル内見出し「Menu」／ハンバーガー横の menu ラベル */
.site-menu__inner::before { color: #6E7B72 !important; }
.site-header__menu-label { color: #6E7B72 !important; }

/* カテゴリー見出し（婚礼／宴会／会社／その他） */
.site-menu__cat-jp { color: #3A403C !important; }
.site-menu__cat-en { color: rgba(74, 80, 82, 0.66) !important; }
.site-menu__list .site-menu__cat { border-bottom-color: rgba(35, 40, 42, 0.16) !important; }

/* メニュー項目（英字＋カタカナ） */
.site-menu__list .en { color: #3A403C !important; }
.site-menu__list .jp { color: #6E7B72 !important; opacity: 1 !important; }
.site-menu__list a:hover .en,
.site-menu__list a.is-current .en { color: #23282A !important; }
.site-menu__list .en::after { background: #F3A9C1 !important; }

/* =====================================================================
   ハンバーガーメニュー：MENU見出しの拡大とCTAボタンの文字サイズ調整
   ===================================================================== */
/* ① 見出し「Menu」を2サイズ大きく（1.05rem → 1.45rem） */
.site-menu__inner::before { font-size: 1.45rem !important; }

/* ⑦ CTAボタンの文字が小さいのはPCのみ。スマホは現状維持 */
@media (min-width: 751px) {
  .site-menu__cta .site-btn {
    font-size: 1rem !important;
    padding: 15px 20px !important;
    letter-spacing: 0.08em;
  }
}

@media (max-width: 750px) {
  /* 見出しはスマホも合わせて拡大（0.95rem → 1.25rem） */
  .site-menu__inner::before { font-size: 1.25rem !important; }
}

/* =====================================================================
   ハンバーガーメニュー：MENU見出し／CTAボタン／上部余白の調整（2026-08-28）
   ===================================================================== */
/* 見出し「Menu」をメニュー名（21px）より一回り大きく。上に余白を足して位置を下げる */
.site-menu__inner::before {
  font-size: 1.75rem !important;
  margin-top: 26px !important;
  margin-bottom: 30px !important;
}
/* パネル上部の余白も少し広げる */
.site-menu__inner { padding-top: 78px !important; }

/* CTAボタン：ボタンの大きさは元のまま、文字だけ 21px から2サイズ小さく（16px） */
@media (min-width: 751px) {
  .site-menu__cta .site-btn {
    font-size: 16px !important;
    padding: 13px 18px !important;
    letter-spacing: 0.08em;
  }
}

@media (max-width: 750px) {
  .site-menu__inner::before { font-size: 1.45rem !important; margin-top: 16px !important; margin-bottom: 22px !important; }
  .site-menu__inner { padding-top: 56px !important; }
  /* スマホのCTAは指摘なしのため従来サイズを維持 */
  .site-menu__cta .site-btn { font-size: 0.78rem !important; padding: 12px 8px !important; letter-spacing: normal; }
}

/* フッターのCTAボタン：フッターメニューの文字サイズ（12px／SP 11px）に揃える */
.site-footer__actions .site-btn { font-size: 12px !important; letter-spacing: 0.12em !important; }
@media (max-width: 750px) {
  .site-footer__actions .site-btn { font-size: 11px !important; }
}

/* ハンバーガーメニューを開いている間だけ、ヘッダー帯を少しグレーがかった色にする
   （通常時のヘッダーはヒーロー画像に重なるため、従来の淡い背景のまま） */
body.menu-open .site-header {
  background: linear-gradient(180deg, rgba(233, 236, 234, 0.98) 0%, rgba(238, 241, 239, 0.96) 100%) !important;
  box-shadow: 0 1px 0 rgba(35, 40, 42, 0.10) !important;
}
/* 背景が少し濃くなる分、薄かった menu ラベルを読みやすい濃さに */
body.menu-open .site-header__menu-label { color: #56605A !important; }

/* ハンバーガーメニュー：スマホで「アメイジンググレイス／カフェ」の2行に固定する
   （この項目だけ自動折り返しを止め、<br class="sp"> の位置でのみ改行させる）
   ※ 他の項目は従来どおり自動で折り返す */
@media (max-width: 750px) {
  .site-menu__list a[href*="patisserie.amazinggrace"] .jp { white-space: nowrap; }
}

/* =====================================================================
   Instagram（SnapWidget 埋め込み）2026-09-10
   1枚のiframeで表示するため、プレースホルダー用の3列グリッドは解除。
   元タグは 765×510px 固定なので、幅100%＋同じ比率(3:2)で可変にする。
   ===================================================================== */
body.replica-amazinggrace .rxig__feed:has(iframe) { display: block; }
body.replica-amazinggrace .rxig__feed iframe.snapwidget-widget {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 765 / 510;
  display: block;
  border: 0;
  overflow: hidden;
}

/* =====================================================================
   参考サイト（sweet-concept）のボタン配色を踏襲（2026-09-10）
   TOPの「◯◯について見る」系リンクは、白地＋黒枠・黒文字／
   マウスオンで黒背景＋白文字に反転する。
   ===================================================================== */
body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxlead-link,
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxlead-link,
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxlead-link,
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxlead-link,
body.replica-amazinggrace .rxbuilt .rxig__more a,
body.replica-amazinggrace .o-lead-information .c-btn a {
  color: #23282A !important;
  border-color: #23282A !important;
  background: #fff !important;
}
body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxlead-link span,
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxlead-link span,
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxlead-link span,
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxlead-link span,
body.replica-amazinggrace .rxbuilt .rxig__more a span {
  background: #23282A !important;
}
body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxlead-link:hover,
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxlead-link:hover,
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxlead-link:hover,
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxlead-link:hover,
body.replica-amazinggrace .rxbuilt .rxig__more a:hover,
body.replica-amazinggrace .o-lead-information .c-btn a:hover {
  color: #fff !important;
  border-color: #23282A !important;
  background: #23282A !important;
}
body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxlead-link:hover span,
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxlead-link:hover span,
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxlead-link:hover span,
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxlead-link:hover span,
body.replica-amazinggrace .rxbuilt .rxig__more a:hover span {
  background: #fff !important;
}

/* ハンバーガーメニューのCTA：フッターのCTAと同じ配色に揃える
   （白地＋ピンクの細枠・ピンク文字／2026-09-15） */
.site-menu__cta .site-btn {
  color: #F3A9C1 !important;
  border-color: rgba(243, 169, 193, 0.72) !important;
  background: rgba(251, 252, 251, 0.5) !important;
}
.site-menu__cta .site-btn span { background: #F3A9C1 !important; }
.site-menu__cta .site-btn:hover {
  color: #fff !important;
  border-color: #F3A9C1 !important;
  background: #F3A9C1 !important;
}
.site-menu__cta .site-btn:hover span { background: #fff !important; }

/* ① スマホのガーデン透かしを「Garden Wedding」に変更（2026-09-11）
   1文字ずつ重ねる組みから、2語を2行で見せる形に変更。
   語数が増えるため文字サイズを 33vw → 14vw に調整する。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxstay-m__sw {
    top: -16vw !important;
    right: 4px !important;
    font-size: 14vw !important;
    line-height: 0.95 !important;
    text-align: right !important;
    letter-spacing: 0.01em !important;
  }
  body.replica-amazinggrace .rxbuilt .rxstay-m__sw i {
    display: block !important;
    margin-left: 0 !important;
    transform: none !important;
  }
}

/* =====================================================================
   スマホ版TOPの調整（2026-09-11）
   ===================================================================== */
@media (max-width: 750px) {
  /* ② チャペル／ゲストハウスの写真をPCと同じ自動フェードスライドに */
  body.replica-amazinggrace .rxbuilt .rxcer-m__hero--slider,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider {
    position: relative !important;
    overflow: hidden !important;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__hero--slider .rxsp-slide,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider .rxsp-slide {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    opacity: 0;
    animation: rxFade 12s ease-in-out infinite !important;
  }
  /* 3枚とも枠いっぱいに重ねる（1枚目だけ高さが変わる不揃いを防ぐ）。
     枠の高さは元の指定（チャペル104vw／パーティー96vw）をそのまま使う */
  body.replica-amazinggrace .rxbuilt .rxcer-m__hero--slider .rxsp-slide:nth-child(1),
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider .rxsp-slide:nth-child(1) {
    animation-delay: 0s !important;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__hero--slider .rxsp-slide:nth-child(2),
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider .rxsp-slide:nth-child(2) { animation-delay: -8s !important; }
  body.replica-amazinggrace .rxbuilt .rxcer-m__hero--slider .rxsp-slide:nth-child(3),
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider .rxsp-slide:nth-child(3) { animation-delay: -4s !important; }
  /* ゲストハウス側はチャペルと少しずらす */
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider .rxsp-slide:nth-child(1) { animation-delay: -2s !important; }
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider .rxsp-slide:nth-child(2) { animation-delay: -10s !important; }
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider .rxsp-slide:nth-child(3) { animation-delay: -6s !important; }
  body.replica-amazinggrace .rxbuilt .rxcer-m__hero--slider .rxsp-slide img,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph1--slider .rxsp-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
  }

  /* ④ Wedding Contents の見出しを読みやすく：文字の背後に白い透かしを敷く */
  body.replica-amazinggrace .rxbuilt .rxwc__head {
    position: relative;
    z-index: 2;
    padding: 18px 16px;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.72);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
  }
}

/* ③ ファーストビュー：スクロール時のズーム（拡大→等倍）を無効化 */
.replica-hero-photo,
.replica-hero-photo.-active {
  transform: none !important;
  transition: opacity 1.2s ease !important;
}

/* ⑤ スマホ下部の固定ナビ：文字・アイコンを黒系にして視認性を上げる（2026-09-11） */
@media (max-width: 750px) {
  .sp-fixbar__item { color: #23282A !important; }
  .sp-fixbar__icon { color: #23282A !important; }
  .sp-fixbar__label { color: #23282A !important; }
  .sp-fixbar__item:not(:last-child) { border-right-color: rgba(35, 40, 42, 0.14) !important; }
  .sp-fixbar__item:active { background: rgba(35, 40, 42, 0.06) !important; }
}

/* ⑧ スマホ：ファーストビューCTAと新着情報ボタンの文字を大きく（2026-09-11） */
@media (max-width: 750px) {
  body.replica-amazinggrace .replica-hero-action {
    font-size: 14.5px !important;
    letter-spacing: 0.1em !important;
    padding: 14px 22px !important;
  }
  body.replica-amazinggrace .o-lead-information .c-btn a {
    font-size: 14.5px !important;
    letter-spacing: 0.1em !important;
  }
}

/* =====================================================================
   ハンバーガーメニュー：参考サイト（シャルマンシーナ東京）の仕様を踏襲
   ・メニュー名は日本語のみ（英字は非表示）
   ・1項目＝「日本語名 ＋ 右端の丸い矢印ボタン」＋下に細い区切り線
   ・ジャンル見出し（婚礼／宴会／会社概要／その他）はアクセント色で見出しと分かる体裁
   （2026-09-11）
   ===================================================================== */
/* 英字は不要 */
.site-menu__list a .en { display: none !important; }

/* 1項目を横並び（名前＋右端の丸ボタン）に */
.site-menu__list li {
  border-bottom: 1px solid rgba(35, 40, 42, 0.12) !important;
}
.site-menu__list .site-menu__cat { border-bottom: 0 !important; }
.site-menu__list a {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 15px 2px !important;
  text-align: left !important;
}
.site-menu__list a .jp {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: 14px !important;
  letter-spacing: 0.08em !important;
  line-height: 1.5 !important;
  color: #23282A !important;
  opacity: 1 !important;
}
/* 右端の丸い矢印ボタン */
.site-menu__list a::after {
  content: "" !important;
  flex: 0 0 auto !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  background-color: #F3A9C1 !important;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 12px 12px !important;
  transition: transform 0.3s ease, background-color 0.3s ease !important;
}
.site-menu__list a:hover::after { transform: translateX(3px) !important; }
.site-menu__list a:hover .jp { color: #23282A !important; }
/* 下線アニメーションは行区切り線と競合するため無効化 */
.site-menu__list .en::after { display: none !important; }

/* ジャンル見出し：アクセント色で「項目」だと分かる体裁に */
.site-menu__list .site-menu__cat {
  display: flex !important;
  align-items: baseline !important;
  gap: 10px !important;
  margin: 26px 0 2px !important;
  padding: 0 0 6px !important;
}
.site-menu__cat-jp {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  color: #E38BA9 !important;
}
.site-menu__cat-en {
  font-family: "Cinzel", "Cormorant Infant", serif !important;
  font-size: 10px !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  color: #E38BA9 !important;
  opacity: 0.85 !important;
}

@media (max-width: 750px) {
  .site-menu__list a { padding: 12px 2px !important; gap: 8px !important; }
  .site-menu__list a .jp { font-size: 12.5px !important; letter-spacing: 0.04em !important; }
  .site-menu__list a::after { width: 18px !important; height: 18px !important; background-size: 10px 10px !important; }
  .site-menu__cat-jp { font-size: 13.5px !important; }
  .site-menu__cat-en { font-size: 9px !important; }
}

/* スマホ：チャペル／披露宴会場の右側サブ画像は非表示（2026-09-11）
   メイン写真は自動スライドに変わったため、重なる帯状の写真は不要 */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxcer-m__strip,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph2,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ph3 {
    display: none !important;
  }
}

/* =====================================================================
   ハンバーガーメニュー：参考サイトの「右寄せパネル」仕様を踏襲（2026-09-11）
   ・全画面ではなく、画面右側に幅 約52%（最大760px）のパネルで表示
   ・背景は白。パネル外は薄い暗幕にして背後のページが見える
   ・パネルが狭くなる分、列数を3→2に、文字サイズも小さくする
   ===================================================================== */
.site-menu {
  justify-content: flex-end !important;
  align-items: stretch !important;
  background: rgba(35, 40, 42, 0.32) !important;
  transform: none !important;
}
.site-menu__inner {
  width: min(760px, 92vw) !important;
  max-width: none !important;
  height: 100% !important;
  margin: 0 !important;
  overflow-y: auto !important;
  background: #fff !important;
  box-shadow: -18px 0 48px -28px rgba(35, 40, 42, 0.45) !important;
  padding: 56px clamp(24px, 3.4vw, 46px) 48px !important;
  box-sizing: border-box !important;
}
/* パネル幅に合わせて2列に */
.site-menu__list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: clamp(20px, 2.6vw, 40px) !important;
}
/* 文字は参考サイトに合わせて小さく（項目13px） */
.site-menu__inner::before { font-size: 1.2rem !important; margin-top: 0 !important; margin-bottom: 22px !important; }
.site-menu__list a { padding: 12px 2px !important; }
.site-menu__list a .jp { font-size: 13px !important; letter-spacing: 0.06em !important; }
.site-menu__list a::after { width: 19px !important; height: 19px !important; background-size: 11px 11px !important; }
.site-menu__cat-jp { font-size: 14px !important; }
.site-menu__cat-en { font-size: 9.5px !important; }
.site-menu__list .site-menu__cat { margin: 20px 0 2px !important; }
/* CTA・バナーもパネル幅に収める */
.site-menu__cta { width: 100% !important; }
.site-menu__cta .site-btn { font-size: 13px !important; padding: 11px 14px !important; }
.site-menu__banner a { max-width: min(300px, 100%) !important; }

@media (max-width: 750px) {
  /* スマホは画面が狭いため従来どおり全面表示に戻す */
  .site-menu { background: linear-gradient(180deg, #FBFCFB 0%, #F4F5F4 100%) !important; justify-content: center !important; }
  .site-menu__inner {
    width: 94vw !important;
    height: auto !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 56px 0 48px !important;
  }
  .site-menu__list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .site-menu__cta .site-btn { font-size: 0.78rem !important; padding: 12px 8px !important; }
}

/* Wedding Contents 見出し：背景写真と重なって読みづらいため、
   文字の背後に白いベールを敷いて可読性を確保する（PC・スマホ共通／2026-09-11） */
body.replica-amazinggrace .rxbuilt .rxwc__top {
  position: relative;
  z-index: 2;
}
body.replica-amazinggrace .rxbuilt .rxwc__top::before {
  content: "";
  position: absolute;
  inset: -12px -16px;
  z-index: -1;
  border-radius: 3px;
  background: radial-gradient(110% 110% at 50% 50%, rgba(255,255,255,0.88) 0%, rgba(255,255,255,0.78) 60%, rgba(255,255,255,0) 100%);
  pointer-events: none;
}
/* リード文は白ベールの上で読めるよう、文字色を濃くする */
body.replica-amazinggrace .rxbuilt .rxwc__lead {
  color: #3A403C !important;
  position: relative;
  z-index: 2;
}
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxwc__top::before { inset: -8px -10px; }
}

/* =====================================================================
   ハンバーガーメニュー：スマホ表示を参考サイトに合わせる（2026-09-11）
   ・2列（従来3列）／白背景の全面パネル／項目12px・行の高さゆったり
   また、見出し「Menu」の位置が上に寄りすぎていたためPC・SPとも下げる。
   ===================================================================== */
/* 見出し「Menu」の位置：上の余白を広げて詰まりを解消 */
.site-menu__inner { padding-top: 92px !important; }
.site-menu__inner::before { margin-top: 8px !important; margin-bottom: 28px !important; }

@media (max-width: 750px) {
  .site-menu__inner { padding-top: 84px !important; padding-left: 20px !important; padding-right: 20px !important; }
  .site-menu__inner::before { margin-top: 4px !important; margin-bottom: 20px !important; }

  /* 2列に */
  .site-menu__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 18px !important;
  }
  /* 参考サイトに合わせた項目の体裁 */
  .site-menu__list a { padding: 16px 2px !important; gap: 10px !important; }
  .site-menu__list a .jp { font-size: 12px !important; line-height: 1.6 !important; letter-spacing: 0.04em !important; }
  .site-menu__list a::after { width: 20px !important; height: 20px !important; background-size: 11px 11px !important; }
  .site-menu__cat-jp { font-size: 13.5px !important; }
  .site-menu__cat-en { font-size: 9px !important; }
  .site-menu__list .site-menu__cat { margin: 22px 0 2px !important; }
}

/* スマホ：ファーストビューがスクロール中にズームして見える問題への対処（2026-09-11）
   原因は高さ指定が 100svh（アドレスバーが隠れると高さが変わる）のため。
   スクロール中も高さが変わらない 100lvh に固定し、object-fit の切り抜きが
   再計算されないようにする。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-mainvisual {
    height: 100vh;   /* 古い端末向けフォールバック */
    height: 100lvh;  /* アドレスバーの出入りで高さが変化しない */
  }
  body.replica-amazinggrace .replica-hero-video,
  body.replica-amazinggrace .replica-hero-photo,
  body.replica-amazinggrace .replica-hero-photo.-active {
    transform: none !important;
    transition: opacity 1.2s ease !important;
  }
}

/* Wedding Contents：背景写真を外したので、見出し・リード文を一回り小さくして
   白ベールも小さく収める（2026-09-11） */
body.replica-amazinggrace .rxbuilt .rxwc__ttl {
  font-size: clamp(38px, 4.6vw, 74px) !important;
}
body.replica-amazinggrace .rxbuilt .rxwc__lead {
  font-size: clamp(12.5px, 1vw, 14px) !important;
  line-height: 1.95 !important;
}
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxwc__ttl {
    font-size: clamp(38px, 12vw, 62px) !important;
    text-shadow: none !important;
  }
  body.replica-amazinggrace .rxbuilt .rxwc__lead {
    font-size: 12px !important;
    line-height: 1.9 !important;
    color: #3A403C !important;
  }
}

/* =====================================================================
   スマホ：ファーストビュー周りのアニメーションを一切かけない（2026-09-11）
   スクロールに連動して動画やボタンが動く／浮き上がる印象をなくす。
   ===================================================================== */
@media (max-width: 750px) {
  /* 動き（アニメーション・トランジション）だけを止める。
     transform は中央寄せ（left:50% + translateX(-50%)）に使われているため触らない */
  body.replica-amazinggrace .o-mainvisual,
  body.replica-amazinggrace .o-mainvisual *,
  body.replica-amazinggrace .replica-hero-video-wrap,
  body.replica-amazinggrace .replica-hero-video,
  body.replica-amazinggrace .replica-hero-photo,
  body.replica-amazinggrace .replica-hero-actions,
  body.replica-amazinggrace .replica-hero-action,
  body.replica-amazinggrace .replica-hero-scroll,
  body.replica-amazinggrace .o-mainvisual__ttl,
  body.replica-amazinggrace .c-box-pickup.-middle {
    animation: none !important;
    transition: none !important;
    will-change: auto !important;
  }
  /* 拡大・移動の演出が入る要素だけ、個別に transform を打ち消す */
  body.replica-amazinggrace .replica-hero-video,
  body.replica-amazinggrace .replica-hero-photo,
  body.replica-amazinggrace .replica-hero-photo.-active {
    transform: none !important;
  }
  /* スクロール量に応じて位置や不透明度が変わる指定も打ち消す */
  body.replica-amazinggrace.replica-concept-active .c-box-pickup.-middle,
  body.replica-amazinggrace.replica-after-hero .c-box-pickup.-middle {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  /* ヒーローは固定せず、そのまま流れて上へ抜ける（sticky による見かけの動きを止める） */
  body.replica-amazinggrace .o-mainvisual {
    position: relative !important;
    top: auto !important;
  }
}

/* Wedding Contents：背景写真を外したことで上部に空白が目立つため、
   セクション上の余白と内側の上パディングを詰める（2026-09-11） */
body.replica-amazinggrace .rxbuilt .rxwc {
  margin-top: clamp(36px, 4.4vw, 72px) !important;
}
body.replica-amazinggrace .rxbuilt .rxwc__inner {
  padding-top: clamp(28px, 3.4vw, 48px) !important;
}
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxwc {
    margin-top: clamp(18px, 5vw, 32px) !important;
  }
  body.replica-amazinggrace .rxbuilt .rxwc__inner {
    padding-top: clamp(16px, 4.5vw, 28px) !important;
  }
  body.replica-amazinggrace .rxbuilt .rxwc__top {
    margin-bottom: clamp(20px, 6vw, 36px) !important;
  }
}

/* ハンバーガーメニューのCTAボタン4つ：スマホで文字が小さいため、
   メニュー項目（12px）と同じサイズに揃える（2026-09-11） */
@media (max-width: 750px) {
  .site-menu__cta .site-btn {
    font-size: 12px !important;
    letter-spacing: 0.06em !important;
    padding: 13px 10px !important;
  }
}

/* =====================================================================
   スマホ：ファーストビューの動画を完全に固定する（2026-09-11）
   「下部がふわっと浮き上がる／ズームする」原因は .o-mainvisual::before の
   スクロール連動オーバーレイ（translateY(34px)→0＋blur が効く演出）だったため、
   スマホでは演出そのものを出さず、動画も一切動かさない。
   ===================================================================== */
@media (max-width: 750px) {
  /* スクロールで浮き上がる白いベールを出さない */
  body.replica-amazinggrace .o-mainvisual::before,
  body.replica-amazinggrace.replica-concept-active .o-mainvisual::before,
  body.replica-amazinggrace.replica-after-hero .o-mainvisual::before {
    opacity: 0 !important;
    transform: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    transition: none !important;
  }

  /* 動画・写真は枠いっぱいに固定し、拡大・移動を一切しない */
  body.replica-amazinggrace .replica-hero-video-wrap {
    position: absolute !important;
    inset: 0 !important;
    overflow: hidden !important;
  }
  body.replica-amazinggrace .replica-hero-video,
  body.replica-amazinggrace .replica-hero-photo {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  /* ヒーロー自体の高さもスクロール中に変化させない */
  body.replica-amazinggrace .o-mainvisual {
    position: relative !important;
    top: auto !important;
    height: 100vh;
    height: 100lvh !important;
    min-height: 0 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* スマホ：ファーストビュー直後のコンセプトの「せり上がり＋拡大」演出を止める
   （動画の下側が動いて見える原因のひとつ／2026-09-11） */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-concept {
    --concept-panel-y: 0px !important;
    --concept-media-y: 0px !important;
    --concept-title-y: 0px !important;
    --concept-scale: 1 !important;
    --concept-opacity: 1 !important;
    --wm-amazinggrace-y: 0px !important;
    --concept-backdrop-blur: 0px !important;
  }
}

/* =====================================================================
   スマホ：ファーストビューは「動画・テキスト・ボタンが一体で」動く（2026-09-11）
   動画だけを position:fixed にすると、スクロールするテキスト／CTAとの間に
   ズレが生じて「引っぱられる」動きに見えるため、全て同じ箱の中に収める。
   箱の高さは 100lvh（アドレスバーの開閉で変化しない単位）で固定し、
   切り抜きの再計算によるズームも起こさない。
   ===================================================================== */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-mainvisual {
    position: relative !important;
    top: auto !important;
    height: 100vh;            /* 古い端末向けフォールバック */
    height: 100lvh !important; /* スクロール中も高さが変わらない */
    min-height: 0 !important;
    background-color: #191C1B !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  /* 動画・写真は箱いっぱいに固定（箱ごと一緒にスクロールする） */
  body.replica-amazinggrace .replica-hero-video-wrap {
    position: absolute !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    overflow: hidden !important;
  }
  body.replica-amazinggrace .replica-hero-video,
  body.replica-amazinggrace .replica-hero-photo {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* =====================================================================
   スマホ：ファーストビューの「スクロール連動ズーム」を完全に停止（2026-09-11）
   JS が --hero-exit（0→1）を更新し、CSS 側で
   .replica-hero-video-wrap を scale(1 → 1.06) していたのがズームの正体。
   スマホでは倍率を固定し、下端のフェードも動かさない。
   ===================================================================== */
@media (max-width: 750px) {
  body.replica-amazinggrace .replica-hero-video-wrap {
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  body.replica-amazinggrace .replica-hero-video-wrap::after {
    opacity: 0 !important;
    transition: none !important;
  }
}

/* =====================================================================
   スマホ：ファーストビューのズームを根本から止める（2026-09-11 最終）
   これまで個別の transform を打ち消してきたが、JS が body に
   --hero-exit / --hero-scale / --hero-dim をスクロール量に応じて
   インラインで書き込み、複数の指定がそれを参照して拡大していた。
   CSS の !important はインラインの custom property より優先されるため、
   変数そのものを固定値に縛り、あわせて拡大・ぼかしも無効化する。
   ===================================================================== */
@media (max-width: 750px) {
  body.replica-amazinggrace {
    --hero-exit: 0 !important;
    --hero-scale: 1 !important;
    --hero-dim: 0 !important;
  }
  body.replica-amazinggrace .o-mainvisual .replica-hero-video-wrap,
  body.replica-amazinggrace .o-mainvisual .replica-hero-video,
  body.replica-amazinggrace .o-mainvisual .replica-hero-photo,
  body.replica-amazinggrace .replica-hero-photo.-active,
  body.replica-amazinggrace.replica-concept-active .replica-hero-photo,
  body.replica-amazinggrace.replica-concept-active .replica-hero-video,
  body.replica-amazinggrace.replica-concept-active .replica-hero-video-wrap,
  body.replica-amazinggrace.replica-after-hero .replica-hero-photo,
  body.replica-amazinggrace.replica-after-hero .replica-hero-video,
  body.replica-amazinggrace.replica-after-hero .replica-hero-video-wrap {
    transform: none !important;
    scale: none !important;
    filter: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* ハンバーガーメニュー：折り返しの有無で行の高さが変わらないよう統一（2026-09-15）
   2行ぶんの高さをあらかじめ確保し、文字と矢印は上下中央に置く。
   これにより左右の列で区切り線の位置が揃う。 */
@media (max-width: 750px) {
  .site-menu__list a {
    /* 参考サイトと同じ行の高さ(53px)。上下の余白を詰めることで、
       2行の項目（19.2px×2＝38.4px）もこの高さに収まり、全行が揃う */
    min-height: 53px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    align-items: center !important;
  }
  .site-menu__list a .jp {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .site-menu__list a::after { align-self: center !important; }
}
/* PCも同様に、折り返しても行の高さを揃える */
@media (min-width: 751px) {
  .site-menu__list a {
    min-height: 56px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    align-items: center !important;
  }
  .site-menu__list a .jp { flex: 1 1 auto !important; min-width: 0 !important; }
}

/* ============================================================
   SP TOP：挙式会場／披露宴会場のリード文を指定の位置で改行する。
   .jpline を1行＝ブロックとして扱い、行内は .jphr（文節）で
   安全に折り返す。行が幅に収まらない端末では文節境界で折り返す。
   ============================================================ */
body.replica-amazinggrace .jpline {
  display: block;
}

/* SP：挙式会場／披露宴会場は横の画像ストリップを非表示にしているため、
   そのために確保されていた余白（右パディング／グリッド2カラム目）を解放し、
   本文を本来の幅いっぱいに表示する。指定の改行位置が1行に収まるようにするため。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxcer-m__body { padding-right: 22px; }
  body.replica-amazinggrace .rxbuilt .rxparty-m__content { grid-template-columns: 1fr; }
  body.replica-amazinggrace .rxbuilt .rxparty-m__side { display: none; }
}

/* PC：TOP「新着情報を見る」ボタンの文字が小さいため、
   「Instagramを見る」ボタンと同じサイズ指定にそろえる（スマホは従来どおり）。 */
@media (min-width: 751px) {
  body.replica-amazinggrace .o-lead-information .c-btn a,
  body.replica-amazinggrace .rxbuilt .o-lead-information .c-btn a {
    font-size: clamp(1.14rem, 1.37vw, 1.23rem) !important;
  }
}

/* TOP新着情報：カードは「サムネイル＋タイトル」のみ表示する（日付・本文は非表示）。 */
body.replica-amazinggrace .o-lead-information .c-item-information__date,
body.replica-amazinggrace .o-lead-information .c-item-information .c-desc {
  display: none !important;
}

/* ===========================================================================
   2026-10-09 修正稿対応（TOPページ）
   =========================================================================== */

/* ① スマホ：ヘッダーの「フェア予約」ボタンをTOPも下層ページと同じ大きさにする。
   TOPは html のフォントサイズが10px（下層は16px）のため、rem指定だと
   同じ記述でも文字が小さくなってしまう。TOPだけpxで指定して揃える。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .site-header__fair {
    height: 30px !important;
    min-width: 92px !important;
    padding: 0 12px !important;
  }
  body.replica-amazinggrace .site-header__fair::before {
    font-size: 12.8px !important;
    letter-spacing: 0.06em !important;
  }
}
@media (max-width: 400px) {
  body.replica-amazinggrace .site-header__fair {
    min-width: 84px !important;
    padding: 0 10px !important;
  }
  body.replica-amazinggrace .site-header__fair::before { font-size: 11.84px !important; }
}

/* ③ TOPのCONCEPT見出しのカタカナを、他セクション（ブライダルフェア等）と
   同じグレーに合わせる。 */
body.replica-amazinggrace .o-lead-concept .c-ttl-section__ja {
  color: rgba(70, 77, 79, 0.72) !important;
}

/* ⑤ プラン見出しに追加したカタカナ。ブライダルフェアのカタカナと同じ体裁。 */
body.replica-amazinggrace .rxbuilt .rxplans__jp {
  margin-top: 10px;
  font-family: "Roboto", "Yu Gothic", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  color: rgba(70, 77, 79, 0.72);
  text-align: center;
}

/* ④ ブライダルフェア見出しと、パッとコネクトの埋め込みパーツの間が空きすぎるため詰める。
   埋め込み枠の中にも余白があり、そちらはiframe内のためCSSで触れない。
   そこで、こちら側の余白を詰めたうえで枠自体を少し引き上げて吸収する。 */
body.replica-amazinggrace .o-lead-fair .c-ttl-section { margin-bottom: 4px !important; }
body.replica-amazinggrace .rx-embed--fair { margin-top: -28px !important; }

/* スマホ：コンセプトの透かし文字（AMAZING / GRACE）のサイズ上限を px で固定する。
   rem で指定していると端末側の文字サイズ設定の影響を受けて大きくなり、
   画面の外にはみ出して切れる。vw と px だけで決まるようにして取り切れを防ぐ。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::before {
    font-size: min(16vw, 62px) !important;
  }
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal > .l-inner::after {
    font-size: min(18vw, 68px) !important;
  }
}

/* スマホ：コンセプトの透かし文字「GRACE」が実機で下側に切れる問題の対処。
   セクションは高さを 100svh（＝ブラウザのツールバーを含めた表示領域）で決めているが、
   iPhoneの実機では 100svh が画面の高さより小さくなる（PCの検証ツールでは画面の高さと
   同じになるため再現しない）。その結果セクションに余白がなくなり、下にはみ出して
   配置している透かし文字が overflow:hidden で切り取られていた。
   セクションの下に余白を確保して、はみ出し分を内側に収める。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .o-lead-concept.replica-concept-reveal {
    padding-bottom: 72px !important;
  }
}

/* ① TOPの新着情報：サムネイルを 3:2 の横長で表示する。
   WordPress側の画像は縦横比がまちまちなので、枠の比率を固定して
   はみ出す部分は中央基準で切り取る（枠内の figure が cover 表示）。 */
body.replica-amazinggrace .o-lead-information .c-item-information__img {
  height: auto !important;
  aspect-ratio: 3 / 2;
}

/* PC：TOPの新着情報は「左から順に並べる」。
   これまでは両端揃え（space-between）だったため、記事が2件だと
   左端と右端に離れて中央が大きく空いてしまっていた。
   すき間は、4件がちょうど収まる幅（240px×4＝960px）の残りを3等分した値。
   記事が何件でも、4件並んだときと同じ間隔で左から詰まる。 */
@media (min-width: 751px) {
  body.replica-amazinggrace .o-lead-information__list {
    justify-content: flex-start !important;
    gap: max(24px, calc((100% - 960px) / 3)) !important;
  }
}

/* ===========================================================================
   2026-10-15 TOPページ修正
   =========================================================================== */

/* ① 「選ばれる理由をみる」を、他のCTA（「挙式会場について見る」等）と同じ
      枠つきボタンにする。写真の上に薄いピンクの下線だけで置かれており
      読みづらかったため、白地＋濃いグレー文字に変更。 */
body.replica-amazinggrace .replica-concept-cta {
  padding: 15px 22px !important;
  background: #FFFFFF !important;
  border: 1px solid #23282A !important;
  border-radius: 0 !important;
  color: #23282A !important;
  letter-spacing: 0.12em !important;
  line-height: 1 !important;   /* 他のCTAと高さを揃える */
  gap: 0 !important;
  transition: background 0.4s ease, color 0.4s ease;
}
body.replica-amazinggrace .replica-concept-cta:hover {
  background: #23282A !important;
  color: #FFFFFF !important;
}
/* 右側の丸ポチ（他のCTAと同じ見た目に） */
body.replica-amazinggrace .replica-concept-cta span {
  width: 6px !important;
  height: 6px !important;
  margin: 0 0 0 22px !important;
  background: currentColor !important;
  border: 0 !important;
  border-radius: 50% !important;
  transform: none !important;
}

/* ② プラン見出しのカタカナの行間を、ブライダルフェアの見出しと揃える。
      フェア側の余白はPCとスマホで違うため、画面幅ごとに合わせる。 */
body.replica-amazinggrace .rxbuilt .rxplans__jp {
  margin-top: 0 !important;
}
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxplans__jp {
    margin-top: -3.15px !important;
  }
}

/* ③ スマホ：各セクションのCTAボタンの大きさを揃える。
      「挙式会場について見る」だけ横幅が広く、「ガーデン」も余白が違っていた。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxcer-m__ctawrap,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ctawrap,
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__ctawrap,
  body.replica-amazinggrace .rxbuilt .rxstay-m__ctawrap {
    width: 100% !important;
  }
  body.replica-amazinggrace .rxbuilt .rxcer-m__ctawrap .rxlead-link,
  body.replica-amazinggrace .rxbuilt .rxparty-m__ctawrap .rxlead-link,
  body.replica-amazinggrace .rxbuilt .rxcuisine-m__ctawrap .rxlead-link,
  body.replica-amazinggrace .rxbuilt .rxstay-m__ctawrap .rxlead-link {
    width: min(232px, 100%) !important;
    min-width: 0 !important;
    padding: 15px 22px !important;
  }
}

/* ⑤ スマホ：貸切ガーデンのボタンだけ中央寄せだったため、
      挙式会場・披露宴会場と同じ左揃えにそろえる。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxstay-m__ctawrap {
    text-align: left !important;
    /* 左右の余白を外して、見出し・本文と同じ位置から始まるようにする
       （挙式会場・披露宴会場のボタンと同じ位置になる） */
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* ⑦ PC：「選ばれる理由をみる」の文字サイズを、「大聖堂・挙式について見る」等の
      CTAボタン（1.23rem）に合わせる。スマホは従来どおり。 */
@media (min-width: 751px) {
  body.replica-amazinggrace .replica-concept-cta {
    font-size: 1.23rem !important;
  }
}

/* ⑧ SP：ガーデンのボタン左位置を「挙式会場」「披露宴会場」(左22px) に厳密に揃える。
      親 .rxstay-m__inner の padding-left が 24px のため 2px だけ戻す。 */
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxstay-m__ctawrap {
    margin-left: -2px !important;
  }
}

/* ===========================================================================
   2026-10-16 TOPページ修正
   =========================================================================== */

/* ⑨ 「ウエディングプラン」のカタカナを、「ブライダルフェア」のカタカナと
      完全に同じ体裁にする。

      ・文字サイズ … フェア側は画面幅に応じて変わる指定（clamp）なのに対し、
                     プラン側は10.5px固定だったため、フェア側と同じ指定にする。
      ・太さ       … フェア側は500、プラン側は400だったため500に揃える。
      ・行間       … フェア側のカタカナは「文字の流れの中に置かれた要素（inline）」
                     として組まれており、それが英字との間隔を決めている。
                     プラン側も同じ組み方にすることで、画面幅が変わっても
                     英字との間隔がフェア側と常に一致する。
                     スマホではフェア側がblock＋上方向-0.3emのため、そちらに合わせる。 */
body.replica-amazinggrace .rxbuilt .rxplans__jp {
  display: inline !important;
  font-size: clamp(1.05rem, 0.85vw, 1.32rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  margin-top: 0 !important;
}
@media (max-width: 750px) {
  body.replica-amazinggrace .rxbuilt .rxplans__jp {
    display: block !important;
    margin-top: -0.3em !important;
  }
}
