html {
    scroll-behavior: smooth;
}

body {
    width: calc(99.9dvw - calc(99.9dvw - 100%));
    background: #3d393a !important;
    overflow-x: hidden;
    font-family: 'NotoSerifJP', serif;
    width: 99vw;
}

header {
    position: sticky;
    height: auto;
    width: 100%;
    top: 3px;
}

.wrap {
    width: 100%;
    height: auto;
    color: #fff;
    font-feature-settings: 'palt';
    display: flex;
    flex-direction: column;
    align-items: center;
}

@font-face {
    font-family: 'NotoSerifJP';
    src: url('./fonts/NotoSerifJP-Light.otf') format('opentype');
}

section {
    font-size: 1.05rem;
    width: 100vw;
}

a:hover {
    color: unset;
}

.w-fit {
    width: fit-content;
}

.writingmode-tr-rl {
    writing-mode: tb-rl;
}

.small {
    font-size: .8em !important;
}

.x-small {
    font-size: .7em !important;
}

.xx-small {
    font-size: .6em !important;
}

.x-large {
    font-size: 1.3em !important;
}

.xx-large {
    font-size: 1.4em !important;
}

.xxx-large {
    font-size: 1.6em !important;
}

h3.large {
    font-size: 1.5em !important;
}

img {
    max-width: 90vw;
}

p {
    line-height: 1.6em;
}

br.lg {
    display: block;
}

br.md {
    display: none;
}

.sub_contents {
    padding-bottom: 3em;
}

.contents {
    padding-bottom: 4.5em;
}

.backgroud-image {
    background-repeat: no-repeat;
    width: 100vw;
    overflow-y: hidden;
    max-height: 300px;
    background-size: 100vw;
    background-position: bottom;
}

.section_box#sec01 {
    padding-top: 20px;
    margin-top: -20px;
}

#sec02 h2,
#sec03 h2 {
    font-size: 1.9em;
    color: #e0c26a;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.15em;
}

#sec03 h3,
#sec05 h3,
#sec06 h3,
#sec07 h3 {
    font-size: 1.8em;
    color: #e0c26a;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.15em;
}

#sec02 h2::before,
#sec02 h2::after,
#sec03 h2::before,
#sec03 h2::after,
#sec03 h3::before,
#sec03 h3::after {
    content: " ";
    display: inline-block;
    width: 1.3em;
    height: 1px;
    background: #e0c26a;
    margin: auto 2em;
}

#sec03 h3::before,
#sec03 h3::after,
#sec05 h3::before,
#sec05 h3::after,
#sec06 h3::before,
#sec06 h3::after,
#sec07 h3::before,
#sec07 h3::after {
    content: "";
    display: inline-block;
    width: 1.2em;
    height: 1px;
    background: #e0c26a;
    margin: auto 1.6em;
}

#sec06 .contents p span,
#sec07 .contents p span {
    display: inline-block;
}

/* sec01 */
#sec01 section {
    margin-bottom: 90px;
}

#sec01 .top_image {
    background-image: url(../image/image_01.png);
    background-size: calc(100% + 110px);
    background-repeat: no-repeat;
    max-width: calc(100% + 100px);
    background-position: center;
    margin-bottom: 20px;
    height: 100%;
}

#sec01 .main_text img {
    height: auto;
}

#sec01.main_text img#text1 {
    width: 22.5vw;
    height: calc(22.5vw * 1.884057971014493);
}

#sec01.main_text img#text2 {
    width: 23vw;
    height: calc(23vw * 1.530249110320285);
    margin-right: 1vw;
}

#sec01 .top_image .main_text {
    padding: 6px 56px 0 0;
    margin: 0 auto;
    max-width: 1280px;
    flex-direction: row-reverse;
}

#sec01 .main_text h1 {
    font-size: 2.5rem;
    line-height: 2.1em;
    font-weight: 400;
    letter-spacing: 0.3em;
}

#sec01 .main_text h1 span.x-large {
    font-size: 1.5em;
    margin: -25px 0;
    letter-spacing: 0;
}

#sec01 .main_text h1 span.large {
    font-size: 1.3em;
}

#sec01 .main_text p {
    margin-right: 51px;
    font-weight: 500;
    line-height: 2.19em;
    font-size: 1em;
    text-shadow: 0 0 20px black;
}

