/* @font-face {
    font-family: 'kokumr';
    src: url('./assets/fonts/font_1_kokumr_1.00_rls.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
} */

body {
    background-color: #dbe4ee;
    margin: 0;
    min-width: 560px;
    width: auto;
    /* Google Fontsを最優先で適用する */
    font-family: 'M PLUS Rounded 1c', sans-serif;
    overflow: visible;
}

/* HEADER */
header {
    margin-top: 0;
    background-color: #fff;
    font-family: 'M PLUS Rounded 1c', sans-serif;
    position: sticky;
    top:0;
    z-index: 429;
}

.head-belt {
    height: 3rem;
    justify-content: center;
    display: flex;
}

@media screen and (max-width: 800px) {
    .head-band {
        width: 100%;
        display: flex;
    }
}

@media screen and (max-width: 560px) {
    .iframe-band {
        width: 100%;
    }
}

@media screen and (min-width: 800px) {
    .head-band {
        width: 800px;
        display: flex;
    }

    .iframe-band {
        width: 560px;
    }
}

.tabs {
    display: inline-block;
    margin: auto;
    text-align: center;
}

.tabs a {
    text-decoration: none;
    color: #3e5f76;
}

.select-tab {
    font-weight: bold;
}

.pf-head_filter {
    text-align: center;
}

.pf-head_filter p {
    margin: 0;
}

.pf-head_filter-group {
    /* margin: auto; */
    /* display: flex; */
    gap: 6px;
    /* チップとチップの間のすきま */
    height: 35px;
}

.pf-head_filter-group a {
    font-size: 0.75rem;
    font-weight: bold;
    padding: 0.25em 0.75em;
    border-radius: 12px;
    letter-spacing: 0.05em;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
    display: inline-block;
    user-select: none;
    cursor: pointer;
}

/* MAIN */
main {
    text-align: center;
}

/* ==========================================
   Portfolio / Root (一覧画面)
   ========================================== */

/* 楽曲を並べる外枠（Gridレイアウトで綺麗に整列） */
.pf-root {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(26em, 1fr));
    gap: 1.5rem;
    /* アイテム同士の隙間 */
    max-width: 1680px;
    margin: 2rem auto;
    padding: 0 1rem;
    justify-content: center;
}

/* 各楽曲のカード（aタグ） */
.pf-root-p {
    position: relative;
    /* 子要素の絶対配置の基準にする */
    display: block;
    overflow: hidden;
    /* 画像のハミ出し防止 */
    text-decoration: none;
    aspect-ratio: 16 / 9;
    /* 32em x 18em は 16:9 */
    border-radius: 8px;
    /* 角を少し丸くすると今風になります（お好みで） */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* 画像のスタイル */
.pf-root-p img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
    /* ホバー時のズームアニメーション */
}

/* マウスホバー時に画像を少し大きくする演出 */
.pf-root-p:hover img {
    transform: scale(1.05);
}

/* 親であるオーバーレイを基準にする */
.pf-info-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(25, 41, 52, 0.75);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    padding: 1rem;
    box-sizing: border-box;
}

/* チップをまとめるグループを右下に固定 */
.pf-chip-group {
    position: absolute;
    bottom: 12px;
    /* 右下からの距離 */
    right: 12px;
    /* 右下からの距離 */
    display: flex;
    gap: 6px;
    /* チップとチップの間のすきま */
}

.pf-chip-group span {
    font-size: 0.75rem;
    font-weight: bold;
    padding: 0.25em 0.75em;
    border-radius: 12px;
    letter-spacing: 0.05em;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
    display: inline-block;
}

/* Clear */
.pf-chip-clear {
    /* 色設定 */
    background-color: #c8c8c8;
    color: #3c3c3c;
    border: 0px solid;
}

/* MusicVideo */
.pf-chip-musicvideo {
    /* 色設定 */
    background-color: #b6ecff;
    color: #32689a;
    border: 0px solid;
}

/* YoutubeShorts */
.pf-chip-youtube_shorts {
    /* 色設定 */
    background-color: #ffb6b6;
    color: #9a3232;
    border: 0px solid;
}

