/*
Theme Name: Skeleton
Theme URI:
Author: N-TEC
Version: 1.0
*/

body {
    margin: 0;
    word-break: break-all;
}
h1 {
    margin: 0;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
        html { scroll-behavior: smooth; }
        body {
            font-family: 'Noto Sans JP', sans-serif;
            color: #1a1a1a;
            line-height: 1.6;
            letter-spacing: 0.05em;
            background-color: #fff;
            overflow-x: hidden;
        }
        a { text-decoration: none; color: inherit; transition: 0.3s; }
        ul { list-style: none; }
        img { max-width: 100%; height: auto; display: block; }

        /* --- カラーパレット --- */
        :root {
            --c-red: #FF0033;
            --c-dark: #1a1a1a;
            --c-sun: #FFD700;
            --c-bg: #FFF5F7;
            --f-maru: 'Zen Maru Gothic', sans-serif;
            --f-eng: 'Oswald', sans-serif;
        }

        /* --- 共通クラス --- */
        .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
        .text-center { text-align: center; }
        .text-red { color: var(--c-red); }
        .font-maru { font-family: var(--f-maru); }
        .font-eng { font-family: var(--f-eng); letter-spacing: 0.1em; }
        .font-bold { font-weight: 700; }
        .font-black { font-weight: 900; }
        
        /* PC/スマホ表示切り替え */
        .sp-only { display: block; }
        .pc-only { display: none; }
        @media (min-width: 768px) {
            .sp-only { display: none; }
            .pc-only { display: block; }
            .pc-flex { display: flex; }
        }

        /* --- ボタン --- */
        .btn {
            display: inline-flex; justify-content: center; align-items: center;
            padding: 15px 40px; border-radius: 50px;
            font-family: var(--f-eng); font-weight: bold; font-size: 18px;
            cursor: pointer; box-shadow: 0 4px 10px rgba(0,0,0,0.2);
        }
        .btn-red { background: var(--c-red); color: white; border: none; }
        .btn-red:hover { background: var(--c-dark); transform: translateY(-2px); }
        .btn-white { background: white; color: var(--c-red); }
        .btn-white:hover { background: var(--c-dark); color: white; transform: translateY(-2px); }
        .btn-dark { background: var(--c-dark); color: white; }
        .btn-dark:hover { background: var(--c-red); transform: translateY(-2px); }

        /* --- ヘッダー --- */
        header {
            position: fixed; top: 0; width: 100%; z-index: 1000;
            background: rgba(255,255,255,0.95);
            backdrop-filter: blur(5px);
            border-bottom: 1px solid rgba(255,0,51,0.1);
            height: 70px; display: flex; align-items: center;
        }
        .header-inner {
            display: flex; justify-content: space-between; align-items: center; width: 100%;
        }
        .logo { display: flex; align-items: center; gap: 10px; }
        .logo-icon { 
            background: var(--c-red); color: white; 
            width: 36px; height: 36px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center; font-size: 18px;
        }
        .logo-text { font-family: var(--f-maru); font-weight: 900; font-size: 20px; color: var(--c-red); line-height: 1; }
        .logo-sub { font-family: var(--f-eng); font-size: 10px; color: #999; display: block; }
        
        .nav-menu { display: flex; gap: 30px; align-items: center; }
        .nav-link { font-family: var(--f-eng); font-weight: bold; font-size: 16px; color: #333; }
        .nav-link:hover { color: var(--c-red); }

        /* --- ヒーローエリア --- */
        .hero {
            position: relative; height: 100vh; width: 100%;
            display: flex; flex-direction: column; justify-content: center; align-items: center;
            color: white; text-align: center;
            background: #000; overflow: hidden;
        }
        .hero-bg {
            position: absolute; top: 0; left: 0; width: 100%; height: 100%;
            object-fit: cover; opacity: 0.6; z-index: 0;
        }
        .hero-content { position: relative; z-index: 1; padding: 20px; }
        .hero-badge {
            background: var(--c-red); padding: 5px 15px; border-radius: 20px;
            font-family: var(--f-eng); font-size: 14px; margin-bottom: 20px; display: inline-block;
            animation: float 3s ease-in-out infinite;
        }
        .hero h1 {
            font-family: var(--f-eng); font-size: clamp(3rem, 10vw, 6rem);
            line-height: 1; margin-bottom: 20px; text-shadow: 0 0 20px rgba(0,0,0,0.5);
        }
        .hero p {
            font-size: clamp(1rem, 4vw, 1.25rem); font-weight: bold; margin-bottom: 40px;
        }
        .scroll-icon {
            position: absolute; bottom: 30px; animation: bounce 2s infinite;
            text-align: center; width: 100%;
        }

        /* --- マーキー --- */
        .marquee {
            background: var(--c-red); color: white; padding: 10px 0;
            overflow: hidden; white-space: nowrap; border-top: 4px solid var(--c-dark); border-bottom: 4px solid var(--c-dark);
        }
        .marquee-inner { display: inline-block; animation: scroll 20s linear infinite; }
        .marquee-item {
            display: inline-block; font-family: var(--f-eng); font-size: 20px; font-weight: bold;
            padding-right: 40px;
        }
        .marquee-item i { color: var(--c-sun); margin-left: 10px; }

        /* --- ニュースバー --- */
        .news-bar { background: white; border-bottom: 1px solid #eee; padding: 8px 0; font-size: 14px; }
        .news-badge { background: var(--c-dark); color: white; font-size: 10px; padding: 2px 6px; border-radius: 4px; margin-right: 8px; }

        /* --- コンセプト --- */
        .section { padding: 80px 0; }
        .stripe-bg {
            background: repeating-linear-gradient(45deg, #FFF5F7, #FFF5F7 10px, #fff 10px, #fff 20px);
        }
        .grid-2 { display: grid; gap: 40px; }
        @media (min-width: 768px) { .grid-2 { grid-template-columns: 1fr 1fr; align-items: center; } }
        
        .polaroid {
            background: white; padding: 15px 15px 50px 15px;
            box-shadow: 0 10px 20px rgba(0,0,0,0.1);
            transform: rotate(-3deg); transition: 0.3s;
            text-align: center; font-family: var(--f-eng); font-weight: bold; font-size: 20px;
        }
        .polaroid:hover { transform: rotate(0); }
        
        .section-title-eng {
            font-family: var(--f-eng); font-size: clamp(3rem, 6vw, 5rem); color: #eee;
            line-height: 1; margin-bottom: -0.5em; position: relative; z-index: 0;
        }
        .section-title-jp {
            font-family: var(--f-maru); font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 900;
            position: relative; z-index: 1; margin-bottom: 30px;
        }
        .highlight { background: #fff9c4; padding: 0 5px; color: var(--c-red); }

        /* --- メニュー --- */
        .menu-title { text-align: center; margin-bottom: 50px; }
        .menu-sub { color: var(--c-red); font-family: var(--f-eng); letter-spacing: 0.1em; display: block; font-weight: bold; }
        
        .menu-grid { display: grid; gap: 30px; }
        @media (min-width: 768px) { .menu-grid { grid-template-columns: 1fr 1fr; } }
        
        .menu-card {
            position: relative; height: 350px; border-radius: 20px; overflow: hidden;
            box-shadow: 0 5px 15px rgba(0,0,0,0.1); cursor: pointer;
        }
        .menu-card img {
            width: 100%; height: 100%; object-fit: cover; transition: 0.5s;
        }
        .menu-card:hover img { transform: scale(1.1); }
        .menu-overlay {
            position: absolute; bottom: 0; left: 0; width: 100%;
            background: linear-gradient(transparent, rgba(0,0,0,0.8));
            padding: 30px; color: white;
        }
        .tag { background: var(--c-sun); color: var(--c-dark); font-size: 11px; padding: 3px 8px; border-radius: 4px; font-weight: bold; margin-bottom: 5px; display: inline-block; }

        /* --- 品種ラインナップ --- */
        .lineup-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 20px;
            text-align: left;
            margin-top: 40px;
        }
        .lineup-card {
            background: #fff;
            border: 2px solid var(--c-dark);
            border-radius: 15px;
            padding: 20px;
            position: relative;
            box-shadow: 4px 4px 0 var(--c-bg);
            transition: 0.3s;
        }
        .lineup-card:hover {
            transform: translateY(-5px);
            box-shadow: 6px 6px 0 var(--c-red);
        }
        .lineup-icon {
            font-size: 40px;
            margin-bottom: 10px;
        }
        .lineup-card h4 {
            font-family: var(--f-maru);
            font-weight: 900;
            font-size: 18px;
            margin-bottom: 5px;
            color: var(--c-red);
        }
        .lineup-desc {
            font-size: 12px;
            line-height: 1.5;
            color: #666;
        }
        .lineup-badge {
            position: absolute;
            top: -10px;
            right: -10px;
            background: var(--c-sun);
            color: var(--c-dark);
            font-family: var(--f-eng);
            font-weight: bold;
            font-size: 10px;
            padding: 4px 8px;
            border-radius: 4px;
            border: 1px solid var(--c-dark);
            transform: rotate(10deg);
        }

        /* --- 料金 --- */
        .price-bg { background: var(--c-bg); }
        .price-box {
            background: white; border: 4px solid var(--c-red); border-radius: 30px;
            padding: 40px 20px; max-width: 700px; margin: 0 auto; position: relative;
            box-shadow: 10px 10px 0 rgba(0,0,0,0.1);
        }
        .price-label {
            position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
            background: var(--c-red); color: white; padding: 8px 30px; border-radius: 20px;
            font-family: var(--f-eng); font-weight: bold; font-size: 18px;
        }
        .price-row {
            display: flex; justify-content: space-between; align-items: center;
            border-bottom: 2px dashed #eee; padding: 15px 0;
        }
        .price-row:last-child { border-bottom: none; }
        .price-age { font-size: 14px; color: #666; margin-left: 10px; }
        .price-val { font-family: var(--f-eng); font-size: 28px; font-weight: bold; color: var(--c-red); }

        /* --- アクセス --- */
        .access-info p { margin-bottom: 15px; }
        .access-label { font-family: var(--f-eng); font-size: 12px; color: #999; margin-bottom: 2px; }
        .access-val { font-size: 18px; font-weight: bold; }
        .map-box {
            height: 300px; background: #eee; border-radius: 20px; overflow: hidden;
            border: 2px solid #ddd;
        }

        /* --- フッター --- */
        .footer { background: var(--c-dark); color: white; padding: 50px 0 80px; text-align: center; }
        .footer h2 { font-family: var(--f-maru); font-size: 24px; margin-bottom: 5px; }
        .sns-icons { display: flex; justify-content: center; gap: 20px; margin: 30px 0; }
        .sns-item {
            width: 45px; height: 45px; border: 1px solid #555; border-radius: 50%;
            display: flex; align-items: center; justify-content: center; font-size: 20px;
            transition: 0.3s;
        }
        .sns-item:hover { background: white; color: var(--c-dark); border-color: white; }

        /* --- 固定ボタン (スマホ) --- */
        .fixed-btn {
            position: fixed; bottom: 20px; left: 20px; right: 20px; z-index: 99;
        }
        .btn-float {
            display: block; width: 100%; text-align: center;
            background: var(--c-red); color: white; padding: 15px;
            border-radius: 50px; font-family: var(--f-eng); font-weight: bold; font-size: 20px;
            box-shadow: 0 5px 20px rgba(255,0,51,0.4); border: 2px solid rgba(255,255,255,0.5);
        }

        /* --- アニメーション --- */
        @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
        @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-10px); } 60% { transform: translateY(-5px); } }
        @keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }