/*---------- "header"全ページ共通 ----------*/
body .pc-only {
    margin: 0 auto;
    max-width: 995px; /* 今は必要ないかも。要素の制限指定で、画像のサイズ指定はまた別に。 */
    padding: 0 60px;
    font-family:  sans-serif;
    text-align: center; 
}

/*
:lang(ja) {
    font-family: '筑紫A丸ゴシック', 'Open Sans', sans-serif;
}
すべて日本語？日本語んおサイトだから？ */

.pc-only header{
    display: flex;
    justify-content: center; /*コンテナ内の子要素を中央揃え*/
    text-align: center; /*水平方向の中央揃え*/
    align-items: center; /*垂直方向の中央揃え*/
    padding: 45px 0 30px;/*上下左右, 上下_左右, 上_左右_下, 上_右_下_左*/
}

.pc-only header h1 a{
    text-decoration: none;
    color: black;
}
.pc-only header h1 a:hover {
    display: inline-block; /*<a>タグがinline要素の場合、transformが正しく機能しない可能性があります。displayプロパティを追加してみてください：*/
    transform: scale(1.03);
    transition: transform 0.2s ease;
}

.line {
    font-family: 'Roboto', Arial, Helvetica, sans-serif; /* 細いフォントをサポートするフォントを指定 */
    margin: 0 40px;
    font-size: 100px;
    font-weight: 100;
}

.pc-only header nav p{
    margin: 2% 0;
}

.pc-only header nav a{
    display: inline-block;
    text-decoration: none;
    color: rgb(105, 105, 105);
    transition: color 0.3s ease, transform 0.3s ease;
}
.pc-only header nav a:hover{
    color: black;
    transform: scale(1.02);
}

.underline {
    position: relative; /* 擬似要素を相対配置にする */
}

.underline::after {
    content: ""; /*空の内容の要素を作成*/
    position: absolute;
    bottom: -1px; /* 下線を表示する位置 */
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #333; /* 下線の色 */
    scale: 0 1;
    transition: scale 0.25s ease-in-out; /* アニメーションの設定 */
}

.underline:hover::after {
    width: 100%; /* マウスオーバー時に幅を100%にする */
    scale: 1 1;
}

/*---------- "index"ページ ----------*/
.greeting{
    margin: 0 0 50px;/*上下左右, 上下_左右, 上_左右_下, 上_右_下_左*/
}
.greeting .title{
    font-size: 150%;
    margin: 20px 0;
    font-weight: bold;
}

.home{
    padding: 0 80px;
    margin: 0 auto; 
}
.home img{
    max-width: 100%; 
}

/*---------- "portfolio"ページ ----------*/
.box-r {
    display: flex;
    margin: 40px 0 85px;
}
.box-r-text{
    margin: 60px 0 0;
    flex: 0 0 25%;
    text-align: left; /* 文字を左詰めにする */
}
.box-r-pic{
    text-align: right;
}
.box-r-pic img{
    max-width: 100%; 
}

.box-l {
    display: flex;
    margin: 0 0 85px;
}
.box-l-text{
    margin: 60px 0 0;
    flex: 0 0 25%;
    text-align: right;
}
.box-l-pic{
    text-align: left;
}
.box-l-pic img{
    max-width: 100%; 
}
.title h2{
    margin: 0;
}
.text{
    font-size: 90%;
}

/*---------- "about me"ページ ----------*/
.profile-box{
    display: flex;
    max-width: 960px;
    margin: 0 auto;
    background-color: #e0eaee;
    padding: 7%;
}
.profile-picture{
    width: 40%;
    margin-right: 14%;
}
.profile-picture img{
    width: 100%;
    height: auto;
}
.profile-text{
    width: 40%;
    text-align: left;
}
.text-spaced{
    letter-spacing: 0.06em; /* 文字間隔を調整 */
    line-height: 1.7; /* 行間を調整 */
}
.aboutme{
    max-width: 500px;
    margin: 0 auto;
    text-align: left;
}
.aboutme h3{
    text-align: center;
}
/*---------- "contact"ページ ----------*/
.container{
    display: flex;
    width: 100%;
}

.post{
    margin: 10px;
    box-shadow: 0 0 2px #000;
    padding: 13px;
    aspect-ratio: 5/7;
}
.caption{
    text-align: left;
    font-size: 14px;
    margin-left: 5px;
    color: #8c8c8c;
}

.container img{
    max-width: 100%;
}

