﻿@import"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap";

.fade-in {
    opacity: 0;
    transition: opacity .6s ease-in-out
}

.fade-in.is-show {
    opacity: 1
}

.fade-up {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .6s ease-in-out, transform .6s ease-in-out
}

.fade-up.is-show {
    opacity: 1;
    transform: translateY(0)
}

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: rgba(0, 0, 0, 0)
}

body {
    line-height: 1
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block
}

nav ul {
    list-style: none
}

blockquote,
q {
    quotes: none
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: "";
    content: none
}

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: rgba(0, 0, 0, 0)
}

ul {
    list-style: none
}

ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none
}

mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold
}

del {
    text-decoration: line-through
}

abbr[title],
dfn[title] {
    border-bottom: 1px dotted;
    cursor: help
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0
}

input,
select {
    vertical-align: middle
}

body {
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: .02em;
    color: #06225b;
    font-family: "Zen Kaku Gothic New", sans-serif;
    background-image: url(../images/common/body-bg.webp);
    background-repeat: repeat-y;
    background-size: 100% auto;
    background-position: top center
}

@media only screen and (max-width: 650px) {
    body {
        font-size: min(3.8461538462vw, 15px)
    }
}

body.is-active {
    overflow: hidden
}

.wrapper {
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column
}

main {
    flex: 1;
    display: flex;
    flex-direction: column
}

a {
    transition: .3s opacity
}

@media(hover) {
    a:hover {
        opacity: .7
    }
}

@media only screen and (max-width: 650px) {
    .md-none {
        display: none
    }
}

.md-show {
    display: none
}

@media only screen and (max-width: 650px) {
    .md-show {
        display: block
    }
}

.main-wrap {
    display: flex;
    align-items: flex-start
}

.main-wrap * {
    box-sizing: border-box
}

.main-wrap__nav {
    width: 21.2%;
    min-width: 15.9375rem;
    position: sticky;
    top: 0;
    z-index: 10
}

@media only screen and (max-width: 1000px) {
    .main-wrap__nav {
        display: none
    }
}

.main-wrap__contents {
    flex: 1;
    padding: 0 1.875rem;
    overflow: hidden;
    border-left: 0.0625rem solid #e4e6e6
}

@media only screen and (max-width: 1000px) {
    .main-wrap__contents {
        padding: 0 1.25rem;
        border-left: none
    }
}

@media only screen and (max-width: 650px) {
    .main-wrap__contents {
        padding: 0
    }
}

.home .main-wrap__contents {
    padding: 0
}

.co-text {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.875;
    letter-spacing: 0
}

@media only screen and (max-width: 650px) {
    .co-text {
        font-size: 0.875rem;
        line-height: 1.6428571429
    }
}

.text-center {
    text-align: center
}

@media only screen and (max-width: 650px) {
    .text-left-sp {
        text-align: left
    }
}

.dot-line {
    position: relative
}

.dot-line::after {
    position: absolute;
    background: radial-gradient(circle farthest-side, #8b8c8c, #8b8c8c 30%, transparent 30%, transparent);
    background-size: 0.3125rem 0.3125rem;
    background-repeat: repeat-x;
    content: "";
    display: inline-block;
    height: 0.625rem;
    width: 100%;
    bottom: -0.5rem;
    left: 50%;
    transform: translateX(-50%)
}

#header {
    background: #333;
    height: 60px
}

#headerInside {
    max-width: 1024px;
    height: 60px;
    margin: 0 auto
}

#headerInside h1,
#headerInside p#siteID,
#headerInside .headerLogo {
    float: left
}

#headerMenu {
    margin-left: 383px
}

#headerMenu ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 60px
}

#headerMenu ul li a {
    color: #fff;
    text-decoration: none;
    font-size: 78%
}

#headerMenu ul li a:hover {
    color: #fc9600
}

#siteSearch {
    width: 175px
}

#english #siteSearch {
    float: right
}

#headerInside table {
    border-collapse: collapse;
    margin: 0;
    border: none;
    height: 25px
}

#headerInside tr,
#headerInside td {
    margin: 0;
    padding: 0;
    height: 25px;
    line-height: .9;
    border: none
}

.gsib_a {
    margin-left: 10px
}

#toggle {
    display: none
}

@media screen and (max-width: 1000px) {
    #header {
        height: auto
    }

    #headerInside {
        padding: 10px;
        height: auto
    }

    #headerInside h1,
    #headerInside p#siteID,
    #headerInside .headerLogo {
        float: none;
        width: auto;
        text-align: left
    }

    #headerInside h1 img,
    #headerInside p#siteID img,
    #headerInside .headerLogo img {
        height: 40px;
        width: auto
    }

    #toggle {
        display: block;
        position: absolute;
        top: 19px;
        right: 15px
    }

    .menu-trigger,
    .menu-trigger span {
        display: inline-block;
        transition: all .4s;
        box-sizing: border-box
    }

    .menu-trigger {
        position: relative;
        width: 30px;
        height: 20px;
        overflow: hidden
    }

    .menu-trigger span {
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #fff;
        border-radius: 2px
    }

    .menu-trigger span:nth-of-type(1) {
        top: 0
    }

    .menu-trigger span:nth-of-type(2) {
        top: 9px
    }

    .menu-trigger span:nth-of-type(3) {
        bottom: 0
    }

    .menu-trigger.motion span:nth-of-type(1) {
        -webkit-transform: translateY(10px) rotate(-315deg);
        transform: translateY(10px) rotate(-315deg)
    }

    .menu-trigger.motion span:nth-of-type(2) {
        opacity: 0
    }

    .menu-trigger.motion span:nth-of-type(3) {
        -webkit-transform: translateY(-10px) rotate(315deg);
        transform: translateY(-10px) rotate(315deg)
    }

    #headerMenu ul {
        display: none;
        width: 100%;
        max-width: 100%;
        position: absolute;
        top: 55px;
        left: 0;
        z-index: 9999;
        height: auto
    }

    #headerMenu ul li {
        display: block;
        width: 100%;
        height: auto;
        margin: 0;
        padding: 0
    }

    #headerMenu ul li a {
        display: block;
        padding: 16px 0 15px 20px;
        background: rgba(236, 236, 236, .9607843137);
        color: #333;
        border-bottom: 1px solid #ddd;
        text-decoration: none;
        text-align: left;
        height: auto;
        line-height: 1.4;
        font-size: 1rem;
        font-weight: normal
    }

    #headerMenu ul li#hMenu6 {
        background: rgba(236, 236, 236, .9607843137);
        padding: 16px 20px;
        box-sizing: border-box
    }

    #siteSearch {
        width: auto
    }
}

#toggle button {
    background: none;
    border: none
}

.gsc-cursor-box {
    text-align: center
}

.gsc-wrapper {
    margin-top: 30px
}

.gsc-input input.gsc-input {
    height: 22px;
    padding: 1px 2px
}

.gsc-clear-button div.gsc-clear-button {
    margin-left: 0;
    height: 26px;
    line-height: 26px
}

form.gsc-search-box table.gsc-search-box td.gsc-input {
    padding-right: 8px
}

.cse .gsc-control-cse,
.gsc-control-cse {
    border: none !important;
    background: none !important
}

.gsc-control-cse,
.gsc-control-cse-ja {
    padding: 0 !important
}

form.gsc-search-box table.gsc-search-box td.gsc-input {
    padding-right: 0 !important
}

input.gsc-search-button {
    margin-left: 0 !important
}

.cse .gsc-search-button input.gsc-search-button-v2,
input.gsc-search-button-v2 {
    margin: 0 !important
}

input.gsc-search-button,
input.gsc-search-button:hover,
input.gsc-search-button:focus {
    border-color: #999 !important;
    background-color: #999 !important
}

input.gsc-input,
.gsc-input-box,
.gsc-input-box-hover,
.gsc-input-box-focus {
    border-color: #666 !important
}

.cse .gsc-search-button input.gsc-search-button-v2,
input.gsc-search-button-v2 {
    padding: 6px 16px !important
}

.gsc-thumbnail-inside {
    text-align: left
}

.footer .copy {
    font-size: 12px;
    color: #fff;
    text-align: center;
    padding: 11px 0;
    background: #333;
    position: relative;
    z-index: 2
}

.side-nav {
    padding: 1.875rem 1.875rem
}

.side-nav__logo img {
    max-width: 15.229375rem;
    width: 100%;
    height: auto
}

.side-nav__body {
    margin-top: 1.25rem
}

