/* =========================================================
   NEW TOP
========================================================= */

:root {
  --nt-blue: #2d82f0;
  --nt-orange: #ff9208;
  --nt-orange-red: #ff5800;
  --nt-yellow: #ffbe00;
  --nt-cream: #faf7f0;
  --nt-circle: #fffaf0;
  --nt-text: #222;
}


/* =========================================================
   RESET / BASE
========================================================= */

body.page-template-page-new-top {
  margin: 0;
  background: #fff;
}

body.page-template-page-new-top #header,
body.page-template-page-new-top #drawer_menu,
body.page-template-page-new-top #site_description,
body.page-template-page-new-top #header_slider_wrap,
body.page-template-page-new-top #footer,
body.page-template-page-new-top #return_top,
body.page-template-page-new-top #return_top_pc,
body.page-template-page-new-top #dp-footer-bar,
body.home #header,
body.home #drawer_menu,
body.home #site_description,
body.home #header_slider_wrap,
body.home #footer,
body.home #return_top,
body.home #return_top_pc,
body.home #dp-footer-bar {
  display: none !important;
}

#new_top,
#new_top *,
.nt-header *,
.nt-footer * {
  box-sizing: border-box;
}

#new_top {
  width: 100%;
  overflow: hidden;

  background: #fff;
  color: var(--nt-text);

  font-family:
    "TBUDゴシック R",
    sans-serif;
}

#new_top h1,
#new_top h2,
#new_top h3,
#new_top p,
.nt-footer p {
  margin: 0;
}

#new_top a,
.nt-header a,
.nt-footer a {
  color: inherit;
  text-decoration: none;
}

#new_top img,
.nt-header img,
.nt-footer img {
  max-width: 100%;
}


/* =========================================================
   HEADER
========================================================= */

.nt-header {
  position: relative;
  z-index: 100;

  width: 100%;
  height: 145px;

  background: #fff;

  font-family:
    "TBUDゴシック R",
    sans-serif;
}

.nt-header__inner {
  position: relative;

  width: 100%;
  height: 100%;
}

.nt-header__logo {
  position: absolute;

  top: 14px;
  left: 50%;

  width: 163px;

  transform: translateX(-50%);
}

.nt-header__logo img {
  display: block;

  width: 100%;
  height: auto;
}

.nt-header__contact {
  position: absolute;

  top: 50%;
  right: 5%;

  height: 48px;

  padding: 0 22px;

  border: 1px solid var(--nt-orange);
  border-radius: 999px;

  transform: translateY(-50%);

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 18px;

  color: var(--nt-orange) !important;

  font-size: 18px;
  font-weight: 600;
}


/* =========================================================
   HUMAN COMMERCE
========================================================= */

.nt-concept {
  position: relative;

  min-height: 760px;

  background: #fff;

  overflow: hidden;
}

.nt-concept__inner {
  position: relative;

  width: min(1160px, 82%);
  min-height: 760px;

  margin: 0 auto;
  padding-top: 80px;
}

.nt-concept__content {
  position: relative;
  z-index: 3;

  width: 65%;
}

.nt-concept h1 {
  white-space: nowrap;

  color: var(--nt-orange);

  font-size: clamp(57px, 3.5vw, 87px);
  line-height: 1.05;

  font-weight: 800;
  letter-spacing: 0;
}

.nt-concept__catch {
  margin-top: 18px !important;

  color: var(--nt-orange);

  font-size: 25.5px;
  line-height: 1.6;

  font-weight: 700;
}

.nt-concept__text {
  margin-top: 65px;

  color: var(--nt-orange);

  font-size: 21px;
  line-height: 1.95;

  font-weight: 500;
}

.nt-concept__text p + p {
  margin-top: 28px !important;
}


/* =========================================================
   DECORATION DOT
========================================================= */

.nt-dot {
  position: absolute;
  z-index: 2;

  display: block;

  height: auto;
  aspect-ratio: 1 / 1;

  border-radius: 50%;
}


/*
  基準：
  最初の青丸 = 16%

  元の各丸サイズの比率を維持して
  以降も％化
*/

