@charset "UTF-8";
/* ==========================================================================
   Mixins
   ========================================================================== */
/* ==========================================================================
   Common
   ========================================================================== */
:root {
  --base: 1280;
  --vw: calc(100vw / var(--base));
  --refa-font-mincho: "Shippori Mincho", serif;
  --refa-font-lusitana: "Lusitana", serif;
  --refa-font-zenkaku: "Zen Kaku Gothic New", sans-serif;
}
@media screen and (max-width: 767px) {
  :root {
    --base: 390;
    --vw: calc(100vw / var(--base));
  }
}

body {
  overflow: hidden;
  font-family: var(--refa-font-zenkaku);
  color: var(--rv-gold2);
}

.rv-footer {
  margin-top: 0;
}

.page-gift {
  background: var(--rv-gold4);
  padding-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .page-gift {
    width: 100%;
    padding-bottom: 120px;
  }
}

.pc-only {
  display: block;
}
@media screen and (max-width: 767px) {
  .pc-only {
    display: none;
  }
}

.sp-only {
  display: none;
}
@media screen and (max-width: 767px) {
  .sp-only {
    display: block;
  }
}

.common-button {
  display: block;
  font-family: var(--refa-font-zenkaku);
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 14px 20px;
  color: #fff;
  border-radius: 9999px;
  background: var(--rv-gold);
  text-decoration: none;
  text-align: center;
  width: 100%;
  border: 1px solid var(--rv-gold);
}
.common-button:hover {
  background: transparent;
  color: var(--rv-gold2);
}

/* ==========================================================================
   Main Visual
   ========================================================================== */
.page-gift-mv {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.page-gift-mv .js-common-fv-image {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  overflow: hidden;
  background-color: var(--rv-gold4);
}
.page-gift-mv .js-common-fv-image #youtube-player {
  position: absolute;
  top: -100px;
  left: 0;
  width: 100%;
  height: calc(100% + 200px);
  opacity: 0;
  transition: opacity 1s ease-in-out;
  pointer-events: none;
  background-color: var(--rv-gold4);
}
.page-gift-mv .js-common-fv-image #youtube-player.is-playing {
  opacity: 1;
}
.page-gift-mv .js-common-fv-image #youtube-player iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
  pointer-events: none;
}
.page-gift-mv .js-common-fv-image .video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  cursor: default;
  background-color: transparent;
}
.page-gift-mv img {
  width: 100%;
}

/* ==========================================================================
   キャッチコピー
   ========================================================================== */
.page-gift-catchcopy {
  background: var(--rv-gold4);
  color: var(--rv-gold2);
  margin: 0 auto;
  padding: 100px calc(80 * var(--vw));
  text-align: center;
}
@media screen and (max-width: 767px) {
  .page-gift-catchcopy {
    padding: 60px 28px;
    text-align: left;
  }
}

.page-gift-catchcopy-title-main {
  font-size: 40px;
  font-family: var(--rv-font-shipporiMincho);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.1em;
  margin: 0 0 28px;
}
@media screen and (max-width: 767px) {
  .page-gift-catchcopy-title-main {
    font-size: 26px;
    margin: 0 0 20px;
  }
}

.page-gift-catchcopy-title-sub {
  font-size: 18px;
  font-family: var(--rv-font-shipporiMincho);
  line-height: 2;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .page-gift-catchcopy-title-sub {
    font-size: 15px;
  }
}

/* ==========================================================================
   Main Visual 2
   ========================================================================== */
.page-gift-mv2 {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
}
.page-gift-mv2 img {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .page-gift-mv2 {
    display: flex;
    flex-wrap: wrap;
  }
}

.page-gift-mv2-box {
  width: 33.3333333333%;
}
@media screen and (max-width: 767px) {
  .page-gift-mv2-box {
    width: 50%;
  }
}

/* ==========================================================================
   Navigation
   ========================================================================== */
.page-gift-nav {
  padding: 80px 0;
}
@media screen and (max-width: 767px) {
  .page-gift-nav {
    padding: 60px 20px;
  }
}

.page-gift-nav-links {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 4rem;
}
@media screen and (max-width: 767px) {
  .page-gift-nav-links {
    gap: 20px;
  }
}