.instagram{
    display: block;
    border: 1px #808080 solid;
    text-decoration: none;
    padding: 23px;
    margin: 50px auto;
    width: 240px;
    color: #822b92;
}
.slick-prev, .slick-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    cursor: pointer;
    font-size: 24px; /* 文字の大きさを変更 */
    color: #333; /* 文字の色を変更 */
    /* その他のスタイル */
}

.slick-prev {
    left: 100px;
}

.slick-next {
    right: 100px;
}

/*---------- "footer"ページ ----------*/
footer {
    padding: 10px 40px;
    margin: 0 40px;
    background-color: #333;
    color: #fff;
}


/*-------------------- スマホ版のスタイル --------------------*/
.pc-only {
    display: block; /* デフォルトでは表示 */
}
.mobile-only {
    display: none; /* デフォルトでは非表示 */
}

/* スマホ用基本設定 */
@media (max-width: 767px) {
    .pc-only {
        display: none; /* スマホ版で非表示 */
    }
    .mobile-only {
        display: block; /* スマホ版で表示 */
        margin: 0;
        padding: 0 15px;
        font-family: sans-serif;
        text-align: center;
        line-height: 1.6;
    }

    /* モバイルヘッダー */
    .mobile-only header {
        padding: 20px 0;
        border-bottom: 1px solid #eee;
        margin-bottom: 30px;
    }
    
    .mobile-only header h1 {
        margin: 0 0 15px 0;
        font-size: 24px;
    }
    
    .mobile-only header h1 a {
        text-decoration: none;
        color: black;
    }
    
    .mobile-nav {
        display: flex;
        justify-content: center;
        gap: 15px;
        flex-wrap: wrap;
    }
    
    .mobile-nav a {
        text-decoration: none;
        color: #666;
        font-size: 14px;
        padding: 5px 10px;
        border-radius: 15px;
        transition: all 0.3s ease;
    }
    
    .mobile-nav a:hover {
        background-color: #f0f0f0;
        color: black;
    }

    /* モバイルメインコンテンツ */
    .mobile-only main {
        padding-bottom: 40px;
    }
    
    .mobile-greeting {
        margin: 30px 0;
        padding: 0 10px;
    }
    
    .mobile-greeting h2 {
        font-size: 20px;
        margin: 0 0 15px 0;
        font-weight: bold;
        color: #333;
    }
    
    .mobile-greeting h3 {
        font-size: 18px;
        margin: 0 0 15px 0;
        font-weight: bold;
        color: #333;
    }
    
    .mobile-greeting p {
        font-size: 14px;
        line-height: 1.7;
        color: #666;
        margin: 0 0 20px 0;
    }

    /* モバイル画像 */
    .mobile-home {
        margin: 25px 0;
        padding: 0;
    }
    
    .mobile-home img {
        width: 100%;
        max-width: 100%;
        height: auto;
        border-radius: 8px;
        box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    }

    /* モバイルコンタクト */
    .mobile-contact {
        margin-top: 25px;
        padding: 20px;
        background-color: #f8f8f8;
        border-radius: 10px;
    }
    
    .mobile-contact span {
        font-size: 14px;
        color: #666;
    }
    
    .mobile-link {
        color: #333;
        text-decoration: underline;
        font-weight: bold;
        margin: 0 3px;
    }

    /* モバイルフッター */
    footer {
        padding: 20px 15px;
        margin: 0;
        font-size: 12px;
        text-align: center;
    }
}

/* タブレット対応 */
@media (min-width: 768px) and (max-width: 1024px) {
    body .pc-only {
        padding: 0 40px;
        max-width: 800px;
    }
    
    .home {
        padding: 0 40px;
    }
    
    .line {
        font-size: 80px;
        margin: 0 30px;
    }
    
    .greeting .title {
        font-size: 130%;
    }
    
    .greeting p {
        font-size: 14px;
    }
}

/* 小さなスマホ対応 */
@media (max-width: 480px) {
    .mobile-only {
        padding: 0 10px;
    }
    
    .mobile-greeting {
        margin: 20px 0;
        padding: 0 5px;
    }
    
    .mobile-greeting h2 {
        font-size: 18px;
    }
    
    .mobile-greeting h3 {
        font-size: 16px;
    }
    
    .mobile-greeting p {
        font-size: 13px;
    }
    
    .mobile-nav {
        gap: 10px;
    }
    
    .mobile-nav a {
        font-size: 13px;
        padding: 4px 8px;
    }
    
    .mobile-contact {
        padding: 15px;
        margin-top: 20px;
    }
}

