.basic {
  margin: 140px 12.5% 170px 7.5%;
  max-width: 1160px;
  transform: translateX(calc(40vw - 580px));
  box-sizing: border-box;
}
.basic + figure.full { position: relative;}
#crumb { right: max(12.5%,92.5% - 1160px);transform: translateX(calc(40vw - 580px));}
#js-mainimg{
  margin-top:70px;
  height: 700px; 
}
#js-mainimg img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 60px 60px 0;}
@media only screen and (max-width: 1530px) and (min-width: 783px) {
  .basic {
    margin: 140px max(12.5%,200px) 170px 7.5%;
    transform: translateX(0);
  }
  #crumb { transform: translateX(0);}
}
.basic h1 .en {
  font-size: 90px;
  line-height: 1.2;
  display: block;
}
.basic h1 .jp {
  font-size: 20px;
  line-height: 1.4;
  display: block;
  font-weight: bold;
}

@media only screen and (max-width: 782px) {
  .basic {
    margin: 80px 7.5vw 0;
    max-width: inherit;
    transform: translateX(0);
  }
  .basic h1 .en {
    font-size: 45px;
  }
  .basic h1 .jp {
    font-size: 15px;
  }
  #js-mainimg{
    margin-top:7.5vw;
    height: 63vw;
    margin-left: -7.5vw;
  }
  #js-mainimg img {border-radius: 0 40px 40px 0;}
  }
@media only screen and (max-width: 1470px) and (min-width: 783px) {
  #abs-logo { left: min(87.5vw,calc(7.5vw + 1160px)); right: auto; width:12.5vw;}
  #abs-menu-btn {left: min(87.5vw,calc(7.5vw + 1160px)); right: auto; width:12.5vw;}
  #pagetop {left: min(87.5vw,calc(7.5vw + 1160px)); right: auto; width:12.5vw; margin: 0;}
}
@media only screen and (max-width: 1280px) and (min-width: 783px) {
  #abs-logo { left: 1120px; right: auto;}
  #abs-menu-btn {left: 1120px; right: auto;}
  #pagetop {left: 1120px; right: auto;}
}

.selects {
  display: flex;
  flex-wrap: wrap;
}
h1 + .selects { margin-top: 45px;}
h1 + .selects dl { margin-top: 20px;}
.selects dl { width: 200px;}
.selects dl + dl { margin-left: 20px;}
.selects dt { font-size: 86%; font-weight: bold;}

@media only screen and (max-width: 782px) {
  #js-mainimg{ margin-top: 7.5vw;}
  h1 + .selects  { margin-top: 30px;}
  h1 + .selects dl { margin-top: 15px; width: calc(50% - 10px);}
  .selects dl:nth-child(even) + dl { margin-left: 0px;}
}


.cp_ipselect {
  margin-top: 5px;
	overflow: hidden;
	width: 100%;
  position: relative;
  border-radius: 10px;
	background: #41bdce;
  border: none;
}

.cp_ipselect select {
	width: 100%;
	padding-right: 1em;
	cursor: pointer;
	text-indent: 0.01px;
	text-overflow: ellipsis;
	border: none;
	outline: none;
	background: transparent;
	background-image: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
}
.cp_ipselect select::-ms-expand {
    display: none;
}

.cp_ipselect::before {
	position: absolute;
	top: calc(50% - 8px);
	right: 20px;
	width: 8px;
	height: 8px;
	padding: 0;
	content: '';
	border-bottom: 2px solid #fff;
	border-right: 2px solid #fff;
	pointer-events: none;
  transform: rotate(45deg);
}
.cp_ipselect select {
	padding: 1em 38px 1em 1.3em;
	color: #fff;
}
.cp_ipselect select option {
  background: #41bdce;
  color: #fff;
}


.screen-reader-text { display: none;}

