@charset "UTF-8";
/*---------------------------------------------------------------------------------
CSS構成

// 絶対に変更しないCSS
- animate.min.css           animate.cssを利用するためのCSS。基本触らないこと。
- bootstrap.min.css         Bootstrapコンポーネントを利用するためのCSS。基本触らないこと。
- bootstrap-icons.min.css
- destyle.css               全てのブラウザ固有CSSをリセットするCSS。基本触らないこと。
- swiper.min.css            swiperを利用するためのCSS。基本触らないこと。

// メインで利用しているCSS
- common.css                SCSSを集約したCSS。

// SCSS構成
- external                  外部ライブラリを上書きするためのSCSS。
- foundation                基本の文字設定や、Webフォントの読み込みなど。基本触らなくてもOK。
- global                    @mixin, @function, 変数など。基本触らないこと。
- layout                    各ページを構成する大枠のレイアウトに関するスタイルを管理。基本触らないこと。
- object                    パーツやブロックを管理するためのSCSS。
    ├─component             繰り返し使用される小さな単位のパーツ
    ├─project               セクションや大きなブロック
    └─utility               補助的にcomponentやprojectを調整する。レスポンシブの表示切替用クラスなど。
---------------------------------------------------------------------------------*/
/* 基本的に変更しない */
/* 
@mixin
---------------------------------------------------------------- */
/* media-query */
/* width */
/* flex */
/* ::before, ::after */
/* form */
/* utility */
*, ::before, ::after {
  min-width: initial;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0;
  font-size: initial;
  line-height: 1;
}

p {
  margin: 0;
}

address {
  margin: 0;
}

a {
  color: #000;
  text-decoration: none;
}

ul,
ol,
dl {
  padding: 0;
  margin: 0;
}

dt,
dd {
  margin: 0;
  font-weight: 400;
}

.swiper-fade .swiper-slide {
  transition-property: opacity !important;
}

/* 
base
---------------------------------------------------------------- */
html {
  overflow-x: hidden;
}

body {
  font-family: "Zen Kaku Gothic New", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 0.75rem + 0.2vw, 1rem);
  letter-spacing: 0.06em;
  line-height: 1.75;
  color: #1c1e1e;
  font-feature-settings: "palt";
  -webkit-font-feature-settings: "palt";
  background-color: #fafcfc;
}

/* form */
form {
  font-size: clamp(1rem, 1rem + 0.1vw, 1.125rem);
}

input[type=text],
select,
textarea {
  width: 100%;
  padding: 0.3em 0.6em 0.4em 0.6em;
  border: 1px solid rgba(198, 204, 203, 0.4);
  border-radius: 0.2em;
  background-color: #fafcfc;
}
input[type=text]::-moz-placeholder, select::-moz-placeholder, textarea::-moz-placeholder {
  color: #c6cccb;
}
input[type=text]::placeholder,
select::placeholder,
textarea::placeholder {
  color: #c6cccb;
}
input[type=text]:focus,
select:focus,
textarea:focus {
  outline: none;
  border: 1px solid rgba(2, 166, 133, 0.4);
  background-color: rgba(163, 223, 211, 0.1);
}

input[type=checkbox] {
  width: 1em;
  aspect-ratio: 1/1;
  margin-bottom: 0.3em;
  border: 1px solid #c6cccb;
  border-radius: 0.2em;
  position: relative;
  transition: border 0.3s, background-color 0.3s;
}
input[type=checkbox]::before {
  content: "";
  display: inline-block;
  width: 0.7em;
  height: 0.4em;
  border-bottom: 0.15625rem solid #fafcfc;
  border-left: 0.15625rem solid #fafcfc;
  rotate: -45deg;
  position: absolute;
  top: 0.1em;
  left: 0.05em;
}
@media (hover: hover) {
  input[type=checkbox]:hover {
    border: 1px solid rgba(2, 166, 133, 0.4);
    background-color: rgba(163, 223, 211, 0.1);
  }
}
input[type=checkbox]:checked {
  background-color: #02a685;
  border-color: #02a685;
}

textarea {
  resize: none;
  height: 16em;
}

/* policy */
.policy {
  height: 20em;
  border: 1px solid #c6cccb;
  padding: 1em 2em;
  border-radius: 0.2em;
  font-size: clamp(0.75rem, 0.75rem + 0.1vw, 0.875rem);
  line-height: 1.5;
  overflow-y: scroll;
}
.policy .privacyBox {
  margin-top: 2em;
}
.policy .privacyBox p {
  margin-top: 1.5em;
  line-height: 1.5;
}
.policy .privacyBox ol {
  margin-top: 0.8em;
}
.policy .privacyBox ol li {
  padding-left: 1em;
  position: relative;
  line-height: 1.5;
}
.policy .privacyBox ol li:not(:first-child) {
  margin-top: 0.4em;
}
.policy .privacyBox ol li::before {
  content: "";
  display: inline-block;
  width: 0.2em;
  height: 0.2em;
  background-color: #1c1e1e;
  border-radius: 50%;
  position: absolute;
  top: 0.65em;
  left: 0.3em;
}
.policy .privacyBox .link {
  color: #02a685;
  text-decoration: underline;
}

.smBr {
  display: none;
}
@media screen and (max-width: 575px) {
  .smBr {
    display: block;
  }
}

.mdBr {
  display: none;
}
@media screen and (max-width: 767px) {
  .mdBr {
    display: block;
  }
}

.lgBr {
  display: none;
}
@media screen and (max-width: 991px) {
  .lgBr {
    display: block;
  }
}

.xlBr {
  display: none;
}
@media screen and (max-width: 1199px) {
  .xlBr {
    display: block;
  }
}

.xxlBr {
  display: none;
}
@media screen and (max-width: 1399px) {
  .xxlBr {
    display: block;
  }
}

p {
  line-height: 1.75;
}

div {
  line-height: 1;
}

span {
  display: inline-block;
}

a {
  display: inline-block;
  vertical-align: bottom;
  color: #1c1e1e;
}

img,
picture {
  display: inline-block;
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

svg {
  display: inline-block;
}

use {
  display: inline-block;
  width: 100%;
  height: auto;
}

ul,
ol,
dl {
  padding: 0;
  margin: 0;
}

/* 
animation
---------------------------------------------------------------- */
/* .js-fade */
.js-fade {
  opacity: 0;
  visibility: hidden;
}
.js-fade.is-appeared {
  animation-name: fade;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
}
@keyframes fade {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}

/* .js-blur */
.js-blur {
  opacity: 0;
  visibility: hidden;
  filter: blur(1rem);
}
.js-blur.is-appeared {
  animation-name: blur;
  animation-duration: 1.2s;
  animation-fill-mode: forwards;
}
@keyframes blur {
  0% {
    opacity: 0;
    visibility: hidden;
    filter: blur(1rem);
  }
  100% {
    opacity: 1;
    visibility: visible;
    filter: blur(0rem);
  }
}

/* .js-wrapper */
.js-wrapper {
  opacity: 0;
  visibility: hidden;
}
.js-wrapper.is-appeared {
  animation-name: wrapperAppeared;
  animation-duration: 1.4s;
  animation-delay: 0.4s;
  animation-fill-mode: forwards;
}
@keyframes wrapperAppeared {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}
.js-wrapper.is-disappeared {
  animation-name: wrapperDisappeared;
  animation-duration: 0.4s;
  animation-fill-mode: forwards;
}
@keyframes wrapperDisappeared {
  0% {
    opacity: 1;
    visibility: visible;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}

/* animation details */
.js-animation-delay-1 {
  animation-delay: 0.1s;
}

.js-animation-delay-2 {
  animation-delay: 0.2s;
}

.js-animation-delay-3 {
  animation-delay: 0.3s;
}

.js-animation-delay-4 {
  animation-delay: 0.4s;
}

.js-animation-delay-5 {
  animation-delay: 0.5s;
}

.js-animation-delay-6 {
  animation-delay: 0.6s;
}

.js-animation-delay-7 {
  animation-delay: 0.7s;
}

.js-animation-delay-8 {
  animation-delay: 0.8s;
}

.js-animation-delay-9 {
  animation-delay: 0.9s;
}

.js-animation-delay-10 {
  animation-delay: 1s;
}

.js-animation-delay-11 {
  animation-delay: 1.1s;
}

.js-animation-delay-12 {
  animation-delay: 1.2s;
}

.js-animation-delay-13 {
  animation-delay: 1.3s;
}

.js-animation-delay-14 {
  animation-delay: 1.4s;
}

.js-animation-delay-15 {
  animation-delay: 1.5s;
}

.js-animation-delay-16 {
  animation-delay: 1.6s;
}

.js-animation-delay-17 {
  animation-delay: 1.7s;
}

.js-animation-delay-18 {
  animation-delay: 1.8s;
}

.js-animation-delay-19 {
  animation-delay: 1.9s;
}

.js-animation-delay-20 {
  animation-delay: 2s;
}

.l-wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.l-header {
  position: fixed;
  top: clamp(1rem, 0.75rem + 0.4vw, 1.25rem);
  left: 2%;
  z-index: 100;
}

.l-main {
  /* l-main内の要素が存在しない場合、
     親要素のサイズをl-mainに割り当てる */
  flex: 1;
}

.l-container {
  /* 最大コンテンツ幅 */
  max-width: calc(1590px + clamp(1rem, 0.5rem + 2.6vw, 3.75rem) * 2);
  padding: 0 clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
  margin-inline: auto;
}

.l-footer {
  /* 1ページ内のコンテンツ高さが100vhに満たない場合
     p-footerを画面最下部に寄せる */
  justify-self: end;
}

.c-swiper-fade {
  position: relative;
  height: 800px;
  /* slide */
}
.c-swiper-fade .slide {
  height: 100%;
}
.c-swiper-fade .slide .swiper,
.c-swiper-fade .slide .swiper-wrapper,
.c-swiper-fade .slide .swiper-slide {
  height: 100%;
}
.c-swiper-fade .slide .media {
  height: 100%;
}
.c-swiper-fade .slide .media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 7s 1s ease-out;
}
.c-swiper-fade .slide .swiper-slide[class*=-active] .media img {
  transition-delay: 0s;
  transform: scale(1.03);
}
.c-swiper-fade {
  /* pagination */
}
.c-swiper-fade .pagination {
  display: flex;
  gap: clamp(1rem, 1rem + 0.2vw, 1.25rem);
  width: -moz-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: fit-content;
  position: absolute;
  z-index: 20;
}
.c-swiper-fade .pagination .swiper-pagination-bullet {
  display: block;
  width: clamp(0.25rem, 0.25rem + 0.2vw, 0.5rem);
  height: clamp(0.25rem, 0.25rem + 0.2vw, 0.5rem);
  background-color: #fff;
  transition: 0.5s;
  position: relative;
}
.c-swiper-fade .pagination .swiper-pagination-bullet::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: #000;
  position: absolute;
  top: 0;
  left: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition-delay: 0s;
}
.c-swiper-fade .pagination .swiper-pagination-bullet {
  /* 画面幅767px以下は縦組み */
}
@media screen and (max-width: 767px) {
  .c-swiper-fade .pagination .swiper-pagination-bullet::before {
    transform: scaleY(0);
    transform-origin: top;
  }
}
.c-swiper-fade .pagination .swiper-pagination-bullet {
  /* 画面高767px以下は縦組み */
}
@media screen and (max-height: 767px) {
  .c-swiper-fade .pagination .swiper-pagination-bullet::before {
    transform: scaleY(0);
    transform-origin: top;
  }
}
.c-swiper-fade .pagination .swiper-pagination-bullet[class*=-active] {
  width: clamp(1.75rem, 1.625rem + 0.7vw, 2.5rem);
}
.c-swiper-fade .pagination .swiper-pagination-bullet[class*=-active]::before {
  transition: 7s;
  transform: scaleX(1);
}
@media (hover: hover) {
  .c-swiper-fade .pagination .swiper-pagination-bullet:not([class*=-active]):hover {
    background-color: #c6cccb;
  }
}
.c-swiper-fade {
  /* navigation */
}
.c-swiper-fade .navigation {
  display: flex;
  gap: 20px;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 20;
}
.c-swiper-fade .navigation .arrow {
  width: 20px;
  height: 20px;
  background-color: red;
  transition: 0.3s;
}
@media (hover: hover) {
  .c-swiper-fade .navigation .arrow:hover {
    opacity: 0.8;
  }
}
.c-swiper-loop {
  /* slide */
}
.c-swiper-loop .slide {
  overflow-x: clip;
  height: 100%;
}
.c-swiper-loop .slide .swiper,
.c-swiper-loop .slide .swiper-wrapper,
.c-swiper-loop .slide .swiper-slide {
  height: 100%;
}
.c-swiper-loop .slide .swiper {
  overflow: visible;
}
.c-swiper-loop .slide .swiper-wrapper {
  transition-timing-function: linear !important;
}
.c-swiper-loop .slide .swiper-slide {
  width: -moz-max-content;
  width: max-content;
}
.c-swiper-loop .slide .media {
  height: 100%;
}
.c-swiper-loop .slide .media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-swiper-loop .slide .text {
  font-size: 100px;
}

