@charset "utf-8";

/* --- 基礎設定 --- */
.lp-container {
    max-width: 100%;
    overflow-x: hidden;
    color: #333;
    background-color: #fff;
    -webkit-font-smoothing: antialiased;
}

/* --- アニメーション（CSS順次実行型） --- */
@keyframes fadeInUpLight {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-target {
    opacity: 0;
    animation: fadeInUpLight 0.6s ease-out forwards;
}

.lp-hero-content { animation-delay: 0.1s; }
.lp-product-section { animation-delay: 0.3s; }
.lp-product-card:nth-child(1) { animation-delay: 0.4s; }
.lp-product-card:nth-child(2) { animation-delay: 0.5s; }
.lp-product-card:nth-child(3) { animation-delay: 0.6s; }
.lp-product-card:nth-child(4) { animation-delay: 0.7s; }
.lp-body { animation-delay: 0.8s; }
.lp-cta { animation-delay: 0.9s; }

/* --- ヒーローセクション装飾 --- */
.lp-hero { text-align: center; background: #fff; }
.lp-hero-image img { width: 100%; height: auto; display: block; }
.lp-hero-content { padding: 40px 20px; }

.lp-sub-copy {
    display: inline-block; font-weight: bold; font-size: 1.1rem; color: #b8943a;
    margin-bottom: 15px; position: relative; padding: 0 40px;
}
.lp-sub-copy::before, .lp-sub-copy::after {
    content: ''; position: absolute; top: 50%; transform: translateY(-50%);
    width: 25px; height: 1px; background: #b8943a;
}
.lp-sub-copy::before { left: 0; }
.lp-sub-copy::after { right: 0; }

.sub-copy-inner { position: relative; display: inline-block; overflow: hidden; vertical-align: bottom; }
.sub-copy-shine::after {
    content: ''; position: absolute; top: 0; left: -150%; width: 100%; height: 100%;
    background: linear-gradient(to right, transparent, rgba(255,255,255,0.4), transparent);
    transform: skewX(-25deg);
    animation: sub-shine 4s infinite 1s;
}
@keyframes sub-shine { 0% { left: -150%; } 30%, 100% { left: 150%; } }

.lp-main-title { font-size: 2.4rem; font-weight: 900; line-height: 1.3; margin-bottom: 20px; color: inherit; }
.lp-period { display: inline-block; background: #333; color: #fff; padding: 6px 20px; border-radius: 50px; font-size: 0.9rem; font-weight: bold; margin-bottom: 20px; }
.lp-event-summary { max-width: 700px; margin: 0 auto; font-size: 1.1rem; color: #444; line-height: 1.8; }

/* --- 商品セクション（和紙風） --- */
.lp-product-section { padding: 0px 20px; background-color: #fdfaf5; }
.lp-section-inner { max-width: 1100px; margin: 0 auto; }
.lp-section-title {
    text-align: center; font-size: 1.8rem; font-weight: 900; margin-bottom: 40px;
    display: flex; align-items: center; justify-content: center; gap: 15px; color: inherit;
}
.lp-section-title::before, .lp-section-title::after {
    content: ''; width: 50px; height: 2px;
    background: linear-gradient(to right, transparent, currentColor); opacity: 0.5;
}
.lp-section-title span { display: block; font-size: 0.7rem; opacity: 0.5; margin-top: 5px; font-weight: normal; letter-spacing: 0.2em; }

.lp-product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lp-product-card { background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
.lp-product-img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.lp-product-info { padding: 15px; text-align: center; }
.lp-product-name { font-size: 1rem; font-weight: bold; margin-bottom: 12px; }

/* 価格表示周りの調整 */
.lp-product-price-box { display: flex; flex-direction: column; gap: 4px; align-items: center; }

.lp-price-old-group { display: flex; align-items: center; gap: 5px; opacity: 0.6; }
.lp-price-old { font-size: 0.85rem; color: #999; text-decoration: line-through; }
.lp-price-tax-included { font-size: 0.7rem; color: #aaa; }

.lp-price-sale-group { display: flex; flex-direction: column; align-items: center; line-height: 1.2; }
.lp-price-sale { font-size: 1.5rem; font-weight: 900; color: #e60012; }
.lp-price-tax-included-main { font-size: 0.75rem; color: #e60012; opacity: 0.9; font-weight: bold; }

/* --- 予約ボタン --- */
.lp-cta { padding: 60px 20px; text-align: center; background: #fdfaf5; }
.lp-reserve-button {
    display: inline-block; background: #e60012; color: #fff !important;
    padding: 20px 50px; font-size: 1.4rem; font-weight: bold; border-radius: 8px;
    text-decoration: none; animation: btn-pulse 2s infinite;
}
@keyframes btn-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } }

@media (max-width: 767px) {
    .lp-main-title { font-size: 1.6rem; }
    .lp-product-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .lp-reserve-button { width: 100%; padding: 15px; font-size: 1.2rem; }
}

/* --- 注意事項セクション（旧利用規約） --- */
.lp-terms-container {
    max-width: 800px;
    margin: 60px auto 0;
    padding: 30px;
    background: rgba(255, 255, 255, 0.5); /* 和紙背景の上で少し白く浮かせる */
    border: 1px solid #eee;
    border-radius: 8px;
    text-align: left;
    animation-delay: 1.0s;
}

.lp-terms-title {
    font-size: 1.1rem;
    font-weight: bold;
    margin-bottom: 20px;
    text-align: center;
    color: #666;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

/* タイトル横のライン */
.lp-terms-title::before,
.lp-terms-title::after {
    content: '';
    width: 20px;
    height: 1px;
    background: #ccc;
}

.lp-terms-content {
    font-size: 0.85rem;
    color: #777;
    line-height: 1.7;
}

/* スマホ対応 */
@media (max-width: 767px) {
    .lp-terms-container {
        margin: 40px 10px 0;
        padding: 20px;
    }
}