#sec01 .top_image h1.title {
    text-align: center;
    font-size: 6.1em;
    font-weight: 500;
    color: #00a07d;
    text-shadow: 0px 5px 20px #1c1a1a, 0px -5px 20px #1c1a1a, 5px 0px 20px #1c1a1a, -5px 0px 20px #1c1a1a,
        0px 7px 20px #332f30, 0px -7px 20px #332f30, 7px 0px 20px #332f30, -7px 0px 20px #332f30;
    margin-top: 70px;
}

#sec01 .top_image h1.title span.small {
    font-size: 0.7em;
    font-weight: 400;
    margin-left: 0.6em;
}

#sec01 .top_image h1.title span.large {
    font-size: 1.2em;
}

#sec01 .application_area div.row>p:first-child {
    font-size: .7em;
    margin-bottom: -11px;
    height: 6.8em;
}

#sec01 .application_area {
    font-size: 1.24em;
    margin: 0 auto;
    max-width: 1000px;
    width: 95%;
    height: auto;
    justify-content: space-around;
}

#sec01 .application_area h1 {
    font-size: 3.56em;
}

#sec01 .application_area span.space {
    margin-left: 5em;
}

#sec01 .application_area.btn_area_5 .button_area {
    width: 46%;
}

#sec01 .application_area .button_area {
    display: flex;
    justify-content: space-evenly;
    margin-top: 1em;
    width: 41%;
    flex-flow: column;
}

#sec01 .application_area .button_area a {
    background: #fff;
    color: #3d393a;
    font-weight: 500;
    border-radius: 3px;
    display: inline-flex;
    justify-content: center;
    margin: 5px;
    background-image: linear-gradient(180deg, rgba(235, 235, 235, 1) 45%, rgba(200, 220, 212, 1));
    font-size: 0.9em;
    height: 3em;
    padding: 0 1em;
}

#sec01 .application_area .button_area a:hover {
    filter: opacity(50%);
}

#sec01 .application_area .button_area a.closed {
    pointer-events: none;
    background: #a8acb0;
}

#sec01 .application_area .button_area a.closed>span {
    margin: auto;
}

#sec01 .application_area .button_area a.closed>span.closed_text {
    writing-mode: rl-tb;
    margin: auto -1em 1.5em;
    color: #b92222;
    font-weight: 600;
    font-size: .6em;
}

/* sec02 */
#sec02 section {
    background: #4d4d4d;
    color: #fff;
    padding: 7vw 0;
    padding-bottom: 0;
}

#sec02 h3 {
    font-size: 1.362em;
}

#sec02 p {
    line-height: 1.54em;
}

#sec02 .sub_contents p span.underline {
    text-decoration: underline;
}

#sec02 .sub_contents p span {
    display: inline-block;
}

#sec02 #special a {
    writing-mode: tb-rl;
    border: solid 3px;
    border-radius: 2px;
    padding: 1em 1.1em;
    font-size: 1.4em;
    letter-spacing: 0.08em;
    text-align: initial;
    height: 16em;
    min-height: fit-content;
    margin: 3px 0.8em;
}

#sec02 #special a:before {
    content: " ";
    display: block;
    height: 0px;
    clear: both;
    visibility: hidden;
}

#sec02 #special a:hover {
    filter: opacity(80%);
    background: #fff;
    color: #4d4d4d;
}

#sec02 #special a span.d-flex {
    justify-content: space-between;
}

#sec02 #special a span.d-flex>span:last-child {
    color: #FFC107;
    font-size: 0.5em;
    writing-mode: initial;
    margin: 0 -2em;
    text-align: center;
    font-weight: bold;
}

#sec02 #general button,
#sec03 #infomation button {
    width: 90%;
    max-width: 690px;
    padding: 0.8em;
    background: #717171;
    font-size: 1.49em;
    border-radius: 3px;
}

#sec02 #general a:hover,
#sec03 #infomation a:hover {
    filter: brightness(150%);
}

#sec02.link_area {
    width: 45em;
    max-width: 100vw;
}

#sec02 .backgroud-image {
    background-image: url(../image/image_02.png);
    height: calc(100vw * 0.15390625);
    width: 100vw;
    min-height: 130px;
    max-height: 200px;
    background-size: cover;
    background-position: top center;
}

/* sec03 */
#sec03 section {
    padding: 7.2vw 0 0;
}

#sec03 h4 {
    color: #e0c26a;
    font-weight: 400;
    font-size: 1.25em;
    display: flex;
    align-items: center;
    justify-content: center;
}

#sec03 .contents {
    max-width: 760px;
    margin: 0 auto;
}

#sec03 .contents p {
    border-top: solid 1px;
    border-bottom: solid 1px;
    width: 100%;
    padding: .84em 0;
}

#sec03 .contents p+p {
    border-top: none;
}

