@font-face {
  font-family: "YuGothic";
  src: url("/cont/ssq_lp/font/YuGothM.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "YuGothic";
  src: url("/cont/ssq_lp/font/YuGothB.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-display: swap;
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 300;
  src: url("/cont/ssq_lp/font/noto-serif-jp-v34-japanese_latin-300.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 400;
  src: url("/cont/ssq_lp/font/noto-serif-jp-v34-japanese_latin-regular.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 500;
  src: url("/cont/ssq_lp/font/noto-serif-jp-v34-japanese_latin-500.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: 'Cormorant';
  font-style: italic;
  font-weight: 300;
  src: url("/cont/ssq_lp/font/cormorant-v24-latin-300italic.woff2") format("woff2");
}

.fnt-notoserif {
  font-family: 'Noto Serif JP';
}

@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/*=============================================
 * .clearfix
 *=============================================*/
.clearfix {
  zoom: 1 !important;
}

.clearfix:after {
  content: "." !important;
  clear: both !important;
  display: block !important;
  height: 0 !important;
  visibility: hidden !important;
}

.page .fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
  animation-duration: 1s;
  animation-delay: 0.3s;
}

.bold {
  font-weight: bold;
}

.fwb {
  font-weight: 700;
}

.page .fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
  animation-duration: 1s;
  animation-delay: 0.3s;
}

.txt-vertical {
  cursor: vertical-text;
  writing-mode: vertical-rl;
  -o-writing-mode: vertical-rl;
  -ms-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -moz-writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  text-orientation: upright;
  word-wrap: break-word;
}

.txt-latin {
  cursor: vertical-text;
  direction: rtl;
  writing-mode: vertical-rl;
  -o-writing-mode: vertical-rl;
  -ms-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -moz-writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  text-orientation: sideways-right;
  -o-text-orientation: sideways-right;
  -ms-text-orientation: upright;
  -ms-text-orientation: sideways-right;
  -moz-text-orientation: sideways-right;
  -webkit-text-orientation: sideways-right;
  letter-spacing: .25em;
}

.txt-vertical-latin {
  cursor: vertical-text;
  direction: rtl;
  writing-mode: vertical-rl;
  -o-writing-mode: vertical-rl;
  -ms-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -moz-writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  text-orientation: sideways-right;
  -o-text-orientation: sideways-right;
  -ms-text-orientation: upright;
  -ms-text-orientation: sideways-right;
  -moz-text-orientation: sideways-right;
  -webkit-text-orientation: sideways-right;
}

.page {
  background: #fff;
  font-family: "YuGothic", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 0;
  color: #1A1818;
}

main {
  overflow: hidden;
}

.wrap {
  padding: 0 5vw;
  max-width: 1090px;
  margin: 0 auto;
}

.d-flex {
  display: flex;
  flex-wrap: wrap;
}

.txt-center {
  text-align: center;
}

.page img {
  vertical-align: middle;
}

.page .h2-cm {
  text-align: center;
  font-family: 'Noto Serif JP';
  font-size: 11.7vw;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.1em;
}

.page .h2-cm span {
  display: block;
  font-family: 'Cormorant';
  font-size: 8.5vw;
  letter-spacing: 0;
  font-weight: 300;
  margin-top: 1.6vw;
}

.page .h2-cm small {
  font-size: 6.9vw;
  letter-spacing: 0.1em;
}

.page .h3-cm {
  text-align: center;
  font-family: 'Noto Serif JP';
  font-size: 7.2vw;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0;
}

.page .h3-cm span {
  display: block;
  font-size: 12.8vw;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.1em;
  margin-bottom: 2.7vw;
}

.page .group-price-cm {
  max-width: 218px;
  margin: 0 auto;
}

.page .group-price-cm .group-price-ttl {
  color: #1A1818;
  font-family: 'Noto Serif JP';
  font-size: 20px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.1em;
  margin-bottom: 9px;
}

.page .group-price-cm .group-price-ttl.mt13 {
  margin-top: 13px;
}

.page .group-price-cm .group-price-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.page .group-price-cm .group-price-list .group-price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.page .group-price-cm .group-price-list .group-price-row dl {
  width: 116px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0;
}

.page .group-price-cm .group-price-list .group-price-row dl dt {
  font-weight: bold;
  text-transform: uppercase;
}

.page .group-price-cm .group-price-list .group-price-row dl dd {
  text-align: right;
  font-weight: 500;
}

.page .group-price-cm .group-price-list .group-price-row .more {
  width: 88px;
}

.page .group-price-cm .group-price-list .group-price-row .more a {
  height: 17px;
  display: block;
  background: #272C39;
  color: #fff;
  border: 1px solid #272C39;
  text-align: center;
  font-family: 'Noto Serif JP';
  font-size: 10px;
  font-weight: 500;
  line-height: 14px;
  letter-spacing: 0.1em;
  transition: 0.3s all ease;
}

.page .group-price-cm .group-price-list .group-price-row .more a:hover {
  background: #fff;
  color: #1A1818;
}

.page .group-price-cm .group-price-other {
  color: #1A1818;
  text-align: center;
  font-family: 'Noto Serif JP';
  font-size: 14px;
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: 0;
  padding: 4px;
  border: 1px solid;
  border-radius: 10px;
  margin: 33px 0 19px;
}

.page .group-price-cm.white .group-price-ttl {
  color: #fff;
}

.page .group-price-cm.white .group-price-list .group-price-row .more a {
  background: #fff;
  color: #272C39;
  border: 1px solid #fff;
}

.page .group-price-cm.white .group-price-list .group-price-row .more a:hover {
  background: #272C39;
  color: #fff;
}

.page .group-price-cm.white .group-price-other {
  color: #fff;
}

.page .bnr-cm a {
  display: block;
  background: #fff;
  color: #1A1818;
  text-align: center;
  border: 1px solid #1A1818;
  font-size: 4.3vw;
  font-weight: bold;
  letter-spacing: 0;
  padding: 2.8vw 0px 2.6vw;
}

.page .bnr-cm a span {
  font-size: 4.8vw;
  margin-left: 2.1vw;
}

@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
  .txt-vertical-sp {
    cursor: vertical-text;
    writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -moz-writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    word-wrap: break-word;
  }
}

@media screen and (min-width: 768px) {
  .sp {
    display: none;
  }
  .wrap {
    padding-left: 20px;
    padding-right: 20px;
  }
  .page .h2-cm {
    font-size: 44px;
  }
  .page .h2-cm span {
    font-size: 32px;
    margin-top: 15px;
  }
  .page .h2-cm small {
    font-size: 32px;
  }
  .page .h3-cm {
    font-size: 27px;
  }
  .page .h3-cm span {
    font-size: 48px;
    margin-bottom: 5px;
  }
  .page .group-price-cm {
    margin: 0;
  }
  .page .bnr-cm {
    max-width: 565px;
    width: 100%;
    margin: 0 auto;
  }
  .page .bnr-cm a {
    font-size: 18px;
    padding: 12px 0px 9px;
  }
  .page .bnr-cm a span {
    font-size: 18px;
    margin-left: 10px;
  }
}

#section-kv {
  position: relative;
  z-index: 1;
}

#section-kv h2 {
  color: #424242;
  font-size: 4.6vw;
  line-height: 1.58;
  letter-spacing: 0.17em;
  font-weight: 400;
  white-space: nowrap;
  position: absolute;
  left: 13.3vw;
  top: 7.5vw;
  z-index: 1;
}

