/* ★★ を検索して更新 */

/* リセットCSS(ここ変更するとレイアウト崩れます) */
html,body{border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:"Noto Sans JP","Yu Gothic","Meiryo",sans-serif;vertical-align:baseline;margin:0;padding:0}@media all and (-ms-high-contrast: none){html,body{font-family:"メイリオ",Meiryo,"游ゴシック",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif}}body{line-height:1}div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:"Noto Sans JP","Yu Gothic","Meiryo",sans-serif;vertical-align:baseline;margin:0;padding:0}@media all and (-ms-high-contrast: none){div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{font-family:"メイリオ",Meiryo,"游ゴシック",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif}}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{width:100%;border-collapse:collapse;border-spacing:0}a{text-decoration:none;color:#1D394F}a.decoration{text-decoration:underline}a.decoration:visited,a.decoration:focus,a.decoration:active{text-decoration:underline;outline:0}a:visited,a:focus,a:active{text-decoration:none;color:#1D394F;outline:0}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}* html .clearfix{zoom:1}:first-child+html .clearfix{zoom:1}html{font-size:62.5%}body{font-size:16px;color:#1D394F;-webkit-text-size-adjust:100%}#wrap{font-size:16px}a{color:#1D394F}a:visited,a:focus,a:active{color:#1D394F}@media only screen and (min-width: 1080px){a[href^="tel:"]{pointer-events:none}}img{max-width:100%;height:auto;vertical-align:top;image-rendering:-webkit-optimize-contrast}@media only screen and (min-width: 1080px){.flL{float:left}.flR{float:right}.hoverOpacity{-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-delay:0;transition-delay:0}.hoverOpacity:hover{opacity:.8}.pcH{display:none!important}}@media only screen and (max-width: 1079px){.spTabH{display:none!important}}@media only screen and (min-width: 768px)and (max-width: 1079px){.tabH{display:none!important}}@media only screen and (max-width: 767px){.spH{display:none!important}}.alignL{text-align:left}.alignC{text-align:center}.alignR{text-align:right}@media only screen and (min-width: 768px)and (max-width: 1079px){.tabAlignL{text-align:left}.tabAlignC{text-align:center}.tabAlignR{text-align:right}}@media only screen and (max-width: 767px){.spAlignL{text-align:left}.spAlignC{text-align:center}.spAlignR{text-align:right}}.tabBox{width:100%;display:none}.tabBox.active{display:block}

.inner {
  margin: 0 auto;
  width: 90%;
  max-width: 1024px;
}

@media screen and (min-width: 2200px) {
  .inner {
    max-width: 1380px;
    margin: 0 auto;
  }
}

/* PC向けスタイル（1080px以上） */
@media screen and (min-width: 1080px) {
  .giftcampaign {
    padding-top: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .giftcampaign .maintitleWrap .maintitle {
    white-space: nowrap;
    text-align: center;
    margin-top: 15px;
    font-size: 46px;
    /* 260122 変更 */
    font-weight: bold;
    color: #fff;
    line-height: 1.3;
    text-shadow: 2px 5px 3px #fff;
  }
}

.giftcampaign .maintitleWrap .maintitle .sp_text {
  display: none;
}

.giftcampaign .maintitleWrap .maintitle .sp_text .sp_space {
  display: none;
}

.giftcampaign .maintitleWrap .mintextWrap .mintext {
  margin-top: 15px;
  font-weight: 500;
  color: #fff;
  font-size: 28px;
  text-align: center;
  letter-spacing: -.04em;
  line-height: 1.5;
}

.giftcampaign .maintitleWrap .periodWrap {
  margin-top: 15px;
}

.giftcampaign .maintitleWrap .periodWrap .period-text {
  margin: 0 auto;
  width: 660px;
  background-size: cover;
  background-position: center;
}

.giftcampaign .maintitleWrap .periodWrap .period-text .text {
  padding: 12px 0;
  display: flex;
  text-align: center;
  font-size: 22px;
  color: #FFF;
  font-weight: 400;
  align-items: center;
  justify-content: center;
}

.giftcampaign .maintitleWrap .periodWrap .period-text .text .mintext {
  font-size: 16px;
  font-weight: bold;
}

.giftcampaign .maintitleWrap .periodWrap .period-text .text .mintext &:last-of-type {
  border-left: none;
  padding-left: 0;
}

.giftcampaign .maintitleWrap .periodWrap .period-text .text .b-text {
  font-size: 26px;
  font-weight: bold;
}

.giftcampaign .maintitleWrap .periodWrap .period-text .text .b-text .big {
  font-size: 28px;
  font-weight: bold;
}

/* SP向けスタイル（1080px以下） */
@media screen and (max-width: 1079px) {
  .giftcampaign {
    padding-top: 0;
  }

  .giftcampaign .maintitleWrap {
    margin: calc(70 / 375 * 100vw) 0 calc(20 / 375 * 100vw) 0;
    /* 20251029_修正分 */
  }

  .giftcampaign .maintitleWrap .maintitle {
    color: #fff;
    line-height: 1.3;
    font-size: calc(24 / 375 * 100vw);
    padding-bottom: calc(15 / 375 * 100vw);
    margin-top: 0;
    text-align: center;
    font-weight: bold;
    text-shadow: 2px 4px 3px #fff;
  }

  .giftcampaign .maintitleWrap .maintitle .sp_text {
    display: block;
  }

  .giftcampaign .maintitleWrap .maintitle .sp_text .sp_space {
    display: block;
  }

  .giftcampaign .maintitleWrap .mintextWrap {
    text-align: center;
  }

  .giftcampaign .maintitleWrap .mintextWrap .mintext {
    margin-top: 0;
    font-weight: 500;
    color: #fff;
    font-size: calc(12 / 375 * 100vw);
    text-align: center;
    letter-spacing: .01em;
    line-height: 1.6;
  }

  .giftcampaign .maintitleWrap .periodWrap {
    margin-top: 0;
  }

  .giftcampaign .maintitleWrap .periodWrap .period-text {
    margin: 0 auto;
    width: calc(320 / 375 * 100vw);
    background-size: cover;
    background-position: center;
  }

  .giftcampaign .maintitleWrap .periodWrap .period-text .text {
    padding: calc(5 / 375 * 100vw) calc(15 / 375 * 100vw) calc(5 / 375 * 100vw);
    font-size: calc(13 / 375 * 100vw);
    gap: calc(3 / 375 * 100vw) 0;
    text-align: center;
    color: #FFF;
    font-weight: 400;
  }

  .giftcampaign .maintitleWrap .periodWrap .period-text .text .b-text .big {
    font-size: calc(15 / 375 * 100vw);
  }

  .giftcampaign .maintitleWrap .periodWrap .period-text .text .mintext {
    font-size: calc(10 / 375 * 100vw);
    font-weight: bold;
    border-left: 1px solid #fff;
    padding-left: 13px;
  }

  .giftcampaign .maintitleWrap .periodWrap .period-text .text .mintext:last-of-type {
    border-left: none;
    padding-left: 0;
  }

  .giftcampaign .maintitleWrap .periodWrap .period-text .text .b-text {
    font-size: calc(13 / 375 * 100vw);
    font-weight: bold;
    line-height: 1.3;
  }
}

#giftcampaign {
  position: relative;
}

#giftcampaign .giftcampaignWrap {
  position: relative;
  padding-top: 70px;
  background-size: 100%;
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .giftcampaignWrap {
    padding: calc(20 / 375 * 100vw) 0 calc(25 / 375 * 100vw);
  }
}

