section {
    min-height: 100vh;
    min-height: 100dvh;
    padding: 3rem 0;
    background: #FFF;
    position: relative;
    width: 100%;
    overflow: hidden;
}

@media screen and (min-width:1024px) {
    section {
        padding: 5rem 0;
        padding-left: 130px;
        padding-right: 70px;
    }

    footer {
        padding-left: 130px;
        padding-right: 70px;
    }
}

#mainvisual {
    height: 100vh;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background: #F2F5F5;
    overflow: hidden;
}

#mainvisual-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.mainvisual-img-left {
    position: absolute;
    top: 0;
    left: 0;
    width: 58%;
    height: 100%;
    display: block;
    clip-path: polygon(0 0, 70% 0, 100% 100%, 0 100%);
    z-index: 3;
    overflow: hidden;
    transform: translate(-80%);
}

.mainvisual-img-right {
    position: absolute;
    top: 0;
    right: 0;
    width: 58%;
    height: 100%;
    display: block;
    background-position: 0 calc(50% - 200px);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%);
    z-index: 1;
    overflow: hidden;
    transform: translate(80%);
}

.mainvisual-img-left span,
.mainvisual-img-right span {
    width: 100%;
    height: 100%;
    background: url(../images/mainimg1-2.jpg) no-repeat center center/cover;
    position: absolute;
    top: 0;
    left: 0;
}

.mainvisual-img-left span.mainvisual-img1 {
    background-image: url(../images/mainimg1-1.jpg);
}

.mainvisual-img-left span.mainvisual-img2 {
    background-image: url(../images/mainimg3-2.jpg);
    opacity: 0;
}

.mainvisual-img-left span.mainvisual-img3 {
    background-image: url(../images/mainimg2-1.jpg);
    opacity: 0;
}

.mainvisual-img-right span.mainvisual-img1 {
    background-image: url(../images/mainimg1-2.jpg);
}

.mainvisual-img-right span.mainvisual-img2 {
    background-image: url(../images/mainimg3-1.jpg);
    opacity: 0;
}

.mainvisual-img-right span.mainvisual-img3 {
    background-image: url(../images/mainimg2-2.jpg);
    opacity: 0;
}

#mainvisual-inner {
    width: 90%;
    max-width: 768px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 3;
}

#mainvisual-inner>div {
    flex: 1;
    padding-top: 1rem;
    max-width: 390px;
}

#mainvisual-inner p {
    font-size: 0.9rem;
    margin: 1rem 0 0;
}

#mainvisual-inner p a {
    display: inline-block;
    padding: 0.1em;
    border-bottom: 1px solid #333;
    color: #333;
}

#mainvisual-inner h1 {
    font-size: 1.8rem;
    margin: 0 2.5rem 0 0;
    font-weight: normal;
    line-height: 1.3;
}

#mainvisual-inner h1 strong {
    font-size: 2.5rem;
}

#mainvisual-inner h2,
#mainvisual-txt h2 {
    font-size: 1.15rem;
    font-weight: normal;
    margin: 0;
}

#mainvisual-inner h1 span,
#mainvisual h2 span {
    display: block;
}

#mainvisual-txt h2 span {
    font-size: 1.2em;
    font-weight: bold;
}

#mainvisual-txt {
    background: #F2F5F5;
    width: 50%;
    height: 200px;
    position: absolute;
    bottom: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    padding-left: 5%;
    box-sizing: border-box;
    transform: translateX(20px);
    opacity: 0;
}

#mainvisual #scrolldown {
    width: 100px;
    height: 100px;
    position: absolute;
    bottom: 5%;
    left: calc(50% - 50px);
    z-index: 10;
}

#mainvisual #scrolldown span {
    display: block;
    width: 100px;
    height: 100px;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.9));
    background: url(../images/scroll.svg) no-repeat center center/contain;
    animation: Scroll 10s linear infinite;
}

#mainvisual #scrolldown em {
    display: block;
    width: 100px;
    height: 100px;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
    background: url(../images/down.svg) no-repeat center center/contain;
    animation: Down 3s linear infinite;
    position: absolute;
    top: 0;
    left: 0;
}

@keyframes Scroll {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: rotate(-360deg);
    }
}

@keyframes Down {
    0% {
        transform: translateY(-15px);
        opacity: 0;
    }

    50% {
        transform: translateY(0px);
        opacity: 1;
    }

    100% {
        transform: translateY(15px);
        opacity: 0;
    }
}

@media screen and (max-width:1023px) {
    #mainvisual .parentsite {
        display: none;
    }

    .mainvisual-img-left {
        width: 100%;
        height: 58%;
        clip-path: polygon(0 0, 100% 0, 100% 70%, 0 100%);
        transform: translate(0, -80%);
    }

    .mainvisual-img-right {
        width: 100%;
        height: 58%;
        clip-path: polygon(0 30%, 100% 0, 100% 100%, 0 100%);
        top: auto;
        bottom: 0;
        transform: translate(0, 80%);
    }

    #mainvisual-txt {
        margin: auto;
        top: 0;
        left: 0;
        padding: 0;
        width: auto;
        height: auto;
        z-index: 5;
        background: transparent;
    }

    #mainvisual-txt h2 {
        font-size: 1.25rem;
        text-align: center;
        padding: 2rem;
        background: rgba(242, 245, 245, 0.9);
    }

    #mainvisual-inner {
        display: block;
        width: 90%;
        max-width: 400px;
        padding: 0;
        margin: 0 auto;
        text-align: center;
        z-index: 6;
    }

    #mainvisual-inner>div {
        width: 100%;
        padding: 0;
    }

    #mainvisual-inner h2 {
        margin-top: 2rem;
    }

    #mainvisual-inner h1 {
        margin: 0;
    }
}

#message {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

#message-inner {
    max-width: 600px;
    margin: 0 auto;
    width: 90%;
}

#message-inner h3 {
    font-size: 1.3rem;
    font-weight: bold;
    margin-top: 0;
}

#message-inner h3 span {
    font-size: 1.1rem;
    font-weight: normal;
}

#message-inner h3 em {
    font-style: normal;
    display: inline-block;
}

@media screen and (min-width:1024px) {
    #message-inner h3 {
        font-size: 1.75rem;
    }

    #message-inner h3 span {
        display: block;
        font-size: 1.15rem;
    }
}

.bgimg {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    background: url(../images/vision-bg.jpg) no-repeat center center/cover;
    z-index: -1;
    opacity: 0;
}

#vision {
    color: #FFF;
    position: relative;
    background: transparent;
}

#vision:after {
    content: ' ';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1;
}

#vision .container {
    position: relative;
    z-index: 2;
}

#visionblock {
    border: 1px solid #FFF;
    padding: 3rem 5%;
}

#visionblock h2 {
    font-size: 0.8rem;
    color: #FFF;
    text-align: center;
    margin: 0;
}

#visionblock p {
    margin: 1.5rem 0 0;
}

#vision-explanation {
    padding: 0 0 3rem;
}

#vision-explanation h3 {
    color: #FFF;
    text-align: center;
    margin: 5rem 0 3rem;
}

#vision-explanation h3 span {
    display: block;
    font-size: 1rem;
}

.explanation-inner {
    padding: 0 0 3rem;
    text-align: center;
}

.explanation-inner:not(:last-child) {
    border-bottom: 1px solid #FFF;
}

.explanation-inner h4 {
    color: #FFF;
    font-size: 1rem;
    text-align: center;
    margin: 0 0 1rem;
}

.explanation-inner h4 {
    color: #FFF;
    font-size: 1.1rem;
    font-weight: bold;
    margin: 0.75rem 0;
    text-align: center;
}

.explanation-inner h4 span {
    display: block;
}

@media screen and (min-width:1024px) {
    #visionblock {
        text-align: center;
    }

    #visionblock p {
        font-size: 1.2rem;
    }

    #visionblock p span {
        display: block;
    }

    .explanation-inner h4 {
        font-size: 1.25rem;
    }

    .explanation-inner h4 span {
        display: inline;
    }

    .explanation-inner p {
        text-align: left;
    }

    .explanation-inner div {
        flex: 1;
    }
}

#hospital .container {
    padding-bottom: 2rem;
}

#hospital h2 {
    font-weight: bold;
    font-size: 1.1rem;
}

#hospital h2 span {
    display: block;
}

.hospital-block {
    margin-top: 3rem;
}

.hospital-block h3 {
    font-size: 1.5rem;
    margin: 0;
    text-align: center;
}

.hospital-block h3 span {
    font-size: 1rem;
    display: block;
}

.hospital-block h3 a {
    color: #111;
    padding-bottom: 0.1rem;
    border-bottom: 1px solid #111;
}

.hospital-block h3 a:after {
    content: none;
}

.hospital-bt a {
    display: block;
    padding: 0.5rem;
    text-align: center;
    font-size: 0.7rem;
}

.hospital-block p {
    font-size: 0.9rem;
    color: #555;
}

.hospital-block .hospital-block-txt {
    padding: 1rem;
    margin-top: 1rem;
}

