@charset "UTF-8";
.mb0 {
  margin-bottom: 0 !important; }

.ml0 {
  margin-left: 0 !important; }

.mr0 {
  margin-right: 0 !important; }

.mt0 {
  margin-top: 0 !important; }

.pb0 {
  padding-bottom: 0 !important; }

.pl0 {
  padding-left: 0 !important; }

.pr0 {
  padding-right: 0 !important; }

.pt0 {
  padding-top: 0 !important; }

.mb0 {
  margin-bottom: 0 !important; }

.ml0 {
  margin-left: 0 !important; }

.mr0 {
  margin-right: 0 !important; }

.mt0 {
  margin-top: 0 !important; }

.pb0 {
  padding-bottom: 0 !important; }

.pl0 {
  padding-left: 0 !important; }

.pr0 {
  padding-right: 0 !important; }

.pt0 {
  padding-top: 0 !important; }

/* ==========================================================================
   Reset
   ========================================================================== */
/* Initialize
   ========================================================================== */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strong, sub, sup, var,
b, u, i,
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, main,
menu, nav, output, ruby, section, summary, input, textarea,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

html {
  font-size: .625em;
  height: 100%;
  overflow-y: scroll; }

body {
  background: -webkit-gradient(linear, left top, right top, from(#dff5f5), color-stop(#f0e9fd), to(#fde3fa));
  background: -webkit-linear-gradient(left, #dff5f5, #f0e9fd, #fde3fa);
  background: linear-gradient(90deg, #dff5f5, #f0e9fd, #fde3fa);
  color: #1f3870;
  font-family: "Noto Sans JP", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: .1em;
  line-height: 1;
  text-align: center;
  -webkit-text-size-adjust: 100%; }

dd,
dt,
td,
th,
li,
p {
  font-size: 1.6em; }

td td,
td th,
td p,
td li,
dd dd,
dd dt,
dd p,
dd li,
li dd,
li dt,
li li,
li p {
  font-size: 1em; }

@media screen and (max-width: 767px) {
  dd,
  dt,
  td,
  th,
  li,
  p {
    font-size: 1.6em; } }

@media screen and (max-width: 320px) {
  dd,
  dt,
  td,
  th,
  li,
  p {
    font-size: 1.4em; } }

ul {
  list-style: none; }

input[type="button"],
input[type="submit"],
input[type="reset"],
a {
  color: #1f3870;
  text-decoration: none; }

@media screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none; }
  a:hover img {
    opacity: .7;
    -webkit-transition: all .5s;
    transition: all .5s; } }

address {
  font-style: normal; }

/* google chrome input button padding */
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="file"]::-webkit-file-upload-button, button {
  padding: 1px 6px; }

input[type="checkbox"] {
  margin: 0; }

img {
  border: 0;
  height: auto;
  max-width: 100%;
  vertical-align: bottom; }

.img-box {
  font-size: 0;
  line-height: 0; }

.wrap {
  margin-left: auto;
  margin-right: auto;
  max-width: 1040px;
  width: 100%;
  position: relative;
  z-index: 2; }
  .wrap.opt-inner {
    max-width: 650px; }
  .wrap.opt-semiwide {
    max-width: 1280px; }
  .wrap.opt-wide {
    max-width: 1400px; }

table {
  border-collapse: collapse;
  width: 100%; }

sup {
  font-size: 10px;
  font-weight: normal;
  vertical-align: top; }

.text-bold,
strong {
  font-weight: bold; }

html {
  overflow-x: hidden; }

body {
  overflow: hidden; }

.text-small {
  font-size: .8em; }

.text-large {
  font-size: 2.4em; }

video {
  outline: none; }

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

■■■ PC SP ■■■■■■■■■■

--------------------------------------------------------- */
@media screen and (min-width: 768px) {
  img.sp,
  br.sp,
  span.sp,
  .sp {
    display: none; }
  br.sp {
    width: 0; }
  .pc {
    display: block; }
  span.pc,
  img.pc,
  br.pc {
    display: inline; } }

@media screen and (max-width: 767px) {
  .sp {
    display: block; }
  span.pc,
  br.pc,
  img.pc,
  .pc {
    display: none; }
  img.sp,
  br.sp,
  span.sp {
    display: inline; } }

.mb0 {
  margin-bottom: 0 !important; }

.ml0 {
  margin-left: 0 !important; }

.mr0 {
  margin-right: 0 !important; }

.mt0 {
  margin-top: 0 !important; }

.pb0 {
  padding-bottom: 0 !important; }

.pl0 {
  padding-left: 0 !important; }

.pr0 {
  padding-right: 0 !important; }

.pt0 {
  padding-top: 0 !important; }

/* ==========================================================================
   Parts module
   ========================================================================== */
/* m-bg
   ========================================================================== */
.m-bg {
  background: -webkit-gradient(linear, left top, right top, from(#dff5f5), color-stop(#f0e9fd), to(#fde3fa));
  background: -webkit-linear-gradient(left, #dff5f5, #f0e9fd, #fde3fa);
  background: linear-gradient(90deg, #dff5f5, #f0e9fd, #fde3fa); }

/* parts
   ========================================================================== */
.text-left {
  text-align: left !important; }

.text-center {
  text-align: center !important; }

.text-right {
  text-align: right !important; }

/* move
   ========================================================================== */
.move-top {
  opacity: 0;
  -webkit-transform: translateY(50px);
      -ms-transform: translateY(50px);
          transform: translateY(50px);
  -webkit-transition: all 1.2s ease -webkit-calc(.1s * var(--t));
  transition: all 1.2s ease calc(.1s * var(--t)); }
  .move-top.is-move {
    opacity: 1;
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0); }
  @media screen and (max-width: 767px) {
    .move-top {
      -webkit-transition-delay: 0s;
              transition-delay: 0s; } }

/* cherry-blossom
   ========================================================================== */
.cherry-blossom {
  width: 100%;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 0; }

.petal {
  position: absolute;
  background: url(../img/icon-cherry_bg.svg) no-repeat 0 0/100% 100%;
  -webkit-animation: animate-petal 10s linear;
          animation: animate-petal 10s linear; }

.petal.is-slow {
  -webkit-animation: animate-petal 15s linear;
          animation: animate-petal 15s linear; }

@-webkit-keyframes animate-petal {
  0% {
    top: 0;
    opacity: 0;
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  10% {
    opacity: 1; }
  90% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 100vh;
    -webkit-transform: rotate(540deg) translateX(-15px);
            transform: rotate(540deg) translateX(-15px); } }

@keyframes animate-petal {
  0% {
    top: 0;
    opacity: 0;
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  10% {
    opacity: 1; }
  90% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 100vh;
    -webkit-transform: rotate(540deg) translateX(-15px);
            transform: rotate(540deg) translateX(-15px); } }

.mb0 {
  margin-bottom: 0 !important; }

.ml0 {
  margin-left: 0 !important; }

.mr0 {
  margin-right: 0 !important; }

.mt0 {
  margin-top: 0 !important; }

.pb0 {
  padding-bottom: 0 !important; }

.pl0 {
  padding-left: 0 !important; }

.pr0 {
  padding-right: 0 !important; }

.pt0 {
  padding-top: 0 !important; }

/* layout-header
   ========================================================================== */
.layout-header {
  padding: 40px;
  width: 100%;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000; }
  .layout-header .logo {
    width: 120px; }
  @media screen and (max-width: 767px) {
    .layout-header {
      padding: 20px; }
      .layout-header .logo {
        width: 60px; } }

/* menu
   ========================================================================== */
.menu {
  background-color: rgba(31, 56, 112, 0);
  cursor: pointer;
  height: 60px;
  overflow: hidden;
  width: 60px;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1000;
  -webkit-transition: background-color .5s ease;
  transition: background-color .5s ease; }
  @media screen and (min-width: 768px) {
    .menu {
      display: none; } }
  .menu > span {
    background-color: #1f3870;
    border-radius: 2px;
    height: 2px;
    width: 30px;
    position: absolute;
    left: 15px;
    -webkit-transition: opacity .3s ease .3s, -webkit-transform .5s ease;
    transition: opacity .3s ease .3s, -webkit-transform .5s ease;
    transition: transform .5s ease, opacity .3s ease .3s;
    transition: transform .5s ease, opacity .3s ease .3s, -webkit-transform .5s ease; }
    .menu > span:nth-child(1) {
      top: 20px; }
    .menu > span:nth-child(2) {
      top: 29px; }
    .menu > span:nth-child(3) {
      top: 38px; }
  .menu::after, .menu::before {
    background-color: #fff;
    border-radius: 2px;
    content: "";
    height: 2px;
    opacity: 0;
    width: 30px;
    position: absolute;
    left: 15px;
    top: 20px;
    -webkit-transition: top .5s ease .1s, opacity .3s ease .1s;
    transition: top .5s ease .1s, opacity .3s ease .1s; }
  .menu::before {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg); }
  .menu::after {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg); }
  .menu.is-active {
    background-color: #1f3870; }
    .menu.is-active > span {
      background-color: #fff;
      opacity: 0; }
      .menu.is-active > span:nth-child(1) {
        opacity: 0;
        -webkit-transform: translateX(-200%);
            -ms-transform: translateX(-200%);
                transform: translateX(-200%); }
      .menu.is-active > span:nth-child(2) {
        -webkit-transform: translateX(-200%);
            -ms-transform: translateX(-200%);
                transform: translateX(-200%);
        -webkit-transition-delay: .1s;
                transition-delay: .1s; }
      .menu.is-active > span:nth-child(3) {
        -webkit-transform: translateX(-200%);
            -ms-transform: translateX(-200%);
                transform: translateX(-200%);
        -webkit-transition-delay: .2s;
                transition-delay: .2s; }
    .menu.is-active::after, .menu.is-active::before {
      opacity: 1;
      top: 29px; }

/* global-navigation
   ========================================================================== */
.global-navigation {
  position: absolute;
  right: 40px;
  top: 30px; }
  .global-navigation_inner {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    .global-navigation_inner > ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .global-navigation_inner > ul > li {
        font-weight: 700;
        line-height: 1.1; }
        .global-navigation_inner > ul > li:first-child {
          display: none; }
        .global-navigation_inner > ul > li + li {
          margin-left: 46px; }
        .global-navigation_inner > ul > li > a {
          text-decoration: none;
          -webkit-transition: all .5s;
          transition: all .5s; }
          @media screen and (min-width: 768px) {
            .global-navigation_inner > ul > li > a:hover {
              opacity: .7; } }
  @media screen and (max-width: 767px) {
    .global-navigation {
      background-color: rgba(255, 255, 255, 0.95);
      height: 0;
      overflow: hidden;
      opacity: 0;
      padding: 0 40px;
      width: 100%;
      position: absolute;
      right: 0;
      top: 60px;
      -webkit-transform: translateY(-20px);
          -ms-transform: translateY(-20px);
              transform: translateY(-20px);
      -webkit-transition: all 0s;
      transition: all 0s;
      z-index: 1000;
      overflow-y: auto; }
      .global-navigation.is-active {
        opacity: 1;
        height: auto;
        padding: 58px 40px;
        -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
                transform: translateY(0);
        -webkit-transition: height 0s, opacity .5s ease .1s, -webkit-transform .5s ease .1s;
        transition: height 0s, opacity .5s ease .1s, -webkit-transform .5s ease .1s;
        transition: height 0s, transform .5s ease .1s, opacity .5s ease .1s;
        transition: height 0s, transform .5s ease .1s, opacity .5s ease .1s, -webkit-transform .5s ease .1s; }
      .global-navigation_inner {
        display: block; }
        .global-navigation_inner > ul {
          border-top: 2px solid #1f3870;
          display: block; }
          .global-navigation_inner > ul > li {
            border-bottom: 2px solid #1f3870; }
            .global-navigation_inner > ul > li:first-child {
              display: block; }
            .global-navigation_inner > ul > li + li {
              margin-left: 0; }
            .global-navigation_inner > ul > li > a {
              display: block;
              padding: 32px 0;
              position: relative; }
              .global-navigation_inner > ul > li > a::before {
                background: url(../img/icon-arrow-rainbow_bg.png) no-repeat 0 0;
                background-size: 100% 100%;
                content: "";
                height: 9px;
                width: 16px;
                position: absolute;
                right: 0;
                top: 50%;
                -webkit-transform: translateY(-50%);
                    -ms-transform: translateY(-50%);
                        transform: translateY(-50%); } }

/* header-contact
   ========================================================================== */
.header-contact {
  margin-left: 42px; }
  .header-contact > a {
    background-color: #1f3870;
    border-radius: 100px;
    color: #fff;
    display: inline-block;
    font-weight: 700;
    min-height: 60px;
    line-height: 1.1;
    padding: 20px 28px;
    -webkit-transition: all .5s;
    transition: all .5s; }
    @media screen and (min-width: 768px) {
      .header-contact > a:hover {
        opacity: .7; } }
  @media screen and (max-width: 767px) {
    .header-contact {
      margin-left: 0;
      margin-top: 40px; }
      .header-contact > a {
        background: -webkit-gradient(linear, left top, right top, from(#26c5c8), color-stop(#aa6bfb), to(#fd5464));
        background: -webkit-linear-gradient(left, #26c5c8, #aa6bfb, #fd5464);
        background: linear-gradient(90deg, #26c5c8, #aa6bfb, #fd5464);
        padding: 23px 0;
        width: 100%; } }

/* section
   ========================================================================== */
.section {
  padding-bottom: 200px;
  padding-top: 100px;
  position: relative; }
  .section::before {
    background: url(../img/icon-accent_bg.png) no-repeat 50% 0;
    background-size: auto 100%;
    content: "";
    height: 60px;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    z-index: 2; }
  @media screen and (max-width: 767px) {
    .section::before {
      background-image: url(../img/icon-accent_bg-sp.png); } }

/* section-title
   ========================================================================== */
.section-title {
  margin-bottom: 78px;
  text-align: center;
  position: relative;
  z-index: 2; }
  .section-title > h3,
  .section-title > h2 {
    color: transparent;
    text-align: center;
    -webkit-transition: color 0s ease .9s;
    transition: color 0s ease .9s; }
    .section-title > h3 > span,
    .section-title > h2 > span {
      display: table;
      font-size: 10.4em;
      font-weight: 700;
      letter-spacing: .2em;
      line-height: 1.1;
      margin-left: auto;
      margin-right: auto;
      position: relative; }
      .section-title > h3 > span::before,
      .section-title > h2 > span::before {
        background: -webkit-gradient(linear, left top, right top, from(#1f3870), to(#1f3870)) no-repeat;
        background: -webkit-linear-gradient(left, #1f3870, #1f3870) no-repeat;
        background: linear-gradient(90deg, #1f3870, #1f3870) no-repeat;
        background-size: 0;
        content: "";
        height: 100%;
        width: 100%;
        position: absolute;
        left: 0;
        top: 0;
        z-index: 0;
        -webkit-transform: scaleX(1);
            -ms-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: top right;
            -ms-transform-origin: top right;
                transform-origin: top right;
        -webkit-transition: background-size 1s ease, -webkit-transform .7s ease .9s;
        transition: background-size 1s ease, -webkit-transform .7s ease .9s;
        transition: background-size 1s ease, transform .7s ease .9s;
        transition: background-size 1s ease, transform .7s ease .9s, -webkit-transform .7s ease .9s; }
      .section-title > h3 > span + span,
      .section-title > h2 > span + span {
        font-size: 2.4rem;
        margin-top: 30px; }
  .section-title.is-move > h3,
  .section-title.is-move > h2 {
    color: #1f3870; }
    .section-title.is-move > h3 > span::before,
    .section-title.is-move > h2 > span::before {
      background-size: 100%;
      -webkit-transform: scaleX(0);
          -ms-transform: scaleX(0);
              transform: scaleX(0);
      -webkit-transform-origin: top right;
          -ms-transform-origin: top right;
              transform-origin: top right; }
  @media screen and (max-width: 767px) {
    .section-title > h3 > span,
    .section-title > h2 > span {
      font-size: 5.2em; }
      .section-title > h3 > span + span,
      .section-title > h2 > span + span {
        margin-top: 40px; } }

/* layout-footer
   ========================================================================== */
.layout-footer {
  background: url(../img/footer_bg.png) 50% 50%;
  padding-bottom: 45px;
  padding-top: 120px; }
  .layout-footer_items {
    margin-bottom: 169px;
    position: relative;
    z-index: 2; }
  .layout-footer_pagetop {
    margin-bottom: 30px;
    position: relative;
    z-index: 2; }
  .layout-footer_copy {
    color: #fff;
    display: block;
    font-size: 1.2em;
    letter-spacing: .1em;
    line-height: 1.1;
    opacity: .5;
    position: relative;
    z-index: 2; }