.page-gift-nav-links-link {
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .page-gift-nav-links-link {
    font-size: 3.3333333333vw;
  }
}
.page-gift-nav-links-link a {
  color: var(--rv-gold2);
  text-decoration: none;
}
.page-gift-nav-links-link::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  background: url(../img/pc/ic-arrow-down.png) no-repeat center/contain;
  margin: -1px 2px 0 0;
}
@media screen and (max-width: 767px) {
  .page-gift-nav-links-link::before {
    width: 11px;
    height: 11px;
    background: url(../img/sp/ic-arrow-down-sp.png) no-repeat center/contain;
  }
}

/* ==========================================================================
   Main Visual 3 / 4
   ========================================================================== */
.page-gift-mv3,
.page-gift-mv4 {
  margin: 0 0 80px;
}
.page-gift-mv3 img,
.page-gift-mv4 img {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .page-gift-mv3,
  .page-gift-mv4 {
    margin: 0 0 40px;
  }
}

/* ==========================================================================
   ORIGINAL GIFT SET / GIFT OF YOUR CHOICE
   ========================================================================== */
.page-gift-choice,
.page-gift-original {
  padding: 0 calc(80 * var(--vw));
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .page-gift-choice,
  .page-gift-original {
    padding: 0;
  }
}

@media screen and (max-width: 767px) {
  .page-gift-choice-header,
  .page-gift-original-header {
    padding: 0 28px;
  }
}

.page-gift-choice-header-title,
.page-gift-original-header-title {
  font-size: 48px;
  font-family: var(--rv-font-lusitana);
  line-height: 1;
  letter-spacing: 0.02em;
  margin: 0 0 12px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-header-title,
  .page-gift-original-header-title {
    font-size: 34px;
    margin: 0 0 8px;
  }
}

.page-gift-choice-header-subtitle,
.page-gift-original-header-subtitle {
  font-family: var(--refa-font-mincho);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.1em;
  margin: 0 0 40px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-header-subtitle,
  .page-gift-original-header-subtitle {
    font-size: 15px;
    margin: 0 0 32px;
  }
}

.page-gift-choice-header-description,
.page-gift-original-header-description {
  font-family: var(--refa-font-zenkaku);
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin: 0 0 80px;
  color: var(--rv-black);
}
@media screen and (max-width: 767px) {
  .page-gift-choice-header-description,
  .page-gift-original-header-description {
    font-size: 14px;
    margin: 0 0 60px;
  }
}
.page-gift-choice-header-description-note,
.page-gift-original-header-description-note {
  display: block;
  font-size: 12px;
  margin-top: 14px;
}

/* ==========================================================================
   オリジナルギフトセットの内容 / ご自身で選ぶギフトの内容
   ========================================================================== */
.page-gift-choice-example,
.page-gift-original-example {
  max-width: 802px;
  margin: 0 auto 140px;
  background: var(--rv-bg-main);
  padding: 40px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example,
  .page-gift-original-example {
    padding: 20px 10px;
    margin: 0 16px 100px;
  }
}

.page-gift-choice-example {
  max-width: 662px;
  padding: 40px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example {
    padding: 20px 10px;
  }
}

.page-gift-choice-example-title,
.page-gift-original-example-title {
  font-family: var(--refa-font-zenkaku);
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin: 0 0 16px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example-title,
  .page-gift-original-example-title {
    font-size: 14px;
    margin: 0 0 16px;
  }
}

.page-gift-choice-example-box,
.page-gift-original-example-box {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 24px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example-box,
  .page-gift-original-example-box {
    gap: 0;
  }
}

.page-gift-choice-example-box-inner-icon,
.page-gift-original-example-box-inner-icon {
  position: relative;
  display: inline-block;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  align-self: center;
}
.page-gift-choice-example-box-inner-icon::before, .page-gift-choice-example-box-inner-icon::after,
.page-gift-original-example-box-inner-icon::before,
.page-gift-original-example-box-inner-icon::after {
  content: "";
  position: absolute;
}
.page-gift-choice-example-box-inner-icon::before,
.page-gift-original-example-box-inner-icon::before {
  left: 16.5px;
  top: 4.25px;
  width: 0;
  height: 25.5px;
  border-left: 1px solid var(--rv-gold);
}
.page-gift-choice-example-box-inner-icon::after,
.page-gift-original-example-box-inner-icon::after {
  left: 4.25px;
  top: 16.5px;
  width: 25.5px;
  height: 0;
  border-top: 1px solid var(--rv-gold);
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example-box-inner-icon,
  .page-gift-original-example-box-inner-icon {
    width: 24px;
    height: 24px;
  }
  .page-gift-choice-example-box-inner-icon::before,
  .page-gift-original-example-box-inner-icon::before {
    left: 11.5px;
    top: 3px;
    height: 18px;
  }
  .page-gift-choice-example-box-inner-icon::after,
  .page-gift-original-example-box-inner-icon::after {
    left: 3px;
    top: 11.5px;
    width: 18px;
  }
}