.nt-dot--concept01 {
  top: 45px;
  right: 7%;

  width: 16%;

  background: var(--nt-blue);
}

.nt-dot--concept02 {
  top: 145px;
  right: 27%;

  width: 8.1%;

  background: var(--nt-yellow);
}

.nt-dot--concept03 {
  top: 310px;
  right: 31%;

  width: 19.2%;

  background: #ffe2b8;
}

.nt-dot--concept04 {
  top: 390px;
  right: 6%;

  width: 21.1%;

  background: var(--nt-orange-red);
}


/* =========================================================
   FLOAT
   X / Y の動きを入れ替え
========================================================= */

@keyframes ntFloatY {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-20px);
  }
}

@keyframes ntFloatX {
  0%,
  100% {
    transform: translateX(0);
  }

  50% {
    transform: translateX(20px);
  }
}


/*
  class名はそのまま。
  実際の動きだけ入れ替える
*/

.nt-float-y {
  animation:
    ntFloatX 5.5s ease-in-out infinite;
}

.nt-float-x {
  animation:
    ntFloatY 6.5s ease-in-out infinite;
}

.nt-delay1 {
  animation-delay: -1.5s;
}

.nt-delay2 {
  animation-delay: -3s;
}


/* =========================================================
   OUR SERVICE
========================================================= */

.nt-service {
  position: relative;

  min-height: 1510px;

  margin: 0;
  padding: 235px 0 400px;

  background: var(--nt-blue);
  color: #fff;

  overflow: hidden;
}

.nt-service-circle__shops {
  margin-top: 22px;

  display: grid;
  grid-template-columns: 1fr 1.15fr;

  align-items: start;

  gap: 22px;
}