#section-kv .eng {
  color: #1A1818;
  text-align: center;
  font-size: 2.7vw;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 2.8;
  position: absolute;
  right: 0.8vw;
  top: 0;
  bottom: 0;
  z-index: 1;
  transform: rotate(180deg);
}

#section-kv .eng .txt-latin {
  letter-spacing: 0.1em;
}

#section-kv .key-logo {
  width: 48.5vw;
  position: absolute;
  left: 1.3vw;
  bottom: 2.9vw;
  z-index: 1;
}

@media screen and (min-width: 768px) {
  #section-kv .kv-ttl {
    position: absolute;
    left: 8.5%;
    top: 21.7%;
  }
  #section-kv h2 {
    text-align: center;
    font-size: 24px;
    letter-spacing: 0.2em;
    white-space: wrap;
    position: relative;
    left: auto;
    top: auto;
  }
  #section-kv .eng {
    font-size: 12px;
    line-height: 2.3;
    right: 1.1%;
  }
  #section-kv .key-logo {
    width: 314px;
    margin: 0 auto;
    position: relative;
    left: auto;
    bottom: auto;
  }
  #section-kv .kv-img {
    min-height: 640px;
  }
  #section-kv .kv-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: 50%;
  }
}

#section-lead {
  padding: 12vw 0 19.2vw;
  position: relative;
  z-index: 0;
}

#section-lead:before {
  content: '';
  width: 118.4vw;
  height: 118.4vw;
  background-image: url("/ec/img/usr/pg/cont/smactive-26aw/deco.png");
  background-repeat: no-repeat;
  background-size: 100%;
  position: absolute;
  left: -57.1vw;
  top: -28.3vw;
  z-index: -1;
}

#section-lead h2 {
  font-size: 6.1vw;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.1em;
  margin: 0 -2vw 6.7vw;
}

