:root {
  --body: #000;
  --link: #000;
}

/*--------------------------------------------
MV
---------------------------------------------*/

#mv h1 {
  text-align: center;
}

@media screen and (max-width: 799px) {
  #mv h1 {
    margin-top: calc( ( -34.5 - 37.5 ) * 100vw / 375 );
  }

  #mv h1 img {
    height: calc( 69 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #mv {
    height: calc( 100vh - 90px );
  }

  #mv picture,
  #mv .box {
    height: calc( 100vh - 90px );
  }

  #mv h1 {
    margin-top: calc( -53.5px - 45px );
  }

  #mv h1 img {
    width: 450px;
  }
}

/*--------------------------------------------
RESERVATION
---------------------------------------------*/

@media screen and (max-width: 799px) {
  #reservation .wrap {
    padding-top: calc( 48 * 100vw / 375 );
    padding-bottom: calc( 66 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #reservation .wrap {
    padding-top: 97.5px;
    padding-bottom: 112px;
  }
}

/*--------------------------------------------
INFO
---------------------------------------------*/

#info #slider02 picture,
#info #slider03 picture {
  overflow: hidden;
  background-color: #000;
}

#info #slider02 picture > img,
#info #slider03 picture > img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  font-family: "object-fit: contain;";
}

#info .address,
#info dt,
#info dd {
  letter-spacing: 0.071em;
}

#info .tel {
  display: flex;
  align-items: baseline;
}

.sleep_fitscan_slider {
  position: relative;
}

.sleep_fitscan_slider span {
  font-weight: normal;
  position: absolute;
  right: 0;
  bottom: 2vh;
}

@media screen and (max-width: 799px) {
  .sleep_fitscan_slider span {
    font-size: 12px;
    bottom: 2vh;
  }
}

.sleep_fitscan_slider .slick-dots {
  margin-top: 3vh;
}

@media screen and (max-width: 799px) {
  .sleep_fitscan_slider .slick-dots {
    margin-top: 4vh;
  }
}

@media screen and (max-width: 799px) {
  #info .wrap {
    padding-top: calc( 80 * 100vw / 375 );
    padding-bottom: calc( 78 * 100vw / 375 );
  }

  #info .text01 {
    margin-top: calc( ( 43.5 - 6.5 ) * 100vw / 375 );
  }

  #info .link02 {
    margin-top: calc( ( 52 - 6.5 ) * 100vw / 375 );
  }

  #info #slider02 {
    margin-top: calc( 27 * 100vw / 375 );
  }

  #info #slider03 {
    margin-top: calc( 27 * 100vw / 375 );
  }

  #info .address,
  #info dt,
  #info dd {
    font-size: 1rem;
    line-height: 1.9;
  }

  #info .address {
    margin-top: calc( ( 31 - 4.5 ) * 100vw / 375 );
  }

  #info dl {
    margin-top: calc( 19 * 100vw / 375 );
  }

  #info dl > div + div {
    margin-top: calc( 19 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #info .wrap {
    padding-top: 165px;
    padding-bottom: 107px;
  }

  #info .text01 {
    margin-top: calc( 75.5px - 10px );
  }

  #info .link02 {
    width: 325px;
    margin-top: calc( 72.5px - 10px );
  }

  #info #slider02 {
    margin-top: 75px;
  }

  #info #slider03 {
    margin-top: 0;
  }

  #info dl > div {
    display: flex;
    align-items: flex-start;
  }

  #info .address,
  #info dt,
  #info dd {
    font-size: 1.4rem;
    line-height: 25px;
  }

  #info .around dd {
    padding-left: 1em;
  }

  #info .address {
    margin-top: 58px;
  }

  #info dl {
    margin-top: 36px;
  }

  #info dl > div + div {
    margin-top: 36px;
  }
}

/*--------------------------------------------
NAP
---------------------------------------------*/

