@charset "UTF-8";
:root {
  --key_color: #008080;
  --darker_key_color: oklch(from var(--key_color) calc(l * 0.55) c h);
  --white: oklch(from var(--key_color) calc(l + 1) calc(c * 0.05) h);
  --bg_light_color: #f4fff4;

  /* --sp_nav_font_size: 10vw; */
  --sp_scale: calc((var(--sp_nav_font_size) / 24px) * 0.9);
  --sp_scale_80: calc(var(--sp_scale) * 0.8);

  --nav_items: 5;
  --nav_items_between: calc((var(--nav_items) - 1) * 0.5);
  --sp_nav_font_size: calc(100vh / (var(--nav_items) + var(--nav_items_between)));

  --sp_breakpoint: 890px;
}
body {
  background-color: var(--darker_key_color);
}

.a_btn {
  padding-top: 7px;
  padding-bottom: 8px;
  padding-inline: 16px;
  background-color: var(--white);
  box-shadow: 2px 2px 3px 2px rgba(250, 250, 250, 0.5);
  border-radius: 18px;
  border-top-right-radius: 6px;
  border-bottom-left-radius: 10px;
  font-family: Nunito, "M PLUS Rounded 1c", "Montserrat", sans-serif;
  color: var(--key_color);

  &.btn_big {
    padding: 30px 32px 26px 36px;
    border-radius: 40px;
    border-top-right-radius: 16px;
    border-bottom-left-radius: 16px;
    font-size: 32px;
    font-weight: 800;
    @media screen and (max-width: 890px) {
      width: fit-content;
      max-width: 80vw;
    }
  }
}

@container section style(background-color: var(--bg_light_color)) {
  .secttion_title_en {
    color: var(--darker_key_color);
  }
  .section_title_en::after {
    background-color: var(--key_color);
  }
}

/* Header */
.header.fixed {
  background-color: transparent;
}
.header.fixed .header_inner {
  top: 2vh;
  background-color: var(--darker_key_color);
  border-radius: min(1.3rem, 3vmin);
  box-shadow: 2px 3px 0px 1px oklch(from var(--white) l c h / 0.65);
  width: 90vw;
  max-width: 1240px;
  @media screen and (max-width: 890px) {
    height: 12vh;
  }
}
.header,
.header .header_inner {
  background-color: transparent;
}
.header .header_inner {
  padding: 5px min(2.5vw, 24px);
}
@media screen and (max-width: 1024px) {
  .header {
    height: 85px;
  }
  .header .header_inner {
    height: 100%;
  }
}
.header .header_inner .header_left {
  margin-right: 20px;
  padding: 5px 0;
  width: fit-content;
}
.header .header_inner .header_left .logo {
  margin-right: 16px;
  width: fit-content;
  max-width: 100%;
  a {
    color: var(--white);

    img {
      aspect-ratio: 1 / 1;
      margin-right: 0;
      padding: 2px;
      width: 100%;
      height: auto;
      max-height: 100%;
      background-color: white;
      border-radius: min(16px, 3vw);
    }
    p {
      padding-left: 1.5vmin;
    }
    p svg {
      display: none;
      width: fit-content;
    }
    p svg text {
      fill: var(--white);
    }
  }
}
.header.fixed .header_inner .header_left .logo p svg {
  display: inline-block;
}

.header .header_inner .header_menu {
  background-color: transparent;
  @media screen and (max-width: 1024px) {
    position: initial;
    height: inherit;
    width: auto;
    .nav .nav_ul {
      flex-direction: inherit;
    }
    .nav .nav_ul .nav_li {
      position: relative;
      margin-top: inherit;
      height: inherit;
    }
  }
  @media screen and (max-width: 890px) {
    position: fixed;
    right: -120vw;
    overscroll-behavior: none;
    overflow: hidden;
    height: 100vh;
    width: 100vw;
    background-color: var(--darker_key_color);
  }
}
.header .header_inner .header_menu.active{
  top: 0;
}

