@font-face {
  font-family: 'Reitam';
  src: url("../font/Reitam_Regular.otf");
}

/* root
---------------------------------------------------------*/
:root {
  --black: #534741;
  --brown: #A9A3A0;
  --red: #FE4726;
  --beige: #FFF9F2;
  --white: #ffffff;
  --font-en: 'Reitam';
  --font-jp: 'Noto Sans JP', sans-serif;
}

/* html
---------------------------------------------------------*/
html {
  height: 100%;
  font-size: 62.5%;
}

/* body
---------------------------------------------------------*/
body {
  height: 100%;
  font-size: 16px;
  font-size: 1.6rem;
  color: var(--black);
  background: var(--beige);
  line-height: 1.6;
  font-family: var(--font-jp);
  font-weight: 400;
}

/* inner
---------------------------------------------------------*/
.l-inner {
  position: relative;
  box-sizing: border-box;
  margin-right: auto;
  margin-left: auto;
  padding-right: 20px;
  padding-right: calc( constant(safe-area-inset-right) + 20px );
  padding-right: calc( env(safe-area-inset-right) + 20px );
  padding-left: 20px;
  padding-left: calc( constant(safe-area-inset-left) + 20px );
  padding-left: calc( env(safe-area-inset-left) + 20px );
  max-width: 1000px;
}
.l-inner--narrow {
  max-width: 800px;
}

/* 基本共通パーツ
---------------------------------------------------------*/
a { transition: .3s; }
a:hover { text-decoration: none; opacity: .8; }
img { width: 100%; height: auto; }

.sp-only {display: none !important;}
@media only print, screen and (max-width: 750px){
  .sp-only {display: block !important;}
  .pc-only {display: none !important;}
}

/* フォント */
.font-en {font-family: var(--font-en); line-height: 1;}
.font-white { color: var(--white); }
.font-bold { font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;}

/* マージン */
.mb-0 { margin-bottom: 0!important; }
.mb-10 { margin-bottom: 10px!important; }
.mb-20 { margin-bottom: 20px!important; }
.mb-30 { margin-bottom: 30px!important; }
.mb-40 { margin-bottom: 40px!important; }
.mb-60 { margin-bottom: 60px!important; }
.mb-80 { margin-bottom: 80px!important; }
.mb-100 { margin-bottom: 100px!important; }

/* テキスト配置 */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

/* セクション */
.section { padding: 100px 0; }
@media only print, screen and (max-width: 750px){
  .section { padding: 100px 20px; }
}

/* ローディング
---------------------------------------------------------*/
.loading {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: #FFF9F2;
  display: flex;
  justify-content: center;
  align-items: center;
}
.loading.hide {
  opacity: 0;
  pointer-events: none;
  transition: opacity 500ms;
}
@-moz-keyframes flower-loader {
  0% {
    -moz-transform: rotate(0deg);
    transform: rotate(0deg);
    -moz-box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
    box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
  }
  50% {
    -moz-transform: rotate(1080deg);
    transform: rotate(1080deg);
    -moz-box-shadow: white 0 0 15px 0, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px;
    box-shadow: white 0 0 15px 0, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px;
  }
}
@-webkit-keyframes flower-loader {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
    box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
  }
  50% {
    -webkit-transform: rotate(1080deg);
    transform: rotate(1080deg);
    -webkit-box-shadow: white 0 0 15px 0, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px;
    box-shadow: white 0 0 15px 0, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px;
  }
}
@keyframes flower-loader {
  0% {
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
    -moz-box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
    -webkit-box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
    box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
  }
  50% {
    -moz-transform: rotate(1080deg);
    -ms-transform: rotate(1080deg);
    -webkit-transform: rotate(1080deg);
    transform: rotate(1080deg);
    -moz-box-shadow: white 0 0 15px 0, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px;
    -webkit-box-shadow: white 0 0 15px 0, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px;
    box-shadow: white 0 0 15px 0, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px;
  }
}
/* :not(:required) hides this rule from IE9 and below */
.flower-loader:not(:required) {
  overflow: hidden;
  position: relative;
  text-indent: -9999px;
  display: inline-block;
  width: 16px;
  height: 16px;
  background: var(--red);
  border-radius: 100%;
  -moz-box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
  -webkit-box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
  box-shadow: white 0 0 15px 0, #fd8 -12px -12px 0 4px, #fd8 12px -12px 0 4px, #fd8 12px 12px 0 4px, #fd8 -12px 12px 0 4px;
  -moz-animation: flower-loader 5s infinite ease-in-out;
  -webkit-animation: flower-loader 5s infinite ease-in-out;
  animation: flower-loader 5s infinite ease-in-out;
  -moz-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  -webkit-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
}

