@charset "UTF-8";
/* ---------------------------------------------------------------

	バースデーキャンペーン（通常用・JRE CARD用共通） CSS
	通常用　　/card/birthday/birthday_usually.html
　　　　JRE CARD用　　/card/birthday/birthday_jrecard.html　　

	01. 初期化
	02. 汎用クラス
	03. ファーストコンテンツ
	04. キャンペーン内容

	コンテンツ横幅：1200px
	基本フォントサイズ：16px
	VWのベース：PCは1024px、SPは375px

--------------------------------------------------------------- */
/* ---------------------------------------------------------------

	01. 初期化

--------------------------------------------------------------- */
main img {
  width: 100%;
}

[data-modal=trigger] {
  border: none;
  background-color: transparent;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  font-family: "Noto Sans JP";
}

a * {
  pointer-events: none;
}

/* ---------------------------------------------------------------

	02. 汎用クラス

--------------------------------------------------------------- */
.kome {
  padding-left: 1em;
}
.kome > li {
  text-indent: -1em;
  font-size: clamp(10px, 1.171875vw, 12px);
  color: #222;
}
@media only screen and (max-width: 750px) {
  .kome > li {
    font-size: min(3.2vw, 12px);
  }
}

/* インデント */
.indent6 {
  padding-left: 6em;
  text-indent: -6em;
}

/* 余白 */
.mt10 {
  margin-top: min(0.9765625vw, 10px) !important;
}

.mt15 {
  margin-top: min(1.46484375vw, 15px) !important;
}

.mt20 {
  margin-top: min(1.953125vw, 20px) !important;
}

.mt25 {
  margin-top: min(2.44140625vw, 25px) !important;
}

.mt30 {
  margin-top: min(2.9296875vw, 30px) !important;
}

.mt35 {
  margin-top: min(3.41796875vw, 35px) !important;
}

.mt40 {
  margin-top: min(3.90625vw, 40px) !important;
}

.mt45 {
  margin-top: min(4.39453125vw, 45px) !important;
}

.mt50 {
  margin-top: min(4.8828125vw, 50px) !important;
}

.mt55 {
  margin-top: min(5.37109375vw, 55px) !important;
}

.mt60 {
  margin-top: min(5.859375vw, 60px) !important;
}

@media only screen and (max-width: 750px) {
  .mt10sp {
    margin-top: 2.6666666vw !important;
  }
  .mt15sp {
    margin-top: 4vw !important;
  }
  .mt20sp {
    margin-top: 5.333333vw !important;
  }
  .mt25sp {
    margin-top: 6.6666666vw !important;
  }
  .mt30sp {
    margin-top: 8vw !important;
  }
  .mt35sp {
    margin-top: 9.3333333vw !important;
  }
}
/* フォントサイズ */
.fs14 {
  font-size: min(1.3671875vw, 14px) !important;
}

.fs18 {
  font-size: min(1.7578125vw, 18px) !important;
}

@media only screen and (max-width: 750px) {
  .fs12sp {
    font-size: 3.2vw !important;
  }
  .fs13sp {
    font-size: 3.466666vw !important;
  }
  .fs14sp {
    font-size: 3.7333333vw !important;
  }
  .fs15sp {
    font-size: 4vw !important;
  }
  .fs16sp {
    font-size: 4.2666666vw !important;
  }
}
/* インデント */
@media only screen and (max-width: 750px) {
  .ind-05sp {
    text-indent: -0.5em !important;
  }
}
/* 色 */
.c-white {
  color: #fff !important;
}

.c-red {
  color: #d80000 !important;
}

/* 太字 */
.bold {
  font-weight: bold !important;
}

/* マーカー */
.marker {
  text-decoration: underline;
  text-decoration-thickness: 0.35em;
  text-decoration-color: #edcc7a;
  text-underline-offset: -0.1em;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
  font-weight: bold;
}
.marker.silver {
  text-decoration-color: #dee0e1 !important;
  text-underline-offset: 0;
}
.marker.pink {
  text-decoration-color: #fcdede !important;
  text-underline-offset: 0;
  color: #d80000;
}

.u-tabletItem {
  display: none;
}

/* タブレット */
@media only screen and (max-width: 1024px) {
  .u-tabletItem {
    display: inline-block;
  }
}
/* 終了のお知らせ */
.cpend {
  margin: min(2.5390625vw, 26px) auto 0;
  max-width: 1200px;
  border: solid 1px #d10000;
  border-radius: min(0.9765625vw, 10px);
  padding: 1.5em;
  background-color: #fff0f0;
  text-align: center;
  font-size: min(1.953125vw, 20px);
  font-weight: bold;
  color: #d80000;
}
@media only screen and (max-width: 750px) {
  .cpend {
    margin: 5.3333333vw 4vw;
    border-radius: 2.6666666vw;
    font-size: 4.8vw;
  }
}

