@charset "UTF-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@100;300;400;500;700;800;900&family=Noto+Sans+JP:wght@100;200;300;400;500;600;700;800;900&display=swap');

/* ==========================================================
jQuery
========================================================== */
@import "../js/slick/slick.css";
@import "../js/slick/slick-theme.css";


@media only screen and (min-width: 0px) {

body{
    width: 100vw;
    max-width: 100vw;
    overflow-x: hidden;
    text-overflow: clip;
    font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", sans-serif;
    letter-spacing: 0.01em;
}
    
header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100vw;
    padding: 18px 20px;
    background: linear-gradient(90deg, rgba(0, 72, 152, 0.75) 0%, rgba(0, 129, 186, 0.75) 85%, rgba(0, 129, 186, 0.75) 100%);
    z-index: 100;
}

header .header-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

header .header-wrap .logo-area a {
    font-size: 0;
}
    
.lnavi {
    position: relative;
    margin: -32px 36px 0;
    text-align: center;
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 1px 1px 5px rgb(0,0,0,0.2);
    z-index: 10;
}

    
.lnavi h2 {
    font-family: "mr-eaves-modern", sans-serif;
    font-weight: 400;
    font-style: italic;
    font-size: 22px;
    line-height: 32px;
    color: rgb(255,255,255);
    background: rgba(0,98,172);
    text-shadow: 0 0 7px rgb(0,0,0,0.7);
}

.lnavi ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px 20px;
    padding: 14px 20px;
}

.lnavi ul li a {
    display: block;
    font-weight: bold;
    font-size: 14px;
    color: #000000;
}
    
.h2_main {
    font-family: "mr-eaves-modern", sans-serif;
    font-weight: 400;
    font-style: italic;
    font-size: 65px;
    color: #0062AC;
    overflow: hidden;
    text-overflow: clip;
}

.h2_main::first-letter {
    color: #0081ba;
}

.h2_sub {
    display: flex;
    align-items: center;
    gap: 1em;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #666666;
    white-space: nowrap;
}

.h2_sub::before {
    display: block;
    content: "";
    width: 37px;
    height: 2px;
    background-color: #004898;
}
    
.h3_01 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    font-family: "mr-eaves-modern", sans-serif;
    font-weight: bold;
    font-style: italic;
    font-size: 24px;
    color: #0062AC;
}

.h3_01::before,
.h3_01::after{
    display: block;
    content: "";
    width: 12px;
    height: 2px;
    background-color: #0062AC;
    transform: skewX(-15deg);
}
    
.h3_02 {
    position: relative;
    padding: 20px 11.25vw;
    font-weight: bold;
    font-size: 22px;
    letter-spacing: 0.04em;
    text-align: center;
}
    
.h3_02::before,
.h3_02::after{
    position: absolute;
    display: block;
    content: "";
    width: 30px;
    height: 30px;
    background-image: url("../images/index_policy_ttl02.webp") , url("../images/index_policy_ttl02.webp");
    background-size: cover;
    background-repeat: no-repeat;
}

.h3_02::before{
    top: 0;
    left: 0;
}

.h3_02::after{
    bottom: 0;
    right: 0;
    transform: rotate(180deg);
}
    
.btn {
    display: inline-block;
    width: fit-content;
    margin: 0 auto;
    box-shadow: 1px 1px 5px rgba(0,72,152,0.6);
}

.btn a {
    display: block;
    padding: 20px 36px;
    font-weight: bold;
    font-size: 18px;
    line-height: 18px;
    color: #0062AC;
    border: 1px solid;
    background: #FFFFFF;
}

.btn a::after {
    display: inline-block;
    margin-left: 0.25em;
    font-family: "Font Awesome 6 Free";
    content: "\f0da";
}
    
section.support{
    background-image: url("../images/footer_contact_bg_sp.webp");
    background-repeat: no-repeat;
    background-size: cover;
}
    
