@charset "UTF-8";
@import url(../css/reset.css);
html, body {
  width: 100%;
  color: #414141;
  font-size: 16px;
  line-height: 1.6;
  font-family: 游ゴシック体, "Yu Gothic", YuGothic, "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  text-size-adjust: 100%;
  letter-spacing: 0.1em; }

body {
  height: 100%;
  min-height: 100vh;
  position: relative;
  padding-bottom: 120px;
  box-sizing: border-box; }

p, a {
  -webkit-font-smoothing: antialiased; }

a {
  color: #414141;
  text-decoration: none;
  transition: .3s; }

a:hover {
  color: #5a9cd1;
  transition: .3s; }

img {
  width: 100%;
  vertical-align: bottom; }

.l-header {
  background: #fff;
  box-sizing: border-box;
  width: 100%;
  height: 80px;
  color: #414141;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-left: 20px;
  padding-right: 20px;
  left: 0;
  top: 0;
  position: fixed;
  transition: .3s;
  z-index: 2; }
  .l-header.float-active {
    transition: .3s;
    background: rgba(255, 255, 255, 0.9); }
  @media screen and (max-width: 414px) {
    .l-header {
      height: 60px;
      padding-right: 15px;
      padding-left: 15px; } }
  @media screen and (max-width: 414px) {
    .l-header .c-logo {
      width: 70px; } }

.l-footer {
  background: #e0e9f6;
  color: #414141;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
  width: 100%;
  position: absolute;
  /*←絶対位置*/
  bottom: 0;
  /*下に固定*/ }
  @media screen and (max-width: 414px) {
    .l-footer {
      font-size: 12px;
      height: 90px; } }

@media screen and (max-width: 414px) {
  .c-nav {
    display: block;
    position: absolute;
    top: 0;
    right: -100%;
    background: rgba(255, 255, 255, 0.85);
    width: 100%;
    height: 100vh;
    padding-top: 50px;
    transition: .5s; }
    .c-nav.active {
      transition: .5s;
      transform: translateX(-100%);
      z-index: 2; } }

.c-menu {
  display: flex;
  align-items: center;
  font-size: 14px; }
  .c-menu__item {
    margin-right: 20px;
    flex: 1 1 auto;
    margin-left: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
    text-transform: uppercase;
    position: relative;
    overflow: hidden;
    transition: .3s; }
  .c-menu__item:after {
    position: absolute;
    transition: .3s;
    content: '';
    width: 0;
    left: 50%;
    bottom: 0;
    height: 3px;
    background: #5a9cd1; }
  .c-menu__item:hover:after {
    width: 100%;
    left: 0; }
  .c-menu__link {
    -webkit-font-smoothing: initial; }
  @media screen and (max-width: 414px) {
    .c-menu {
      display: block;
      font-size: 24px; }
      .c-menu__item {
        margin-right: initial; }
      .c-menu__link {
        -webkit-font-smoothing: initial;
        display: block;
        padding: 15px;
        text-align: center; } }

.c-menu__trigger {
  display: none;
  transition: all .4s;
  box-sizing: border-box;
  position: relative;
  width: 40px;
  height: 32px;
  z-index: 5; }
  @media screen and (max-width: 414px) {
    .c-menu__trigger {
      display: inline-block; } }
  .c-menu__trigger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: #414141;
    border-radius: 4px; }
    .c-menu__trigger span:nth-of-type(1) {
      top: 0; }
    .c-menu__trigger span:nth-of-type(2) {
      top: 14px; }
    .c-menu__trigger span:nth-of-type(3) {
      bottom: 0; }
  .c-menu__trigger.active span:nth-of-type(1) {
    transform: translateY(12px) rotate(-45deg); }
  .c-menu__trigger.active span:nth-of-type(2) {
    opacity: 0; }
  .c-menu__trigger.active span:nth-of-type(3) {
    transform: translateY(-15px) rotate(45deg); }