.flow-cont .cpend {
  margin: 0 0 min(1.953125vw, 20px);
}
@media only screen and (max-width: 750px) {
  .flow-cont .cpend {
    margin-bottom: 4vw;
  }
}


/* ---------------------------------------------------------------

	03. ファーストコンテンツ

--------------------------------------------------------------- */
.box-wrap, .box-wrap-pc {
  box-sizing: border-box;
  padding: 0 min(2.859375vw, 60px);
    background-color: #fff3dc;
}

@media only screen and (max-width: 750px) {
  .box-wrap {
    padding: 5.333333vw 4vw;
  }
  .box-wrap-pc {
    padding: 0;
  }
}
/* メインビジュアル */
.mainVisual {
  overflow: hidden;
  display: block;
  margin: min(2.5390625vw, 1px) auto 0;
  max-width: 1000px;
  width: 100%;
}

.mainVisual > img {
  display: block;
}
@media only screen and (max-width: 750px) {
  .mainVisual {
    margin: 0;
    border-radius: 0;
  }
}

/* ---------------------------------------------------------------

	04. キャンペーン内容

--------------------------------------------------------------- */
.emphasis-sec {
  padding: 50px 0 0;
  background-color: #fff3dc;
}

@media only screen and (max-width: 750px) {
  .emphasis-sec {
    padding: 10vw 0 0;
  }
}

.articlebody {
  overflow: hidden;
  padding: 0vw 6.1282051282vw 4.5vw;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 5px 16px 0 rgba(0, 0, 0, 0.09);
}

.partiton-title {
    color: #fff;
    text-align: center;
    font-size: min(2.5vw,27px);
    padding: 7px;
    font-weight: bold;
    background-color: #008ed5;
    border-radius: 0 0 12px 12px;
}

@media only screen and (max-width: 750px) {
  .partiton-title {
    font-size: 4.5vw;
    padding: 10px;
  }
}

.article01  {
  text-align: center;
  font-size: min(3.125vw, 28px);
  font-weight: bold;
  margin-top: 30px;
}

.article01 > .txt {
  color: #222;
  border-bottom:3px dotted #222;
  display: inline-block;
  font-size:min(2.5vw,27px);
}

.txt-jre {
  color: #222;
  display: inline-block;
  font-size:min(2.5vw,27px);
}



/* JRE CARD用でのみ使用 */

@media only screen and (max-width: 750px) {
  .article01 .txt {
    font-size: 5vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
  .txt-jre {
    font-size: 4.8vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
}

.point-section{
  padding: clamp(16px, 4vw, 48px) 0;
}

.point-row{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(4vw,10px);
  flex-wrap: nowrap;
  margin-bottom: 5vw;
}

.point-card {
  width: min(520px, 42vw);
  min-width: 280px;
  background: #fff;
  border: 2px solid #008ed5;
  border-radius: min(1.953125vw, 20px);
  overflow: hidden; /* タイトル帯の角丸を一致させる */
  text-align: center;
}

.point-card_title01,.point-card_title02 {
  margin: 0;
  background: #008ed5;
  padding: 10px 16px 5px;
  border-radius: 0.5em 0.5em 0 0;
}

.point-card_title01 img {
  width: min(18vw,210px);
  max-width: 100%;
}

.point-card_title02 img {
  width: min(24vw,300px);
  max-width: 100%;
}

.point-card_body{
  padding: 1.2vw 1vw 1.5vw;
}

.point-card_lead{
  color: #0076c7;
  font-weight: bold;
  font-size: min(32px, 2.2vw);
  letter-spacing: 0.08em;
}

.point-card .kome > li {
  text-align: center;
}

@media only screen and (max-width: 750px) {
  .point-row{
    flex-direction: column;
    gap: 0;
  }
  .point-card{
    width: 100%;
  }
  .point-plus{
    font-size: clamp(32px, 8vw, 52px); 
  }
  .point-card_title01,.point-card_title02 {
    padding: 10px 16px 7px;
    border-radius: 0.3em 0.3em 0 0;
  }
  .point-card_title01 img {
    width: 46vw;
  }
  .point-card_title02 img {
    width: 68vw;
  }
  .point-card_lead{
    font-size: 6vw;
    letter-spacing: 0.1em;
  }
  .point-card_body{
    padding: 5vw 4vw 6.5vw;
  }
}

.store {
  margin: min(5vw,60px) 0 0;
}

.store-title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: min(27px,2.5vw);
  margin-bottom: 50px;
}

.store-title-txt {
  position: relative;
  display: inline-block;
  text-align: center;
}

.store-title-txt::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 4px;
  background-color: #2f8d4e;
  border-radius: 2px;
  display: block;
}

