﻿@charset "UTF-8";

/* 一般・共通設定 */

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body,html{
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    line-height: 1.7;
}
h1{
    font-family: 'Noto Serif JP', serif;
}
ul,ol,li{
    list-style-type: none;
}
img{
    vertical-align: bottom;
    width: 100%;
    height: auto;
}
a{
    text-decoration: none;
    display: block
}


header{
    background-image: url(../images/header_bg02.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    width: 100%;
    height: 0;
    padding-top: 47.6%;
}
header section{
    width: 90%;
    max-width: 960px;
    margin: 0 auto;
}
header section h1{
    display: none;
}
header section div{
    margin-top: -5rem;
    display: flex;
}
header section div p a{
    background: rgba(63,18,121,.5);
    color: rgba(255,255,255,1);
    font-family: 'Noto Serif JP', serif;
    padding: .5rem 2rem;
    border-radius: 2rem;
    margin-right: 2rem;
}
header section div p a:hover{
    background: rgba(63,18,121,1);
}
@media screen and (max-width: 760px) {
    header{
        background-image: url(../images/header_bg_mb02.jpg);
        padding-top: 116.21%;
    }
    header section div{
        margin-top: 1rem;
        flex-direction: column;
    }
    header section div p {
        width: 80%;
        margin: 0 auto .5rem;
    }
}



main{
    background: rgba(239, 238, 2324, 1);
}
@media screen and (max-width: 760px) {
    main{
        padding-top:8rem;
    }
}

article section{
    width: 90%;
    max-width: 960px;
    margin: 0 auto;
    padding: 3rem 0;
}
@media screen and (max-width: 760px) {
    article section{
        padding: 2rem 0;
    }
}

article section#charm h2{
    width: 376px;
    margin: 0 auto 1.5rem;
}
article section#charm > ul{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    grid-template-rows: repeat(5,auto);
    gap: 3rem;
}
article section#charm > ul li h3{
    font-size: 1rem;
    color: rgba(63,18,121,1);
    margin-top: .5rem;
}
article section#charm > ul li p{
    color: rgba(63,18,121,1);
    font-family: 'Noto Serif JP', serif;
}
article section#charm > ul li:first-of-type{
    grid-column: 1;
    grid-row: 2 / 4;
}
article section#charm > ul li:nth-of-type(2){
    grid-column: 2;
    grid-row: 1 / 3;
}
article section#charm > ul li:nth-of-type(3){
    grid-column: 3;
    grid-row: 2 / 4;
}
article section#charm > ul li:nth-of-type(4){
    grid-column: 1;
    grid-row: 4 / 6;
}
article section#charm > ul li:nth-of-type(5){
    grid-column: 2;
    grid-row: 3 / 5;
    margin-top: -2rem;
}
article section#charm > ul li:nth-of-type(6){
    grid-column: 2;
    grid-row: 5 / 7;
    margin-top: -10rem;
}
article section#charm > ul li:last-of-type{
    grid-column: 3;
    grid-row: 4 / 6;
}
@media screen and (max-width: 760px) {
    article section#charm h2{
        width: 80%;
    }
    article section#charm > ul{
        grid-template-columns: 1fr;
        grid-template-rows: repeat(7,auto);
        gap: 2rem;
    }
    article section#charm > ul li:first-of-type{
        grid-column: 1;
        grid-row: 1;
    }
    article section#charm > ul li:nth-of-type(2){
        grid-column: 1;
        grid-row: 2;
    }
    article section#charm > ul li:nth-of-type(3){
        grid-column: 1;
        grid-row: 3;
    }
    article section#charm > ul li:nth-of-type(4){
        grid-column: 1;
        grid-row: 4;
    }
    article section#charm > ul li:nth-of-type(5){
        grid-column: 1;
        grid-row: 5;
        margin-top: 0rem;
    }
    article section#charm > ul li:nth-of-type(6){
        grid-column: 1;
        grid-row: 6;
        margin-top: 0rem;
    }
    article section#charm > ul li:last-of-type{
        grid-column: 1;
        grid-row: 7;
    }
    article section#charm > ul li{
        display: grid;
        grid-template-columns: 1fr 2fr;
        gap: 2rem;
    }
    article section#charm > ul li h3{
        margin-top: 0rem;
    }
}


