@charset "UTF-8";
html, body {
    margin: 0;
}

body {
	padding-top: 60px;
    font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
    color: #202020;
    line-height: 1.6;
    -webkit-text-size-adjust: 100%;
}

a {
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s;
}

h2, h3, h4, h5, h6, h9 {
    font-family: 'Cabin', sans-serif;
}

h1{
	font-family: Georgia, 'Times New Roman', Times, serif;
	font-size: 30px;
	font-weight: bold;
    margin-bottom: 0.5em;
    line-height: 1.3;
}

h2 {
    font-size: 24px;
	font-weight: bold;
    margin-top: 1em;
    margin-bottom: 1em;
    line-height: 1.3;
}

h3 {
    font-size: 24px;
	font-weight: bold;
    margin-top: 1em;
    margin-bottom: 1em;
    line-height: 1.3;
}

h4 {
    font-size: 18px;
	font-weight: bold;
    margin-top: 1em;
    margin-bottom: 1em;
    line-height: 1.3;
}

h5 {
    font-size: 25px;
	font-weight: normal;
    margin-top: 1em;
    margin-bottom: 1em;
    line-height: 1.3;
}

h6 {
    font-size: 30px;
	font-weight: bold;
    margin-top: 1em;
    margin-bottom: 1em;
    line-height: 1.3;
}

h7 {
    font-size: 12px;
	font-weight: normal;
    margin-top: 1em;
    margin-bottom: 1em;
    line-height: 1.3;
}

h8{
	font-family: Georgia, 'Times New Roman', Times, serif;
	font-size: 15px;
	font-weight: bold;
    line-height: 1.3;
}

h9{
	font-size: 18px;
	font-weight: normal;
}



a:hover {
    opacity: 0.7;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

#about,
#portfolio,
#service,
#price,
#contact {
    padding: 100px 0;
}

.section-inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 50px;
}

.section-title {
    text-align: center;
    margin-bottom: 70px;
	position: relative;
}

#about .section-title{
	margin-bottom: 30px;
}

.section-icon{
	width: 30px;
	height: 30px;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: -50px;
	margin-bottom: 23px;
}

.section-title h2 {
    margin-top: 40px;
}

.header {
    width: 100%;
	position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
    background-color: #d6d6d6;
	height: 60px;
    padding: 0 25px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.gnav-wrap {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.gnav-list{
	display: block;
	list-style: none;
    padding-left: 0;
	font-weight: bold;
	position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #d6d6d6;
    z-index: 99;
	transform: translateX(100%);
    transition: transform 0.4s ease-in-out;
	display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.gnav-list li a {
    font-size: 18px; /* 大きなフォントサイズ */
    padding: 49px 0;
    display: block;
}

.gnav-list.is-open {
    transform: translateX(0); /* 画面内に移動 */
}

.gnav-img {
    margin-right: 20px;
}

.hamburger-btn {
    display: block;
    width: 24px;
    height: 30px;
    background: none;
    border: none;
    cursor: pointer;
    position: relative;
    z-index: 100;
}

.hamburger-btn span {
    display: block;
    height: 2px;
    background-color: #202020;
    position: absolute;
    width: 100%;
    left: 0;
    transition: transform 0.3s, opacity 0.3s;
}

.hamburger-btn span:nth-child(1) {
    top: 5px;
}

.hamburger-btn span:nth-child(2) {
    top: 50%;
    transform: translateY(-50%);
}

.hamburger-btn span:nth-child(3) {
    bottom: 5px;
}



.hamburger-btn.is-open span:nth-child(1) {
    transform: translateY(8px) rotate(45deg); /* 上の線: 中央に移動し、45度回転 */
}

.hamburger-btn.is-open span:nth-child(2) {
    opacity: 0; /* 中央の線: 非表示 */
}

.hamburger-btn.is-open span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg); /* 下の線: 中央に移動し、-45度回転 */
}


section.mainvisual {
	position: relative;
	height: calc(100vh - 60px);
    background-image: url('../images/portfolio-mv-sp.png');
    background-size:cover;
    background-position: center;
    background-repeat: no-repeat;
}

.mv-title{
	position: absolute;
	left: 10%;
    top: 40%;
    text-align: left;
}

.mv-messages{
	position: absolute;
    left: 10%;
    bottom: 20px;
}


.profile-img{
	text-align: center;
	margin-bottom: 30px;
}

.profile-text h3{
	text-align: center;
}

.profile-text p.profile{
	text-align: left;
}

.item{
	text-align: center;
}

.card-img{
	margin-bottom: 20px;
}

.card-text{
	margin-bottom: 50px;
}

.card-text p{
	text-align: left;
}

.view-more{
	text-align: right;
}

h5{
	text-align: center;
}

.webprice-table {
	display: flex;
	justify-content: center;
	flex-direction: column;
}

.graphicprice-table {
	display: flex;
	justify-content: center;
	flex-direction: column;
}

.webprice-table-pc{
	display: none;
}

.graphicprice-table-pc{
	display: none;
}

p.small{
	font-size: 9px;
	letter-spacing: -0.1em;
}

.graphicprice-table{
	margin-bottom: 30px;
}

#contact{
	background-image: url(../images/contact-bg-sp.png);
	background-size:cover;
    background-position: center;
    background-repeat: no-repeat;
	padding: 76px 0;
}