.c-swiper-gallery .gallery-main {
  position: relative;
  width: 100%;
  /* slide */
}
.c-swiper-gallery .gallery-main .slide {
  height: 100%;
}
.c-swiper-gallery .gallery-main .slide .swiper,
.c-swiper-gallery .gallery-main .slide .swiper-wrapper,
.c-swiper-gallery .gallery-main .slide .swiper-slide {
  height: 100%;
}
.c-swiper-gallery .gallery-main .slide .media {
  height: 100%;
}
.c-swiper-gallery .gallery-main .slide .media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 7s 1s ease-out;
}
.c-swiper-gallery .gallery-main .slide.swiper-slide[class*=-active] .slide__media img {
  transition-delay: 0s;
  transform: scale(1.05);
}
.c-swiper-gallery .gallery-main {
  /* navigation */
}
.c-swiper-gallery .gallery-main .navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: -moz-fit-content;
  height: fit-content;
  margin: auto;
  position: absolute;
  inset: 0;
  z-index: 10;
}
.c-swiper-gallery .gallery-thumb {
  margin-top: 10px;
  /* slide */
}
.c-swiper-gallery .gallery-thumb .slide {
  height: 100%;
}
.c-swiper-gallery .gallery-thumb .slide .swiper,
.c-swiper-gallery .gallery-thumb .slide .swiper-wrapper,
.c-swiper-gallery .gallery-thumb .slide .swiper-slide {
  height: 100%;
}
.c-swiper-gallery .gallery-thumb .slide .media {
  height: 100%;
}
.c-swiper-gallery .gallery-thumb .slide .media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-swiper-gallery .gallery-thumb .slide .swiper-slide {
  overflow: hidden;
  transition: 0.3s;
  cursor: pointer;
}
.c-swiper-gallery .gallery-thumb .slide .swiper-slide .thumb-media {
  width: 100%;
  height: 100%;
}
.c-swiper-gallery .gallery-thumb .slide .swiper-slide .thumb-media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.3s;
}
@media (hover: hover) {
  .c-swiper-gallery .gallery-thumb .slide .swiper-slide:hover {
    opacity: 0.8;
    transform: scale(0.97);
  }
  .c-swiper-gallery .gallery-thumb .slide .swiper-slide:hover img {
    transform: scale(1.03);
  }
}
.c-swiper-gallery .gallery-thumb .slide .swiper-slide[class*=-thumb-active] {
  opacity: 0.8;
  transform: scale(0.97);
}
.c-swiper-gallery .gallery-thumb .slide .swiper-slide[class*=-thumb-active] img {
  transform: scale(1.03);
}
.c-swiper-gallery .gallery-thumb {
  /* scrollbar */
}
.c-swiper-gallery .gallery-thumb .scrollbar {
  height: 10px;
  margin-top: 10px;
}
.c-swiper-gallery .gallery-thumb .scrollbar .swiper-scrollbar-drag {
  height: 100%;
  background-color: #000;
}

.c-swiper-slider {
  position: relative;
  /* slide */
}
.c-swiper-slider .slide {
  height: 100%;
}
.c-swiper-slider .slide .swiper,
.c-swiper-slider .slide .swiper-wrapper,
.c-swiper-slider .slide .swiper-slide {
  height: 100%;
}
.c-swiper-slider .slide .media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-swiper-slider {
  /* pagination */
}
.c-swiper-slider .pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
}
.c-swiper-slider .pagination .swiper-pagination-bullet {
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  background-color: #c6cccb;
  border-radius: 1000px;
  transition: background-color 0.3s;
  position: relative;
}
.c-swiper-slider .pagination .swiper-pagination-bullet::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 1000px;
  position: absolute;
  top: 0;
  left: 0;
}
.c-swiper-slider .pagination .swiper-pagination-bullet[class*=-active] {
  background-color: #02a685;
}
@media (hover: hover) {
  .c-swiper-slider .pagination .swiper-pagination-bullet:not([class*=-active]):hover {
    filter: brightness(0.92);
  }
}
.c-swiper-slider {
  /* navigation */
}
.c-swiper-slider .navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10;
}
@media (hover: hover) {
  .c-swiper-slider .navigation .arrow:hover {
    opacity: 0.8;
  }
}
/* 
.c-nav-item
---------------------------------------------------------------- */
.c-nav-item a {
  width: -moz-max-content;
  width: max-content;
  transition: color 0.3s;
  /* hover */
}
.c-nav-item a::after {
  content: "";
  display: inline-block;
  width: 0.25rem;
  height: 0.25rem;
  display: block;
  margin-inline: auto;
  background-color: #02a685;
  border-radius: 50%;
  transform: scale(0);
  transition: transform 0.3s, margin 0.3s;
}
@media (hover: hover) {
  .c-nav-item a:hover {
    color: #02a685;
  }
  .c-nav-item a:hover::after {
    margin-top: 0.5rem;
    transform: scale(1);
  }
}
.c-nav-item a {
  /* 991px以下はテキスト左側に●を表示する */
}
@media screen and (max-width: 991px) {
  .c-nav-item a::after {
    display: none;
  }
  .c-nav-item a::before {
    content: "";
    display: inline-block;
    width: 0.25rem;
    height: 0.25rem;
    background-color: #02a685;
    border-radius: 50%;
    transform: scale(0);
    transition: transform 0.3s, margin 0.3s;
  }
}
@media screen and (max-width: 991px) and (hover: hover) {
  .c-nav-item a:hover::before {
    margin-right: 0.375rem;
    margin-bottom: 0.125rem;
    transform: scale(1);
  }
}
.c-nav-item {
  /* .is-current */
}
.c-nav-item.is-current a {
  color: #02a685;
}
.c-nav-item.is-current a::after {
  margin-top: 0.5rem;
  transform: scale(1);
}
.c-nav-item.is-current a {
  /* 991px以下はテキスト左側に●を表示する */
}
@media screen and (max-width: 991px) {
  .c-nav-item.is-current a::after {
    display: none;
  }
  .c-nav-item.is-current a::before {
    content: "";
    display: inline-block;
    width: 0.25rem;
    height: 0.25rem;
    margin-right: 0.375rem;
    margin-bottom: 0.125rem;
    background-color: #02a685;
    border-radius: 50%;
    transform: scale(1);
    transition: transform 0.3s, margin 0.3s;
  }
}

/* 
.c-button
---------------------------------------------------------------- */
.c-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 14.5rem;
  height: 3.75rem;
  padding: 0 1rem 0 1.5rem;
  background-color: #02a685;
  border-radius: 1000px;
  color: #fafcfc;
  letter-spacing: 0.02em;
  transition: filter 0.4s;
}
@media (hover: hover) {
  .c-button:hover {
    filter: brightness(0.92);
  }
}
.c-button {
  /* arrow-none */
}
.c-button--simple {
  justify-content: center;
  width: initial;
  height: 2.5rem;
  padding: initial;
}
.c-button {
  /* large */
}
.c-button--lg {
  max-width: 20rem;
  height: 4.5rem;
}

/* 
.c-arrow
---------------------------------------------------------------- */
.c-arrow {
  width: 14.6%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background-color: #fafcfc;
  position: relative;
}
.c-arrow::before {
  content: "";
  display: inline-block;
  width: 16%;
  height: auto;
  aspect-ratio: 11.78/20;
  margin: auto;
  -webkit-mask-image: url(../img/common/icon-arrow.svg);
          mask-image: url(../img/common/icon-arrow.svg);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  background-color: #02a685;
  position: absolute;
  inset: 0;
}
.c-arrow {
  /* c-page-top */
}
.c-arrow--page-top {
  width: clamp(3rem, 2.5rem + 1vw, 3.75rem);
  background-color: rgba(250, 252, 252, 0.6);
  border: 1px solid rgba(250, 252, 252, 0.5);
  backdrop-filter: blur(0.75rem);
  background-color: rgba(163, 223, 211, 0.02);
  border: 1px solid rgba(2, 166, 133, 0.4);
  position: fixed;
  bottom: clamp(1.25rem, 0.5rem + 1.6vw, 2.5rem);
  right: clamp(1.25rem, 0.5rem + 1.6vw, 2.5rem);
  z-index: 90;
  opacity: 0;
  visibility: hidden;
  transition: background-color 0.3s, transform 0.3s, opacity 0.3s, visibility 0.3s;
}
.c-arrow--page-top::before {
  background-color: rgba(2, 166, 133, 0.4);
  rotate: -90deg;
}
@media (hover: hover) {
  .c-arrow--page-top:hover {
    background-color: rgba(163, 223, 211, 0.1);
    transform: scale(0.95);
  }
}
.c-arrow--page-top.is-appeared {
  opacity: 1;
  visibility: visible;
}
.c-arrow {
  /* prev, next */
}
.c-arrow--prev, .c-arrow--next {
  filter: drop-shadow(0 0.0625rem 0.25rem rgba(71, 89, 86, 0.14));
  transition: filter 0.3s;
}
.c-arrow--prev {
  scale: -1 1;
}
@media (hover: hover) {
  .c-arrow:hover {
    filter: drop-shadow(0 0.0625rem 0.5rem rgba(71, 89, 86, 0.18));
  }
}

/* 
.c-tel
---------------------------------------------------------------- */
.c-tel a {
  color: #02a685;
}
.c-tel .tel-number {
  display: flex;
  align-items: end;
  gap: 0.3em;
  width: -moz-max-content;
  width: max-content;
  font-size: clamp(1.75rem, 1.625rem + 0.7vw, 2.5rem);
  color: #02a685;
}
.c-tel .icon-tel {
  width: 0.8em;
}
.c-tel .info {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  grid-template-rows: 1fr;
  place-content: center;
  gap: 0 1.425em;
  margin-top: 1.425em;
  font-size: clamp(0.75rem, 0.75rem + 0.1vw, 0.875rem);
}
.c-tel .info dt,
.c-tel .info dd {
  width: -moz-fit-content;
  width: fit-content;
}
.c-tel--light a {
  color: #fafcfc;
}
.c-tel--light .tel-number {
  color: #fafcfc;
}