#sec03 .contents .box-contents {
    background: #484747;
    text-align: start;
    padding: 1em;
    width: 22em;
}

#sec03 .contents p.row span:first-child {
    width: 2.5em;
    padding: 0;
    margin-right: 1em;
}

#sec03 .contents p.row {
    margin: 0 auto;
}

#sec03 p.row span {
    padding: 0;
}

/* sec04 */
#sec04 section {
    padding: 5.6vw 0 2.5em;
    background: url(../image/image_03.png) top left / auto repeat-y, url(../image/image_03_1.png) top left 1277px/ auto repeat-y;
    padding-bottom: 0;
}

#sec04>.text-center {
    padding-bottom: 3vw;
}

#sec04 .backgroud-image {
    background-image: url(../image/image_04.png);
    height: calc(100vw * 0.19609375);
    width: 100vw;
    min-height: 130px;
    max-height: 200px;
    background-size: cover;
    background-position: top center;
}

#sec04 h2 {
    font-size: 1.8em;
    letter-spacing: 0.15em;
    color: #e0c26a;
}

#sec04 p {
    line-height: 1.9em;
}

#sec04 .sub_contents h3 {
    font-size: 1.4em;
    margin-top: 0.3em;
    margin-bottom: 0.5em;
}

/* sec05 */
#sec05 section {
    background: #2a4c40;
    padding: 7vw 0 0;
}

#sec05 h3 {
    letter-spacing: 0.3em;
}

#sec05 .contents {
    max-width: 888px;
    margin: 0 auto;
}

#sec05 .text_area {
    max-width: 50%;
}

#sec05 .image_area {
    max-width: 47%;
}

#sec05 .text_area p span {
    display: inline-block;
}

/* sec06 */
#sec06 section {
    padding: 6.6vw 0 4vw;
    background-image: url(../image/image_06.png);
    background-repeat: no-repeat;
    max-height: 538px;
}

#sec06 .contents {
    padding-bottom: 3em;
    padding-top: 1em;
}

#sec06 .contents h3 {
    text-shadow: 0 2px 5px #3d393a,
        2px 0px 7px #3d393a,
        -2px 0px 7px #3d393a,
        0px -2px 7px #3d393a;
}

#sec06 .contents p {
    text-shadow: 0 2px 5px #3d393a,
        2px 0px 7px #3d393a,
        -2px 0px 7px #3d393a,
        0px -2px 7px #3d393a;
    padding-top: 1.5em;
    word-break: keep-all;
}

/* sec07 */
#sec07 section {
    padding: 4vw 0 4.5vw;
    background: #2f2d2d;
}

#sec07 h3 {
    color: #fff;
}

#sec07 h3::before,
#sec07 h3::after {
    background: #fff;
}

#sec07 .contents p {
    letter-spacing: 0.12em;
    line-height: 1.8em;
}

#sec07 #sns a:hover {
    opacity: 0.7;
}

#sec07 #sns svg {
    width: 3em;
    height: auto;
    fill: white;
    margin: 1em 1em 2em;
}

/* ページトップボタン */
.pagetop {
    height: 50px;
    width: 50px;
    position: fixed;
    right: 30px;
    bottom: 30px;
    background: #fff;
    border: solid 1px #000;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
}

.pagetop__arrow {
    height: 10px;
    width: 10px;
    border-top: 3px solid #000;
    border-right: 3px solid #000;
    transform: translateY(20%) rotate(-45deg);
}

/* メニュー */
#g-nav {
    display: none;
}

@media screen and (min-width: 1280px) {

    #sec02 section,
    #sec03 section,
    #sec04 section,
    #sec05 section,
    #sec07 section,
    #sec08 section {
        padding: 4em 0;
    }

    #sec06 section {
        padding: 5em 0;
    }

    #sec01 .top_image {
        background-size: 1280px;
        height: auto;
        max-height: 100;
    }

    #sec01 .main_text img#text1 {
        width: 276px;
        height: 100%;
    }

    #sec01 .main_text img#text2 {
        width: 281px;
        height: 100%;
        margin-right: 1vw;
    }

    #sec02>div {
        padding-bottom: 30px;
    }

}

@media screen and (max-width:1280px) {
    .section_box:not(#sec01) section>div:not(.backgroud-image) {
        width: calc(96% - 5px);
        margin: 0 auto;
    }
}