.side-nav__list a {
    display: block;
    text-decoration: none;
    color: #06225b;
    font-size: 1rem;
    font-weight: bold;
    padding: 0.25rem 0 0.25rem 0.9375rem;
    position: relative
}

.side-nav__list a::before {
    position: absolute;
    content: "";
    display: inline-block;
    width: 0.3125rem;
    height: 0.3125rem;
    border-radius: 50%;
    background-color: #1eeadc;
    left: 0.1875rem;
    top: 50%;
    transform: translateY(-50%)
}

.side-nav__entry {
    margin-top: 5.9375rem
}

.side-nav__entry a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(180deg, #f7a702, #f35900);
    border-radius: 0.375rem;
    text-align: center;
    font-size: 0.5rem;
    color: #fff;
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: bold;
    box-shadow: 0 0.3125rem 0.25rem rgba(0, 0, 0, .15);
    padding: 1.5rem 0.625rem
}

.side-nav__entry a img {
    width: 2.125rem;
    height: auto;
    aspect-ratio: 1/1
}

.main-text {
    border-bottom: 0.0625rem solid #e4e6e6
}

@media only screen and (max-width: 1000px) {
    .main-text {
        display: none
    }
}

.gnavi__fonts {
    padding: 0 1.25rem 0 1.875rem;
    display: flex;
    align-items: center;
    column-gap: 5.25rem
}

@media only screen and (max-width: 650px) {
    .gnavi__fonts {
        margin-right: 0;
        margin: 0;
        padding: 0 0 0 2.4375rem
    }
}

.gnavi__fonts .text {
    font-size: 0.875rem;
    white-space: nowrap
}

.gnavi__fonts__body {
    display: flex;
    column-gap: 0.625rem;
    flex-shrink: 0;
    align-items: center
}

@media only screen and (max-width: 1000px) {
    .gnavi__fonts__body {
        flex-direction: row-reverse
    }
}

.gnavi__fonts__btns {
    display: flex;
    align-items: center;
    border-radius: 3px;
    overflow: hidden
}

.gnavi__fonts__btns li {
    padding: 0 .5em;
    height: 2em;
    font-size: 0.875rem;
    font-weight: 500;
    display: flex;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
    background: #e9eef6;
    cursor: pointer
}

@media only screen and (max-width: 1000px) {
    .gnavi__fonts__btns li {
        font-size: 0.625rem
    }
}

html:not([lang=ja]):not([lang=auto]) .gnavi__fonts__btns li {
    font-size: 0;
    height: 1.75rem
}

html:not([lang=ja]):not([lang=auto]) .gnavi__fonts__btns li::before {
    font-size: 0.875rem;
    height: 100%;
    padding: 0 .5em
}

html:not([lang=ja]):not([lang=auto]) .gnavi__fonts__btns li.small::before {
    content: "S"
}

html:not([lang=ja]):not([lang=auto]) .gnavi__fonts__btns li.middle::before {
    content: "M"
}

html:not([lang=ja]):not([lang=auto]) .gnavi__fonts__btns li.large::before {
    content: "L"
}

.gnavi__fonts__btns li.current {
    color: #fff;
    background: #06225b;
    pointer-events: none
}

.gnavi__fonts-text {
    font-size: 12px;
    color: #06225b;
    font-weight: 500
}

@media only screen and (max-width: 1000px) {
    .gnavi__fonts-text {
        font-size: 10px
    }
}

.gnavi__fonts__text p {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #06225b;
    padding: 1.0625rem 0
}

.co-footer {
    padding: 7.875rem 0 4.125rem;
    border-top: 0.0625rem solid #e4e6e6
}

@media only screen and (max-width: 650px) {
    .co-footer {
        border-top: none;
        padding: 3.125rem 0 0.9375rem 0
    }
}

.co-footer__inner {
    padding: 0 1.5625rem
}

@media only screen and (max-width: 650px) {
    .co-footer__inner {
        padding: 0 1.25rem
    }
}

.co-footer__image {
    max-width: 38.821875rem;
    width: 100%;
    margin: 0 auto
}

@media only screen and (max-width: 650px) {
    .co-footer__image {
        max-width: 11.059375rem
    }
}

.co-footer__image img {
    width: 100%;
    height: auto
}

.co-footer__nav {
    margin-top: 3.5rem
}

@media only screen and (max-width: 650px) {
    .co-footer__nav {
        display: none
    }
}

.co-footer__list {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 0.9375rem;
    column-gap: 1.875rem
}

.co-footer__item a {
    padding-left: 1.125rem;
    display: block;
    text-decoration: none;
    color: #06225b;
    font-size: 1rem;
    font-weight: bold;
    position: relative
}

.co-footer__item a::before {
    position: absolute;
    content: "・";
    display: inline-block;
    font-size: 1.875rem;
    line-height: 1;
    color: #1eeadc;
    left: -0.5625rem
}

.co-footer__contact {
    max-width: 57.5rem;
    width: 100%;
    margin: 4.875rem auto 0;
    border: 0.0625rem solid #06225b;
    border-radius: 0.375rem;
    padding: 3.5rem 1.25rem 2.875rem;
    box-sizing: border-box
}

@media only screen and (max-width: 650px) {
    .co-footer__contact {
        display: none
    }
}

.co-footer__contact__lead {
    max-width: 11.5rem;
    width: 100%;
    margin: 0 auto;
    background-color: #06225b;
    line-height: 1;
    color: #fff;
    font-size: 1.25rem;
    font-weight: bold;
    text-align: center;
    padding: 0.625rem;
    border-radius: 0.375rem
}

.co-footer__text {
    margin: 1rem 0 0 0;
    font-size: 1.125rem;
    line-height: 1.6666666667;
    font-weight: 400;
    text-align: center
}

.co-footer__info {
    font-size: 1.125rem;
    font-weight: 400;
    text-align: center
}

.co-footer__info img {
    display: inline-block;
    margin-bottom: -0.125rem
}

.co-footer__info a {
    text-decoration: none;
    color: #06225b
}

.co-footer__copyright {
    display: block;
    text-align: center;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1;
    padding-top: 3.75rem
}

@media only screen and (max-width: 650px) {
    .co-footer__copyright {
        font-size: 0.5625rem;
        padding-top: 2.8125rem
    }
}

.page-top {
    position: sticky;
    bottom: 1.25rem;
    right: 1.125rem;
    display: none;
    z-index: 5
}

@media only screen and (max-width: 650px) {
    .page-top {
        bottom: -1.25rem
    }
}

.page-top a {
    display: block;
    width: 5.3125rem;
    height: 5.3125rem;
    aspect-ratio: 1/1;
    position: absolute;
    bottom: 1.25rem;
    right: 1.125rem;
    z-index: 5
}

@media only screen and (max-width: 650px) {
    .page-top a {
        width: 2.3125rem;
        height: 2.3125rem;
        bottom: 2.125rem
    }
}

.page-top img {
    display: block;
    width: 100%;
    height: auto
}

.sub-fv {
    border-bottom: 0.0625rem solid #06225b;
    margin-bottom: 4.5rem;
    position: relative
}

@media only screen and (max-width: 650px) {
    .sub-fv {
        margin-bottom: 2rem
    }
}

.sub-fv::before,
.sub-fv::after {
    position: absolute;
    content: "";
    display: inline-block;
    width: 0.125rem;
    height: 0.9375rem;
    background-color: #06225b;
    top: 0.75rem;
    transform: scaleX(0.5)
}

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

    .sub-fv::before,
    .sub-fv::after {
        height: 0.8125rem;
        top: 0.5625rem
    }
}

.sub-fv::before {
    left: 0
}

.sub-fv::after {
    right: 0
}

.sub-fv__en {
    font-size: 0.875rem;
    font-weight: 600;
    align-items: center;
    display: flex;
    font-family: "Oswald", sans-serif;
    letter-spacing: 0
}

@media only screen and (max-width: 650px) {
    .sub-fv__en {
        font-size: 0.625rem
    }
}

.sub-fv__en::before,
.sub-fv__en::after {
    background-color: #06225b;
    content: "";
    flex-grow: 1;
    height: 0.0625rem
}

.sub-fv__en::before {
    margin-right: 0.625rem
}

@media only screen and (max-width: 650px) {
    .sub-fv__en::before {
        margin-right: 0.4375rem
    }
}

.sub-fv__en::after {
    margin-left: 0.625rem
}

@media only screen and (max-width: 650px) {
    .sub-fv__en::after {
        margin-left: 0.4375rem
    }
}

.sub-fv__title {
    margin-top: 3.125rem;
    padding: 0 0 4.375rem;
    position: relative
}