@media screen and (max-width: 799px) {
  #nap .wrap {
    padding-top: calc( 38 * 100vw / 375 );
    padding-bottom: calc( ( 55 - 2 ) * 100vw / 375 );
  }

  #nap .fieldset02 {
    margin-top: calc( ( 46 - 2 ) * 100vw / 375 );
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  #nap .fieldset03 {
    margin-top: calc( ( 52 - 2 ) * 100vw / 375 );
  }

  #nap .btn-submit01 {
    margin-top: calc( 50 * 100vw / 375 );
    background-color: transparent !important;
    color: #000000;
  }

  #nap .btn-submit01:disabled {
    opacity: 0.3;
  }
}

@media print, screen and (min-width: 800px) {
  #nap .wrap {
    padding-top: 83px;
    padding-bottom: calc( 110px - 2.5px );
  }

  #nap .fieldset02 {
    margin-top: calc( 58px - 2.5px );
  }

  #nap .fieldset03 {
    margin-top: calc( 83px - 2.5px );
    display: flex;
    justify-content: center;
  }

  #nap .btn-submit01 {
    margin-top: 67px;
  }
}

#napInput #btnLocations {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  letter-spacing: 0.15em;
  text-indent: 0.15em;
}

#napInput .napdate label {
  font-weight: 700;
  letter-spacing: 0.11em;
}

#napInput .napdate dd:nth-of-type(1) button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  letter-spacing: 0.001em;
}

#napInput .napdate dd:nth-of-type(1) button:after {
  content: "";
  display: block;
  background: url("/images/ui/icon/down02.svg") center/contain no-repeat;
  flex-shrink: 0;
}

#napInput .checkinoutTime > div + div:before {
  content: "";
  display: block;
  background: url("/images/ui/icon/down03.svg") center/contain no-repeat;
  margin-left: auto;
  margin-right: auto;
}

#napInput .checkinoutTime dt label {
  display: block;
  letter-spacing: 0.11em;
  font-weight: 700;
}

#napInput .checkinoutTime dd:first-of-type button {
  font-size: 1.9rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.15em;
  text-indent: 0.15em;
  text-align: center;
}

#napInput .checkinoutTime dd:first-of-type button::after {
  content: "";
  display: block;
  background: url("/images/ui/icon/down02.svg") center/contain no-repeat;
  flex-shrink: 0;
}

#napInput .checkinoutTime #checkin_time,
#napInput .checkinoutTime #checkout_time {
  background-color: #fff;
  border: 0;
  font-weight: 600;
  letter-spacing: 0.15em;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  background-repeat: no-repeat;
  background-image: url("/images/ui/icon/down02.svg");
}

#napInput .nop {
  display: flex;
  align-items: flex-start;
}

#napInput .nop dt label {
  display: block;
  letter-spacing: 0.071em;
  font-size: 1.1rem;
}

#napInput .nop .male,
#napInput .nop .female {
  background-repeat: no-repeat;
}

#napInput .nop .male {
  background-image: url("/images/ui/icon/male.svg");
}

#napInput .nop .female {
  background-image: url("/images/ui/icon/female.svg");
}

#napInput .nop .female input {
  color: #fe1a0e;
}

#napInput .nop input {
  background-color: transparent;
  font-weight: 300;
  text-align: right;
  display: block;
  padding-left: 0;
  padding-right: 0;
  width: 2em;
  text-align: center;
}

#napInput .nop input[type=number] {
  -moz-appearance: textfield;
}

#napInput .nop input::-webkit-outer-spin-button,
#napInput .nop input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

#napInput .nop button {
  font-size: 0;
  vertical-align: top;
  display: block;
}

#napInput > a {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  letter-spacing: 0.11em;
  text-indent: 0.11em;
  font-size: 1.2rem;
  color: #1a1311;
}

#napInput > a:after {
  content: "";
  display: block;
  background: url("/images/ui/icon/arrow01.svg") 0 0/contain no-repeat;
  flex-shrink: 0;
}

@media screen and (max-width: 799px) {
  #napInput #btnLocations {
    font-size: 1.8rem;
    height: calc( 41 * 100vw / 375 );
  }

  #napInput #btnLocations:after {
    width: calc( 15 * 100vw / 375 );
    height: calc( 8 * 100vw / 375 );
    margin-left: calc( 12 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #napInput #btnLocations {
    font-size: 2.2rem;
    height: 53px;
  }

  #napInput #btnLocations:after {
    width: 19px;
    height: 10px;
    margin-left: 10px;
  }
}