#section-lead .txt {
  display: table;
  margin: 0 auto;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  #section-lead {
    padding: 77px 0 100px;
  }
  #section-lead:before {
    width: 710px;
    height: 710px;
    left: calc(50% - 802px);
    top: -177px;
  }
  #section-lead h2 {
    font-size: 32px;
    line-height: 1.6875;
    margin: 0 0 29px;
  }
  #section-lead .txt {
    text-align: center;
    display: block;
    margin: 0;
    font-size: 18px;
  }
}

#section-about {
  padding-bottom: 12vw;
}

#section-about h2 {
  margin-bottom: 13.3vw;
}

#section-about .about-sttl {
  font-size: 5.9vw;
  font-weight: bold;
  line-height: 1.3;
  letter-spacing: 0.05em;
  margin-bottom: 3.2vw;
}

#section-about .txt {
  letter-spacing: 0;
  padding: 0 3.2vw;
}

#section-about .row1 {
  display: flex;
  flex-direction: column;
  gap: 12vw;
  margin-bottom: 10.7vw;
}

#section-about .row1 .img-group {
  display: flex;
  justify-content: space-between;
  margin-bottom: 5.5vw;
}

#section-about .row1 .img-group p {
  width: 40.8vw;
}

#section-about .row2 .img-group {
  width: 80.5vw;
  margin: 0 auto 5.9vw;
  display: flex;
  flex-direction: column;
  gap: 5.3vw;
}

#section-about .row2 .about-sttl {
  font-size: 6.9vw;
  margin-bottom: 5.9vw;
}

#section-about .row2 .txt {
  display: table;
  margin: 0 auto;
  padding: 0;
}

@media screen and (min-width: 768px) {
  #section-about {
    padding-bottom: 63px;
  }
  #section-about h2 {
    margin-bottom: 80px;
  }
  #section-about .about-sttl {
    font-size: 22px;
    margin-bottom: 12px;
  }
  #section-about .txt {
    max-width: 332px;
    letter-spacing: 0;
    padding: 0;
    margin: 0 auto;
  }
  #section-about .row1 {
    flex-direction: row;
    justify-content: space-between;
    gap: 0;
    padding: 0 24px;
    margin-bottom: 49px;
  }
  #section-about .row1 .row1-col {
    max-width: 484px;
    width: 48%;
  }
  #section-about .row1 .img-group {
    margin-bottom: 30px;
  }
  #section-about .row1 .img-group p {
    max-width: 232px;
    width: 49%;
  }
  #section-about .row2 .img-group {
    max-width: 637px;
    width: 100%;
    margin: 0 auto 37px;
    flex-direction: row;
    justify-content: space-between;
    gap: 0;
  }
  #section-about .row2 .img-group p {
    max-width: 302px;
    width: 49%;
  }
  #section-about .row2 .about-sttl {
    font-size: 26px;
    margin-bottom: 10px;
  }
  #section-about .row2 .txt {
    max-width: none;
    display: block;
    text-align: center;
  }
}

#section-style {
  position: relative;
  z-index: 0;
  padding: 12vw 0 1.3vw;
}

#section-style:before {
  content: '';
  width: 26.7vw;
  height: 1px;
  background: #000;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
}

#section-style:after {
  content: '';
  width: 118.4vw;
  height: 118.4vw;
  background-image: url("/ec/img/usr/pg/cont/smactive-26aw/deco.png");
  background-repeat: no-repeat;
  background-size: 100%;
  position: absolute;
  right: -53.9vw;
  top: -31.2vw;
  z-index: -1;
}

#section-style h2 {
  margin-bottom: 13.3vw;
}

#section-style .row-style {
  margin-bottom: 14.7vw;
}

#section-style .row-style h3 {
  margin-bottom: 6.9vw;
  padding-top: 12vw;
  position: relative;
}

#section-style .row-style h3:before {
  content: '';
  width: 26.7vw;
  height: 1px;
  background: #000;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
}

#section-style .row-style h3.no-border {
  padding-top: 0;
}

#section-style .row-style h3.no-border:before {
  display: none;
}

#section-style .row-style .img-group {
  display: flex;
  flex-direction: column;
  gap: 2.7vw;
  margin: 0 -5vw 9.3vw;
}

#section-style .row-style .suit-info .txt {
  letter-spacing: 0;
  padding: 0 3.2vw 1.3vw;
  position: relative;
  z-index: 1;
}

#section-style .row-style .suit-info .suit-img {
  width: 94.1vw;
  margin: 0 0 -2.7vw -1.3vw;
  position: relative;
  z-index: 0;
}