.page-gift-original-example-box-inner-icon {
  margin-bottom: 42px;
}
@media screen and (max-width: 767px) {
  .page-gift-original-example-box-inner-icon {
    margin-bottom: 36px;
  }
}

.page-gift-choice-example-box-inner-icon {
  margin-bottom: 75px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example-box-inner-icon {
    margin-bottom: 88px;
  }
}

.page-gift-choice-example-box-inner-img {
  height: 260px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example-box-inner-img {
    height: 37.7153846154vw;
  }
}

.page-gift-original-example-box-inner-img {
  height: 300px;
}
@media screen and (max-width: 767px) {
  .page-gift-original-example-box-inner-img {
    height: 37.7153846154vw;
  }
}

.page-gift-choice-example-box-inner-description,
.page-gift-original-example-box-inner-description {
  font-family: var(--refa-font-zenkaku);
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--rv-black);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example-box-inner-description,
  .page-gift-original-example-box-inner-description {
    font-size: 12px;
    margin: 0;
  }
}
.page-gift-choice-example-box-inner-description-note,
.page-gift-original-example-box-inner-description-note {
  display: block;
  font-size: 10px;
  margin: 4px 0 0;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example-box-inner-description-note,
  .page-gift-original-example-box-inner-description-note {
    font-size: 8px;
    margin-top: 4px;
  }
}

.page-gift-choice-example-box .common-button {
  margin: 10px auto 0;
  max-width: 180px;
}
@media screen and (max-width: 767px) {
  .page-gift-choice-example-box .common-button {
    font-size: 3.0769230769vw;
  }
}

/* ==========================================================================
   タブ切り替え
   ========================================================================== */
[data-template=choice] .page-gift-tab-area-inner-body {
  padding: 52px 0 0;
  flex-wrap: wrap;
  gap: 80px;
}
@media screen and (max-width: 767px) {
  [data-template=choice] .page-gift-tab-area-inner-body {
    padding: 32px 0 0;
    gap: 72px;
  }
}
[data-template=choice] .page-gift-tab-area-inner-body-wrapper {
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  [data-template=choice] .page-gift-tab-area-inner-body-wrapper {
    width: 100%;
  }
}
[data-template=choice] .page-gift-tab-area-inner-body-wrapper .page-gift-tab-area-inner-body-img {
  width: calc(380 * var(--vw));
}
@media screen and (max-width: 767px) {
  [data-template=choice] .page-gift-tab-area-inner-body-wrapper .page-gift-tab-area-inner-body-img {
    width: 100%;
  }
}
[data-template=choice] .page-gift-tab-area-inner-body-wrapper .page-gift-tab-area-inner-body-contents {
  width: calc(372 * var(--vw));
}
@media screen and (max-width: 767px) {
  [data-template=choice] .page-gift-tab-area-inner-body-wrapper .page-gift-tab-area-inner-body-contents {
    width: 100%;
  }
}
[data-template=choice] .page-gift-tab-area-inner-body-wrapper-title {
  font-family: var(--refa-font-zenkaku);
  color: #000;
  font-size: 24px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  padding: 0 0 40px;
}
@media screen and (max-width: 767px) {
  [data-template=choice] .page-gift-tab-area-inner-body-wrapper-title {
    font-size: 17px;
    text-align: center;
    padding: 0 0 20px;
  }
}
[data-template=choice] .page-gift-tab-area-inner-body-wrapper-contents {
  display: flex;
  gap: 72px;
}
[data-template=choice] .page-gift-tab-area-inner-body-wrapper-contents:nth-of-type(2n + 1) {
  flex-direction: row-reverse;
}
@media screen and (max-width: 767px) {
  [data-template=choice] .page-gift-tab-area-inner-body-wrapper-contents:nth-of-type(2n + 1) {
    flex-direction: column;
  }
}
@media screen and (max-width: 767px) {
  [data-template=choice] .page-gift-tab-area-inner-body-wrapper-contents {
    flex-direction: column;
    padding: 0 28px;
    gap: 32px;
  }
}

