@charset "UTF-8";

html,
body,
h1,
h2,
h3,
h4,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td {
    vertical-align: baseline;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    color: #251e37;
    letter-spacing: 0.1rem;
}

html * {
    box-sizing: border-box;
}

main {
    display: block;
    overflow: hidden;
}

img {
    max-width: 100%;
    height: auto;
}

body {
    position: relative;
}

header {
    position: fixed;
    width: 100%;
    top: 0;
    display: flex;
    justify-content: space-between;
}

.headLogo {
    transition: opacity 0.3s;
}

.headLogo:hover {
    opacity: 0.5;
}

h1 {
    margin: 25px 0 0 25px;
}

.menu {
    display: flex;
    align-items: center;
    list-style: none;
}

.menu>li {
    position: relative;
}

.menu>li:not(:last-of-type) {
    padding: 25px 0;
    margin-right: 40px;
}

.menu>li:hover:before {
    position: absolute;
    content: "";
    left: 50%;
    bottom: -6px;
    width: 12px;
    height: 12px;
    transform: translateX(-50%);
    background-color: #774be2;
    border-radius: 50%;
    z-index: 2;
}

.menu>li:hover .submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.menu>li>a {
    display: block;
    font-size: 1.6rem;
    color: #251e37;
    text-decoration: none;
    transition: color 0.3s, background-color 0.3s;
}

.menu>li>a:hover {
    color: #774be2;
}

.menu>li>a.topics {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 150px;
    height: 150px;
    background-color: #774be2;
    border-radius: 0 0 0 25px;
}

.menu>li>a.topics:hover {
    background-color: #ffe400;
}

.menu>li>a.topics:hover span {
    color: #774be2;
}

.menu>li>a.topics span {
    font-size: 1.6rem;
    font-weight: 600;
    color: #fff;
}

.menu>li>a.topics span:not(:last-child) {
    margin-bottom: 10px;
}

.menu>li>a.topics+.submenu {
    left: auto;
    right: 0;
    min-width: 160px;
    transform: translateX(0);
    border-radius: 10px 0 0 10px;
    background-image: none;
}

.submenu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 240px;
    white-space: nowrap;
    background: url(../images/bg_submenuline.png) repeat-x;
    background-color: #fff;
    border-radius: 10px;
    list-style: none;
    padding: 7px 20px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s, visibility 0.3s;
    z-index: 1;
}

.submenu li {
    position: relative;
    padding-left: 15px;
}

.submenu li:not(:last-of-type) {
    border-bottom: 1px solid #e5e5e5;
}

.submenu li:hover:before {
    background-color: #ffe400;
}

.submenu li:before {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    top: 20px;
    left: 10px;
    background-color: #d7c8e4;
    border-radius: 60%;
}

.submenu li a {
    display: block;
    font-size: 1.4rem;
    color: #251e37;
    text-decoration: none;
    line-height: 1.4;
    padding: 15px;
    transition: color 0.3s;
}

.submenu li a:hover {
    color: #774be2;
}

@media screen and (min-width: 1150px) {
    header {
        transition: all 0.3s;
        z-index: 1;
    }

    header.scrolled {
        width: calc(100% - 80px);
        background-color: #fff;
        border-radius: 10px;
        top: 30px;
        left: 40px;
        transition: 0.3s;
        box-shadow: 0px 0px 5px 0 rgba(0, 0, 0, 0.15);
    }

    header.scrolled>a {
        display: flex;
        align-items: center;
        margin-left: 30px;
    }

    header.scrolled h1 {
        margin: 0;
    }

    header.scrolled .globalMenuSp {
        height: 88px;
    }

    header.scrolled .menu {
        height: 100%;
    }

    header.scrolled .menu>li {
        height: inherit;
    }

    header.scrolled .menu>li:hover:before {
        bottom: -6px;
    }

    header.scrolled .menu>li:not(:last-of-type) {
        padding: 36px 0;
    }

    header.scrolled .menu>li.topicsWrap:hover:before {
        top: calc(100% - 5px);
        bottom: auto;
    }

    header.scrolled .menu>li>a.topics {
        width: auto;
        height: inherit;
        padding: 14px 16px;
        border-radius: 0 10px 10px 0;
    }

    header.scrolled .menu>li>a.topics img {
        width: 39px;
        height: 41px;
    }

    header.scrolled .menu>li>a.topics:hover span {
        font-weight: 800;
    }

    header.scrolled .menu>li>a.topics span {
        font-size: 1.2rem;
        font-weight: 600;
    }

    header.scrolled .menu>li>a.topics span:not(:last-child) {
        margin-bottom: 5px;
    }

    header.scrolled .menu>li>a.topics+.submenu {
        top: 100%;
        min-width: 160px;
        border-radius: 10px;
        background: url(../images/bg_submenuline.png) repeat-x;
        background-color: #fff;
    }

    header.scrolled .submenu {
        top: 100%;
        box-shadow: 0px 0px 5px 0 rgba(0, 0, 0, 0.15);
    }
}

footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    /* background: url(../images/deco_footerFl.png) 60% 100% no-repeat; */
    background-color: #f2ecff;
}

footer.secWide {
    margin-bottom: 0;
}

footer .inner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

footer .sideL {
    padding-top: 50px;
}

footer .sideL h1 {
    font-size: 3rem;
    font-weight: 600;
    margin: 0 0 20px 0;
}

footer .sideL h1 span {
    display: block;
    font-size: 1.2rem;
    font-weight: inherit;
    margin: 0 0 7px 2px;
}

footer .sideL p {
    font-size: 1.6rem;
    line-height: 1.7;
}

footer .sideL p span {
    font-size: inherit;
}

footer .sideL p span:not(:last-child) {
    position: relative;
}

footer .sideL p span:not(:last-child):after {
    content: "／";
    margin: 17px;
}

footer .sideR {
    width: 300px;
}

footer .sideR a {
    width: 100%;
    text-decoration: none;
}

footer .sideR a.topicsBtn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.8rem;
    font-weight: 500;
    color: #fff;
    background-color: #774be2;
    border-radius: 0 0 25px 25px;
    padding: 15px 20px;
    margin-bottom: 10px;
}

footer .sideR a.topicsBtn img {
    width: 41px;
    height: 44px;
    margin-right: 15px;
}

footer .sideR a.kakehasiBtn {
    position: relative;
    display: flex;
    flex-direction: column;
    font-size: 1.6rem;
    font-weight: 600;
    color: #095ba5;
    background-color: #fff;
    border: 5px solid #daddf6;
    border-radius: 25px;
    padding: 18px 55px 20px 25px;
}

footer .sideR a.kakehasiBtn span {
    display: block;
    font-size: 1.3rem;
    font-weight: inherit;
    color: inherit;
    margin-bottom: 7px;
}

footer .sideR a.kakehasiBtn:after {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    content: url(../images/icon_gaibu_w.png);
    background-color: #095ba5;
    width: 30px;
    height: 30px;
    top: 50%;
    right: 20px;
    border-radius: 50%;
    transform: translateY(-50%);
}

footer .copy {
    font-size: 1.3rem;
    color: #a19cae;
    width: 100%;
    margin: 60px 0 50px 0;
}

footer a {
    transition: opacity 0.3s;
}

footer a:hover {
    opacity: 0.5;
}

.decoFl01 {
    position: absolute;
    content: "";
    width: 212px;
    height: 159px;
    background: url(../images/decoFl01.png) center/contain no-repeat;
    z-index: -1;
}

.decoFl02 {
    position: absolute;
    content: "";
    width: 86px;
    height: 82px;
    background: url(../images/decoFl02.png) center/contain no-repeat;
    z-index: -1;
}

.decoFl03 {
    position: absolute;
    content: "";
    width: 140px;
    height: 211px;
    background: url(../images/decoFl03.png) center/contain no-repeat;
    z-index: -1;
}

.decoFw01 {
    position: absolute;
    content: "";
    width: 170px;
    height: 164px;
    background: url(../images/decoFw01.png) center/contain no-repeat;
    z-index: -1;
}

.decoFw02 {
    position: absolute;
    content: "";
    width: 176px;
    height: 172px;
    background: url(../images/decoFw02.png) center/contain no-repeat;
    z-index: -1;
}

.decoFl_F01 {
    position: absolute;
    content: "";
    width: 160px;
    height: 234px;
    background: url(../images/decoFl_F01.png) center/contain no-repeat;
    z-index: -1;
}