#section-style .row-style .suit-info .suit-img:before {
  content: '';
  width: 118.4vw;
  height: 118.4vw;
  background-image: url("/ec/img/usr/pg/cont/smactive-26aw/deco.png");
  background-repeat: no-repeat;
  background-size: 100%;
  position: absolute;
  left: -61.1vw;
  top: -22.4vw;
  z-index: -1;
}

@media screen and (min-width: 768px) {
  #section-style {
    padding: 67px 0 50px;
  }
  #section-style:before {
    width: 100px;
  }
  #section-style:after {
    width: 710px;
    height: 710px;
    right: calc(50% - 787px);
    top: -228px;
  }
  #section-style h2 {
    margin-bottom: 55px;
  }
  #section-style .row-style {
    max-width: 816px;
    width: 100%;
    margin: 0 auto 40px;
  }
  #section-style .row-style h3 {
    margin-bottom: 25px;
    padding-top: 45px;
  }
  #section-style .row-style h3:before {
    width: 100px;
  }
  #section-style .row-style .img-group {
    flex-direction: row;
    justify-content: center;
    gap: 15px;
    margin: 0 0 14px;
  }
  #section-style .row-style .suit-info .txt {
    max-width: 362px;
    width: 47%;
    float: right;
    padding: 0;
    margin: 36px 0 20px;
  }
  #section-style .row-style .suit-info .suit-img {
    max-width: 409px;
    width: 52%;
    float: left;
    margin: 0 0 0 -9px;
  }
  #section-style .row-style .suit-info .suit-img:before {
    width: 710px;
    height: 710px;
    left: -315px;
    top: -186px;
  }
  #section-style .row-style .suit-info .suit-price {
    max-width: 362px;
    width: 47%;
    float: right;
  }
  #section-style .row-style.suit-left .suit-info .txt {
    float: left;
    margin: 13px 0 20px;
  }
  #section-style .row-style.suit-left .suit-info .suit-img {
    float: right;
    margin: 0 -4px 0 0;
  }
  #section-style .row-style.suit-left .suit-info .suit-img:before {
    left: auto;
    right: -315px;
    top: -191px;
  }
  #section-style .row-style.suit-left .suit-info .suit-price {
    float: left;
  }
}

#section-extra {
  background: #E6DFDA;
  padding: 7.5vw 0 19.2vw;
}

#section-extra h2 {
  margin-bottom: 10.1vw;
}

#section-extra .img-group {
  display: flex;
  flex-direction: column;
  gap: 2.7vw;
  margin-bottom: 9.3vw;
}

#section-extra .row-info .txt {
  padding: 0 3.2vw 8vw;
}

#section-extra .row-info .group-price-cm {
  max-width: 266px;
}

#section-extra .row-info .group-price-cm .group-price-list .group-price-row dl {
  width: 164px;
}

@media screen and (max-width: 767px) {
  #section-extra .h2-cm {
    font-size: 9.6vw;
  }
}

@media screen and (min-width: 768px) {
  #section-extra {
    padding: 89px 0 65px;
  }
  #section-extra h2 {
    margin-bottom: 80px;
  }
  #section-extra .img-group {
    max-width: 815px;
    margin: 0 auto 50px;
    flex-direction: row;
    justify-content: center;
    gap: 15px;
  }
  #section-extra .row-info {
    max-width: 815px;
    margin: 0 auto;
    display: flex;
    gap: 90px;
  }
  #section-extra .row-info .txt {
    max-width: 362px;
    padding: 0;
  }
  #section-extra .row-info .group-price-cm {
    width: 50%;
  }
}

#section-more {
  background: #8481B4;
  color: #fff;
  padding: 10.7vw 0 15.5vw;
}

#section-more h2 {
  padding: 0 3.2vw;
  margin-bottom: 8vw;
}

#section-more .img {
  width: 82.7vw;
  margin: 0 auto 9.3vw;
}

#section-more .txt {
  padding: 0 3.2vw 9.9vw;
}

@media screen and (max-width: 767px) {
  #section-more .h2-cm {
    font-size: 9.6vw;
    line-height: 1.3;
    text-align: left;
  }
}

@media screen and (min-width: 768px) {
  #section-more {
    padding: 75px 0 78px;
  }
  #section-more h2 {
    padding: 0;
    margin-bottom: 70px;
  }
  #section-more .img {
    max-width: 582px;
    width: 100%;
    margin: 0 auto 35px;
  }
  #section-more .txt {
    max-width: 422px;
    margin: 0 auto 20px;
    padding: 0;
  }
  #section-more .group-price-cm {
    margin: 0 auto;
  }
}

#section-bnr {
  padding: 18.7vw 0;
  background: #EDEDED;
}

@media screen and (min-width: 768px) {
  #section-bnr {
    padding: 100px 0;
  }
}