.pager {
  margin: 12rem 0 0;
  padding: 8rem 0 0;
  position: relative;
}
.pager.page_max_1 { opacity: 0; pointer-events: none; margin:0;}
.pager .bg {
  position: absolute;
  background: #f6f6f6;
  top:0;
  width: 100%;
  height: 100%;
  z-index: -1;
  box-sizing: border-box;
}
@media only screen and (max-width: 782px) {
  .pager {
    margin: 6rem 0 0;
    padding: 2rem 0;
    z-index: 1;
  }
  .pager .bg {
    position: absolute;
    background: #f6f6f6;
    top:0;
    left: -4vw;
    width: 100vw;
    height: 100%;
    z-index: -1;
  }
}

.pager .nav-links {
  margin-top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.pager .page-numbers {
  display: inline-block;
  width: 4.8rem;
  height: 4.8rem;
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 1.8rem;
  line-height: 1;
  font-weight: 400;
  color: #45bdcf;
  text-decoration: none;
  font-family: 'Barlow Semi Condensed', sans-serif !important;
}
.pager .page-numbers.current { color: #fff;}
.pager a.page-numbers:hover::after,
.pager .page-numbers.current::after {
  content: "";
  background: #45bdcf;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  top: 0.4rem;
  left: 0.4rem;
  position: absolute;
  z-index: -1;
}
.pager a.page-numbers.list:hover::after{ z-index: 2;}
.pager a.page-numbers:hover { color: #fff;}
.pager a.page-numbers:hover::after { background: #45bdcf;}
.pager a.page-numbers.first,
.pager a.page-numbers.prev,
.pager a.page-numbers.next,
.pager a.page-numbers.last,
.pager a.page-numbers.list {
  /*background: url("../img/bg_page@2x.png") no-repeat center 50% / 4.8rem 4.8rem;*/
}
.pager a.page-numbers.list .icon {
  position: relative;
  z-index: 3;
 /* background: url("../img/icon-list@2x.png") no-repeat center 50% / 1.8rem 1.2rem;*/
  width: 100%;
  height: 100%;
  display: block;
}
.pager a.page-numbers.list:hover .icon { filter: brightness(100);}

.pager a.page-numbers.first:hover::after,
.pager a.page-numbers.prev:hover::after,
.pager a.page-numbers.next:hover::after,
.pager a.page-numbers.last:hover::after { z-index: 1;}

.pager a.page-numbers.first span::before,
.pager a.page-numbers.first span::after,
.pager a.page-numbers.prev span::before,
.pager a.page-numbers.next span::before,
.pager a.page-numbers.last span::before,
.pager a.page-numbers.last span::after {
  content: "";
  position: absolute;
  top: calc(50% - 3px);
  width: 4px;
  height: 4px;
  border-top: #45bdcf 2px solid;
  border-right: #45bdcf 2px solid;
  transform: rotate(45deg);
  z-index: 2;
}
.pager a.page-numbers.first span::before,
.pager a.page-numbers.first span::after,
.pager a.page-numbers.prev span::before { transform: rotate(-135deg);}
.pager a.page-numbers.first span::before { left: calc(50% - 4px);}
.pager a.page-numbers.first span::after { left: calc(50% + 1px);}
.pager a.page-numbers.prev span::before { left: calc(50% - 2px);}
.pager a.page-numbers.next span::before { left: calc(50% - 4px);}
.pager a.page-numbers.last span::before { left: calc(50% - 6px);}
.pager a.page-numbers.last span::after { left: calc(50% - 1px);}

.pager a.page-numbers.first:hover span::before,
.pager a.page-numbers.first:hover span::after,
.pager a.page-numbers.prev:hover span::before,
.pager a.page-numbers.next:hover span::before,
.pager a.page-numbers.last:hover span::before,
.pager a.page-numbers.last:hover span::after { border-top-color: #fff;border-right-color:#fff;}
@media only screen and (max-width: 782px) {
  .pager .page-numbers {
    width: 3.2rem;
    height: 3.2rem;
    font-size: 1.4rem;
  }
  .pager a.page-numbers:hover::after,
  .pager .page-numbers.current::after {
    width: 2.8rem;
    height: 2.8rem;
    top: 0.2rem;
    left: 0.2rem;
  }
  .pager a.page-numbers.first,
  .pager a.page-numbers.prev,
  .pager a.page-numbers.next,
  .pager a.page-numbers.last,
  .pager a.page-numbers.list {
    background-size: 3.2rem auto;
  }
  .pager a.page-numbers.list .icon {background-size: 1.4rem auto;}
}

.go2index {
  text-align: center;
}
.go2index a {
  width: 190px;
  height: 50px;
  background: #fff554;
  border-radius: 50px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 86%;
}
.go2index a:hover { animation: flash 0.5s ease;}
@media only screen and (max-width: 782px) {
  .go2index a { height: 44px; padding: 0 33px; width: 125px;}
}

main .inner { margin-left: auto; margin-right: auto; width: 980px; max-width: 100%;}
@media only screen and (max-width: 782px) {
  main .inner { width: auto;}
}

.dl01 {
  margin-top: 90px;
  padding-bottom: 45px;
  border-bottom: #e2eaef 1px solid;
  display: flex;
}
.dl01 + .dl01 { margin-top: 45px;}
.dl01 dt { font-weight: bold; font-size: 114%; padding-right: 5vw; width: 320px; box-sizing: border-box;}
.dl01 dd { width: calc(100% - 320px);}
@media only screen and (max-width: 782px) {
  .dl01 {
    margin-top: 50px;
    padding-bottom: 25px;
    display: block;
  }
  .dl01 + .dl01 { margin-top: 25px;}
  .dl01 dt { padding-right: 0; width: auto; }
  .dl01 dd { width: auto;}
}

.cat span.list + span.list::before { content: ", ";}


/* ------ form ------ */

input, select {
  vertical-align: middle;
}

input {
	line-height: normal;
}


button,
button[disabled]:hover,
button[disabled]:focus,
input[type="button"],
input[type="button"][disabled]:hover,
input[type="button"][disabled]:focus,
input[type="reset"],
input[type="reset"][disabled]:hover,
input[type="reset"][disabled]:focus,
input[type="submit"],
input[type="submit"][disabled]:hover,
input[type="submit"][disabled]:focus,
.go2top a {
	background: #fff554;
	border: none;
	color: #262253;
	letter-spacing: 0.1rem;
	box-shadow: none;
	border-radius: 7px;
	padding: 20px 90px 20px 20px;
	/*text-shadow: 1px 1px 2px #13AA00, -1px -1px 2px #13AA00;*/
	-webkit-appearance: none;
	appearance: none;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  font-size: 14px;
  font-family: YakuHanJP, 'Noto Sans JP', YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
}

.go2top a { text-decoration: none; display: inline-block; overflow: hidden;}

.btnWrap, .btnWrapBack {
  position: relative; display: inline-block;
}
.btnWrapBack { margin-right: min(15px, 2.5vw);}
.lnav-confirm .btnWrap { margin-left: min(15px, 2.5vw);}
.btnWrapBack input[type="button"],
.btnWrapBack input[type="button"][disabled]:hover,
.btnWrapBack input[type="button"][disabled]:focus {
  padding: 20px 20px 20px 90px;
  text-align: right;
}
.btn input { position: relative; z-index: 1;}
input + .arrow {
  text-align: right;
  position: absolute;
  color: #38a4b6;
  right: -30px;
  top: 50%;
  z-index: 2;
}
input + .arrow::before,
input + .arrow::after {
  position: absolute;
  content: "";
  background: #38a4b6;
  width: 60px;
  height: 1px;
  right: 0;
  top: 50%;
}
input + .arrow i.lt {
  position: absolute;
  right: -10px;
  top: calc(50% - 5px);
  width: 10px;
  height: 10px;
  border-top: #38a4b6 1px solid;
  border-right: #38a4b6 1px solid;
  transform: rotate(45deg);
}

input + .arrow::after { transform-origin: center right;}
input + .arrow::before { transform: scaleX( 0); transform-origin: center left;}
input:hover + .arrow::before { animation: nobiru 0.5s ease; animation-delay: 0.2s;}
input:hover + .arrow::after { animation: chijimu 0.5s;}

input + .arrow.vertical {
    transform: rotate(90deg);
    padding-right: 0;
    margin-top: -4vw;
}
input + .arrow.vertical::before, input + .arrow.vertical::after { width: 30px;}

.btnWrapBack input + .arrow { transform: rotate(180deg); right: auto; left: -30px;}

@media only screen and (max-width: 782px) {
  input + .arrow {
    right: -20px;
  }
  input + .arrow::before,
  input + .arrow::after {
      width: 44px;
  }
  input + .arrow i.lt {
      right: -8px;
      top: calc(50% - 4px);
      width: 8px;
      height: 8px;
  }
}




label { display: inline-block}
label:not(:last-child) { margin-right: 2rem;}
input[type="button"],
input[type="submit"],
  .go2top a {
    background: #fff554;
    color: #262253;
    border: none;
    transition: background 0.5s ease;
    cursor: pointer;
  }
input[type="button"]:hover,
input[type="submit"]:hover,
.go2top a:hover {
  animation: flash 0.5s ease;
}

p.btn.disabled {
  pointer-events: none;
  filter: grayscale(1);
  opacity: 0.5;
}

@media only screen and (min-width: 783px) {
  .btnWrap .text {
    position: absolute;
    z-index: 5;
    width: 100%; height: 100%;
    left: 20px;
    top: 0;
    pointer-events: none;
    display: flex;
    align-items: center;
    font-size: 14px;
    transition: color 0.5s linear;
  }
  .btnWrap i.bg { pointer-events: none;position: absolute; z-index: 1; width: 100%; height: 100%; border-radius: 10px; overflow: hidden; background: #38a4b6; left: 0}
  .btnWrap i.bg::before {
    content: "";
    position: absolute;
    z-index: 2;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: #fff554;
    top: calc(50% - 200px);
    left: -50px;
    transition: left 1s ease;
  }
  .btnWrap:hover .text { color: #fff;}
  .btnWrap:hover i.bg::before {
    left: calc(50% + 201px);
  }
  .btnWrap input { border-radius: 10px !important;}
}

@media only screen and (max-width: 782px) {
  .btnWrap .text { display: none;}
	button,
	button[disabled]:hover,
	button[disabled]:focus,
	input[type="button"],
	input[type="button"][disabled]:hover,
	input[type="button"][disabled]:focus,
	input[type="reset"],
	input[type="reset"][disabled]:hover,
	input[type="reset"][disabled]:focus,
	input[type="submit"],
	input[type="submit"][disabled]:hover,
	input[type="submit"][disabled]:focus,
  .go2top a {
		height: 45px;
		padding: 10px 40px 10px 16px;
    font-size: 12px;
	}
  .btnWrapBack input[type="button"],
  .btnWrapBack input[type="button"][disabled]:hover,
  .btnWrapBack input[type="button"][disabled]:focus {
    padding: 10px 16px 10px 40px;
  }
  .lnav-confirm .btnWrap, .lnav-confirm .btnWrapBack { width: auto; text-align: center;}

}
input[type="button"].back {
  background: #dddddd;
  color: #333366;
}



button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus {
	outline: thin dotted;
	outline-offset: -4px;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="week"],
input[type="month"],
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea {
	background: #e8f9fb !important;
	border: #e8f9fb 1px solid;
	padding: 2rem 2.8rem;
	width: 100%;
  max-width: 100%;
	box-sizing: border-box;
	font-size: 1.6rem;
  border-radius: 7px;
  font-family: YakuHanJP, 'Noto Sans JP', YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
  color: #333366;
  box-shadow: 0 0 0 1000px #e8f9fb inset !important;
}
input[type="text"]:-webkit-autofill {
	box-shadow: 0 0 0px 1000px #e8f9fb inset;
  border: #e8f9fb 1px solid;
  background: #e8f9fb !important;
  -webkit-text-fill-color: #333366 !important;
}
@media only screen and (max-width: 782px) {
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"],
  input[type="week"],
  input[type="month"],
  input[type="text"],
  input[type="email"],
  input[type="url"],
  input[type="password"],
  input[type="search"],
  input[type="tel"],
  input[type="number"],
  textarea {
    padding: 1.6rem 1.8rem;
    font-size: 1.2rem;
  }
}
input[type="date"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
input[type="week"]:focus,
input[type="month"]:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
textarea:focus {
	border-color: #45bdcf;
	color: #333366;
	outline: 0;box-shadow: 0 0 5px 5px rgba(255,255,255,0.05);
}



input[type="checkbox"] {
  /*transform: scale(1.5);*/
  box-shadow: none;
  border: #d9d9d9 1px solid;
  margin-top: 0;
}
input[name="check_must"] {
  opacity: 0;
}
p.check label { display: flex; align-items: center; justify-content: center; flex-wrap: wrap;}
i.icon-check {
  width: 25px;
  height: 25px;
  box-sizing: border-box;
  position: relative;
  background: #fff;
  border: #333366 2px solid;
  border-radius: 2px;
  display: inline-block;
  margin-right: 20px;
}
input:checked + i.icon-check::before {
  content: "";
  width: 11px;
  height: 22px;
  border-right: #333366 5px solid;
  border-bottom: #333366 5px solid;
  transform: rotate(45deg);
  left: 8px;
  top: -11px;
  display: block;
  z-index: 2;
  position: absolute;
}
input.err + i.icon-check {
  background-color: #6a354c;
	border-color: #e60e65;
}
@media only screen and (max-width: 782px) {
	input[type="radio"] {
	  margin-top: 0;
	}
  td label { padding-top: 0.3rem; padding-bottom: 0.3rem; align-items: center;}
  i.icon-check { transform: scale(0.8);}
}
input::placeholder,
textarea::placeholder{
  color: #a0a0c7;
}

/* IE */
input:-ms-input-placeholder {
  color: #a0a0c7;
}

/* Edge */
input::-ms-input-placeholder,
textarea::-ms-input-placeholder{
  color: #a0a0c7;
}
input:focus::placeholder,
textarea:focus::placeholder {
  color: #a0a0c7;
}

/* IE */
input:focus:-ms-input-placeholder {
  color: #a0a0c7;
}

/* Edge */
input:focus::-ms-input-placeholder,
textarea:focus::-ms-input-placeholder {
  color: #a0a0c7;
}

input[type="text"].err,
input[type="email"].err,
textarea.err {
	background-color: #6a354c;
	border: #e60e65 3px solid;
}




input[name='tel'],input[name='tel_must'],input[name='fax'] { width: 20rem;}
input[name='mail_must'],input[name='mail_confirm'] { width: max(100%, 40rem);}
input[name='zip'],input[name='zip_must'] { width: 15rem; margin-left: 1rem;}
input[name='address'], input[name='address_must']  { margin-top: 0.7rem;}
input + span { margin-left: 10px;}

input[type="radio"] {  
  display: none;
}
input[type="radio"] + label {
  position: relative;
  cursor: pointer;
  padding: 0.9rem 0 0.9rem 33px;
  font-weight: bold;
  font-size: 92%;
  display: inline-block;
}
input[type="radio"] + label::before,
input[type="radio"] + label::after {
  content: "";
  display: block; 
  border-radius: 50%;
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
  box-sizing: border-box;
}
label::before {
  background-color: #fff;
  border: 2px solid #333366;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  left: 3px;
}

label::after {
  background-color: #333366;
  border-radius: 50%;
  opacity: 0;
  width: 12px;
  height: 12px;
  left: 9px
}

input:checked + label::after {
  opacity: 1;
}

.grecaptcha-badge { z-index: 999;}

.mt0 { margin-top: 0 !important;}

