@charset "UTF-8";
/* common */

:root {
   --color-primary: #f3cccc;
   --color-secondary: #ffffff;
   --color-text-main: #333333;
   --color-accent: #faf4e4;
   --color-highlight: #F06565;
   --color-border: #ccc;
   --color-skill-icon: #ffcba4;
}
* {
   box-sizing: border-box;
   font-family: "Noto Sans JP", '游ゴシック', 'Yu Gothic', YuGothic, HiraKakuProN-W3, 'メイリオ', Meiryo, sans-serif;
   color: var(--color-text-main);
   list-style: none;
   text-decoration: none;
   margin: 0;
   padding: 0;
   font-size: 16px;
}
body {
   letter-spacing: 0.05em;
}
img {
   max-width: 100%;
   vertical-align: bottom;
}
.body-wrapper {
   width: 90%;
   max-width: 920px;
   margin: 0 auto;
}
.section-gap {
   padding: 68px 0;
}

/* -----------------------
sp
----------------------- */
/* header */
header {
   height: 50px;
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin: 20px 24px;
}
.header-logo img {
   height: 48px;
}

/* title */
.section-title {
   display: flex;
   justify-content: center;
   color: var(--color-text-main);
   font-size: 1.5em;
   margin-bottom: 40px;
   text-align: center;
}
.section-title::before, .section-title::after {
   width: 3px;
   height: 40px;
   background-color: var(--color-text-main);
   content: '';
}
.section-title::before {
   transform: rotate(-35deg);
   margin-right: 30px;
}
.section-title::after {
   transform: rotate(35deg);
   margin-left: 30px;
}

/* works */
.works-title-design {
   display: inline-block;
   position: relative;
   color: var(--color-text-main);
   position: relative;
   left: 50%;
   transform: translateX(-50%);
}
.works-title-design:before {
   content: '';
   display: inline-block;
   position: absolute;
   bottom: -15px;
   left: 50%;
   transform: translateX(-50%);
   width: 60px;
   height: 4px;
   background-color: var(--color-text-main);
}
.mock-contents {
   display: flex;
   text-align: center;
   flex-direction: column;
}
.mock-contents:not(:last-child) {
   margin-bottom: 56px;
}
.mock-contents ul {
   display: flex;
   flex-direction: column;
   gap: 40px;
}

/* modal */
.modal {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100vh;
   background-color: rgba(0, 0, 0, 0.8);
   display: none;
   z-index: 5;
}
.bigimg {
   position: relative;
   text-align: center;
   width: 90%;
   max-width: 1000px;
   top: 50%;
   left: 0;
   transform: translateY(-50%);
   right: 0;
   margin: 0 auto;
}
.close-btn {
   position: absolute;
   right: 5%;
   top: 22%;
}
.close-btn a {
   color: var(--color-secondary);
   font-size: 28px;
}

/* works lower */
.head-area {
   background-color: var(--color-accent);
}
.img-head-container {
   margin-bottom: 40px;
   text-align: center;
}
.works-foot-container {
   display: flex;
   flex-direction: column;
}
.info-box {
   display: flex;
   justify-content: space-between;
   flex-direction: column;
   line-height: 2;
}
.info-box:not(:last-child) {
   margin-bottom: 32px;
}
.info-title {
   font-weight: bold;
   font-size: 1.3em;
}
.info-detail:not(:last-child) {
   margin-bottom: 14px;
}
.img-head-box {
   text-align: center;
}
.img-foot-container {
   display: flex;
   flex-direction: column;
   align-items: center;
   margin-top: 40px;
   gap: 16px;
}
.img-foot {
   box-shadow: 0 2px 17px rgba(0, 0, 0, 0.08);
}
.foot-area {
   padding: 68px 0 0;
}
.dli-chevron-round-right {
   display: inline-block;
   vertical-align: middle;
   color: var(--color-text-main);
   line-height: 1;
   position: relative;
   width: 1em;
   height: 1em;
   transform: translateX(-25%) rotate(45deg);
   margin-right: 1em;
}
.dli-chevron-round-right::before, .dli-chevron-round-right::after {
   content: '';
   position: absolute;
   background: currentColor;
   border-radius: 0.1em;
}
.dli-chevron-round-right::before {
   top: 0;
   left: 0;
   right: 0;
   height: 0.1em;
}
.dli-chevron-round-right::after {
   top: 0;
   right: 0;
   bottom: 0;
   width: 0.1em;
}
.foot-img-title {
   text-align: left;
   margin-bottom: 20px;
}