section.support .wrap {
    display: flex;
    flex-direction: column;
    gap: 45px;
    padding: 50px 20px 36px;
    text-align: center;
    color: #ffffff;
}

section.support .wrap h2 {
    font-weight: bold;
    font-size: 26px;
}

section.support .wrap h2 + p {
    line-height: 1.5;
}
    
footer ul.sns {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    padding: 20px;
    background: rgba(255,98,167,0.2);
}

footer ul.sns li a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: nowrap;
    font-weight: bold;
    font-size : 12px;
    color: #0062AC;
}

footer ul.fnavi {
    display: flex;
    align-content: center;
    align-items: center;
    justify-content: center;
    gap: 10px 12px;
    flex-wrap: wrap;
    padding: 30px 20px;
}

footer ul.fnavi li a {
    display: block;
    padding: 4px;
    font-weight: bold;
    font-size : 16px;
    line-height: 1;
    color : #0062AC;
    white-space: nowrap;
}
    
footer .logo-area {
    padding: 20px 20px 40px;
}

footer .logo-area figure img {
    aspect-ratio: 40/9;
    object-fit: contain;
}
    
footer a.copylight {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 14px;
    color: #ffffff;
    height: 32px;
    background: #0062AC;
}


}

@media only screen and (max-width: 768px) {
div.hamburger div#nav_wrap {
    position: fixed;
    top: 80px;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: center;
    gap: 36px;
    width: 100vw;
    height: 100vh;
    padding: 20px;
    background: #ffffff;
    font-weight: bold;
    font-size: 14px;
    line-height: 1.25;
    text-align: center;
    border-top: 1px solid #cce0ee;
}
    
div.hamburger div#nav_wrap.active {
    bottom: 0;
    display: flex!important;
    z-index: 50;
}

div.hamburger div#hamburger {
    position: fixed;
    top: 40px;
    right: 20px;
    transform: translateY(-50%);
    z-index: 200;
    display: block;
    width: 38px;
    height: 27px;
    cursor: pointer;
}

div.hamburger div#hamburger span {
    position: absolute;
    left: 0;
    right: 0;
    display: block;
    content: "";
    width: 38px;
    height: 3px;
    border-radius: 3px;
    background: #ffffff;
    transition: .6s;
}

div.hamburger div#hamburger span:first-of-type {top: 0;transform: none;}
div.hamburger div#hamburger span:nth-of-type(2) {top: 50%;transform: translateY(-50%);}
div.hamburger div#hamburger span:last-of-type {bottom: 0;}
    
div.hamburger div#hamburger span#line1.line_1{
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}
div.hamburger div#hamburger span#line2.line_2{
    opacity: 0;
}
div.hamburger div#hamburger span#line3.line_3{
    top: 50%;
    transform: translateY(-50%) rotate(-45deg);
}
    
div.hamburger div#nav_wrap nav.menu-area {
    width: 100%;
}

div.hamburger div#nav_wrap nav.menu-area ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

div.hamburger div#nav_wrap nav.menu-area ul li {
    width: 100%;
    border-bottom: 1px solid #f2f2f2;
}

div.hamburger div#nav_wrap nav.menu-area ul li a {
    display: block;
    width: 100%;
    line-height: 20px;
    padding: 14px;
}

div.hamburger div#nav_wrap nav.menu-area ul li:first-of-type {
    border-top: 1px solid #f2f2f2;
}

div.hamburger div#nav_wrap button#hamburger_close {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 95px;
    height: 39px;
    margin: 0 auto;
    font-weight: 400;
    background: #f2f2f2;
    border-radius: 30px;
    cursor: pointer;
}
    
div.hamburger div#nav_wrap button#hamburger_close i {
    color: #004898;
    font-size: 20px;
}
div.hamburger div#nav_wrap section.lnavi {margin: 0 20px 8px;}

div.hamburger #nav_wrap {
    display: none;
}

footer ul.sns li a img {
    width: 28px;
    height: auto;
}
    
.sp{display: unset;}
.pc{display: none;}
}