/* 
.c-section-title
---------------------------------------------------------------- */
.c-section-title {
  position: relative;
}
.c-section-title .en {
  font-family: "Marcellus";
  font-size: clamp(1rem, 0.875rem + 0.2vw, 1.125rem);
  color: #02a685;
}
.c-section-title .ja {
  display: block;
  margin-top: 0.44em;
  font-size: clamp(1.5rem, 1rem + 0.8vw, 2rem);
  font-weight: 500;
}
.c-section-title::after {
  content: "";
  display: inline-block;
  width: 1.9375rem;
  height: 0.625rem;
  margin-top: clamp(2.25rem, 2.125rem + 0.7vw, 3rem);
  -webkit-mask-image: url(../img/common/arrow-set.svg);
          mask-image: url(../img/common/arrow-set.svg);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  background-color: #02a685;
}
.c-section-title--light {
  color: #fafcfc;
  filter: drop-shadow(0 0.0625rem 0.75rem rgba(71, 89, 86, 0.6));
}
.c-section-title--light .en {
  color: #fafcfc;
}
.c-section-title--light::after {
  background-color: #fafcfc;
}
.c-section-title--lower .en::after {
  content: "";
  display: inline-block;
  width: 1.9375rem;
  height: 0.625rem;
  margin-left: 0.8em;
  -webkit-mask-image: url(../img/common/arrow-set.svg);
          mask-image: url(../img/common/arrow-set.svg);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  background-color: #02a685;
}
.c-section-title--lower::after {
  display: none;
}

/* 
.c-block-nav
---------------------------------------------------------------- */
.c-block-nav .nav-list {
  display: grid;
  grid-template-columns: repeat(2, auto);
  grid-template-rows: repeat(3, 1fr);
  gap: clamp(1rem, 0.875rem + 0.7vw, 1.75rem) clamp(0.75rem, 0.625rem + 0.5vw, 1.25rem);
}
.c-block-nav .nav-list a {
  width: -moz-fit-content;
  width: fit-content;
  transition: color 0.4s;
}
@media (hover: hover) {
  .c-block-nav .nav-list a:hover {
    color: #02a685;
  }
}
.c-block-nav .button-list {
  display: grid;
  /* grid-template-columns: repeat(2, 1fr); */
  grid-template-columns: repeat(1, 1fr);
  grid-template-rows: auto;
  gap: 0 clamp(0.75rem, 0.625rem + 0.5vw, 1.25rem);
  width: -webkit-fill-available;
  width: -moz-available;
  width: stretch;
  padding-top: clamp(0.75rem, 0.625rem + 0.7vw, 1.5rem);
  margin-top: clamp(0.75rem, 0.625rem + 0.7vw, 1.5rem);
  position: relative;
  font-size: clamp(0.6875rem, 0.688rem + 0.1vw, 0.8125rem);
}
.c-block-nav .button-list::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 0.0625rem;
  display: block;
  background-color: #c6cccb;
  position: absolute;
  top: 0;
}

/* 
.c-table
---------------------------------------------------------------- */
.c-table {
  width: 100%;
  margin-top: clamp(1.75rem, 0.5rem + 2.6vw, 3.75rem);
  line-height: 1.75;
}
.c-table tr {
  border-bottom: 1px solid rgba(198, 204, 203, 0.4);
}
.c-table tr:last-child {
  border-bottom: none;
}
.c-table th,
.c-table td {
  padding: 1em 0;
  font-weight: 400;
  vertical-align: middle;
}
.c-table th {
  width: 25%;
  color: #118f74;
}
.c-table {
  /* セル内のテーブル */
}
.c-table .table-in-cell {
  width: 100%;
}
.c-table .table-in-cell .tr-in-cell {
  display: block;
  line-height: 1;
  border-bottom: none;
}
.c-table .table-in-cell .tr-in-cell:not(:first-child) {
  padding-top: 1.2em;
}
.c-table .table-in-cell .tr-in-cell th,
.c-table .table-in-cell .tr-in-cell td {
  display: inline-block;
  padding: 0;
  vertical-align: baseline;
}
.c-table .table-in-cell .tr-in-cell th {
  width: -moz-fit-content;
  width: fit-content;
  min-width: initial;
  margin-right: 1.5em;
  color: #1c1e1e;
}
@media screen and (max-width: 575px) {
  .c-table .table-in-cell .tr-in-cell th,
  .c-table .table-in-cell .tr-in-cell td {
    display: inline;
  }
}
.c-table {
  /* テーブル内の箇条書き */
}
.c-table .bullet-list .bullet-item {
  padding-left: 1em;
  position: relative;
}
.c-table .bullet-list .bullet-item::before {
  content: "";
  display: inline-block;
  width: 0.4em;
  height: 0.0625rem;
  background-color: #118f74;
  position: absolute;
  top: calc(0.875em - 0.03125rem);
  left: 0;
}

@media screen and (max-width: 575px) {
  .c-table th,
  .c-table td {
    display: block;
    width: 100%;
  }
  .c-table th {
    padding-bottom: 0;
  }
  .c-table td {
    padding-top: 0;
    margin-top: 0.25rem;
  }
}
/* 
.c-cat-list
---------------------------------------------------------------- */
.c-cat-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: clamp(0.5rem, 0.25rem + 1.2vw, 1.75rem);
}
.c-cat-list .cat-item {
  width: -webkit-fill-available;
  width: -moz-available;
  width: stretch;
  max-width: calc((100% - clamp(0.5rem, 0.25rem + 1.2vw, 1.75rem) * 3) / 4);
  min-width: -moz-max-content;
  min-width: max-content;
}
.c-cat-list .cat-item a {
  display: grid;
  place-content: center;
  place-items: center;
  width: 100%;
  padding: 1.5em;
  border: 1px solid #c6cccb;
  border-radius: clamp(0.25rem, 0.25rem + 0.2vw, 0.5rem);
  overflow: hidden;
  transition: border 0.3s, background-color 0.3s, color 0.3s;
}
@media (hover: hover) {
  .c-cat-list .cat-item a:hover {
    border: 1px solid rgba(2, 166, 133, 0.4);
    background-color: rgba(163, 223, 211, 0.1);
    color: #02a685;
  }
}

/* 
.c-catalog-item
---------------------------------------------------------------- */
.c-catalog-item {
  padding: clamp(3rem, 1.75rem + 2.6vw, 5rem) 0;
}
.c-catalog-item:not(:last-child) {
  border-bottom: 1px solid #c6cccb;
}
.c-catalog-item {
  /* title */
}
.c-catalog-item .title .cat {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.3em 0.6em 0.4em 0.6em;
  background-color: #02a685;
  font-size: clamp(1rem, 0.875rem + 0.2vw, 1.125rem);
  color: #fafcfc;
}
.c-catalog-item .title .name {
  margin-top: clamp(0.75rem, 0.75rem + 0vw, 0.75rem);
  font-size: clamp(1.25rem, 0.75rem + 1vw, 2rem);
  font-weight: 500;
}
.c-catalog-item .imgs .swiper-wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: clamp(1.25rem, 0.5rem + 1.6vw, 2.5rem);
  margin-top: clamp(1.75rem, 1.625rem + 0.3vw, 2rem);
}
@media screen and (max-width: 575px) {
  .c-catalog-item .imgs .swiper-wrapper {
    gap: 0;
  }
}
.c-catalog-item .imgs .media {
  width: 100%;
  aspect-ratio: 1.618/1;
  background-color: #ebf4f3;
}
.c-catalog-item .imgs .media img {
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.c-catalog-item .imgs .pagination,
.c-catalog-item .imgs .navigation {
  display: none;
}
@media screen and (max-width: 575px) {
  .c-catalog-item .imgs .pagination {
    display: flex;
    margin-top: 0.75rem;
  }
  .c-catalog-item .imgs .navigation {
    display: flex;
    width: 108%;
    top: calc(50% - 1.625rem);
    left: -4%;
  }
  .c-catalog-item .imgs .navigation .arrow {
    width: 2.75rem;
  }
}
.c-catalog-item {
  /* table（c-table上書き）*/
}
.c-catalog-item .detail {
  margin-top: clamp(1.25rem, 1.125rem + 0.7vw, 2rem);
}
.c-catalog-item .detail tr {
  border-bottom: none;
}
.c-catalog-item .detail tr:first-child th,
.c-catalog-item .detail tr:first-child td {
  padding-top: 0;
}
.c-catalog-item .detail tr:last-child th,
.c-catalog-item .detail tr:last-child td {
  padding-bottom: 0;
}
.c-catalog-item .detail th,
.c-catalog-item .detail td {
  padding: 1.5em 0;
  vertical-align: top;
}
.c-catalog-item .detail th {
  width: 16%;
  min-width: 15rem;
  font-size: clamp(1.125rem, 1rem + 0.2vw, 1.25rem);
}
@media screen and (max-width: 991px) {
  .c-catalog-item .detail th {
    width: 30%;
    min-width: 13.125rem;
  }
}
@media screen and (max-width: 575px) {
  .c-catalog-item .detail th {
    padding-bottom: 0;
  }
  .c-catalog-item .detail td {
    padding-top: 0;
  }
}
.c-catalog-item {
  /* .works-desc */
}
.c-catalog-item {
  /* .price */
}
.c-catalog-item .price .price-item:not(:first-child) {
  margin-top: 0.5em;
}

/* .recommend */
.recommend {
  font-size: clamp(0.875rem, 0.75rem + 0.3vw, 1.125rem);
}
.recommend .recommend-item:not(:first-child) {
  margin-top: 0.4em;
}

/* 
.c-paging
---------------------------------------------------------------- */
.c-paging {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.5rem, 1.375rem + 0.5vw, 2rem);
  margin-bottom: clamp(5rem, 4.125rem + 3.7vw, 8.75rem);
  font-size: clamp(1.25rem, 1.125rem + 0.3vw, 1.5rem);
  /* arrow */
}
.c-paging__arrow {
  width: 2em;
  background-color: #ebf4f3;
  cursor: pointer;
  filter: none;
  transition: transform 0.3s, filter 0.3s;
}
.c-paging__arrow a {
  width: 100%;
  height: 100%;
}
.c-paging__arrow::before {
  background-color: rgba(2, 166, 133, 0.6);
}
@media (hover: hover) {
  .c-paging__arrow:hover {
    filter: brightness(0.98);
    transform: scale(0.95);
  }
}
.c-paging {
  /* number */
}
.c-paging .paging-text.current {
  color: #02a685;
  position: relative;
}
.c-paging .paging-text.current::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 0.0625rem;
  background-color: #02a685;
  position: absolute;
  bottom: -0.4em;
  left: 0;
}
.c-paging .paging-text a {
  cursor: pointer;
  position: relative;
  transition: color 0.3s;
}
.c-paging .paging-text a:not([rel=prev]):not([rel=next])::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 0.0625rem;
  background-color: #02a685;
  position: absolute;
  bottom: -0.4em;
  left: 0;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s;
}
@media (hover: hover) {
  .c-paging .paging-text a:hover {
    color: #02a685;
  }
  .c-paging .paging-text a:hover:not([rel=prev]):not([rel=next])::before {
    transform: scaleX(1);
    transform-origin: left;
  }
}