@media only screen and (max-width: 650px) {
    .sub-fv__title {
        margin-top: 2rem;
        padding-bottom: 2.125rem
    }
}

.sub-fv__title::before,
.sub-fv__title::after {
    position: absolute;
    content: "";
    display: inline-block;
    width: 0.125rem;
    height: 0.9375rem;
    background-color: #06225b;
    bottom: 0;
    transform: scaleX(0.5)
}

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

    .sub-fv__title::before,
    .sub-fv__title::after {
        height: 0.8125rem
    }
}

.sub-fv__title::before {
    left: 0
}

.sub-fv__title::after {
    right: 0
}

.sub-fv__title .sub-fv__title__main {
    text-align: center;
    font-size: 3.125rem;
    font-weight: bold;
    line-height: 1.6
}

@media only screen and (max-width: 650px) {
    .sub-fv__title .sub-fv__title__main {
        font-size: 1.5rem;
        line-height: 1.3
    }
}

.sub-fv__title .sub-fv__sub {
    margin-top: 0.125rem;
    font-size: 1.25rem;
    font-weight: bold;
    text-align: center
}

@media only screen and (max-width: 650px) {
    .sub-fv__title .sub-fv__sub {
        font-size: 0.875rem;
        margin-top: 0.5rem
    }
}

.drawer {
    display: none;
    height: 3.4375rem
}

@media only screen and (max-width: 1000px) {
    .drawer {
        display: block
    }
}

.drawer__inner {
    display: flex;
    height: inherit;
    padding: 0.3125rem 0 0 0.75rem
}

.drawer__logo {
    height: inherit
}

.drawer__logo-link {
    height: inherit;
    display: flex;
    align-items: center;
    justify-content: center
}

.drawer__logo-link img {
    max-width: 13.24625rem;
    width: 100%;
    height: auto
}

.drawer__hamburger__wrap.is-active {
    position: fixed;
    right: 0
}

.drawer__hamburger__wrap {
    display: none
}

@media only screen and (max-width: 1000px) {
    .drawer__hamburger__wrap {
        display: block;
        position: sticky;
        top: 0;
        z-index: 11
    }
}

.drawer__hamburger {
    height: 3.1875rem;
    width: 3.1875rem;
    background-color: #1e32dc;
    position: absolute;
    right: 0;
    cursor: pointer;
    border-radius: 0 0 0 0.5rem
}

.drawer__hamburger span {
    width: 1.0625rem;
    height: 0.125rem;
    background-color: #fff;
    position: absolute;
    left: 50%;
    transform: translateX(-50%) scaleY(0.5);
    transition: .3s top, .3s transform
}

.drawer__hamburger span:nth-child(1) {
    top: 1.125rem
}

.drawer__hamburger span:nth-child(2) {
    top: 1.5625rem;
    transition: .3s opacity
}

.drawer__hamburger span:nth-child(3) {
    top: 2rem
}

.drawer__hamburger.is-active span:nth-child(1) {
    top: 50%;
    transform: translate(-50%, -50%) rotate(45deg) scaleY(0.5)
}

.drawer__hamburger.is-active span:nth-child(2) {
    opacity: 0
}

.drawer__hamburger.is-active span:nth-child(3) {
    top: 50%;
    transform: translate(-50%, -50%) rotate(-45deg) scaleY(0.5)
}

.drawer__box {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100dvh;
    background-color: #fafaf4;
    z-index: 10;
    overflow: auto;
    display: none
}

.drawer__box-inner {
    max-width: 37.5rem;
    width: 100%;
    margin: 0 auto;
    padding: 1.25rem;
    box-sizing: border-box
}

.drawer__box-logo {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.drawer__box-logo a {
    max-width: 7.36875rem;
    width: 100%;
    flex-shrink: 0
}

.drawer__box-logo img {
    display: block;
    width: 100%;
    height: 213px;
}

.drawer__box-logo-link {
    display: block
}

.drawer__box-contents {
    margin-top: 1.4375rem
}

.drawer__box-item {
    border-top: 0.0625rem solid #edefe7
}

.drawer__box-item:last-child {
    border-bottom: 0.0625rem solid #edefe7
}

.drawer__box-item a {
    text-decoration: none;
    display: block;
    font-size: 0.8125rem;
    font-weight: bold;
    color: #06225b;
    display: block;
    padding: 0.40625rem 0.625rem 0.40625rem 0.9375rem;
    position: relative
}

.drawer__box-item a::before {
    position: absolute;
    content: "・";
    display: inline-block;
    font-size: 1.75rem;
    left: -0.6875rem;
    top: 50%;
    transform: translateY(-50%);
    line-height: 1;
    color: #1eeadc
}

.drawer__box-item a::after {
    position: absolute;
    content: "";
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background-image: url(../images/common/icon-arrow-gray.svg);
    width: 0.2rem;
    height: 0.3625rem;
    right: 0.3125rem;
    top: 50%;
    transform: translateY(-50%)
}

.drawer__box-btn {
    margin-top: 1.25rem
}

.drawer__box-btn a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(180deg, #f7a702, #f35900);
    border-radius: 0.325rem;
    text-align: center;
    font-size: 0.5rem;
    color: #fff;
    text-decoration: none;
    font-size: 0.9375rem;
    font-weight: bold;
    box-shadow: 0 0.3125rem 0.25rem rgba(0, 0, 0, .15);
    padding: 0.6875rem 0.625rem
}

.drawer__box-btn a img {
    width: 2.125rem;
    height: auto;
    aspect-ratio: 1/1
}

.drawer__box-news:nth-child(1) {
    background-color: #1e32dc
}

.drawer__box-news:nth-child(1) img {
    width: 1.125rem;
    height: 1.078125rem;
    margin-right: 0.5rem
}

.drawer__box-news:nth-child(2) {
    background-color: #06225b
}

.drawer__box-news:nth-child(2) img {
    width: 1rem;
    height: 0.8rem;
    margin-right: 0.5625rem
}

.drawer__box-btm {
    margin-top: 1.25rem
}

.drawer__box-contact {
    font-size: 0.6875rem;
    letter-spacing: 0;
    color: #06225b;
    text-align: center
}

.drawer__box-contact span {
    font-size: 0.75rem;
    font-weight: bold
}

.drawer__box-address,
.drawer__box-email {
    text-decoration: none;
    display: block;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.6666666667;
    letter-spacing: .025em;
    color: #06225b;
    text-align: center
}

.drawer__box-address {
    margin-top: 0rem
}

.section__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 0 60px
}

@media only screen and (max-width: 650px) {
    .section__title {
        font-size: min(3.5897435897vw, 14px);
        margin: 0 0 30px
    }
}

.section__title::before {
    content: attr(data-title);
    font-size: 36px;
    font-weight: 500;
    margin: 0 0 10px
}

@media only screen and (max-width: 650px) {
    .section__title::before {
        font-size: min(8.2051282051vw, 32px);
        margin: 0 0 5px
    }
}

.top-inner {
    max-width: 63.4375rem;
    width: 100%;
    margin: 0 auto;
    padding: 0 1.5625rem
}

@media only screen and (max-width: 650px) {
    .top-inner {
        max-width: none;
        padding: 0 1.25rem
    }
}

.top-title {
    font-size: 4.375rem;
    font-weight: 500;
    font-family: "Oswald", sans-serif;
    color: #06225b;
    text-align: center;
    padding-bottom: 2.4375rem;
    line-height: 1;
    position: relative;
    margin-bottom: 1.3125rem;
    overflow-wrap: anywhere;
    word-break: normal;
    line-break: strict
}

@media only screen and (max-width: 650px) {
    .top-title {
        font-size: 2.5rem;
        padding-bottom: 1.25rem;
        margin-bottom: 0.5625rem
    }
}

.top-title::after {
    position: absolute;
    content: "‥‥";
    display: inline-block;
    font-size: 0.75rem;
    color: #06225b;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%)
}

@media only screen and (max-width: 650px) {
    .top-title::after {
        font-size: 0.625rem;
        content: "･･･"
    }
}

.top-lead {
    font-size: 1.75rem;
    font-weight: bold;
    line-height: 1.1785714286;
    margin-bottom: 1.25rem;
    text-align: center
}

@media only screen and (max-width: 650px) {
    .top-lead {
        font-size: 1.25rem;
        line-height: 1.5;
        margin-bottom: 0.625rem
    }
}

.co-btn {
    margin-top: 3.75rem
}

@media only screen and (max-width: 650px) {
    .co-btn {
        margin-top: 0.875rem
    }
}