@media screen and (max-width:956px) {
    #sec01 .application_area.btn_area_5>div {
        width: 80%;
    }

    #sec01 .application_area.btn_area_5 .button_area {
        flex-direction: column;
        width: 30em;
    }

    #sec01 .application_area.btn_area_5 .button_area a {
        writing-mode: initial;
        font-size: 1.2em;
        width: 100%;
        height: 2.5em;
        margin: 0 0 1em;
        flex-direction: column;
    }

    #sec01 .application_area .button_area a.closed>span {
        margin: 0;
        line-height: 1.2em;
    }
}

@media screen and (max-width:902px) {
    #sec01 h1 span {
        display: inline-block;
    }

    #sec05 .text_area,
    #sec05 .image_area {
        max-width: 100%;
    }

    #sec05 .text_area p br {
        display: none;
    }
}

@media screen and (max-width:875px) {
    .md-d-none {
        display: none;
    }

    #sec01 .application_area>div {
        width: 90%;
    }

    #sec01 .application_area .button_area {
        flex-direction: column;
        width: 30em;
    }

    #sec01 .application_area .button_area a {
        writing-mode: initial;
        font-size: 1.2em;
        width: 100%;
        height: 2.5em;
        margin: 0 0 1em;
        flex-direction: column;
    }

    #sec01 .application_area .button_area a.closed>span+span.closed_text {
        margin: 0;
    }

    #sec02 .link_area {
        width: 90%;
    }

    #sec02 #special a {
        writing-mode: inherit;
        font-size: 1.2em;
        height: fit-content;
        width: 100%;
        margin: 3px 0;
    }

    #sec02 #special a span.d-flex>span:last-child {
        font-size: 0.6em;
        margin: auto 0;
        writing-mode: initial;
        min-width: 2.8em;
        /*     margin-right: -2em; */
    }

    #sec02 #special a span.d-flex>span.xxx-small:last-child {
        font-size: 0.6em;
        margin: auto 0;
        writing-mode: initial;
        min-width: 2.8em;
        margin-right: -1em;
    }

}

@media screen and (max-width:850px) {
    br.lg {
        display: none;
    }
    br.md {
        display: block;
    }

    .sub_contents p,
    #sec04 .contents#gosunnkannna p:nth-of-type(n+2),
    #sec04 .contents#hatsuri p,
    #sec06 .contents p,
    #sec06 .contents p:last-child {
        word-break: keep-all;
    }

    #sec01 .main_text img#text1 {
        width: 30%;
        height: calc(30% * 1.884057971014493);
    }

    #sec01 .main_text img#text2 {
        width: 30%;
        height: calc(30% * 1.530249110320285);
        margin-right: 0;
    }

    #sec01 .top_image h1.title {
        font-size: 4.5em;
    }

    #sec01 .application_area h1 {
        font-size: 3em;
    }

    #sec01 .application_area div.row>p:first-child {
        font-size: .6em;
    }

    #sec03 .contents .box-contents {
        width: 100%;
    }

    #sec05 .contents img {
        margin-top: 1em;
    }

    /* メニュー */
    #g-nav {
        display: block;
        position: fixed;
        z-index: 999;
        top: 0;
        right: -120%;
        width: 100%;
        height: 100vh;
        background: #999;
        transition: all 0.6s;
    }

    #g-nav.panelactive {
        right: 0;
    }

    #g-nav.panelactive #g-nav-list {
        position: fixed;
        z-index: 999;
        width: 100%;
        height: 100vh;
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    /*ナビゲーション*/
    /* #g-nav ul {
        position: absolute;
        z-index: 999;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    } */
    #g-nav ul {
        height: 100vh;
        width: fit-content;
        display: flex;
        margin: auto;
        flex-direction: column;
        flex-wrap: nowrap;
        justify-content: center;
    }

    /*リストのレイアウト設定*/
    #g-nav li {
        list-style: none;
        text-align: center;
    }

    #g-nav li a {
        color: #333;
        text-decoration: none;
        padding: 10px;
        display: block;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        font-weight: bold;
    }

    /* ボタン */
    .openbtn {
        position: relative;
        background: #3d393a94;
        z-index: 9999;
        cursor: pointer;
        width: 50px;
        height: 50px;
        border-radius: 5px;
        border: solid 1px #fff;
        margin: 5px 13px 0 auto;
    }

    /*ボタン内側*/
    .openbtn span {
        display: inline-block;
        transition: all .4s;
        position: absolute;
        left: 14px;
        height: 3px;
        border-radius: 2px;
        background: #fff;
        width: 45%;
    }

    .openbtn span:nth-of-type(1) {
        top: 15px;
    }

    .openbtn span:nth-of-type(2) {
        top: 23px;
    }

    .openbtn span:nth-of-type(3) {
        top: 31px;
    }

    .openbtn.active span:nth-of-type(1) {
        top: calc(50% - 12px);
        left: calc(50% - 12px);
        width: 25px;
        transform: translateY(11px) rotate(-45deg);
    }

    .openbtn.active span:nth-of-type(2) {
        opacity: 0;
    }

    .openbtn.active span:nth-of-type(3) {
        top: calc(50% - 12px);
        left: calc(50% - 12px);
        width: 25px;
        transform: translateY(11px) rotate(45deg);
    }
}