/* view more */
.view-more-button {
   display: flex;
   align-items: center;
   justify-content: center;
   line-height: 1;
   text-decoration: none;
   color: var(--color-text-main);
   font-size: 18px;
   border-radius: 0px;
   width: 200px;
   height: 40px;
   position: relative;
   transition: 0.3s;
   padding: 6%;
   margin: 0 auto;
   background-color: #FFF;
}
.view-more-button::before, .view-more-button::after {
   content: "";
   display: block;
   position: absolute;
   border: 1px solid var(--color-text-main);
   width: 100%;
   height: 100%;
   transition: .3s;
}
.view-more-button::before {
   top: -2px;
   left: -2px;
}
.view-more-button::after {
   top: 2px;
   left: 2px;
}
.view-more-button:hover::before, .view-more-button:hover::after {
   top: 0;
   left: 0;
}
.dli-caret-right {
   display: inline-block;
   vertical-align: middle;
   color: var(--color-text-main);
   line-height: 1.9;
   width: 0;
   height: 0;
   border-style: solid;
   border-color: transparent;
   border-width: 0.375em 0.64952em;
   border-left-color: currentColor;
   border-right: 0;
   margin-left: 10px;
}

/* site preview btn */
.preview-btn-container {
   display: flex;
   flex-direction: column;
   gap: 20px;
   align-items: center;
   margin-bottom: 40px;
}
.preview-btn {
   display: inline-block;
	padding: .8em 2.5em .8em 2em;
   background: var(--color-primary);
   border: 1px solid var(--color-primary);
   border-radius: 32px;
   color: var(--color-secondary);
	font-size: 1.3em;
   cursor: pointer;
   position: relative;
   width: fit-content;
}
.preview-btn::after {
   position: absolute;
   content: '\f105';
   font-family: 'Font Awesome 5 Free';
   font-weight: 900;
   top: 50%;
	right: .8em;
   left: auto;
   bottom: auto;
   transform: translateY(-50%);
}
.preview-btn:hover {
   background: #fff;
   color: var(--color-primary);
}

/* hobby lower */
.hobby {
   background-color: var(--color-accent);
   padding: 68px 0;
}
.hobby-contents {
   text-align: center;
}
.hobby-container ul {
   display: flex;
   flex-direction: column;
   justify-content: center;
   gap: 40px;
}
.hobby-img {
   width: 100%;
}
.view-more-button-hobby {
   background-color: var(--color-accent);
}
.btn-container-hobby {
   margin-top: 48px;
}

/* footer */
footer {
   padding: 30px 0;
   background: var(--color-primary);
   text-align: center;
}
.footer-wrapper img {
   width: 17%;
   margin-bottom: 30px;
}
.footer-nav-items {
   width: 100%;
   display: flex;
   justify-content: center;
   align-items: center;
   margin-bottom: 30px;
}
.footer-nav-items li {
   padding-right: 10px;
   font-size: 0.9em;
}
.footer-contact {
   padding-left: 15px;
}

/* scroll btn */
.gotop {
   display: block;
   width: 60px;
   height: 60px;
   box-sizing: border-box;
   background: #FFF;
   padding-top: 30px;
   text-align: center;
   letter-spacing: -1px;
   font-size: 85%;
   color: var(--color-text-main);
   opacity: 0.5;
   position: relative;
   margin: 60px auto;
   background-color: #fffdfa;
}
.gotop::before {
   content: "";
   display: inline-block;
   border-top: 2px solid var(--color-text-main);
   border-right: 2px solid var(--color-text-main);
   width: 25%;
   height: 25%;
   top: 25%;
   left: 0;
   right: 0;
   margin: auto;
   position: absolute;
   transform: rotate(-45deg);
}
/* -----------------------
tab
----------------------- */

@media screen and (min-width: 768px) {
   /* common */
   .section-gap {
      padding: 100px 0;
   }

   /* modal */
   .close-btn {
      right: 5%;
      top: 15%;
   }

   /* title */
   .section-title {
      font-size: 2em;
   }

   /* works lower */
   .mock-contents ul {
      flex-direction: row;
      flex-wrap: wrap;
      gap: 48px;
   }
   .mock-contents ul li {
      width: calc((100% - 48px) / 2);
   }
   .detail-img img:not(:last-child) {
      margin-bottom: 0;
   }
   .info-box:not(:last-child) {
      margin-bottom: 40px;
   }
   .img-head-container {
      margin-bottom: 68px;
   }
   .img-foot:not(:last-child) {
      margin-bottom: 0;
   }
   .img-foot-container {
      margin-top: 64px;
      gap: 24px;
      flex-direction: row;
   }
   .foot-area {
      padding: 100px 0 0;
   }
   .footbox-right {
      flex-basis: 40%;
   }
   .hobby-container ul {
      flex-direction: row;
      flex-wrap: wrap;
   }
   .hobby-container ul li {
      width: calc((100% - 40px) / 2);
   }

   /* site preview btn */
   .preview-btn-container {
      flex-direction: row;
      justify-content: center;
   }
}
/* -----------------------
sp,tab
----------------------- */