.store > .notesTxt {
  color: #222;
}

@media only screen and (max-width: 750px) {
  .store-title{
    font-size: 5vw;
    margin: 50px 0 30px;
  }
  .note-sp {
    font-size: 2.9vw;
  }
}

.article01 .point {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 30px 50px 0;
}

@media only screen and (max-width: 750px) {
  .article01 .point {
    padding: 20px 30px 0;
  }
}

.article01 .point .icon {
  margin-right: 0.8em;
  padding-top: 0.8em;
  width: min(7.984375vw, 100px);
}

@media only screen and (max-width: 750px) {
  .point {
    flex-direction: column;
    text-align: center;
  }
  .article01 .point .icon {
    width: 20vw;
    padding-bottom: 1em;
  }
}

.article01 .point .pp-txt {
  text-align: left;
  line-height: 1.5;
  font-size: min(2.5390625vw, 20px);
  font-weight: 200;
  color: #222;
}

@media only screen and (max-width: 750px) {
  .article01 .point .pp-txt {
    font-size: 4vw;
    line-height: 1.7;
  }
}

.point-img {
  margin: 40px auto 65px;
  max-width: 540px;
}

@media only screen and (max-width: 750px) {
  .point-img {
    max-width: 68vw;
    margin: 30px auto;
  }
}

.color-box01 {
  margin-top: min(3.41796875vw, 35px);
  border-radius: min(1.953125vw, 20px);
  padding: min(5.54296875vw, 67px) min(8.49609375vw, 87px);
  border: 2px solid #008ed5;
  background-color: #fff;
}
@media only screen and (max-width: 750px) {
  .color-box01 {
    margin-top: 4vw;
    border-radius: 2.666666vw;
    padding: 12vw 4vw 8vw;
  }
}

.color-box01 .kome {
  margin-top: min(3.41796875vw, 35px);
}


._t-center {
  text-align: center !important;
}

._mt-018em{
  margin-top: -1.8em !important;
}

.label-mark,.label-mark02 {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 450px;
  max-width: 100%;
  padding: 10px 16px;
  background-color: #008ed5;
  border-radius: 0.5em;

}

@media only screen and (max-width: 750px) {
  .label-mark,.label-mark02 {
    border-radius: 0.5em 0.5em 0 0;
    width: 80vw;
    max-width: 100%;
  }
}

.label-mark img {
  display: block;
  margin: 0 auto;
  max-width: 200px;
}

@media only screen and (max-width: 750px) {
  .label-mark img {
    max-width: 41vw;
  }
}

.label-mark02 img {
  display: block;
  margin: 0 auto;
  max-width: 270px;
}

@media only screen and (max-width: 750px) {
  .label-mark02 img {
    max-width: 55vw;
  }
}

.description {
  font-size: min(22px,2vw);
  font-weight: 200;
  color: #222;
  margin: 0;
  text-align: center;
  letter-spacing: 0.05em;
}

.description .highlight {
  color: #0076c7;
  font-weight: bold;
  font-size: min(25px,2.2vw);
}

.description-b {
  font-size: 2.5rem;
}

@media only screen and (max-width: 750px) {
  .description {
    font-size: 4vw;
  }
  .description .highlight{
    font-size: 6vw;
  }
  .description-b {
    font-size: 8vw;
  }
}

.icons-image img {
  display: block;
  margin: 30px auto;
  max-width: 100%;
  height: auto;
}

@media only screen and (max-width: 750px) {
  .icons-image img {
    margin: 20px auto;
    max-width: 90%;
  }
}

@media only screen and (max-width: 750px) {
  .point01 {
    margin-top: 4vw;
  }
}
.point01 .kome {
  margin-top: min(0.9765625vw, 10px);
  text-align: center;
}
@media only screen and (max-width: 750px) {
  .point01 .kome {
    margin-left: 4vw;
    text-align: left;
  }
}
.point01 .kome.kome_2 {
  text-align: left;
}

.plus-sign {
  font-size: 5rem;
  color: #0076c7;
  text-align: center;
}

@media only screen and (max-width: 750px) {
  .plus-sign {
    font-size: 17vw;
    margin: -2vw auto;
  }
}

.viewport-center_j {
  margin-top: 30px; 
  display: grid;
  place-items: center; 
}

.stack_j {
  width: 100%;
  max-width: 720px;
  margin-bottom: min(15vw,200px);
  box-sizing: border-box;
}

