.page a {
  display: block;
  -webkit-transition: all 0.3s ease-in 0s;
  transition: all 0.3s ease-in 0s;
}
.page a:hover {
  opacity: 0.6;
}
.page img {
  max-width: 100%;
  height: auto;
}
.page div, .page span, .page applet, .page object, .page iframe,
.page h1, .page h2, .page h3, .page h4, .page h5, .page h6, .page p,
.page blockquote, .page pre, .page a, .page abbr, .page acronym, .page address,
.page big, .page cite, .page code, .page del, .page dfn, .page em, .page img, .page ins, .page kbd, .page q, .page s, .page samp, .page small, .page strike, .page strong, .page sub, .page sup, .page tt, .page var, .page b, .page u, .page i, .page center,
.page dl, .page dt, .page dd, .page ol, .page ul, .page li,
.page fieldset, .page form, .page label, .page legend,
.page table, .page caption, .page tbody, .page tfoot, .page thead, .page tr, .page th, .page td,
.page article, .page aside, .page canvas, .page details, .page embed, .page figure, .page figcaption, .page footer, .page header, .page hgroup,
.page menu, .page nav, .page output, .page ruby, .page section, .page summary, .page time, .page mark, .page audio, .page video, .page picture {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.page article, .page aside, .page details, .page figcaption, .page figure, .page footer, .page header, .page hgroup, .page menu, .page nav, .page section, .page summary, .page picture {
  display: block;
}
.page *, .page *:before, .page *:after {
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
.page button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.page br {
  line-height: 0;
}

.l-wrap {
  overflow: initial;
}

@media screen and (min-width: 769px) {
  .view--pc {
    display: block;
  }
  .view--sp {
    display: none !important;
  }
}
@media screen and (max-width: 768px) {
  .view--pc {
    display: none !important;
  }
  .view--sp {
    display: block;
  }
}
.pane-contents .pane-main {
  margin-bottom: 0 !important;
}

.page {
  background: #EDF0F7;
  color: #000000;
  position: relative;
}
.page .view--sp {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .page .view--sp {
    display: block !important;
  }
}
@media screen and (max-width: 768px) {
  .page .view--pc {
    display: none !important;
  }
}
@media screen and (max-width: 768px) {
  .page .mgr_0 {
    margin-right: 0 !important;
  }
}
.page body {
  background-color: #f0f0f0;
}
@media screen and (max-width: 768px) {
  .page .slick-arrow {
    width: 9.8vw !important;
    height: 9.8vw !important;
  }
}
.page .left-box {
  position: fixed;
  left: 0;
  width: 40.85%;
  min-width: 515px;
}
@media screen and (max-width: 768px) {
  .page .left-box {
    display: none !important;
  }
}
/* 通常時：is-fixed が付いていない */
.left-box {
  top: 80px;
}

.page .left-box_content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  max-width: 285px;
}
.page .left-box .heading_top {
  width: 150px;
  display: block;
  margin: 0 auto 30px;
}
.page .left-box .anchor_list {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin: 0 auto 36px;
}
.page .left-box .anchor_list a {
  width: 47%;
}
.page .left-box .plus {
  width: 100%;
  margin: 0 auto 24px;
}
.page .left-box .heading_bottom {
  display: block;
  width: 270px;
  margin: 0 auto 24px;
}
.page .left-box .btn_last {
  width: 134px;
  margin: 0 auto;
  display: block;
}
.page .center-box {
  position: relative;
  width: 384px;
  padding: 40px 0;
  margin: 0 auto 0 40.85%;
  background-color: #fff;
}
.page .kv{
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .page .kv{
    padding: 0;
  }
}
@media screen and (max-width: 768px) {
  .page .center-box {
    padding-top: 0;
    margin: 0 auto;
    width: 100%;
  }
}
.page .center-box .center-inner {
  padding: 0 20px;
}
.page .center-box .all-items-btn {
  display: block;
  max-width: 250px;
  margin: 20px auto 60px;
}
.page .center-box .selection {
  background: #9dafd3;
  padding: 40px 0 24px;
  overflow: hidden;
  margin: 60px auto;
}
.page .center-box .selection__title {
  margin: 0 0 24px;
  color: #fff;
  font-family: "Times New Roman", "Yu Mincho", serif;
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-align: center;
}
.page .center-box .selection__slider {
  overflow: visible;
}
.page .center-box .selection__link {
  display: block;
  border-radius: 10px;
  overflow: hidden;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (hover: hover) {
  .page .center-box .selection__link:hover {
    opacity: 0.85;
  }
}
.page .center-box .selection__link img {
  display: block;
  width: 100%;
  height: auto;
  -webkit-user-drag: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.page .center-box .selection__pagination {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 12px;
  margin-top: 22px;
}
.page .center-box .selection__dot {
  width: 10px;
  height: 10px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #d5dbe8;
  cursor: pointer;
  -webkit-transition: background 0.3s;
  transition: background 0.3s;
}
.page .center-box .selection__dot.is-active {
  background: #fff;
}
.page .center-box .selection .swiper-wrapper {
  margin: 0;
  padding: 0;
  list-style: none;
}
.page .center-box .selection__slide {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: calc(75% + 18px);
  max-width: 398px;
  padding: 0 9px;
}
.page .center-box #selection02 .detail-sec-heading {
  max-width: 343px !important;
}
.page .center-box #selection03 .detail-sec-heading {
  max-width: 276px !important;
}
.page .center-box .detail-sec-heading {
  max-width: 340px;
  margin: 0 auto -12px;
  position: relative;
  z-index: 10;
}
.page .center-box .look {
  background: #eef0f7;
  padding: 24px 0;
  margin-bottom: 30px;
}
.page .center-box .look__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.page .center-box .look__label {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  padding-top: 20%;
}
.page .center-box .look__label img {
  display: block;
  width: 53%;
  max-width: 40px;
  height: auto;
}
.page .center-box .look__main {
  width: 80%;
}
.page .center-box .look__sub {
  width: 80%;
}
.page .center-box .look--reverse {
  background-color: rgba(194, 207, 212, 0.2196078431);
}
.page .center-box .look--reverse .look__head {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.page .center-box .look--reverse .look__sub {
  margin-left: auto;
}
.page .center-box .fade {
  position: relative;
  overflow: hidden;
}
.page .center-box .fade > img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0;
  -webkit-transition: opacity 1.2s ease;
  transition: opacity 1.2s ease;
}
.page .center-box .fade > img:not(:first-child) {
  position: absolute;
  inset: 0;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.page .center-box .fade > img.is-active {
  opacity: 1;
  z-index: 1;
}
.page .center-box .ceremony_text01 {
  max-width: 226px;
  display: block;
  margin: 0 auto -6px;
}
.page .center-box .ceremony_text02 {
  max-width: 283px;
  display: block;
  margin: 0 auto -6px;
}
.page .center-box .ceremony_text03 {
  max-width: 302px;
  display: block;
  margin: 0 auto -6px;
}
.page .center-box .point {
  margin: 0 auto 20px;
  max-width: 344px;
}
.page .center-box .item-link {
  margin: 0 auto 60px;
}
.page .center-box .item-link-title {
  text-align: center;
  font-size: 18px;
  font-family: "Shippori Mincho", serif;
  margin: 0 auto 20px;
}
.page .center-box .item-link-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 20px;
}
.page .center-box .item-link-btn a {
  display: block;
  max-width: 162px;
}
.page .center-box .page-bottom-btn {
  display: block;
  max-width: 250px;
  margin: 20px auto;
}
.page .center-box #selection03 .look {
  position: relative;
}
.page .center-box #selection03 .look-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  max-width: 344px;
  z-index: 10;
}
.page .right-box {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  width: 100%;
  height: 100vh;
}
@media screen and (max-width: 768px) {
  .page .right-box {
    display: none !important;
  }
}

