@charset "UTF-8";

/* --- 基本レイアウト --- */
body,
html {
    margin: 0;
    padding: 0;
    width: 100%;
    font-family: "Noto Sans JP", sans-serif;
    line-height: 2.0;
    overflow-x: hidden;
}

.pc_only {
    display: none;
}

.sp_only {
    display: block;
}

@media (min-width:576px) {
    .pc_only {
        display: block;
    }

    .sp_only {
        display: none;
    }
}

.container {
    z-index: 5;
    position: relative;
    padding: 0 1rem;
}

.maincolor {
    color: #EE8A19;
}

/* --- 雲のアニメーション --- */
.cloud {
    position: absolute;
    z-index: 1;
    pointer-events: none;
}

@keyframes floatLeft {
    from {
        transform: translateX(110vw);
    }

    to {
        transform: translateX(-120vw);
    }
}

/* 雲の位置（指定いただいた最新数値） */
.cloud-a {
    top: 36%;
    width: 70px;
    animation: floatLeft 60s linear infinite;
    animation-delay: -10s;
}

.cloud-b {
    top: 16%;
    width: 170px;
    animation: floatLeft 90s linear infinite;
    animation-delay: -35s;
}

.cloud-c {
    top: 4%;
    width: 400px;
    animation: floatLeft 75s linear infinite;
    animation-delay: -55s;
}

.cloud-d {
    top: 46%;
    width: 120px;
    animation: floatLeft 100s linear infinite;
    animation-delay: -5s;
}

@media (min-width: 768px) {
    .cloud-a {
        width: 105px;
    }

    .cloud-b {
        width: 255px;
    }

    .cloud-c {
        width: 600px;
    }

    .cloud-d {
        width: 180px;
    }
}

.top_main {
    background-color: #EE8A19;
    color: #fff;
    text-align: center;
    padding-top: 10%;
    position: relative;
    padding-bottom: 10%;
}

@media screen and (orientation: portrait) {

    .top_main {
        padding-top: 20dvh;
        padding-bottom: 20vh;
    }

}

.main_message h1 {
    font-size: 2.0rem;
    padding-left: 1em;
}

@media (min-width:576px) {
    .main_message h1 {
        font-size: 2.6rem;
    }
}

.main_message p {
    font-size: 1.2rem;
    text-align: justify;
    text-align-last: left;

}

@media (min-width:576px) {
    .main_message p {
        text-align: center;
        text-align-last: center;
        font-size: 1.3rem;
        line-height: 2.5;
    }
}

.message_deco {
    position: absolute;
    width: 100%;
    margin: auto;
    right: 0;
    left: 0;
}

@media (min-width:576px) {
    .message_deco {
        width: 80%;
    }
}

@media (min-width:992px) {
    .message_deco {
        width: 50%;
    }
}

.message_deco img {
    width: 100%;
    margin: auto;
}

.top_main .message_deco {
    bottom: -13px;
}

@media (min-width:576px) {
    .top_main .message_deco {
        bottom: -15px;
    }
}

@media (min-width:992px) {
    .top_main .message_deco {
        bottom: -18px;
    }
}

.top_message .message_deco {
    top: 0;
}

.section_title {
    font-size: 1.8rem;
    margin-bottom: 1rem;
}

@media (min-width:576px) {
    .section_title {
        font-size: 2.2rem;
    }
}

.top_message {
    text-align: center;
    position: relative;
    padding-top: 10%;
    padding-bottom: 5%;
    border-bottom: 1px solid #dcdddd;
}



@media screen and (orientation: portrait) {
    .top_message {
        padding-top: 20vh;
        padding-bottom: 10vh;
    }
}

.top_message dt {
    margin: auto;
    color: #EE8A19;
    height: 6rem;
    font-weight: 500;
    font-size: 1.8rem;
    padding: 0;
    line-height: 6rem;
    margin-top: 4rem;
}

@media (min-width:576px) {
    .top_message dt {
        font-size: 2.2rem;
    }
}