.viewport-center{ 
  display: grid;
  place-items: center; 
}


.stack {
  width: 100%;
  max-width: 720px;
  margin-bottom: min(15vw,165px);
  box-sizing: border-box;
}

.right-col_j {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 60px;
  object-fit: contain; 
}

.charge-section {
  display: grid;
  grid-template-columns: 4fr 6fr;
  gap: 0;
  align-items: stretch;
  height: clamp(140px, 24vw, 145px); 
}

.charge-section_j {
  display: grid;
  grid-template-columns: 4fr 6fr;
  gap: 0;
  align-items: stretch;
  height: clamp(140px, 24vw, 182px); 
}

.box{
  display: grid;
  align-items: center; 
  justify-items: center;
}

.frame {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.frame img{
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

.text-wrap{
  width: 100%;
  display: grid;
  justify-items: start;
  align-content: center;
}

 .right-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 40px;
  object-fit: contain; 

}
.charge-text {
  font-size: min(20.5px,2vw);
  font-weight: 200;
  color: #222;
  object-fit: contain;
}

.charge-text .highlight {
  color: #0076c7;
  font-weight: bold;
  font-size: min(25px,2.2vw);
}

.charge-b {
  font-size: 2.5rem;
}



@media only screen and (max-width: 750px) {
  .no-break {
    white-space: nowrap;
  }
  .stack {
    height: auto;
    margin-bottom: 0;
  }
  .sp-block-upper  {
    flex-direction: column;
    text-align: center;
    margin: 0 auto;
    display: flex;
    height: auto;
  }
   .sp-block-lower  {
    flex-direction: column;
    text-align: center;
    margin: 0 auto;
    display: flex;
    height: auto;
    margin-bottom: 20px;
  }
  .sp-block-upper .frame img{
    max-width: 48vw;
  }
   .sp-block-lower .frame img{
    max-width: 60vw;
  }
  .charge-section .right-col {
    margin: 0 auto 20px;
  }
  .right-col {
    order: 1; /* テキストを先に */
  }
  .box {
    order: 2; /* 画像を後に */
    display: block;
  }
  .charge-text {
    font-size: 4vw;
    text-align: center;
  }
  .charge-text .highlight {
    font-size: 6vw;
  }
  .charge-b {
    font-size: 8vw;
  }

  .viewport-center_j {
    display: block;
  }
  .sp-block-upper_j  {
    flex-direction: column;
    text-align: center;
    margin: 0 auto;
    display: flex;
    height: auto;
  }
  .sp-block-lower_j  {
    flex-direction: column;
    text-align: center;
    margin: 0 auto;
    display: flex;
    height: auto;
    margin-bottom: 20px;
  }
  .sp-block-upper_j .frame img{
    max-width: 55vw;
    margin-top: 20px;
  }
  .sp-block-lower_j .frame img{
    max-width: 67vw;
    margin-top: 20px;
  }
  .charge-section .right-col {
    margin: 0 auto 20px;
  }
  .right-col_j {
    order: 1; /* テキストを先に */
    margin: 0 auto;
  }
  .box_j {
    order: 2; /* 画像を後に */
    display: block;
  }

}


hr {
  border: none;
  border-top: 1px solid #ccc;
  margin: 40px 0;
}

.btnholder {
  margin: 60px auto;
  width: 500px;
  max-width: 100%;
}

@media only screen and (max-width: 750px) {
  .btnholder {
    width: 90vw;
    max-width: 100%;
    margin: 40px auto;
  }
}

.content-wrapper {
  width: 600px;
  max-width: 100%;
  text-align: center;
  margin: 0 auto;
}

.contents-title {
  background-color: #d9eef9;
  color: #0076c7;
  font-weight: bold;
  padding: 10px;
  font-size: min(22px,2.2vw);
  margin: 70px 0 50px;
}

.contents-img {
  width: 100%;
  max-width: 550px;
  margin: auto;
}

.contents-text {
  font-size: min(22px,2.2vw);
  font-weight: 200;
  color: #222;
  margin: 30px 0;
}

@media only screen and (max-width: 750px) {
  .contents-title {
    font-size: 4vw;
    margin: 50px 0 60px;
  }
  .contents-text {
    font-size: 5vw;
  }
}

.coin-img {
  width: 100%;
  max-width: 430px;
  margin: auto;
}

@media only screen and (max-width: 750px){
  .coin-img{
    width: 100%;
    max-width: 58vw;
    margin-top: 12vw;
  }
}


.footer-img {
  max-width: 100%;
  height: auto;
  margin-bottom: -10px;
}