article section#jobs h2{
    width: 426px;
    margin: 0 auto 1.5rem;
}
article section#jobs h2 + p{
    text-align: center;
    color: rgba(63,18,121,1);
    font-family: 'Noto Serif JP', serif;
    margin-bottom: 2rem;
}
article section#jobs > div:first-of-type,
article section#jobs > div:nth-of-type(2){
    display: grid;
    grid-template-columns: 1fr repeat(2,2rem) 1fr;
    grid-template-rows: 3rem auto 3rem;
    margin-bottom: 3rem;
}
article section#jobs > div figure{
    z-index: 1;
}
article section#jobs > div figure img{
    border-radius: 2rem;
}
article section#jobs > div > div{
    padding: 3rem;
    background-color: rgba(255,255,255,1);
    border-radius: 2rem;
    position: relative;
}
article section#jobs > div > div h3{
    border-bottom: 6px solid rgba(63,18,121,.5);
    padding-bottom: .5rem;
    margin-bottom: 1rem;
}
article section#jobs > div > div p{
    color: rgba(63,18,121,1);
    font-family: 'Noto Serif JP', serif;
    text-align: justify;
}
article section#jobs > div:first-of-type figure{
    grid-column: 1 / 3;
    grid-row: 1 / 3;
}
article section#jobs > div:first-of-type div{
    grid-column: 2 / 5;
    grid-row: 2 / 4;
    padding-left: 4rem;
}
article section#jobs > div:first-of-type div::after{
    content: "";
    position: absolute;
    top: -2rem;
    right: 1rem;
    background-image: url(../images/meating.png);
    width: 245px;
    height: 72px;
}
article section#jobs > div:nth-of-type(2) figure{
    grid-column: 3 / 5;
    grid-row: 1 / 3;
}
article section#jobs > div:nth-of-type(2) div{
    grid-column: 1 / 4;
    grid-row: 2 / 4;
    padding-right: 4rem;
}
article section#jobs > div:nth-of-type(2) div::after{
    content: "";
    position: absolute;
    top: -2rem;
    left: 1.5rem;
    background-image: url(../images/sale.png);
    width: 177px;
    height: 57px;
}
article section#jobs > div:last-of-type{
    border-radius: 2rem;
    padding: 2rem;
    background-color: rgba(255,255,255,1);
    max-width: 600px;
    width: 90%;
    margin: 0 auto 2rem;
}
article section#jobs > div:last-of-type h4{
    background: rgba(63,18,121,1);
    color: rgba(255,255,255,1);
    padding: .5rem;
    width: 10rem;
    margin: 0 auto 1rem;
    font-weight: normal;
    text-align: center
}
article section#jobs > div:last-of-type p{
    color: rgba(63,18,121,1);
    font-family: 'Noto Serif JP', serif;
}
article section#jobs > p{
    color: rgba(63,18,121,1);
    font-family: 'Noto Serif JP', serif;
}
@media screen and (max-width: 760px) {
    article section#jobs h2{
        width: 90%;
    }
    article section#jobs h2 + p{
        text-align: left;
    }
    article section#jobs > div:first-of-type,
    article section#jobs > div:nth-of-type(2){
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        margin-bottom: 3rem;
        gap: 1rem;
    }
    article section#jobs > div:first-of-type figure{
        grid-column: 1;
        grid-row: 1;
    }
    article section#jobs > div:first-of-type div{
        grid-column: 1;
        grid-row: 2;
        padding-left: 0;
    }
    article section#jobs > div:nth-of-type(2) figure{
        grid-column: 1;
        grid-row: 1;
    }
    article section#jobs > div:nth-of-type(2) div{
        grid-column: 1;
        grid-row: 2;
        padding-right: 0;
    }
    article section#jobs > div > div{
        padding: 0rem;
        background-color: transparent;
        border-radius: 0rem;
    }
    article section#jobs > div:first-of-type div::after{
        background-image: none;
    }
    article section#jobs > div:nth-of-type(2) div::after{
        background-image: none;
    }
}