.messages{
	text-align: center;
	margin-bottom: 41px;
}

.messages h6{
	margin-top: 0;
	margin-bottom: 21px;
}

.cta-button{
	text-align: center;
	margin-bottom: 30px;
}

.button{
	display: inline-block;
    padding: 15px 60px;
    border: none;
    border-radius: 22px;
	background-color: #333533;
    color: #d6d6d6;
    text-decoration: none;
	font-size: 16px;
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1;
	text-align: center;
	cursor: pointer;
    transition: background-color 0.3s, transform 0.1s;
}

.button:hover {
    background-color: #d6d6d6;
	color: #333533;
    transform: translateY(-1px);
}

.contact-info {
    text-align: center;
}


.instagram, .mail-address {
	margin-bottom: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.instagram img, .mail-address img {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.acount {
    font-size: 16spx;
	font-weight: bold;
    margin: 0;
}

.footer {
    width: 100%;
	background-color: #d6d6d6;
	padding: 20px 0;
	text-align: center;
}

.copyright {
    font-size: 14px;
    color: #202020;
    margin: 0;
}

.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1.0s, transform 1.0s;
}

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







/* ----------------------------------
 * PCレイアウト (768px以上)
 * ---------------------------------- */
@media screen and (min-width: 768px) {
    /* ここにPCレイアウト用のCSSを上書きしていく */
	body {
        padding-top: 70px;
    }

	h1{
		font-size: 80px;
	}

	h2{
		font-size: 40px;
		margin-top: 45px;
	}

	h8{
		font-size: 35px;
	}

	h9{
		font-size: 30px;
	}

	.section-icon{
		width: 50px;
		height: 50px;
}

	.section-title {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 45px;
    }

	/* 1. ヘッダー (PC) */
    .header {
        height: 70px;
        padding: 0 80px;
    }

    .gnav-wrap {
        justify-content: flex-start;
    }

    .gnav-list {
        display: flex;
        gap: 66px;
        align-items: center;
		position: static; /* fixed を解除して通常の流れに戻す */
        transform: none;
        width: auto; /* width: 100% を解除 */
        height: auto; /* height: 100vh を解除 */
        background-color: transparent; /* 背景色を透明に戻す (ヘッダーの背景を使うため) */
		z-index: auto;
		flex-direction: row;
	}

	.gnav-list li a {
        padding: 0;
        font-size: 16px;
    }

    .gnav-img {
        margin-left: auto;
		margin-right: 0;
        align-self: center;
    }

    .hamburger-btn {
        display: none;
		height: 70px;
    }


    section.mainvisual {
        height: calc(100vh - 70px);
        padding-bottom: 0;
        background-image: url('../images/portfolio-mv-pc.png');
        background-size: contain;
    }

	.profile {
        display: flex;
        gap: 26px;
    }

	.profile-img {
		width: 442px;
		flex-shrink: 0;
		margin-bottom: 0;
		text-align: left;
		position: relative;
	}

	.profile-img img{
		width: 100%;
	}

	.profile-text{
		padding-top: 100px;
	}

	.profile-text p{
		text-align: left;
	}

	.col-3 {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        margin-bottom: 50px;
    }

	.item {
        width: calc((100% - 200px) / 3);
        margin-bottom: 30px;
    }



	.graphicprice-table-sp , .webprice-table-sp{
        display: none;
    }

	.webprice-table-pc {
        display: block;
        margin-bottom: 50px;
    }

    .graphicprice-table-pc {
        display: block;
        margin-bottom: 50px;
	}

	p.small{
		font-size: 14px;
	}

	h6{
		font-size: 60px;
	}

	h7{
		font-size: 28px;
		letter-spacing: -0.05em;
	}
    /* .profile { display: flex; ... } */
    /* .col-3 { display: flex; ... } */
}
