@charset "UTF-8";

/* ==========================================================
 NEXT FUND STYLE
========================================================== */
/*新ブランドカラーを変数化*/
:root {
  --sun: #FFDA1B;
  --water: #447FE0;
  --night: #202226;
  --cloud: #ffffff;
  --ly-600: #AD2929;
  --ly-400: #EE7100;
  --ly-200: #FE9384;
  --ly-50: #FDF3F1;
  --pa-600: #734B15;
  --pa-400: #EE7100;
  --pa-200: #FEC010;
  --pa-50: #FFFBD9;
  --av-600: #025D2C;
  --av-400: #30A143;
  --av-200: #61D45D;
  --av-50: #ECFAEC;
  --pu-600: #303560;
  --pu-400: #3F6ECC;
  --pu-200: #579EF2;
  --pu-50: #DDEFFF;
  --gr-600: #56575B;
  --gr-500: #737378;
  --gr-400: #949598;
  --gr-300: #ACADB0;
  --gr-250: #D0D1D3;
  --gr-200: #DADCDF;
  --gr-150: #E5E6EA;
  --gr-100: #F0F1F5;
  --gr-50: #FAFAFC;
  --sa-600: #EDDFBB;
  --sa-400: #F3EACF;
  --sa-200: #F8F3E1;
  --sa-50: #FBF8EE;
  --noto: "Noto Sans JP", sans-serif;
  --inter: "Inter", sans-serif;
}


/* ==========================================================
 html5 elements
========================================================== */
article, aside, figure, figcaption, footer, header, nav, section, main
{ display: block;}
/* ==========================================================
 reseting
========================================================== */
/*遊ゴシックの調整用*/
@font-face {
  font-family: "Yu Gothic M";
  src: local("Yu Gothic Medium");
}
@font-face {
  font-family: "Yu Gothic M";
  src: local("Yu Gothic Bold");
  font-weight: bold;
}
body {
  font-feature-settings: "palt";
}