.decoFl_K01 {
    position: absolute;
    content: "";
    width: 91px;
    height: 60px;
    background: url(../images/schoolBadge.png) center/contain no-repeat;
    z-index: -1;
}

.fvWrap {
    position: relative;
    height: 740px;
    margin: 110px 0 100px 0;
    z-index: -2;
}

.fvWrap h2 {
    position: absolute;
    bottom: 50px;
    left: 90px;
    font-size: 4rem;
    font-weight: 800;
    line-height: 1.5;
}

.fvWrap .ph {
    height: 100%;
    background: url(../images/fv_ph01.jpg) right top/cover no-repeat;
    border-radius: 25px;
    margin: 0 90px 0 195px;
    z-index: -3;

}

.fvWrap .ph img {
    border-radius: 25px;
}

.fvWrap .decoFl01 {
    top: 60px;
    left: 60px;
    z-index: 0;
}

.fvWrap .decoFw01 {
    bottom: 90px;
    left: 0;
    width: 143px;
    z-index: -4;
    background-position: right;
}

.fvWrap .decoFl_F01 {
    bottom: 165px;
    right: 15px;
    z-index: 0;
}

.pageTtl {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: calc(100% - 80px);
    height: 250px;
    background-color: #faf7ff;
    border-radius: 25px;
    margin: 112px auto 25px auto;
}

.pageTtl h2 {
    font-size: 3rem;
    font-weight: 600;
}

.pageTtl .decoFl01 {
    bottom: -20px;
    left: -50px;
    z-index: 0;
}

.pageTtl .decoFw01 {
    z-index: 0;
}

.pageTtl .decoFw01:nth-of-type(2) {
    top: -10px;
    left: 20%;
    width: 130px;
    height: 125px;
}

.pageTtl .decoFw01:nth-of-type(5) {
    bottom: -65px;
    right: -60px;
    width: 130px;
    height: 125px;
}

.pageTtl .decoFl02 {
    bottom: 95px;
    right: 120px;
    z-index: 0;
}

.decoFl_K01 {
    bottom: 80px;
    right: 630px;
    z-index: 0;
}

.back {
    z-index: -1 !important;
}

.pankuzu {
    display: flex;
    justify-content: center;
    padding: 0 40px;
    margin-bottom: 100px;
}

.pankuzu * {
    font-size: 1.4rem;
}

.pankuzu li {
    list-style: none;
}

.pankuzu li:not(:last-of-type):after {
    content: "／";
    padding: 0 20px;
}

.pankuzu a {
    text-decoration: none;
}

.secDef {
    margin-bottom: 100px;
}

.secDef .inner {
    width: 1000px;
    margin: 0 auto;
}

.secWide {
    margin-bottom: 100px;
}

.secWide .inner {
    width: calc(100% - 180px);
    margin: 0 auto;
}

span.ttlDef {
    position: relative;
    display: block;
    font-size: 1.5rem;
    padding-left: 30px;
    margin-bottom: 15px;
}

span.ttlDef:before {
    position: absolute;
    content: "";
    top: 8px;
    left: 0;
    width: 20px;
    height: 1px;
    background-color: #251e37;
}

span.ttlVert {
    position: relative;
    display: block;
    font-size: 1.5rem;
    height: max-content;
    padding-top: 30px;
    margin-left: 15px;
    writing-mode: vertical-lr;
}

span.ttlVert:before {
    position: absolute;
    content: "";
    top: 0;
    right: 50%;
    width: 1px;
    height: 20px;
    background-color: #251e37;
}

h3.ttlDef {
    font-size: 3rem;
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: 45px;
}

h3.ttlVert {
    font-size: 3rem;
    font-weight: 600;
    line-height: 1.2;
    margin-left: 25px;
    writing-mode: vertical-lr;
}

.btnWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.btnWrap a {
    display: inline-block;
    font-size: 1.8rem;
    color: #fff;
    min-width: 300px;
    background-color: #774be2;
    text-decoration: none;
    padding: 23px 70px 23px 40px;
    border-radius: 25px;
    transition: opacity 0.3s;
}

.btnWrap a:hover {
    opacity: 0.5;
}

.btnWrap .arrow {
    position: relative;
}