.top_message dt {
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.top_message dt.number1 {
    background-image: url(../img/message_number1.svg);
}

.top_message dt.number2 {
    background-image: url(../img/message_number2.svg);
}

.top_message dt.number3 {
    background-image: url(../img/message_number3.svg);
}

.top_message dt.number4 {
    background-image: url(../img/message_number4.svg);
}

.top_message dt img {
    width: 100%;
}

.top_message dd {
    text-align: left;
    margin: 0;
}

@media (min-width:576px) {
    .top_message dd {
        text-align: center;
    }
}

.company {
    padding-bottom: 5%;
    border-bottom: none;
}

.company .container {
    width: fit-content;
    margin: auto;
    text-align: left;
    padding-top: 5%;
}

.company tr {
    display: flex;
    flex-direction: column;
}

.company th {
    width: 100%;
    padding: 1em 0 0.5em 0;
    font-weight: normal;
    border-bottom: none !important;
}

.company td {
    padding: 0em 0em 0.5em 1em;
    border-bottom: 1px solid #dcdddd !important;
}

@media (min-width:576px) {
    .company {
        border-bottom: 1px solid #dcdddd;
    }

    .company tr {
        flex-direction: row;
    }

    .company th {
        width: 10em;
        border-bottom: 1px solid #dcdddd !important;
        padding: 1em 0;
    }

    .company td {
        padding: 1em 0;
        width: 100%;
        border-bottom: 1px solid #dcdddd !important;
    }

    .top_message dd {
        text-align: center;
    }
}

.img-box {
    display: block;
    height: auto;
    margin: 0 auto;
}

.size-start {
    width: 200px;
    max-width: 60%;
    margin-bottom: 50px;
}

.size-logo {
    width: 160px;
    max-width: 50%;
}

.size-msg {
    width: 360px;
    max-width: 90%;
}

footer ul {
    display: flex;
    flex-direction: row;
    width: fit-content;
    margin: auto;
    justify-content: center;
    padding: 0;
}

footer ul li {
    list-style: none;
    padding: 2em 1em;
}

@media (min-width:576px) {
    footer ul li {
        padding: 2em;
    }
}

footer ul li:hover {
    color: #EE8A19;
}

.footermenu a:link,
.footermenu a:visited {
    text-decoration: none;
    color: #000;
}

.footermenu a:hover,
.footermenu a:active {
    color: #EE8A19;
}

/* --- コピーライト（35px位置に固定） --- */
.copyright {
    color: #FFFFFF;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    width: 100%;
    text-align: center;
    line-height: 1.2;
    /* 行間を安定させる */
    background-color: #EE8A19;
    padding: 20px 0;
}

.copyright span {
    opacity: 0.8;
}

/*popup template design*/
.popup-background {
    /*position size*/
    position: fixed;
    z-index: 100;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;

    /*design*/
    background-color: gray;
    opacity: 0.5
}

.popup {
    /*position size*/
    z-index: 101;
    position: fixed;
    top: 0;
    bottom: 0;
    height: fit-content;
    margin: auto;
    width: 90%;
    left: 5%;
    /*design*/
    overflow: hidden;
    background-color: white;
    border-radius: 10px;
    box-shadow: 0px 0px 3px 1px gray;
}

.popup .close-button {
    --size: 30px;
    position: absolute;
    height: var(--size);
    width: var(--size);
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: transparent;
    color: #EE8A19;
    font-size: var(--size);
    border-radius: calc(var(--size) / 5);
    right: 20px;
    top: 20px;
}

.popup .close-button:hover {
    /*design*/
    background-color: #EE8A19;
    color: white;
}

.popup>.content {
    padding: 2rem 1rem 1rem;
    position: relative;
}

.popup>.content h3 {
    color: #EE8A19;
    font-size: 1.2rem;
    margin-bottom: 1rem;
}

@media (min-width:576px) {
    .popup {
        width: 60%;
        left: 20%;
    }

    .popup>.content {
        padding: 2rem 2.5rem 1rem;
    }

    .popup>.content h3 {
        font-size: 1.5rem;
    }
}

/*hide popup*/
.popup-flag {
    display: none;
}

.popup-flag:not(:checked)+.popup-background {
    display: none;
}

.popup-flag:not(:checked)+*+.popup {
    display: none;
}