@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Hind:wght@300;400;500;600;700&display=swap');

html {
  scroll-behavior: smooth;
}

body {
  font-feature-settings: "palt";
  margin: 0;
  height: 100%;
  width: 100%;
  background-color: #F9F9F9;
  font-family: 'Yu Gothic Medium', '游ゴシック Medium', 'YuGothic', '游ゴシック体', 'Noto Sans JP', 'Hind', 'Hiragino Sans','Arial', 'MS P ゴシック', sans-serif;
}

#main {
  max-width: 1280px;
  margin: auto;
}

.font-feature-none {
  font-feature-settings: normal;
}

.scrollbar-none {
  overflow: scroll;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.scrollbar-none::-webkit-scrollbar {
  display: none;
}

/*--------------------------------------------------------------
# Accessibility
--------------------------------------------------------------*/
/* Text meant only for screen readers. */
#screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 14px;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

#main-logo img {
  display: block;
  width: auto;
  height: 100%;
}

#pc-nav-menu * {
  box-sizing: border-box;
  -webkit-transition: all 0.35s ease;
  transition: all 0.35s ease;
}

#pc-nav-menu li {
  list-style: outside none none;
}

#pc-nav-menu a,
.child-menu-2 a {
  position: relative;
}

#pc-nav-menu a:before,
.child-menu-2 a:before {
  height: 4px;
  position: absolute;
  content: '';
  -webkit-transition: all 0.35s ease;
  transition: all 0.35s ease;
  background-color: #12B3C7;
  width: 0;
  bottom: -10px;
}

#pc-nav-menu :hover:not(.has-child):before,
#pc-nav-menu .current:before,
.child-menu-2 a:hover:before {
  width: 100%;
}

.sp-nav-menu {
  animation: slideInRtL .5s ease-in-out forwards;
}

.bar {
  -webkit-transition: all .7s ease;
  -moz-transition: all .7s ease;
  -ms-transition: all .7s ease;
  -o-transition: all .7s ease;
  transition: all .7s ease;
}

#menu-btn.active .top {
  -webkit-transform: translateY(15px) rotateZ(45deg);
  -moz-transform: translateY(15px) rotateZ(45deg);
  -ms-transform: translateY(15px) rotateZ(45deg);
  -o-transform: translateY(15px) rotateZ(45deg);
  transform: translateY(10px) rotateZ(45deg);
}

#menu-btn.active .bottom {
  -webkit-transform: translateY(-15px) rotateZ(-45deg);
  -moz-transform: translateY(-15px) rotateZ(-45deg);
  -ms-transform: translateY(-15px) rotateZ(-45deg);
  -o-transform: translateY(-15px) rotateZ(-45deg);
  transform: translateY(-15px) rotateZ(-45deg);
}

#menu-btn.active .middle {
  width: 0;
}