[data-template=event] .page-gift-tab-area-inner-body {
  padding: 52px 0 0;
  flex-wrap: wrap;
  position: relative;
  gap: 0;
}
@media screen and (max-width: 767px) {
  [data-template=event] .page-gift-tab-area-inner-body {
    padding: 32px 0 0;
  }
}
[data-template=event] .page-gift-tab-area-inner-body-wrapper {
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  [data-template=event] .page-gift-tab-area-inner-body-wrapper {
    width: 100%;
  }
}
[data-template=event] .page-gift-tab-area-inner-body-wrapper .page-gift-tab-area-inner-body-img {
  width: calc(380 * var(--vw));
}
@media screen and (max-width: 767px) {
  [data-template=event] .page-gift-tab-area-inner-body-wrapper .page-gift-tab-area-inner-body-img {
    width: 100%;
  }
}
[data-template=event] .page-gift-tab-area-inner-body-wrapper .page-gift-tab-area-inner-body-contents {
  width: calc(372 * var(--vw));
}
@media screen and (max-width: 767px) {
  [data-template=event] .page-gift-tab-area-inner-body-wrapper .page-gift-tab-area-inner-body-contents {
    width: 100%;
  }
}
[data-template=event] .page-gift-tab-area-inner-body-wrapper-title {
  font-family: var(--refa-font-zenkaku);
  color: #000;
  font-size: 24px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  padding: 0 0 40px;
}
@media screen and (max-width: 767px) {
  [data-template=event] .page-gift-tab-area-inner-body-wrapper-title {
    font-size: 17px;
    text-align: center;
    padding: 0 0 20px;
  }
}
[data-template=event] .page-gift-tab-area-inner-body-wrapper-contents {
  display: flex;
  gap: 72px;
}
[data-template=event] .page-gift-tab-area-inner-body-wrapper-contents:nth-of-type(2n + 1) {
  flex-direction: row-reverse;
}
@media screen and (max-width: 767px) {
  [data-template=event] .page-gift-tab-area-inner-body-wrapper-contents:nth-of-type(2n + 1) {
    flex-direction: column;
  }
}
@media screen and (max-width: 767px) {
  [data-template=event] .page-gift-tab-area-inner-body-wrapper-contents {
    flex-direction: column;
    padding: 0 28px;
    gap: 32px;
  }
}

.page-gift-tab-area {
  margin: 0 0 140px;
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area {
    margin: 0 0 120px;
  }
}

@media screen and (max-width: 767px) {
  .page-gift-tab-area-titles {
    margin: 0 28px;
  }
}

.page-gift-tab-area-titles-en {
  font-size: 13px;
  font-family: var(--rv-font-lusitana);
  line-height: 1;
  letter-spacing: 0.02em;
  margin: 0 0 24px;
  color: var(--rv-gold);
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-titles-en {
    font-size: 12px;
    margin: 0 0 20px;
  }
}

.page-gift-tab-area-titles-ja {
  font-family: var(--refa-font-mincho);
  font-size: 32px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.1em;
  margin: 0 0 52px;
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-titles-ja {
    font-size: 26px;
    margin: 0 0 40px;
  }
}

.page-gift-tab-area-inner-header {
  position: relative; /* lamp要素の基準点 */
  display: flex;
  align-items: flex-start;
  gap: 0;
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-header {
    margin: 0 10px;
  }
}

.page-gift-tab-area-inner-header-tab {
  font-family: var(--refa-font-zenkaku);
  font-size: 17px;
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 0 20px 20px;
  width: 33.3333333333%;
  text-align: center;
  border-bottom: 1px solid #fff;
  cursor: pointer;
  transition: opacity 0.3s, color 0.3s;
  color: var(--rv-gray2);
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-header-tab {
    font-size: 14px;
    padding: 0 0 20px;
  }
}
.page-gift-tab-area-inner-header-tab:hover {
  opacity: 0.7;
}
.page-gift-tab-area-inner-header-tab.is-active {
  border-bottom: 1px solid #fff;
  color: var(--rv-gold);
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-header-tab.is-active {
    border-bottom: 2px solid var(--rv-gold);
  }
}