.co-btn a {
    display: block;
    max-width: 16.875rem;
    width: 100%;
    margin: 0 auto;
    background-color: #06225b;
    text-decoration: none;
    color: #fff;
    border-radius: 3.125rem;
    text-align: center;
    font-size: 1rem;
    font-weight: bold;
    line-height: 1;
    padding: 1.6875rem 0.625rem;
    position: relative
}

@media only screen and (max-width: 650px) {
    .co-btn a {
        max-width: 17.5rem;
        font-size: 0.875rem;
        padding: 1.125rem 0.3125rem
    }
}

.co-btn a::after {
    position: absolute;
    content: "";
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background-image: url(../images/common/icon-arrow-white.svg);
    width: 0.45rem;
    height: 0.8125rem;
    top: 50%;
    right: 1.5rem;
    transform: translateY(-50%)
}

@media only screen and (max-width: 650px) {
    .co-btn a::after {
        width: 0.325rem;
        height: 0.59375rem;
        right: 1.25rem
    }
}

@media only screen and (max-width: 650px) {
    body.home .drawer {
        display: none
    }
}

.text-link {
    text-decoration: none;
    color: #06225b
}

.fv__inner {
    position: relative
}

.fv__slide {
    opacity: 0;
    transition: opacity .3s linear
}

.fv__slide.slick-initialized {
    opacity: 1
}

.fv__slide__item a {
    display: block;
    text-decoration: none
}

.fv__slide__item img {
    width: 100%;
    height: auto;
    aspect-ratio: 1149/573;
    object-fit: cover;
    display: block
}

@media only screen and (max-width: 650px) {
    .fv__slide__item img {
        aspect-ratio: 320/460
    }
}

.fv__contents {
    position: absolute;
    left: 5.8125rem;
    top: 49%;
    transform: translateY(-50%)
}

@media only screen and (max-width: 900px) {
    .fv__contents {
        left: 2.6875rem
    }
}

@media only screen and (max-width: 650px) {
    .fv__contents {
        display: flex;
        flex-direction: row-reverse;
        transform: none;
        top: auto;
        left: auto;
        bottom: 1.4375rem;
        right: 1.25rem
    }
}

.fv__title {
    font-size: 3.5625rem;
    font-weight: bold;
    line-height: 1.4035087719;
    color: #fff;
    text-shadow: 0.4375rem 0.4375rem 0.3125rem rgba(13, 3, 84, .45)
}

@media only screen and (max-width: 650px) {
    .fv__title {
        font-size: 1.5625rem;
        text-shadow: 0.125rem 0.125rem 0.1875rem rgba(13, 3, 84, .45);
        writing-mode: vertical-rl;
        line-height: 1.4
    }
}

.fv__text {
    font-size: 1.3125rem;
    font-weight: 500;
    color: #fff;
    margin: 1rem 0 0 0;
    text-shadow: 0.4375rem 0.4375rem 0.3125rem rgba(13, 3, 84, .45)
}

@media only screen and (max-width: 650px) {
    .fv__text {
        font-size: 0.75rem;
        text-shadow: 0.125rem 0.125rem 0.1875rem rgba(13, 3, 84, .45);
        writing-mode: vertical-rl;
        margin: 0 0.4375rem 0 0;
        letter-spacing: 0
    }
}

.fv__logo {
    display: none
}

@media only screen and (max-width: 650px) {
    .fv__logo {
        display: block;
        position: absolute;
        top: 1.25rem;
        left: 1.25rem
    }
}

.fv__logo img {
    max-width: 9.85rem;
    width: 100%;
    height: auto
}

@keyframes infinity-scroll {
    from {
        transform: translateX(0)
    }

    to {
        transform: translateX(-100%)
    }
}

.fv__float__text {
    margin-top: 1.875rem
}

@media only screen and (max-width: 650px) {
    .fv__float__text {
        margin-top: 0.9375rem
    }
}

.fv__float__text__wrap {
    display: flex;
    overflow: hidden
}

.fv__float__list {
    display: flex;
    padding: 0;
    animation: infinity-scroll 100s infinite linear .5s both
}

.fv__float__item {
    margin-right: 1.25rem
}

@media only screen and (max-width: 650px) {
    .fv__float__item {
        margin-right: 0.625rem
    }
}

@media only screen and (max-width: 650px) {
    .fv__float__item img {
        width: 58.645625rem;
        height: auto
    }
}

.fv .co-slide-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 3.125rem;
    height: 3.125rem;
    cursor: pointer;
    z-index: 2
}

