@charset "utf-8";
/*******************

- common

********************/
html {
  height:100%;
  -webkit-tap-highlight-color:rgba(0,0,0,0);
  -webkit-text-size-adjust: 100%;
  font-size:16px;
  line-height:1.375;
  color:#444;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
@media (max-width:767px){
  html {
    font-size:14px;
  }
}
body {
  word-break:break-all;
}
body,
ul, li,
dl, dt, dd,
h1, h2, h3, h4,
p {
  margin:0;
  padding:0;
}
h1, h2, h3, h4 {
  font-size:1em;
}
img {
  border:none;
  max-width:100%;
  height: auto;
  vertical-align:bottom;
}
li {
  list-style:none;
}
p {
  margin-top:1em;
}
p.mt-half {
  margin-top:0.5em;
}
input[type=text] ,
input[type=tel] {
  font-size:16px;
}
:placeholder-shown {
  color : #999;
}
::-webkit-input-placeholder {
  color : #999;
}
:-moz-placeholder {
  color : #999;
}
::-moz-placeholder {
  color : #999;
}
:-ms-input-placeholder {
  color : #999;
}
:placeholder-shown {
  color : #999;
}

.inline-block {
  display:inline-block;
}

.link-text {
  color:#414ede;
  transition:opacity 0.2s linear;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}
.link-text:hover {
  opacity:0.7;
}
img.img-center {
  display: block;
  margin: auto;
  width: fit-content;
  text-align: center;
}

.fs85 { font-size: 85%; }
.fs65 { font-size: 65%; }

.fw-normal { font-weight: normal; }
.fw-bold { font-weight: bold; }

.txt-left   { text-align:  left; }
.txt-right  { text-align: right; }
.txt-center { text-align:center; }

.pc_none { display:none; }

@media (max-width:767px){
  .link-text {
    text-underline-offset: 0.2em;
  }
  .pc_none { display:initial; }
  .sp_none { display:none; }
}

/*******************

- override ms common 

********************/
body {
  min-width: auto;
}
.t-general .o-footer {
  left: auto;
}
#bedore-webagent-inner {
  display:none;
}

/*******************

- .rwd-frame

********************/
.rwd-frame {
  width:1000px;
  margin:0 auto;
}
@media (max-width:1040px){
  .rwd-frame {
    width:auto;
    margin:0 1.923%;
  }
}
@media (max-width:520px){
  .rwd-frame {
    width:auto;
    margin:0 10px;
  }
}

/*******************

- .benefit-header

********************/
.benefit-header {
  position: relative;
  z-index: 20;
  background-color: #fff;
  border-top: solid 3px #b60081;
  text-align: center;
  padding: 18px 32px 12px;
}
.benefit-header .hdr-image {
  display: block;
  margin: auto;
  width: 276px;
}

@media (max-width:767px){
  .benefit-header {
    border-top: none;
    padding: 14px 16px 10px;
  }
  .benefit-header .hdr-image {
    width: 203px;
    margin: 0;
  }
}

/*******************

- .benefit-contents

********************/
.benefit-contents {
  padding-bottom: 40px;
}

/*******************

- .heading

********************/
.heading-1 {
  font-size:26px;
  margin-top:42px;
  line-height:1.25;
  min-height:32.5px;
}

@media (max-width:767px){
  .heading-1 {
    font-size:22px;
    margin-top:32px;
  }
}

/*******************

- #modal-bincode

********************/
#modal-bincode {
  position:fixed;
  top   : 0;
  left  : 0;
  right : 0;
  bottom: 0;
  background-color: #DAE3F3;
  display:none;
  overflow:auto;
}

@media (max-width:767px){
  #modal-bincode {
    z-index: 1;
  }
}

