@charset "utf-8";

/*
***************************************************************
common 上書き
***************************************************************
*/
#container {
  min-width: auto;
}

.main-content {
  background: #fff;
  color: #333;
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro W3",
    "Lucida Grande", "Verdana", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", sans-serif;
  font-feature-settings: "palt";
}

.main-content p,
.main-content a,
.main-content li {
  line-height: 1.6;
}

.main-content a {
  color: currentColor;
  cursor: pointer;
}

.main-content sup {
  font-size: 70%;
  vertical-align: super;
  top: 0;
}

.main-content span {
  line-height: inherit;
  font-weight: inherit;
}

.main-content a.new_icon::after {
  content: "";
  width: 1rem;
  height: 1rem;
  background: url(/purchase/payment/assets/img/icon_newwindow_blk.webp) top/contain no-repeat;
  display: inline-block;
}

.sec-container {
  width: min(100% - 32px, 1200px);
  margin-inline: auto;
  padding-bottom: 0;
}

.sec-container-md {
  width: min(100% - 32px, 1100px);
  margin-inline: auto;
}

.sec-container-sm {
  width: min(100% - 32px, 1000px);
  margin-inline: auto;
}

.sec-container-min {
  width: min(100% - 32px, 800px);
  margin-inline: auto;
}

@media screen and (max-width: 768px) {

  .sec-container,
  .sec-container-md,
  .sec-container-sm,
  .sec-container-min {
    width: 100%;
  }
}

.video-js.vjs-fluid:not(.vjs-audio-only-mode) {
  padding-top: 56.25%;
}

.vjs-tech {
  visibility: visible;
}

/*
***********************************************************
responsive
***********************************************************
*/
/*pc only*/
@media (min-width: 769px) {
  .pc-only {
    display: block;
  }

  .sp-only {
    display: none;
  }
}

/*sp only*/
@media (max-width: 768px) {
  .pc-only {
    display: none;
  }

  .sp-only {
    display: block;
  }
}

.page-btm-row {
  margin-top: 0 !important;
}

.inner-xs-wrap2,
.inner-xs-wrap,
.inner-s-wrap,
.inner-wrap {
  width: calc(100% - 16px);
  overflow: visible;
}

@media screen and (max-width: 768px) {

  .inner-xs-wrap2,
  .inner-xs-wrap,
  .inner-s-wrap,
  .inner-wrap {
    width: 100%;
  }
}

/*
*********************************************************
.main-content
*********************************************************
*/
.main-content {
  max-width: 100%;
  margin: 0 auto;
}

/* chrome 画像・グラフィック文字のぼやけ対策 */
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
  .main-content img {
    image-rendering: -webkit-optimize-contrast;
  }
}

/* safari 画像 デフォルト値 */
@media screen and (-webkit-min-device-pixel-ratio: 0) {

  _::-webkit-full-page-media,
  _:future,
  :root .main-content img {
    image-rendering: auto;
  }
}

.main-content .maximg {
  width: 100%;
  height: auto
}

.main-content .content-inner {
  width: 100%;
  background-color: #fff;
}

#campaign-contents picture,
#campaign-contents picture img {
  width: 100%;
  height: auto;
  display: block;
}

#campaign-contents summary {
  list-style: none;
}

#campaign-contents details>summary::-webkit-details-marker {
  display: none;
}

/*
***************************************************************
#section-kv
***************************************************************
*/
#section-kv {
  width: 100%;
}

#section-kv .kv-inner {
  position: relative;
}

#section-kv .kv-placeholder {
  width: 100%;
  padding-top: 29.5138889%;
  /* 425/1440 */
  pointer-events: none;
}

#section-kv .slideshow-fade {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0;
  opacity: 0;
}

#section-kv .slideshow-fade ul {
  margin: 0;
  padding: 0;
}

#section-kv .slideshow-fade li {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  list-style: none;
}

#section-kv .slideshow-fade li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#section-kv .slider-indicator {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  bottom: var(--size8);
  right: calc(50% - 220px);
  width: 440px;
  column-gap: var(--size16);
  max-width: 100%;
  height: 8px;
  z-index: 2;
}

@media (min-width: 1100px) {
  #section-kv .slider-indicator {
    bottom: var(--size16);
  }
}

#section-kv .segment {
  display: inline-block;
  width: 100%;
  max-width: 62px;
  height: 6px;
  position: relative;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background-color: rgba(0, 0, 0, 0.42);
  overflow: hidden;
  border-radius: 4px;
  cursor: pointer;
}