body {
  line-height: 1.8em;
  color: #000;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}
body, input, textarea, select, button {
  font-family: "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: normal;
}
/* only IE10-11 */
@media all and (-ms-high-contrast: none) {
  body { line-height: 1.5; }
  body, input, textarea, select, button {
    font-family: Arial, 'メイリオ', Meiryo, MyYuGothic, '游ゴシック体', 'Yu Gothic', YuGothic, -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
  }
}

body, div, pre, p, blockquote, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, th, td, button, figure, figcaption
{ margin: 0; padding: 0;}
input, textarea
{ margin: 0; font-size: 100%;}
input, textarea, select
{ /*-webkit-appearance: none;*/}
button
{ border: none; overflow: visible; background: none; vertical-align: top;  font-size: 100%; color: inherit; cursor: pointer; -webkit-appearance: none;}
label
{ cursor: pointer;}
table
{ border-collapse: collapse; border-spacing: 0; font-size: 100%;}
fieldset, img
{ border: 0;}
img
{ height: auto; vertical-align: top;}
address, caption, code, em, th
{ font-style: normal; font-weight: normal;}
ol, ul
{ list-style: none;}
caption, th
{ text-align: left;}
h1, h2, h3, h4, h5, h6, em
{ font-size: 100%; font-weight: normal;}
a, input
{/* outline: none; -webkit-tap-highlight-color:rgba(0,0,0,0);*/}
sup, sub
{ font-size: 63%;}
sup
{ vertical-align: top;}
sub
{ vertical-align: baseline;}
*
{ -webkit-box-sizing: border-box; box-sizing: border-box;}
/* ==========================================================
 base Link
========================================================== */
a {
  color: var(--pu-600);
  text-decoration: none;
}
a:visited { color: var(--pu-600);}
a:hover {
  color: var(--pu-400);
  /*text-decoration: underline;*/
}

/* ==========================================================
 clearfix
========================================================== */
.clearfix:before, .clearfix:after,
.contents:before, .contents:after
{
  content: "";
  display: table;
}
.clearfix:after,
.contents:after
{
  clear: both;
}
/* For IE 6/7
---------------------------------------------------------- */
.clearfix,
.contents
{
  *zoom: 1;
}
/* ==========================================================
 base style
========================================================== */
html, body {
	width: 100%;
	height: 100%;
}
header, footer, main, article, section { width: 100%;}

/* ==========================================================
 body
========================================================== */
.back {
  background: url(../img/back.png) center center /cover no-repeat fixed;
}
@media screen and (max-width: 768px) {
  .back {
    background: transparent;
  }
  .back::before {
    position: fixed;
    z-index: -1;

    width: 100%;
    height: 100vh;

    content: "";

    background: url(../img/back.png) center center /cover no-repeat;
  }
}
/* ==========================================================
 wrapper
========================================================== */
.wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}
/* ==========================================================
 base
========================================================== */
.header {
  position: absolute;
  top: 0;
  z-index: 998;

  width: 100vw;
  height: 120px;

  background: url(../img/back_white.png)top left repeat-x;
  background-size: 120px 120px;
  transition: transform .2s;
}
.header.is-fixed {
  position: fixed;
  top: -120px;
  transform: translateY(120px);
}
.white {
  width: 100%;
  height: auto;
  padding-bottom: 120px;

  background-color: #fff;
}
.inner {
  position: relative;

  width: 100%;
  max-width: 1280px;
  height: 100vh;
  margin: 0 auto;
  padding: 0 60px;
}
.sect {
  overflow: hidden;

  width: 100%;
  padding: 120px 0 0 0;
  /*height: 100vh;*/

  background: url(../img/back_white2.png) top left repeat-x;
  background-size: 120px 120px;
}
.visible {
  visibility: hidden;

  transition: opacity 1s;

  opacity: 0;
}
.wf-inactive .visible,
.wf-active .visible {
  visibility: visible;

  opacity: 1;
}
.delay {
  transition-delay: 1s;
}
@media screen and (max-width: 768px) {
  .header {
    height: 90px;

    background-size: 90px;
  }
  .header.is-fixed {
    top: -90px;
    transform: translateY(90px);
  }
  .white {
    padding-bottom: 90px;
  }
  .inner {
    padding: 0 15px;
  }
  .sect {
    padding: 90px 0 0 0;

    background-size: 90px;
  }
}
/* ==========================================================
 header
========================================================== */
.header .inner {
  display: flex;

  height: 100%;

  align-items: center;
  justify-content: space-between;
}
.header .logo-h {
  width: 260px;
  height: auto;
}
.header .logo-h > a {
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
}
.header .logo-h img {
  width: 100%;
  max-width: 195px;
  height: auto;
}
@media screen and (max-width: 768px) {
  .header .inner {
    flex-direction: column;
    padding: 10px 0;
  }
  .header .logo-h img {
    max-width: 120px;
  }
}
/*navi------------------------------*/
.header .navi-list {
  display: flex;

  justify-content: flex-start;
}
.header .navi-list li {
  margin-left: 20px;
}
.header .navi-list li a {
  font-family: montserrat, sans-serif;
  font-size: 12px;
  font-weight: 700;
  font-style: normal;
  line-height: 28px;

  display: block;

  padding: 0 20px;

  background-color: rgba(255,255,255,1);
}
.header .navi-list li a:hover {
  background-color: #fff;
}
.header .navi-list li a[href*=entry] {
  line-height: 24px;

  border: solid 2px var(--pu-600);
  background-color: #fff;
}
.header .navi-list li a[href*=entry]:hover {
  color: #fff;
  background-color: var(--pu-400);
}
@media screen and (max-width: 768px) {
  .header .navi-list {
    justify-content: center;
  }
  .header .navi-list li {
    margin: 0 5px;
  }
  .header .navi-list li a {
    font-size: 10px;
    padding: 0 10px;
  }
  .header .navi-list li a .no-sp {
    display: none;
  }
}