/*******************

- .bincode-*

********************/
.bincode-wrap {
  position:absolute;
  top   : 0;
  left  : 0;
  right : 0;
  bottom: 0;
}
.bincode-contents {
  text-align: center;
  padding: 40px 10px;
  height: 100%;
  overflow: auto;
}
.bincode-box {
  display:inline-block;
  width:700px;
  max-width:100%;
  background-color:#FFF;
  padding:15px 10px 50px;
  box-sizing:border-box;
  position:relative;
  margin: 0 auto;
}
.bincode-heading {
  font-size:20px;
  font-weight:bold;
  line-height:1.25;
  letter-spacing:2.5px;
  margin-top:40px;
}
.bincode-description {
  font-size: 14px;
  line-height:1.6;
  letter-spacing:2px;
  margin-top:20px;
}
.bincode-check-area {
  padding-top:25px;
}
.bincode-check-area.error .bincode-check .input-bin {
  border-color:#fa4b62;
  box-shadow:0 0 0 1px #fa4b62;
}
.bincode-check-area .bin-error-msg {
  color:#fa4b62;
  padding-left: 2em;
  position:relative;
  display:inline-block;
}
.bincode-check-area .bin-error-msg::before {
  content:"";
  display:block;
  background-color:#fa4b62;
  border-radius:50%;
  width: 1.44em;
  height:1.44em;
  position:absolute;
  top:0;
  left:0;
}
.bincode-check-area .bin-error-msg::after {
  content:"";
  display:block;
  position:absolute;
  width: 0.2em;
  height: 0.16em;
  border-color:#fff;
  border-width: 0.57em 0 0.24em;
  border-style:solid;
  top: 0.28em;
  left: 0.64em;
  box-sizing: content-box;
}
.bincode-check {
  margin-top:15px;
}
.bincode-check .input-bin {
  border:1px solid #ddd;
  display:inline-block;
  padding:8px 2px;
  border-radius:2px;
  margin:0 3px;
  vertical-align:middle;
}
.bincode-check .input-bin input {
  appearance : none;
  border:none;
  outline:none;
  display:block;
  width:4em;
  text-align:center;
  vertical-align:middle;
  padding:0;
  line-height:1;
  height:1.1em;
  font-size:16px;
}
.bincode-done {
  padding-bottom:10px;
}
.btn-bincode {
  font-size:16px;
  line-height:1.25;
  display:block;
  cursor:pointer;
  margin:40px auto 20px;
  padding:15px 20px;
  color:#fff;
  background-color:#4472C4;
  text-align:center;
  max-width:258px;
  box-sizing:border-box;
  border-radius:25px;
  letter-spacing:2px;
  text-decoration:none;
}
.btn-bincode:hover {
  opacity:0.7;
}

@media (max-width:767px){
  .bincode-contents {
    position: relative;
    margin: auto;
  }
  .bincode-box{
    width: 100%;
    padding-bottom: 30px;
    width: 100%;
    height: auto;
    display:table;
    margin-bottom: 30px;
  }
  .bincode-description {
    font-size: 14px;
  }
  .bincode-check-area ,
  .bincode-check-area p {
    font-size: 14px;
  }
  .bincode-check-area {
    font-size: 3.73vw;
    padding-top: 1em;
  }
  .bincode-rendering {
    display:table-cell;
    vertical-align:middle;
  }
  .bincode-heading {
    font-size: 20px;
    margin-top: 20px;
  }
}

/*******************

- .loading-box

********************/
.loading-box  {
  position:absolute;
  top   : 0;
  left  : 0;
  right : 0;
  bottom: 0;
  background-image:url("/information_ex/business_card/benefit/images/loading.gif");
  background-repeat:no-repeat;
  background-position:center center;
}
.loading-box > img {
  position:absolute;
  top   : 0;
  left  : 0;
  right : 0;
  bottom: 0;
  margin:auto;
  display:none;
}

/*******************

- .bincode-checkimg

********************/
.bincode-checkimg {
  min-height:200px;
  padding:0;
  text-align:center;
}
.bincode-checkimg > img {
  width:200px;
  height:auto;
}

/*******************

- .checkmark

********************/
.checkmark {
  content:"";
  display:block;
  box-sizing:border-box;
  border:9px solid #66da68;
  border-radius:50%;
  width:87px;
  height:87px;
  margin:auto;
  position:relative;
}
.checkmark::before {
  content:"";
  display:block;
  width:30px;
  width:0;
  height:13px;
  position:absolute;
  border-style:solid;
  border-color:#66da68;
  border-width:0 0 9px 9px;
  box-sizing:content-box;
  top:50%;
  left:13px;
  transform:rotate(-45deg) scaleY(0);
  transform-origin:left top;
}

.checkmark.done::before {
  animation-name : checkAnimation;
  animation-duration : 0.7s;
  animation-timing-function : linear;
  animation-fill-mode : forwards;
  animation-delay : 0.5s;
}

@keyframes checkAnimation {
  40% {
    transform : rotate(-45deg) scaleY(1);
    width:0;
  }
  100% {
    transform : rotate(-45deg) scaleY(1);
    width:30px;
  }
}

/*******************

- #data-image
  .box-image

********************/
.box-image {
  display: flex;
  padding: 16px;
  background-color: #e9e8e4;
  align-items: center;
  justify-content: center;
  margin: 20px auto;
}
.box-image > img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}

