﻿@charset "UTF-8";

/**
 * オリジナルcss
 */

:root {
  --font-base: "Noto Sans JP", sans-serif;
  --font-en: "Montserrat", sans-serif;
  --font-zen: "Zen Kaku Gothic New", sans-serif;
  --color-bg: #ffffff;
  --color-bg-blue: #e7f7ff;
  --color-text: #222222;
  --color-theme: #0074c1;
  --color-theme-sub: #328ebf;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 86px;
  font-size: 62.5%;
}

html:has(body.admin-bar) {
  scroll-padding-top: 118px;
}

body {
  margin: 0;
  overflow-x: hidden;
  font-family: var(--font-base);
  color: var(--color-text);
  font-size: 1.6rem;
  letter-spacing: 0.1em;
}

img {
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
}

a,
a:hover,
a:link,
a:visited {
  color: var(--color-text);
  transition: 0.3s;
}

a:hover {
  opacity: 0.8;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}

strong {
  color: var(--color-theme);
  font-weight: inherit;
}

.main {
  margin-top: 86px;
}

.inner {
  --inner-padding-x: 24px;
  width: 100%;
  max-width: 1248px;
  padding-right: var(--inner-padding-x);
  padding-left: var(--inner-padding-x);
  margin-left: auto;
  margin-right: auto;
}

.inner_730 {
  max-width: 778px;
}

.inner_800 {
  max-width: 848px;
}

.inner_900 {
  max-width: 948px;
}

.inner_960 {
  max-width: 1008px;
}

.inner_1018 {
  max-width: 1066px;
}

.inner_1120 {
  max-width: 1168px;
}

h2,
h3,
h4,
h5,
h6 {
  margin: 0;
}

.view_sp {
  display: none;
}

.br_sp {
  display: none;
}

.br_pc {
  display: inline;
}

