@charset "utf-8";
/*
Theme Name: Asairo Design
Author: asairo desgin
Author URI: https://asairo.com
Description: 浅色デザインのスタイルテーマ
Version: 2018．12.04
Text Domain: asairo-design
*/

/*--------------------------------------------------
  reset css
--------------------------------------------------*/
/* margin, paddingの幅を考慮せずに幅指定を可能にする */
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { 
  padding: 0; margin: 0; border: 0; font-style:normal; font-weight: normal; font-size: 100%; vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
html {
  font-family: "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "ＭＳ ゴシック", sans-serif;
}
h1, h2, h3, h4, h5, h6 {
  font-family: "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "ＭＳ ゴシック", sans-serif;
}
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
input, textarea,{ padding: 0; margin: 0; }
input[type="button"],input[type="submit"] { -webkit-appearance: none; }
ol, ul{ list-style:none; }
table{ border-collapse: collapse; border-spacing:0; }
caption, th{ text-align: left; }
a:focus { outline:none; }
img { width: 100%; height: auto; display: block; vertical-align: bottom; }
.inline_block { display: inline-block; *display: inline; *zoom: 1; }
/* 入力フォームのパーツデザイン*/
input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"],
input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"],
input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"],
select, textarea, .field {
  padding: 0 1em 0 2em; display: inline-block; height: 24px; line-height: 24px;
  vertical-align: middle; box-shadow: none; border: 0;
  width: 100%; background-color: #fff; font-size: 1.2rem; border: 2px solid #71c6d4;
  -webkit-transition: background-color 0.24s ease-in-out;
  transition: background-color 0.24s ease-in-out;
}
input::-webkit-input-placeholder, input:-ms-input-placeholder, input::-moz-placeholder {
  color: #ccc; font-weight: normal;
}
select {
  -webkit-appearance: none;
  /* 1 */
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOEZCMjYxMEYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOEZCMjYxMUYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RkIyNjBFRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4RkIyNjBGRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Vxkp9gAAAI9JREFUeNpidHFxucHAwKAOxE+AmJmBMPgLxDJAfJMFSKwD4kqoAClgA+P///8ZXF1dPaCGcBKh6QcQB+3evXs7WDMIAA2QB1I7gFgDj0aQFz2BGh+AOEwwUaDAQyBlCMR7cGjcC5KHaQQBuM3IAOiKTiBVhiTUDdRUhq4Oq2aoAelAahIQ5wM1zsCmBiDAADhYMJXVZ9u9AAAAAElFTkSuQmCC);
  background-repeat: no-repeat;
  background-position: 97.5% center;
}


/*--------------------------------------------------
  reset css
--------------------------------------------------*/
/* PC対応 */
@media screen and (min-width: 601px) {
  .pc_view { display:block; }
  .sp_view { display:none; }
}

/* スマートフォン対応 */
@media screen and (max-width: 600px) {
  .pc_view { display:none; }
  .sp_view { display:block; }
}

/*--------------------------------------------------
  リンク
--------------------------------------------------*/
/*【注意】順番を入れ替えると正常に動作しなくなります*/
a {
  color: #333; text-decoration: none; -webkit-transition: 0.3s; -moz-transition: 0.3s;
  -o-transition: 0.3s; -ms-transition: 0.3s; transition: 0.3s;
}
a:visited { color: #333; }
a:hover { color: #333; /*background: rgba(255,255,255,0.8);*/ opacity:0.8; -moz-opacity:0.8; filter: alpha(opacity=80); }
a:active { color: #333; }
a.underline { text-decoration: underline; }


/*--------------------------------------------------
  画像
--------------------------------------------------*/


/*--------------------------------------------------
  装飾
--------------------------------------------------*/
/* margin*/

/* padding*/

/* 位置揃え*/

/* フォント*/
html, body { width: 100%; height: 100%; color: #333; background-color: #FFF; line-height: 1.9; min-height: -webkit-fill-available; }
html { font-size:62.5%; }   /* ！！！消去厳禁！！！*/
body { font-size: 1.2rem; }
.bold { font-weight: bold; color: #004ea2; }
em { color: #FF9319; font-weight: bold; }
strong, b { font-weight: 600; }
p { margin: 0 0 1em 0; }

/* デフォルトフォントサイズ*/
.fs20 { font-size: 20px; font-size: 2.0rem; }
.fs18 { font-size: 18px; font-size: 1.8rem; }
.fs16 { font-size: 16px; font-size: 1.6rem; }
.fs14 { font-size: 14px; font-size: 1.4rem; }
.fs12 { font-size: 12px; font-size: 1.2rem; }
.fs10 { font-size: 10px; font-size: 1.0rem; }



/* PC, TAB, SP共通*/
/* clearfixを使用する場合は、親要素のclassに「cf」を追加する */
.cf:after { content: ""; clear: both; display: block; }




/*--------------------------------------------------
  特殊スタイル
--------------------------------------------------*/ 
/* 上からフェードイン */
.slide-top {
  opacity: 0;
  transform: translate(0, -20px);
  transition: all 1s ease-out;
 }

/* 下からフェードイン */
.slide-bottom {
  opacity: 0;
  transform: translate(0, 20px);
  transition: all 1s ease-out;
 }

 /* 左からフェードイン */
.slide-left {
  opacity: 0;
  transform: translate(-20px, 0);
  transition: all 1s ease-out;
 }

/* 右からフェードイン */
.slide-right {
  opacity: 0;
  transform: translate(20px, 0);
  transition: all 1s ease-out;
 }


 /*--------------------------------------------------
  animetion
  --------------------------------------------------*/
.anim { opacity: 0; }
/* フェードイン */
.fadein.is-animated {
  animation: fadeIn 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1 forwards;
}

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

/* スライドイン */
#control_effect ul li .box .text {
  animation: slideIn 1s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
}

@keyframes slideIn {
  0% {
    transform: translateX(180px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
  }
  40%,100% {
    opacity: 1;
  }
}

/* ズームイン */
.zoomin.is-animated {
  animation: zoomIn 0.8s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
}

@keyframes zoomIn {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* ぽよよん */
.poyoyon.is-animated {
  animation: poyoyon 0.5s cubic-bezier(0.12, 0, 0.39, 0) 1 forwards;
}

@keyframes poyoyon {
  0% {
    transform: translateX(140px);
    opacity: 0;
  }
  50% {
    transform: translateX(0);
  }
  65% {
    transform: translateX(30px);
  }
  100% {
    transform: translateX(0);
  }
  20%,100% {
    opacity: 1;
  }
}

/* ぽよよん2 */
.poyoyon2.is-animated {
  animation: poyoyon2 1s ease-in-out 1 forwards;
}

@keyframes poyoyon2 {
  0%  {
    transform: scale(1.0, 1.0) translate(0, 0);
  }
  15% {
    transform: scale(0.98, 0.9) translate(0, 5px);
  }
  30% {
    transform: scale(1.02, 1.0) translate(0, 8px);
  }
  50% {transform: scale(0.98, 1.05) translate(0, -8px);
  }
  70% {
    transform: scale(1.0, 0.9) translate(0, 5px);
  }
  100% {
    transform: scale(1.0, 1.0) translate(0, 0);
  }
  0%, 100% {
    opacity: 1;
  }
}

/* ぽよよん3 */
.poyoyon3 {
  animation: poyoyon3 2.5s infinite;
  opacity: 1;
}
@keyframes poyoyon3 {
  0%, 40% {
    transform: skew(0deg, 0deg);
  }
  5% {
    transform: skew(5deg, 5deg);
  }
  10% {
    transform: skew(-4deg, -4deg);
  }
  15% {
    transform: skew(3deg, 3deg);
  }
  20% {
    transform: skew(-2deg, -2deg);
  }
  25% {
    transform: skew(1deg, 1deg);
  }
  30% {
    transform: skew(-0.6deg, -0.6deg);
  }
  35% {
    transform: skew(0.3deg, 0.3deg);
  }
}


/* ポップアップ */
.popup.is-animated {
  animation: popup 0.6s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
}

@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}

.pop1::after{
  animation: popup 0.6s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
}
@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}


/* どくどく */
.poyopoyo {
  animation: poyopoyo 2s ease-out infinite;
  opacity: 1;
}
@keyframes poyopoyo {
  0%, 40%, 60%, 80% {
    transform: scale(1.0);
  }
  50%, 70% {
    transform: scale(0.95);
  }
}

/* ななめから出てくる */
.slide-skew.is-animated {
  animation: slide-skew 0.4s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
}

@keyframes slide-skew {
  0% {
    transform: translate(180px,30px);
    opacity: 0;
  }
  100% {
    transform: translate(0,0);
  }
  20%,100% {
    opacity: 1;
  }
}


/* きらん */
.kiran {
  opacity: 1;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}
.kiran::before {
  background-color: #fff;
  content: "";
  display: block;
  position: absolute;
  top: -100px;
  left: 0;
  width: 30px;
  height: 100%;
  opacity: 0;
  transition: cubic-bezier(0.32, 0, 0.67, 0);
}
.kiran:hover::before {
  animation: kiran 0.5s linear 1;
}

@keyframes kiran {
  0% {
    transform: scale(2) rotate(45deg);
    opacity: 0;
  }
  20% {
    transform: scale(20) rotate(45deg);
    opacity: 0.6;
  }
  40% {
    transform: scale(30) rotate(45deg);
    opacity: 0.4;
  }
  80% {
    transform: scale(45) rotate(45deg);
    opacity: 0.2;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}

/* 背景色が流れてくる */
.bg .bg-wrap {
  position: relative;
  display: inline-block;
  margin-top: 5px;
}
.bg.is-animated .bg-wrap::before {
  animation: bg 2.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  background: linear-gradient(to right, #362ae0 0%,#3b79cc 50%,#42d3ed 100%);
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: left center;
}
.bg .bg-wrap .inn {
  color: #fff;
  display: inline-block;
  font-size: 36px;
  font-weight: bold;
  padding: 5px 15px;
  position: relative;
  z-index: 1;
}

@keyframes bg {
  0% {
    opacity: 0;
    transform: scaleX(0) translateX(-5%);
  }
  30% {
    transform: scaleX(1) translateX(0);
  }
  100% {
    transform: scaleX(1) translateX(0);
  }
  30%, 100% {
    opacity: 1;
  }
}

/* 文字がぬるりと現れる */
.matrix .bg-wrap,
.matrix .bg-wrap .inn {
  display: block;
}

.matrix .bg-wrap {
  overflow: hidden;
  opacity: 0;
}

.matrix .bg-wrap + .bg-wrap {
  margin-top: 10px;
}

.matrix .bg-wrap .inn.large {
  font-size: 36px;
  font-weight: bold;
}
.matrix .bg-wrap .inn.small {
  font-size: 15px;
}

.matrix .bg-wrap .inn {
  opacity: 0;
  transform: matrix(1, 0, 0, 1, 0, 100);
  transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.matrix.is-animated .bg-wrap {
  opacity: 1;
}

.matrix.is-animated .bg-wrap .inn {
  opacity: 1;
  transform: matrix(1, 0, 0, 1, 0, 0);
}

/* 背景色が消えてから表示されるテキスト */
.mask-bg {
  color: transparent;
  display: inline-block;
  font-size: 36px;
  font-weight: bold;
  overflow: hidden;
  position: relative;
  transition: color 0ms 450ms;
}
.mask-bg::after {
  background: linear-gradient(to right, #362ae0 0%,#3b79cc 50%,#42d3ed 100%);
  bottom: 0;
  content: '';
  display: block;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  transform: translate(0, 100%);
}

.mask-bg.is-animated {
  color: #362ae0;
}
.mask-bg.is-animated::after {
  animation: mask-bg 1.2s cubic-bezier(0.8, 0, 0.170, 1);
}

@keyframes mask-bg {
  0% {
    transform: translate(0, 101%)
  }
  40%, 60% {
    transform: translate(0, 0%)
  }
  100% {
    transform: translate(0, -100%)
  }
}


/* 線が伸びる */
.line {
  display: block;
  position: relative;
  margin-top: 20px;
}
.line::after {
  background: linear-gradient(to right, #362ae0 0%,#3b79cc 50%,#42d3ed 100%);
  content: '';
  display: block;
  height: 1px;
  width: 0;
  transform: translateX(-50%);
  transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  position: absolute;
  bottom: 0;
  left: 50%;
}
.line.is-animated::after {
  width: 100%;
}


/* フェードアップ */
.fadeup.is-animated {
  animation: fadeup 1s cubic-bezier(0.33, 1, 0.68, 1) 1 forwards;
}

@keyframes fadeup {
  0% {
    transform: translateY(30px);
    opacity: 0;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}



/* --------------------------------------------------------------------------- */
.fade1 {
    opacity: 0;
  }

.fade1.view1{
   animation: popup 1s .5s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
}

@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}


.fade2 {
    opacity: 0;
  }

.fade2.view2{
  animation: popup 1s 1s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
}

@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}


.fade3 {
    opacity: 0;
  }

.fade3.view3{
    animation: popup 1s 1.5s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
}

@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}

.fade4 {
    opacity: 0;
  }

.fade4.view4{
 animation: popup 1s 2s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
}

@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}



.fade5 {
    opacity: 0;
  }

.fade5.view5{
 animation: popup 1s 2.5s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
}

@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}



.fade6 {
    opacity: 0;
  }

.fade6.view6{
 animation: popup 1s 3s cubic-bezier(0.22, 1, 0.36, 1) 1 forwards;
}

@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}






/* --------------------------------------------------------------------------- */

/* ボーダーが緩やかにつく */
.stroke {
  background: #f0f0f0;
  max-width: 400px;
  height: 250px;
  position: relative;
}

.stroke .border {
  content: "";
  position: absolute;
  opacity: 0;
}
.stroke .border.top,
.stroke .border.bottom {
  width: calc(100% - 20px);
}
.stroke .border.top {
  border-top: 3px solid #362ae0;
  right: 0;
  top: 0;
}
.stroke .border.bottom {
  border-bottom: 3px solid #362ae0;
  left: 0;
  bottom: 0;
}

.stroke .border.right,
.stroke .border.left {
  height: calc(100% - 20px);
}
.stroke .border.right {
  border-right: 3px solid #362ae0;
  right: 0;
  top: 0;
}
.stroke .border.left {
  border-left: 3px solid #362ae0;
  left: 0;
  bottom: 0;
}

.stroke.is-animated .border {
  opacity: 1;
}

.stroke.is-animated .border.top,
.stroke.is-animated .border.bottom {
  animation: stroke-width 1.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.stroke.is-animated .border.right,
.stroke.is-animated .border.left {
  animation: stroke-height 1.8s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes stroke-width {
  0% {
    width: 0;
    opacity: 1;
  }
  100% {
    width: calc(100% - 20px);
    opacity: 1;
  }
}

@keyframes stroke-height {
  0% {
    height: 0;
    opacity: 1;
  }
  100% {
    height: calc(100% - 20px);
    opacity: 1;
  }
}

/* 文字が滑らかに表示される */
.smooth {
  clip-path: inset(0 100% 0 0);
  display: inline-block;
  font-size: 36px;
  font-weight: bold;
  transition: 1.4s cubic-bezier(0.37, 0, 0.63, 1);
  transition-property: clip-path;
  line-height: 1;
  height: 40px;
  margin-top: 15px;
}
.smooth.is-animated {
  clip-path: inset(0);
}

/* ふわふわ */
.fuwafuwa {
  animation: fuwafuwa 3s infinite ease-in-out .8s alternate;
  background: url(../img/ico-apple.svg) no-repeat center center / 60px auto;
  display: inline-block;
  transition: 1.5s ease-in-out;
  width: 70px;
  height: 70px;
  margin-top: 15px;
}

@keyframes fuwafuwa {
  0% {
    transform:translate(0, 0) rotate(-7deg);
  }
  50% {
    transform:translate(0, -7px) rotate(0deg);
  }
  100% {
    transform:translate(0, 0) rotate(7deg);
  }
}

/* ゆったりスクロールボタン */

.scroll {
  display: inline-block;
  padding-top: 70px;
  position: relative;
}
.scroll::before {
  animation: scroll 3.5s infinite;
  border: solid #000;
  border-width: 0 0 1px 1px;
  content: "";
  display: inline-block;
  margin: auto;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  transform: rotate(-45deg);
  width: 20px;
  height: 20px;
}
@keyframes scroll {
  0% {
    transform: rotate(-45deg) translate(0, 0);
  }
  80% {
    transform: rotate(-45deg) translate(-30px, 30px);
  }
  0%, 80%, 100% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
}

/* くるくる回りながら出現 */
.kurukuru {
  background: linear-gradient(to right, #362ae0 0%,#3b79cc 50%,#42d3ed 100%);
  width: 50px;
  height: 50px;
  opacity: 0;
  padding-bottom: 40px;
}
.kurukuru.is-animated {
  animation: kurukuru 1.4s ease-out;
  opacity: 1;
}
@keyframes kurukuru {
  0%{
    transform: rotateY(0) translateY(40px);
    opacity: 0;
  }
  100%{
    transform: rotateY(360deg) translateY(0);
    opacity: 1;
  }
}



/*--------------------------------------------------
  メインスタイル開始
--------------------------------------------------*/ 
/*--------------------------------------------------
                全サイズの基盤スタイル
--------------------------------------------------*/

  main { position: relative; z-index: 1; overflow: hidden; }
  .wrap { padding: 0 0%; margin: 0 auto 0; width: 100%; max-width: 1300px; }
  .visual { position: relative; margin: 0 auto 0; width: 100%; max-width: 2000px; height: 150px;
    background-color: #fff; background-repeat: no-repeat; background-position: center bottom; background-size: 100%; }
  .visual img { width: 100%; }
  .visual h1 { padding: 30px 0 0 0; text-align: center; font-size: 40px; font-size: 4.0rem; font-weight: 600; font-family: "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝体", "Yu Mincho", YuMincho, "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; position: relative; z-index: 1; }
  .visual h1 span { display: block; font-size: 30%; color: #e8e3e3; position: absolute; top: 15px; left: 0; right: 0; margin: 0 auto; }

  a.btn { }

  .flex { display: flex; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; justify-content: space-between; align-items: stretch; }

  /* 矢印アイコン */
  .arrow { position: relative; display: inline-block; padding: 0 16px 0 0; vertical-align: middle; text-decoration: none; }
  .arrow::before, .arrow::after {position: absolute;top: 0;bottom: 0;right: 0;margin: auto;content: "";vertical-align: middle;}
  .maru::after { right: 5px; width: 3px; height: 3.2px; border-top: 1px solid #fff; border-right: 1px solid #fff; -webkit-transform: rotate(45deg); transform: rotate(45deg); }
  .maru:hover::after { border-color: #fff; }

  /* font-family */
  .mincho { font-family: "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝体", "Yu Mincho", YuMincho, "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
  .gothic { font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "ＭＳ ゴシック", sans-serif; }

  .disc { list-style: disc; padding: 0 0 0 1.5em; }
  .circle { list-style: circle; padding: 0 0 0 1.5em; }


  /* flex slider */
  .flexslider { border: none!important; margin: 0 auto 0 auto!important; }
  .flexslider ul li { overflow: hidden; }
  .flexslider img { width: 100%; }
  .flex-control-paging li a { width: 30px!important; height: 5px!important; background: rgba(224, 224, 224, 0.9)!important; box-shadow: none!important; border-radius: 20px!important; -webkit-border-radius: 20px!important; }
  .flex-direction-nav a { height: 50px!important; }
  .flex-control-paging li a.flex-active { background: rgba(139, 0, 72, 0.9)!important; }
  .flex-control-nav { display: none; }

.point_tosakichi { position: relative; }
.point_tosakichi::before { content: ''; position: absolute; background: url('svg/chara_tosakichi.svg') no-repeat; background-size: 100%; width: 76px; height: 94px; }
.point_sakiko { position: relative; }
.point_sakiko::before { content: ''; position: absolute; background: url('svg/chara_sakiko.svg') no-repeat; background-size: 100%; width: 82px; height: 103px; transform: scale(-1, 1); }
.point_tosami { position: relative; }
.point_tosami::before { content: ''; position: absolute; background: url('svg/chara_tosami.svg') no-repeat; background-size: 100%; width: 116px; height: 136px; }

.slider_fade { position: relative; padding-bottom: 56.2vw; }
.slider_fade > li { position: absolute; list-style: none; visibility: hidden; animation: anime_slider_fade 12s 0s infinite; }
.slider_fade > li:nth-of-type(2) { animation-delay: 4s; }
.slider_fade > li:nth-of-type(3) { animation-delay: 8s; }
.slider_fade li {
    width: 100%;
    height: 100%;
}
@keyframes anime_slider_fade {
    0% {
        visibility: visible;
        opacity: 0;
    }
    15% {
        opacity: 1;
    }
    33.3% {
        opacity: 1;
    }
    48.3% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}


  /*--------------------------------------------------
  ヘッダー
  --------------------------------------------------*/
header { width: 100%; height: 132px; background: linear-gradient(0deg, rgba(255,255,255,0) 0%, rgb(30 102 233) 100%); position: fixed; top: 0; right: 0; z-index: 2; }
header .wrap { display: flex; align-items: center; padding-top: 30px; position: relative; z-index: 2; }
/*header .headerBg { background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(94,147,239,1) 100%); background-blend-mode: multiply; }*/

.head_logo { width: 220px; }
header nav { width: calc(100% - 220px); }

/*ナビゲーション部分*/
  header .menu { width: 100%; transition: 0.5s ease; }
  header .menu ul { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
header .menu ul li { display: block; border-left: 1px solid #fff; text-decoration: none; line-height: 1; }
header .menu ul li:last-of-type { border-right: 1px solid #fff; }
header .menu ul li a { padding: 0 30px; color: #fff; font-size: 1.6rem; font-weight: 200; }
header .menu ul li a:hover { background-color:rgba(0,0,0,0.5);  }

  header #logo img{ max-width:250px; }
  header .Toggle { display: none; }



  /*--------------------------------------------------
  フッター
  --------------------------------------------------*/
  footer { position: relative; padding: 28px 0 23px; background: #051D65; font-size: 1rem; color: #fff; }
  footer .wrap { display: flex; justify-content: space-between; align-items: center; }
  footer .footer_logo { max-width: 320px; }
  footer .footer_block { display: flex; justify-content: flex-end; flex-wrap: wrap; }
  footer .footer_block ul { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; width: 100%; margin-bottom: 15px; }
  footer .footer_block ul li { display: block; border-left: 1px solid #fff; text-decoration: none; line-height: 1; }
  footer .footer_block ul li:last-of-type { border-right: 1px solid #fff; }
  footer .footer_block ul li a { padding: 0 30px; color: #fff; font-size: 1.6rem; font-weight: 200; }
  footer .footer_block ul li a:hover { background-color:rgba(0,0,0,0.5);  }
  footer .footer_block .tel { display: flex; align-items: baseline; max-width: 387px; border-radius: 50px; border: 1px solid #fff; padding: 5px 50px; }
  footer .footer_block .tel span { margin-right: 1em; font-size: 1.8rem; color: #fff; }
  footer .footer_block .tel i { width: 21px; }
  footer .footer_block .tel em { font-family: Impact, Charcoal; font-size: 2.4rem; color: #fff; }


  /* ページトップ */
.pagetop { position: fixed; bottom: 20px; right: 20px; display: block; z-index: 999; width: 50px; height: 50px; font-weight: bold; text-decoration: none; text-align: center; }
.pagetop:hover { cursor: pointer; opacity: 0.7; }

a.btn--circle {
  width: 60px;
  height: 60px;
  padding: 0;
  background: rgb(255 255 255 / 80%);
  border-radius: 50%;
  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
  box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
}

a.btn--circle i {
  font-size: 150%;
  line-height: 60px;
  -webkit-transition: all .3s;
  transition: all .3s;
  letter-spacing: 0;
}
a.btn--circle:hover i {
  line-height: 55px;
}
    

  /*--------------------------------------------------
  ページの余白設定
  --------------------------------------------------*/
  /* コンテンツとコンテンツの間の余白*/
  section { margin-bottom: 100px; }

  /* 共通部分*/


  /*--------------------------------------------------
  見出しの設定
  --------------------------------------------------*/
  /* ページの見出し*/
  h1 {}
  .ttl_cnt { font-size: 3.6rem; text-align: center; margin: 0 0 40px; font-weight: bold; }
  .ttl_lft_border { font-size: 3.6rem; margin: 0 0 30px; padding-bottom: 15px; border-bottom: 2px solid #FCA001; }
  .ttl_orange { font-family: "Meiryo","メイリオ"; font-size: 2.7rem; font-weight: bold; color: #FF7C0A; }
  .ttl_bl { position: relative; margin-bottom: 20px; padding: 5px 12px; font-size: 1.7rem; font-weight: bold; background: #c2dde9;
background: -moz-linear-gradient(left, #c2dde9 0%, #ebf4f7 100%);
background: -webkit-linear-gradient(left, #c2dde9 0%,#ebf4f7 100%);
background: linear-gradient(to right, #c2dde9 0%,#ebf4f7 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c2dde9', endColorstr='#ebf4f7',GradientType=1 );
 }
  .ttl_bl::after { content: ''; display: block; width: 100%; height: 2px; background: #fff; position: absolute; bottom: 3px; left: 0; }
  .ttl_box { display: flex; align-items: flex-end; }
  .ttl_box .ichigo { width: 30%; }
  .ttl_box .ttl { width: 60%;
    padding-bottom: 75px;
    margin-left: 3%;margin-left: 0;margin-right: 0;}



  /*--------------------------------------------------
  TOP
  --------------------------------------------------*/
#main_visual { background: url(img/header_bg.jpg) no-repeat; background-size: cover; background-position: center; height: 1043px; }
#main_visual .wrap { position: relative; height: inherit; }
#main_visual h2.main_ttl { max-width: 535px; position: absolute; text-align: center; top: 50%; left: 50%; transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%);}
#main_visual .recruit { display: flex; position: absolute; right: 0px; bottom: 50px; }
#main_visual .recruit a { width: 160px; margin-right: 20px; }

#lead { background: url(img/lead_bg.jpg) no-repeat; background-size: 100%; background-position: bottom; height: 1043px; }
#lead .image { max-width: 957px; margin: 0 auto; }

#business {  }
#business .inner { display: flex; justify-content: space-between; align-items: flex-end; }
#business .inner .image { width: 48%; position: relative; }
#business .inner .image .ornament { position: absolute; top: 1.6vw; left: 8.8vw; width: 26vw; }
#business .inner .block { max-width: 664px; width: 48%; margin: 0 auto; }
#business .inner .block .solution { padding: 0 20px; margin-bottom: 50px; }
#business .inner .block p { font-size: 2.5rem; line-height: 2; font-weight: 500; }
#business .awards { background: #FFEAC2; padding: 100px 0 70px; }
#business .awards h3 { width: 88%; margin: 0 auto 40px; }
#business .awards .main_image { max-width: 527px; }
#business .awards .block { max-width: 742px; }
#business .awards .block p { font-size: 2.3rem; line-height: 2; font-weight: 500; }
#business .awards .block .sub_image { display: flex; }
#business .awards .block .sub_image li { margin-right: 10px; }
#message { background: url(img/message_bg.jpg) no-repeat; background-size: auto; background-position: bottom; height: 1330px; }
#message .ttl { margin-bottom: 90px; }
#message .wrap { position: relative; }
#message .wrap .ornament { position: absolute; bottom: -150px; right: -170px; width: 424px; }
#message h3 { max-width: 777px; margin: 0 auto 30px; }
#message p { border-top: 1px solid #707070; padding-top: 50px; max-width: 1100px; margin: 0 auto; text-align: center; font-size: 2.3rem; line-height: 2.8; font-weight: 600; }
#company { background: url(img/company_bg.jpg) no-repeat; background-size: cover; background-position: bottom; height: 1278px; }
#company .ttl { margin-bottom: 200px; }
#company .wrap { max-width: 825px; padding: 60px 75px 70px; background: rgba(255,255,255,0.86); position: relative; }
#company .wrap .ornament { position: absolute; top: -170px; left: -240px; width: 480px; }

#company .wrap dl { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #707070; padding: 20px 0 20px; }
#company .wrap dl:first-of-type { padding-top: 0; }
#company .wrap dl dt { width: 5em; font-size: 1.7rem; }
#company .wrap dl dd { width: calc(100% - 8em); font-size: 1.7rem; }

#recruit { position: relative; margin-bottom: 50px; }
#recruit .ttl { margin-bottom: 210px; }
#recruit .wrap { max-width: 782px; padding-bottom: 150px; text-align: center; position: relative; z-index: 1; }
#recruit h3 { border-bottom: 1px solid #000000; margin-bottom: 30px; padding-bottom: 10px; font-size: 4.7rem; font-weight: bold; line-height: 1.8; text-shadow: 0 0 4px rgb(255 255 255); }
#recruit p { margin-bottom: 60px; font-size: 2.3rem; font-weight: bold; line-height: 2; text-shadow: 0 0 4px rgb(255 255 255); }
#recruit .apply { display: flex; justify-content: space-between; max-width: 450px; margin: 0 auto; }
#recruit .apply a {  }
.recruit_bg1 { position: absolute; top: 0; right: 0; z-index: 0; max-width: 880px; width: 47vw; }
.recruit_bg2 { position: absolute; top: 180px; left: 0; z-index: 0; max-width: 600px; width: 39vw; }
.recruit_bg3 { position: absolute; bottom: 0; left: 0; z-index: 0; max-width: 599px; width: 37vw; }
.recruit_bg4 { position: absolute; bottom: 0; right: 0; z-index: 0; max-width: 587px; width: 37vw; }

.ttl { display: flex; justify-content: end; }
.ttl span { display: block; max-width: 588px; width: 100%; padding: 0 30px; color: #fff; letter-spacing: 8px; font-size: 5.0rem; font-weight: bold; position: relative; z-index: 2; }
.ttl span::before { content: ''; display: block; width: 100%; height: 100%; position: absolute; top: 0; right: 0; background: #063FA2; z-index: -1; }
.ttl span::after { content: ''; display: block; width: 100%; height: 100%; position: absolute; top: -30px; right: -40px; background: #FFF8CB; z-index: -2; }
.ttl_l { justify-content: start; }
.ttl_l span { text-align: right; }
.ttl_l span::before {  }







/*------------------------------------------------------------------------
                                < 1920
------------------------------------------------------------------------*/

@media screen and (max-width: 1920px) {


  #lead { background-size: auto; }




}



/*------------------------------------------------------------------------
                                < 1600
------------------------------------------------------------------------*/

@media screen and (max-width: 1600px) {


    #message .wrap .ornament { right: 0; }



}




/*------------------------------------------------------------------------
                                < 1300
------------------------------------------------------------------------*/

@media screen and (max-width: 1300px) {


    header .wrap { padding: 30px 20px 0; }
    footer .wrap { padding: 0 20px; }
    #company .wrap .ornament { left: 0; }



}





/*------------------------------------------------------------------------
                                < 1100
------------------------------------------------------------------------*/

@media screen and (max-width: 1100px) {


    #lead { height: 100vw; background-size: cover; }
    #lead .image { width: 70%; }

}





/*------------------------------------------------------------------------
                                < 900
------------------------------------------------------------------------*/

@media screen and (max-width: 900px) {

.pagetop { display: none; }
/*トグルボタンのスタイルを指定*/
header .Toggle {
    display: block; width: 42px; height: 42px; cursor: pointer; z-index: 3; right: 15px; top: 30px;
    position: fixed;
}
header .Toggle span {
    display: block; position: absolute; width: 35px; border-bottom: solid 4px #333;
    -webkit-transition: .35s ease-in-out; /*変化の速度を指定*/
    -moz-transition: .35s ease-in-out;    /*変化の速度を指定*/
    transition: .35s ease-in-out;     /*変化の速度を指定*/
}

 /*各ボーダー少しずつずらす*/
header .Toggle span:nth-child(1) { top:5px; }
header .Toggle span:nth-child(2) { top: 18px; }
header .Toggle span:nth-child(3) { top: 32px; }
header .Toggle.active span:nth-child(1) {
    top: 18px;
/* 1番目のspanをマイナス45度に */
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

/* 2番目と3番目のspanを45度に */
header .Toggle.active span:nth-child(2),
header .Toggle.active span:nth-child(3) {
    top: 18px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
}

header .menu {  -webkit-transform: translateX(100%); }
header .Toggle.active span { border-color: #fff; }
header .menu ul li:last-of-type a { border: none; }
header .menu ul li a { display: block; font-size: 2.0rem; margin: 0 auto; padding: 1em 20px; letter-spacing: 3px; text-shadow: none; font-size: 4.5vw; text-align: center; }
header .Toggle.active { /*background-color:#d22a3b;*/ }
header .menu { display: none; }


/*OPEN時の動き*/
header .menu.open { display: block; position: fixed; top: 0; height: 100%; width: 100%; box-shadow: 0px -2px 10px #000; z-index: 2; background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgb(30, 102, 233) 100%);
 -webkit-transform: translateX(0%);
 transform: translateX(0%);/*メニューを元の位置へ戻す*/
}
header .menu.open ul { list-style: none; margin: auto; display: block; padding-top: 22vw; }
header .menu ul li { border: none; border-bottom: 1px solid #fff; }
header .menu ul li:last-of-type { border-right: none; }


header .wrap { display: block; padding: 0; }
header nav { width: 100%; }


.head_logo { width: 40%; margin: 30px auto 0px; }

#main_visual { margin-bottom: 10vw; height: 90vh; background-position: center; }
.iphone #main_visual { height: 100vh; }
#main_visual h2.main_ttl { max-width: max-content; width: 80%; }
#main_visual a.recruit { width: 20vw; bottom: 60px; }

#lead .image { width: 90%; }
#business .inner {  }
#business .inner .block p { font-size: 2.2rem; padding: 0 10px; }
#business .inner .image { width: 70%; }
#business .inner .image .ornament { position: relative; }

#business .inner .block { max-width: max-content; width: calc(100% - 40px); }
#business .inner .block .solution { padding: 0; margin: 5em auto 4em; width: 70%; }
#business .awards .flex { flex-wrap: wrap; }
#business .awards .main_image { width: 80%; margin: 0 auto 20px; order: 2; }
#business .awards .block { max-width: max-content; padding: 0 20px; margin-bottom: 20px; }
#business .awards .block p { font-size: 2.0rem; }
#message { height: auto; padding-bottom: 430px;}
#message .wrap { padding: 0 25px; }
#message .wrap .ornament { bottom: -490px; right: 20%; width: 50%; }
#message p { line-height: 2.1; }
#recruit { padding-bottom: 43vw; }
#recruit .wrap { padding: 0 20px; }
.recruit_bg1 { top: 90px; }



}





/*------------------------------------------------------------------------
                                < 789
------------------------------------------------------------------------*/

@media screen and (max-width: 789px) {


    footer .wrap { flex-wrap: wrap; }
    footer .footer_logo { max-width: max-content; width: 50%; margin: 0 auto 30px; }
    footer .footer_block { flex-wrap: wrap; justify-content: center; }
    footer .footer_block ul { flex-wrap: wrap; justify-content: space-between; }
    footer .footer_block ul li { width: 50%; border: none; margin: 0 0 10px; }
    footer .footer_block ul li:last-of-type { border-right: none; }
    footer .footer_block ul li a { display: block; padding: 10px 0; text-align: center; }



}





/*------------------------------------------------------------------------
                                < 640
------------------------------------------------------------------------*/

@media screen and (max-width: 640px) {


#main_visual .recruit { justify-content: center; width: 100%; }
#main_visual .recruit a { width: 36%; margin: 0 5%; }

  
}






/*------------------------------------------------------------------------
                                < 600
------------------------------------------------------------------------*/

@media screen and (max-width: 600px) {


.ttl span { font-size: 4.4rem; text-align: center; }
#message {  }
#message p { font-size: 2.0rem; line-height: 2.2; }
#business .ttl { margin-bottom: 30px; }
#company .wrap { padding: 30px 20px; }
#company .wrap dl { flex-wrap: wrap; }
#company .wrap dl dt { width: 100%; font-weight: bold; }
#company .wrap dl dd { width: 100%; }
#recruit h3 { line-height: 1.6; font-size: 3.1rem; padding-bottom: 30px; }
#recruit p { font-size: 1.8rem; }
#recruit .apply a { width: 48%; }
#business .inner .block p { font-size: 1.6rem; }
#company .wrap .ornament { width: 80%; }



}





/*------------------------------------------------------------------------
                                < 410
------------------------------------------------------------------------*/

@media screen and (max-width: 410px) {


footer .footer_block .tel { flex-wrap: wrap; justify-content: center; max-width: none; width: 70%; padding: 15px 0 10px 0; border-radius: 15px;}
footer .footer_block .tel span { display: block; width: 100%; margin: 0; text-align: center; line-height: 1; }
#message .wrap .ornament { right: 10%; bottom: -470px; }
#message p { font-size: 1.6rem; }
#business .inner .image .ornament { left: 2.8vw; width: 38vw; }



}


