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

    ITEMS

==================================================================================== */
.Title--1 span,
.Title--1 b {
  display: block; }
  .Title--1 span.en,
  .Title--1 b.en {
    padding-bottom: 12px  ;
    font-family: "gotham", "source-han-sans-japanese", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
    position: relative;
    line-height: 1.2; }
    @media only screen and (max-width: 1290px) {
      .Title--1 span.en,
      .Title--1 b.en {
        padding-bottom: 0.93023vw  ; } }
    @media only screen and (max-width: 768px) {
      .Title--1 span.en,
      .Title--1 b.en {
        padding-bottom: 3.2vw  ; } }
    .Title--1 span.en:after,
    .Title--1 b.en:after {
      content: '';
      width: 50px  ;
      height: 1px;
      background: #000;
      position: absolute;
      bottom: 0;
      left: 0; }
      @media only screen and (max-width: 1290px) {
        .Title--1 span.en:after,
        .Title--1 b.en:after {
          width: 3.87597vw  ; } }
      @media only screen and (max-width: 768px) {
        .Title--1 span.en:after,
        .Title--1 b.en:after {
          width: 13.33333vw  ; } }
    .Title--1 span.en.white,
    .Title--1 b.en.white {
      color: #fff; }
      .Title--1 span.en.white:after,
      .Title--1 b.en.white:after {
        background: #fff; }
  .Title--1 span.ja,
  .Title--1 b.ja {
    margin-top: 15px  ;
    font-size: 1.4rem;
    font-weight: 500; }
    @media only screen and (max-width: 1290px) {
      .Title--1 span.ja,
      .Title--1 b.ja {
        margin-top: 1.16279vw  ; } }
    @media only screen and (max-width: 768px) {
      .Title--1 span.ja,
      .Title--1 b.ja {
        margin-top: 4vw  ; } }

.Title--1.blue span,
.Title--1.blue b {
  color: #2A8DAE; }
  .Title--1.blue span.en:after,
  .Title--1.blue b.en:after {
    background: #2A8DAE; }

.Title--1.white span,
.Title--1.white b {
  color: #fff; }
  .Title--1.white span.en:after,
  .Title--1.white b.en:after {
    background: #fff; }

.Title--1.tc span.en:after,
.Title--1.tc b.en:after {
  left: 50%;
  translate: -50%; }

.Link--1 {
  padding-right: 20px  ;
  display: inline-block;
  color: #000;
  border-bottom: 1px solid #000;
  position: relative;
  font-weight: bold; }
  @media only screen and (max-width: 1290px) {
    .Link--1 {
      padding-right: 1.55039vw  ; } }
  @media only screen and (max-width: 768px) {
    .Link--1 {
      padding-right: 5.33333vw  ; } }
  .Link--1:after {
    content: '';
    width: 10px  ;
    aspect-ratio: 10/12;
    background: url("../img/icon--pdf.png") no-repeat center;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: 0;
    translate: 0 -50%; }
    @media only screen and (max-width: 1290px) {
      .Link--1:after {
        width: 0.77519vw  ; } }
    @media only screen and (max-width: 768px) {
      .Link--1:after {
        width: 2.66667vw  ; } }
  @media only screen and (min-width: 769px) {
    .Link--1 {
      transition: opacity .5s ease; }
      .Link--1:hover {
        opacity: 0.6; } }

/* ====================================================================================

    HEADER

==================================================================================== */
.Header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000; }
  .Header--logo {
    width: 192px  ; }
    @media only screen and (max-width: 1290px) {
      .Header--logo {
        width: 14.88372vw  ; } }
    @media only screen and (max-width: 768px) {
      .Header--logo {
        width: 51.2vw  ; } }
  @media only screen and (max-width: 768px) {
    .Header--logo {
      width: 40vw;
      position: relative;
      z-index: 1; } }

/* ====================================================================================

    NAV

==================================================================================== */
.Navi {
  position: absolute;
  top: 0;
  right: 0;
  display: flex; }
  .Navi--left {
    padding-top: 14px  ;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end; }
    @media only screen and (max-width: 1290px) {
      .Navi--left {
        padding-top: 1.08527vw  ; } }
    @media only screen and (max-width: 768px) {
      .Navi--left {
        padding-top: 3.73333vw  ; } }
  .Navi--primary {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    gap: 0px 30px  ; }
    @media only screen and (max-width: 1290px) {
      .Navi--primary {
        gap: 0vw 2.32558vw  ; } }
    @media only screen and (max-width: 768px) {
      .Navi--primary {
        gap: 0vw 8vw  ; } }
    .Navi--primary li a {
      padding-bottom: 14px  ;
      line-height: 1.2;
      display: block;
      font-size: 1.4rem;
      color: #000;
      font-weight: 500;
      position: relative; }
      @media only screen and (max-width: 1290px) {
        .Navi--primary li a {
          padding-bottom: 1.08527vw  ; } }
      @media only screen and (max-width: 768px) {
        .Navi--primary li a {
          padding-bottom: 3.73333vw  ; } }
      .Navi--primary li a:after {
        content: '';
        width: 0%;
        height: 2px  ;
        background: #DDB65E;
        position: absolute;
        bottom: 0;
        left: 50%;
        translate: -50%; }
        @media only screen and (max-width: 1290px) {
          .Navi--primary li a:after {
            height: 0.15504vw  ; } }
        @media only screen and (max-width: 768px) {
          .Navi--primary li a:after {
            height: 0.53333vw  ; } }
      @media only screen and (min-width: 769px) {
        .Navi--primary li a:after {
          transition: width .4s ease; }
        .Navi--primary li a:hover:after {
          width: 100%; } }
    .Navi--primary li.current-navi a:after {
      width: 100%; }
  .Navi--tel {
    margin-bottom: 10px  ;
    order: -1;
    display: flex;
    align-items: center;
    font-size: 0; }
    @media only screen and (max-width: 1290px) {
      .Navi--tel {
        margin-bottom: 0.77519vw  ; } }
    @media only screen and (max-width: 768px) {
      .Navi--tel {
        margin-bottom: 2.66667vw  ; } }
    .Navi--tel .tel_link {
      width: 157px  ; }
      @media only screen and (max-width: 1290px) {
        .Navi--tel .tel_link {
          width: 12.17054vw  ; } }
      @media only screen and (max-width: 768px) {
        .Navi--tel .tel_link {
          width: 41.86667vw  ; } }
    .Navi--tel p {
      line-height: 1; }
  .Navi--contact {
    width: 120px  ; }
    @media only screen and (max-width: 1290px) {
      .Navi--contact {
        width: 9.30233vw  ; } }
    @media only screen and (max-width: 768px) {
      .Navi--contact {
        width: 32vw  ; } }
  @media only screen and (max-width: 768px) {
    .Navi {
      padding: 24vw 6.66667vw;
      display: block;
      visibility: hidden;
      opacity: 0;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh;
      background: #fff;
      overflow-y: scroll;
      -ms-overflow-style: none;
      scrollbar-width: none;
      transform: translate3d(0, 0, 0); }
      .Navi::-webkit-scrollbar {
        display: none; }
      .Navi > .items {
        transform: translateY(10px);
        opacity: 0;
        transition: .4s ease .2s;
        transition-property: transform, opacity; }
      .Navi.open > .items {
        transform: translateY(0);
        opacity: 1; }
      .Navi--left {
        display: block; }
      .Navi--primary {
        display: block; }
        .Navi--primary li {
          margin-bottom: 2.66667vw;
          text-align: center; }
          .Navi--primary li a {
            padding: 2.66667vw;
            font-size: 1.6rem; }
      .Navi--tel {
        display: block; }
        .Navi--tel .tel_link {
          margin-left: auto;
          margin-right: auto;
          width: 80%; }
        .Navi--tel p {
          text-align: center; }
      .Navi--contact {
        margin-left: auto;
        margin-right: auto;
        width: 80%; } }

#nav-torigger {
  display: none;
  height: 100%;
  aspect-ratio: 1/1;
  position: absolute;
  top: 0;
  right: 0; }
  #nav-torigger .ham {
    aspect-ratio: 26/18;
    width: 36.66667%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    #nav-torigger .ham span {
      display: block;
      width: 100%;
      height: 2px;
      background: #000;
      position: absolute;
      left: 0;
      transition: width .2s .2s ease, top .2s .2s ease, transform .2s ease, opacity 0s .2s ease; }
      #nav-torigger .ham span:nth-of-type(1) {
        top: 0; }
      #nav-torigger .ham span:nth-of-type(2) {
        top: 50%;
        translate: 0 -50%; }
      #nav-torigger .ham span:nth-of-type(3) {
        top: 100%;
        width: 65.78947%;
        translate: 0 -100%; }
  #nav-torigger.active .ham span {
    transition: width .2s ease, top .2s ease, transform .2s .2s ease, opacity 0s .2s ease; }
    #nav-torigger.active .ham span:nth-of-type(1) {
      top: 50%;
      transform: rotate(45deg);
      translate: 0 -50%; }
    #nav-torigger.active .ham span:nth-of-type(2) {
      opacity: 0; }
    #nav-torigger.active .ham span:nth-of-type(3) {
      width: 100%;
      top: 50%;
      translate: 0 -50%;
      transform: rotate(-45deg); }
  @media only screen and (max-width: 768px) {
    #nav-torigger {
      display: block; } }