.bg-gradient-1 {
  background-image: url('../images/sp-menu-overlay.svg');
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-gradient-2 {
  background: linear-gradient(to top left, #098999 0%, #04616C 50%),
  linear-gradient(to bottom left, #098999 50%, #04616C 100%);
}

.bg-gradient-3 {
  background: linear-gradient(to bottom right, #0F9AAB 0%, #30D5EA 100%);
}

.bg-gradient-4 {
  background: linear-gradient(to bottom right, rgba(9, 137, 153, 0.11) 0%, rgba(18, 179, 199, 0.11) 100%);
}

.bg-gradient-5 {
  background-image: url('../images/home/card-bg.svg');
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-gradient-5:hover {
  opacity: 0.77;
}

.bg-gradient-6 {
  background: radial-gradient(170.87% 153.35% at 42.3% 2.95%, rgba(9, 137, 153, 0.11) 0%, rgba(18, 179, 199, 0.11) 100%);
}

.bg-gradient-7 {
  background-image: url('../images/home/case-section-bg.svg');
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-gradient-8 {
  background-image: url('../images/home/reason-section-bg.svg');
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-gradient-9 {
  background-image: url('../images/contact-link-bg.svg');
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-gradient-10 {
  background-image: url('../images/home/card2.svg');
  background-repeat: no-repeat;
  background-size: cover;
}

.bg-gradient-10:hover {
  opacity: 0.77;
}

@media (min-width: 1000px) {
  .service-bg {
    background-image: url('../images/service-bg.svg');
    background-repeat: no-repeat;
    background-size: cover;
    background-position-y: 1236px;
  }
}

.service-card a,
.case-card a {
  position: relative;
  color: #098999;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-decoration-line: underline;
}

.service-card a:after,
.case-card a:after {
  content: url('../images/link-icon.svg');
  position: absolute;
  bottom: -10px;
  padding-right: 8px;
}

.service-contact-animate .bg-img {
  transition: transform 0.25s ease-in-out;
}

.service-contact-animate:hover .bg-img {
  transform: scale(1.1);
}

.service-contact-animate .btn-arrow {
  transition: transform 0.25s ease-in-out;
}

.service-contact-animate:hover .btn-arrow {
  /* 円の直径 + アイコンの真ん中 */
  transform: translateX(calc(160px + 15px));
}

@media screen and (max-width: 799px) {
  .service-contact-animate:hover .btn-arrow {
    /* 円の直径 + アイコンの真ん中 */
    transform: translateX(calc(96px + 15px));
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeDown {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

#eye-catch-title span {
  opacity: 0;
}

#eye-catch-title.appear-text span {
  display: inline-block;
  animation: fadeUp 1s ease-out forwards;
}

#eye-catch-desc1 span {
  opacity: 0;
}

#eye-catch-desc1.appear-text span {
  display: inline-block;
  animation: fadeUp 1s ease-out forwards;
}

.case-thumbnail .no-image {
  background-image: url('../images/case-no-image.svg');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.slide-in {
  opacity: 0;
  animation: slideInLtR 1s ease-in-out 2s forwards;
}

@keyframes slideInLtR {
  0% {
    opacity: 0;
    transform: translateX(-40%);
  }
  100% {
    opacity: 100;
    transform: translateX(0%);
  }
}

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

.child-menu,
.child-menu-2 {
  display: none;
  opacity: 0;
  transform: translateY(-200px);
}

#child-menu-toggle:hover .child-menu {
  display: flex;
  animation: fadeDown 0.5s ease-out forwards;
}

#child-menu-toggle:hover .has-child img {
  rotate: 180deg;
}

#footer-company-links-toggle:hover .child-menu-2 {
  display: flex;
  animation: fadeDown 0.5s ease-out forwards;
}

#footer-company-links-toggle:hover .cursor-pointer img {
  rotate: 180deg;
}

.dot-to-circle-container {
  width: 80px;
  height: 80px;
}

.dot-to-circle {
  width: 8px;
  height: 8px;
  background-color: #098999;
  border-radius: 50%;
  transition: width 0.5s ease, height 0.5s ease;
}

.dot-to-circle-container:hover .dot-to-circle {
  width: 80px;
  height: 80px;
  background-color: transparent;
  border: 1px solid #098999;
}

@keyframes slideInLtR {
  0% {
    opacity: 1;
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateX(110%);
  }
}

.text-slide-animate {
  display: none;
  position: relative;
  overflow: hidden;
}

.text-slide-animate.active {
  display: inline-block;
}

.text-slide-animate::after {
  content: '';
  position: absolute;
  display: block;
  bottom: 0;
  right: 0;
  width: 110%;
  height: 100%;
  transform: translateX(0);
  background: linear-gradient(to right, transparent 0%, #FFFFFF 10%);
  animation: slideInLtR 1.2s ease forwards;
}

.animate-delay-text span {
  opacity: 0;
}

.animate-delay-text.appear-text span {
  display: inline-block;
  animation: fadeUp 1s ease-out forwards;
}

.slide-arrow-right,
.slide-arrow-left,
.slide-arrow-right-mini,
.slide-arrow-left-mini {
  position: relative;
  overflow: hidden;
}

.slide-arrow-right .btn-arrow,
.slide-arrow-left .btn-arrow,
.slide-arrow-right-mini .btn-arrow,
.slide-arrow-left-mini .btn-arrow {
  transition: transform 0.25s ease-in-out;
}

.slide-arrow-right:hover:not(:disabled) .btn-arrow {
  transform: translateX(calc(32px + 9px));
}

.slide-arrow-left:hover:not(:disabled) .btn-arrow {
  transform: translateX(calc(-32px - 9px));
}

.slide-arrow-right-mini:hover:not(:disabled) .btn-arrow {
  transform: translateX(calc(12px + 5px));
}

.slide-arrow-left-mini:hover:not(:disabled) .btn-arrow {
  transform: translateX(calc(-12px - 5px));
}
#article {
  color: #4C4948;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 200%;
}

#article h1 {
  width: 100%;
  color: #098999;
  font-size: 40px;
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
}

#article h2 {
  display: inline-block;
  position: relative;
  padding-left: 20px;
  width: 100%;
  color: #098999;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  margin-top: 50px;
  margin-bottom: 24px;
}

#article h3 {
  display: inline-block;
  position: relative;
  padding-left: 20px;
  width: 100%;
  color: #098999;
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 36px */
  margin-top: 24px; 
  margin-bottom: 24px;
}

#article h2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background-color: #098999;
}
#article h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background-color: #098999;
}