@media screen and (max-width: 799px) {
  #napInput .napdate label {
    font-size: 1.1rem;
  }

  #napInput .napdate dd {
    margin-top: calc( 2 * 100vw / 375 );
  }

  #napInput .napdate dd:nth-of-type(1) button {
    height: calc( 32 * 100vw / 375 );
    font-size: 1.9rem;
  }

  #napInput .napdate dd:nth-of-type(1) button:after {
    width: calc( 15 * 100vw / 375 );
    height: calc( 8 * 100vw / 375 );
    margin-left: calc( 9 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #napInput .napdate {
    text-align: center;
  }

  #napInput .napdate label {
    font-size: 1.2rem;
    text-indent: 0.11em;
  }

  #napInput .napdate dt + dd {
    margin-top: 8px;
  }

  #napInput .napdate dd:nth-of-type(1) button {
    margin-top: calc( 2px - 2.5px );
    font-size: 1.9rem;
    width: 268px;
    height: 32px;
  }

  #napInput .napdate dd:nth-of-type(1) button:after {
    width: 19px;
    height: 10px;
    margin-left: 4px;
  }
}

@media screen and (max-width: 799px) {
  #napInput .checkinoutTime {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  #napInput .checkinoutTime > div + div:before {
    margin-top: calc( 7 * 100vw / 375 );
    margin-bottom: calc( ( 13.5 - 2 ) * 100vw / 375 );
    width: calc( 18 * 100vw / 375 );
    height: calc( 21 * 100vw / 375 );
  }

  #napInput .checkinoutTime dt label {
    text-align: center;
  }

  #napInput .checkinoutTime dd:first-of-type {
    margin-top: calc( 2 * 100vw / 375 );
  }

  #napInput .checkinoutTime dd:first-of-type button {
    margin-top: calc( 2 * 100vw / 375 );
    justify-content: center;
    height: calc( 32 * 100vw / 375 );
  }

  #napInput .checkinoutTime dd:first-of-type button::after {
    width: calc( 15 * 100vw / 375 );
    height: calc( 8 * 100vw / 375 );
    margin-left: calc( 13 * 100vw / 375 );
  }

  #napInput .checkinoutTime #checkin_time,
  #napInput .checkinoutTime #checkout_time {
    font-size: 1.9rem;
    margin-top: calc( 4 * 100vw / 375 );
    width: calc( 155 * 100vw / 375 );
    height: calc( 32 * 100vw / 375 );
    background-position: right calc( 15 * 100vw / 375 ) top 50%;
    background-size: auto calc( 8 * 100vw / 375 );
    padding-left: calc( 27 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #napInput .checkinoutTime > div + div:before {
    margin-top: 8px;
    margin-bottom: 18px;
    width: 18px;
    height: 21px;
  }

  #napInput .checkinoutTime dt label {
    font-size: 1.2rem;
    padding-left: 28px;
  }

  #napInput .checkinoutTime dd:first-of-type button {
    width: 149px;
    height: 32px;
  }

  #napInput .checkinoutTime dd:first-of-type button::after {
    width: 19px;
    height: 10px;
    margin-left: 11px;
  }

  #napInput .checkinoutTime #checkin_time,
  #napInput .checkinoutTime #checkout_time {
    font-size: 1.9rem;
    margin-top: 4px;
    width: 149px;
    height: 32px;
    background-position: right 12px top 50%;
    background-size: auto 10px;
    padding-left: 21px;
  }
}