.c-hero {
  width: 100%;
  height: 0;
  padding-top: calc(504 / 1826 * 100%);
  /* calc(画像高さ ÷ 画像横幅 × 100%) */
  background: url("../img/main.jpg") center 50px/cover no-repeat;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  font-weight: bold; }
  @media screen and (max-width: 414px) {
    .c-hero {
      padding-top: 0px;
      height: 150px;
      width: 100%;
      background-size: contain; } }
  .c-hero__text {
    font-size: 16px;
    line-height: 30px;
    color: #414141;
    position: absolute;
    top: 20%; }
    @media screen and (max-width: 768px) {
      .c-hero__text {
        font-size: 14px;
        line-height: 30px;
        text-shadow: 1px 1px 0px #fff; } }
    @media screen and (max-width: 414px) {
      .c-hero__text {
        text-align: center;
        font-size: 14px;
        line-height: 30px;
        padding-right: 15px;
        padding-left: 15px;
        top: 20%;
        text-shadow: 1px 1px 0px #fff; }
        .c-hero__text br {
          display: none; } }

.c-container {
  width: 950px;
  margin: 50px auto; }
  @media screen and (max-width: 768px) {
    .c-container {
      width: 95%; } }
  @media screen and (max-width: 414px) {
    .c-container {
      width: 93%;
      margin: 20px auto 10px; } }

.c-tel {
  font-weight: bold;
  padding-right: 10px; }
  @media screen and (max-width: 414px) {
    .c-tel {
      padding-left: 10px; } }

.c-footer__logo {
  width: auto;
  height: auto;
  box-sizing: border-box;
  padding-left: 15px;
  padding-top: 10px; }
  @media screen and (max-width: 414px) {
    .c-footer__logo {
      padding-right: 15px; } }

.c-footer__text {
  padding-left: 15px; }

.c-header {
  margin-top: 80px;
  background: url(../img/header_back.png) repeat-x;
  width: 100%; }
  @media screen and (max-width: 414px) {
    .c-header {
      margin-top: 50px;
      height: 100px; } }
  .c-header img {
    width: auto; }
  .c-header__title {
    display: flex;
    width: 950px;
    margin: 0 auto;
    align-items: center; }
    @media screen and (max-width: 768px) {
      .c-header__title {
        width: 95%; } }
    @media screen and (max-width: 414px) {
      .c-header__title {
        display: inline;
        position: relative; } }
  .c-header__img {
    padding-right: 50px; }
    @media screen and (max-width: 414px) {
      .c-header__img {
        position: absolute;
        top: -23px;
        padding-left: 15px;
        -webkit-filter: drop-shadow(2px 2px 0px white);
        -moz-filter: drop-shadow(2px 2px 0px white);
        -o-filter: drop-shadow(2px 2px 0px white);
        -ms-filter: drop-shadow(2px 2px 0px white);
        filter: drop-shadow(2px 2px 0px white); } }
  .c-header__text {
    padding-left: 50px;
    font-weight: bold; }
    @media screen and (max-width: 414px) {
      .c-header__text {
        padding-left: 15px;
        padding-top: 15px;
        position: absolute; } }

.p-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
  @media screen and (max-width: 414px) {
    .p-top {
      flex-wrap: wrap;
      justify-content: center; } }
  .p-top__box {
    width: 450px;
    height: 195px;
    margin-bottom: 30px;
    position: relative;
    z-index: 1;
    transition: 0.5s; }
    @media screen and (max-width: 768px) {
      .p-top__box {
        width: 350px; } }
    @media screen and (max-width: 414px) {
      .p-top__box {
        width: 100%;
        border-bottom: 1px solid #e0e9f6;
        padding-bottom: 15px; } }
    .p-top__box:hover {
      filter: alpha(opacity=70);
      /* IE 6,7*/
      -ms-filter: "alpha(opacity=70)";
      /* IE 8,9 */
      -moz-opacity: 0.7;
      /* FF , Netscape */
      -khtml-opacity: 0.7;
      /* Safari 1.x */
      opacity: 0.7;
      zoom: 1;
      /*IE*/
      transition: 0.5s; }
    .p-top__box a {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      text-indent: -999px;
      z-index: 2; }
  .p-top__title {
    font-weight: bold;
    font-size: 18px;
    padding-top: 10px; }
  .p-top__text {
    font-size: 14px; }
  .p-top__link {
    text-align: right;
    position: absolute;
    bottom: 0;
    right: 0;
    font-size: 14px; }
    @media screen and (max-width: 414px) {
      .p-top__link {
        position: inherit; } }
  .p-top__whatsnew {
    border-bottom: 3px solid #e0e9f6;
    font-size: 14px;
    margin-bottom: 10px;
    padding-bottom: 10px; }
    .p-top__whatsnew img {
      width: auto;
      padding-right: 20px;
      padding-top: 3px;
      vertical-align: top; }
  .p-top__list {
    margin-bottom: 5px; }
    @media screen and (max-width: 414px) {
      .p-top__list {
        font-size: 12px; } }
  .p-top__date {
    padding-right: 30px; }

.p-about__hero {
  padding-top: calc(1126 / 1826 * 100%);
  /* calc(画像高さ ÷ 画像横幅 × 100%) */
  background: url("../img/about_main.jpg") center 30px/cover no-repeat; }
  @media screen and (max-width: 414px) {
    .p-about__hero {
      background-color: rgba(255, 255, 255, 0.3);
      background-blend-mode: lighten; } }

.p-about__illust {
  width: 85%;
  margin: 0 auto; }
  @media screen and (max-width: 414px) {
    .p-about__illust {
      width: 100%; } }

.p-summary__hero {
  padding-top: calc(1113 / 1823 * 100%);
  /* calc(画像高さ ÷ 画像横幅 × 100%) */
  background: url("../img/summary_main.jpg") center 30px/cover no-repeat; }
  @media screen and (max-width: 414px) {
    .p-summary__hero {
      background-color: rgba(255, 255, 255, 0.3);
      background-blend-mode: lighten; } }

.p-summary__title {
  color: #4d59a1;
  font-weight: bold;
  font-size: 18px;
  padding-bottom: 15px; }

.p-summary__box {
  border: 3px solid #e0e9f6;
  border-radius: 20px;
  padding: 20px 50px; }
  @media screen and (max-width: 414px) {
    .p-summary__box {
      padding: 20px 15px; } }

.p-summary__text {
  font-size: 14px; }

.p-summary__point {
  font-weight: bold; }

.p-summary__maintext {
  line-height: 24px;
  font-size: 14px; }

.p-profile__list {
  overflow: hidden; }
  @media screen and (max-width: 414px) {
    .p-profile__list {
      padding-top: 15px;
      width: 100%; } }
  .p-profile__list dt {
    float: left;
    width: 150px;
    border-top: 2px solid #e0e9f6;
    padding-bottom: 15px;
    padding-top: 15px; }
    @media screen and (max-width: 414px) {
      .p-profile__list dt {
        background: #e0e9f6;
        width: 100%;
        float: none;
        padding-left: 15px;
        padding-top: 10px;
        padding-bottom: 10px;
        font-size: 14px; } }
  .p-profile__list dd {
    float: left;
    width: 800px;
    border-top: 2px solid #e0e9f6;
    padding-bottom: 15px;
    padding-top: 15px; }
    @media screen and (max-width: 768px) {
      .p-profile__list dd {
        width: 570px; } }
    @media screen and (max-width: 414px) {
      .p-profile__list dd {
        width: 100%;
        float: none;
        font-size: 12px;
        border: none; } }
    .p-profile__list dd br.sp {
      display: none; }
      @media screen and (max-width: 414px) {
        .p-profile__list dd br.sp {
          display: block; } }
  .p-profile__list .p-profile__first {
    border-top: none; }

.p-profile__name {
  font-weight: bold; }

.p-profile__name--second {
  padding-top: 20px; }

.p-profile__map {
  position: relative;
  width: 100%;
  padding-top: 50%; }
  @media screen and (max-width: 414px) {
    .p-profile__map {
      padding-top: 75%; } }
  .p-profile__map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

@media screen and (max-width: 414px) {
  .p-solar__headerimg {
    width: 50px; } }

.p-solar__hero {
  padding-top: calc(1113 / 1823 * 100%);
  /* calc(画像高さ ÷ 画像横幅 × 100%) */
  background: url("../img/solar_main.jpg") center 30px/cover no-repeat; }
  @media screen and (max-width: 414px) {
    .p-solar__hero {
      background-color: rgba(255, 255, 255, 0.4);
      background-blend-mode: lighten; } }

.p-solar__herotext {
  text-shadow: 1px 1px 0px #fff;
  top: 20%; }

.p-solar__youtube {
  display: flex;
  align-items: center; }
  .p-solar__youtube img {
    width: auto;
    height: auto; }

.p-solar__link {
  font-weight: bold; }
  .p-solar__link a {
    color: #4d59a1; }
  .p-solar__link a:hover {
    color: #5a9cd1; }

.p-solar__container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
  @media screen and (max-width: 768px) {
    .p-solar__container {
      justify-content: center; } }

.p-solar__box {
  width: 437px; }
  @media screen and (max-width: 414px) {
    .p-solar__box {
      width: 100%; } }

.p-solar__text {
  border-top: 1px solid #414141;
  border-bottom: 1px solid #414141;
  margin-top: 10px;
  margin-bottom: 30px; }

.sp {
  display: none; }
  @media screen and (max-width: 414px) {
    .sp {
      display: inline; } }

@media screen and (max-width: 414px) {
  .pc {
    display: none; } }
