/*
Theme Name: Rapie Shinkemi
Theme URI: https://rapie-shinkemi.com
Description: カラオケ酒場ら・ぴえ 公式サイトテーマ
Version: 1.0
Author: rapie
Text Domain: rapie-shinkemi
*/

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Zen Kaku Gothic Antique', sans-serif; background: #fff5e1; }
img { display: block; }
a { text-decoration: none; color: inherit; }
html { scroll-behavior: smooth; }

/* PC: 中央コンテンツのみスクロール */
@media (min-width: 1024px) {
    body { background: #e60012; overflow: hidden; }
    #content-scroll {
        position: fixed;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 500px;
        height: 100vh;
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-width: thin;
        scrollbar-color: #e60012 #fff5e1;
    }
    #content-scroll::-webkit-scrollbar { width: 6px; }
    #content-scroll::-webkit-scrollbar-track { background: #fff5e1; }
    #content-scroll::-webkit-scrollbar-thumb { background: #e60012; border-radius: 3px; }
}

/* モバイル: 通常スクロール */
@media (max-width: 1023px) {
    #content-scroll { width: 100%; }
}

.bg-beige { background-color: #fff5e1; }
.section-bg { background-color: #e6e6e6; }
.card-bg { background-color: #e2e2e2; }

/* モバイル固定ボトムバー分の余白 */
@media (max-width: 1023px) {
    footer { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
}
@media (min-width: 1024px) {
    #bottom-bar { display: none !important; }
}

/* スプラッシュオーバーレイ */
#splash-overlay {
    position: fixed;
    inset: 0;
    background: #ffffff;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: all;
    transition: opacity 0.6s ease;
}
#splash-text {
    position: absolute;
    text-align: center;
    opacity: 0;
    transition: opacity 0.9s ease;
}
#splash-text .s-main {
    font-size: 22px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.05em;
    color: #141414;
    margin-bottom: 16px;
}
#splash-text .s-sub {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.12em;
    color: #555;
}
#splash-logo {
    position: absolute;
    opacity: 0;
    transition: opacity 0.9s ease;
}
#splash-logo img { width: 160px; display: block; }
@media (min-width: 1024px) {
    #splash-text .s-main { font-size: 28px; }
    #splash-text .s-sub  { font-size: 15px; }
    #splash-logo img     { width: 200px; }
}
#splash-skip {
    position: absolute;
    bottom: 48px;
    background: transparent;
    border: 1px solid #ccc;
    border-radius: 9999px;
    font-family: 'Zen Kaku Gothic Antique', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #888;
    letter-spacing: 0.1em;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.6s ease;
    padding: 8px 24px;
}
#splash-skip:hover { color: #141414; border-color: #888; }

/* ページ読み込み時のトランジション抑制 */
.no-transition *, .no-transition *::before, .no-transition *::after {
    transition: none !important;
    animation-duration: 0.01ms !important;
}

/* スクロールリビール */
.scroll-hidden { opacity: 0; transform: translateY(28px); }
.scroll-animating { transition: opacity 0.7s ease, transform 0.7s ease; will-change: opacity, transform; }
.scroll-visible { opacity: 1; transform: translateY(0); }

/* ブログ スタイル */
.blog-post-card {
    display: block;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 24px;
    text-decoration: none;
    color: inherit;
}
.blog-post-card:hover { opacity: 0.85; }
.blog-post-card .card-thumb {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}
.blog-post-card .card-body { padding: 20px; }
.blog-post-card .card-date { font-size: 12px; color: #888; margin-bottom: 8px; }
.blog-post-card .card-title { font-size: 16px; font-weight: 700; color: #141414; line-height: 1.6; }

/* ページネーション */
.nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 40px; flex-wrap: wrap; }
.nav-links a, .nav-links span.current, .nav-links span.dots {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    border-radius: 9999px;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid #e60012;
    color: #e60012;
    padding: 0 8px;
}
.nav-links span.current { background: #e60012; color: #fff; }
.nav-links span.dots { border-color: #ccc; color: #ccc; }

/* 記事本文 */
.post-content { font-size: 15px; line-height: 2; color: #323232; }
.post-content h2 { font-size: 20px; font-weight: 700; margin: 32px 0 12px; }
.post-content h3 { font-size: 17px; font-weight: 700; margin: 24px 0 8px; }
.post-content p { margin-bottom: 16px; }
.post-content img { border-radius: 12px; margin: 16px auto; max-width: 100%; }
.post-content ul, .post-content ol { padding-left: 24px; margin-bottom: 16px; }
.post-content li { margin-bottom: 4px; }