@media screen and (max-width: 799px) {
  #napInput .nop {
    margin-top: calc( ( 47 - 2 ) * 100vw / 375 );
    justify-content: center;
  }

  #napInput .nop > div + div {
    margin-left: calc( 48.6 * 100vw / 375 );
  }

  #napInput .nop .male,
  #napInput .nop .female {
    margin-top: calc( 9 * 100vw / 375 );
    background-size: auto calc( 53 * 100vw / 375 );
    background-position: calc( 16 * 100vw / 375 ) 50%;
  }

  #napInput .nop input {
    font-size: 3.1rem;
    margin-left: calc( 23 * 100vw / 375 );
  }

  #napInput .nop button {
    margin-left: calc( 39 * 100vw / 375 );
    width: calc( 30 * 100vw / 375 );
    height: calc( 31 * 100vw / 375 );
  }

  #napInput .nop button img {
    height: calc( 10 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #napInput .nop {
    padding-top: 10px;
    margin-left: 52px;
  }

  #napInput .nop > div + div {
    margin-left: 61px;
  }

  #napInput .nop .male,
  #napInput .nop .female {
    margin-top: 16px;
    background-size: auto 86px;
    background-position: 10px 0;
  }

  #napInput .nop input {
    font-size: 3.5rem;
    padding-top: 4px;
    padding-bottom: 4px;
    margin-top: 3px;
    margin-bottom: 3px;
    margin-left: 35px;
  }

  #napInput .nop button {
    margin-left: 62px;
  }

  #napInput .nop button img {
    height: 14px;
  }
}

@media screen and (max-width: 799px) {
  #napInput > a {
    margin-top: calc( 9 * 100vw / 375 );
  }

  #napInput > a:after {
    width: calc( 4 * 100vw / 375 );
    height: calc( 8 * 100vw / 375 );
    margin-left: calc( 7 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #napInput > a {
    margin-top: 7px;
  }

  #napInput > a:after {
    width: 4px;
    height: 8px;
    margin-left: 11px;
  }
}

/*--------------------------------------------
SERVICE
---------------------------------------------*/

@media screen and (max-width: 799px) {
  #service .wrap {
    padding-top: calc( 92 * 100vw / 375 );
    padding-bottom: calc( ( 92 - 4.5 ) * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #service .wrap {
    padding-top: 165px;
    padding-bottom: calc( 163px - 5.5px );
  }
}

/*--------------------------------------------
FACILITY
---------------------------------------------*/

#facility ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

#facility li picture img {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 799px) {
  #facility .wrap {
    padding-top: calc( 89 * 100vw / 375 );
    padding-bottom: calc( 96 * 100vw / 375 );
  }

  #facility .wrap > .title03 {
    margin-top: calc( 45 * 100vw / 375 );
  }

  #facility .text01 {
    margin-top: calc( ( 21 - 4.5 ) * 100vw / 375 );
  }

  #facility ul {
    margin-top: calc( ( 46 - 4.5 ) * 100vw / 375 );
  }

  #facility li {
    width: calc( 152 * 100% / 325 );
    -ms-grid-columns: 1fr calc( 152 * 100% / 325 );
    grid-template-columns: 1fr calc( 152 * 100% / 325 );
  }

  #facility li:nth-child(n+3) {
    margin-top: calc( ( 50 - 4.5 ) * 100vw / 375 );
  }

  #facility picture {
    margin-top: calc( 15 * 100vw / 375 );
  }

  #facility .text03 {
    margin-top: calc( ( 15 - 4.5 ) * 100vw / 375 );
  }

  #facility .link01 {
    margin-top: calc( ( 55 - 4.5 ) * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #facility .wrap {
    padding-top: 165px;
    padding-bottom: 166px;
  }

  #facility .wrap > .title03 {
    margin-top: 121px;
  }

  #facility .text01 {
    margin-top: calc( 31px - 5.5px );
    font-size: 1.4rem;
    line-height: 1.79;
    letter-spacing: 0.075em;
  }

  #facility ul {
    margin-top: calc( 108px - 5.5px );
  }

  #facility li {
    display: flex;
    flex-direction: column;
    width: 374px;
  }

  #facility li:nth-child(n+3) {
    margin-top: calc( 102px - 5.5px );
  }

  #facility picture {
    order: 1;
  }

  #facility .title03 {
    order: 2;
    margin-top: 22px;
  }

  #facility .text03 {
    order: 3;
    margin-top: calc( 18px - 5.5px );
  }

  #facility .link01 {
    margin-top: calc( 139px - 5.5px );
  }
}