.btnWrap .arrow:after {
    position: absolute;
    display: inline-block;
    content: "";
    top: 50%;
    right: 30px;
    width: 30px;
    height: 30px;
    transform: translateY(-50%);
    background: url(../images/icon_arrow01.png) center no-repeat;
    background-color: #ffe400;
    border-radius: 50%;
    margin-left: 5px;
    transition: right 0.3s;
}

.btnWrap .arrow:hover:after {
    right: 25px;
}

p {
    font-size: 1.5rem;
    line-height: 2.5;
}

table td,
table th {
    font-size: 1.5rem;
    line-height: 2.5;
}

table th p,
table td p {
    margin-bottom: 0;
}

.txt * {
    font-size: 1.5rem;
    line-height: 2.5;
}

.topInfo {
    position: relative;
}

.topInfo div {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
}

.topInfo .decoFw01 {
    bottom: 130px;
    left: calc((100% - 1000px) / 2 - 90px);
}

.topInfo .decoFw02 {
    top: 10px;
    right: calc((100% - 1000px) / 2 + 100px);
    width: 134px;
    height: 130px;
}

ul.infoList {
    border-top: 1px solid #251e37;
    margin-bottom: 20px;
}

ul.infoList li {
    position: relative;
    list-style: none;
    border-bottom: 1px solid #251e37;
}

ul.infoList li a {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    text-decoration: none;
    transition: opacity 0.3s;
}

ul.infoList li a:hover {
    opacity: 0.4;
}

ul.infoList li:before {
    position: absolute;
    content: "";
    width: 30px;
    height: 30px;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
    background: url(../images/icon_arrow01.png) center/50% 50% no-repeat;
    background-color: #ffe400;
    border-radius: 50%;
    z-index: -1;
    transition: right 0.3s, opacity 0.3s;
}

ul.infoList li:hover:before {
    right: 25px;
    opacity: 0.4;
}

ul.infoList .date,
ul.infoList .ttl {
    transition: color 0.3s;
}

ul.infoList .date {
    position: relative;
    width: 145px;
    padding: 25px 20px 25px 30px;
}

ul.infoList .date:after {
    position: absolute;
    content: "";
    top: 50%;
    right: 0;
    width: 1px;
    height: 15px;
    background-color: #251e37;
    transform: translateY(-50%);
}

ul.infoList .ttl {
    width: calc(100% - 145px);
    padding: 25px 70px 25px 20px;
}

.topTopics {
    position: relative;
}

.topTopics .decoFw01 {
    top: 165px;
    right: calc((100% - 1000px) / 2 - 145px);
    width: 112px;
    height: 108px;
}

.topTopics .decoFw02 {
    top: 0;
    right: calc((100% - 1000px) / 2 - 43px);
}

ul.topicsList {
    display: flex;
    flex-wrap: wrap;
}

ul.topicsList li {
    list-style: none;
    width: calc((100% - 72px) / 3);
    margin-right: 36px;
    margin-bottom: 36px;
}

ul.topicsList li:nth-child(3n) {
    margin-right: 0;
}

ul.topicsList li:nth-last-child(-n+3) {
    /* margin-bottom: 0; */
}

ul.topicsList a {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    transition: opacity 0.3s;
}

ul.topicsList a:hover {
    opacity: 0.5;
}

ul.topicsList a:hover .link span:after {
    right: -5px;
}

ul.topicsList .ph {
    width: 100%;
    height: 233px;
    overflow: hidden;
    margin-bottom: 30px;
}

ul.topicsList .ph img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 25px;
}

ul.topicsList .txt {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: calc(100% - 233px);
}

ul.topicsList .txt span {
    display: block;
}

ul.topicsList .link {
    display: flex;
    flex-wrap: wrap;
    padding: 20px 15px 10px 15px;
    border-top: 1px solid #251e37;
}

ul.topicsList .link .date {
    font-size: 1.2rem;
    color: #a9a8ae;
    width: 50%;
}

ul.topicsList .link span {
    position: relative;
    display: block;
    font-size: 1.3rem;
    text-align: right;
    width: 50%;
    padding-right: 35px;
    transition: right 0.3s;
}