article section#flow h2{
    width: 426px;
    margin: 0 auto 1.5rem;
}
article section#flow figure{
    width: 607px;
    margin: 1.5rem auto 3rem;
}
article section#flow p{
    width: 300px;
    text-align: center;
    margin: 0 auto;
}
article section#flow p a{
    color: rgba(63,18,121,1);
    border: 2px solid rgba(63,18,121,1);
    padding: 1.5rem 0;
    background-color: rgba(255,255,255,1);
    border-radius: 2.5rem;
}
article section#flow p span{
    font-size: .8rem;
    display: block;
    color: rgba(63,18,121,1);
    margin-top: .7rem;
    font-family: 'Noto Serif JP', serif;
}
@media screen and (max-width: 760px) {
    article section#flow h2{
        width: 90%;
    }
    article section#flow figure{
        width:  80%;
        margin: 1rem auto 2rem;
    }
}



article section#message h2{
    width: 426px;
    margin: 0 auto 1.5rem;
}
article section#message > div{
    display: grid;
    grid-template-columns: 15rem 1fr;
    gap: 3rem;
}
article section#message > div figcaption{
    color: rgba(63,18,121,1);
    font-family: 'Noto Serif JP', serif;
    font-size: .9rem;
    margin-top: .5rem;
}
article section#message > div > div{
    color: rgba(63,18,121,1);
    font-family: 'Noto Serif JP', serif;
}
article section#message > div > div h3{
    margin-bottom: .5rem;
    position: relative;
}
article section#message > div > div h3::before,
article section#message > div > div h3::after{
    content: "";
    position: absolute;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: rgba(63,18,121,.15);
    z-index: 0;
}
article section#message > div > div h3::before{
    left: -.5rem;
}
article section#message > div > div h3::after{
    left: -1rem;
    top: 70%;
    transform: translateY(-50%);
}
article section#message > div > div p{
    text-align: justify;
    margin-bottom: 1.5rem;
}
article section#message > div > div p + p{
    text-align: right;
    margin-bottom: 0;
}
@media screen and (max-width: 760px) {
    article section#message h2{
        width: 90%;
    }
    article section#message > div{
        grid-template-columns: 1fr;
    }
    article section#message > div > div h3{
        font-size: 1.1rem;
    }
}



article section#outline h2{
    width: 426px;
    margin: 0 auto 1.5rem;
}
article section#outline div{
    border: 1px solid rgba(63,18,121,1);
    border-radius: 2rem;
    padding: 1.5rem 3rem;
}
article section#outline div table{
    width: 100%;
    border-collapse: collapse;
}
article section#outline div table th{
    white-space: nowrap;
    font-weight: normal;
    color: rgba(63,18,121,1);
    vertical-align: top;
    padding-right: 1rem;
    text-align: justify;
}
article section#outline div table th,
article section#outline div table td{
    padding: .7rem;
}
@media screen and (max-width: 560px) {
    article section#outline h2{
        width: 90%;
    }
    article section#outline div{
        border-radius: 1rem;
        padding: 1rem 2rem;
    }
    article section#outline div table th,
    article section#outline div table td{
        display: block;
        width: 100%;
        padding: 0rem;
    }
    article section#outline div table td{
        padding-bottom: 1rem;
        text-align: justify;
    }
}