#giftcampaign .giftcampaignWrap .flag-img {
  display: none;
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .giftcampaignWrap .flag-img {
    position: absolute;
    display: block;
    top: -29.3333333333vw;
    left: 0;
  }
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .giftcampaignWrap {
    background-image: url("../giftcampaignbg_sp_image.webp") !important;
  }
}

@media only screen and (min-width: 1080px) {

  /* 260122 追加 */
  .giftcampaign {
    position: relative;
  }
}

#giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .giftcampaign-img {
  position: absolute;
  top: auto;
  /* 260122 変更 */
  left: max(-125px, calc(-125 / 1440 * 100vw));
  /* 260122 追加 */
  width: 10vw;
}

@media only screen and (min-width: 1080px) {

  /* 260122 追加 */
  #giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .giftcampaign-img {
    bottom: -70px;
    max-width: 140px;
  }
}

@media only screen and (min-width: 1079px)and (max-width: 1280px) {

  /* 260122 追加 */
  #giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .giftcampaign-img {
    left: calc(-40 / 1080 * 100vw);
  }
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .giftcampaign-img {
    top: 2vw;
    left: 3vw;
    width: 22.6666666667vw;
  }
}

#giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap {
  margin-top: 50px;
  display: flex;
  gap: 0 60px;
  text-align: center;
}

#giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap .box .imageWrap {
  border: 4px solid #3793e7;
  box-shadow: 0px 5.94px 15px rgba(0, 0, 0, 0.2);
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    margin: 0 auto;
    gap: calc(15 / 375 * 100vw) 0;
  }
}

#giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap .box .subtitleWrap {
  margin-top: -10px;
}

#giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap .box .subtitleWrap .subtitle {
  line-height: 1.375;
  margin-top: 15px;
  font-weight: bold;
  -webkit-text-stroke: 4px #fff;
  text-stroke: 4px #fff;
  paint-order: stroke;
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap .box {
    width: 50%;
  }

  #giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap .box .subtitleWrap .subtitle {
    font-size: 11px;
  }
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap .box .subtitleWrap .subtitle {
    font-size: 2.9333333333vw;
    margin-top: 4vw;
  }
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap .box .imageWrap {
    margin: 0 auto;
    width: 32vw;
  }
}

/* モーダル箇所 */
.campaign-wrap {
  padding: 35px 0 75px;
}

@media screen and (max-width: 479px) {
  .campaign-wrap {
    padding: 8vw 0 0 0;
  }
}

.modal-content {
  position: relative;
}

.modal-content #paragraph-2b {
  position: absolute;
  display: block;
  z-index: 10000;
  padding: 100px 70px 70px;
  border-radius: 5px;
  line-height: 1.5;
  color: #1D394F;
  font-size: 16px;
  text-align: justify;
}

@media only screen and (max-width: 1079px) {
  .modal-content #paragraph-2b {
    font-size: 3.7333333333vw;
    padding: 17.3333333333vw 8vw 8vw;
  }
}

.modal-content #paragraph-2b .mintext {
  position: absolute;
  left: 50%;
  top: 3%;
  color: #9CCAE0;
  font-size: 20px;
  line-height: 2;
  transform: translate(-50%, -50%);
}

@media only screen and (max-width: 1079px) {
  .modal-content #paragraph-2b .mintext {
    font-size: 4vw;
    top: 10.6666666667vw;
  }
}

.modal-content #paragraph-2b .maintitle {
  position: absolute;
  left: 50%;
  top: 6%;
  font-size: 34px;
  width: max-content;
  color: #1D394F;
  font-weight: 700;
  border-bottom: 3px solid #3793E7;
  transform: translate(-50%, -50%);
}

@media only screen and (max-width: 1079px) {
  .modal-content #paragraph-2b .maintitle {
    width: 60vw;
    font-size: 6.4vw;
    top: 21.3333333333vw;
  }
}

.modal-content #paragraph-2b .urlWrap {
  border-bottom: 1px solid #1D394F;
}

@media only screen and (max-width: 1079px) {
  .modal-content #paragraph-2b .urlWrap {
    display: block;
  }
}

.modal-content #paragraph-2b span {
  line-height: 2;
  font-weight: 700;
  font-size: 18px;
  color: #3793E7;
}

@media only screen and (max-width: 1079px) {
  .modal-content #paragraph-2b span {
    font-size: 4.2666666667vw;
  }
}

/* モーダル全体の覆い */
.modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  z-index: 9999;
  overflow-y: auto;
  padding: 40px 20px;
  box-sizing: border-box;
}

.modal-content {
  background: #fff;
  margin: auto;
  background-color: rgba(255, 255, 255, 0.05);
  max-width: 800px;
  border-radius: 8px;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
}

/* モーダルを閉じる x ボタンカラー */
.modal-closebtn {
  position: absolute;
  right: 20px;
  top: 15px;
  font-size: 30px;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
  z-index: 10000;
}

@media only screen and (max-width: 1079px) {
  .modal-closebtn {
    position: absolute;
    right: calc(20 / 375 * 100vw);
    top: calc(10 / 375 * 100vw);
    font-size: calc(30 / 375 * 100vw);
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    z-index: 10000;
  }
}

/* モーダルボタンスタイル */
.cp-view-more {
  width: 100%;
  height: auto;
  text-align: center;
  flex-direction: row;
  justify-content: center;
  align-items: flex-start;
  margin: 0 auto;
  display: block;
  position: relative;
  top: auto;
  bottom: 0;
  left: 0%;
  right: 0%;
}

@media only screen and (max-width: 1079px) {
  .cp-view-more {
    display: block;
    margin-bottom: 0;
  }
}