#section-kv .segment:last-child {
  margin-right: 0;
}

#section-kv .fill {
  position: absolute;
  left: 0;
  top: 0;
  width: 0%;
  height: 100%;
  border-radius: 3px;
  background-color: #fff;
}

@media screen and (min-width: 769px) {
  #section-kv .segment:hover {
    height: 8px;
  }
}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media (max-width: 768px) {
  #section-kv .kv-placeholder {
    padding-top: 87.239583%;
    /* 1340 / 1536 * 100 */
  }

  #section-kv .slideshow-fade {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }

  #section-kv .slider-indicator {
    position: absolute;
    bottom: -16px;
    left: 50%;
    transform: translateX(-50%);
    width: 320px;
    height: 6px;
    column-gap: var(--size16);
  }

  #section-kv {
    margin-bottom: 54px;
  }
}

/*
*********************************************************
#section-greeting
*********************************************************
*/
#section-greeting {
  margin: 50px auto 80px;
}

#section-greeting .lead p {
  font-size: 1.25rem;
  text-align: center;
  line-height: 2.4;
  padding-bottom: 50px;
}

#section-greeting .photo-wrap {
  width: 100%;
  margin: 0 auto;
}

#section-greeting .panel-list {
  display: flex;
  justify-content: center;
  gap: 60px;
}

#section-greeting .panel-list .item {
  width: 100%;
  max-width: 520px;
  flex: 1;
}

#section-greeting .panel-list .item .img {
  position: relative;
}

#section-greeting .panel-list .item p.img-text {
  position: absolute;
  width: 100%;
  color: #fff;
  font-size: 1.375rem;
  line-height: 1.6;
  margin: 0;
}

#section-greeting .panel-list .item .levorg .img-text {
  top: 20px;
  left: 20px;
}

#section-greeting .panel-list .item .leisure .img-text {
  bottom: 20px;
  left: 20px;
}

@media (min-width: 769px) and (max-width: 1110px) {
  #section-greeting .panel-list .item p.img-text {
    font-size: 1.8vw;
  }
}

@media (min-width: 769px) and (max-width: 890px) {
  #section-greeting .lead p {
    font-size: 2vw;
  }
}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media (max-width: 768px) {
  #section-greeting {
    width: 100%;
    margin: 32px 0;
    padding: 0 16px;
  }

  #section-greeting .lead p {
    font-size: 4vw;
    line-height: 2;
    padding-bottom: 32px;
  }

  #section-greeting .panel-list {
    display: block;
  }

  #section-greeting .panel-list .item {
    max-width: inherit;
  }

  #section-greeting .panel-list .item .img.levorg {
    padding-bottom: 16px;
  }

  #section-greeting .panel-list .item p.img-text {
    font-size: 3.75vw;
  }

  #section-greeting .panel-list .item .levorg .img-text {
    top: 14px;
    left: 14px;
  }

  #section-greeting .panel-list .item .leisure .img-text {
    bottom: 14px;
    left: 14px;
  }
}

@media (max-width: 360px) {
  #section-greeting .lead p {
    font-size: 3.75vw;
  }
}

/*
*********************************************************
#section-payment-example （お支払い例）
*********************************************************
*/
#section-payment-example {
  overflow: hidden;
  position: relative;
  background-color: #eeeeef;
  margin: 0 auto;
  padding: 40px 0;
}

#section-payment-example h2 {
  font-size: 1.25rem;
  text-align: center;
  text-decoration: underline;
  text-underline-offset: 10px;
  text-decoration-thickness: 2px;
}

#section-payment-example h3 {
  font-size: 1rem;
  text-align: center;
  padding-top: 15px;
  padding-bottom: 45px;
}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media (max-width: 768px) {
  #section-payment-example h2 {
    font-size: 4.75vw;
    font-weight: bold;
  }

  #section-payment-example h3 {
    font-size: 3.75vw;
    font-weight: bold;
    padding-bottom: 40px;
  }
}

/*
***************************************************************
tab-btns-list
***************************************************************
*/
#section-payment-example .tab-btns-list {
  display: flex;
  justify-content: center;
  gap: 10px;
  list-style: none;
  text-align: center;
  margin: 0 auto;
}

#section-payment-example .tab-btns-list ul {
  max-width: 630px;
  margin: 0 auto;
}