/*---------- モバイル版専用スタイル ----------*/
@media (max-width: 767px) {
    /* 現在のページ表示 */
    .current-page {
        color: #333;
        font-weight: bold;
        padding: 5px 10px;
        background-color: #f0f0f0;
        border-radius: 15px;
        font-size: 14px;
    }

    /* モバイルポートフォリオ */
    .mobile-portfolio-item {
        margin: 30px 0;
        padding: 20px;
        background-color: #fafafa;
        border-radius: 10px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    }
    
    .mobile-portfolio-image {
        margin-bottom: 15px;
    }
    
    .mobile-portfolio-image img {
        width: 100%;
        height: auto;
        border-radius: 8px;
    }
    
    .mobile-portfolio-text h3 {
        font-size: 18px;
        margin: 0 0 8px 0;
        color: #333;
    }
    
    .mobile-date {
        font-size: 12px;
        color: #999;
        margin: 0 0 10px 0;
    }
    
    .mobile-portfolio-text p:not(.mobile-date) {
        font-size: 14px;
        line-height: 1.6;
        color: #666;
        margin: 0;
    }

    /* モバイルプロフィール */
    .mobile-profile {
        margin: 30px 0;
        padding: 20px;
        background-color: #f8f9fa;
        border-radius: 10px;
    }
    
    .mobile-profile-image {
        text-align: center;
        margin-bottom: 20px;
    }
    
    .mobile-profile-image img {
        width: 150px;
        height: 150px;
        object-fit: cover;
        border-radius: 50%;
        border: 3px solid #ddd;
    }
    
    .mobile-profile-info h3 {
        font-size: 20px;
        margin: 0 0 5px 0;
        text-align: center;
        color: #333;
    }
    
    .mobile-sub-name {
        font-size: 14px;
        color: #666;
        text-align: center;
        margin: 0 0 15px 0;
    }
    
    .mobile-profile-info p:not(.mobile-sub-name) {
        font-size: 14px;
        line-height: 1.7;
        color: #666;
        text-align: left;
        margin: 0;
    }

    /* モバイルaboutセクション */
    .mobile-about-section {
        margin: 25px 0;
        padding: 20px;
        background-color: #fff;
        border-left: 4px solid #ddd;
        padding-left: 20px;
    }
    
    .mobile-about-section h3 {
        font-size: 18px;
        margin: 0 0 15px 0;
        color: #333;
    }
    
    .mobile-about-section p {
        font-size: 14px;
        line-height: 1.7;
        color: #666;
        margin: 0;
    }
    
    .mobile-equipment {
        padding: 15px;
        background-color: #f8f8f8;
        border-radius: 8px;
        margin-top: 10px;
    }
    
    .mobile-equipment p {
        margin: 8px 0;
        font-size: 14px;
    }
    
    .mobile-equipment strong {
        color: #333;
    }

    /* モバイルInstagram */
    .mobile-instagram {
        margin: 30px 0;
    }
    
    .mobile-instagram h3 {
        font-size: 18px;
        margin: 0 0 20px 0;
        text-align: center;
        color: #333;
    }
    
    .mobile-instagram-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
        margin-bottom: 25px;
    }
    
    .mobile-post {
        background-color: #fff;
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    }
    
    .mobile-post img {
        width: 100%;
        height: 150px;
        object-fit: cover;
    }
    
    .mobile-caption {
        padding: 10px;
        font-size: 12px;
        color: #666;
        margin: 0;
        text-align: center;
    }
    
    .mobile-instagram-link {
        display: block;
        text-align: center;
        padding: 15px 20px;
        background-color: #333;
        color: white;
        text-decoration: none;
        border-radius: 25px;
        font-weight: bold;
        transition: background-color 0.3s ease;
    }
    
    .mobile-instagram-link:hover {
        background-color: #555;
    }
}

/* 小さなスマホでのモバイル版追加調整 */
@media (max-width: 480px) {
    .mobile-portfolio-item {
        margin: 20px 0;
        padding: 15px;
    }
    
    .mobile-portfolio-text h3 {
        font-size: 16px;
    }
    
    .mobile-profile {
        padding: 15px;
    }
    
    .mobile-profile-image img {
        width: 120px;
        height: 120px;
    }
    
    .mobile-about-section {
        padding: 15px;
        margin: 20px 0;
    }
    
    .mobile-instagram-grid {
        gap: 10px;
    }
    
    .mobile-post img {
        height: 120px;
    }
    
    .current-page {
        font-size: 13px;
        padding: 4px 8px;
    }
}