@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

html {
    font-size: 62.5%;
    font-family: 'Roboto', 'Noto Sans JP', sans-serif;
    font-weight: 500;
}

body {
    font-size: 1.6rem;
    background-color: #EBEBEB;
}

a {
    text-decoration: none;
    color: #2C2C2C;
}

a:hover {
    opacity: 0.7;
}

header {
    max-width: 1200px;
    margin: auto;
    padding: 55px 0;
}

.yonhiku-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#primary-menu ul {
    display: flex;
    list-style: none;
    justify-content: space-between;
    margin-block: auto;
    margin-block-start: 0;
    padding-inline-start: 0;
}

#primary-menu li {
    margin: 0 35px;
}

.site-menu {
    background: #fff;
    padding: 20px;
    max-width: 754px;
    width: 100%;
}

.top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: auto;
}

.txt-area {
    max-width: 960px;
    width: auto;
    background-color: #FFEF72;
    padding: 100px 0;
}

.txt-area h2 {
    font-size: 5.6rem;
    letter-spacing: 20px;
    font-weight: 700;
    line-height: 1;

    max-width: 570px;
    margin: auto;
}

.genre {
    font-size: 1.8rem;
    margin: auto;
    display: block;
    max-width: 570px;
    padding: 85px 0 60px;
}

.img-area {
    max-width: 960px;
    width: auto;
    background-color: #fff;
}

.img-area img {
    margin: 0 auto;
    display: block;
    position: relative;
    top: 20%;
    right: 20%;
}

.under-line::after {
    content: "";
    width: 100%;
    height: 10px;
    background-color: #2C2C2C;
    display: block;
}

/**トップページ**/

.topcontents01 {
    background: linear-gradient(90deg, #EBEBEB 0%, #EBEBEB 50%, #fff 50%, #fff 100%);
    width: 100%;
    margin: 70px 0;
}

.topcontents02 {
    background: linear-gradient(90deg, #fff 0%, #fff 50%, #EBEBEB 50%, #EBEBEB 100%);
    width: 100%;
    margin: 70px 0;
}

.topcontents01 .inner {
    max-width: 1200px;
    width: 100%;
    margin: auto;
    background-color: #fff;
}

.topcontents02 .inner {
    max-width: 1200px;
    width: 100%;
    margin: auto;
    background-color: #fff;
}

.inner_title {
    background-color: #FFEF72;
}

.inner_title h2 {
    font-size: 3.2rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: 5px;
    padding: 95px 0 45px;
}

.inner_title h2::after {
    content: "";
    display: block;
    max-width: 400px;
    width: 100%;
    height: 10px;
    background-color: #2C2C2C;
    margin: auto;
    margin-top: 45px;
}

.inner_txtarea {
    padding: 80px 240px;
}

.inner_txtarea2, .inner_txtarea3 {
    padding: 80px;
}

.inner_txtarea p {
    line-height: 30px;
}

.service_grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 50px;
}

.service_grid-item img {
    display: block;
    margin: 0 auto;
    width: auto;
    margin-bottom: 40px;
}

.service_grid-item h3 {
    text-align: center;
    font-size: 2.3rem;
    letter-spacing: 3px;
}

.service_grid-item span {
    display: block;
    font-size: 1.5rem;
    text-align: center;
    color: #D8D8D8;
    margin-bottom: 30px;
}

.service_grid-item p {
    line-height: 30px;
}

.inner_txtarea3 {
    text-align: center;
}

.inner_txtarea3 h4 {
    text-align: center;
    font-size: 2.6rem;
    letter-spacing: 3px;
}

.inner_txtarea3 p {
    margin-bottom: 30px;
}

.flow_setp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 20px;
    row-gap: 50px;
    margin-top: 30px;
    margin-bottom: 50px;
}

.flow_setp-grid_item {
    background-color: #FFFBDB;
    border: 5px solid #2C2C2C;
    border-radius: 5px;
}

.flow_setp-grid_item h3 {
    font-size: 3.2rem;
    padding-top: 30px;
    padding-bottom: 30px;
    letter-spacing: 3px;

}

.flow_setp-grid_item h3::after {
    content: "";
    display: block;
    max-width: 300px;
    width: 100%;
    height: 10px;
    background-color: #2C2C2C;
    margin: auto;
    margin-top: 30px;
}

.flow_setp-grid_item p {
    font-size: 2.6;
    letter-spacing: 3px;
    padding-bottom: 30px;
}


.bg-y {
    background-color: #FFEF72;
}

.btn {
    background: #2C2C2C;
    color: #fff;
    font-size: 2.6rem;
    padding: 25px 165px;
}

.btn-icon {
    margin-left: 30px;
}

/*==================================================
ギャラリーのためのcss
===================================*/
.gallery{
columns: 4;/*段組みの数*/
padding:0 15px;/*ギャラリー左右に余白をつける*/
}

.gallery li {
    margin-bottom: 20px;/*各画像下に余白をつける*/
}

/*ギャラリー内のイメージは横幅100%にする*/
.gallery img{
	width:100%;
	height:auto;
	vertical-align: bottom;/*画像の下にできる余白を削除*/}

/*　横幅900px以下の段組み設定　*/
@media only screen and (max-width: 900px) {
	.gallery{
	columns:3;
	}	
}

@media only screen and (max-width: 768px) {
	.gallery{
	columns: 2;
	}	
}


/*========= レイアウトのためのCSS ===============*/

ul{
	margin:0;
	padding: 0;
	list-style: none;
}

a{
	color: #333;
}

a:hover,
a:active{
	text-decoration: none;
}

h1{
	text-align: center;
	font-size:6vw;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin:30px 0;
}

p{
	margin:0 10px 10px 10px;
	word-wrap : break-word;
}

/*画像を出現させるアニメーションCSS*/

.flipLeft{
animation-name: flipLeft;
animation-duration:0.5s;
animation-fill-mode:forwards;
perspective-origin: left center;
opacity: 0;
}

@keyframes flipLeft{
  from {
   transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
 	opacity: 0;
  }

  to {
  transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
  opacity: 1;
  }
}


