body {
    font-size: 16px;
}

body {
    font-size: 1.05rem;
    line-height: 1.8;
}
section {
     padding: 30px;
    max-width: 1260px;
    margin: 0 auto;
    
}


/*DATE*****************
         **************/
.date__title,
.date__text {
    display: flex;
    justify-content: center;
    align-items: center;

}

.date__title {
    padding: 20px 0 10px;
}

.date__title::before,
.date__title::after {
    content: "";
    height: 5px;
    width: 50%;
    background-color: #ccc;
}

.date__title::before {
    margin-right: 15px;
}

.date__title::after {
    margin-left: 15px;
}

.date__list {
    display: flex;
    justify-content: center;
    gap: 50px;
    list-style: none;
    margin-top: 20px;
}

.date__list span {
    display: inline-block;
    font-size: 30px;
    font-weight: 400;
    padding-left: 10px;
}

/*VISION*****************
         **************/


.vision__title {
    max-width: 1200px;
    border-bottom: solid 3px #ccc;
}

.vision__lead {
    display: inline-block;
    font-size: 2rem;
    font-weight: 700;
    padding: 0 0 20px 0;
    margin: 0;
}


.vision__text {
    font-size: 1.5rem;
    padding-bottom: 30px ;
}

.vision__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    margin-top: 20px;
}

.vision__text-group {
    flex: 1;
}

/* .spacer {
    height: 50vh;
 } */
.vision__image {
    flex-shrink: 0;
    width: 45%;
}

.vision__image img {
    width: 100%;
    height: auto;
    padding: 0;
    margin: 0;
}
    .fade-up {
    /* 最初は隠しておく */
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

.fade-up.is-show{
    opacity: 1;
    transform: translateY(0);
}

/*MISSION*****************
         **************/


.mission__title {
    max-width: 1200px;
    border-bottom: solid 3px #ccc;
}

.mission__lead {
    display: inline-block;
    font-size: 2rem;
    font-weight: 700;
    padding: 0 0 20px 0;
    margin: 0;
}


.mission__text {
    font-size: 1.5rem;
    padding: 0 0 30px 0;

}

.mission__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    margin-top: 20px;
}

.mission__text-group {
    flex: 1;
}
/*SERVICE*****************
         **************/
.service__title {
    max-width: 1200px;
    border-bottom: solid 3px #ccc;
}

.service__inner {
    max-width: 1200px;
    margin: 0 auto;
}
.service__list {
    gap: 20px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    list-style: none;
    
}
.service__item {
   padding: 48px 24px;
 
   
}
.service__image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}
.service__name {
    margin: 10px 0;
}
.service__text {
    
    line-height: 1.6;
    
}
/*COMPANY PROFILE*****************
         **************/


.profile__title {
    max-width: 1200px;
    border-bottom: solid 3px #ccc;
}

.profile h3 {
    margin: 10px 0;
}

.profile__table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.profile__table td,
.profile__table th {
    border: solid 1px #ccc;
}

.profile__table th {
    width: 15%;
    padding: 10px;
    background-color: #f1ebeb
}

.profile__table td {
    width: 75%;
    padding: 10px;
}

/*ACCESS*****************
         **************/


.access__title {
    max-width: 1200px;
    border-bottom: solid 3px #ccc;
}
.access__text {
    margin: 20px 0; 
    font-weight: 500;
}
.google-map {
    margin: 20px 0;
    width: 100%;
    height: 400px;
}


@media screen and (max-width: 768px) {
    .google-map {
        height: 60vw;
    }
}