ul.topicsList .link span:after {
    position: absolute;
    display: inline-block;
    content: "";
    top: 50%;
    right: 0;
    width: 30px;
    height: 30px;
    transform: translateY(-50%);
    background: url(../images/icon_arrow01.png) center no-repeat;
    background-color: #ffe400;
    border-radius: 50%;
    margin-left: 5px;
    z-index: -1;
    transition: right 0.3s;
}

ul.topicsList h4 {
    font-size: 1.5rem;
    line-height: 1.5;
    font-weight: 600;
    width: 100%;
    padding: 0 15px;
    margin-bottom: 10px;
}

ul.topicsList .allLink a {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: #fcfbff;
    border-radius: 25px;
    box-shadow: inset 0 0 40px rgb(237, 229, 255);
    transition: box-shadow 0.3s;
    z-index: 0;
}

ul.topicsList .allLink a:hover {
    opacity: 1;
    box-shadow: inset 0 0 40px rgb(214, 205, 239);
}

ul.topicsList .allLink a:hover span:after {
    left: calc(50% + 5px);
}

ul.topicsList .allLink .img {
    margin-bottom: 10px;
}

ul.topicsList .allLink span {
    display: inline-block;
    position: relative;
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.4;
    padding-bottom: 60px;
}

ul.topicsList .allLink span:after {
    position: absolute;
    display: inline-block;
    content: "";
    bottom: 0;
    left: 50%;
    width: 43px;
    height: 43px;
    transform: translateX(-50%);
    background: url(../images/icon_arrow02.png) center no-repeat;
    background-color: #ffe400;
    border-radius: 50%;
    transition: left 0.3s;
}

.topAbout .inner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

.topAbout .inner .decoFw01 {
    top: -30px;
    left: calc(50% - 50px);
    z-index: 0;
}

.topAbout .inner .decoFw02 {
    top: 40px;
    left: 85px;
    z-index: 0;
}

.topAbout .ph {
    width: calc(100% - 500px);
    height: 500px;
    overflow: hidden;
}

.topAbout .ph img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 25px;
    display: block;
}

.topAbout .txtWrap {
    display: flex;
    flex-direction: column;
    width: 450px;
    background: url(../images/deco_about.png) 60% 0 no-repeat;
}

.topAbout .txtWrap .btnWrap {
    justify-content: right;
}

.topAbout .txtCont {
    display: flex;
    flex-direction: row-reverse;
    margin-bottom: 30px;
}

.topAbout .txtCont .ttl {
    display: flex;
    flex-direction: row-reverse;
}

.topAbout .txtCont p {
    margin-top: 110px;
}

.fadeIn {
    opacity: 0;
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.fadeIn.visible {
    opacity: 1;
}

#loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 1s ease;
    opacity: 1;
    z-index: 9999;
}

#loading.fade-out {
    opacity: 0;
    pointer-events: none;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.typeCommon {
    margin-bottom: 100px;
}

.typeCommon p:not(:last-child) {
    margin-bottom: 25px;
}

.typeSec01 .inner {
    width: 600px;
    margin: 0 auto;
}

.typeSec01 .ttl {
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    margin-bottom: 70px;
}

.typeSec01 h4 {
    font-size: 2.2rem;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
    margin-bottom: 40px;
}

.typeSec01 .decoFw01 {
    bottom: 0;
    left: 0;
    width: 112px;
    height: 108px;
}

.typeSec01 .decoFw02 {
    right: 0;
}

.typeSec02 .inner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
}

.typeSec02 .inner .decoFw01 {
    top: 55px;
    right: 245px;
    width: 170px;
    height: 170px;
    z-index: -1;
}

.typeSec02 .inner .decoFw02 {
    top: 0;
    right: 128px;
    width: 120px;
    height: 120px;
    z-index: -1;
}

.typeSec02 .ph {
    width: calc(100% - 500px);
    height: 500px;
    overflow: hidden;
}

.typeSec02 .ph img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 25px;
    display: block;
}

.typeSec02 .txtWrap {
    display: flex;
    flex-direction: row-reverse;
    width: 450px;
}

.typeSec02 .ttl {
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    padding-bottom: 50px;
    margin-bottom: 30px;
}

.typeSec02 .ttl .ttl {
    display: flex;
    flex-direction: row-reverse;
}

.typeSec02 .ttl p {
    margin-top: 110px;
}