/* ==========================================================
 hero
========================================================== */
.sect.hero {
  padding-bottom: 120px;

  background: none;
}
.sect.hero .inner {
  position: relative;

  height: calc(100vh - 240px);
}
.sect.hero .title-set {
  position: absolute;
  top: calc(50% + 60px);
  left: 60px;

  width: auto;
  max-width: 1200px;
  height: auto;

  transform: translateY(-50%);
}
.sect.hero .title {
  font-family: ryo-gothic-plusn, sans-serif;
  font-size: 56px;
  font-weight: 800;
  font-style: normal;
  line-height: 1.2em;

  position: absolute;
  top: 210px;
  left: 0;

  padding-top: 0;

  transform: translateY(-50%);
  letter-spacing: 1px;

  color: #fff;
  text-shadow: 0 0 4px rgba(0,0,0,.4);
}
.sect.hero .title::after {
  display: none;
}
.sect.hero .deco {
  font-family: montserrat, sans-serif;
  font-size: 160px;
  font-weight: 700;
  font-style: normal;
  line-height: .875em;

  white-space: nowrap;

  color: var(--pu-400);
}
.wf-inactive .sect.hero .deco.visible,
.wf-active .sect.hero .deco.visible {
  opacity: .4;
}
.sect.hero .desc {
  font-size: 16px;
  line-height: 2em;

  position: relative;

  display: block;

  width: 100%;
  max-width: 1020px;
  height: auto;
  margin-top: -100px;
  padding: 0 0 0 260px;

  text-align: justify;
  letter-spacing: .1em;

  color: #fff;
  text-shadow: 0 0 4px rgba(0,0,0,.4);
}
.sect.hero .desc.delay {
  transition-delay: 1.4s;
}
.sect.hero .desc a.top {
  font-weight: bold;

  display: block;

  margin-top: 10px;

  color: #fff;
}
.sect.hero .desc a.top::before {
  display: inline-block;

  width: 40px;
  height: 10px;
  margin: 0 5px 5px 10px;

  content: "";
  transform: skewX(-45deg);

  border-bottom: solid 2px #fff;
  border-left: solid 2px #fff;
}
@media screen and (max-width: 768px) {
  .sect.hero {
    padding-bottom: 90px;
  }
  .sect.hero .inner {
    height: auto;
    padding-top: 8vh;
  }
  .sect.hero .title-set {
    position: relative;
    left: 0;

    padding: 0;

    transform: none;
  }
  .sect.hero .title {
    font-size: 7vw;

    top: 24vw;
    left: 0;
  }
  .sect.hero .deco {
    font-size: 17vw;

    white-space: pre-wrap;
    word-break: break-all;
  }
  .sect.hero .desc {
    font-size: 14px;
    line-height: 1.5em;

    position: static;

    width: 100%;
    margin-top: -60px;
    padding-left: 60px;
  }
}
/* ==========================================================
 section
========================================================== */
.sect .inner {
  height: auto;
}
/*title-----------------------------*/
.sect .title {
  font-family: montserrat, sans-serif;
  font-size: 40px;
  font-weight: 700;
  font-style: normal;
  line-height: 1em;

  position: relative;

  display: block;

  padding-top: 40px;

  color: var(--pu-600);
}
.sect .title small {
  font-family: "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 20px;
  font-weight: bold;

  display: block;
}
.sect .title::after {
  position: absolute;
  top: 0;
  left: 0;

  display: block;

  width: 260px;
  height: 0;

  content: "";

  border-bottom: solid 2px var(--pu-400);
}
@media screen and (max-width: 768px) {
  .sect .title {
    font-size: 10vw;

    padding-top: 30px;
  }
  .sect .title::after {
    width: 60px;
  }
  .sect .title small {
    font-size: 5vw;
  }
}
/*desc---------------------------------*/
.sect .desc {
  width: 100%;
  padding: 80px 0 0 260px;
}
.sect .desc-list {
  display: flex;

  width: 100%;
  height: auto;

  flex-wrap: wrap;
}
.sect .desc-list li {
  position: relative;

  width: calc(50% - 20px);
  padding: 0 0 80px 100px;
}
.sect .desc-list li:nth-child(odd) {
  margin-right: 40px;
}
.sect .desc-list .list-icon {
  position: absolute;
  top: 0;
  left: 0;

  display: block;

  width: 80px;
  height: auto;
}
.sect .desc-list .list-title {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5em;

  display: block;

  height: 6em;
  margin-bottom: 16px;

  color: #000;
}
.sect .desc-list .list-title small {
  font-size: 16px;

  display: block;

  color: var(--pu-400);
}
.sect .desc-list .list-comment {
  font-size: 14px;
  line-height: 1.5em;

  position: relative;
}
.sect .desc-list .list-comment::before {
  position: absolute;
  top: 0;
  left: -1em;

  content: "※";
}
@media screen and (max-width: 768px) {
  .sect .desc {
    padding: 30px 0 0 60px;
  }
  .sect .desc-list {
    flex-direction: column;
  }
  .sect .desc-list li {
    width: 100%;
    padding: 0 0 30px 80px;
  }
  .sect .desc-list li:nth-child(odd) {
    margin-right: 0;
  }
  .sect .desc-list .list-icon {
    width: 60px;
  }
  .sect .desc-list .list-title {
    font-size: 18px;

    height: auto;
  }
  .sect .desc-list .list-title small {
    font-size: 14px;
  }
  .sect .desc-list .list-comment {
    font-size: 12px;
  }
}
/* ==========================================================
 support
========================================================== */
.sect.support .desc-list .list-title {
  line-height: 3em;

  height: auto;
  margin-bottom: 0;

  color: var(--pu-400);
}
.sect.support .desc-list .list-comment {
  font-size: 16px;
}
.sect.support .desc-list .list-comment::before {
  display: none;
}
@media screen and (max-width: 768px) {
  .sect.support .desc-list .list-comment {
    font-size: 14px;
  }
}
/* ==========================================================
 portfolio
========================================================== */
.sect.portfolio .desc-list li {
  padding-left: 0;
}
.sect.portfolio .desc-list .list-logo {
  width: 100%;
  height: auto;
  border: 1px solid #ddd;
}
.sect.portfolio .desc-list li > .link {
  display: block;
}
.sect.portfolio .desc-list li > .link:hover .list-logo {
  opacity: .6;
}
.sect.portfolio .desc-list .list-comment {
  font-size: 16px;
}
.sect.portfolio .desc-list .list-comment::before {
  display: none;
}
@media screen and (max-width: 768px) {
  .sect.portfolio .desc-list .list-comment {
    font-size: 14px;
  }
}
/* ==========================================================
 entry
========================================================== */
.sect.entry .white {
  background-color: var(--pu-400);
}
.sect.entry .title {
  color: #fff;
}
.sect.entry .desc {
  display: flex;
}
.entry .entry-comment {
  font-size: 16px;
  line-height: 2em;

  flex: 0 1 240px;

  color: #fff;
}
.entry .entry-form {
  flex: 0 0 540px;

  margin: 0 60px;
}
.entry .form-item {
  display: flex;

  margin-bottom: 20px;
}
.entry .form-label {
  font-size: 16px;
  font-weight: bold;
  line-height: 20px;

  position: relative;

  display: block;

  width: 240px;
  padding: 10px 40px 0 40px;

  color: #fff;
}
.entry .form-label.req::before {
  font-size: 10px;
  font-weight: bold;
  line-height: 20px;

  position: absolute;
  top: 10px;
  left: 0;

  display: block;

  width: 32px;
  height: 20px;

  content: "必須";
  text-align: center;

  color: #fff;
  border-radius: 10px;
  background-color: #d0021b;
}
.entry .form-input {
  font-size: 16px;
  line-height: 1.5em;

  width: 300px;
  padding: 8px;

  color: #fff;
  border: solid 1px #fff;
  background-color: var(--pu-400);
}
.entry .form-input::placeholder {
  color: #e5e5e5;
}
.entry textarea {
  resize: vertical;
  overflow: auto;
}
.entry .form-input[type=checkbox] {
  width: 1px;
  height: 1px;
  padding: 0;
}
.entry .form-input[type=checkbox]:checked {
  opacity: 0;
}
.entry .form-policy {
  font-size: 13px;
  line-height: 20px;

  position: relative;

  display: flex;

  height: 40px;
  padding-left: 50px;

  color: #fff;

  align-items: center;
  background-color: var(--pu-400);
  margin: -1px 0 0 -1px;
}
.entry .form-policy::before {
  position: absolute;
  top: 0;
  left: 0;

  display: block;

  width: 40px;
  height: 40px;
  margin-right: 8px;

  content: "";
  transition: all .3s ease-in-out;

  border: solid 1px #fff;
  background-color: var(--pu-400);
}
.entry .form-input[type=checkbox]:checked + .form-policy::before {
  width: 40px;
  height: 20px;

  transform: rotate(-45deg);

  border-style: none none solid solid;
}
.entry .form-policy a {
  display: inline;

  white-space: nowrap;
  text-decoration: underline;

  color: #fff;
}
.entry .form-policy a::after {
  display: inline-block;

  width: 16px;
  height: 16px;
  margin: 0 10px 0 5px;

  content: "";
  vertical-align: middle;

  background: url(../img/icon_blank_wht.svg) center center no-repeat;
  background-size: 16px 16px;
}
.entry .form-policy a:hover {
  color: #8abce1;
}
.entry .form-button {
  font-size: 18px;
  font-weight: bold;

  display: flex;

  width: 100%;
  height: 64px;
  margin-top: 40px;

  color: var(--pu-400);
  border-radius: 8px;
  background-color: var(--sun);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);

  align-items: center;
  justify-content: center;
}
.entry .form-button::after {
  display: block;

  width: 40px;
  height: 10px;
  margin: 0 0 5px 10px;

  content: "";
  transform: skewX(45deg);

  border-right: solid 2px var(--pu-400);
  border-bottom: solid 2px var(--pu-400);
}
.entry .form-button:hover {
  background-color: var(--cloud);
}
@media screen and (max-width: 1200px) {
  .sect.entry .desc {
    flex-direction: column;
  }
  .entry .entry-comment {
    font-size: 14px;
    line-height: 1.5em;

    flex: none;
  }
  .entry .entry-form {
    flex: none;

    margin: 30px 0 0 0;
  }
  .entry .form-item {
    flex-direction: column;
  }
  .entry .form-label {
    font-size: 14px;

    width: 100%;
    padding: 0 0 10px 40px;
  }
  .entry .form-label.req::before {
    top: 0;
  }
  .entry .form-input {
    width: 100%;
  }
  .entry .form-policy {
    flex-wrap: wrap;
  }
}
/*mail*/
.entry .mail-to,
.entry .mail-body {
  color: #fff;
  border: solid 1px #fff;
  padding: 16px;
  margin-bottom: 8px;
}
.entry .mail-body {
  list-style-type: disc;
  padding-left: 40px;
}
/* ==========================================================
 footer
========================================================== */
.sect.footer .white {
  padding-bottom: 0;
}
.sect.footer .inner {
  height: calc(100vh - 240px);
}
.sect.footer .title img {
  width: 260px;
  height: auto;
}
.sect.footer .desc {
  display: flex;
}
.sect.footer ul.footer-list {
/*  flex: 1;*/
  margin-right: 40px;
}
.sect.footer ul.footer-list:last-of-type {
  margin-right: 0;
}
.sect.footer .icon {
  font-size: 14px;
  line-height: 20px;

  position: relative;

  margin-bottom: 16px;
  padding-left: 24px;
}
.sect.footer .icon::before {
  position: absolute;
  top: 0;
  left: 0;

  display: block;

  width: 20px;
  height: 20px;

  content: "";

  background-repeat: no-repeat;
  background-position: center center;
  background-size: 20px auto;
}
.sect.footer .icon.address::before {
  background-image: url(../img/icon_address.svg);
}
.sect.footer .icon.tel::before {
  background-image: url(../img/icon_tel.svg);
}
.sect.footer .icon.blank::before {
  background-image: url(../img/icon_blank.svg);
  background-size: 16px auto;
}
.sect.footer .copyright {
  font-size: 12px;
  font-weight: bold;

  display: flex;

  width: 100%;
  max-width: 1280px;
  height: 120px;
  margin: 0 auto;
  padding: 60px;

  align-items: center;
  justify-content: flex-end;
}

@media screen and (max-width: 768px) {
  .sect.footer .inner {
    height: auto;
    min-height: calc(100vh - 180px);
  }
  .sect.footer .title img {
    width: 140px;
  }
  .sect.footer .desc {
    flex-direction: column;
  }
  .sect.footer ul.footer-list {
    margin: 0 0 16px 0;
  }
  .sect.footer .icon {
    /*font-size: 12px;*/
    margin-bottom: 8px;
  }
  .sect.footer .copyright {
    height: 90px;
    padding: 0 15px;
  }
}