/* 
.p-nav
---------------------------------------------------------------- */
.p-nav {
  display: flex;
  align-items: center;
  gap: clamp(0.75rem, 0.25rem + 0.8vw, 1.25rem);
  font-size: clamp(0.8125rem, 0.688rem + 0.2vw, 0.9375rem);
}
.p-nav__list {
  display: flex;
  align-items: center;
  gap: clamp(1rem, -0.5rem + 2.4vw, 2.5rem);
}
.p-nav__list .nav-contact {
  width: clamp(7.5rem, 5rem + 4vw, 10rem);
}
.p-nav__sns .sns-item {
  width: clamp(1.75rem, 1.5rem + 0.4vw, 2rem);
  transition: filter 0.3s;
}
@media (hover: hover) {
  .p-nav__sns .sns-item:hover {
    filter: brightness(0.9);
  }
}
.p-nav {
  /* 画面幅991px以下はハンバーガーメニュー */
}
@media screen and (max-width: 991px) {
  .p-nav {
    flex-direction: column;
    justify-content: center;
    gap: clamp(2rem, 1.757rem + 1.2vw, 2.5rem);
    width: clamp(17.5rem, 13.913rem + 17.9vw, 25rem);
    height: 100dvh;
    background-color: #f5fcfb;
    filter: drop-shadow(0 0 0.375rem rgba(71, 89, 86, 0.2));
    font-size: clamp(0.875rem, 0.876rem + 0.1vw, 0.9375rem);
    position: fixed;
    top: calc(clamp(1rem, 0.75rem + 0.4vw, 1.25rem) * -1 - 1px);
    right: calc((50dvw - 48%) * -1 - clamp(17.5rem, 13.913rem + 17.9vw, 25rem));
    z-index: 100;
    transition: right 0.4s;
  }
  .p-nav__list {
    flex-direction: column;
    align-items: start;
    gap: clamp(2rem, 1.757rem + 1.2vw, 2.5rem);
  }
  .p-nav {
    /* .js-nav.is-active */
  }
  .p-nav.is-active {
    right: calc((50dvw - 48%) * -1);
  }
}
.p-nav__bg {
  display: none;
}
@media screen and (max-width: 991px) {
  .p-nav__bg {
    display: block;
    width: 100dvw;
    height: 100dvh;
    background-color: rgba(55, 64, 62, 0.4);
    position: fixed;
    top: calc(clamp(1rem, 0.75rem + 0.4vw, 1.25rem) * -1 - 1px);
    left: calc(-2% - 2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    /* .js-nav__bg.is-active */
  }
  .p-nav__bg.is-active {
    opacity: 1;
    visibility: visible;
  }
}

/* 
.p-header
---------------------------------------------------------------- */
.p-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 96%;
  height: 4.5rem;
  padding: 0 clamp(1rem, 0rem + 1.6vw, 2rem);
  border-radius: 1000px;
  background-color: rgba(250, 252, 252, 0.6);
  border: 1px solid rgba(250, 252, 252, 0.5);
  backdrop-filter: blur(0.75rem);
  letter-spacing: 0.02em;
  /* top: 100vhを超えたら表示 */
  opacity: 0;
  visibility: hidden;
  transition: 0.4s;
}
.p-header__logo {
  transition: 0.4s;
}
.p-header__logo a {
  width: -moz-max-content;
  width: max-content;
}
.p-header__logo .logo-mark {
  width: clamp(7.25rem, 5.75rem + 2.4vw, 8.75rem);
}
.p-header__logo .text {
  margin-left: 0.3em;
  font-size: clamp(0.6875rem, 0.563rem + 0.2vw, 0.8125rem);
  line-height: 1.5;
}
.p-header__hamburger {
  display: none;
}
.p-header.is-appeared {
  opacity: 1;
  visibility: visible;
  transition: 0.4s;
}
.p-header {
  /* 画面幅991px以下はハンバーガーメニュー */
}
@media screen and (max-width: 991px) {
  .p-header {
    padding-right: clamp(0.5rem, 0.378rem + 0.6vw, 0.75rem);
  }
  .p-header__hamburger {
    display: block;
    width: 3.25rem;
    aspect-ratio: 1/1;
    background-color: #02a685;
    border-radius: 50%;
    position: relative;
    z-index: 110;
    cursor: pointer;
    transition: filter 0.3s;
    /* .js-hamburger.is-active */
  }
}
@media screen and (max-width: 991px) and (hover: hover) {
  .p-header__hamburger:hover {
    filter: brightness(0.92);
  }
}
@media screen and (max-width: 991px) {
  .p-header__hamburger span {
    width: 56%;
    height: 0.0625rem;
    margin-inline: auto;
    background-color: #fafcfc;
    position: absolute;
    left: 0;
    right: 0;
    transition: top 0.3s, bottom 0.3s, rotate 0.3s;
  }
  .p-header__hamburger span:nth-child(1) {
    top: 40%;
  }
  .p-header__hamburger span:nth-child(2) {
    bottom: 40%;
  }
  .p-header__hamburger.is-active span:nth-child(1) {
    top: 48%;
    rotate: 24deg;
  }
  .p-header__hamburger.is-active span:nth-child(2) {
    bottom: 49%;
    rotate: -24deg;
  }
}
.p-header {
  /* 画面幅767px以下はmvにハンバーガーメニューを表示 */
}
@media screen and (max-width: 767px) {
  .p-header {
    opacity: 1;
    visibility: visible;
    background-color: transparent;
    border: 1px solid transparent;
    backdrop-filter: blur(0);
  }
  .p-header__logo {
    opacity: 0;
    visibility: hidden;
  }
  .p-header.is-appeared {
    background-color: rgba(250, 252, 252, 0.6);
    border: 1px solid rgba(250, 252, 252, 0.5);
    backdrop-filter: blur(0.75rem);
  }
  .p-header.is-appeared .p-header__logo {
    opacity: 1;
    visibility: visible;
  }
}

/* 
.p-footer-contact
---------------------------------------------------------------- */
.p-footer-contact {
  padding: clamp(5rem, 4.25rem + 2.2vw, 7rem) 0;
  margin: 0 calc(50% - 50vw);
  color: #fafcfc;
  overflow: hidden;
  position: relative;
  /* lower */
}
.p-footer-contact--lower {
  margin-top: clamp(6.25rem, 5.25rem + 2.8vw, 8.75rem);
}
.p-footer-contact__bg {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -10;
}
.p-footer-contact__bg::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(55, 64, 62, 0.6);
}
.p-footer-contact__bg img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-footer-contact__content {
  max-width: calc((1590px - 20.625rem) / 12 * 10 + 16.875rem);
  margin-inline: auto;
  padding: clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
}
.p-footer-contact__section-title {
  text-align: center;
}
.p-footer-contact .desc {
  margin-top: clamp(2.5rem, 1.5rem + 2.8vw, 5rem);
}
.p-footer-contact__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 1fr;
  gap: clamp(1.5rem, 1.25rem + 0.8vw, 2.25rem) clamp(1.25rem, 0.75rem + 1.4vw, 2.5rem);
  margin-top: clamp(2.25rem, 2rem + 0.8vw, 3rem);
}
.p-footer-contact__list .contact-item {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: subgrid;
  grid-row: span 2;
  place-items: center;
  width: 100%;
  padding: clamp(2.5rem, 2rem + 1.4vw, 3.75rem) clamp(1.25rem, 0.25rem + 2.8vw, 3.75rem);
  border-radius: clamp(0.5rem, 0.375rem + 0.5vw, 1rem);
  background-color: rgba(250, 252, 252, 0.6);
  border: 1px solid rgba(250, 252, 252, 0.5);
  backdrop-filter: blur(0.75rem);
  background-color: rgba(250, 252, 252, 0.15);
}
.p-footer-contact__list .title {
  font-size: clamp(1rem, 0.875rem + 0.3vw, 1.25rem);
}
.p-footer-contact__list .title::after {
  content: "";
  display: inline-block;
  width: 3.75rem;
  height: 0.0625rem;
  display: block;
  margin-top: 1.4em;
  margin-inline: auto;
  background-color: #fafcfc;
}
.p-footer-contact__list .button-area {
  width: -webkit-fill-available;
  width: -moz-available;
  width: stretch;
  /* .c-button上書き */
}
.p-footer-contact__list .button-area .c-button {
  width: -webkit-fill-available;
  width: -moz-available;
  width: stretch;
  margin-inline: auto;
}
.p-footer-contact__list .small {
  margin-top: 1.14em;
  text-align: center;
  font-size: clamp(0.75rem, 0.75rem + 0.1vw, 0.875rem);
}

@media screen and (max-width: 575px) {
  .p-footer-contact__list {
    display: flex;
    flex-direction: column;
  }
  .p-footer-contact__list .contact-item {
    gap: 1.25rem 0;
    place-items: center;
    height: clamp(14.0625rem, 12.103rem + 9.8vw, 15.625rem);
    padding: clamp(1.75rem, 0.811rem + 4.7vw, 2.5rem) clamp(1.25rem, 0.25rem + 2.8vw, 3.75rem);
  }
}
/* 
.p-footer
---------------------------------------------------------------- */
.p-footer {
  padding: clamp(5rem, 4.375rem + 2.5vw, 7.5rem) 0 clamp(2.5rem, 2.25rem + 1.2vw, 3.75rem) 0;
  background-color: #f5fcfb;
}
.p-footer__inner {
  display: grid;
  grid-template-columns: auto 17.5rem;
  grid-template-rows: repeat(2, auto);
  justify-content: space-between;
}
.p-footer__info {
  grid-column: 1;
  grid-row: 1;
}
.p-footer__info .logo {
  width: clamp(11.25rem, 10.375rem + 3.7vw, 15rem);
}
.p-footer__info .detail {
  margin-top: 2.25em;
}
.p-footer__info .address {
  line-height: 1.5;
}
.p-footer__info .address a {
  display: inline-block;
}
.p-footer__info .address .icon-map {
  width: 0.75em;
  margin-bottom: clamp(0.0625rem, 0.063rem + 0.1vw, 0.1875rem);
  color: #02a685;
}
.p-footer__info {
  /* .c-tel上書き */
}
.p-footer__info .c-tel {
  margin-top: clamp(0.625rem, 0.625rem + 0.2vw, 0.875rem);
}
.p-footer__info .c-tel .tel-number {
  font-size: clamp(1.25rem, 1.125rem + 0.5vw, 1.75rem);
}
.p-footer__info .c-tel .info {
  display: flex;
  flex-wrap: wrap;
  place-content: start;
  gap: 0.5em 0;
  max-width: 10.75rem;
  margin-top: 1em;
  font-size: clamp(0.875rem, 0.875rem + 0.1vw, 1rem);
}
.p-footer__nav {
  grid-column: 2;
  grid-row: 1;
}
.p-footer__nav .nav-list {
  gap: 1.7em clamp(0.75rem, 0.625rem + 0.5vw, 1.25rem);
  font-size: clamp(0.8125rem, 0.75rem + 0.1vw, 0.875rem);
}
.p-footer .copy-right {
  grid-column: 1/3;
  grid-row: 2;
  text-align: center;
  margin-top: clamp(3rem, 2.5rem + 2vw, 5rem);
}

