* {
    min-height: 0;
    min-width: 0;
}
html {
    font-size: .625rem;
}
body {
    font-size: 1.6em;
    font-family: 'Noto Sans JP';
    font-weight: 400;
    color: #222222;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
    line-height: 1.8;
    transition: color 0.3s;
}
a {
    text-decoration: none;
    color: #0000AA;
    transition: color 0.3s;
}
a:hover {
    color: #00CCCE;
    transition: color 0.3s;
}
.container {
    overflow: hidden;
}
.brsp {
    display: inline-block;
}
@media screen and (min-width: 768px) {
    .brsp {
        display: none;
    }
}
.ilb {
    display: inline-block;
}
.wrapper {
    max-width: 1280px;
    padding: 60px 5% 60px;
    margin: 0 auto;
}
.fullwidth {
    margin: -60px -500%;
    padding: 60px 500%;
}
.bg {
    background-color: #E7FBF8;
}
.buttonarea {
    padding: 5rem 0;
}
.btn {
    display: table;
    position: relative;
    margin: 5rem 0;
    padding: 0.5rem 6rem;
    min-width: 10rem;
    border: 1px solid #0000AA;
    color: #0000AA;
    background-color: #FFF;
    font-size: 1.6rem;
    border-radius: 50vh;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    transition: all 0.5s;
}
.btn:hover {
    border: 1px solid #0000AA;
    background-color: #0000AA;
    color: #FFF;
    transition: all 0.5s;
}
.btn_arrow {
    display: table;
    position: relative;
    margin: 3em 0;
    padding: 0.5rem 6rem;
    min-width: 10rem;
    border: 1px solid #0000AA;
    color: #0000AA;
    background-color: #FFF;
    font-size: 1.6rem;
    border-radius: 50vh;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    transition: all 0.5s;
}
.btn_arrow::after {
    position: absolute;
    top: 50%;
    right: 2rem;
    width: 1rem;
    height: 1rem;
    transform: translateY(-50%) rotate(45deg);
    border-right: 1px solid #0000AA;
    border-top: 1px solid #0000AA;
    content: "";
    transition: all 0.5s;
}
.btn_arrow:hover {
    border: 1px solid #0000AA;
    background-color: #0000AA;
    color: #FFF;
    transition: all 0.5s;
}
.btn_arrow:hover::after {
    border-right: 1px solid #FFF;
    border-top: 1px solid #FFF;
    transition: all 0.5s;
}
.btn_center {
    margin: 0 auto;
}
.headline {
    display: block;
    font-family: 'Noto Sans JP';
    font-size: 3rem;
    font-weight: 900;
    color: #00AABB;
    text-align: center;
    margin-top: 0;
    padding: 2.5rem 0 5rem;
}
.headline_sub {
    font-family: 'Noto Sans JP';
    font-weight: 700;
    font-size: 2rem;
    color: #00AABB;
    text-align: center;
    padding-bottom: 3rem;
}
.caption_center {
    font-size: 1.4rem;
    text-align: center;
    padding: 0.75rem 0;
}
.text_center {
    text-align: center;
}
.footerlogo {
    width: 100%;
    max-width: 380px;
    height: auto;
}
@media screen and (min-width: 768px) {
    .footerlogo {
        max-width: 431px;
    }
}
.pcspc {
    display: none;
}
@media screen and (min-width: 768px) {
    .pcspc {
        display: inline-block;
    }
    .pcspc::after {
        content: '';
        padding-left: 2rem;
    }
}