.hospital-block .hospital-block-txt ul {
    list-style: none;
    margin-top: 2rem;
    font-size: 0;
    text-align: center;
}

.hospital-block .hospital-block-txt ul li {
    display: inline-block;
    padding: 3px 0.5rem;
    background: #DDD;
    color: #333;
    font-size: 0.9rem;
    margin: 3px;
    font-weight: bold;
}

@media screen and (min-width:1280px) {
    #hospital h2 {
        font-size: 1.5rem;
        text-align: center;
    }

    .hospital-block {
        display: flex;
        margin-top: 5rem;
        align-items: center;
    }

    .hospital-block figure,
    .hospital-block .hospital-block-txt {
        width: 50%;
    }

    .hospital-block .hospital-block-txt {
        padding: 5vw;
        margin: 0;
    }
}

#learning,
.learning-sub {
    position: relative;
    background: transparent;
    display: flex;
    align-items: center;
}

#learning {
    background: transparent;
}

#learning:after,
.learning-sub:after {
    content: ' ';
    width: 100%;
    height: 100%;
    background: rgba(242, 245, 245, 0.6);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
}

#learning-block,
.learning-sub-block {
    padding: 0 10%;
    width: 100%;
    position: relative;
    z-index: 3;
}

#learning-block h2,
.learning-sub-block h2 {
    margin-top: 0;
    font-weight: bold;
    text-align: center;
}

.learning-sub-block h2 span {
    display: inline-block;
}

#learning-block p,
.learning-sub-block p {
    font-size: 0.9rem;
}

#learning-block a {
    display: block;
    margin: 2rem auto 0;
    width: 230px;
    padding: 0.5rem;
    font-size: 0.8rem;
    text-align: center;
    color: #777;
    border: 1px solid #777;
}


#learning .bgimg {
    background-image: url(../images/learning-bg.jpg);
}

#learning-1 .bgimg {
    background-image: url(../images/learning-1.jpg);
}

#learning-2 .bgimg {
    background-image: url(../images/learning-2.jpg);
}

.learning-sub-img {
    position: relative;
    z-index: 3;
    margin: 2rem auto;
}

@media screen and (min-width:1024px) {

    #learning:after,
    .learning-sub:after {
        content: none;
    }

    #learning {
        padding: 0;
        align-items: unset;
    }

    #learning-block {
        width: 100%;
        padding: 1rem 5.5rem;
        display: flex;
        align-items: center;
        background: rgba(242, 245, 245, 0.6);
        opacity: 0;
        transform: translateX(-100%);
    }

    #learning-block div {
        padding-left: 130px;
    }

    #learning-img {
        width: calc(100% - 512px);
        margin: 0;
    }

    #main .learning-sub {
        background: #F2F5F5;
    }

    #learning-1 .bgimg {
        display: none;
    }
}

@media screen and (min-width:1280px) {
    #learning-block {
        width: 712px;
        background: #F2F5F5;
    }

    .learning-sub .container {
        display: flex;
        align-items: center;
    }

    .learning-sub-img {
        position: relative;
        width: 50%;
    }

    .learning-sub-img img {
        display: block;
    }

    .learning-sub-block {
        width: 50%;
        padding: 1rem 5%;
        box-sizing: border-box;
    }

    #learning-1 .learning-sub-block {
        order: 2;
    }
}

#model section {
    position: relative;
    color: #FFF;
    padding: 0;
    background: transparent;
}

#model .model-content {
    position: relative;
    background: rgba(37, 56, 71, 0.5);
}

#model section .container {
    position: relative;
    z-index: 3;
    padding: 3rem 0;
}

#model h2,
#model h3,
#model h4 {
    color: inherit;
}

#model h2 {
    font-size: 2rem;
    font-weight: bold;
    padding-top: 3rem;
}

#model h2.model-title em {
    display: block;
    font-style: normal;
}

#model h2.model-title strong {
    display: inline-block;
    margin-right: 1rem;
}

#model h2.model-title span {
    display: inline-block;
    opacity: 0;
    visibility: visible;
    transform: rotateY(90deg);
}

#model h3 {
    margin-top: 5rem;
}

#model h3 span {
    display: block;
}

#model h3 span {
    font-size: 1rem;
}

#model h4 {
    padding-left: 2rem;
    position: relative;
}

#model h4:after {
    content: ' ';
    width: 1rem;
    height: 1px;
    position: absolute;
    top: 50%;
    left: 0;
    background: #FFF;
}

.model-block-left p {
    margin: 2rem 0;
}

.model-block-right img {
    width: 100%;
    display: block;
    margin-bottom: 2rem;
}

