﻿/* リセットとベース設定 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* ルート変数の定義 */
:root {
    /* --primary-color: #1a1a1a;
    --secondary-color: #333333;
    --accent-color: #4CAF50;
    --accent-color-hover: #388E3C;
    --text-color: #ffffff;
    --background-color: #121212;
    --max-width: 1200px; */
    --primary-color: #1a1a1a;
    --secondary-color: #442d7cd4;
    --accent-color: #643dc8;
    --accent-color-hover: #7b5bcb;
    --text-color: #f5e4dc;
    --background-color: rgba(44, 28, 70, 0.6);;
    --max-width: 1200px;
    --bullet-color: #7c08bf;
    --sale-color: rgba(204, 0, 0, 1);

    /* 背景画像素材 */
    --main-background-image: url(./image/main_bg.jpg);
    --main-background-size: 400px 293px;

    --menu-background-image: url(./image/menu_bg.jpg);
    --menu-background-size: 400px 300px;

    --light-background-image: url(./image/light_bg.jpg);
    --light-background-size: 1600px 1200px;
}

/* 基本スタイル */
html, body {
    height: 100vh;
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", 
               "Hiragino Kaku Gothic ProN", "Segoe UI", Meiryo, Arial, sans-serif;
}

/* ヘッダー */
header {
    padding: 20px 0;
    background-color: var(--primary-color);
    color: var(--text-color);
}


h1 {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 20px;
    color: var(--text-color);
}
h2 {
    font-size: 1.2rem;
    margin-bottom: 20px;
    color: var(--text-color);
}




/* お気に入りボタン(SVG) */
.favorite-icon {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    margin-left: 0.5em;
    margin-right: 0.5em;
    cursor: pointer;
    vertical-align: middle;
    fill: #999;
    filter: drop-shadow(-1px -1px 0 rgba(128,128,128,0.5))
            drop-shadow(1px -1px 0 rgba(128,128,128,0.5))
            drop-shadow(-1px 1px 0 rgba(128,128,128,0.5))
            drop-shadow(1px 1px 0 rgba(128,128,128,0.5));
}

.favorite-icon.enabled {
    fill: rgb(235, 73, 100);
    filter: none;
}


/* ローディングアイコンのスタイル */
.loader-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 20px;
    width: 100%;
    text-align: center;
}

.loader {
    border: 4px solid rgba(255, 255, 255, 0.3);
    border-top: 4px solid var(--accent-color);
    border-radius: 50%;
    width: 20px;
    height: 20px;
    animation: spin 1s linear infinite;
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    transform: none;
}

/* 回転アニメーションの定義 */
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* フォーム */
/* センタリング、文字大きめ、ボーダー、角丸 */
input#url {
    width: 70%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    text-align: center;
    font-size: 1.2rem;
}

#scroll-margin {
    height: 1000px;
    background-color: red;
    position: absolute;
    bottom: 0;
}

/* 基本スタイル */
body {
    font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    line-height: 1.6;
    color: var(--text-color);
    background-color: var(--background-color);
}

/* コンテナ */
.container {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 20px;
}

/* ヘッダー */
header {
    padding: 20px 0;
    background-color: var(--primary-color);
    color: white;
}


section {
    margin-bottom: 40px;
}

h2 {
    font-size: 1.8rem;
    margin-bottom: 20px;
    color: var(--primary-color);
}

/* フッター */
footer {
    color: #555;
    font-size: 0.8rem;
    text-align: center;
    background-color: var(--background-color);

    display: flex;
    flex-direction: column;
    align-items: center;
}

footer a {
    color: #aaa;
    text-decoration: none;
}

.disclaimer {
    font-size: 1.0rem;
    color: white;
}

.sale {
    display: none;
    animation: flash 1.5s infinite;
    z-index: 100;
    border-radius: 4px;
}
@keyframes flash {
    0%, 100% {
        background-color: var(--sale-color);
    }
    50% {
        background-color: #ff4d4d;
    }
}


/* レスポンシブデザイン */
/* 小さなスクリーン */
@media (max-width: 767px) and (orientation: portrait){
    .container {
        padding: 0 15px;
    }

    header h1 {
        font-size: 1.5rem;
    }

    h2 {
        font-size: 1.3rem;
    }
}

/* 大きなスクリーン */
@media (min-width: 2500px) {
    div#osd-title {
        font-size: 2.0rem;
    }
    div#osd-performer {
        font-size: 1.8rem;
    }
}

/* ユーティリティクラス */
.text-center {
    text-align: center;
}

.mt-20 {
    margin-top: 20px;
}

.mb-20 {
    margin-bottom: 20px;
}


@media (max-width: 767px) {
    .playlist-item {
        width: 150px;
    }
    
    .playlist-item img {
        height: auto;
    }
}