#section-payment-example .tab-btns-list li {
  flex: 1;
  min-width: 0;
  max-width: 150px;
}

#section-payment-example .tab-btns-list .tab-btn {
  display: block;
  width: 100%;
  min-height: 60px;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  border-bottom: none;
  background-color: #ccc;
  margin-right: 0 !important;
  padding: 1rem;
  transition: background-color 0.3s ease, color 0.3s ease;
  cursor: pointer;
}

#section-payment-example .tab-btns-list .tab-btn.active {
  background-color: #333;
}

#section-payment-example .tab-btns-list .tab-btn:not(.active):hover {
  background-color: #b2b2b2;
}

#section-payment-example .tab-btns-list .tab-btn h4 {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #000;
  font-size: 1.125rem;
  text-align: center;
}

#section-payment-example .tab-btns-list .tab-btn.active h4 {
  color: #fff;
}

#section-payment-example .tab-btns-list .tab-btn:not(.active):hover h4 {}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media screen and (max-width: 768px) {
  #section-payment-example .tab-btns-list {
    width: 100%;
    gap: 5px;
    padding: 0 16px;
  }

  #section-payment-example .tab-btns-list li {
    width: 100%;
    max-width: inherit;
  }

  #section-payment-example .tab-btns-list .tab-btn {
    max-width: inherit;
    border-bottom: none;
    padding: 0.5rem 0.5rem 0.5rem;
  }

  #section-payment-example .tab-btns-list .tab-btn h4 {
    font-size: 3vw;
    font-weight: bold;
  }
}

/*
*********************************************************
.tab-content
*********************************************************
*/
#section-payment-example .tab-content {
  max-width: 1100px;
  margin: 0 auto;
  background-color: #fff;
}

#section-payment-example .tab-content-innr {
  display: flex;
  background-color: #fff;
  min-height: 335px;
  gap: 5px;
  padding: 30px 2.8%;
}

/* --------------------- example（左エリア） --------------------  */
#section-payment-example .tab-content-innr .example {
  flex: 0 0 auto;
  width: 31%;
}

#section-payment-example .tab-content-innr .example h5 {
  font-size: 1.75rem;
  padding-bottom: 15px;
}

#section-payment-example .tab-content-innr .example .example-icon {
  display: flex;
  align-items: center;
  gap: 3%;
  padding-bottom: 10px;
}

#section-payment-example .tab-content-innr .example .example-icon p {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  border: 1px solid #333;
  text-align: center;
  font-size: 0.875rem;
  padding: 10px 6px;
}

#section-payment-example .tab-content-innr .example .example-icon p br {
  display: none;
}

#section-payment-example .tab-content-innr .example .example-monthly {
  font-size: 1.75rem;
  text-align: right;
  padding-right: 5px;
}

#section-payment-example .tab-content-innr .example .example-monthly span {
  font-size: 3.25rem;
  font-weight: bold;
  padding-right: 5px;
  padding-left: 2px;
}

#section-payment-example .tab-content-innr .example .example-monthly p.note {
  font-size: 0.75rem;
  font-weight: normal;
  text-align: right;
}

@media (min-width: 1121px) and (max-width: 1200px) {
  #section-payment-example .tab-content-innr .example .example-icon p {
    font-size: 1.125vw;
  }
}

@media (max-width: 1120px) {
  #section-payment-example .tab-content-innr .example .example-icon p {
    font-size: 1.25vw;
    padding: 10px 4px;
  }

  #section-payment-example .tab-content-innr .example .example-monthly {
    font-size: 2vw;
  }

  #section-payment-example .tab-content-innr .example .example-monthly span {
    font-size: 4.25vw;
  }
}

@media (min-width: 769px) and (max-width: 960px) {
  #section-payment-example .tab-content-innr .example h5 {
    font-size: 1.25rem;
  }

  #section-payment-example .tab-content-innr .example .example-icon p {
    font-size: 1.5vw;
  }

  #section-payment-example .tab-content-innr .example .example-icon p br {
    display: block;
  }

  #section-payment-example .tab-content-innr .example .example-monthly p.note {
    font-size: 0.65rem;
  }
}

/* --------------------- photo（中央エリア） --------------------  */
#section-payment-example .tab-content-innr .photo {
  flex: 0 0 auto;
  width: 41%;
  padding-top: 50px;
}

#section-payment-example .tab-content-innr .photo .photo-caption {
  font-size: 0.75rem;
  text-align: center;
}