.header .header_inner .header_menu .nav .nav_ul {
  align-items: end;
  column-gap: 24px;
  padding-bottom: 5px;

  /* sp menu */
  @media screen and (max-width: 890px) {
    flex-direction: column;
    align-items: center;
    row-gap: 6vw;
  }
}
.header.fixed .header_inner .header_menu .nav .nav_ul .nav_li ,
.header .header_inner .header_menu .nav .nav_ul .nav_li {
  position: relative;
  margin-right: 0;
  a {
    color: var(--white);
  }
  &:not(:last-child) {
    padding-bottom: 5px;
  }
  &:last-child {
    margin-left: min(1vw, 16px);
    padding-bottom: 0;
  }
  /* cat position*/
  &::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -13px;
    left: 36%;
    width: 34px;
    height: 24px;
    background-image: url("../img/pages/cat-white_painted.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    scale: 0;
    transition: scale 0.2s ease;
  }
  &#li_about::before {
    top: -4px;
    left: -24px;
    rotate: -59deg;
  }
  &#li_contact::before {
    top: -3px;
    left: -25px;
    rotate: -67deg;
  }
  /* hove: show cat */
  &:hover::before {
    scale: 0.85;
  }
  
  @media screen and (max-width: 890px) {
    .nav_li {
      width: fit-content;
    }
  }
}
#li_contact a {
  color: var(--key_color);
  font-size: 24px;
  @media screen and (max-width: 890px) {
  }
}
/* burger menu */
.header .header_inner .header_right {
  display: none;
  .open_btn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    row-gap: 8px;
  }
  .open_btn span {
    position: initial;
  }

  .open_btn span:nth-of-type(3) {
    background-color: transparent;
    width: fit-content;
    height: 14px;
  }
  .open_btn span:nth-of-type(3)::after {
    position: initial;
    display: block;
    width: 100%;
    text-align: center;
    font-family: "Nunito", sans-serif;
    font-size: 14px;
    font-weight: bold;
  }
  .open_btn.active span:nth-of-type(1),
  .open_btn.active span:nth-of-type(2) {
    width: 60%;
  }
  .open_btn.active span:nth-of-type(1) {
    translate: -1px 8px;
  }
  .open_btn.active span:nth-of-type(2) {
    opacity: 1;
    rotate: 45deg;
    translate: 0px 3px;
  }
  .open_btn.active span:nth-of-type(3),
  .open_btn.active span:nth-of-type(3)::after {
    transform: initial;
    translate: 0px 6px;
    width: 100%;
  }

  @media screen and (max-width: 890px) {
    display: block;
  }
}

/* sp logo and burger menu scale */
@media screen and (max-width: 890px) {
  .header .open_btn {
    transform-origin: top right;
  }
  /* .header .logo, */
  .header .open_btn.active {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
    justify-content: start;
    align-items: center;
    padding-top: 5px;
  }
}

/* Commons */
.section .section_title_en {
  isolation: isolate;
  margin-bottom: min(5rem, 8vh);
  color: var(--white);
}
.section .section_title_en::after {
  isolation: isolate;
  bottom: -20%;
  mix-blend-mode: normal;
  background-color: var(--white);
  width: 60%;
}
.section .section_title_ja {
  display: none;
}

/* FV */
#square .square_text_wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 4vw;
  height: calc(min(90vw, 1240px) / 11 * 7);
  max-height: calc((100vh - 85px) * 0.8);
  width: 90vw;
  max-width: 1240px;
  background-color: oklch(from white l c h / 0.35);
  backdrop-filter: blur(6px);
  border-radius: 60px;
  pointer-events: none;
  transform: translateX(-50%) translateY(-45%);
  @media (orientation: portrait) {
    height: 90vw;
    max-height: 1240px;
  }
  h1 {
    margin-bottom: 2vh;
    color: var(--white);
  }
  .catch_copy {
    color: var(--white);
  }
}

/* Service About*/
.service,
.about {
  border-top-left-radius: 10vmin;
  border-bottom-left-radius: 0;
  @media (orientation: landscape) {
    padding-bottom: 8.5vh;
  }
  .section_title_en {
    color: var(--darker_key_color);
  }
  .section_title_en::after {
    background-color: var(--darker_key_color);
  }
}
.service_items .service_item .service_img_wrap {
  scale: 0.75;
}
.service .service_items {
  container-type: inline-size;
  container-name: service_cards_container;
  margin: 0 auto;
  padding: 0;
  column-gap: 2.5vw;
  max-width: unset;
  width: clamp(320px, 90vw, 1200px);
  &:first-child {
    .service_img_wrap {
      scale: 0.65;
    }
  }
  .service_item {
    width: clamp(280px, 80vw, 100%);
  }
  .service_item .service_item_text {
    margin: 0 auto;
    width: fit-content;
    font-size: clamp(16px, 1.8vw, 18px);
  }
}
/* Works */
.works {
  .swiper {
    max-width: min(94vw, 1024px);
    overflow: unset;
  }
  .swiper .swiper-wrapper {
    gap: min(24px, 10vw);
  }
  .swiper-button-prev,
  .swiper-button-next {
    width: clamp(60px, 10vmin, 100px);
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .swiper-button-prev {
    left: clamp(10px, 2vw, 20px);
  }
  .swiper-pagination {
    position: initial;
  }
  .a_btn {
    margin-top: 60px;
  }
}
/* About */
.about {
  .section_title_en {
    margin-bottom: min(6vh, 40px);
    color: var(--darker_key_color);
    &::after {
      background-color: var(--key_color);
    }
    .about_items .about_img,
    .about_items .about_text {
      max-width: 350px;
    }
  }
}

/* Contact */
.contact .contact_text {
  /* margin-top: min(10vh, 60px);
  margin-bottom: min(8vh, 40px); */
  margin: min(10vh, 60px) 0;
  color: var(--white);
}

/* Footer */
.footer {
  background-color: var(--white);
  .footer_copy {
    height: fit-content;
    line-height: 2;
  }
}

/* Pages */
.pages_main {
  background-color: var(--bg_light_color);
}