/* -- top -------------------------------------------------------------------------------- */
.logo {
    padding-top: 30px;
}
.logo img {
    position: relative;
    z-index: 9999;
}
.top_inner {
    background-image: url(../img/circle.svg);
	background-position: left 0% bottom 20%;
	background-repeat: no-repeat;
	background-size: 50%;
}
@media screen and (min-width: 768px) {
    .top_inner {
        display: grid;
        grid-template-columns: 300px 1fr;
    }
    .col2 {
        grid-column: 2;
    }
}
.wrapper_top {
    max-width: 1280px;
    padding: 0 5%;
    margin: 0 auto;
}
@media screen and (min-width: 768px) {
    .wrapper_top {
        padding-bottom: 5rem;
    }
}
.slider {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
    border-radius: 20px 20px 20px 20px;

}
@media screen and (min-width: 768px) {
    .slider {
        border-radius: 0 0 50px 50px;
    }
}
.zoomimg {
    width: 100%;
}
.copy {
    position: relative;
    display: block;
    padding: 3rem 0;
    width: 100%;
    font-family: YakuHanJP_Noto , "Noto Sans JP";
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    color: #00D0B1;
    z-index: 999;
}
@media screen and (min-width: 768px) {
    .copy {
        width: 300%;
        padding: 10% 0 0 0;
        font-size: 4rem;
        text-align: left;
    }
}

@media screen and (min-width: 960px) {
    .copy {
        width: 400%;
        padding: 35% 0 0 0;
        font-size: 5rem;
    }
}
.slide-animation{
    animation: fadezoom 10s 0s forwards;
}
@keyframes fadezoom {
  0% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1.4);
  }
}
p.about {
    display: block;
    max-width: 800px;
    padding: 3rem 0;
}
@media screen and (min-width: 768px) {
    p.about {
        padding: 3rem 0 0 0;
    }
}
.topbtn {
    margin: 2rem auto 10rem;
}
@media screen and (min-width: 768px) {
    .topbtn {
        margin: 5rem auto 5rem;
    }
}
/* -- information -------------------------------------------------------------------------------- */
.infotitle {
    font-family: 'Noto Sans JP';
    font-weight: 700;
    font-size: 2.4rem;
    color: #00AABB;
    display: block;
}
.infobox {
    padding-bottom: 5rem;
}
.infodate {
    display: inline-block;
    width: 15rem;
}
.infolist {
    padding: 1.6rem 0;
}
.infolist:not(:last-child) {
    border-bottom: 1px dotted #645858;
}
.infolist a {
    display: block;
    padding-top: 1rem;
}
@media screen and (min-width: 1080px) {
    .infolist a {
        display: inline;
    }
}
.fa-file-pdf-o::before {
    display: inline-block;
    content: '';
    padding-left: 1rem;
}

.cat_docs {
    display: inline-block;
    width: 8rem;
    text-align: center;
    background: #0088BB;
    font-size: 1.4rem;
    color: #fff;
    padding: 1px 10px;
    margin-right: 2rem;
}

.cat_info {
    display: inline-block;
    width: 8rem;
    text-align: center;
    background: #00BB88;
    font-size: 1.4rem;
    color: #fff;
    padding: 1px 10px;
    margin-right: 2rem;
}

.detailtxt {
    margin-left: calc(20px + 10%);
    margin-right: calc(20px + 10%);
    text-align: justify;
    text-justify: inter-ideograph;
}

@media screen and (max-width:768px) {
    .detailtxt {
        margin-left: 5%;
        margin-right: 5%;
    }
}
/* -- project -------------------------------------------------------------------------------- */
.youtube {
    width: 100%;
    aspect-ratio: 16 / 9;
}
.youtube iframe {
    width: 100%;
    height: 100%;
}
.altver {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    grid-gap: 5px 15px;
}
.btn_youtube {
    display: table;
    position: relative;
    margin: 14px auto;
    padding: 0.5rem 0;
    min-width: 140px;
    border: 1px solid #0000AA;
    color: #0000AA;
    background-color: #FFF;
    font-size: 1.6rem;
    border-radius: 50vh;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    transition: 0.5s;
}
.btn_youtube:hover {
    border: 1px solid #0000AA;
    background-color: #0000AA;
    color: #FFF;
    transition: 0.5s;
}
.projectimg {
    width: 100%;
    max-width: 1119px;
}