.fv .co-slide-arrow::after {
    position: absolute;
    content: "";
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background-image: url(../images/common/icon-arrow-white.svg);
    width: 0.625rem;
    aspect-ratio: 10.8/19.5;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

@media only screen and (max-width: 650px) {
    .fv .co-slide-arrow {
        display: none !important
    }
}

.fv .co-prev-arrow {
    left: 0
}

.fv .co-prev-arrow::after {
    transform: translate(-50%, -50%) scale(-1, 1)
}

.fv .co-next-arrow {
    right: 0
}

.fv .slick-dots {
    bottom: 1.875rem;
    left: 0;
    right: 0;
    width: 100%;
    position: absolute;
    z-index: 2
}

@media only screen and (max-width: 650px) {
    .fv .slick-dots {
        bottom: 1.0625rem
    }
}

.fv .slick-dots li {
    margin: 0 0.1875rem
}

@media only screen and (max-width: 650px) {
    .fv .slick-dots li {
        margin: 0 0.0625rem
    }
}

.fv .slick-dots li button {
    padding: 0
}

.fv .slick-dots li button:before {
    font-family: serif;
    color: #fff;
    opacity: 1;
    font-size: 3.125rem;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

.fv .slick-dots li.slick-active button:before {
    color: #00b7cc;
    opacity: 1
}

.fv .slick-dotted.slick-slider {
    margin-bottom: 0
}

.top-mission {
    margin-top: 10.0625rem
}

@media only screen and (max-width: 650px) {
    .top-mission {
        margin-top: 2.25rem
    }
}

.top-mission__contents {
    display: flex;
    column-gap: 3.125rem
}

@media only screen and (max-width: 650px) {
    .top-mission__contents {
        flex-direction: column
    }
}

.top-mission__left {
    flex: 1
}

@media only screen and (max-width: 650px) {
    .top-mission__left {
        display: contents
    }
}

@media only screen and (max-width: 650px) {
    .top-mission__left .top-mission__btn {
        order: 3;
        margin-top: 1rem
    }
}

.top-mission__left .top-mission__btn a {
    margin: 0 5.0625rem 0 auto
}

@media only screen and (max-width: 650px) {
    .top-mission__left .top-mission__btn a {
        margin: 0 auto
    }
}

@media only screen and (max-width: 650px) {
    .top-mission__left__wrap {
        order: 1
    }
}

.top-mission__lead {
    text-align: left
}

@media only screen and (max-width: 650px) {
    .top-mission__lead {
        text-align: center
    }
}

.top-mission__right {
    max-width: 13.5rem;
    width: 100%;
    flex-shrink: 0
}

@media only screen and (max-width: 650px) {
    .top-mission__right {
        order: 2;
        max-width: none;
        margin-top: 0.9375rem
    }
}

.top-mission__right span {
    display: block;
    text-align: center;
    font-size: 0.75rem;
    margin-top: 0;
    font-weight: 500
}

@media only screen and (max-width: 650px) {
    .top-mission__right span {
        font-size: 0.625rem;
        margin-top: 0.25rem
    }
}

@media only screen and (max-width: 650px) {
    .top-mission__img {
        display: flex;
        justify-content: center
    }
}

.top-mission__img img {
    width: 100%;
    height: auto;
    display: block
}

@media only screen and (max-width: 650px) {
    .top-mission__img img {
        max-width: 11.5rem
    }
}

.top-mission__info {
    margin: 1.25rem 0 0 0;
    font-size: 0.875rem;
    line-height: 1.4285714286;
    text-align: center;
    font-weight: 500
}

@media only screen and (max-width: 650px) {
    .top-mission__info {
        margin-top: 0.625rem;
        font-size: 0.75rem;
        line-height: 1.5
    }
}

.top-mission__name {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 0.625rem;
    font-size: 1.5rem;
    font-weight: 500;
    margin: 0.5rem 0;
    line-height: 1
}

@media only screen and (max-width: 650px) {
    .top-mission__name {
        font-size: 1.5rem;
        column-gap: 0.625rem;
        margin-top: 0;
        line-height: 1.2
    }
}

.top-mission__name span {
    font-size: 0.875rem
}

@media only screen and (max-width: 650px) {
    .top-mission__name span {
        font-size: 0.875rem
    }
}

.top-benefits {
    padding: 3.375rem 0
}

@media only screen and (max-width: 650px) {
    .top-benefits {
        padding: 0.8125rem 0 1.25rem
    }
}

.top-benefits .slick-list {
    overflow: unset;
    clip-path: inset(0% -50vw 0% 0%)
}

@media only screen and (max-width: 650px) {
    .top-benefits .slick-list {
        clip-path: none;
        overflow: hidden
    }
}

.top-benefits .slick-track {
    display: flex
}

.top-benefits .slick-slide {
    height: auto !important
}

@media only screen and (max-width: 650px) {
    .top-benefits__title {
        line-height: 1.1
    }
}

@media only screen and (max-width: 650px) {
    .top-benefits__contents p.co-text.text-center {
        text-align: left
    }
}

.top-benefits__body {
    margin-top: 2.25rem
}

@media only screen and (max-width: 650px) {
    .top-benefits__body {
        margin: 0.625rem -0.9375rem
    }
}

.top-benefits__slide__item {
    padding: 0.875rem 1.4375rem 1.25rem;
    border-radius: 0.375rem;
    background-color: #fff;
    border: 0.0625rem solid #efefef;
    margin-right: 1.875rem;
    max-width: 22.625rem;
    width: 100%;
    flex-shrink: 0
}

@media only screen and (max-width: 650px) {
    .top-benefits__slide__item {
        padding: 1rem 1.4375rem;
        margin: 0 0.9375rem;
        max-width: none
    }
}

.top-benefits__slide__item:last-child .top-benefits__detail {
    margin-top: 0.375rem
}

.top-benefits__text {
    display: flex;
    align-items: center;
    column-gap: 0.6875rem;
    font-size: 1.25rem;
    font-weight: bold;
    line-height: 1.4;
    min-height: 3.5625rem
}

@media only screen and (max-width: 650px) {
    .top-benefits__text {
        font-size: 1.125rem;
        line-height: 1.4444444444;
        min-height: initial
    }
}

.top-benefits__text span {
    width: 2.3125rem;
    flex-shrink: 0;
    aspect-ratio: 1/1;
    background-color: #1e32dc;
    border-radius: 0.375rem;
    font-size: 1.25rem;
    font-weight: 500;
    font-family: "Oswald", sans-serif;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1
}

.top-benefits__detail {
    margin-top: 0.375rem;
    font-weight: 500;
    line-height: 1.625
}

@media only screen and (max-width: 650px) {
    .top-benefits__detail {
        line-height: 1.6428571429
    }
}

.top-benefits__arrow {
    display: flex;
    align-items: center;
    column-gap: 0.3125rem;
    margin-top: 1rem
}

@media only screen and (max-width: 650px) {
    .top-benefits__arrow {
        justify-content: center;
        margin-top: 0.9375rem
    }
}

.top-benefits__arrow .co-slide-arrow {
    position: relative;
    width: 1.625rem;
    aspect-ratio: 1/1;
    cursor: pointer
}

.top-benefits__arrow .co-slide-arrow::after {
    position: absolute;
    content: "";
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background-image: url(../images/common/icon-arrow-navy.svg);
    width: 100%;
    aspect-ratio: 1/1;
    inset: 0
}

.top-benefits__arrow .co-next-arrow::after {
    transform: scale(-1, 1)
}

.top-benefits__btn {
    margin-top: 1.125rem
}

@media only screen and (max-width: 650px) {
    .top-benefits__btn {
        margin-top: 1rem
    }
}

.top-news {
    padding: 3.4375rem 0 8.75rem
}

@media only screen and (max-width: 650px) {
    .top-news {
        padding: 1.25rem 0 0
    }
}

.top-news__contents {
    border: 0.0625rem solid #06225b;
    border-radius: 0.375rem;
    padding: 4.0625rem 4.6875rem 4.6875rem
}

@media only screen and (max-width: 1100px) {
    .top-news__contents {
        padding: 4.0625rem 1.875rem 4.6875rem
    }
}

@media only screen and (max-width: 650px) {
    .top-news__contents {
        padding: 2.0625rem 0 2.5rem;
        border-radius: 0;
        border-left: none;
        border-right: none
    }
}

.top-news__heading {
    display: flex;
    align-items: center;
    column-gap: 1.125rem
}

@media only screen and (max-width: 650px) {
    .top-news__heading {
        flex-direction: column;
        align-items: center;
        row-gap: 0.5rem
    }
}

.top-news__title {
    padding-bottom: 0;
    margin-bottom: 0;
    font-size: 3.5rem
}

@media only screen and (max-width: 650px) {
    .top-news__title {
        font-size: 2.625rem
    }
}

.top-news__title::after {
    content: none
}

.top-benefits__title__ja {
    font-size: 1.25rem;
    font-weight: bold
}

@media only screen and (max-width: 650px) {
    .top-benefits__title__ja {
        font-size: 1.125rem
    }
}

.top-news__list {
    margin-top: 1.5625rem
}

@media only screen and (max-width: 650px) {
    .top-news__list {
        margin-top: 0
    }
}

.top-news__item .top-news__link {
    display: flex;
    column-gap: 2.0625rem;
    text-decoration: none;
    color: #06225b;
    padding: 1.875rem 3.125rem 1.875rem 0;
    position: relative
}

@media only screen and (max-width: 650px) {
    .top-news__item .top-news__link {
        flex-direction: column;
        padding: 0.75rem 0
    }
}

.top-news__item .top-news__link::after {
    position: absolute;
    content: "";
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background-image: url(../images/common/icon-arrow-navy.svg);
    right: 0;
    top: 50%;
    transform: translateY(-50%) scale(-1, 1);
    width: 1.3125rem;
    aspect-ratio: 1/1
}

@media only screen and (max-width: 650px) {
    .top-news__item .top-news__link::after {
        content: none
    }
}

.top-news__item time {
    font-size: 0.875rem;
    font-weight: 400
}

@media only screen and (max-width: 650px) {
    .top-news__item time {
        font-size: 0.75rem
    }
}

.top-news__item p {
    font-size: 1rem;
    font-weight: 500;
    flex: 1
}

@media only screen and (max-width: 650px) {
    .top-news__item p {
        font-size: 0.875rem
    }
}

.top-news__item p span {
    text-decoration: underline;
    text-underline-offset: 0.125rem;
    text-decoration-thickness: 0.0625rem
}

.top-news__item:not(:last-child) {
    border-bottom: 0.0625rem solid #8b8c8c
}

@media only screen and (max-width: 650px) {
    .top-news__item:last-child {
        border-bottom: 0.0625rem solid #8b8c8c
    }
}

.top-news__btn {
    margin-top: 1.75rem
}

@media only screen and (max-width: 650px) {
    .top-news__btn {
        margin-top: 1.4375rem
    }
}

.top-overview {
    padding: 6.125rem 0 3.125rem
}

@media only screen and (max-width: 650px) {
    .top-overview {
        padding: 2.5rem 0 1.25rem
    }
}

.top-overview__lead {
    margin-bottom: 2.5rem
}

@media only screen and (max-width: 650px) {
    .top-overview__lead {
        margin-bottom: 0
    }
}

.top-overview__image {
    display: flex;
    justify-content: center
}

@media only screen and (max-width: 650px) {
    .top-overview__image {
        margin-top: 1.0625rem
    }
}

.top-overview__image img {
    max-width: 54.4375rem;
    width: 100%;
    display: block;
    height: auto
}

@media only screen and (max-width: 650px) {
    .top-overview__image img {
        max-width: 14.56125rem
    }
}

.top-overview__lead2 {
    margin-top: 3.3125rem;
    text-align: center;
    padding: 0.0625rem 0 0.4375rem;
    font-size: 1.75rem;
    font-weight: bold
}

@media only screen and (max-width: 650px) {
    .top-overview__lead2 {
        margin-top: 2.1875rem;
        font-size: 1.25rem
    }
}

.top-overview__lead2::before {
    position: absolute;
    background: radial-gradient(circle farthest-side, #8b8c8c, #8b8c8c 30%, transparent 30%, transparent);
    background-size: 0.3125rem 0.3125rem;
    background-repeat: repeat-x;
    content: "";
    display: inline-block;
    height: 0.625rem;
    width: 100%;
    top: -0.5rem;
    left: 50%;
    transform: translateX(-50%)
}

.top-overview__contents {
    background-color: #fff;
    border-radius: 0.9375rem;
    border: 0.0625rem solid #efefef;
    padding: 6.5rem 2.9375rem 7.1875rem
}

@media only screen and (max-width: 650px) {
    .top-overview__contents {
        padding: 2.25rem 1.125rem 1.5rem
    }
}

.top-overview__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 1.8125rem;
    margin-top: 0.9375rem
}

@media only screen and (max-width: 650px) {
    .top-overview__list {
        flex-direction: column;
        margin-top: 0
    }
}

.top-overview__item {
    width: calc(50% - 1.0625rem);
    display: flex;
    align-items: center;
    column-gap: 0.5rem;
    padding: 0.875rem 0
}

@media only screen and (max-width: 650px) {
    .top-overview__item {
        width: 100%;
        border-bottom: 0.0625rem solid #dcdddd;
        padding: 0.875rem 0
    }
}

.top-overview__item span {
    width: 2.25rem;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background-color: #1e32dc;
    color: #fff;
    font-size: 1.125rem;
    font-weight: bold;
    line-height: 1;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center
}

.top-overview__item p {
    font-size: 1.3125rem;
    font-weight: bold
}

@media only screen and (max-width: 650px) {
    .top-overview__item p {
        font-size: 1rem;
        line-height: 1.375
    }
}

.top-overview__item:nth-child(3),
.top-overview__item:nth-child(4) {
    border-top: 0.0625rem solid #dcdddd;
    border-bottom: 0.0625rem solid #dcdddd
}

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

    .top-overview__item:nth-child(3),
    .top-overview__item:nth-child(4) {
        border-top: 0
    }
}

.top-overview__btn {
    margin-top: 2.5rem
}

@media only screen and (max-width: 650px) {
    .top-overview__btn {
        margin-top: 1.5rem
    }
}

body:not(.home) .main-contents {
    padding: 3.75rem 0 8.75rem
}

@media only screen and (max-width: 650px) {
    body:not(.home) .main-contents {
        padding: 1.5rem 0 2.5rem
    }
}

@media only screen and (max-width: 650px) {
    body:not(.home) .co-footer {
        border-top: 0.0625rem solid #e4e6e6
    }
}

.sub-inner {
    max-width: 63.4375rem;
    width: 100%;
    margin: 0 auto;
    padding: 0 1.5625rem;
    box-sizing: border-box
}

@media only screen and (max-width: 1100px) {
    .sub-inner {
        padding: 0
    }
}

@media only screen and (max-width: 650px) {
    .sub-inner {
        padding: 0 1.25rem
    }
}

.sub-title {
    margin-bottom: 3.6875rem
}

@media only screen and (max-width: 650px) {
    .sub-title {
        margin-bottom: 1.4375rem
    }
}

.sub-title .sub-title__main {
    font-size: 2.4375rem;
    font-weight: bold;
    line-height: 1.2;
    text-align: center
}

@media only screen and (max-width: 650px) {
    .sub-title .sub-title__main {
        font-size: 1.25rem;
        line-height: 1.2
    }
}

.sub-title .sub-title__sub {
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.2;
    margin: 0.9375rem 0 0 0;
    text-align: center
}

@media only screen and (max-width: 650px) {
    .sub-title .sub-title__sub {
        font-size: 0.875rem;
        line-height: 1.2;
        margin-top: 0.3125rem
    }
}

.sec-title {
    text-align: center;
    font-size: 2rem;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 1.625rem
}

@media only screen and (max-width: 650px) {
    .sec-title {
        font-size: 1.125rem;
        line-height: 1.6666666667;
        margin-bottom: 1.25rem
    }
}

.sub-contents {
    background-color: #fff;
    border-radius: 0.9375rem;
    border: 0.0625rem solid #efefef;
    padding: 2.1875rem 3.75rem 3.75rem
}

@media only screen and (max-width: 650px) {
    .sub-contents {
        padding: 1.5625rem
    }
}

.sub-contents+.sub-contents {
    margin-top: 3.75rem
}

@media only screen and (max-width: 650px) {
    .sub-contents+.sub-contents {
        margin-top: 1.25rem
    }
}

.sec-padding {
    padding: 2.25rem 2.71875rem 0
}

@media only screen and (max-width: 1100px) {
    .sec-padding {
        padding: 0
    }
}

.purpose__img {
    max-width: 60.3125rem;
    width: 100%;
    margin: 0 auto
}

@media only screen and (max-width: 650px) {
    .purpose__img {
        max-width: 17.40625rem
    }
}

.purpose__img img {
    width: 100%;
    height: auto;
    display: block
}

.purpose__body {
    margin-top: 0.78125rem
}

@media only screen and (max-width: 650px) {
    .purpose__body {
        margin-top: 0
    }
}

.purpose__item {
    padding: 1.84375rem 0
}

.purpose__item .purpose__lead {
    font-size: 1.375rem;
    font-weight: bold;
    line-height: 1.6363636364
}

@media only screen and (max-width: 650px) {
    .purpose__item .purpose__lead {
        font-size: 1rem;
        margin-bottom: 0.375rem
    }
}

.purpose__item:not(:last-child) {
    border-bottom: 0.09375rem dotted #8b8c8c
}

.purpose__document {
    margin-top: 3.125rem;
    display: flex;
    flex-direction: column;
    row-gap: 2.0625rem
}

@media only screen and (max-width: 650px) {
    .purpose__document {
        margin-top: 0;
        row-gap: 1.875rem
    }
}

.purpose__document__box {
    max-width: 40.34375rem;
    width: 100%;
    margin: 0 auto;
    padding: 1.375rem;
    border: 0.0625rem solid #06225b;
    border-radius: 0.375rem;
    display: flex;
    column-gap: 1.75rem
}

@media only screen and (max-width: 650px) {
    .purpose__document__box {
        max-width: 17.5rem;
        flex-direction: column;
        row-gap: 0.75rem;
        padding: 1.375rem 1.5625rem 0.625rem
    }
}

.purpose__document__img {
    max-width: 8rem;
    width: 100%;
    flex-shrink: 0
}

@media only screen and (max-width: 650px) {
    .purpose__document__img {
        margin: 0 auto
    }
}

.purpose__document__img img {
    display: block;
    width: 100%;
    height: auto
}

.purpose__document__right {
    flex: 1;
    margin-top: 0.4375rem
}

@media only screen and (max-width: 650px) {
    .purpose__document__right {
        margin-top: 0
    }
}

.purpose__document__right span {
    display: inline-block;
    font-size: 0.875rem;
    font-weight: 400
}

@media only screen and (max-width: 650px) {
    .purpose__document__right span {
        font-size: 0.75rem
    }
}

.purpose__document__text {
    font-size: 1.125rem;
    font-weight: bold;
    line-height: 1.5555555556
}

@media only screen and (max-width: 650px) {
    .purpose__document__text {
        font-size: 1rem;
        line-height: 1.5;
        margin-bottom: 0.1875rem
    }
}

.purpose__document__btn {
    display: flex;
    align-items: flex-end;
    column-gap: 0.5rem;
    margin-top: 0.875rem
}

@media only screen and (max-width: 650px) {
    .purpose__document__btn {
        margin-top: 0.875rem;
        flex-direction: column;
        align-items: center;
        row-gap: 0.8125rem
    }
}

.purpose__document__btn a {
    max-width: 15.375rem;
    width: 100%;
    flex-shrink: 0;
    background-color: #06225b;
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 0.5625rem;
    line-height: 1;
    padding: 1rem 0.625rem;
    border-radius: 3.125rem
}

@media only screen and (max-width: 650px) {
    .purpose__document__btn a {
        font-size: 0.875rem;
        column-gap: 0.375rem;
        padding: 0.84375rem 0.3125rem
    }
}

.purpose__document__btn a img {
    display: block;
    width: 1.6875rem;
    height: auto
}

@media only screen and (max-width: 650px) {
    .purpose__document__btn a img {
        width: 1.48125rem
    }
}

.works {
    padding-top: 1.75rem
}

@media only screen and (max-width: 650px) {
    .works {
        padding-top: 0
    }
}

@media only screen and (max-width: 650px) {
    .works__contents .text-center {
        text-align: left
    }
}

@media only screen and (max-width: 650px) {
    .works__contents.sec1 {
        padding: 21px 25px 25px 25px
    }
}

@media only screen and (max-width: 650px) {
    .works__contents .sec-title {
        margin-bottom: 0.625rem
    }
}

.works__image {
    margin: 2.25rem auto 1.9375rem;
    max-width: 47.3125rem;
    width: 100%
}

@media only screen and (max-width: 650px) {
    .works__image {
        max-width: 14.375rem;
        margin: 1.5625rem auto 1rem
    }
}

.works__image img {
    width: 100%;
    height: auto
}

.overview__contents__img {
    width: calc(100% + 5.5rem + 7.5rem);
    margin: 0 -6.5rem
}

@media only screen and (max-width: 650px) {
    .overview__contents__img {
        max-width: 14.55625rem;
        width: 100%;
        margin: 0 auto
    }
}

.overview__contents__img img {
    width: 100%;
    height: auto
}

.overview__list {
    margin-top: 2.125rem;
    padding: 0 2.125rem
}

@media only screen and (max-width: 1100px) {
    .overview__list {
        padding: 0
    }
}

@media only screen and (max-width: 650px) {
    .overview__list {
        margin-top: -0.1875rem
    }
}

.overview__list+p.co-text {
    padding: 0 2.125rem;
    margin-top: 0.75rem
}

@media only screen and (max-width: 1100px) {
    .overview__list+p.co-text {
        padding: 0
    }
}

@media only screen and (max-width: 650px) {
    .overview__list+p.co-text {
        margin-top: 1.1875rem
    }
}

.overview__item {
    display: flex;
    align-items: center;
    column-gap: 0.8125rem;
    padding: 1.125rem 0
}

@media only screen and (max-width: 650px) {
    .overview__item {
        padding: 1.0625rem 0
    }
}

.overview__item span {
    font-size: 3.75rem;
    line-height: 1;
    color: #1e32dc;
    font-family: "Oswald", sans-serif
}

@media only screen and (max-width: 650px) {
    .overview__item span {
        font-size: 2.125rem;
        font-weight: 400
    }
}

.overview__item p {
    margin: 0;
    font-size: 1.375rem;
    font-weight: 500;
    line-height: 1.4545454545
}

@media only screen and (max-width: 650px) {
    .overview__item p {
        font-size: 1.125rem;
        line-height: 1.5
    }
}

.overview__item.dot-line:last-child::after {
    content: none
}

@media only screen and (max-width: 650px) {
    .overview__item.dot-line:last-child::after {
        content: ""
    }
}

.overview__contents .co-text {
    line-height: 1.75;
    margin-top: 0.625rem
}

.overview__contents .overview__list__btm__text {
    line-height: 1.75;
    margin-top: 0
}

@media only screen and (max-width: 650px) {
    .overview__contents .overview__list__btm__text {
        margin-top: 0.375rem;
        line-height: 1.65
    }
}

.overview__list__btm {
    margin-top: 1.25rem
}

@media only screen and (max-width: 650px) {
    .overview__list__btm {
        margin-top: 1rem
    }
}

.overview__list__btm__item {
    display: flex;
    align-items: center;
    column-gap: 1.25rem;
    padding: 1.5625rem 0
}

@media only screen and (max-width: 650px) {
    .overview__list__btm__item {
        flex-direction: column;
        row-gap: 0.5625rem;
        padding: 1.25rem 0
    }
}

.overview__list__btm__item.dot-line::after {
    top: -0.125rem;
    bottom: auto
}

.overview__list__btm__item:last-child {
    padding-bottom: 0
}

.overview__list__btm__img {
    max-width: 6.1875rem;
    width: 100%;
    flex-shrink: 0
}

@media only screen and (max-width: 650px) {
    .overview__list__btm__img {
        margin: 0 auto
    }
}

.overview__list__btm__img img {
    width: 100%;
    aspect-ratio: 1/1;
    display: block
}

.overview__list__btm__right {
    flex: 1
}

.overview__list__btm__lead {
    display: flex;
    column-gap: 0.5rem;
    line-height: 1;
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1.3333333333;
    margin-bottom: 0.3125rem
}

@media only screen and (max-width: 650px) {
    .overview__list__btm__lead {
        font-size: 1.125rem;
        line-height: 1.4444444444;
        letter-spacing: 0;
        margin-bottom: 0.375rem
    }
}

.overview__list__btm__lead span {
    font-size: 1.5rem;
    font-weight: 600;
    font-family: "Oswald", sans-serif
}

@media only screen and (max-width: 650px) {
    .overview__list__btm__lead span {
        font-size: 1.125rem
    }
}

.overview .sec-title {
    margin-bottom: 2.1875rem
}

@media only screen and (max-width: 650px) {
    .overview .sec-title {
        letter-spacing: 0;
        margin-bottom: 0.875rem
    }
}

@media only screen and (max-width: 1100px) {
    .overview.sec-padding {
        padding: 0 1.875rem
    }
}

@media only screen and (max-width: 650px) {
    .overview.sec-padding {
        padding: 0
    }
}

.overview .sec2 .overview__title {
    margin-bottom: 1.625rem
}

@media only screen and (max-width: 650px) {
    .overview .sec2 .overview__title {
        margin-bottom: 0
    }
}

.members__contents__img {
    margin-top: 1.25rem;
    padding-top: 2.5rem;
    display: flex;
    justify-content: center
}

@media only screen and (max-width: 650px) {
    .members__contents__img {
        margin-top: 0.75rem;
        padding-top: 1.25rem
    }
}

.members__contents__img img {
    display: block;
    max-width: 38.375rem;
    width: 100%;
    height: auto
}

@media only screen and (max-width: 650px) {
    .members__contents__img img {
        max-width: 14.375rem
    }
}

.members__contents__img.dot-line::after {
    bottom: auto;
    top: 0
}

.members__table {
    margin-top: 3rem
}

@media only screen and (max-width: 650px) {
    .members__table {
        margin-top: 1.75rem;
        margin-right: -1.5625rem
    }
}

@media only screen and (max-width: 650px) {
    .members .sec-title {
        margin-bottom: 0.625rem
    }
}

@media only screen and (max-width: 650px) {
    .members .members__wrap {
        overflow: auto;
        -ms-overflow-style: none;
        scrollbar-width: none
    }
}

@media only screen and (max-width: 650px) {
    .members .members__wrap::-webkit-scrollbar {
        display: none
    }
}

@media only screen and (max-width: 650px) {
    .members table {
        width: 49.6875rem
    }
}

@media only screen and (max-width: 650px) {
    .members table tbody {
        display: block;
        padding-right: 1.5625rem
    }
}

.members table tr:not(:last-child) {
    border-bottom: 0.0625rem solid #fff
}

.members table tr th:not(:last-child),
.members table tr td:not(:last-child) {
    border-right: 0.0625rem solid #fff
}

.members table tr th:first-child,
.members table tr td:first-child {
    width: 20.4%
}

.members table tr th:nth-child(2),
.members table tr td:nth-child(2) {
    width: 29.8%
}

.members table tr th:nth-child(3),
.members table tr td:nth-child(3) {
    width: 33.3%
}

.members table tr th:last-child,
.members table tr td:last-child {
    width: 16.3%
}

.members table tr td {
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.4285714286;
    vertical-align: middle;
    padding: 0.96875rem 0.5rem
}

.members table tr td span {
    display: inline-block;
    text-indent: -1.5em;
    padding-left: 1.5em
}

.members table tr td:not(:first-child) {
    padding: 0.96875rem 1.0625rem
}

.members table tr td:first-child,
.members table tr td:last-child {
    font-weight: bold
}

.members table tr:first-child th:first-child {
    border-radius: 0.625rem 0 0 0
}

.members table tr:first-child th:last-child {
    border-radius: 0 0.625rem 0 0
}

.members table tr:first-child th {
    background-color: #06225b;
    font-size: 0.8125rem;
    font-weight: bold;
    color: #fff;
    padding: 0.46875rem
}

.members table tr:last-child td:first-child {
    border-radius: 0 0 0 0.625rem
}

.members table tr:last-child td:last-child {
    border-radius: 0 0 0.625rem 0
}

.members table tr:last-child td {
    background-color: #efefef;
    color: #06225b
}

.members table tr:last-child th:first-child {
    background-color: #b5cdd3
}

.members table tr:nth-child(2) td {
    background-color: #f7f8f8;
    color: #06225b
}

.members table tr:nth-child(2) th:first-child {
    background-color: #3494ba
}

.members table tr:nth-child(3) td {
    background-color: #efefef;
    color: #06225b
}

.members table tr:nth-child(3) th:first-child {
    background-color: #aad6e7
}

.members table tr:nth-child(4) td {
    background-color: #f7f8f8;
    color: #06225b
}

.members table tr:nth-child(4) th:first-child {
    background-color: #d4eaf3
}

.members table tr:not(:first-child) td:first-child,
.members table tr:not(:first-child) td:last-child {
    text-align: center
}

.members table tr:not(:first-child) th:first-child span {
    text-indent: 0;
    padding-left: 0;
    background-color: #fff;
    color: #06225b;
    border-radius: 0.25rem;
    padding: 0.09375rem 0.625rem;
}

.members__contents__flow {
    margin-top: 1.25rem;
    padding-top: 2.5rem
}

@media only screen and (max-width: 650px) {
    .members__contents__flow {
        margin-top: 0.625rem;
        padding-top: 1.375rem
    }
}

.members__contents__flow.dot-line::after {
    bottom: auto;
    top: 0
}

.members__contents__list {
    display: flex;
    column-gap: 0.9375rem;
    background-color: #fff
}

@media only screen and (max-width: 650px) {
    .members__contents__list {
        flex-direction: column;
        row-gap: 1rem
    }
}

.members__contents__item {
    width: 100%;
    display: flex;
    flex-direction: column;
    text-align: center;
    padding: 0.8125rem 1.25rem 1.5625rem;
    border-radius: 1rem;
    background-color: #fff;
    filter: drop-shadow(0 0.4375rem 0.3125rem rgba(4, 30, 114, 0.15));
    transform: translateZ(0);
    z-index: 3;
    position: relative;
    background: linear-gradient(180deg, white, #f7f8f8)
}

@media only screen and (max-width: 650px) {
    .members__contents__item {
        padding: 0.875rem 0.9375rem 1.0625rem
    }
}

.members__contents__item::after {
    background: linear-gradient(180deg, #fcfcfc, #fafbfb);
    content: "";
    height: 3.75rem;
    position: absolute;
    width: 1.875rem;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
    left: 99%;
    top: 50%;
    transform: translateY(-50%)
}

@media only screen and (max-width: 650px) {
    .members__contents__item::after {
        width: 1.375rem;
        height: 1.8125rem;
        left: 50%;
        top: 97.5%;
        transform: translateX(-50%) rotate(90deg);
        background: #f7f8f8
    }
}

.members__contents__item:last-child::after {
    content: none
}

.members__contents__item:nth-child(2) {
    z-index: 2
}

.members__contents__item:nth-child(3) {
    z-index: 1
}

.members__contents__item span {
    font-size: 2.375rem;
    font-weight: 500;
    font-family: "Oswald", sans-serif;
    line-height: 1;
    color: #1e32dc
}

@media only screen and (max-width: 650px) {
    .members__contents__item span {
        font-size: 2.25rem
    }
}

.members__contents__lead {
    font-size: 1.25rem;
    font-weight: bold;
    line-height: 1.6;
    margin: 0.5625rem 0 0 0
}

@media only screen and (max-width: 650px) {
    .members__contents__lead {
        font-size: 1.125rem;
        line-height: 1.7777777778;
        margin-top: 0.5rem
    }
}

.members__contents__text {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.75;
    margin: 0.375rem 0 0 0;
    text-align: left;
    letter-spacing: -0.036em
}

@media only screen and (max-width: 650px) {
    .members__contents__text {
        font-size: 0.875rem;
        line-height: 1.6428571429;
        margin-top: 0.3125rem
    }
}

.news__body {
    padding-top: 2.375rem
}

.news__item .news__link {
    display: flex;
    text-decoration: none;
    column-gap: 2.8125rem;
    color: #06225b;
    padding: 1.625rem 0
}

@media only screen and (max-width: 650px) {
    .news__item .news__link {
        flex-direction: column;
        padding: 0.9375rem 0
    }
}

.news__item time {
    font-size: 1rem;
    font-weight: 400;
    flex-shrink: 0
}

.news__item p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.75;
    font-weight: 400
}

.news__item p span {
    text-decoration: underline;
    text-underline-offset: 0.125rem;
    text-decoration-thickness: 0.0625rem
}

.news__item:first-child.dot-line::before {
    position: absolute;
    background: radial-gradient(circle farthest-side, #8b8c8c, #8b8c8c 30%, transparent 30%, transparent);
    background-size: 0.3125rem 0.3125rem;
    background-repeat: repeat-x;
    content: "";
    display: inline-block;
    height: 0.625rem;
    width: 100%;
    bottom: auto;
    top: 0;
    left: 50%;
    transform: translateX(-50%)
}

.news__detail {
    padding-top: 2.5rem
}

.news__detail__info {
    padding-bottom: 1.25rem;
    border-bottom: 0.0625rem solid #8b8c8c
}

.news__detail__info time {
    font-size: 0.875rem;
    font-weight: 500;
    color: #a6b0c4;
    display: inline-block;
    margin-bottom: 0.3125rem
}

.news__detail__info .news__detail__title {
    font-size: 1.625rem;
    font-weight: bold;
    line-height: 1.5384615385
}

.news__detail__body {
    margin-top: 1.5625rem
}

.news__detail__body p {
    font-size: 1rem;
    line-height: 1.875;
    font-weight: 400
}

.news__detail__body p:not(:first-child) {
    margin-top: 1.875rem
}

.news__detail__box {
    margin-top: 3.75rem
}

.news__detail__btn a {
    display: inline-block;
    border-radius: 3.125rem;
    text-decoration: none;
    background-color: #06225b;
    color: #fff;
    text-align: center;
    padding: 1.15625rem 2.5rem;
    font-size: 1rem;
    font-weight: 400
}

.contact .sub-fv__title {
    margin-top: 4.1875rem;
    padding-bottom: 5.5rem
}

@media only screen and (max-width: 650px) {
    .contact .sub-fv__title {
        margin-top: 2rem;
        padding-bottom: 2.125rem
    }
}

.contact__title {
    font-size: 1.625rem;
    font-weight: bold;
    line-height: 1.0769230769;
    margin-bottom: 1.5rem
}

@media only screen and (max-width: 650px) {
    .contact__title {
        line-height: 1.4166666667
    }
}

.contact__contents {
    max-width: 50rem;
    width: 100%;
    margin: 0 auto;
    padding-bottom: 5.0625rem;
    padding-top: 1.75rem
}

@media only screen and (max-width: 650px) {
    .contact__contents {
        padding-bottom: 1.875rem
    }
}

.contact__contents+.contact__contents {
    margin-top: 2.8125rem;
    padding-bottom: 3rem
}

@media only screen and (max-width: 650px) {
    .contact__contents+.contact__contents {
        margin-top: 0;
        padding-bottom: 1.875rem
    }
}

.contact__body p {
    margin: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.75;
    text-indent: -1em;
    padding-left: 1em
}

.contact__body p:not(:first-child) {
    margin-top: 1.875rem
}

.contact__info p {
    font-size: 1rem;
    line-height: 1.75
}

.contact__info a {
    text-decoration: none;
    color: #06225b
}

.contact__info a img {
    display: inline-block;
    margin-bottom: -0.1875rem
}

.contact__banner {
    display: flex;
    justify-content: center
}

.contact__banner a img {
    max-width: 58.75rem;
    width: 100%;
    height: auto;
    display: block
}



.gsc-control {
    max-width: 300px;
    width: 100% !important;
}

/* パンくず */
#topicPath {
    background: #F6F6F6;
    height: 33px;
    line-height: 33px;
}

#topicPath p {
    width: 900px;
    margin: 0 auto;
    text-align: left;
    font-size: 75%;
    font-size: 12px;
    color: #333;
}

#topicPath p a {
    text-decoration: none;
    color: #333;
}

@media only screen and (max-width: 1000px) {
    .breadcrumbs {
        display: none
    }
}


.co-footer .contact__info {
    margin-top: 1rem;
}

.co-footer .contact__info p {
    font-size: 18px;
}


.top-news__item .top-news__link span,
.news__item .news__link span {
    position: relative;
    padding-right: 25px;
}

.top-news__item .top-news__link span::after,
.news__item .news__link span::after {
    position: absolute;
    content: "";
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background-image: url(../images/common/icon-link-navy.svg);
    width: 14.5px;
    aspect-ratio: 1/1;
    right: 7px;
    bottom: 4px;
}


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

    .top-news__item .top-news__link span,
    .news__item .news__link span {
        padding-right: 20px;
    }

    .top-news__item .top-news__link span::after,
    .news__item .news__link span::after {
        width: 12px;
        right: 4px;
        bottom: 3px;
    }
}

.members table tr:not(:first-child) th {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4285714286;
    vertical-align: middle;
    padding: 0.96875rem 0.5rem
}

table ul {
    list-style: inside;
}

table ul li {
    text-indent: -.5em;
    padding-left: 1em;
}

table ul li::marker {
    font-size: 6px;
}