.cp-view-more-button {
  position: relative;
  display: inline-block;
  padding: 16px;
  width: 380px;
  background-color: #23C2A4;
  border-radius: 20vw;
  box-sizing: border-box;
  cursor: pointer;
}

@media only screen and (max-width: 1079px) {
  .cp-view-more-button {
    padding: 3vw 2.6666666667vw;
    width: 76vw;
  }
}

.cp-view-more-button.active .arrow {
  transform: scale(-1, -1) translateY(50%);
}

@media only screen and (max-width: 1079px) {
  .cp-view-more-button.active .arrow {
    top: 32%;
  }
}

.cp-view-more-button .text {
  font-size: 18px;
  font-weight: bold;
  color: #fff;
}

@media only screen and (max-width: 1079px) {
  .cp-view-more-button .text {
    font-size: 3.7333333333vw;
  }
}

.cp-view-more-button .arrow {
  position: absolute;
  top: 35%;
  right: 20px;
  width: 15px;
  transition: 0.5s ease 0s;
}

@media only screen and (max-width: 1079px) {
  .cp-view-more-button .arrow {
    top: 40%;
    right: 4vw;
    width: 2.6666666667vw;
  }
}

/* ----------------- ★★キャンペーン用スタイル ----------------- */
/* 背景画像変更 */
#giftcampaign .giftcampaignWrap {
  background-image: url("../giftcampaignbg_image.webp");
  background-size: 100%;
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
}

/* PC用画像設定 */
#giftcampaign .maintitleWrap .periodWrap .period-text {
  background-image: url("../period.webp");
}

/* SP用画像設定 */
@media only screen and (max-width: 1079px) {
  #giftcampaign .maintitleWrap .periodWrap .period-text {
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
  }
}

/* ★★キャンペーンタイトル・テキスト */
#giftcampaign .maintitleWrap .maintitle {
  color: #1D9696;
}

/* ★★キャンペーンテキスト */
#giftcampaign .maintitleWrap .mintextWrap .mintext {
  color: #ff3399;
  font-size: 28px;
  -webkit-text-stroke: 4px #fff;
  text-stroke: 4px #fff;
  paint-order: stroke;
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .maintitleWrap .mintextWrap .mintext {
    font-size: calc(14 / 375 * 100vw);
    -webkit-text-stroke: 3px #fff;
    text-stroke: 3px #fff;
    paint-order: stroke;
  }
}

#giftcampaign .maintitleWrap .mintextWrap .mintext .bold {
  font-weight: bold;
}

/* 余白調整 */
#giftcampaign .maintitleWrap .maintitle .sp_text {
  display: none;
}

#giftcampaign .maintitleWrap .maintitle .sp_text .sp_space {
  display: none;
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .maintitleWrap .maintitle .sp_text {
    display: block;
  }

  #giftcampaign .maintitleWrap .maintitle .sp_text .sp_space {
    display: block;
  }
}

/* ★★キャンペーン詳細を確認するボタンカラー */
#giftcampaign .cp-view-more-button {
  background-color: #1d394f;
}

/* ★★ギフトキャンペーン画像枠線カラー */
#giftcampaign .giftcampaignWrap .giftcampaignWrap-inner .digitalgiftWrap .box .imageWrap {
  border: 4px solid #FFDB12;
}

/* ★★モーダル内背景色変更 */
#giftcampaign .modal-content #paragraph-2b {
  background-color: rgba(255, 255, 255, 0.95);
}

/* ★★モーダル内サブタイトルカラー変更 */
#giftcampaign .modal-content #paragraph-2b .mintext {
  color: #9CCAE0;
}

/* ★★モーダル内メインタイトルカラー変更 */
#giftcampaign .modal-content #paragraph-2b .maintitle {
  width: max-content;
  font-size: 34px;
  color: #262B31;
  border-bottom: 3px solid #2288DD;
}

@media only screen and (max-width: 1079px) {
  #giftcampaign .modal-content #paragraph-2b .maintitle {
    font-size: calc(17 / 375 * 100vw);
  }
}

/* ★★モーダル内タイトルアイテムカラー変更 */
#giftcampaign .modal-content #paragraph-2b span {
  color: #2288DD;
}

/* ★★モーダル閉じる xボタンカラー */
#giftcampaign .modal-closebtn {
  color: #2288DD;
}

/* iframe高さ調整 */
#giftcampaign {
  overflow: hidden;
}

#campaignIframe {
  display: block;
  width: 100%;
  border: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

iframe {
  display: block;
  width: 100%;
  transition: height 0.3s ease;
}