/* -- organization -------------------------------------------------------------------------------- */
.headline_sub_org {
    font-family: 'Noto Sans JP';
    font-weight: 700;
    font-size: 2rem;
    color: #00AABB;
    text-align: center;
    padding-top: 2rem;
    padding-bottom: 2rem;
}
.headline_sub_org:first-child {
    padding-top: 0;
}
.box_hd {
    border: 1px solid #00D0B1;
    background-color: #00D0B1;
    text-align: center;
    font-weight: 700;
    color: #FFF;
    padding: 0.25rem;
    width: 100%;
    margin: 0 auto;
}
.box_cl {
    border: 1px solid #00D0B1;
    border-width: 0 1px 1px 1px;
    text-align: center;
    font-size: 1.4rem;
    padding: 1rem;
    width: 100%;
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bdright {
    border-right-width: 1px;
}
.bdtop:first-child {
    border-top-width: 1px;
}
.member {
    border: 1px solid #00D0B1;
    padding: 2rem;
    line-height: 2;
}
@media screen and (min-width: 768px) {
    .member {
        line-height: 3;
    }
}
@media screen and (min-width: 768px) {
    .box_cl {
        border-width: 0 0 1px 1px;
    }
    .bdright {
        border-right-width: 1px;
    }
    .bdtop {
        border-top-width: 1px;
    }
    .grid_1 {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
    }
    .hd1 {
        grid-column: 3/4;
    }
    .cl1 {
        grid-column: 3/4;
    }

    .grid_2 {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
    }
    .hd2 {
        grid-column: 2/4;
    }
    .cl2-1 {
        grid-column: 2/3;
    }
    .cl2-2 {
        grid-column: 3/4;
    }
    .grid_3 {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
    }
    .hd3 {
        grid-column: 2/5;
    }
    .cl3-1 {
        grid-column: 2/3;
    }
    .cl3-2 {
        grid-column: 3/4;
    }
    .cl3-3 {
        grid-column: 4/5;
    }
    .grid_5 {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
    }
    .hd5 {
        grid-column: 1/6;
    }
    .cl5-1 {
        grid-column: 1/2;
    }
    .cl5-2 {
        grid-column: 2/3;
    }
    .cl5-3 {
        grid-column: 3/4;
    }
    .cl5-4 {
        grid-column: 4/5;
    }
    .cl5-5 {
        grid-column: 5/6;
    }
}

/* -- contact -------------------------------------------------------------------------------- */
.staff {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 4rem 0;
}
@media screen and (min-width: 768px) {
    .staff {
        flex-direction: row;
    }
}
.staffitem {
    flex: 1;
    border-left: 4px solid #00AABB;
    padding-left: 1rem;
}

/* -- form -------------------------------------------------------------------------------- */
p.contact_text {
    display: block;
    margin: 0 auto;
}
.entryform {
    padding: 0 5% 5rem;
}
@media screen and (min-width: 768px) {
    .entryform {
        padding: 0 10% 5rem;
    }
}
label {
    font-weight: 700;
}
.chkbox {
    font-weight: normal;
    cursor: pointer;
}
input {
    font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Segoe UI', HiraginoCustom, 'Hiragino Kaku Gothic ProN', YuGothic, 'Yu Gothic Medium', Meiryo, sans-serif;
}
input#zipcode {
    width: 110px;
}
input#accept {
    transform: scale(1.6);
    width: 1rem;
    margin-right: 10px;
}
.submitbtn {
    width: 24rem;
    margin: 3rem auto;
}
.submitbtn:disabled {
    border: 1px solid #999999;
    background-color: #999999;
    color: #FFF;
}
.badge_required{
    font-size: 1.2rem;
    color: #FFF;
    background-color: #D82C2C;
    border-radius: 3px;
    padding: 1px 5px;
    margin-left: 10px;
    vertical-align: 1px;
    right: 0;
}
.formbtn {
    width: 120px;
    text-align: center;
    border: none;
    background-color: #0000AA;
    color: #FFF;
    margin-left: 0.5rem;
    transition: background-color 0.3s;
}
.formbtn:hover {
    background-color: #4040A0;
    transition: background-color 0.3s;
}
input, textarea {
    border:1px solid #999999;
    background-color: #FFF;
    padding-left: 0.5rem;
    border-radius: 3px;
    width: 100%;
}
.inputarea {
    padding-bottom: 1.6rem;
}
.captchatext {
    display: block;
    font-size: 1.4rem;
    padding: 0.5rem 0;
}
.alertmsg {
    font-size: 1.4rem;
    color: #D82C2C;
}
#error_message {
    padding-bottom: 1.6rem;
}
.form-control {
    resize: vertical;
}
::placeholder {
    color: #cccccc;
}
:focus-visible {
    border: 1px solid #00D0B1;
    outline: 1px solid #00D0B1;
}