.nt-service-circle__apprecia {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.nt-service-circle__apprecia img {
  display: block;

  width: 100%;
  max-width: 145px;
  height: auto;
}

.nt-service-circle__shop-buttons {
  display: flex;
  flex-direction: column;

  gap: 12px;
}

.nt-shop-button {
  width: 80%;
  min-height: 46px;

  padding: 0 18px;

  border-radius: 999px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  background: #fff;

  font-size: 18px;
  line-height: 1;
}

.nt-shop-button--amazon {
  border: 1px solid #5f7cff;
  color: #5f7cff !important;
}

.nt-shop-button--rakuten {
  border: 1px solid var(--nt-orange);
  color: var(--nt-orange) !important;
}


/* =========================================================
   SERVICE TOP WAVE
========================================================= */

.nt-service__wave {
  position: absolute;
  z-index: 1;

  top: 0;
  left: 0;

  width: 100%;

  /*
    300 → 200
    約2/3
  */
  height: 200px;

  background: #fff;

  pointer-events: none;
}

.nt-service__wave svg {
  display: block;

  width: 100%;
  height: 100%;
}


/* =========================================================
   SERVICE INNER
========================================================= */

.nt-service__inner {
  position: relative;
  z-index: 2;

  width: min(1180px, 88%);

  margin: 0 auto;
}


/* =========================================================
   SERVICE HEADING
========================================================= */

.nt-service__heading {
  text-align: center;
}

.nt-service__heading h2 {
  color: #fff;

  font-size: clamp(60px, 4.125vw, 79.5px);
  line-height: 1;

  font-weight: 600;
  letter-spacing: .03em;
}

.nt-service__heading p {
  margin-top: 30px !important;

  color: #fff;

  font-size: 19.5px;
  line-height: 1.6;

  font-weight: 500;
  letter-spacing: .08em;
}


/* =========================================================
   SERVICE MAP
========================================================= */

.nt-service-map {
  position: relative;

  min-height: 1180px;

  margin-top: 95px;
}


/* =========================================================
   SERVICE CIRCLE
========================================================= */

.nt-service-circle {
  position: absolute;
  z-index: 4;

  width: 570px;
  height: 570px;

  border-radius: 50%;

  background: var(--nt-circle);
  color: var(--nt-blue);

  box-shadow:
    0 10px 22px rgba(0, 0, 0, .15);

  display: flex;
  align-items: center;
  justify-content: center;
}

.nt-service-circle--01 {
  top: 5px;
  left: -2%;
}

.nt-service-circle--02 {
  top: 400px;
  right: -1%;
}

.nt-service-circle--03 {
  top: 80%;
  left: 10%;
}

.nt-service-circle__content {
  width: 65%;
  text-align: center;
}

.nt-service-circle__number {
  color: var(--nt-blue);

  font-size: 45px;
  line-height: 1;

  font-weight: 800;
}

.nt-service-circle h3 {
  margin-top: 12px !important;

  color: var(--nt-blue);

  font-size: 27px;
  line-height: 1.5;

  font-weight: 700;
}

.nt-service-circle__text {
  margin-top: 20px !important;

  color: #3780df;

  font-size: 18px;
  line-height: 1.75;

  text-align: left;
}

.nt-service-circle__buttons {
  margin-top: 18px;

  display: flex;
  justify-content: center;
  flex-wrap: wrap;

  gap: 7px;
}


/* =========================================================
   SERVICE BUTTON
========================================================= */

.nt-pill {
  min-width: 120px;
  min-height: 38px;

  padding: 7px 14px;

  border: 1px solid #55a1f3;
  border-radius: 999px;

  background: #fff;

  color: #3988e4 !important;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-size: 15px;
}

.nt-pill--more {
  margin-top: 20px;
}


/* =========================================================
   SERVICE PHOTO
========================================================= */

.nt-service-photo {
  position: absolute;
  z-index: 5;

  height: auto;
  aspect-ratio: 1 / 1;

  border-radius: 50%;

  overflow: hidden;

}

.nt-service-photo img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.nt-service-photo--01 {
  top: 52%;
  left: 25%;
  width: 20%;
}

.nt-service-photo--02 {
  top: 90%;
  right: 7%;
  width: 20%;
  background: #fff;
}


/* =========================================================
   SERVICE DOT
========================================================= */

.nt-dot--s01 {
  top: 65px;
  left: 50%;
  width: 18%;
  background: var(--nt-orange);
}

.nt-dot--s02 {
  top: 155px;
  right: 25%;
  width: 5%;

  background: var(--nt-circle);
}

.nt-dot--s03 {
  top: 585px;
  left: 2%;
  width: 6.0%;

  background: var(--nt-orange-red);
}

.nt-dot--s04 {
  top: 675px;
  left: -1%;

  width: 10%;

  background: var(--nt-yellow);
}

.nt-dot--s05 {
  top: 740px;
  right: 18%;

  width: 5.9%;

  background: var(--nt-circle);
}

.nt-dot--s06 {
  top: 360px;
  right: 45%;
  width: 8.0%;

  background: var(--nt-circle);
}


/* =========================================================
   DASH
========================================================= */

.nt-dash {
  position: absolute;
  z-index: 2;

  width: 160px;

  border-top:
    2px dashed rgba(255, 255, 255, .48);
}

.nt-dash--01 {
  top: 50%;
  left: 38%;
  transform: rotate(35deg);
}

.nt-dash--02 {
  top: 73%;
  left: 38%;

  transform: rotate(-42deg);
}


/* =========================================================
   TOPICS
========================================================= */

.nt-topics {
  position: relative;

  padding: 240px 0 115px;

  background: #fff;

  overflow: hidden;
}


/* =========================================================
   SERVICE BOTTOM / TOPICS TOP WAVE
========================================================= */

.nt-topics__wave {
  position: absolute;
  z-index: 1;

  top: 0;
  left: 0;

  width: 100%;
  height: 200px;

  background: var(--nt-blue);

  pointer-events: none;
}

.nt-topics__wave svg {
  display: block;

  width: 100%;
  height: 100%;
}


/* =========================================================
   TOPICS INNER
========================================================= */

.nt-topics__inner {
  position: relative;
  z-index: 2;

  width: min(1120px, 82%);

  margin: 0 auto;
}

.nt-section-heading {
  text-align: center;
}

.nt-section-heading h2 {
  font-size: 69px;
  line-height: 1;

  font-weight: 400;
}

.nt-section-heading p {
  margin-top: 14px !important;

  font-size: 16.5px;
}

.nt-topics__grid {
  margin-top: 55px;

  display: grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 22px;
}

.nt-topic-card {
  min-width: 0;
}

.nt-topic-card__thumb {
  width: 100%;

  aspect-ratio: 1.45 / 1;

  background: #dc7008;

  overflow: hidden;
}

.nt-topic-card__thumb img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.nt-topic-card__noimage {
  position: relative;

  width: 100%;
  height: 100%;

  background: #d96e08;

  overflow: hidden;
}

.nt-topic-card__noimage::before,
.nt-topic-card__noimage::after {
  content: "";

  position: absolute;

  top: 15%;

  width: 65%;
  height: 90%;

  border:
    1px solid rgba(255, 255, 255, .45);

  border-radius: 50%;
}

.nt-topic-card__noimage::before {
  left: -12%;

  transform: rotate(-22deg);
}

.nt-topic-card__noimage::after {
  right: -12%;

  transform: rotate(22deg);
}

.nt-topic-card__body {
  padding: 15px 0 24px;

  border-bottom: 1px solid #bbb;
}

.nt-topic-card__date,
.nt-topic-card__cat {
  font-size: 13.5px;
}

.nt-topic-card__cat {
  margin-top: 6px !important;

  color: var(--nt-orange);
}

.nt-topic-card h3 {
  margin-top: 12px !important;

  font-size: 19.5px;
  line-height: 1.55;

  font-weight: 700;
}

.nt-topic-card__excerpt {
  margin-top: 12px !important;

  font-size: 13.5px;
  line-height: 1.6;
}


/* =========================================================
   RECRUIT
========================================================= */

.nt-recruit {
  padding: 65px 0 155px;

  background: #fff;
}

.nt-recruit__inner {
  width: min(1120px, 82%);

  margin: 0 auto;
}

.nt-recruit__box {
  padding: 55px;

  border-radius: 20px;

  background: #fff;

  display: grid;
  grid-template-columns: 270px 1fr;

  gap: 55px;
}

.nt-recruit__en {
  margin-bottom: 10px !important;

  color: var(--nt-orange);

  font-size: 13.5px;
  line-height: 1;

  letter-spacing: .08em;
}

.nt-recruit__title h2 {
  font-size: 51px;
  line-height: 1.4;

  font-weight: 600;
}

.nt-recruit-item {
  min-height: 145px;

  margin-bottom: 15px;
  padding: 22px 32px;

  background: #fff;

  border: 1px solid #f0ece5;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;
}

.nt-recruit-item:last-child {
  margin-bottom: 0;
}

.nt-recruit-item__en {
  color: var(--nt-orange);

  font-size: 13.5px;
  letter-spacing: .1em;
}

.nt-recruit-item h3 {
  margin-top: 7px !important;

  font-size: 25.5px;
  line-height: 1.5;
}

.nt-recruit-item p:last-child {
  margin-top: 6px !important;

  font-size: 13.5px;
}

.nt-recruit-item__button {
  flex-shrink: 0;

  min-width: 125px;

  padding: 10px 18px;

  border-radius: 999px;

  background: var(--nt-orange);
  color: #fff;

  font-size: 13.5px;

  text-align: center;
}


/* =========================================================
   COMPANY
========================================================= */

.nt-company {
  min-height: 430px;

  padding: 120px 0 195px;

  background: var(--nt-orange);
  color: #fff;
}

.nt-company__inner {
  width: min(1050px, 80%);

  margin: 0 auto;

  display: grid;
  grid-template-columns: 300px 1fr;

  gap: 85px;
}

.nt-company__title p {
  font-size: 13.5px;
  letter-spacing: .12em;
}

.nt-company__title h2 {
  margin-top: 14px !important;

  font-size: 51px;
  line-height: 1.4;

  font-weight: 500;
}

.nt-company__table dl {
  min-height: 78px;

  margin: 0;

  border-bottom:
    1px solid rgba(255, 255, 255, .23);

  display: grid;
  grid-template-columns: 150px 1fr;

  align-items: center;
}

.nt-company__table dt,
.nt-company__table dd {
  margin: 0;

  font-size: 16.5px;
  line-height: 1.7;
}


/* =========================================================
   CONTACT WAVE
========================================================= */

.nt-contact__wave {
  position: absolute;
  z-index: 1;

  top: 0;
  left: 0;

  width: 100%;
  height: 200px;

  background: var(--nt-orange);

  pointer-events: none;
}

.nt-contact__wave svg {
  display: block;

  width: 100%;
  height: 100%;
}


/* =========================================================
   CONTACT
========================================================= */

.nt-contact {
  position: relative;

  min-height: 500px;

  padding: 190px 0 150px;

  background: var(--nt-blue);
  color: #fff;

  text-align: center;

  overflow: hidden;
}

.nt-contact__inner {
  position: relative;
  z-index: 2;
}

.nt-contact__en {
  font-size: 13.5px;
  letter-spacing: .13em;
}

.nt-contact h2 {
  margin-top: 14px !important;

  font-size: 57px;
  line-height: 1.4;

  font-weight: 500;
}

.nt-contact__text {
  margin-top: 16px !important;

  font-size: 16.5px;
}

.nt-contact__button {
  width: 330px;
  min-height: 68px;

  margin: 38px auto 0;
  padding: 0 28px;

  border-radius: 999px;

  background: #fff;

  color: var(--nt-blue) !important;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 16.5px;
}


/* =========================================================
   FOOTER
========================================================= */

.nt-footer {
  padding: 65px 0 0;

  background: var(--nt-cream);

  font-family:
    "TBUDゴシック R",
    sans-serif;
}

.nt-footer__inner {
  width: min(1120px, 84%);

  margin: 0 auto;

  padding-bottom: 55px;

  display: flex;
  justify-content: space-between;
}

.nt-footer__logo {
  width: 115px;
}

.nt-footer__left > p {
  margin-top: 16px;

  font-size: 15px;
  line-height: 1.8;
}

.nt-footer__address {
  margin-top: 8px !important;
}

.nt-footer__right {
  min-width: 340px;
}

.nt-footer__social-title {
  font-size: 25.5px;
  line-height: 1;

  font-weight: 500;
}

.nt-footer__social-icons {
  margin-top: 18px;

  display: flex;
  align-items: center;
  flex-wrap: wrap;

  gap: 12px;
}

.nt-footer__social-icon {
  display: block;

  width: 40px;
  height: 40px;
}

.nt-footer__social-icon svg {
  display: block;

  width: 100%;
  height: 100%;
}

.nt-footer__privacy {
  display: inline-block;

  margin-top: 32px;

  font-size: 13.5px;

  text-decoration: underline !important;
}

/* =========================================================
   PRIVACY MARK
========================================================= */

.nt-footer__privacy-mark {
  width: min(1120px, 84%);

  margin: 0 auto;
  padding: 0 0 45px;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: 28px;
}

.nt-footer__privacy-mark-logo {
  display: block;
  flex-shrink: 0;

  width: 110px;
}

.nt-footer__privacy-mark-logo img {
  display: block;

  width: 110px;
  height: auto;
}

.nt-footer__privacy-mark-text {
  margin: 0 !important;

  font-size: 15px;
  line-height: 2;
}

.nt-footer__copy {
  margin: 0 !important;

  padding: 25px 20px 30px;

  border-top:
    1px solid rgba(255, 146, 8, .35);

  text-align: center;

  font-size: 12px;
}


/* =========================================================
   PASSWORD
========================================================= */

#new_top_password {
  padding: 120px 30px;

  font-family:
    "TBUDゴシック R",
    sans-serif;
}

