*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{

    font-family:
    "Yu Gothic",
    "Meiryo",
    sans-serif;

    background:#eceff3;
    color:#333;
}


/* ヘッダー */

.hero{

    position:relative;
    height:350px;
    overflow:hidden;

}

.hero img{

    width:100%;
    height:100%;
    object-fit:cover;
    filter:brightness(60%);

}

.hero-text{

    position:absolute;

    left:50%;
    top:50%;

    transform:translate(-50%,-50%);

    color:white;
    text-align:center;

}

.hero-text h1{

    font-size:55px;
    margin-bottom:10px;

}

.hero-text p{

    font-size:20px;

}



/* プロフィール */

.profile{

    width:90%;
    max-width:900px;

    margin:-70px auto 40px;

    background:white;

    border-radius:20px;

    padding:30px;

    display:flex;

    align-items:center;

    gap:30px;

    box-shadow:0 10px 30px rgba(0,0,0,.15);

}

.icon{

    width:180px;
    height:180px;

    border-radius:50%;

    object-fit:cover;

    border:6px solid #6ea8ff;

}

.profile-text{

    flex:1;

}

.profile-text h2{

    margin-bottom:15px;

}



/* カード */

.card{

    width:90%;
    max-width:1000px;

    margin:40px auto;

    background:white;

    border-radius:20px;

    padding:30px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

.card h2{

    margin-bottom:20px;
    color:#4d74d9;

}


/* グリッド */

.grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(220px,1fr));

    gap:20px;

}

.item{

    background:#f7f9ff;

    border-radius:15px;

    padding:20px;

    transition:.3s;

}

.item:hover{

    transform:translateY(-5px);

    box-shadow:0 5px 15px rgba(0,0,0,.15);

}



/* SNS */

.sns{

    list-style:none;

}

.sns li{

    margin:15px 0;

}

.sns a{

    color:#4d74d9;

    text-decoration:none;

}

.sns a:hover{

    text-decoration:underline;

}



/* Gallery */

.gallery{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(200px,1fr));

    gap:20px;

}

.gallery img{

    width:100%;
    border-radius:15px;

    transition:.3s;

}

.gallery img:hover{

    transform:scale(1.04);

}



/* フッター */

footer{

    text-align:center;

    padding:40px;

    color:#777;

}



/* スマホ */

@media(max-width:700px){

.profile{

    flex-direction:column;

    text-align:center;

}

.hero{

    height:250px;

}

.hero-text h1{

    font-size:40px;

}

.hero-text p{

    font-size:17px;

}

.icon{

    width:150px;
    height:150px;

}

}