/* --------------------- detail（右エリア） --------------------  */
#section-payment-example .tab-content-innr .detail {
  flex: 1;
  width: 28%;
}

#section-payment-example .tab-content-innr .detail .detail-spec {
  font-size: 0.75rem;
  line-height: 1.6;
  padding-bottom: 10px;
}

#section-payment-example .tab-content-innr .detail .detail-note {
  font-size: 0.625rem;
  text-align: justify;
}

#section-payment-example .tab-content-innr .detail .detail-note p.text {
  line-height: 1.8 !important;
}

#section-payment-example .tab-content-innr .detail .detail-note p.text-indent {
  line-height: 1.8 !important;
  padding-left: 1em;
  text-indent: -1em;
}

@media (min-width: 769px) and (max-width: 1150px) {
  #section-payment-example .tab-content-innr .detail .detail-note p.text-indent {
    padding-left: 0;
    text-indent: 0;
  }

  #section-payment-example .tab-content-innr .detail .detail-note p.text br,
  #section-payment-example .tab-content-innr .detail .detail-note p.text-indent br {
    display: none;
  }
}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media (max-width: 768px) {
  #section-payment-example .tab-content {
    width: calc(100% - 32px);
    max-width: inherit;
  }

  #section-payment-example .tab-content-innr {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    padding: 24px 16px;
  }

  #section-payment-example .tab-content-innr .example {
    width: 100%;
  }

  #section-payment-example .tab-content-innr .example h5 {
    font-size: 5vw;
    text-align: center;
    font-weight: bold;
    line-height: 1.4;
  }

  #section-payment-example .tab-content-innr .example .example-icon {
    gap: 2%;
    text-align: center;
    padding-bottom: 16px;
  }

  #section-payment-example .tab-content-innr .example .example-icon p {
    width: 32%;
    font-size: 3.25vw;
    padding: 6px 4px;
  }

  #section-payment-example .tab-content-innr .example .example-monthly {
    font-size: 5vw;
    display: flex;
    align-items: flex-end;
  }

  #section-payment-example .tab-content-innr .example .example-monthly span {
    font-size: 11.75vw;
    line-height: 1;
    letter-spacing: -0.02em;
  }

  #section-payment-example .tab-content-innr .example .example-monthly p.note {
    display: inline;
    font-size: 2.75vw;
    line-height: 1.4;
    text-align: justify;
    padding-left: 10px;
  }

  #section-payment-example .tab-content-innr .photo {
    width: 100%;
    padding-top: 10px;
  }

  #section-payment-example .tab-content-innr .photo .photo-caption {
    font-size: 3.2vw;
    text-align: left;
    padding-top: 5px;
  }

  #section-payment-example .tab-content-innr .detail {
    width: 100%;
  }

  #section-payment-example .tab-content-innr .detail .detail-spec {
    font-size: 3.75vw;
    padding-bottom: 15px;
  }

  #section-payment-example .tab-content-innr .detail .detail-note {
    font-size: 3.2vw;
  }
}

@media screen and (max-width: 320px) {
  #section-payment-example .tab-content-innr .example .example-monthly p.note {
    font-size: 2.25vw;
  }
}

/*
*********************************************************
#section-related-sites
*********************************************************
*/
#section-related-sites {
  overflow: hidden;
  margin: 0 auto;
  padding: 40px 0 0;
}

#section-related-sites .bnr {
  position: relative;
  margin: 0 auto;
}

#section-related-sites a:hover {
  opacity: 0.8;
}

#section-related-sites a[target="_blank"]:not(.icn-none):after {
  content: "";
  display: inline-block;
  vertical-align: middle;
  margin-left: 0;
  position: absolute;
  top: 5px;
  right: 5px;
}

#section-related-sites a[target="_blank"]:after {
  background: url(/assets/images/icn_blank_white.svg) no-repeat center center / contain;
  width: 17px;
  height: 16px;
}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media screen and (max-width: 768px) {
  #section-related-sites {
    padding: 40px 16px 0;
  }
}

/*
*********************************************************
#section-annotation
*********************************************************
*/
#section-annotation {
  overflow: hidden;
  position: relative;
  margin: 0 auto;
  padding: 40px 0;
}

#section-annotation .annotation {}

#section-annotation .annotation p {
  font-size: 0.75rem;
  text-align: justify;
}

#section-annotation .annotation p:first-child {
  padding-bottom: 20px;
}