.typeSec02 .txt {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.typeSong {
    margin-bottom: 100px;
}

.typeSong .inner {
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    width: 790px;
    padding: 75px 50px;
    margin: 0 auto;
    background-color: rgba(251, 245, 255, 0.849);
    border-radius: 25px;
}

.typeSong .inner .decoFl01 {
    left: -100px;
    bottom: 20px;
    width: 173px;
    z-index: 0;
}

.typeSong .inner .decoFl03 {
    top: 60px;
    right: -100px;
    z-index: 0;
}

.typeSong .ttl {
    display: flex;
    flex-direction: row-reverse;
    margin-left: 40px;
}

.typeSong .ttl h3 {
    margin-left: 0;
}

.typeSong .txt {
    display: flex;
    flex-direction: row-reverse;
}

.typeSong .txt p {
    writing-mode: tb-rl;
    height: 275px;
}

.typeSong .txt p:not(:last-child) {
    margin-left: 40px;
}

.typeSec03 .inner {
    position: relative;
}

.typeSec03 .inner .decoFw01 {
    bottom: -30px;
    right: 35px;
}

.typeSec03 .inner .decoFl02 {
    top: 40px;
    right: 30px;
}

.typeSec04 .inner {
    position: relative;
}

.typeSec04 .inner .decoFw01 {
    bottom: 40px;
    left: -110px;
}

.typeSec04 .inner .decoFw02 {
    top: 0;
    right: 35px;
    width: 135px;
    height: 135px;
}

dl {
    display: flex;
    flex-wrap: wrap;
    border-top: 1px solid #251e37;
}

dl.tblDef dt,
dl.tblDef dd {
    border-bottom: 1px solid #251e37;
    font-size: 1.5rem;
    line-height: 1.5;
    margin-bottom: 0;
}

dl.tblDef dt p,
dl.tblDef dd p {
    list-style: inherit;
    line-height: inherit;
}

dl.tblDef dt span,
dl.tblDef dd span {
    font-size: inherit;
}

dl.tblDef dt {
    position: relative;
    width: 145px;
    padding: 25px 30px;
}

dl.tblDef dt:after {
    position: absolute;
    content: "";
    top: calc(25px + 1rem);
    right: 0;
    width: 20px;
    height: 1px;
    background-color: #251e37;
}

dl.tblDef dd {
    width: calc(100% - 145px);
    padding: 25px 30px 25px 35px;
}

dl.tblHis dd {
    display: flex;
    flex-wrap: wrap;
}

dl.tblHis dd span {
    width: 120px;
    padding-right: 40px;
}

dl.tblHis dd p {
    width: calc(100% - 120px);
}

dl.tblHis dd p:not(:last-of-type) {
    margin-bottom: 15px !important;
}

.mapWrap iframe {
    width: 100%;
    height: 340px;
    border-radius: 25px;
}

.typeTime .inner {
    position: relative;
    width: 600px;
    margin: 0 auto;
}

.typeTime .inner .decoFl01 {
    top: 0;
    right: -200px;
}

.typeTime .inner .decoFw02 {
    top: 45%;
    left: -200px;
}

.typeTime .inner .decoFw01 {
    bottom: 30%;
    right: -180px;
    width: 110px;
    height: 110px;
}

.typeTime .inner .decoFl02 {
    bottom: 40px;
    right: -30px;
}

.typeTime .timeItem {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 10px;
}

.typeTime .timeItem .time {
    position: relative;
    width: 60px;
    padding-bottom: 20px;
}

.typeTime .timeItem .time:after {
    position: absolute;
    content: "";
    bottom: 0;
    left: 30px;
    width: 2px;
    height: calc(100% - 65px);
    background-color: #774be2;
    transform: translateX(-50%);
}

.typeTime .timeItem .time.last:after {
    content: none;
}

.typeTime .timeItem .txt {
    width: calc(100% - 80px);
    padding: 20px 0 20px 0;
}

.typeTime .timeItem .txt img {
    border-radius: 25px;
}

.typeTime .timeItem h4 {
    font-size: 2rem;
    font-weight: 600;
}

.typeTime .timeItem h4:not(:last-child) {
    margin-bottom: 15px;
}

.typeTime .timeItem h4 span {
    display: inline-block;
    font-size: inherit;
    font-weight: inherit;
    width: 80px;
}

.typeTime .timeItem p {
    line-height: 1.5;
}

.typeTime .timeItem p:not(:last-child) {
    margin-bottom: 15px;
}

.typeGallery .inner {
    position: relative;
}

.typeGallery .inner .decoFw01 {
    top: 160px;
    right: -110px;
    width: 110px;
    height: 110px;
}

.typeGallery .inner .decoFw02 {
    top: 0;
    right: -10px;
}

.typeGallery .galleryWrap ul {
    display: flex;
    flex-wrap: wrap;
}

.typeGallery .galleryWrap li {
    width: calc((100% - 70px) / 3);
    list-style: none;
    margin-bottom: 30px;
}

.typeGallery .galleryWrap li:not(:nth-child(3n)) {
    margin-right: 35px;
}

.typeGallery .galleryWrap li img {
    border-radius: 25px;
}

.typeGallery .galleryWrap li p {
    line-height: 1.5;
    text-align: center;
    padding: 10px 10px 0 10px;
}

#toast-wrap {
    z-index: 2010;
    position: fixed;
    left: 50%;
    top: 20px;
    transform: translate(-50%, 0%);
    width: 50vw;
    max-width: 50vw;
}