.new_top_password_inner {
  width: 100%;
  max-width: 600px;

  margin: 0 auto;
}


/* =========================================================
   HOVER
========================================================= */

@media (hover: hover) {

  .nt-header__contact,
  .nt-pill,
  .nt-topic-card,
  .nt-recruit-item,
  .nt-contact__button,
  .nt-footer a {
    transition:
      opacity .25s ease,
      transform .25s ease;
  }

  .nt-header__contact:hover,
  .nt-pill:hover,
  .nt-contact__button:hover,
  .nt-footer a:hover {
    opacity: .7;
  }

  .nt-topic-card:hover,
  .nt-recruit-item:hover {
    transform: translateY(-3px);
  }

}


/* =========================================================
   TABLET
========================================================= */

@media screen and (max-width: 1100px) and (min-width: 768px) {

  .nt-service-circle {
    width: 420px;
    height: 420px;
  }

  .nt-service-circle--03 {
    left: 7%;
  }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media screen and (max-width: 767px) {


  /* HEADER */

  .nt-header {
    height: 100px;
  }

  .nt-header__logo {
    top: 11px;
  }

  .nt-header__contact {
    right: 14px;

    height: 40px;

    padding: 0 14px;

    font-size: 13.5px;
  }


  /* CONCEPT */

  .nt-concept {
    min-height: 700px;

    background: #fff;
  }

  .nt-concept__inner {
    width: 86%;
    min-height: 700px;

    padding-top: 110px;
  }

  .nt-concept__content {
    width: 100%;
  }

  .nt-concept h1 {
    white-space: normal;

    font-size: 51px;
  }

  .nt-concept__catch {
    margin-top: 12px !important;

    font-size: 19.5px;
  }

  .nt-concept__text {
    margin-top: 50px;

    font-size: 16.5px;
    line-height: 1.9;
  }

  .nt-concept__text p + p {
    margin-top: 24px !important;
  }

  .nt-dot--concept01 {
    top: 100px;
    right: -10%;

    width: 16%;
  }

  .nt-dot--concept02 {
    top: 185px;
    right: 15%;

    width: 8.1%;
  }

  .nt-dot--concept03 {
    top: 430px;
    right: 4%;

    width: 19.2%;

    opacity: .75;
  }

  .nt-dot--concept04 {
    top: 530px;
    right: -8%;

    width: 21.1%;
  }


  /* SERVICE */

  .nt-service {
    min-height: auto;

    padding: 120px 0 120px;
  }

  .nt-service__wave {
    height: 90px;
  }

  .nt-service__inner {
    width: 92%;
  }

  .nt-service__heading h2 {
    font-size: 54px;
  }

  .nt-service__heading p {
    margin-top: 18px !important;

    font-size: 15px;
    letter-spacing: .06em;
  }

  .nt-service-map {
    min-height: auto;

    margin-top: 60px;

    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 55px;
  }

  .nt-service-circle {
    position: relative;

    top: auto !important;
    right: auto !important;
    left: auto !important;

    width: min(90vw, 380px);
    height: min(90vw, 380px);
  }

  .nt-service-circle--02 {
    margin-left: 8%;
  }

  .nt-service-circle--03 {
    margin-right: 8%;
  }

  .nt-service-circle__content {
    width: 76%;
  }

  .nt-service-circle__number {
    font-size: 31.5px;
  }

  .nt-service-circle h3 {
    margin-top: 9px !important;

    font-size: 21px;
  }

  .nt-service-circle__text {
    margin-top: 14px !important;

    font-size: 13.5px;
    line-height: 1.75;
  }

  .nt-service-circle__buttons {
    margin-top: 12px;
  }

  .nt-pill {
    min-width: 90px;
    min-height: 32px;

    padding: 5px 9px;

    font-size: 12px;
  }

  .nt-pill--more {
    margin-top: 14px;
  }

  .nt-service-photo,
  .nt-dot--s01,
  .nt-dot--s02,
  .nt-dot--s03,
  .nt-dot--s04,
  .nt-dot--s05,
  .nt-dot--s06,
  .nt-dash {
    display: none;
  }

/* 開発事業 ショップリンク */

.nt-service-circle__shops {
  width: 82%;
  margin: 18px auto 0;

  grid-template-columns: 42% 58%;
  gap: 10px;
}

.nt-service-circle__apprecia {
  width: 100%;
}

.nt-service-circle__apprecia img {
  width: 100%;
  max-width: 105px;
}

.nt-service-circle__shop-buttons {
  gap: 8px;
}

.nt-shop-button {
  min-height: 34px;

  padding: 0 12px;

  font-size: 12px;
}

  /* TOPICS */

  .nt-topics {
    padding: 140px 0 75px;
  }

  .nt-topics__wave {
    height: 90px;
  }

  .nt-topics__inner {
    width: 86%;
  }

  .nt-section-heading h2 {
    font-size: 60px;
  }

  .nt-section-heading p {
    font-size: 16.5px;
  }

  .nt-topics__grid {
    margin-top: 42px;

    grid-template-columns: 1fr;

    gap: 42px;
  }

  .nt-topic-card__date,
  .nt-topic-card__cat {
    font-size: 13.5px;
  }

  .nt-topic-card h3 {
    font-size: 19.5px;
  }

  .nt-topic-card__excerpt {
    font-size: 13.5px;
  }


  /* RECRUIT */

  .nt-recruit {
    padding: 45px 0 105px;

    background: #fff;
  }

  .nt-recruit__inner {
    width: 90%;
  }

  .nt-recruit__box {
    padding: 28px 20px;

    background: #fff;

    display: block;
  }

  .nt-recruit__title {
    margin-bottom: 28px;
  }

  .nt-recruit__en {
    font-size: 13.5px;
  }

  .nt-recruit__title h2 {
    font-size: 34.5px;
  }

  .nt-recruit-item {
    min-height: 115px;

    padding: 17px;
  }

  .nt-recruit-item__en {
    font-size: 12px;
  }

  .nt-recruit-item h3 {
    font-size: 18px;
  }

  .nt-recruit-item p:last-child {
    font-size: 12px;
  }

  .nt-recruit-item__button {
    min-width: 85px;

    padding: 8px 10px;

    font-size: 12px;
  }


  /* COMPANY */

  .nt-company {
    min-height: 0;

    padding: 85px 0 125px;
  }

  .nt-company__inner {
    width: 86%;

    display: block;
  }

  .nt-company__title {
    margin-bottom: 40px;
  }

  .nt-company__title p {
    font-size: 13.5px;
  }

  .nt-company__title h2 {
    font-size: 40.5px;
  }

  .nt-company__table dl {
    min-height: 68px;

    grid-template-columns: 95px 1fr;
  }

  .nt-company__table dt,
  .nt-company__table dd {
    font-size: 13.5px;
  }


  /* CONTACT */

	.nt-contact__wave {
	  height: 91px;
	}

	.nt-contact__wave svg {
	  display: block;
	  width: 100%;
	  height: calc(100% + 2px);
	  margin-top: -1px;
	}

  .nt-contact {
    min-height: 420px;

    padding: 120px 0 75px;
  }

  .nt-contact__en {
    font-size: 13.5px;
  }

  .nt-contact h2 {
    font-size: 40.5px;
  }

  .nt-contact__text {
    font-size: 13.5px;
  }

  .nt-contact__button {
    width: 280px;
    min-height: 58px;

    margin-top: 30px;
    padding: 0 20px;

    font-size: 13.5px;
  }


  /* FOOTER */

  .nt-footer {
    padding: 48px 0 0;
  }

  .nt-footer__inner {
    width: 86%;

    padding-bottom: 38px;

    display: block;
  }

  .nt-footer__logo {
    width: 90px;
  }

  .nt-footer__left > p {
    font-size: 13.5px;
  }

  .nt-footer__right {
    min-width: 0;

    margin-top: 40px;
  }

  .nt-footer__social-title {
    font-size: 22px;
  }

  .nt-footer__social-icon {
    width: 36px;
    height: 36px;
  }

  .nt-footer__privacy {
    font-size: 12px;
  }

  .nt-footer__copy {
    padding: 20px 15px 24px;

    font-size: 12px;
  }
  /* PRIVACY MARK */

  .nt-footer__privacy-mark {
    width: 86%;

    padding-bottom: 35px;

    gap: 18px;
  }

  .nt-footer__privacy-mark-logo {
    width: 80px;
  }

  .nt-footer__privacy-mark-logo img {
    width: 80px;
  }

  .nt-footer__privacy-mark-text {
    font-size: 12px;
    line-height: 1.8;
  }

  .nt-footer__privacy-mark-text br {
    display: none;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  .nt-float-y,
  .nt-float-x {
    animation: none !important;
  }

}