@media (min-width: 769px) and (max-width: 1150px) {
  #section-annotation .annotation p:first-child br {
    display: none;
  }
}

/* ---------------------------------------------  */
/* --------------------- SP --------------------  */
/* ---------------------------------------------  */
@media screen and (max-width: 768px) {
  #section-annotation {
    padding-bottom: 0;
  }

  #section-annotation .annotation {
    padding: 0 16px;
  }

  #section-annotation .annotation p {
    font-size: 3.2vw;
  }

  #section-annotation .annotation br {
    display: none;
  }
}

/*
*********************************************************
.sec_fix_btn - スマートフォン対応の固定ボタン
*********************************************************
*/
.sec_fix_btn {
  /* デスクトップではsticky、スマートフォンではfixedを使用 */
  position: sticky;
  bottom: 0;
  z-index: 100;
  width: 100%;
  background-color: #e3f9ff;
}

.sec_fix_btn .inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.sec_fix_btn .inner .btn_wrap .btn {
  border-radius: 8px;
  background-color: #db5d37;
  color: #fff;
  text-align: center;
  display: block;
  transition: all 0.3s 0s ease;
}

.sec_fix_btn .inner .btn_wrap .btn:hover {
  opacity: 0.7;
}

.sec_fix_btn .inner .btn_wrap .btn .btn_text {
  position: relative;
  display: inline-block;
}

.sec_fix_btn .inner .btn_wrap .btn .btn_text::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  background: #fff;
  z-index: 1;
}

.sec_fix_btn .inner .btn_wrap .btn .btn_text:after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  right: 0;
}

@media (min-width: 769px) {
  .sec_fix_btn .inner {
    padding-block: 0.625rem;
    gap: clamp(1.5rem, -0.278rem + 3.7vw, 2.5rem);
  }

  .sec_fix_btn .inner .btn_wrap p {
    margin-block-end: 0.25rem;
    font-size: clamp(0.75rem, 0.306rem + 0.93vw, 1rem);
    text-align: center;
  }

  .sec_fix_btn .inner .btn_wrap .btn {
    padding: 1.125rem;
    line-height: 1;
    font-size: clamp(1rem, 0.111rem + 1.85vw, 1.5rem);
  }

  .sec_fix_btn .inner .btn_wrap .btn .btn_text {
    padding-inline-end: 1.75rem;
  }

  .sec_fix_btn .inner .btn_wrap .btn .btn_text::before {
    width: 1.25rem;
    height: 2px;
  }

  .sec_fix_btn .inner .btn_wrap .btn .btn_text:after {
    width: 0.8125rem;
    height: 0.8125rem;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
  }
}

/* スマートフォンではfixed positionに変更 */
@media (max-width: 768px) {
  .sec_fix_btn {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1000 !important;
    width: 100% !important;
    background-color: #e3f9ff;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
  }

  .sec_container {
    width: min(100% - 1.25rem, 1200px) !important;
  }

  /* モーダル開閉時も表示を維持 */
  body.modal-open .sec_fix_btn {
    position: fixed !important;
    bottom: 0 !important;
    z-index: 1000 !important;
    display: block !important;
  }

  /* 固定ボタンの高さ分だけ下部にスペースを確保 */
  body {
    padding-bottom: 80px !important;
  }

  /* コンテンツエリアの調整 */
  .main-content .content-inner {
    padding-bottom: 20px;
    overflow: hidden;
  }

  .sec_fix_btn .inner {
    padding-block: 3.13%;
    gap: 2.5%;
    padding-left: 3.13% !important;
    padding-right: 3.13% !important;
  }

  .sec_fix_btn .inner .btn_wrap .btn {
    padding: 6%;
    line-height: 1.4;
    font-size: clamp(0.75rem, 0.482rem + 1.34vw, 1.125rem);
  }

  .sec_fix_btn .inner .btn_wrap .btn .btn_text::before {
    width: 1rem;
    height: 1px;
  }

  .sec_fix_btn .inner .btn_wrap .btn .btn_text {
    padding-inline-end: 1.25rem;
  }

  .sec_fix_btn .inner .btn_wrap .btn .btn_text:after {
    width: 0.5rem;
    height: 0.5rem;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
  }

  .footer .copyright {
    padding-bottom: 30px;
  }
}

@media (min-width: 510px) {
  .sec_fix_btn .inner .btn_wrap .btn .sp_break {
    display: none;
  }
}