@media screen and (max-width: 959px) {
   /* scroll btn */
   .scrollbtn {
      display: none;
   }
   /* header */
   .hamburger {
      display: block;
      position: fixed;
      z-index: 3;
      right: 22px;
      top: 24px;
      width: 42px;
      height: 43px;
      cursor: pointer;
      text-align: center;
   }
   .hamburger span {
      display: block;
      position: absolute;
      width: 30px;
      height: 2px;
      left: 6px;
      background: var(--color-text-main);
      -webkit-transition: 0.3s ease-in-out;
      -moz-transition: 0.3s ease-in-out;
      transition: 0.3s ease-in-out;
   }
   .hamburger span:nth-child(1) {
      top: 10px;
   }
   .hamburger span:nth-child(2) {
      top: 20px;
   }
   .hamburger span:nth-child(3) {
      top: 30px;
   }
   /* ナビが開いてる時のボタン */
   .hamburger.active span:nth-child(1) {
      top: 16px;
      left: 6px;
      background: var(--color-text-main);
      -webkit-transform: rotate(-45deg);
      -moz-transform: rotate(-45deg);
      transform: rotate(-45deg);
   }
   .hamburger.active span:nth-child(2), .hamburger.active span:nth-child(3) {
      top: 16px;
      background: var(--color-text-main);
      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      transform: rotate(45deg);
   }
   nav.globalMenuSp {
      position: fixed;
      z-index: 2;
      top: 0;
      left: 0;
      color: var(--color-text-main);
      background: rgba(243, 204, 204, 0.9);
      text-align: center;
      width: 100%;
      height: 100%;
      opacity: 0;
      transition: opacity .6s ease, visibility .6s ease;
      visibility: hidden;
   }
   nav.globalMenuSp ul {
      margin: 0 auto;
      padding: 8em;
      /* 文字位置 */
      width: 100%;
   }
   nav.globalMenuSp ul li {
      list-style-type: none;
      padding: 0;
      transition: .4s all;
   }
   nav.globalMenuSp ul li:last-child {
      padding-bottom: 0;
   }
   nav.globalMenuSp ul li a {
      display: block;
      color: var(--color-text-main);
      padding: 1em 0;
   }
   /* このクラスを、jQueryで付与・削除する */
   nav.globalMenuSp.active {
      opacity: 100;
      visibility: visible;
   }
   .nav-items img {
      height: 65px;
   }
   .about-name {
      font-size: 2em;
   }
   .en-name {
      font-size: 0.9em;
   }
}

/* -----------------------
pc
----------------------- */
@media screen and (min-width: 960px) {
   /* header */
   header {
      margin: 28px 32px;
      height: 150px;
   }
   .header-logo img {
      height: 130px;
   }
   .globalMenuSp a {
      margin: 0 30px 0 0;
   }
   .header-logo .globalMenuSp a:hover {
      color: var(--color-text-main);
      border-bottom: 2px solid var(--color-highlight);
      padding-bottom: 10px;
   }
   .nav-items {
      display: flex;
      height: 160px;
      align-items: center;
   }
   .nav-items img {
      display: none;
   }
   .hamburger {
      display: none;
   }

   /* scroll btn */
   .gotop {
      display: none;
   }
   .scrollbtn {
      color: var(--color-text-main);
      position: fixed;
      bottom: 20px;
      right: 30px;
      display: block;
      width: 100px;
      padding: 16px 20px;
      text-align: right;
      transform: rotate(90deg);
      transform-origin: bottom;
   }
   .arrow1 {
      width: 48px;
      height: 1px;
      background: var(--color-text-main);
      position: absolute;
      top: 50%;
      right: 62px;
   }
   .arrow2 {
      width: 1px;
      height: 12px;
      background: var(--color-text-main);
      position: absolute;
      top: calc(50% + 1px);
      right: 109px;
      transform: rotate(-130deg);
      transform-origin: top left;
   }

   /* modal */
   .close-btn {
      right: 16%;
      top: 5%;
   }
   .close-btn a {
      font-size: 40px;
   }
   .bigimg img {
      height: 70%;
      max-height: 800px;
   }

   /* works */
   .info-container {
      margin-right: 0;
   }
   .detail-img {
      flex-shrink: 0;
      width: 45%;
      padding-top: 100px;
      padding-bottom: 100px;
   }
   .img-foot-container {
      flex-direction: column;
      gap: 56px;
   }
   .foot-img-title {
      font-size: 1.3em;
   }
   .img-foot-banner {
      width: 480px;
   }
   .foot-area {
      padding: 100px 0;
   }

   /* hobby lower */
   .hobby-contents ul {
      flex-direction: row;
   }

   /* contact */
   .contact {
      padding: 100px 0;
   }
   .form {
      width: 100%;
   }

   /* footer */
   footer {
      padding: 50px 0;
   }
   .footer-nav-items li {
      font-size: 1em;
   }
   .footer-wrapper img {
      width: 70px;
   }
   .view-more-button {
      padding: 25px;
   }
   .footer-nav-items li {
      padding-right: 30px;
   }
   .border {
      width: 40%;
   }
}