/* ====================================================================================

    FOOTER

==================================================================================== */
.Footer--logo img {
  width: 191px  ; }
  @media only screen and (max-width: 1290px) {
    .Footer--logo img {
      width: 14.8062vw  ; } }
  @media only screen and (max-width: 768px) {
    .Footer--logo img {
      width: 50.93333vw  ; } }

.Footer--navi {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 0px  ; }
  @media only screen and (max-width: 1290px) {
    .Footer--navi {
      gap: 0.77519vw 0vw  ; } }
  @media only screen and (max-width: 768px) {
    .Footer--navi {
      gap: 2.66667vw 0vw  ; } }
  .Footer--navi li a {
    line-height: 1.2;
    color: #000;
    font-size: 1.4rem;
    font-weight: bold; }
    @media only screen and (min-width: 769px) {
      .Footer--navi li a {
        transition: color .4s ease; }
        .Footer--navi li a:hover {
          color: #DDB65E; } }
  @media only screen and (max-width: 768px) {
    .Footer--navi {
      gap: 4vw 0; } }

/* ====================================================================================

    ITEM

==================================================================================== */
.to-up,
.to-right,
.to-left {
  opacity: 0;
  transition: 1.3s cubic-bezier(0.165, 0.84, 0.44, 1) 0.15s;
  transition-property: transform, opacity;
  will-change: opacity, transform; }
  .to-up.active,
  .to-right.active,
  .to-left.active {
    opacity: 1;
    transform: translate(0, 0); }

.to-up {
  transform: translateY(3rem); }

.to-right {
  transform: translateX(-3rem); }

.to-left {
  transform: translateX(3rem); }

.to-scale {
  transform: scale(1.2);
  transition: 1s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-property: transform;
  will-change: transform; }
  .to-scale.active {
    transform: none; }

.order.active .order-child {
  opacity: 1;
  transform: translate(0, 0); }

.band {
  position: relative;
  overflow: hidden;
  display: inline-block;
  left: -100%;
  will-change: left;
  color: #2A8DAE; }
  .band:before {
    background-color: #fff;
    content: "";
    position: absolute;
    width: 130%;
    height: 100%;
    top: 0;
    left: 110%;
    will-change: left; }

.band-box {
  overflow: hidden;
  display: inline-block; }
  .band-box span,
  .band-box b {
    background: #fff; }
  .band-box.active .band {
    animation: catchCopy 1s .5s both; }
    .band-box.active .band:before {
      animation: band 1s .5s both; }

@keyframes catchCopy {
  0% {
    left: -110%; }
  50% {
    left: 0; }
  100% {
    left: 0; } }

@keyframes band {
  0% {
    left: -10%; }
  50% {
    left: 0; }
  100% {
    left: 105%; } }

/* ====================================================================================

    TOP

==================================================================================== */
.Mv {
  background: url("../img/mv.jpg") no-repeat center;
  background-size: cover; }

.About--item {
  position: relative; }
  .About--item:after {
    content: '';
    width: 426px  ;
    aspect-ratio: 426/461;
    background: url("../img/item--logo.png") no-repeat center;
    background-size: 100% 100%;
    position: absolute;
    top: -165px  ;
    right: 0;
    translate: 50%; }
    @media only screen and (max-width: 1290px) {
      .About--item:after {
        width: 33.02326vw  ; } }
    @media only screen and (max-width: 768px) {
      .About--item:after {
        width: 113.6vw  ; } }
    @media only screen and (max-width: 1290px) {
      .About--item:after {
        top: -12.7907vw  ; } }
    @media only screen and (max-width: 768px) {
      .About--item:after {
        top: -44vw  ; } }
    @media only screen and (max-width: 768px) {
      .About--item:after {
        width: 78.66667vw; } }

.About--images {
  width: 100%;
  aspect-ratio: 467/434;
  position: relative; }
  .About--images img {
    position: absolute;
    width: 39.40043%; }
  .About--images--1 {
    top: 30px  ;
    left: 0; }
    @media only screen and (max-width: 1290px) {
      .About--images--1 {
        top: 2.32558vw  ; } }
    @media only screen and (max-width: 768px) {
      .About--images--1 {
        top: 8vw  ; } }
  .About--images--2 {
    top: 80px  ;
    left: 32.11991%;
    z-index: 1; }
    @media only screen and (max-width: 1290px) {
      .About--images--2 {
        top: 6.20155vw  ; } }
    @media only screen and (max-width: 768px) {
      .About--images--2 {
        top: 21.33333vw  ; } }
  .About--images--3 {
    top: 0;
    right: 0; }

.What--item {
  position: relative;
  top: -2px  ;
  height: 141px  ; }
  @media only screen and (max-width: 1290px) {
    .What--item {
      top: -0.15504vw  ; } }
  @media only screen and (max-width: 768px) {
    .What--item {
      top: -0.53333vw  ; } }
  @media only screen and (max-width: 1290px) {
    .What--item {
      height: 10.93023vw  ; } }
  @media only screen and (max-width: 768px) {
    .What--item {
      height: 37.6vw  ; } }
  .What--item span {
    display: flex;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    animation: textAnm 34s linear 0s infinite;
    will-change: transform; }
    .What--item span img {
      max-width: unset;
      width: auto;
      height: 100%; }
  @media only screen and (max-width: 768px) {
    .What--item {
      height: 21.33333vw; }
      .What--item span {
        animation-duration: 20s; } }

.What--box--image {
  position: absolute;
  top: 0;
  width: 600px  ;
  aspect-ratio: 602/446; }
  @media only screen and (max-width: 1290px) {
    .What--box--image {
      width: 46.51163vw  ; } }
  @media only screen and (max-width: 768px) {
    .What--box--image {
      width: 160vw  ; } }
  .What--box--image figure {
    width: calc(100% + ((100vw - 1000px) / 2));
    height: 100%; }
  .What--box--image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: unset; }
    @media only screen and (max-width: 1290px) {
      .What--box--image img {
        width: calc(100% + (145 / 1290 * 100vw)); } }
  .What--box--image.right {
    right: 0; }
  .What--box--image.left {
    left: 0; }
    .What--box--image.left figure {
      position: absolute;
      top: 0;
      right: 0; }
  @media only screen and (max-width: 768px) {
    .What--box--image {
      margin-left: -6.66667vw;
      width: calc(100% + ((25 / 375 * 100vw) * 2));
      aspect-ratio: unset;
      position: static; }
      .What--box--image figure {
        width: 100%;
        height: auto;
        object-fit: unset;
        max-width: 100%; }
      .What--box--image.left figure, .What--box--image.right figure {
        position: static; }
      .What--box--image + div {
        margin-top: -16vw; } }

@keyframes textAnm {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(-50%); } }

.Service--num {
  position: absolute;
  top: -35px  ;
  right: -55px  ; }
  @media only screen and (max-width: 1290px) {
    .Service--num {
      top: -2.71318vw  ; } }
  @media only screen and (max-width: 768px) {
    .Service--num {
      top: -9.33333vw  ; } }
  @media only screen and (max-width: 1290px) {
    .Service--num {
      right: -4.26357vw  ; } }
  @media only screen and (max-width: 768px) {
    .Service--num {
      right: -14.66667vw  ; } }
  .Service--num img {
    height: 213px  ;
    width: auto;
    max-width: unset; }
    @media only screen and (max-width: 1290px) {
      .Service--num img {
        height: 16.51163vw  ; } }
    @media only screen and (max-width: 768px) {
      .Service--num img {
        height: 56.8vw  ; } }
    @media only screen and (max-width: 768px) {
      .Service--num img {
        height: 38.66667vw; } }

.Value {
  background: url("../img/value--back.jpg") no-repeat center;
  background-size: cover; }

.Step--box {
  display: flex;
  justify-content: space-between;
  overflow: hidden; }
  .Step--box:last-of-type .Step--box--num:after {
    content: none; }
  .Step--box--num {
    width: 4.21836%;
    position: relative; }
    .Step--box--num span {
      aspect-ratio: 1;
      background: #DDB65E;
      color: #fff;
      display: flex;
      justify-content: center;
      align-items: center;
      border-radius: 50%;
      font-size: 2.4rem;
      font-weight: bold;
      position: relative;
      z-index: 1; }
    .Step--box--num:after {
      content: '';
      width: 0;
      height: 100%;
      border-left: dotted #2A8DAE;
      border-width: 2.8px  ;
      position: absolute;
      top: 45px  ;
      left: 50%;
      translate: -50%; }
      @media only screen and (max-width: 1290px) {
        .Step--box--num:after {
          border-width: 0.21705vw  ; } }
      @media only screen and (max-width: 768px) {
        .Step--box--num:after {
          border-width: 0.74667vw  ; } }
      @media only screen and (max-width: 1290px) {
        .Step--box--num:after {
          top: 3.48837vw  ; } }
      @media only screen and (max-width: 768px) {
        .Step--box--num:after {
          top: 12vw  ; } }
  .Step--box--info {
    width: 91.81141%; }
  .Step--box--line {
    text-align: center;
    border-top: 0.75px solid #2A8DAE;
    font-size: 0; }
    .Step--box--line img {
      width: 17px  ; }
      @media only screen and (max-width: 1290px) {
        .Step--box--line img {
          width: 1.31783vw  ; } }
      @media only screen and (max-width: 768px) {
        .Step--box--line img {
          width: 4.53333vw  ; } }
  @media only screen and (max-width: 768px) {
    .Step--box--num {
      width: 12%; }
    .Step--box--info {
      width: 83%; } }

.Company--table {
  width: 100%; }
  .Company--table tbody tr th,
  .Company--table tbody tr td {
    padding-top: 15px  ;
    padding-bottom: 15px  ;
    line-height: 1.6; }
    @media only screen and (max-width: 1290px) {
      .Company--table tbody tr th,
      .Company--table tbody tr td {
        padding-top: 1.16279vw  ; } }
    @media only screen and (max-width: 768px) {
      .Company--table tbody tr th,
      .Company--table tbody tr td {
        padding-top: 4vw  ; } }
    @media only screen and (max-width: 1290px) {
      .Company--table tbody tr th,
      .Company--table tbody tr td {
        padding-bottom: 1.16279vw  ; } }
    @media only screen and (max-width: 768px) {
      .Company--table tbody tr th,
      .Company--table tbody tr td {
        padding-bottom: 4vw  ; } }
  .Company--table tbody tr th {
    width: 145px  ;
    font-weight: bold; }
    @media only screen and (max-width: 1290px) {
      .Company--table tbody tr th {
        width: 11.24031vw  ; } }
    @media only screen and (max-width: 768px) {
      .Company--table tbody tr th {
        width: 38.66667vw  ; } }
  @media only screen and (max-width: 768px) {
    .Company--table {
      display: block; }
      .Company--table tbody {
        display: block; }
        .Company--table tbody tr {
          padding: 5.33333vw;
          display: block;
          border-bottom: 1px dashed #000; }
          .Company--table tbody tr:last-child {
            border-bottom: none; }
          .Company--table tbody tr th,
          .Company--table tbody tr td {
            padding: 0;
            display: block; }
          .Company--table tbody tr th {
            margin-bottom: 2.13333vw; } }

.Company--map iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 405/211; }
  @media only screen and (max-width: 768px) {
    .Company--map iframe {
      aspect-ratio: 1/0.7; } }

@media only screen and (max-width: 768px) {
  p {
    line-height: 1.8; }
  .pc {
    display: none !important; }
  .sp {
    display: block !important; }
  .sp-i {
    display: inline !important; }
  .flex {
    display: block; }
  .col-sm-1 {
    width: 100%; }
  .tc-sp {
    text-align: center; }
  .tj-sp {
    text-align: justify; }
  .tr-sp {
    text-align: right; } }

/*# sourceMappingURL=style.css.map */