/* ========== アニメーションボーダー（lamp）========== */
.page-gift-tab-area-inner-header .lamp {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  background-color: var(--rv-gold);
  transition: all 0.3s ease-in;
  /* width と left は JavaScript で動的に設定 */
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-header .lamp {
    display: none;
  }
}

.page-gift-tab-area-inner-body {
  padding: 40px 0 0;
  display: flex;
  align-items: center;
  gap: calc(52 * var(--vw));
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-body {
    flex-direction: column;
    padding: 32px 28px 0;
    gap: 32px;
  }
}

.page-gift-tab-area-inner-body-img {
  display: flex;
  gap: 2px;
  width: calc(722 * var(--vw));
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-body-img {
    width: 100%;
  }
}
.page-gift-tab-area-inner-body-img img,
.page-gift-tab-area-inner-body-img picture {
  width: calc(359 * var(--vw));
}

.page-gift-tab-area-inner-body-contents {
  width: calc(342 * var(--vw));
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-body-contents {
    width: 100%;
  }
}

.page-gift-tab-area-inner-body-contents-title {
  font-family: var(--refa-font-mincho);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.1em;
  margin: 0 0 16px;
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-body-contents-title {
    font-size: 20px;
  }
}

.page-gift-tab-area-inner-body-contents-description {
  font-family: var(--refa-font-zenkaku);
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin: 0 0 40px;
  color: var(--rv-black);
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-body-contents-description {
    font-size: 13px;
    margin: 0 0 40px;
  }
}