aside{
    width:100%;
    background: linear-gradient(45deg, rgba(203,198,220,1) 25%, transparent 25%, transparent 75%, rgba(203,198,220,1) 75%),
                linear-gradient(45deg, rgba(203,198,220,1) 25%, transparent 25%, transparent 75%, rgba(203,198,220,1) 75%);
    background-color: rgba(200,196,217,1);
    background-size: 100px 100px;
    background-position: 0 0, 50px 50px;
}
aside section{
    width: 90%;
    max-width: 960px;
    margin: 0 auto;
    padding: 3rem 0;
}
aside section h2{
    text-align: center;
    font-family: 'Noto Serif JP', serif;
    color: rgba(63,18,121,1);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
aside section h2::before{
    content: "";
    background-image: url(../images/aside_h2.png);
    background-size: cover;
    width: 80px;
    height: 80px;
    margin: 0 auto;
}
aside section h2 + p,
aside section p + p{
    text-align: center;
    font-family: 'Noto Serif JP', serif;
    color: rgba(63,18,121,1);
    margin-bottom: 3rem;
}
aside section table{
    width: 100%;
    border-collapse: collapse;
}
aside section table th{
    white-space: nowrap;
    font-weight: normal;
    color: rgba(63,18,121,1);
    vertical-align: top;
    padding-right: 1rem;
}
aside section table td span{
    display: block;
    font-size: .85rem;
    color: rgba(102,102,102,1);
    padding-bottom: 1rem;
}
aside section table tr td{
    width: 45%;
}
aside section table + p{
    margin: 0 auto;
    width: 12rem;
}
@media screen and (max-width: 560px) {
    aside section table th,
    aside section table td{
        display: block;
        width: 100%;
    }
    aside section table tr td{
        width: 100%;
    }
}

footer{
    background-color: rgba(63,18,121,1);
    color: rgba(255,255,255,1);
}
footer > p{
    text-align: center;
    background-color: rgba(255,255,255,1);
    color: rgba(63,18,121,1);
    padding: .5rem 0;
    font-size: .85rem;
}
footer a{
    color: rgba(255,255,255,1);
}
footer section{
    width: 90%;
    max-width: 960px;
    margin: 0 auto;
    padding: 3rem 0;
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 3rem;
}
footer section h3 span{
    display: block;
    padding-top: 1rem;
    font-weight: normal;
    font-size: .9rem;
}
footer section table{
    width: 100%;
    border-collapse: collapse;
}
footer section table caption{
    text-align: left;
    font-family: 'Noto Serif JP', serif;
    font-size: 1.5rem;
}
footer section table th{
    text-align: left;
    vertical-align: top;
    white-space: nowrap
}
footer section table th,
footer section table td{
    padding: .5rem 0;
}
footer section table td{
    padding-left: 1rem;
}
@media screen and (max-width: 560px) {
    footer section{
        grid-template-columns: 1fr;
    }
    footer section table th,
    footer section table td{
        display: block;
        width: 100%;
    }
    footer section h3 img{
        width: 170px;
    }
    footer section h3 br{
        display: none;
    }
}


input,
textarea {
    -webkit-transition: all 0.5s ease-out 0s;
    -moz-transition: all 0.5s ease-out 0s;
    -ms-transition: all 0.5s ease-out 0s;
    -o-transition: all 0.5s ease-out 0s;
    transition: all 0.5s ease-out 0s;
}
input[type="text"],
input[type="email"]{
    border: 2px solid rgba(51,51,51,.3);
    height: 2.5rem;
    box-shadow: none;
    width: 90%;
    padding-left: 10px;
}
input[name="year_A"]{
    width: 4rem;
}
input[name="year_C"],
input[name="year_B"]{
    width: 2rem;
}
textarea{
    border: 2px solid rgba(51,51,51,.3);
    height: 5rem;
    box-shadow: none;
    width: 100%;
    padding-left: 10px;
}
input[type="submit"] {
    border: 2px solid rgba(51,51,51,.3);
    background-color: rgba(255,255,255,1);
    -webkit-appearance: none;
    height: 3.5rem;
    width: 12rem;
    font-size: 1.2rem;
    border-radius: 5rem;
    margin: 0 auto 1rem;
    color: rgba(63,18,121,1);
}