#model table {
    width: 100%;
}

#model table th,
#model table td {
    padding: 1rem;
    border-bottom: 1px solid rgba(242, 245, 245, 0.3);
}

#model table th {
    font-weight: normal;
    color: rgba(242, 245, 245, 0.7);
    width: 7rem;
    font-size: 0.8rem;
}

@media screen and (min-width:1024px) {
    #model h2 {
        font-size: 3rem;
    }

    .model-block,
    .model-reception-inner {
        display: flex;
    }

    .model-block-left,
    .model-block-right,
    .model-reception-left,
    .model-reception-right {
        width: 50%;
        padding: 0 5%;
    }

    #model section .container {
        padding: 5rem 0 7rem;
    }
}

@media screen and (max-width:1023px) {
    .model-bg span.model-bg-left {
        width: 100%;
        height: 58%;
        clip-path: polygon(0 0, 100% 0, 100% 70%, 0 100%);
    }

    .model-bg span.model-bg-right {
        width: 100%;
        height: 58%;
        clip-path: polygon(0 30%, 100% 0, 100% 100%, 0 100%);
        top: auto;
        bottom: 0;
    }
}

#news .news-header {
    text-align: center;
}

#news .news-header h2 {
    font-size: 1.5rem;
    font-weight: bold;
    margin: 0;
}

#news .news-header .bt a {
    display: block;
    margin: 1rem auto;
    width: 230px;
    font-size: 0.8rem;
    color: #333;
    border: 1px solid #DDD;
    padding: 0.5rem;
}

#news article {
    padding: 1rem 0;
}

#news article a {
    display: flex;
    background: #F2F5F5;
    color: #333;
    align-items: flex-start;
}

#news article a .news-txt {
    padding: 1rem;
    flex: 1;
}

#news article a .news-txt p {
    display: none;
}

.news-txt .news-title {
    font-size: 1rem;
    font-weight: bold;
    margin-top: 0.5rem;
}

.news-txt .day {
    font-size: 0.7rem;
}

.news-txt ul.category-list {
    list-style: none;
    font-size: 0;
}

.news-txt ul.category-list li {
    display: inline-block;
    padding: 3px 10px;
    background: #1f5d34;
    color: #FFF;
    margin: 3px;
    font-size: 0.6rem;
}

#news article .thum {
    width: 70px;
    height: 70px;
    margin: 1rem 1rem 1rem 0;
}

#news article .thum span.noimg {
    width: 100%;
    height: 100%;
    display: block;
    background: #FFF;
}

@media screen and (min-width:1280px) {
    #news .news-header {
        text-align: left;
        display: flex;
        justify-content: space-between;
        margin-bottom: 2rem;
    }

    #news .news-header .bt a {
        margin: 0;
        border: none;
        position: relative;
        text-align: right;
        width: auto;
    }

    #news .news-header .bt a:after {
        content: ' ';
        width: 3rem;
        height: 1px;
        background: #333;
        position: absolute;
        top: 50%;
        right: 6rem;
        transition: all .5s;
    }

    #news .news-header .bt a:hover:after {
        width: 1rem;
    }

    #news .news-block {
        display: flex;
        align-items: flex-start;
    }

    #news article {
        width: 50%;
        padding: 0 0.5rem 0 0;
    }

    #news article a {
        display: block;
    }

    #news .news-block-inner {
        width: 50%;
        display: flex;
        align-items: flex-start;
        flex-wrap: wrap;
    }

    #news .news-block-inner article {
        padding: 0 0.5rem 1rem 0.5rem;
    }

    #news article a .news-txt p {
        display: block;
        font-size: 0.8rem;
    }

    #news article .thum {
        width: 100%;
        height: 0;
        padding-top: 56.25%;
        position: relative;
        margin: 0;
        overflow: hidden;
        border: 1px solid #F2F5F5;
    }

    #news article .thum span.noimg {
        position: absolute;
        top: 0;
        left: 0;
    }

    #news article .thum figure {
        position: absolute;
        top: 50%;
        left: 0;
        width: 100%;
        height: 0;
        padding-top: 100%;
        transform: translate(0, -50%);
    }

    #news article .thum figure img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
    }

}

#entry {
    position: relative;
}

#entry .container {
    position: relative;
    z-index: 2;
}

#entry h2 {
    text-align: center;
    font-size: 3.5rem;
    color: #FFF;
    line-height: 1.2;
    font-weight: bold;
    margin: 0;
}

#entry h2 span {
    display: block;
    font-size: 1rem;
    font-weight: normal;
}