/*--------------------------------------------
REVIEW
---------------------------------------------*/

@media screen and (max-width: 799px) {
  #review .wrap {
    padding-top: calc( 92 * 100vw / 375 );
    padding-bottom: calc( 92 * 100vw / 375 );
  }

  #review .review {
    margin-top: calc( 36 * 100vw / 375 );
  }

  #review .link01 {
    margin-top: calc( 40 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 1280px) {
  #review .wrap {
    padding-top: 165px;
    padding-bottom: 166px;
  }

  #review .review {
    margin-top: 121px;
  }

  #review .link01 {
    margin-top: 8px;
  }
}

@media screen and (max-width: 799px) {
  #review .sample {
    margin-left: calc( 1 * 100% / 325 );
    width: calc( 327 * 100% / 325 );
  }

  #review .sample img {
    width: 100%;
    height: auto;
  }

  #review .sample + .link01 {
    margin-top: calc( -19 * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #review {
    overflow: hidden;
  }

  #review .wrap {
    padding-top: 165px;
    padding-bottom: 166px;
  }

  #review .wrap .review {
    margin-top: 41px;
  }

  #review .sample {
    width: 920px;
    margin-left: 6px;
  }

  #review .sample + .link01 {
    margin-top: 8px;
  }
}

/*--------------------------------------------
DESIGNER
---------------------------------------------*/

@media screen and (max-width: 799px) {
  #designer .wrap {
    padding-top: calc( 89 * 100vw / 375 );
    padding-bottom: calc( ( 92 - 6.5 ) * 100vw / 375 );
  }

  #designer .title01 {
    line-height: 1.5;
  }

  #designer ul {
    margin-top: calc( ( 42 - 4.5 ) * 100vw / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  #designer .wrap {
    padding-top: calc( 166px - 8.5px );
    padding-bottom: calc( 193px - 10px );
  }

  #designer .title01 {
    line-height: 1.61;
  }

  #designer ul {
    margin-top: calc( 59px - 8.5px );
  }
}

/*--------------------------------------------
SHINJUKU-NORTH
---------------------------------------------*/

@media screen and (max-width: 799px) {
  .shinjuku-north #mv h1 {
    margin-left: calc( 5 * 100% / 375 );
  }
}

@media print, screen and (min-width: 800px) {
  .shinjuku-north #mv h1 {
    margin-right: 9.2px;
  }
}

#reservationInput #btnLocations:after {
  display: none;
}

#plan_search_form + a {
  margin-top: 2vh;
}

@media screen and (max-width: 799px) {
  #plan_search_form + a {
    margin-top: 5vh;
  }
}

.plan_search_btn_box {
  text-align: center;
}

.plan_search_btn_box li {
  display: inline-block;
}

.plan_search_btn_box li input {
  background-color: transparent !important;
  color: #000000;
}

.plan_search_btn_box li input:disabled {
  opacity: 0.3;
}

@media screen and (max-width: 799px) {
  .plan_search_btn_box li {
    display: inline;
  }

  .plan_search_btn_box li input {
    margin-top: 2vh !important;
  }
}

.plan_search_btn_box li:nth-child(2) {
  margin-left: 2vw;
}

@media screen and (max-width: 799px) {
  .plan_search_btn_box li:nth-child(2) {
    margin-left: 0;
  }
}

.campaign_code_btn {
  margin-top: 2vh !important;
}

@media screen and (max-width: 799px) {
  #service .service-icon {
    margin: 0;
    width: 6vw;
    text-align: center;
  }

  #service .service-icon img {
    height: 36px;
  }

  #service .service-title {
    padding-left: 6vw;
  }
}

@media print, screen and (min-width: 800px) {
  #service .service-icon {
    margin: 0;
    width: 6vw;
    text-align: center;
  }

  #service .service-icon img {
    height: 57px;
  }

  #service .service-title {
    padding-left: 1vw;
  }
}