.page .right-box .right-btn {
  position: absolute;
  left: calc(300px + 50.85%);
  width: calc((100% - 384px - 40.85%) * 0.7);
  max-width: 316px;
}
.page .right-box .right-heading {
  max-width: 76%;
  width: 100%;
  margin: 0 auto 20px;
  display: block;
}
.page .right-box .right-anchor {
  display: block;
  margin: 15px auto 15px 0;
}
.page .right-box .anchor01 {
  width: 88.6%;
}
.page .right-box .anchor02 {
  width: 100%;
}
.page .right-box .anchor03 {
  width: 83.2%;
}
.page .right-box .all-items {
  display: block;
  margin: 45px auto 0;
}
.page .right-box .all-items-link {
  display: block;
  max-width: 63.6%;
  margin: 10px auto;
}
@media screen and (max-width: 768px) {
  .page .right-heading {
    max-width: 240px;
    margin: 0 auto 20px;
    display: block;
  }
  .page .right-anchor {
    display: block;
    margin: 15px auto 15px 0;
  }
  .page .anchor01 {
    width: 281px;
  }
  .page .anchor02 {
    width: 317px;
  }
  .page .anchor03 {
    width: 263px;
  }
  .page .all-items {
    display: block;
    margin: 45px auto 0;
  }
  .page .all-items-link {
    display: block;
    max-width: 201px;
    margin: 10px auto;
  }  
}
.pane-footer .cmn-footer {
  background: #fff;
  padding: 1px 0 0;
}
.menu-trigger{
  display: none;
}
.menu-modal{
  display: none;
}
@media screen and (max-width: 768px) {
  /* モーダル展開中は背面ページのスクロールを止める */
  html.is-modal-open {
    overflow: hidden;
  }

  /* ===== 追従ボタン ===== */
  .menu-trigger {
    display: block;
    position: fixed;
    top: 88px;
    right: 16px;
    z-index: 900;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    line-height: 0;
  }
  .menu-trigger img {
    width: 44px;
    height: auto;
  }

  /* ===== モーダル ===== */
  .menu-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  .menu-modal.is-open {
    opacity: 1;
    visibility: visible;
  }

  /* 背景（薄暗く） */
  .menu-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    cursor: pointer;
  }

  /* 本体 */
  .menu-modal__panel {
    position: relative;
    width: 90%;
    height: 85vh;
    height: 85dvh; /* 対応ブラウザではアドレスバーを考慮した高さ */
    background: #fff;
    overflow: hidden;
    transform: translateY(16px);
    transition: transform 0.3s ease;
  }

  /* 中身のスクロール領域 */
  .menu-modal__body {
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain; /* 背面へのスクロール連鎖を防ぐ */
    -webkit-overflow-scrolling: touch;
    padding: 64px 24px 32px;
    box-sizing: border-box;
    background: #EDF0F7;
  }

  /* バツボタン */
  .menu-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 1;
    width: 40px;
    height: 40px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
  }
  .menu-modal__close span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 28px;
    height: 2px;
    background: #333;
  }
  .menu-modal__close span:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .menu-modal__close span:nth-child(2) {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  /* メニュー内容 */
  .menu-modal__anchors {
    margin: 0 0 32px;
    padding: 0;
    list-style: none;
  }
  .menu-modal__anchors li + li {
    border-top: 1px solid #ddd;
  }
  .menu-modal__anchors a {
    display: block;
    padding: 16px 8px;
    color: #333;
    text-decoration: none;
    font-size: 18px;
  }

  .menu-modal__product {
    display: block;
    text-align: center;
    color: #333;
    text-decoration: none;
  }
  .menu-modal__product img {
    display: block;
    width: 100%;
    max-width: 400px;
    margin: 0 auto 12px;
  }
}
.wrapper > .pane-main{
  padding-bottom: 0;
}

.left-box,
.right-btn {
  position: fixed;
  top: 0;
  will-change: transform;
}
.left-box {
  transform: translateY(var(--gnav-bottom, 0px));
}
.right-btn {
  --offset: 40px;     /* 20px → 40px */
  --bottom-gap: 30px; /* 20px → 30px */

  position: fixed;
  top: 0;
  width: calc((100% - 384px - 40.85%) * 0.7);

  transform: translateY(var(--btn-top, 0px));
  scale: var(--btn-scale, 1);
  transform-origin: top right;
  will-change: transform, scale;
}

.right-btn.is-animating {
  transition: transform 0.3s ease, scale 0.3s ease;
}

body:has(.cmn-header__mainmenu.is-fixed) .right-btn {
  --offset: 100px;
}

.left-box-text{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  bottom: 20%;
  width: 100%;
}