#toast {
    min-width: 50vw;
    width: 50vw;
    background-color: #774be2;
    border-radius: 20px;
}

#toast button {
    display: none;
}

#toast .toast-error {
    color: #ffffff !important;
    font-size: 1.5rem;
}

#toast #toast-message {
    padding-top: .8rem;
    text-align: center;
    padding-bottom: .8rem;
}

.glightbox {
    cursor: pointer;
}

.glightbox-clean .gslide-title {
    font-size: 1.5rem;
    margin-bottom: 0;
    line-height: 1.5rem;
}


.anchor {
    scroll-margin-top: 160px;
}

.download dl.tblDef {
    display: block;
    border-bottom: 1px solid #251e37;
}

.download dl.tblDef:last-of-type {
    border-bottom: none;
}

.download dl.tblDef div {
    width: stretch;
    display: flex;
    justify-content: space-between;
}

.download dl.tblDef>div {
    border-bottom: 1px solid #251e37;
}

.download dl.tblDef>div.grid-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0px;
    margin: 0 auto;
}

.download dl.tblDef>div.grid-container div {
    display: block;
    font-size: 1.5rem;
    line-height: 1.5rem;
}

.download dl.tblDef>div.grid-container .month-box {
    overflow: hidden;
    border: 1px solid #251e37;
    padding: 15px;
    text-align: center;
    background-color: rgba(255, 255, 255, 0.7);
}

.download dl.tblDef>div.grid-container .month-box .monthfile {
    height: 60px;
    margin-top: 20px;
    margin-bottom: 10px;
}

.download dl.tblDef>div.grid-container .month-box .monthfile a {
    min-width: 100%;
    width: 100%;
    padding-left: 10px;
    padding-right: 50px;
}

.download dl.tblDef>div.grid-container .month-box .btnWrap .arrow:after {
    right: 15px;
}

.download dl.tblDef>div.grid-container .month-box .btnWrap .arrow:hover:after {
    right: 10px;
}

.download dl.tblDef dt {
    padding-top: 35px;
    width: auto;
    border-bottom: none;
}

.download dl.tblDef dt::after {
    content: "";
    position: static;
}

.download dl.tblDef dd {
    width: auto;
    padding-block: 10px;
    margin-bottom: 0;
    display: flex;
    justify-content: flex-end;
    border-bottom: none;
}

main .btnWrap {
    display: inline;
}

.topics a {
    text-decoration: none;
}

.section-icon {
    width: 35px;
    position: relative;
    top: 7px;
    left: 0px;
    margin-right: 10px;
}

.section-icon-v {
    top: -5px;
    left: 7px;
}

.typeTime .timeItem h4 span {
    margin-right: 10px;
}

.timeItem h4 {
    white-space: nowrap;
    overflow: visible;
}

.timeItem h4 .sp {
    display: none;
}

table {
    font-size: 1.5rem;
    border-width: 1px;
    ;
}

table th,
table td {
    font-size: 1.5rem;
    border-width: 1px;
    padding-block: 1.5rem;
    padding-inline: .8rem;
    margin: 1rem;
}