/* スクロールでふわっと表示（.fade_in クラスを付けた要素に適用） */
.fade_in {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;

  &.is_visible {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .fade_in {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* no image */

.no_image_wrap {
  width: 100% !important;
  height: 100% !important;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eee;
  img {
    width: 60% !important;
    max-width: 250px;
    height: auto !important;
  }
}

/* more link */

.more_link {
  position: relative;
  display: block;
  margin-top: 24px;
  border: 1px solid var(--color-theme);
  width: fit-content;
  a {
    display: block;
    color: #fff;
    background: var(--color-theme);
    font-family: var(--font-en);
    width: fit-content;
    font-size: 2rem;
    padding: 16px 37px;
    text-decoration: none;
    z-index: 100;
    transition:
      background 0.3s,
      color 0.3s;
  }
  a::after {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
    transform: rotate(-45deg);
    vertical-align: middle;
    margin-left: 24px;
    transition: border-color 0.3s;
  }
  a:hover {
    background: #fff;
    color: var(--color-theme);
  }
  a:hover::after {
    border-right-color: var(--color-theme);
    border-bottom-color: var(--color-theme);
  }
}

.more_link_center {
  margin-left: auto;
  margin-right: auto;
}

.more_link_ja {
  a {
    font-family: var(--font-base);
  }
}

.more_link_large {
  width: 100%;
  max-width: 750px;
  a {
    width: 100%;
    text-align: center;
  }
}

/* link button*/

.link_button {
  margin-top: 32px;
  a {
    font-size: 1.6rem;
    color: #fff;
    background: linear-gradient(180deg, #ec6c00 0%, #ffab2a 100%);
    padding: 13px;
    width: 100%;
    max-width: 335px;
    border: none;
    border-radius: 100px;
    cursor: pointer;
    transition: 0.3s;
    display: block;
    margin: 0 auto;
    text-decoration: none;
  }
}
.link_button {
  a:hover {
    opacity: 0.8;
  }
}

/* content header */

.content_header {
  padding-top: 34px;
  position: relative;
  h2 {
    font-size: 3.6rem;
  }
  p {
    margin-top: 24px;
  }
}

.content_header::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 100%;
  position: absolute;
  top: 0;
  background: linear-gradient(180deg, #ec6c00 0%, #fcd006 100%);
}

.content_header_center {
  h2 {
    text-align: center;
  }
}
.content_header_center::before {
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

/* service */

.service_elements {
  margin-top: 48px;
  display: flex;
  flex-wrap: wrap;
  gap: 17px;
  width: 100%;
  a {
    width: calc((100% - 51px) / 4);
    border: 1px solid #c6dff6;
    display: block;
    text-decoration: none;
    background: #fff;
    text-align: left;
    img {
      width: 100%;
      margin-bottom: -10px;
    }
    .top_service_info {
      padding: 0 20px 20px 20px;
    }
    .service_en {
      color: var(--color-theme);
      font-family: var(--font-en);
      font-size: 1rem;
    }
    h3 {
      color: var(--color-theme);
      font-size: 2rem;
      border-bottom: 2px solid var(--color-theme);
      width: fit-content;
    }
    p {
      font-size: 1.4rem;
      margin-top: 16px;
    }
    .service_arrow {
      margin-top: 16px;
      background: var(--color-theme);
      width: 45px;
      height: 45px;
      border-radius: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .service_arrow::before {
      content: "";
      display: block;
      width: 8px;
      height: 8px;
      border-right: 1px solid #fff;
      border-bottom: 1px solid #fff;
      transform: rotate(-45deg);
      margin-right: 5px;
    }
  }
}

/* works slider */

.top_content_works {
  margin-top: 80px;
}

.top_content_works,
.detail_content_works {
  padding: 80px 0;
  background-image: url(../images/top/bg_works.png);
  overflow: hidden;
  margin-bottom: -93px;
}
.top_works {
  margin-top: 48px;
  overflow: unset;
  a {
    position: relative;
    text-decoration: none;
    aspect-ratio: 382 / 278;
    span {
      position: absolute;
      color: #fff;
      background: var(--color-theme);
      right: 0;
      bottom: 0;
      padding: 7px 5px;
      font-size: 1.2rem;
    }
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  .swiper-button-prev,
  .swiper-button-next {
    position: absolute;
    top: auto;
    left: auto;
    top: -70px;
    width: 58px;
    height: 58px;
    background: #fff;
    border: 1px solid var(--color-theme);
    border-radius: 100%;
  }
  .swiper-button-prev {
    right: 194px;
  }
  .swiper-button-next {
    right: 120px;
  }
  .swiper-button-prev::after {
    width: 12px;
    height: 12px;
    content: "";
    border-left: 2px solid var(--color-theme);
    border-bottom: 2px solid var(--color-theme);
    transform: rotate(45deg);
    margin-left: 4px;
  }
  .swiper-button-next::after {
    width: 12px;
    height: 12px;
    content: "";
    border-right: 2px solid var(--color-theme);
    border-bottom: 2px solid var(--color-theme);
    transform: rotate(-45deg);
    margin-right: 4px;
  }
}

/* footer link */

.footer_link {
  h3 {
    a {
      color: var(--color-theme-sub);
      font-weight: 700;
      font-family: var(--font-en);
      text-decoration: none;
    }
  }
  .footer_link_detail {
    margin-top: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 0 64px;
    .footer_link_elements {
      .footer_link_element {
        a {
          text-decoration: none;
        }
      }
    }
    .footer_link_elements_info {
      font-weight: 500;
    }
  }
}

@media screen and (max-width: 1110px) {
}
@media screen and (max-width: 782px) {
  html:has(body.admin-bar) {
    scroll-padding-top: 132px;
  }
}
@media screen and (max-width: 740px) {
  .main {
    margin-top: 64px;
  }
  .view_pc {
    display: none;
  }
  .view_sp {
    display: block;
  }
  .br_pc {
    display: none;
  }
  .br_sp {
    display: inline;
  }
  .inner_pc_only {
    padding: 0;
  }
  .content_header {
    padding-top: 26px;
    h2 {
      font-size: 3.2rem;
    }
  }
  .content_header_center_left {
    h2 {
      text-align: left;
    }
  }
  .content_header_center_left::before {
    left: auto;
    transform: translateX(0);
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
  }
  .top_content_service {
    .content_header {
      .more_link {
        position: unset;
        margin-left: auto;
        margin-right: auto;
      }
    }
  }
  .service_elements {
    a {
      width: 100%;
    }
  }
  .content_works {
    .more_link {
      margin-top: 90px;
    }
    .more_link {
      width: calc(100% - 48px);
      a {
        font-size: 1.8rem;
      }
    }
  }
  .top_works {
    .swiper-button-prev,
    .swiper-button-next {
      top: calc(100% + 40px);
      width: 40px;
      height: 40px;
    }
    .swiper-button-prev {
      right: calc(50% + 4px);
    }
    .swiper-button-next {
      left: calc(50% + 4px);
    }
    .swiper-button-next:after,
    .swiper-button-prev:after {
      width: 8px;
      height: 8px;
    }
  }
  .footer_link {
    width: 100%;
    .footer_link_detail {
      gap: 0 4%;
      .footer_link_elements {
        width: 48%;
      }
    }
  }
}
@media screen and (max-width: 639px) {
  html {
    scroll-padding-top: 64px;
  }

  html:has(body.admin-bar) {
    scroll-padding-top: 110px;
  }
}
@media screen and (max-width: 500px) {
}