@media screen and (max-width: 575px) {
  .p-footer {
    padding-top: 3.75rem;
  }
  .p-footer__inner {
    display: block;
    text-align: center;
  }
  .p-footer__info .c-tel .info {
    place-content: center;
    margin-inline: auto;
  }
  .p-footer__nav {
    display: none;
  }
  .p-footer .copy-right {
    display: block;
    margin-top: 3rem;
  }
}
/* 
.p-lower-header
---------------------------------------------------------------- */
.p-lower-header {
  margin-bottom: clamp(7.5rem, 6rem + 3.2vw, 10rem);
}
.p-lower-header__main {
  display: grid;
  grid-template-columns: 28% 72%;
  grid-template-rows: auto;
  margin: 0 calc(50% - 50dvw);
  padding: 0 0 0 calc(50dvw - 50%);
}
.p-lower-header__title {
  place-content: center;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  position: relative;
  z-index: 10;
}
.p-lower-header__title .en {
  width: -moz-max-content;
  width: max-content;
  font-size: clamp(1.125rem, 0.875rem + 0.5vw, 1.5rem);
  font-family: "Marcellus";
  color: #02a685;
}
.p-lower-header__title .ja {
  display: block;
  width: -moz-max-content;
  width: max-content;
  margin-top: 0.5em;
  padding-right: 3em;
  font-size: clamp(1.75rem, 1.5rem + 0.6vw, 2.25rem);
  font-weight: 500;
  position: relative;
}
.p-lower-header__title .ja .illust {
  width: 3em;
  position: absolute;
  bottom: -1.1em;
  right: 0;
  z-index: -10;
  rotate: 8deg;
}
.p-lower-header__img {
  overflow: hidden;
  height: clamp(22.5rem, 20rem + 4vw, 25rem);
}
.p-lower-header__img img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-lower-header__desc {
  margin-top: clamp(3.75rem, 3rem + 1.6vw, 5rem);
  padding-bottom: clamp(5rem, 4.25rem + 1.6vw, 6.25rem);
  font-size: clamp(0.875rem, 0.75rem + 0.3vw, 1.125rem);
  text-align: center;
  border-bottom: 1px solid #c6cccb;
}
.p-lower-header__desc .desc {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
  .p-lower-header__main {
    display: block;
    margin-top: calc(clamp(1rem, 0.75rem + 0.4vw, 1.25rem) + 3.75rem + 3.75rem);
  }
  .p-lower-header__title {
    margin-inline: initial;
  }
  .p-lower-header__title .ja .illust {
    bottom: -0.8em;
  }
  .p-lower-header__img {
    height: clamp(12.5rem, 10.734rem + 8.9vw, 15rem);
    margin-top: 2.5rem;
    overflow: hidden;
  }
}
/* 
.p-mv
---------------------------------------------------------------- */
.p-mv {
  display: grid;
  grid-template-columns: min-content minmax(0, 1fr);
  grid-template-rows: 100%;
  width: 100%;
  height: 100dvh;
  /* side */
}
.p-mv__side {
  grid-column: 1;
  grid-row: 1;
  place-content: center;
  padding: 0 clamp(1.75rem, -0.25rem + 4.2vw, 5rem);
  font-weight: 500;
  letter-spacing: 0.02em;
}
.p-mv__side .logo {
  margin-inline: auto;
}
.p-mv__side .logo .logo-mark {
  width: 100%;
}
.p-mv__side .logo .text {
  display: block;
  width: -moz-max-content;
  width: max-content;
  margin-top: 1em;
  margin-inline: auto;
  font-size: clamp(1.125rem, 0.875rem + 0.5vw, 1.5rem);
}
.p-mv__side .mv-nav {
  margin-top: clamp(2.25rem, 1.75rem + 1vw, 3rem);
  font-size: clamp(0.875rem, 0.75rem + 0.2vw, 1rem);
}
.p-mv__side .introduction-list {
  display: grid;
  grid-template-columns: repeat(2, calc((100% - clamp(0.75rem, 0.625rem + 0.5vw, 1.25rem)) / 2));
  grid-template-rows: repeat(2, auto);
  gap: clamp(0.75rem, 0.5rem + 0.6vw, 1.25rem);
  margin-top: clamp(2.25rem, 1.75rem + 1vw, 3rem);
}
.p-mv__side .introduction-item {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: subgrid;
  grid-row: span 2;
  place-content: center;
  place-items: center;
  gap: clamp(0.625rem, 0.625rem + 0.1vw, 0.75rem);
  padding: clamp(0.75rem, 0.75rem + 0.2vw, 1rem) clamp(0.625rem, 0.625rem + 0.1vw, 0.75rem);
  background-color: #f5fcfb;
}
.p-mv__side .introduction-item .illust {
  width: 90%;
}
.p-mv__side .introduction-item .text {
  width: -moz-max-content;
  width: max-content;
  text-align: center;
  color: #02a685;
  font-size: clamp(0.8125rem, 0.75rem + 0.1vw, 0.875rem);
  line-height: 1;
}
.p-mv__side .introduction-item .text span {
  display: block;
  margin-top: clamp(0.375rem, 0.375rem + 0.1vw, 0.5rem);
  font-size: clamp(0.6875rem, 0.625rem + 0.1vw, 0.75rem);
}
.p-mv__side .introduction-item:nth-of-type(1) .illust {
  width: 68%;
}
.p-mv__side .introduction-item:nth-of-type(2) .text {
  line-height: 1.2;
}
.p-mv__side .introduction-item:nth-of-type(2) .illust {
  width: 77%;
}
.p-mv__side .introduction-item:nth-of-type(3) .illust {
  width: 68%;
}
.p-mv__side .introduction-item:nth-of-type(4) {
  letter-spacing: -0.1em;
}
.p-mv__side .introduction-item:nth-of-type(4) span {
  letter-spacing: 0.02em;
}
.p-mv__side .introduction-item:nth-of-type(4) .illust {
  width: 64%;
}
.p-mv {
  /* swiper */
}
.p-mv__swiper {
  grid-column: 2;
  grid-row: 1;
  height: 100%;
  position: relative;
}
.p-mv__swiper::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  display: block;
  background-color: rgba(100, 125, 120, 0.2);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
.p-mv__swiper .pagination {
  position: absolute;
  top: clamp(2.5rem, 1.75rem + 1.6vw, 3.75rem);
  right: clamp(2.5rem, 1.75rem + 1.6vw, 3.75rem);
  filter: drop-shadow(0 0.0625rem 0.75rem rgba(71, 89, 86, 0.6));
}
.p-mv__swiper .pagination .swiper-pagination-bullet {
  border-radius: 1000px;
  background-color: #fafcfc;
}
.p-mv__swiper .pagination .swiper-pagination-bullet::before {
  border-radius: 1000px;
  background-color: #02a685;
}
.p-mv__swiper .catch-copy {
  text-align: end;
  font-size: clamp(2rem, 0.875rem + 2.3vw, 3.75rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fafcfc;
  position: absolute;
  bottom: clamp(1.75rem, 0.25rem + 3.2vw, 4.25rem);
  right: clamp(0.75rem, -0.625rem + 2.9vw, 3rem);
  z-index: 10;
  filter: drop-shadow(0 0.0625rem 0.75rem rgba(71, 89, 86, 0.6));
}
.p-mv__swiper .catch-copy p {
  line-height: 153.3333333333%;
}
.p-mv {
  /* 画面幅767px以下は縦組み */
}
@media screen and (max-width: 767px) {
  .p-mv {
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: 60dvh max-content;
    height: auto;
  }
  .p-mv__side {
    grid-column: 1;
    grid-row: 2;
    padding: 0 clamp(1rem, 0.456rem + 2.7vw, 1.75rem);
  }
  .p-mv__side .logo {
    position: absolute;
    top: clamp(1rem, 0.637rem + 1.8vw, 1.5rem);
    left: clamp(1rem, 0.637rem + 1.8vw, 1.5rem);
    z-index: 10;
  }
  .p-mv__side .logo a {
    width: -moz-min-content;
    width: min-content;
  }
  .p-mv__side .logo a .text {
    font-size: clamp(0.625rem, 0.377rem + 1.3vw, 1rem);
  }
  .p-mv__side .mv-nav {
    display: none;
  }
  .p-mv__side .introduction-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr;
    margin: 0;
    padding: clamp(1.5rem, 1.125rem + 1.5vw, 3rem) 0;
  }
  .p-mv__swiper {
    grid-column: 1;
    grid-row: 1;
  }
  .p-mv__swiper .pagination {
    display: none;
  }
  .p-mv__swiper .catch-copy {
    font-size: clamp(1.5rem, 0.774rem + 3.6vw, 2.5rem);
    bottom: clamp(1.5rem, 1.137rem + 1.8vw, 2rem);
    right: clamp(0.75rem, 0.024rem + 3.6vw, 1.75rem);
  }
}
.p-mv {
  /* 画面高767px以下は縦組み */
}
@media screen and (max-height: 767px) {
  .p-mv {
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: 60dvh max-content;
    height: auto;
  }
  .p-mv__side {
    grid-column: 1;
    grid-row: 2;
    padding: 0 clamp(1rem, 0.456rem + 2.7vw, 1.75rem);
  }
  .p-mv__side .logo {
    width: clamp(5rem, 2.326rem + 13.4vw, 8.75rem);
    position: absolute;
    top: clamp(1rem, 0.637rem + 1.8vw, 1.5rem);
    left: clamp(1rem, 0.637rem + 1.8vw, 1.5rem);
    z-index: 10;
  }
  .p-mv__side .mv-nav {
    display: none;
  }
  .p-mv__side .introduction-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr;
    margin: 0;
    padding: clamp(1.5rem, 1.125rem + 1.5vw, 3rem) 0;
  }
  .p-mv__swiper {
    grid-column: 1;
    grid-row: 1;
  }
  .p-mv__swiper .pagination {
    flex-direction: column;
    top: initial;
    bottom: clamp(1.25rem, 0.524rem + 3.6vw, 2.25rem);
    right: initial;
    left: clamp(1.25rem, 0.524rem + 3.6vw, 2.25rem);
  }
}
.p-mv {
  /* 画面幅575px以下は.introduction-listが2*2 */
}
@media screen and (max-width: 575px) {
  .p-mv__side .introduction-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, max-content);
  }
  .p-mv__side .introduction-item .illust:nth-of-type(1) {
    width: 34%;
  }
  .p-mv__side .introduction-item .illust:nth-of-type(2) {
    width: 33%;
  }
  .p-mv__side .introduction-item .illust:nth-of-type(3) {
    width: 34%;
  }
  .p-mv__side .introduction-item .illust:nth-of-type(4) {
    width: 32%;
  }
}

/* 印刷用設定 */
@media print {
  /* base */
  body {
    min-width: 992px;
  }
  .l-wrapper {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    background-attachment: scroll;
  }
  *::before,
  *::after {
    -webkit-print-color-adjust: exact !important;
    color-adjust: exact !important;
    background-image: block !important;
    box-shadow: none !important;
  }
  /* page-break */
  .l-container,
  section {
    page-break-before: avoid;
  }
  section + section.new-none:not(:root) {
    page-break-before: avoid;
  }
  .new-page {
    page-break-before: always;
  }
  /* animation */
  /* layout */
  .p-header {
    position: absolute;
  }
  /* swiper */
  /* animation */
  .js-fade,
  .js-blur {
    opacity: 1;
    visibility: visible;
    filter: blur(0rem);
  }
  .js-fade.is-appeared,
  .js-blur.is-appeared {
    animation: initial;
  }
  /* rellax */
  .js-rellax {
    transform: translate3d(0px, 0px, 0px) !important;
  }
}
/* 
.svg-sprites
---------------------------------------------------------------- */
.svg-sprites {
  display: block;
  width: 0;
  height: 0;
}