.page-gift-tab-area-inner-body-contents-colors:has(span) {
  display: flex;
  align-items: center;
  gap: min(14 * var(--vw), 14px);
  margin: 0 0 12px;
}
.page-gift-tab-area-inner-body-contents-colors span {
  flex: 0 0 auto;
  width: min(30 * var(--vw), 30px);
  height: min(10 * var(--vw), 10px);
  border: 1px solid #e9e9e9;
}
.page-gift-tab-area-inner-body-contents-colors span.color-B40 {
  background-color: #253f70;
}
.page-gift-tab-area-inner-body-contents-colors span.color-V30 {
  background-color: #e5d7c4;
}
.page-gift-tab-area-inner-body-contents-colors span.color-V30-2 {
  background-color: #ebded8;
}
.page-gift-tab-area-inner-body-contents-colors span.color-P70 {
  background-color: #df8d92;
}
.page-gift-tab-area-inner-body-contents-colors span.color-G40 {
  background-color: #b8c4b9;
}
.page-gift-tab-area-inner-body-contents-colors span.color-K30 {
  background-color: #7a8191;
}
.page-gift-tab-area-inner-body-contents-colors span.color-K90 {
  background-color: #000000;
}
.page-gift-tab-area-inner-body-contents-colors span.color-P20 {
  background-color: #f2dbd7;
}
.page-gift-tab-area-inner-body-contents-colors span.color-P60 {
  background-color: #c8adae;
}
.page-gift-tab-area-inner-body-contents-colors span.color-W70 {
  background-color: #ffffff;
}
.page-gift-tab-area-inner-body-contents-colors span.color-W70S {
  display: flex;
}
.page-gift-tab-area-inner-body-contents-colors span.color-W70S::before {
  content: "";
  background-color: #fff;
  width: 50%;
}
.page-gift-tab-area-inner-body-contents-colors span.color-W70S::after {
  content: "";
  background: linear-gradient(113.96deg, #999999 0%, #cccccc 50%, #999999 100%);
  width: 50%;
}
.page-gift-tab-area-inner-body-contents-colors span.color-W70K90 {
  display: flex;
}
.page-gift-tab-area-inner-body-contents-colors span.color-W70K90::before {
  content: "";
  background-color: #fff;
  width: 50%;
}
.page-gift-tab-area-inner-body-contents-colors span.color-W70K90::after {
  content: "";
  background-color: #000;
  width: 50%;
}

.page-gift-tab-area-inner-body-contents-tag:has(span) {
  margin: 0 0 12px;
}
.page-gift-tab-area-inner-body-contents-tag span {
  font-family: var(--refa-font-zenkaku);
  color: var(--rv-gold);
  font-size: 12px;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
.page-gift-tab-area-inner-body-contents-tag span:not(:last-of-type):after {
  display: inline-block;
  content: "｜";
}

.page-gift-tab-area-inner-body-contents-product-name {
  font-family: var(--refa-font-zenkaku);
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.05em;
  margin: 0 0 12px;
  color: var(--rv-black);
}

.page-gift-tab-area-inner-body-contents-price {
  font-family: var(--refa-font-zenkaku);
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.05em;
  color: var(--rv-gray2);
  margin: 0 0 28px;
}

.partner .page-gift-tab-area-inner-body-contents-price {
  margin: 0 0 16px;
}

.page-gift-tab-area-inner-body-contents-buttons {
  display: flex;
  align-items: center;
  gap: 10px;
}

.page-gift-tab-area-inner-body-contents-button {
  width: 160px;
}
.page-gift-tab-area-inner-body-contents-button.more {
  width: 100%;
  max-width: 372px;
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area-inner-body-contents-button {
    width: 50%;
  }
  .page-gift-tab-area-inner-body-contents-button.more {
    width: 100%;
  }
}

.partner .page-gift-tab-area-inner-body-contents-button {
  margin: 0 0 24px;
}

/* ==========================================================================
   スライダー（スマホのみ）
   ========================================================================== */
@media screen and (max-width: 767px) {
  .js-slider {
    position: relative;
    overflow: hidden;
  }
  .js-slider picture {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    pointer-events: none;
  }
  .js-slider picture.is-active {
    opacity: 1;
    pointer-events: auto;
  }
  .js-slider picture:first-child {
    position: relative;
  }
}

/* ==========================================================================
   ご予算から選ぶ
   ========================================================================== */
@media screen and (max-width: 767px) {
  .page-gift-tab-area[data-template=event] .page-gift-tab-area-inner-header {
    flex-wrap: wrap;
    row-gap: 20px;
  }
}
@media screen and (max-width: 767px) {
  .page-gift-tab-area[data-template=event] .page-gift-tab-area-inner-header-tab {
    width: 50%;
  }
}

/* ==========================================================================
   ギフトバッグを選ぶ
   ========================================================================== */
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-titles {
    margin: 0 28px;
  }
}

.page-gift-choose-gift-bag-titles-en {
  font-size: 13px;
  font-family: var(--rv-font-lusitana);
  line-height: 1;
  letter-spacing: 0.02em;
  margin: 0 0 24px;
  color: var(--rv-gold);
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-titles-en {
    font-size: 12px;
    margin: 0 0 20px;
  }
}

.page-gift-choose-gift-bag-titles-ja {
  font-family: var(--refa-font-mincho);
  font-size: 32px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.1em;
  margin: 0 0 40px;
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-titles-ja {
    font-size: 26px;
    margin: 0 0 40px;
  }
}

.page-gift-choose-gift-bag-columns {
  display: flex;
  gap: 20px;
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-columns {
    flex-wrap: wrap;
    padding: 0 10px;
    gap: 40px 10px;
  }
}

.page-gift-choose-gift-bag-column {
  width: 25%;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-column {
    width: calc((100% - 10px) / 2);
  }
}

.page-gift-choose-gift-bag-column-img {
  margin: 0 0 20px;
}

.page-gift-choose-gift-bag-column-contents {
  padding: 0 16px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-column-contents {
    padding: 0 4px;
  }
}

.page-gift-choose-gift-bag-column-contents-title {
  font-family: var(--refa-font-zenkaku);
  color: #000;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: 0.05em;
  padding: 0 0 12px;
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-column-contents-title {
    font-size: 15px;
  }
}

.page-gift-choose-gift-bag-column-contents-price {
  font-family: var(--refa-font-zenkaku);
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.05em;
  color: var(--rv-gray2);
  margin: 0 0 20px;
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-column-contents-price {
    margin: 0 0 14px;
  }
}

.page-gift-choose-gift-bag-column-contents-size {
  font-family: var(--refa-font-zenkaku);
  color: #000;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.05em;
  padding: 0 0 12px;
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-column-contents-size {
    font-size: 12px;
    padding: 0 0 16px;
  }
}

.page-gift-choose-gift-bag-column-contents-description {
  font-family: var(--refa-font-zenkaku);
  color: #000;
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: 0.05em;
  padding: 0 0 20px;
  flex-grow: 1;
}
.page-gift-choose-gift-bag-column-contents-description span {
  display: inline-block;
  margin-bottom: 6px;
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-column-contents-description {
    font-size: 11px;
  }
}

@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-column .common-button {
    font-size: 2.8205128205vw;
  }
}