#entry:after {
    content: ' ';
    width: 100%;
    height: 50%;
    background: #357ef4;
    background-image: linear-gradient(60deg, #4995b8 0%, #82b849 100%);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}

#entry p {
    color: #FFF;
    text-align: center;
    font-size: 0.7rem;
}

#entryform {
    padding: 1rem 1.5rem;
    text-align: left;
    max-width: 1024px;
    margin: 3rem auto;
    background: #FFF;
}

#entryform p {
    color: #333;
    font-size: 1rem;
}

#entryform .form-row p {
    text-align: left;
    margin: 0;
}

#entryform p.sub_txt {
    text-align: center;
    color: #777;
    font-size: 0.6rem;
}

#entryform p.ninni {
    color: #777;
    font-size: 0.8rem;
    margin-top: 0.5rem;
}

#interview {
    background: #F2F5F5;
}

#interview h2 {
    font-size: 1rem;
}

#interview h2 strong {
    font-size: 2rem;
    display: block;
}

#interview h4 {
    font-weight: bold;
}

#interview p.question {
    padding-left: 1.5rem;
    position: relative;
    font-size: 0.9rem;
}

#interview p.question:after {
    content: 'Q.';
    font-weight: bold;
    font-size: 1rem;
    color: #AAA;
    position: absolute;
    top: -0.1rem;
    left: 0;
}

#interview p.answer {
    margin: 1rem 0 3rem 0.5rem;
    padding-left: 1rem;
    border-left: 1px solid #AAA;
}

.interview-titileblock-inner {
    padding: 5vw;
}

.interview-titileblock-inner h3 {
    font-size: 0.8rem;
    margin: 0;
}

.interview-titileblock-inner dl {
    position: relative;
    padding-left: 7rem;
}

.interview-titileblock-inner dl dt {
    width: 6rem;
    background: #DDD;
    border-radius: 1rem;
    font-size: 0.8rem;
    padding: 0.5rem;
    text-align: center;
    position: absolute;
    top: 0.5rem;
    left: 0;
}

.interview-titileblock-inner dl dd {
    padding: 1rem;
    font-size: 0.9rem;
    line-height: 1.4;
}

.interview-titileblock-inner dl dd ul {
    padding-left: 1.5rem;
}

.interview-titileblock figure {
    width: 100%;
    padding-top: 125%;
    position: relative;
}

.interview-titileblock figure span {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.interview-titileblock figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media screen and (min-width:512px) {
    .interview-titileblock figure {
        padding-top: 75%;
    }
}

@media screen and (min-width:1280px) {
    .interview-titileblock {
        position: relative;
    }

    .interview-titileblock figure {
        position: absolute;
        top: 0;
        right: 0;
        padding-top: 0;
        height: 100%;
        width: 50%;
    }

    .interview-titileblock-inner {
        width: 50%;
        padding: 2rem;
    }
}

#introduction .container {
    padding-bottom: 2rem;
}

#introduction h2 {
    font-weight: bold;
    font-size: 1.1rem;
}

#introduction h2 span {
    display: block;
}

.introduction-block {
    margin-top: 0;
}

.introduction-block h3 {
    font-size: 1.5rem;
    margin: 0;
    text-align: center;
}

.introduction-block h3 span {
    font-size: 1rem;
    display: block;
}

.introduction-block h3 a {
    color: #FFF;
    padding-bottom: 0.1rem;
    border-bottom: 1px solid #111;
}

.introduction-block h3 a:after {
    content: none;
}

.introduction-bt a {
    display: block;
    padding: 0.5rem;
    text-align: center;
    font-size: 0.7rem;
}

.introduction-block p {
    font-size: 0.9rem;
    color: #FFF;
}

.introduction-block .introduction-block-txt {
    padding: 1rem;
    margin-top: 1rem;
}

.introduction-block .introduction-block-txt ul {
    list-style: none;
    margin-top: 2rem;
    font-size: 0;
    text-align: center;
}

.introduction-block .introduction-block-txt ul li {
    display: inline-block;
    padding: 3px 0.5rem;
    background: #DDD;
    color: #FFF;
    font-size: 0.9rem;
    margin: 3px;
    font-weight: bold;
}

@media screen and (min-width:1280px) {
    #introduction h2 {
        font-size: 1.5rem;
        text-align: center;
    }

    .introduction-block {
        display: flex;
        margin-top: 5rem;
        align-items: center;
    }

    .introduction-block figure,
    .introduction-block .introduction-block-txt {
        width: 50%;
    }

    .introduction-block .introduction-block-txt {
        padding-right: 5vw;
        padding-left: 5vw;
        padding: ;
        margin: 0;
    }
}