#article h2::after {
  content: "";
  position: absolute;
  left: 0;
  display: block;
  width: calc(100% + 20px);
  height: 1px;
  background-color: #D0D0D1;
  margin-top: 16px;
}

#article h3::after {
  content: "";
  position: absolute;
  left: 0;
  display: block;
  width: 100%;
  height: 1px;
  background-color: #D0D0D1;
  margin-top: 16px;
  margin-bottom: 24px;
}

#article h4 {
  color: #098999;
  font-size: 20px;
  font-weight: 700;
  line-height: 150%;
}

@media screen and (max-width: 799px) {
  #article h1 {
    font-size: 28px;
  }
  #article h2 {
    font-size: 24px;
    margin-top: 40px;
    margin-bottom: 24px;
  }

  #article h3 {
    font-size: 20px;
    margin-top: 20px;
  }
}

#article strong {
  color: #4C4948;
  font-size: 16px;
  line-height: 200%;
}

#article img {
  background: #D9D9D9;
  border-radius: 16px;
  width: 100%;
  height: auto;
  margin: 32px auto 0 auto;
}

#article a {
  position: relative;
  display: inline-block;
  color: #098999;
  line-height: 160%;
  text-decoration-line: underline;
  word-break: break-all;
  padding-right: 32px;
}

#article a strong {
  color: #098999;
  font-size: 16px;
  line-height: 200%;
}

#article a[href^="http://"]::after,
#article a[href^="https://"]::after {
  position: absolute;
  width: 24px;
  height: 24px;
  content: url('../images/link-icon.svg');
  margin-right: 8px;
}

#article ol {
  white-space: pre-line;
  display: flex;
  flex-direction: column;
  gap: 12px;
  counter-reset: ctr;
}

#article ol li {
  list-style: none;
  counter-increment: ctr;
  position: relative;
  padding-left: 24px;
}

#article ol li::before {
  position: absolute;
  left: 0;
  top: 2px;
  content: counter(ctr) ".";
  color: #098999;
  font-size: 18px;
  font-weight: 700;
  line-height: normal;
}

#article ul {
  white-space: pre-line;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

#article ul li {
  position: relative;
  display: inline-block;
  padding-left: 24px;
}

#article ul li::before {
  position: absolute;
  left: 0;
  top: -2px;
  content: url('../images/dot-primary.svg');
}

#article button {
  display: flex;
  padding: 28px 40px;
  justify-content: center;
  align-items: center;
  gap: 12px;
  border-radius: 60px;
  border: 1px solid #098999;
  color: #098999;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

#article table {
  table-layout: auto;
  display: block;
  width: 100%;
	overflow: auto;
}

#article th,
#article td {
  min-width: 200px;
  border: 1px solid #F0F0F0;
  padding: 20px 16px;
  /*white-space: pre;*/
}

#article th {
  background-color: #F9F9F9;
}

.article-text p {
  margin: 1em 0px;
} 

.tablet\:py-10,
.sp\:py-8 {
    width: 100%;
}
.company_map {
 font-weight: 500;
 display: flex;
 flex-direction: column;
 gap: 10px;
}