/* 
top
---------------------------------------------------------------- */
/* .p-top-message */
.p-top-message {
  display: grid;
  grid-template-columns: clamp(15.75rem, -4.875rem + 43vw, 48.875rem) 1fr max-content;
  grid-template-rows: max-content 1fr;
  padding: clamp(5rem, 1.125rem + 8.1vw, 11.25rem) 0;
}
.p-top-message .message-title {
  grid-column: 3/4;
  grid-row: 1/2;
  margin-top: clamp(1rem, 0.125rem + 1.9vw, 2.5rem);
  writing-mode: vertical-rl;
}
.p-top-message .message-title .en {
  font-family: "Marcellus";
  font-size: clamp(0.625rem, 0.5rem + 0.4vw, 1rem);
  color: #02a685;
}
.p-top-message .message-title .ja {
  display: block;
  margin-right: 0.4em;
  font-size: clamp(1.5rem, 0.75rem + 1.5vw, 2.625rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
.p-top-message .desc-wrapper {
  grid-column: 2/3;
  grid-row: 1/2;
  padding-top: clamp(1.75rem, 0.5rem + 2.6vw, 3.75rem);
  margin: clamp(1rem, 0.125rem + 1.9vw, 2.5rem) clamp(1.75rem, -0.75rem + 5.2vw, 5.75rem) 0 0;
  font-size: clamp(0.875rem, 0.75rem + 0.3vw, 1.125rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 2;
  writing-mode: vertical-rl;
  text-orientation: upright;
  position: relative;
}
.p-top-message .desc-wrapper .desc:not(:first-of-type) {
  margin-right: 3em;
}
.p-top-message .desc-wrapper .desc p:not(:first-of-type) {
  margin-right: 2em;
}
@media screen and (max-width: 1199px) {
  .p-top-message .desc-wrapper .desc:not(:first-of-type) {
    margin-right: 2em;
  }
  .p-top-message .desc-wrapper .desc p:not(:first-of-type) {
    margin-right: 1.5em;
  }
}
@media screen and (max-width: 374px) {
  .p-top-message .desc-wrapper .desc:not(:first-of-type) {
    margin-right: 1.5em;
  }
  .p-top-message .desc-wrapper .desc p:not(:first-of-type) {
    margin-right: 1em;
  }
}
.p-top-message .desc-wrapper .illust {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.p-top-message .desc-wrapper .illust .leaf {
  width: 28.8%;
  position: absolute;
  bottom: 0;
  left: -6%;
  z-index: 10;
  scale: -1 1;
}
.p-top-message__swiper--lg {
  grid-column: 1/2;
  grid-row: 1/2;
  height: 143.6%;
}
.p-top-message__swiper--sm {
  grid-column: 2/4;
  grid-row: 2/3;
  margin-top: clamp(3.5rem, 2.625rem + 1.9vw, 5rem);
  margin-inline: auto calc(clamp(0rem, -11.625rem + 13.3vw, 5rem) * -1);
  width: 60%;
  aspect-ratio: 1.618/1;
}
.p-top-message__swiper .media {
  height: 100%;
}
@media screen and (max-width: 1399px) {
  .p-top-message {
    margin-inline: calc(50% - 50dvw) 0;
  }
}
@media screen and (max-width: 767px) {
  .p-top-message {
    display: grid;
    grid-template-columns: calc(clamp(11.875rem, -5.551rem + 87.2vw, 36.25rem) - clamp(1rem, 0.5rem + 2.6vw, 3.75rem) / 2) 1fr;
    grid-template-rows: repeat(3, max-content);
    gap: 0 clamp(1.25rem, 0.343rem + 4.5vw, 2.5rem);
    margin-inline: initial;
  }
  .p-top-message .message-title {
    grid-column: 2;
    grid-row: 1;
    height: -moz-fit-content;
    height: fit-content;
  }
  .p-top-message .message-title .ja {
    font-size: clamp(1.25rem, 1.069rem + 0.9vw, 1.5rem);
  }
  .p-top-message .desc-wrapper {
    grid-column: 1/3;
    grid-row: 2;
    place-content: center;
    margin: initial;
    padding-top: clamp(1.25rem, 0.887rem + 1.8vw, 1.75rem);
  }
  .p-top-message__swiper--lg {
    grid-column: 1;
    grid-row: 1;
    margin-left: calc(clamp(1rem, 0.5rem + 2.6vw, 3.75rem) * -1);
    height: 89%;
  }
  .p-top-message__swiper--sm {
    grid-column: 1/3;
    grid-row: 3;
    margin-top: clamp(1.25rem, 0.706rem + 2.7vw, 2rem);
  }
}

/* .p-top-menu */
.p-top-menu {
  display: grid;
  grid-template-columns: max-content 1fr;
  grid-template-rows: max-content auto;
  padding: clamp(5rem, 2.5rem + 4vw, 7.5rem) 0 0 calc(50dvw - 50%);
  margin: 0 calc(50% - 50dvw);
  background: linear-gradient(#f5fcfb 0%, #f5fcfb 90%, transparent 90%, transparent 100%);
}
.p-top-menu__section-title {
  grid-column: 1;
  grid-row: 1;
}
.p-top-menu__button {
  grid-column: 1;
  grid-row: 2;
}
.p-top-menu__list {
  grid-column: 2;
  grid-row: 1/3;
  display: flex;
  gap: 0 clamp(0.75rem, -0.25rem + 1.6vw, 1.75rem);
  margin-left: clamp(2.5rem, 0.75rem + 2.8vw, 4.25rem);
}
.p-top-menu__list .menu-item {
  width: 100%;
  aspect-ratio: 1/1.4142;
  position: relative;
}
.p-top-menu__list .menu-item__bg {
  width: 100%;
  height: 100%;
  position: absolute;
}
.p-top-menu__list .menu-item__bg img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-top-menu__list .menu-item__bg::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  position: absolute;
  background: linear-gradient(transparent 0%, transparent 60%, rgba(71, 89, 86, 0.6) 100%);
}
.p-top-menu__list .menu-item__title {
  font-size: clamp(0.875rem, 0.5rem + 0.6vw, 1.25rem);
  font-weight: 500;
  color: #fafcfc;
  filter: drop-shadow(0 0.0625rem 0.75rem rgba(71, 89, 86, 0.6));
  position: absolute;
  bottom: 5.6%;
  left: 5.6%;
}
.p-top-menu__list .menu-item__title span {
  display: block;
  margin-top: 0.6em;
  font-size: clamp(0.625rem, 0.25rem + 0.6vw, 1rem);
}
.p-top-menu__list .menu-item:nth-of-type(2) .menu-item__title {
  line-height: 1.5;
}
@media screen and (max-width: 991px) {
  .p-top-menu {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: max-content 1fr;
    padding: clamp(5rem, 2.5rem + 4vw, 7.5rem) calc(50dvw - 50%);
    gap: clamp(1.75rem, 0.704rem + 2.9vw, 2.5rem) 0;
  }
  .p-top-menu__section-title {
    grid-column: 1;
    grid-row: 1;
  }
  .p-top-menu__button {
    grid-column: 2;
    grid-row: 1;
    margin-inline: auto 0;
    margin-top: auto;
    margin-bottom: auto;
  }
  .p-top-menu__list {
    grid-column: 1/3;
    grid-row: 2;
    margin-left: 0;
  }
}
@media screen and (max-width: 575px) {
  .p-top-menu {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, max-content);
    padding: clamp(5rem, 5rem + 0vw, 5rem) 0 0 calc(50dvw - 50%);
  }
  .p-top-menu__button {
    grid-column: 1;
    grid-row: 3;
    margin: auto;
  }
  .p-top-menu__list {
    flex-direction: column;
    gap: clamp(0.75rem, 0.136rem + 3.1vw, 1.25rem) 0;
  }
  .p-top-menu__list .menu-item {
    aspect-ratio: 2.4142/1;
  }
  .p-top-menu__list .menu-item__title {
    font-size: clamp(0.875rem, 0.387rem + 2.4vw, 1.25rem);
    text-align: end;
    left: initial;
    right: 5.6%;
  }
  .p-top-menu__list .menu-item__title span {
    font-size: clamp(0.625rem, 0.137rem + 2.4vw, 1rem);
  }
}

/* .p-top-company */
.p-top-company {
  display: grid;
  grid-template-columns: 50% 1fr;
  grid-template-rows: max-content max-content max-content 1fr;
  gap: clamp(2.5rem, 1.5rem + 2.8vw, 5rem) 0;
  padding-top: clamp(7.5rem, 5.5rem + 5.6vw, 12.5rem);
  margin: 0 calc(50% - 50dvw);
  overflow-x: clip;
}
.p-top-company .main-img,
.p-top-company .sub-img {
  position: relative;
}
.p-top-company .main-img .media,
.p-top-company .sub-img .media {
  width: 100%;
  height: 100%;
  position: absolute;
  overflow: hidden;
}
.p-top-company .main-img .media .media-inner,
.p-top-company .sub-img .media .media-inner {
  width: 100%;
  height: 100%;
  position: absolute;
}
.p-top-company .main-img .media img,
.p-top-company .sub-img .media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-top-company .main-img .illust,
.p-top-company .sub-img .illust {
  position: absolute;
}
.p-top-company .main-img {
  grid-column: 1;
  grid-row: 1;
  aspect-ratio: 1.618/1;
}
@media screen and (max-width: 767px) {
  .p-top-company .main-img {
    aspect-ratio: initial;
  }
}
.p-top-company .main-img .media img {
  scale: 1.1;
}
.p-top-company .main-img .media::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  position: absolute;
  background-color: rgba(71, 89, 86, 0.25);
}
.p-top-company .main-img .p-top-company__section-title {
  margin-top: 12%;
  margin-left: 20.5%;
}
.p-top-company .title {
  grid-column: 2;
  grid-row: 1;
  place-content: center;
  margin-left: clamp(1.25rem, -1.25rem + 7vw, 7.5rem);
  font-size: clamp(0.875rem, 0.75rem + 0.3vw, 1.125rem);
  font-weight: 500;
  letter-spacing: 0.1em;
}
.p-top-company .title > span {
  display: block;
  line-height: 2;
}
.p-top-company .title > span:not(:first-of-type) {
  margin-top: clamp(1rem, -0.125rem + 3.1vw, 3.75rem);
}
.p-top-company .title .lg {
  font-size: clamp(1.125rem, 0.875rem + 0.6vw, 1.625rem);
  font-weight: 700;
}
.p-top-company .title .md {
  font-size: clamp(1rem, 0.75rem + 0.6vw, 1.5rem);
  font-weight: 700;
}
.p-top-company .title .green {
  color: #02a685;
  letter-spacing: 0.1em;
}
.p-top-company .title .reflect {
  position: relative;
}
.p-top-company .title .reflect::after {
  content: "（リフレクト）";
  display: block;
  width: -moz-max-content;
  width: max-content;
  font-size: clamp(0.625rem, 0.5rem + 0.3vw, 0.875rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1;
  position: absolute;
  bottom: -1em;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 991px) {
  .p-top-company .title > span {
    line-height: 1.75;
  }
}
.p-top-company .sub-img:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
  width: clamp(8.75rem, 2.125rem + 18.3vw, 25rem);
  aspect-ratio: 4/5;
  margin-left: clamp(6.25rem, 4.25rem + 5.6vw, 11.25rem);
}
.p-top-company .sub-img:nth-child(3) .illust {
  width: 55.5%;
  top: -16%;
  right: -39%;
  rotate: 20deg;
}
.p-top-company .sub-img:nth-child(5) {
  grid-column: 1;
  grid-row: 3;
  width: clamp(12rem, 4.75rem + 20.2vw, 30rem);
  aspect-ratio: 1.618/1;
  margin-top: calc(clamp(-1.5rem, -4.375rem + 8.1vw, 5.75rem) * -1);
  margin-inline: auto clamp(4.25rem, 3.5rem + 2.2vw, 6.25rem);
}
.p-top-company .sub-img:nth-child(5) .illust {
  width: 34.375%;
  left: -20%;
  bottom: -22%;
  rotate: -46deg;
}
.p-top-company .desc {
  width: -moz-fit-content;
  width: fit-content;
}
.p-top-company .desc p {
  line-height: 2;
}
.p-top-company .desc p:not(:first-of-type) {
  margin-top: 1.8em;
}
.p-top-company .desc:nth-child(4) {
  grid-column: 1;
  grid-row: 2;
  place-content: center;
  margin-inline: auto calc(clamp(3.75rem, 3rem + 1.6vw, 5rem) * -1);
  padding-left: clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
}
.p-top-company .desc:nth-child(6) {
  grid-column: 2;
  grid-row: 3;
  margin-top: clamp(0rem, -0.5rem + 1.4vw, 1.25rem);
  padding-right: clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
}
.p-top-company__button {
  margin-top: clamp(2.5rem, 1.5rem + 2.8vw, 5rem);
}
.p-top-company .loop-text {
  grid-column: 1/3;
  grid-row: 4;
  margin-top: clamp(1.25rem, -0.25rem + 3.2vw, 3.75rem);
  font-family: "Marcellus";
  color: #d0e6e2;
}
.p-top-company .loop-text .text {
  font-size: clamp(3.75rem, 2.5rem + 6vw, 10rem);
}
@media screen and (max-width: 767px) {
  .p-top-company .desc br {
    display: none;
  }
  .p-top-company .desc:nth-child(4) {
    margin-top: 2em;
  }
}
@media screen and (max-width: 575px) {
  .p-top-company {
    display: grid;
    grid-template-columns: 76% 24%;
    grid-template-rows: repeat(6, max-content);
  }
  .p-top-company .main-img {
    grid-column: 1/3;
    grid-row: 1;
    aspect-ratio: 1.4142/1;
  }
  .p-top-company .main-img .p-top-company__section-title {
    margin-inline: 0;
    padding-left: clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
  }
  .p-top-company .title {
    grid-column: 1/3;
    grid-row: 2;
    margin: 0;
    text-align: center;
  }
  .p-top-company .title .md {
    position: relative;
  }
  .p-top-company .title .md::before {
    content: "";
    display: inline-block;
    width: 64%;
    height: auto;
    aspect-ratio: 1284.22/1158.66;
    background-image: url(../img/common/leaf02.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    position: absolute;
    top: -30%;
    left: -53%;
    z-index: -10;
    scale: -1 1;
    rotate: -29deg;
  }
  .p-top-company .sub-img {
    width: 80dvw;
  }
  .p-top-company .sub-img:nth-child(3) {
    grid-column: 2;
    grid-row: 3;
    width: -webkit-fill-available;
    width: -moz-available;
    width: stretch;
    height: 68%;
    margin: initial;
  }
  .p-top-company .sub-img:nth-child(3) .illust {
    display: none;
  }
  .p-top-company .sub-img:nth-child(5) {
    grid-column: 1/3;
    grid-row: 4;
    width: 88%;
    aspect-ratio: 3.3028/1;
    margin: initial;
  }
  .p-top-company .sub-img:nth-child(5) .illust {
    width: 24%;
    left: initial;
    bottom: initial;
    top: -55%;
    right: -14%;
    rotate: -36deg;
  }
  .p-top-company .desc:nth-child(4) {
    grid-column: 1;
    grid-row: 3;
    margin: initial;
    margin-top: 2em;
    padding-right: 12%;
  }
  .p-top-company .desc:nth-child(6) {
    grid-column: 1/3;
    grid-row: 5;
    margin: initial;
    padding-inline: clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
  }
  .p-top-company .p-top-company__button {
    margin-inline: auto;
  }
  .p-top-company .loop-text {
    grid-column: 1/3;
    grid-row: 6;
  }
}

/* 
company
---------------------------------------------------------------- */
/* .p-lower-header--company */
@media screen and (max-width: 767px) {
  .p-lower-header--company .p-lower-header__img img {
    -o-object-position: center;
       object-position: center;
  }
}

/* .p-company-message */
.p-company-message {
  display: grid;
  grid-template-columns: 32% 1fr 58%;
  grid-template-rows: repeat(3, auto);
  margin: 0 calc(50% - 50dvw);
  padding: clamp(0rem, -3.125rem + 6.5vw, 5rem) 0;
  letter-spacing: 0.1em;
  overflow-x: clip;
}
.p-company-message .title {
  grid-column: 3;
  grid-row: 1;
  width: -moz-max-content;
  width: max-content;
  margin-left: clamp(0rem, -2.375rem + 4.9vw, 3.75rem);
  line-height: 1.5;
}
.p-company-message .title .en {
  font-family: "Marcellus";
  font-size: clamp(0.875rem, 0.75rem + 0.2vw, 1rem);
  color: #02a685;
}
.p-company-message .title .ja {
  display: block;
  margin-top: 0.2em;
  font-size: clamp(1.375rem, 1rem + 0.8vw, 2rem);
  font-weight: 700;
}
.p-company-message .desc {
  grid-column: 3;
  grid-row: 2;
  width: -moz-max-content;
  width: max-content;
  margin-top: 2.8em;
  margin-left: clamp(0rem, -2.375rem + 4.9vw, 3.75rem);
}
.p-company-message .desc p:not(:first-of-type) {
  margin-top: 1.8em;
  line-height: 2;
}
.p-company-message .desc .reflect {
  position: relative;
}
.p-company-message .desc .reflect::before {
  content: "（反映）";
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: clamp(0.5rem, 0.375rem + 0.2vw, 0.625rem);
  color: #02a685;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1em;
}
.p-company-message .desc .illust {
  display: none;
}
.p-company-message__swiper .media {
  height: 100%;
}
.p-company-message__swiper--lg {
  grid-column: 1;
  grid-row: 1/4;
  height: clamp(32.5rem, 24.75rem + 16.2vw, 45rem);
  margin-top: calc(clamp(1.75rem, 1.625rem + 0.7vw, 2.5rem) * -1);
}
.p-company-message__swiper--sm {
  grid-column: 3;
  grid-row: 3;
  width: clamp(25.9375rem, -4.625rem + 63.7vw, 75rem);
  height: clamp(15rem, 11.875rem + 6.5vw, 20rem);
  margin-top: clamp(5rem, 3.5rem + 3.2vw, 7.5rem);
  margin-inline: auto 0;
  position: relative;
}
.p-company-message__swiper--sm .illust {
  width: clamp(10rem, 8.5rem + 3.2vw, 12.5rem);
  position: absolute;
  bottom: -16%;
  right: clamp(22.875rem, -6.875rem + 62vw, 70.625rem);
  scale: -1 1;
  rotate: -18deg;
  z-index: 10;
}

@media screen and (max-width: 767px) {
  .p-company-message {
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: repeat(4, auto);
  }
  .p-company-message .title {
    grid-column: 1;
    grid-row: 1;
    margin-inline: auto;
    padding: 0 clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
    width: -moz-max-content;
    width: max-content;
  }
  .p-company-message .title .en {
    font-size: clamp(0.6625rem, 0.31rem + 1.7vw, 1.125rem);
  }
  .p-company-message .title .ja {
    font-size: clamp(1.25rem, 1.002rem + 1.3vw, 1.625rem);
  }
  .p-company-message .title .ja .left {
    display: block;
    text-align: end;
  }
  .p-company-message .desc {
    grid-column: 1;
    grid-row: 3;
    margin-inline: auto;
    padding: 0 clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
    position: relative;
  }
}
@media screen and (max-width: 767px) and (max-width: 575px) {
  .p-company-message .desc {
    width: -moz-fit-content;
    width: fit-content;
  }
  .p-company-message .desc br {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .p-company-message__swiper--lg {
    grid-column: 1;
    grid-row: 2;
    width: 88%;
    height: auto;
    aspect-ratio: 2.4142/1;
    margin-top: clamp(1.25rem, 0.343rem + 4.5vw, 2.5rem);
  }
  .p-company-message__swiper--sm {
    grid-column: 1;
    grid-row: 4;
    width: 100%;
    height: auto;
    aspect-ratio: 1.25/1;
    margin-top: 4em;
    padding: 0 clamp(1rem, 0.5rem + 2.6vw, 3.75rem);
  }
  .p-company-message__swiper--sm .illust {
    bottom: initial;
    top: -14%;
    right: -3%;
  }
}
/* .p-company-feature */
.p-company-feature {
  margin: 0 calc(50% - 50dvw);
  padding: clamp(5rem, 2.5rem + 4vw, 7.5rem) calc(50dvw - 50%);
  background-color: #f5fcfb;
}
.p-company-feature__list {
  display: flex;
  gap: clamp(2rem, -1rem + 4.8vw, 5rem);
  margin-top: clamp(2.5rem, 1.25rem + 2vw, 3.75rem);
}
.p-company-feature .feature-item {
  width: 33.3333333333%;
}
.p-company-feature .feature-item:nth-child(2) {
  margin-top: clamp(1.25rem, 0rem + 2vw, 2.5rem);
}
.p-company-feature .feature-item:nth-child(3) {
  margin-top: clamp(2.5rem, 1.25rem + 2vw, 3.75rem);
}
.p-company-feature .feature-item .img-wrapper {
  width: 100%;
  aspect-ratio: 2.4142/1;
  position: relative;
}
.p-company-feature .feature-item .img-wrapper .img {
  height: 100%;
  overflow: hidden;
}
.p-company-feature .feature-item .img-wrapper .img img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.p-company-feature .feature-item .img-wrapper .num {
  font-family: "Marcellus";
  font-size: clamp(2.5rem, 2rem + 0.8vw, 3rem);
  color: #02a685;
  position: absolute;
  top: -0.5em;
  left: -0.5em;
}
.p-company-feature .feature-item .text .title {
  margin-top: 1em;
  font-size: clamp(1rem, 1rem + 0.2vw, 1.25rem);
  color: #02a685;
  line-height: 1.5;
}
.p-company-feature .feature-item .text .desc {
  margin-top: 1em;
  text-align: justify;
}

@media screen and (max-width: 991px) {
  .p-company-feature__list {
    flex-direction: column;
    gap: clamp(2.5rem, 0.1rem + 6.7vw, 4.25rem);
    margin-top: clamp(2.5rem, 0.1rem + 6.7vw, 4.25rem);
  }
  .p-company-feature .feature-item {
    display: grid;
    grid-template-columns: 40% 1fr;
    grid-template-rows: auto;
    gap: 0 clamp(1.75rem, 0.704rem + 2.9vw, 2.5rem);
    place-items: center;
    width: 100%;
  }
  .p-company-feature .feature-item:nth-child(2), .p-company-feature .feature-item:nth-child(3) {
    margin-top: 0;
  }
  .p-company-feature .feature-item:nth-child(2) {
    display: grid;
    grid-template-columns: 1fr 40%;
    grid-template-rows: auto;
  }
  .p-company-feature .feature-item:nth-child(2) .img-wrapper {
    grid-column: 2;
    grid-row: 1;
  }
  .p-company-feature .feature-item:nth-child(2) .text {
    grid-column: 1;
    grid-row: 1;
  }
  .p-company-feature .feature-item .img-wrapper {
    height: 100%;
    aspect-ratio: initial;
  }
  .p-company-feature .feature-item .text .title {
    margin-top: 0;
  }
}
@media screen and (max-width: 575px) {
  .p-company-feature__list {
    gap: clamp(2.5rem, 0.947rem + 7.8vw, 3.75rem);
    margin-top: clamp(2.5rem, 0.947rem + 7.8vw, 3.75rem);
  }
  .p-company-feature .feature-item {
    display: block;
    width: 100%;
  }
  .p-company-feature .feature-item:nth-child(2) {
    display: block;
  }
  .p-company-feature .feature-item .img-wrapper {
    width: 100%;
    aspect-ratio: 2.4142/1;
  }
  .p-company-feature .feature-item .img-wrapper .num {
    top: -0.6em;
    left: 0.2em;
  }
  .p-company-feature .feature-item .text .title {
    margin-top: 1em;
    font-size: clamp(1rem, 1rem + 0.2vw, 1.25rem);
  }
}
/* .p-company-outline */
.p-company-outline {
  max-width: calc((1590px - 20.625rem) / 12 * 8 + 13.125rem);
  margin-inline: auto;
  margin: clamp(5rem, 4.375rem + 2.5vw, 7.5rem) auto;
}

/* .p-company-staff */
.p-company-staff {
  margin: 0 calc(50% - 50dvw);
  padding: clamp(5rem, 3.5rem + 3.2vw, 7.5rem) calc(50dvw - 50%);
  background-color: #f5fcfb;
  overflow-x: clip;
}
.p-company-staff__swiper {
  margin-top: clamp(2.5rem, 1.75rem + 1.6vw, 3.75rem);
}
.p-company-staff {
  /* gallery-main */
}
.p-company-staff .gallery-main .swiper-slide article {
  display: grid;
  grid-template-columns: 40% 1fr;
  grid-template-rows: auto 1fr;
  gap: 0 clamp(1.25rem, -0.25rem + 3.2vw, 3.75rem);
}
.p-company-staff .gallery-main .swiper-slide .media {
  grid-column: 1;
  grid-row: 1/3;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
}
.p-company-staff .gallery-main .swiper-slide .title {
  grid-column: 2;
  grid-row: 1;
}
.p-company-staff .gallery-main .swiper-slide .title .name {
  font-size: clamp(1.125rem, 0.75rem + 0.8vw, 1.75rem);
}
.p-company-staff .gallery-main .swiper-slide .title .role {
  margin-right: 1em;
  font-size: clamp(0.8125rem, 0.75rem + 0.2vw, 1rem);
  color: #02a685;
}
.p-company-staff .gallery-main .swiper-slide .title .license {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 1.2em;
  padding: 0.3em 0.6em 0.4em 0.6em;
  background-color: #02a685;
  font-size: clamp(0.75rem, 0.625rem + 0.2vw, 0.875rem);
  color: #fafcfc;
}
.p-company-staff .gallery-main .swiper-slide .desc {
  grid-column: 2;
  grid-row: 2;
  margin-top: clamp(1.25rem, 0.5rem + 1.6vw, 2.5rem);
}
.p-company-staff .gallery-main .swiper-slide .desc p:not(:first-of-type) {
  margin-top: 1em;
}
.p-company-staff .gallery-main .navigation {
  display: none;
}
.p-company-staff {
  /* gallery-thumb */
}
.p-company-staff .gallery-thumb {
  margin-top: clamp(0.75rem, 0.5rem + 0.6vw, 1.25rem);
}
.p-company-staff .gallery-thumb .slide-inner {
  display: grid;
  grid-template-columns: 45% 1fr;
  grid-template-rows: 6em;
  width: 99.9%;
  border: 1px solid #c6cccb;
  border-radius: clamp(0.25rem, 0.125rem + 0.3vw, 0.5rem);
  overflow: hidden;
  transition: border 0.3s, background-color 0.3s;
}
.p-company-staff .gallery-thumb .slide-inner .title {
  place-content: center;
  padding: 0 clamp(0.75rem, 0.5rem + 0.6vw, 1.25rem);
  font-size: clamp(0.875rem, 0.75rem + 0.3vw, 1.125rem);
}
.p-company-staff .gallery-thumb .slide-inner .title .role {
  display: block;
  margin-bottom: 0.6em;
  font-size: clamp(0.625rem, 0.5rem + 0.2vw, 0.75rem);
  color: #02a685;
}
@media (hover: hover) {
  .p-company-staff .gallery-thumb .slide-inner:hover {
    border: 1px solid rgba(2, 166, 133, 0.4);
    background-color: rgba(163, 223, 211, 0.1);
  }
}
.p-company-staff .gallery-thumb .swiper-slide[class*=-thumb-active] .slide-inner {
  border: 1px solid rgba(2, 166, 133, 0.4);
  background-color: rgba(163, 223, 211, 0.1);
}

@media screen and (max-width: 767px) {
  .p-company-staff {
    /* gallery-main */
  }
  .p-company-staff .gallery-main .swiper-slide article {
    display: flex;
    flex-direction: column;
  }
  .p-company-staff .gallery-main .swiper-slide .media {
    height: 100%;
    aspect-ratio: 1.618/1;
  }
  .p-company-staff .gallery-main .swiper-slide .title {
    margin-top: 1.5rem;
  }
  .p-company-staff .gallery-main .navigation {
    top: clamp(4.25rem, -2.549rem + 34vw, 13.75rem);
    bottom: auto;
  }
  .p-company-staff {
    /* gallery-thumb */
  }
  .p-company-staff .gallery-thumb {
    margin-top: 1.75rem;
  }
  .p-company-staff .gallery-thumb .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: clamp(0.5rem, 0.5rem + 0.2vw, 0.75rem);
  }
  .p-company-staff .gallery-thumb .swiper-slide {
    width: auto !important;
  }
}
/* .p-company-access */
.p-company-access {
  padding: clamp(5rem, 3.5rem + 3.2vw, 7.5rem) 0;
}
.p-company-access__content {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: 0 clamp(1rem, -0.125rem + 3.1vw, 3.75rem);
  margin-top: clamp(2.5rem, 2.25rem + 1.2vw, 3.75rem);
}
.p-company-access__content .map {
  grid-column: 1;
  grid-row: 1;
  height: clamp(15rem, 12.75rem + 9.8vw, 25rem);
}
.p-company-access__content .map iframe {
  width: 100%;
  height: 100%;
}
.p-company-access__content .text {
  grid-column: 2;
  grid-row: 1;
}
.p-company-access__content .text .item:not(:first-of-type) {
  margin-top: 2.4em;
}
.p-company-access__content .text dt {
  color: #118f74;
}
.p-company-access__content .text dd {
  margin-top: 0.8em;
  line-height: 1.5;
}

@media screen and (max-width: 767px) {
  .p-company-access__content {
    display: block;
  }
  .p-company-access__content .text {
    margin-top: 2em;
  }
  .p-company-access__content .text .item:not(:first-of-type) {
    margin-top: 2em;
  }
}
/* 
menu
---------------------------------------------------------------- */
/* .p-lower-header--menu */
@media screen and (max-width: 767px) {
  .p-lower-header--menu .p-lower-header__img img {
    -o-object-position: bottom;
       object-position: bottom;
  }
}

/* p-menu-cat */
/* p-menu-list */
/* p-menu-paging */
/* 
works
---------------------------------------------------------------- */
/* .p-lower-header--works */
@media screen and (max-width: 767px) {
  .p-lower-header--works .p-lower-header__img img {
    -o-object-position: bottom;
       object-position: bottom;
  }
}

/* p-works-cat */
/* p-works-list */
/* p-works-paging */
/* 
flow
---------------------------------------------------------------- */
/* .p-lower-header--flow */
.p-lower-header--flow .p-lower-header__img img {
  -o-object-position: bottom;
     object-position: bottom;
}

/* .p-flow */
.p-flow {
  max-width: calc((1590px - 20.625rem) / 12 * 10 + 16.875rem);
  margin-inline: auto;
  padding-bottom: clamp(6.25rem, 3.875rem + 4.9vw, 10rem);
}
.p-flow__item:not(:first-child) {
  padding-top: clamp(3rem, 2.625rem + 1.9vw, 5rem);
}
.p-flow__item .content {
  display: grid;
  grid-template-columns: 20% 1fr;
  grid-template-rows: 1fr;
  gap: 0 clamp(1.25rem, 0.75rem + 2.4vw, 3.75rem);
}
.p-flow__item .media {
  grid-column: 1;
  grid-row: 1;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background-color: #ebf4f3;
  position: relative;
}
.p-flow__item .media .icon {
  width: 50%;
  color: #02a685;
  margin: auto;
  position: absolute;
  inset: 0;
}
.p-flow__item .media .icon--quotation {
  width: 36%;
}
.p-flow__item .media .icon--work {
  padding-bottom: clamp(0.25rem, 0.25rem + 0.1vw, 0.375rem);
}
.p-flow__item .media .icon--payment {
  width: 40%;
  padding-top: clamp(0.25rem, 0.25rem + 0.1vw, 0.375rem);
}
.p-flow__item .text {
  grid-column: 2;
  grid-row: 1;
  place-content: center;
}
.p-flow__item .text .flow-title {
  font-size: clamp(1.125rem, 1rem + 0.3vw, 1.375rem);
  font-weight: 500;
  color: #02a685;
}
.p-flow__item .text .desc {
  margin-top: clamp(0.75rem, 0.5rem + 0.6vw, 1.25rem);
}

/* 
timeline
---------------------------------------------------------------- */
.timeline .p-flow__item {
  position: relative;
}
.timeline {
  /* border-line */
}
.timeline .border-line {
  width: 0.09375rem;
  height: 0;
  background: #02a685;
  position: absolute;
  top: 0;
  left: calc(10% - 0.0625rem);
  z-index: -10;
}

/* 
faq
---------------------------------------------------------------- */
.p-faq {
  max-width: calc((1590px - 20.625rem) / 12 * 8 + 13.125rem);
  margin-inline: auto;
  padding-bottom: clamp(6.25rem, 3.875rem + 4.9vw, 10rem);
}
.p-faq__item:not(:first-child) {
  margin-top: clamp(1.75rem, 1.625rem + 0.7vw, 2.5rem);
}
.p-faq__item {
  padding: 2em 2.4em;
  border-radius: clamp(0.5rem, 0.5rem + 0.2vw, 0.75rem);
  background-color: #ebf4f3;
}
.p-faq__item .question,
.p-faq__item .answer {
  display: flex;
  align-items: center;
  padding-left: calc(clamp(2.5rem, 2.25rem + 0.6vw, 3rem) + clamp(0.75rem, 0.75rem + 0.2vw, 1rem));
  min-height: clamp(2.5rem, 2.25rem + 0.6vw, 3rem);
  line-height: 1.5;
  position: relative;
}
.p-faq__item .question::before,
.p-faq__item .answer::before {
  content: "";
  display: inline-block;
  width: clamp(2.5rem, 2.25rem + 0.6vw, 3rem);
  height: clamp(2.5rem, 2.25rem + 0.6vw, 3rem);
  display: grid;
  place-content: center;
  place-items: center;
  border-radius: 50%;
  font-family: "Marcellus";
  font-size: clamp(1.25rem, 1.125rem + 0.3vw, 1.5rem);
  position: absolute;
  top: 0;
  left: 0;
}
.p-faq__item .question {
  font-size: clamp(1.125rem, 1.125rem + 0.2vw, 1.375rem);
  font-weight: 500;
  color: #02a685;
}
.p-faq__item .question::before {
  content: "Q";
  background-color: #02a685;
  color: #fafcfc;
}
.p-faq__item .answer {
  margin-top: 1em;
}
.p-faq__item .answer::before {
  content: "A";
  background-color: #fafcfc;
  color: #02a685;
}

/* 
contact
---------------------------------------------------------------- */
/* .p-contact-tel */
.p-contact-tel {
  max-width: calc((1590px - 20.625rem) / 12 * 8 + 13.125rem);
  margin-inline: auto;
  margin-top: clamp(5rem, 4.375rem + 2.5vw, 7.5rem);
  padding: 4em 2em;
  background-color: #ebf4f3;
  border-radius: clamp(0.5rem, 0.5rem + 0.2vw, 0.75rem);
  text-align: center;
}
.p-contact-tel__tel {
  margin-top: clamp(1.5rem, 1.375rem + 0.5vw, 2rem);
}
.p-contact-tel__tel .tel-number {
  margin-inline: auto;
}

/* .p-contact-mail */
.p-contact-mail {
  max-width: calc((1590px - 20.625rem) / 12 * 8 + 13.125rem);
  margin-inline: auto;
  margin-top: clamp(3.75rem, 3.125rem + 2.5vw, 6.25rem);
}
.p-contact-mail__title {
  text-align: center;
}
.p-contact-mail__desc {
  margin-top: clamp(1.75rem, 1.625rem + 0.7vw, 2.5rem);
}
.p-contact-mail__form {
  padding-bottom: clamp(6.25rem, 3.875rem + 4.9vw, 10rem);
}
.p-contact-mail__form th {
  width: 28%;
}
@media screen and (max-width: 575px) {
  .p-contact-mail__form th {
    line-height: 1;
    width: 100%;
  }
  .p-contact-mail__form td {
    margin-top: 0.75rem;
  }
}
.p-contact-mail .contact-text {
  vertical-align: baseline;
}
.p-contact-mail {
  /* red */
}
.p-contact-mail .red {
  margin-left: 0.15em;
  font-size: 1.1em;
  font-weight: 500;
  color: #f37240;
}
.p-contact-mail {
  /* agree - policy */
}
.p-contact-mail .ttl_policy {
  margin-top: 3em;
  font-size: clamp(1rem, 1rem + 0.1vw, 1.125rem);
  font-weight: 500;
  text-align: center;
  line-height: 1.5;
}
.p-contact-mail .policy {
  height: 20em;
  margin-top: 1.5em;
  border: 1px solid #c6cccb;
  padding: 1em 2em;
  border-radius: 0.2em;
  overflow-y: scroll;
}
.p-contact-mail .agreeBox {
  margin-top: 1.5em;
  text-align: center;
}
.p-contact-mail {
  /* submit */
}
.p-contact-mail .formBtn {
  margin-top: 3em;
  text-align: center;
}
.p-contact-mail .formBtn button {
  transition: filter 0.3s;
}
@media (hover: hover) {
  .p-contact-mail .formBtn button:hover {
    filter: brightness(0.92);
  }
}
.p-contact-mail button[type=submit] {
  width: -moz-fit-content;
  width: fit-content;
  padding: 1em 2em;
  border-radius: 0.2em;
  line-height: 1.5;
}
.p-contact-mail .confirmation,
.p-contact-mail .send {
  background-color: #02a685;
  color: #fafcfc;
}
.p-contact-mail .back {
  background-color: #fafcfc;
  border: 1px solid #02a685;
  color: #02a685;
}/*# sourceMappingURL=common.css.map */