/* MinecraftDatapack */
.pf-chip-minecraft_datapack {
    /* 色設定 */
    background-color: #b7ffb6;
    color: #379a32;
    border: 0px solid;
}

/* マウスホバー時にテキストを表示 */
.pf-root-p:hover .pf-info-overlay {
    opacity: 1;
}

/* 重ねるテキストのスタイル */
.pf-info-overlay .pf-title-main {
    font-size: 1.5rem;
    font-weight: bold;
    color: #91aeba;
    /* ダーク背景なので文字は白 */
    margin-bottom: 0.5rem;
}

.pf-info-overlay .pf-author {
    font-size: 1rem;
    color: #dbe4ee;
}

/* Portfolio / Content */
.pf-title {
    font-size: 45px;
    color: #192934;
}

.pf-title p {
    font-size: 25px;
    color: #192934;
    margin: 0;
}

.pf-credit {
    font-size: 20px;
    color: #91aeba;
    margin: 0.9em 0;
}

.pf-credit span {
    display: inline-block;
    margin-bottom: 0;
    color: #3e5f76;
}

.pf-credit a {
    color: #3e5f76;
    margin-left: 0.8em;
}

.pf-content {
    margin-top: 5rem;
    margin-bottom: 5rem;
}

.pf-content iframe {
    margin: 4em 0 1em;
}

/* HISTORY */
.hs-contents {
    display: block;
    min-height: 75vh;
    min-width: 800px;
    width: 30vw;
    margin: 60px auto;
    text-align: left;
    color: #3e5f76;
}

.hs-contents h1 {
    margin: 0 5%;
}

.hs-contents p {
    margin: 0 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hs-contents b {
    margin: 0 0;
}

/* CONTACT */
.c-contents h1{
    color: #192934;
    margin-bottom: 0;
}
.c-contents h4{
    color: #3e5f76;
    margin: -1.6rem 0 -1rem 0;
}

.c-sns{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    margin: 5rem auto;
    max-width: 600px;
    padding: 0 1rem
}
.c-sns button{
    display: inline-flex;
    border-radius: 10px;
    background-color: #e2f4fc;
    cursor: pointer;
}
.c-sns span{
    display: block;
    text-align: left;
}
.c-sns h5{
    margin: 1.8em 0 0.25em 0.3em;
}
.c-sns p{
    margin: 0 0 auto;
}
.c-sns svg{
    margin: 0.4em;
    margin-right: 14%;
}

.c-fm {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    margin: 5rem auto;
    max-width: 600px;
    padding: 0 1rem
}
/* テキストエリアの親囲みを100%幅にし、絶対配置の基準にする */
.c-tx-wrap {
    position: relative;
    width: 100%;
}
/* テンプレートボタンをテキストエリアの右上に配置 */
.c-tp-btn {
    position: absolute;
    top: -1.75rem;
    right: 0;
    font-size: 0.8rem;
    font-weight: bold;
    color: #3e5f76;
    text-decoration: none;
    cursor: pointer;
    user-select: none;
}
.c-tp-btn:hover {
    color: #192934;
    text-decoration: underline;
}
.c-tx {
    width: 100%;
    height: 250px;
    padding: 1rem;
    border: 1px solid #91aeba;
    border-radius: 8px;
    background: #fff;
    color: #192934;
    font-family: inherit;
    font-size: 1rem;
    resize: vertical;
    box-sizing: border-box
}
.c-tx:focus {
    outline: none;
    border-color: #3e5f76
}
.c-btn {
    padding: .75rem 5rem;
    border: none;
    border-radius: 12px;
    background: #3e5f76;
    color: #b1d4e3;
    font-size: 1rem;
    letter-spacing: .05em;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .15);
    cursor: pointer;
    user-select: none;
}
.c-btn:hover {
    background: #2a4659
}

/* ↑ここにだけ追記して↑ */
/* FOOTER */
footer {
    background-color: #fff;
    margin-bottom: 0;
    height: 20rem;
}

.footer-bar {
    height: 0.1em;
    background-color: #91aeba;
}

.footer-text {
    text-align: center;
    color: #91aeba;
    margin-top: 5em;
}