.page-gift-choose-gift-bag-notes {
  font-family: var(--refa-font-zenkaku);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin: 60px 0 0;
  color: var(--rv-black);
}
@media screen and (max-width: 767px) {
  .page-gift-choose-gift-bag-notes {
    margin: 40px 20px 0;
  }
}

.page-gift-choose-gift-bag-note {
  display: flex;
  gap: 0.25em;
  margin-top: 5px;
}

.page-gift-choose-gift-bag-note span {
  flex-shrink: 0;
}

.page-gift-choose-gift-bag-note div {
  flex: 1;
}

/* ==========================================================================
   アンカーリンクの位置調整
   ========================================================================== */
#page-gift-choice::before,
#page-gift-original::before,
#page-gift-bag::before {
  content: "";
  display: block;
  height: 80px; /* 調整したい高さ */
  margin-top: -80px; /* 高さと同じ値をマイナスで */
  visibility: hidden;
}

/* ==========================================================================
   商品一覧（もともとのスタイルを上書き）
   ========================================================================== */
.page-gift .goods_ {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  position: relative; /* スクロールバーの基準点 */
  padding: 0 0 52px;
}
@media screen and (max-width: 767px) {
  .page-gift .goods_ {
    padding: 0 0 32px;
  }
}
.page-gift .StyleV_Frame_ {
  flex-wrap: nowrap;
  -moz-column-gap: 0;
       column-gap: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  overflow: visible;
  padding: 0;
}
.page-gift .StyleV_Item_ {
  width: calc(277 * var(--vw));
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .page-gift .StyleV_Item_ {
    width: calc(50% - 1px);
  }
}
.page-gift .simplebar-track.simplebar-horizontal {
  height: 2px;
  background-color: var(--rv-white);
}
.page-gift .simplebar-scrollbar:before {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: var(--rv-gold);
}

/* ==========================================================================
   スライダー
   ========================================================================== */
.page-gift {
  /* swiper Scrollbar */
  /* swiper Prev button and Next button */
}
.page-gift .swiper-scrollbar {
  height: 2px;
  background: var(--rv-white);
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}
.page-gift .swiper-scrollbar-drag {
  background: var(--rv-gold);
}
.page-gift .rv-swiper-button.swiper-button-prev,
.page-gift .rv-swiper-button.swiper-button-next {
  width: 60px;
  height: 60px;
  background-size: 22px auto;
  border-radius: 50%;
  overflow: hidden;
  transition: var(--rv-transition);
}
.page-gift .rv-swiper-button.swiper-button-prev {
  background-image: url(../../common/img/ic-arrow-left-gold.png);
}
.page-gift .rv-swiper-button.swiper-button-next {
  background-image: url(../../common/img/ic-arrow-right-gold.png);
}
@media screen and (max-width: 767px) {
  .page-gift .rv-swiper-button.swiper-button-prev,
  .page-gift .rv-swiper-button.swiper-button-next {
    display: none;
  }
}
@media (hover: hover) {
  .page-gift .rv-swiper-button.swiper-button-prev:hover,
  .page-gift .rv-swiper-button.swiper-button-next:hover {
    background-color: var(--rv-gold);
  }
  .page-gift .rv-swiper-button.swiper-button-prev:hover {
    background-image: url(../../common/img/ic-arrow-left-white.png);
  }
  .page-gift .rv-swiper-button.swiper-button-next:hover {
    background-image: url(../../common/img/ic-arrow-right-white.png);
  }
}
.page-gift .rv-swiper-button.swiper-button-prev::before,
.page-gift .rv-swiper-button.swiper-button-next::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 50%;
  border: 1px solid transparent;
  background: linear-gradient(var(--gradient-angle), rgb(var(--rv-goldRGB)) 0%, rgb(var(--rv-gold4RGB)) 49%, rgb(var(--rv-goldRGB)) 100%) border-box border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
          mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: xor;
          mask-composite: exclude;
}
.page-gift .rv-swiper-button.swiper-button-prev:not(:hover)::before,
.page-gift .rv-swiper-button.swiper-button-next:not(:hover)::before {
  animation: var(--rv-rotateBorderGradient);
}
.page-gift .rv-swiper-button.swiper-button-next.swiper-button-disabled,
.page-gift .rv-swiper-button.swiper-button-prev.swiper-button-disabled {
  opacity: 0;
}