@media only screen and (min-width: 769px) {
#nav_wrap nav.menu-area ul {
    display: flex;
    flex-direction: row;
    gap: min(3.66vw,26px);
}

#nav_wrap nav.menu-area ul li a{
    display: block;
    color: #ffffff;
    font-weight: bold;
    font-size: 14px;
    line-height: 2;
    padding: 0 0.5em;
}
    
div.hamburger div#hamburger{display: none;}
    
div.hamburger #nav_wrap button#hamburger_close {
    display: none;
}
    
.lnavi {
    display: flex;
    margin: -27px auto 0;
    max-width: 740px;
}

.lnavi h2 {
    flex: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 130px;
    min-height: 100%;
}

.lnavi ul {
    flex: 1;
    gap: 12px 24px;
}

.lnavi ul li a {
    font-size : 16px;
}
    
.wrap {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

.h2_main {
    font-size: 100px;
}

.h2_sub {
    font-size: 16px;
}

.h3_01 {
    justify-content: flex-start;
    margin-right: auto;
    padding-bottom: 20px;
    font-size: 26px;
}
 
.h3_02 {
    width: min(580px,50vw);
    margin: 0 auto;
    padding: 20px 5.12vw;
}
    
section.support{
    background-color: #004898;
    background-image: url("../images/footer_contact_bg_pc.webp");
    background-size: auto 100%;
    background-position: left center;
}
    
section.support .wrap {
    align-items: flex-end;
    gap: 26px;
    padding: 60px 20px 50px;
}
    
section.support .wrap h2,
section.support .wrap h2 + p{
    text-shadow: 1px 1px 5px rgba(0,72,152,0.8);
}

section.support .wrap h2{margin-right: 25%;}
    
section.support .wrap h2 + p{margin-right: 10%;}
    
section.support .wrap .btn {margin-right: 0;}

footer ul.sns {
    gap: 30px;
    padding: 13px 20px;
}

footer ul.sns li a {font-size: 16px;}
    
footer .wrap {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    gap: 30px;
    flex-wrap: nowrap;
    max-width: 1080px;
    padding: 0 20px;
}

footer .logo-area {
    padding: 40px 0;
}
    
footer .logo-area address {
    white-space: nowrap;
}

footer .logo-area address a {
    pointer-events: none;
}
    
footer ul.fnavi {
    width: 60%;
    padding: 0;
}
    
.sp{display: none;}
.pc{display: unset;}
}

/*===============================
    common
===============================*/

.br{display: inline-block;}

/* ==========================================================
Fade In
========================================================== */
.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger{
    transform: translateZ(0);
}
/* その場で */
.fadeInTrigger{opacity: 0;}

.fadeIn{
animation-name:fadeInAnime;
animation-duration:3s;
animation-fill-mode:forwards;
}

@keyframes fadeInAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* 下から */
.fadeUpTrigger{opacity: 0;}

.fadeUp{
animation-name:fadeUpAnime;
animation-duration:1.8s;
animation-fill-mode:forwards;
}

@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/* 上から */
.fadeDownTrigger{opacity: 0;}

.fadeDown{
animation-name:fadeDownAnime;
animation-duration:1.8s;
animation-fill-mode:forwards;
}

@keyframes fadeDownAnime{
  from {
    opacity: 0;
  transform: translateY(-100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/* 左から */
.fadeLeftTrigger{opacity: 0;}
.fadeLeft{
animation-name:fadeLeftAnime;
animation-duration:1.8s;
animation-fill-mode:forwards;
}

@keyframes fadeLeftAnime{
  from {
    opacity: 0;
  transform: translateX(-100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}

/* 右から */
.fadeRightTrigger{opacity: 0;}

.fadeRight{
animation-name:fadeRightAnime;
animation-duration:1.8s;
animation-fill-mode:forwards;
}

@keyframes fadeRightAnime{
  from {
    opacity: 0;
  transform: translateX(100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}