/*******************

- .box-benefit

********************/
.box-benefit {
  padding:20px 17px;
  background-color: #EFF7F6;
  border:4px solid #4a5eaa;
}
.box-benefit:first-child ,
* + .box-benefit {
  margin-top:30px;
}
.box-benefit + .box-benefit {
  margin-top:20px;
}
.box-benefit > *:first-child {
  margin-top:5px;
}
.data-benefit-description {
  font-size:20px;
  line-height:1.25;
  min-height:24px;
}
.data-benefit-code {
  color:#345bc0;
  font-size:20px;
  line-height:1.4;
  font-weight:bold;
  margin-top:8px;
  min-height:27.5px;
}
.box-benefit img {
  display:block;
  margin:10px auto;
}

@media (max-width:767px){
  .box-benefit {
    padding:12px 10px 16px;
    border-width:2px;
  }
  .box-benefit:first-child ,
  * + .box-benefit {
    margin-top:20px;
  }
  .box-benefit + .box-benefit {
    margin-top:13px;
  }
  .box-benefit > *:first-child {
    margin-top:2px;
  }
  .data-benefit-description {
    font-size:16px;
  }
  .data-benefit-code {
    font-size:18px;
    margin-top:2px;
  }
}

/*******************

- .data-notes

********************/
.data-notes {
  margin-top:40px;
}
.data-note-dt {
  font-size:16px;
  line-height:1.25;
  font-weight:bold;
  margin-top:20px;
}
.data-note-dd {
  font-size:16px;
  line-height:1.5;
  margin-top:5px;
}
@media (max-width:767px){
  .data-notes {
    margin-top:18px;
  }
  .data-note-dt ,
  .data-note-dd {
    font-size:14px;
  }
}

/*******************

- .btn-area

********************/
.btn-area {
  margin:50px auto 60px;
}
@media (max-width:767px){
  .btn-area {
    margin:40px auto;
  }
}

/*******************

- .btn-border

********************/
.btn-border {
  border:3px solid #777;
  border-radius:26px;
  display:block;
  max-width:298px;
  margin:20px auto;
  text-align:center;
  background-color:#777;
  color:#FFF;
  text-decoration:none;
  box-sizing:border-box;
}
.btn-border > .btn-inner {
  border:2px solid #FFF;
  width:100%;
  display:block;
  box-sizing:border-box;
  padding:10px 28px;
  font-size:15px;
  line-height:1.1;
  border-radius:20px;
  position:relative;
  letter-spacing:1px;
}
.btn-border > .btn-inner::before {
  content:"";
  display:block;
  width:0;
  height:1.5px;
  position:absolute;
  top:50%;
  margin-top:-6px;
  border-radius:2px;
  border-style:solid;
}
.btn-border.back > .btn-inner::before {
  border-width:6px 10px 6px 0;
  border-color:transparent #FFF transparent transparent;
  left:16px;
}
.btn-border.next > .btn-inner::before {
  border-width:6px 0 6px 10px;
  border-color:transparent transparent transparent #FFF;
  right:16px;
}
.btn-border.next {
  border-color:#345bc0;
  background-color:#345bc0;
}
.attention-blank {
  color: #f85e00;
  text-align:center;
  position:relative;
  bottom:-12px;
  font-size:15px;
  font-weight: bold;
  letter-spacing:1px;
}
@media (max-width:767px){
  .btn-border {
    margin:12px auto;
  }
  .attention-blank {
    bottom:0;
  }
}

/*******************

- modal
  (with JavaScript)

********************/
.wrapper > * {
  display: none;
}
.wrapper.fixed {
  overflow:hidden;
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
}
.wrapper.visible > * {
  display: block;
}

body:has(.wrapper.fixed) {
  overflow: hidden;
}
body:has(.wrapper.fixed) .benefit-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}

@media screen and (max-width:767px) {
  body:has(.wrapper:not(.visible)) .o-footer {
    display: none;
  }
}

/*******************

- others

********************/
/*******************

- 小サイズ画面用文字サイズ

********************/
@media (max-width: 374px){
  .bincode-heading {
    font-size: 5.33vw;
  }
  .bincode-description {
    font-size: 3.73vw;
  }
  .bincode-check {
    font-size: 3.73vw;
  }
  .heading-1 {
    font-size: 5.86vw;
  }
  .data-benefit-description {
    font-size: 4.26vw;
  }
  .data-benefit-code {
    font-size: 4.8vw;
  }
  .bincode-check-area ,
  .bincode-check-area p {
    font-size: 3.73vw;
  }
}

/*******************

- end

********************/