/* wh_bg 白背景
---------------------------------------------------------*/
.wh_bg { background: var(--white);}

/*  grad_bg グラデーション背景
---------------------------------------------------------*/
.grad_bg {
  background: linear-gradient(to bottom,#FFF4E5 10%,#FFF9F2 100%);
  position: relative;
}
.grad_bg_wh {
  background: linear-gradient(to bottom,#FFF4E5 10%,#fff 100%);
  position: relative;
}

/* wave_area 波背景
---------------------------------------------------------*/
.wave_area {
  position: relative;
}
.wave_area.or::before {
  position: absolute;
  content: "";
  background: url(../image/wave_or.png)repeat-x center top;
  /* background-size: auto 100%; */
  background-size: contain;
  top: 0;
  left: 0;
  height: 38px;
  width: 100%;
}
.wave_area.wh::before {
  position: absolute;
  content: "";
  background: url(../image/wave_wh.png)repeat-x center top;
  background-size: contain;
  top: 0;
  left: 0;
  height: 38px;
  width: 100%;
}


/* lead リード文
---------------------------------------------------------*/


/* btn ボタン
---------------------------------------------------------*/
.btn01 {
  color: var(--red);
  font-weight: bold;
  position: relative;
  padding-left: 30px;
}
.btn01::before {
  position: absolute;
  content: "";
  background: url(../image/btn01_arrow.png)no-repeat center center;
  background-size: contain;
  bottom: -2px;
  left: 0;
  height: 24px;
  width: 24px;
}
.btn02 {
  display: inline-block;
  text-align: center;
  color: var(--red);
  font-weight: bold;
  position: relative;
  border: 2px solid var(--red);
  width: 300px;
  border-radius: 38px;
  padding: 24px 0;
  line-height: 1;
}
.btn02.bk::before {
  position: absolute;
  content: "";
  background: url(../image/btn02_arrow.png)no-repeat center center;
  background-size: contain;
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  height: 20px;
  width: 20px;
}
.btn02.next::before {
  position: absolute;
  content: "";
  background: url(../image/btn01_arrow.png)no-repeat center center;
  background-size: contain;
  top: 50%;
  right: 30px;
  transform: translateY(-50%);
  height: 20px;
  width: 20px;
}


/* header ヘッダー
---------------------------------------------------------*/
.header_wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 40px;
}
@media only print, screen and (max-width: 750px){
  .header_wrap {
    padding: 45px 20px;
  }
}
.header_wrap .header_nav .header_navlist {
  display: flex;
}
.header_wrap .header_nav .header_navlist .nav_item {
  margin-right: 30px;
}
.header_wrap .header_nav .header_navlist .nav_item a  {
  color: var(--red);
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
[type="checkbox"]:checked,
[type="checkbox"]:not(:checked){
  position: absolute;
  left: -9999px;
}
.menu-icon:checked + label,
.menu-icon:not(:checked) + label{
  position: fixed;
  top: 53px;
  right: 45px;
  display: block;
  width: 30px;
  height: 30px;
  padding: 0;
  margin: 0;
  cursor: pointer;
  z-index: 10;
}
.menu-icon:checked + label:before,
.menu-icon:not(:checked) + label:before{
  position: absolute;
  content: '';
  display: block;
  width: 30px;
  height: 20px;
  z-index: 20;
  top: 0;
  left: 0;
  border-top: 2px solid #ececee;
  border-bottom: 2px solid #ececee;
  transition: border-width 100ms 1500ms ease,
              top 100ms 1600ms cubic-bezier(0.23, 1, 0.32, 1),
              height 100ms 1600ms cubic-bezier(0.23, 1, 0.32, 1),
              background-color 200ms ease,
              transform 200ms cubic-bezier(0.23, 1, 0.32, 1);
}
.menu-icon:checked + label:after,
.menu-icon:not(:checked) + label:after{
  position: absolute;
  content: '';
  display: block;
  width: 22px;
  height: 2px;
  z-index: 20;
  top: 10px;
  right: 4px;
  background-color: #ececee;
  margin-top: -1px;
  transition: width 100ms 1750ms ease,
              right 100ms 1750ms ease,
              margin-top 100ms ease,
              transform 200ms cubic-bezier(0.23, 1, 0.32, 1);
}
.menu-icon:checked + label:before{
  top: 10px;
  transform: rotate(45deg);
  height: 2px;
  background-color: #ececee;
  border-width: 0;
  transition: border-width 100ms 340ms ease,
              top 100ms 300ms cubic-bezier(0.23, 1, 0.32, 1),
              height 100ms 300ms cubic-bezier(0.23, 1, 0.32, 1),
              background-color 200ms 500ms ease,
              transform 200ms 1700ms cubic-bezier(0.23, 1, 0.32, 1);
}
.menu-icon:checked + label:after{
  width: 30px;
  margin-top: 0;
  right: 0;
  transform: rotate(-45deg);
  transition: width 100ms ease,
              right 100ms ease,
              margin-top 100ms 500ms ease,
              transform 200ms 1700ms cubic-bezier(0.23, 1, 0.32, 1);
}

.nav{
  position: fixed;
  top: 20px;
  right: 20px;
  display: block;
  width: 80px;
  height: 80px;
  padding: 0;
  margin: 0;
  z-index: 9;
  overflow: hidden;
  box-shadow: 0 8px 30px 0 rgba(175, 56, 12, 0.3);
  background: var(--red);
  animation: border-transform 7s linear infinite;
  transition: top 350ms 1100ms cubic-bezier(0.23, 1, 0.32, 1),
              right 350ms 1100ms cubic-bezier(0.23, 1, 0.32, 1),
              transform 250ms 1100ms ease,
              width 650ms 400ms cubic-bezier(0.23, 1, 0.32, 1),
              height 650ms 400ms cubic-bezier(0.23, 1, 0.32, 1);
}
@keyframes border-transform{
    0%,100% { border-radius: 63% 37% 54% 46% / 55% 48% 52% 45%; }
  14% { border-radius: 40% 60% 54% 46% / 49% 60% 40% 51%; }
  28% { border-radius: 54% 46% 38% 62% / 49% 70% 30% 51%; }
  42% { border-radius: 61% 39% 55% 45% / 61% 38% 62% 39%; }
  56% { border-radius: 61% 39% 67% 33% / 70% 50% 50% 30%; }
  70% { border-radius: 50% 50% 34% 66% / 56% 68% 32% 44%; }
  84% { border-radius: 46% 54% 50% 50% / 35% 61% 39% 65%; }
}

.menu-icon:checked ~ .nav {
  animation-play-state: paused;
  top: 50%;
  right: 50%;
  transform: translate(50%, -50%);
  width: 200%;
  height: 200%;
  transition: top 350ms 700ms cubic-bezier(0.23, 1, 0.32, 1),
              right 350ms 700ms cubic-bezier(0.23, 1, 0.32, 1),
              transform 250ms 700ms ease,
              width 750ms 1000ms cubic-bezier(0.23, 1, 0.32, 1),
              height 750ms 1000ms cubic-bezier(0.23, 1, 0.32, 1);}

.nav ul{
  position: absolute;
  top: 50%;
  left: 0;
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  z-index: 6;
  text-align: center;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  list-style: none;
}
.nav ul li{
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  margin: 20px 0;
  text-align: center;
  list-style: none;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(30px);
  transition: all 250ms linear;
}
.nav ul li:nth-child(1){
  transition-delay: 200ms;
}
.nav ul li:nth-child(2){
  transition-delay: 150ms;
}
.nav ul li:nth-child(3){
  transition-delay: 100ms;
}
.nav ul li:nth-child(4){
  transition-delay: 50ms;
}
.nav ul li a{
  font-family: var(--font-jp);
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 2.4rem;
  text-transform: uppercase;
  line-height: 1.2;
  font-weight: 800;
  display: inline-block;
  position: relative;
  color: #fff;
  transition: all 250ms linear;
}
.nav ul li a:after{
  display: block;
  position: absolute;
  top: 50%;
  content: '';
  height: 2vh;
  margin-top: -1vh;
  width: 0;
  left: 0;
  background-color: #353746;
  opacity: 0.8;
  transition: width 250ms linear;
}
.nav ul li a:hover:after{
  width: 100%;
}

.menu-icon:checked ~ .nav  ul li {
  pointer-events: auto;
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 350ms ease,
              transform 250ms ease;
}
.menu-icon:checked ~ .nav ul li:nth-child(1){
  transition-delay: 1400ms;
}
.menu-icon:checked ~ .nav ul li:nth-child(2){
  transition-delay: 1480ms;
}
.menu-icon:checked ~ .nav ul li:nth-child(3){
  transition-delay: 1560ms;
}
.menu-icon:checked ~ .nav ul li:nth-child(4){
  transition-delay: 1640ms;
}

/* mv_block メインビジュアル
---------------------------------------------------------*/
.mv_block {
  padding-top: 220px;
}
.mv_block .text_block .name {
  font-size: 4.2rem;
  padding-bottom: 10px;
}
.mv_block .text_block .name span {
  color: var(--red);
}
.mv_block .text_block .sub {
  font-size: 1.6rem;
  color: var(--brown);
}
.mv_block figure {
  width: 40%;
  margin: auto;
}
@media only print, screen and (max-width: 750px){
  .mv_block figure {
    width: 90%;
  }
}

/* TOPコンテンツ - 共通
---------------------------------------------------------*/
.top_headline01 {
  font-size: 5.6rem;
  font-family: var(--font-en);
  margin-bottom: 40px;
}
.top_headline01::first-letter {
  color: var(--red);
}
.top_headline01 span {
  font-size: 1.6rem;
  font-family: var(--font-jp);
  padding-left: 10px;
  font-weight: 500;
}
.top_headline01_bk {
  color: #343540;
  font-size: 6rem;
  font-family: var(--font-en);
  font-weight: bold;
  margin-bottom: 40px;
}

/* ふわっと表示 */
.element {
  /* 最初は非表示 */
  opacity: 0;
  visibility: hidden;
  transform: translateY(30px);
  transition: opacity 1s, visibility .7s, transform .7s;
}
/* フェードイン時に入るクラス */
.is-fadein {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}

/* TOPコンテンツ - PROFILE プロフィール
---------------------------------------------------------*/
.profile_box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
.profile_box .profile_img {
  width: 30%;
}
.profile_box .profile_img img {
  border-radius: 20px;
}
.profile_box .profile_text {
  width: 64%;
}
.profile_box .profile_text .name {
  font-size: 2rem;
  font-weight: 700;
}
.profile_box .profile_text .name span {
  display: block;
  color: var(--brown);
  font-family: var(--font-en);
  font-size: 1.4rem;
}
@media only print, screen and (max-width: 750px){
  .profile_box {
    padding: 0 20px;
  }
  .profile_box .profile_img {
    width: 100%;
    margin-bottom: 30px;
  }
  .profile_box .profile_text {
    width: 100%;
  }
}

/* TOPコンテンツ - WORKS 制作事例
---------------------------------------------------------*/
.works_list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.works_list .item {
  width: 48%;
  margin-bottom: 60px;
}
.works_list .item img {
  border-radius: 20px;
}
.works_list .item .ttl {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--red);
}
.works_list .item .sub {
  font-size: 1.4rem;
  color: var(--brown);
  font-family: var(--font-en);
}
@media only print, screen and (max-width: 750px){
  .works_list {
    flex-direction: column;
  }
  .works_list .item {
    width: 100%;
    margin-bottom: 40px;
  }
}

/* フッター
---------------------------------------------------------*/
.footer_area p {
  padding: 100px 0 20px;
}
.footer_area small {
  color: var(--red);
}
.footer_area .pagetop_btn img {
  width: 80px;
  height: 80px;
}

@media only print, screen and (max-width: 750px){

}