@media screen and (max-width: 768px) {

    .sub_contents {
        padding-bottom: 0;
    }

    #sec02 h2::before,
    #sec02 h2::after,
    #sec03 h2::before,
    #sec03 h2::after,
    #sec03 h3::before,
    #sec03 h3::after,
    #sec05 h3::before,
    #sec05 h3::after,
    #sec06 h3::before,
    #sec06 h3::after,
    #sec07 h3::before,
    #sec07 h3::after {
        width: 1em;
        margin: auto 0.5em;
    }


    #sec02 h2,
    #sec03 h2,
    #sec06 h3,
    #sec07 h3 {
        font-size: 1.9em;
    }

    #sec02 h2>span,
    #sec06 h3>span,
    #sec07 h3>span {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        width: 8em;
        justify-content: center;
        align-items: center;
    }

    #sec01 section {
        margin-bottom: 3em;
    }

    #sec01 .top_image .main_text {
        padding: 1em 1em 0 0;
    }

    #sec01 .top_image h1.title {
        font-size: 4em;
        margin-top: 0;
    }

    #sec01 .main_text img#text1 {
        width: 35%;
        height: calc(35% * 1.884057971014493);
    }

    #sec01 .main_text img#text2 {
        width: 35%;
        height: calc(35% * 1.530249110320285);
        margin-right: 0;
    }

    #sec01 .application_area {
        font-size: 1.1em;
        width: 80%;
    }

    #sec01 .application_area>div {
        width: 100%;
    }

    #sec01 .button_area {
        width: 100%;
        flex-direction: column;
    }

    #sec02 #general button {
        font-size: 1.2em;
    }

    #sec06 section,
    #sec06 .contents p {
        padding: 0;
    }

    #sec06 .contents p br:not(.sm) {
        display: none;
    }
}

@media screen and (max-width: 600px) {

    .sub_contents p,
    #sec04 .contents#gosunnkannna p:nth-of-type(n+2),
    #sec04 .contents#hatsuri p,
    #sec06 .contents p,
    #sec06 .contents p:last-child {
        text-align: left;
        word-break: normal;
    }

    div.section_box:not(#sec01) p {
        margin-left: .5em;
        margin-right: .5em;
        max-width: 95%;
    }

    #sec01 .main_text img#text1 {
        width: 45%;
        height: calc(45% * 1.884057971014493);
    }

    #sec01 .main_text img#text2 {
        width: 45%;
        height: calc(45% * 1.530249110320285);
        margin-right: 0;
    }

    #sec01 .top_image h1.title {
        max-width: 97%;
        font-size: 3.5em;
    }

    #sec03 .contents .box-contents {
        padding: .5em;
    }

    #sec06 .contents p {
        word-break: normal;
        font-size: 0.9em;
    }

    #sec07 p {
        text-align: left;
    }
}

@media screen and (min-width:550px) {
    #sec01 .application_area .button_area a.closed>span>span.closed_text {
        display: none;
    }
}

@media screen and (max-width:550px) {
    #sec01 .application_area .button_area a.closed>span>span.closed_text {
        writing-mode: rl-tb;
        margin-left: 0.5em;
        color: #b92222;
        font-weight: 600;
        font-size: .6em;
        white-space: nowrap;
    }

    #sec01 .application_area .button_area a.closed>span+span.closed_text {
        display: none;
    }
}

@media screen and (max-width:500px) {
    #sec01 .top_image h1.title {
        font-size: 3em;
    }

    #sec01 .application_area {
        font-size: 1em;
        width: 95%;
    }

    #sec02 #special a span.d-flex>span.xxx-small:last-child {
        font-size: 0.5em;
        margin-right: -2em;
    }

}

@media screen and (max-width:400px) {

    #sec02 #special a {
        padding-left: 0.8em;
        padding-right: 0.8em;
    }

    #sec02 #special a span.d-flex>span.xxx-small:last-child {
        font-size: 0.5em;
        margin-right: -1.5em;
    }
}