/* -- mail.php -------------------------------------------------------------------------------- */
            .formContainer {
                width: 100%;
                max-width: 1280px;
                padding: 0 5%;
                margin: 0 auto;
            }
            .confirm_msg {
                font-family: 'Noto Sans JP';
                font-weight: 700;
                font-size: 1.8rem;
                color: #00D0B1;
                text-align: center;
                padding-bottom: 1.6rem;
            }

            #formWrap {
                width: 80%;
                margin: 5rem auto;
                color: #222222;
            }

            table.formTable {
                width: 100%;
                margin: 0 auto;
                border-collapse: collapse;
            }

            table.formTable td,
            table.formTable th {
                border: 1px solid #ccc;
                padding: 16px;
            }

            table.formTable th {
                width: 30%;
                font-weight: normal;
                background: #E7FBF8;
                text-align: left;
            }

            p.error_messe {
                margin: 5px 0;
                color: red;
            }


            /*　簡易版レスポンシブ用CSS（必要最低限のみとしています。ブレークポイントも含め自由に設定下さい）　*/
            @media screen and (max-width:572px) {
                #formWrap {
                    width: 95%;
                    margin: 5rem auto;
                }

                table.formTable th,
                table.formTable td {
                    width: auto;
                    display: block;
                }

                table.formTable th {
                    margin-top: 5px;
                    border-bottom: 0;
                }
            }

/* -- footer -------------------------------------------------------------------------------- */
#footer {
    padding-bottom: 0;
    color: #FFF;
}
.footer_container {
    padding: 4rem 5% 2rem;
    background: #00D0B1;
    text-align: center;
}

.copyright {
    display: block;
    font-size: 1.2rem;
    margin-top: 30px;
    line-height: normal;
}
.office {
    display: block;
    padding-top: 2rem;
}

.single_container {
    width: 100%;
    max-width: 1280px;
    padding: 0 5% 10rem;
    margin: 0 auto;
}

/* -- pagetop -------------------------------------------------------------------------------- */
#page_top {
    position: fixed;
    bottom: 30px;
    right: 20px;
    z-index: 9999;
}
#page_top a {
    position: relative;
    display: flex;
    width: 60px;
    height: 60px;
    justify-content: center;
    background: rgba(0,170,187,0.5);
    transition: opacity .6s ease;
    color: rgba(255,255,255,1);
    align-items: center;
    text-decoration: none;
    font-size: 30px;
    border-radius: 5px;
    transition: 0.3s;
}
#page_top a:hover {
    background-color: rgba(0,170,187,1);
    text-decoration: none;
    transition: 0.3s;
}

/* -- policy -------------------------------------------------------------------------------- */
.policy_topic {
    display: block;
    border-bottom: 1px solid #ccc;
    font-size: 1.8rem;
    font-weight: 700;
    padding-bottom: 1rem;
}
.policy_inner p::before {
    display: block;
    content: '';
    padding-bottom: 1rem;
}
.policy_inner {
    padding-bottom: 4rem;
}

.policy_inner ol {
    list-style: decimal;
    padding-top: 1rem;
    padding-left: 2rem;
}
/* -- jisseki -------------------------------------------------------------------------------- */
.kiyaku {
    margin-bottom: 9rem;
}
.jisseki_inner {
    margin-bottom: 10rem;
}
.jisseki {
    margin-bottom: 5rem;
}
.jisseki li {
    display: flex;
    list-style: none;
    background-color: none;
    padding: 2rem 1rem;
    border-bottom: 1px dotted #645858;
    line-height: 1.5;
}
.jisseki_date {
    width: 10rem;
    margin: 0 1rem;
    flex-shrink: 0;
}

.org_inner {
    margin-bottom: 10rem;
}