@charset "utf-8";@charset "UTF-8";

/* ==========================================
   1. 全体・共通設定
   ========================================== */
body {
    margin: 0;
    padding: 0;
    font-family: "Helvetica Neue", Helvetica, Arial, "Hiragino Sans", sans-serif;
    overflow-x: hidden;
    background-color: #ffffff;
}

/* 既存のヘッダー・パン屑リストを非表示 */
#ec-header, .crumbsList, .crumbsList + script + hr {
    display: none !important;
}

/* ==========================================
   2. スプラスプラッシュエリア (タロットカード)
   ========================================== */
#splash {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    animation: fadeOutContainer 0.8s ease forwards 3.0s;
    pointer-events: none;
}

.card-wrapper {
    perspective: 1200px; 
}

.tarot-card {
    width: 260px;
    height: 450px;
    transform-style: preserve-3d;
    opacity: 0;
    animation: tarotIntro 2s cubic-bezier(0.22, 1, 0.36, 1) forwards 0.5s;
}

.tarot-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* PC/タブレット用*/
@media (min-width: 768px) {
    .tarot-card {
        width: 340px;
        height: 590px;
    }
}

/* ==========================================
   3. メインコンテンツエリア
   ========================================== */
#main-contents {
    opacity: 0;
    animation: fadeInPage 0.5s ease forwards 3.0s;
    position: relative;
    width: 100%;
}

/* ==========================================
   4. TOPメインエリア (Hero Section)
   ========================================== */
.thankyou-hero {
    width: 100%;
    max-width: 1440px;
    margin: -80px auto 0 auto !important;
    position: relative;
    z-index: 10;
    overflow: hidden;
    background-color: #0c1a3d;
}

@media screen and (min-width: 751px) {
    .thankyou-hero { margin-top: -130px !important; }
}

.thankyou-bg img {
    width: 100%;
    height: auto;
    display: block;
}

.thankyou-content {
    position: absolute;
    top: 78%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    width: 90%;
    z-index: 5;
}

.thankyou-title, .thankyou-subtitle {
    margin: 0;
    font-family: "Optima", "Playfair Display", serif;
    font-weight: 400;
    color: #ffffff !important;
    opacity: 0;
    animation: fadeUpOnly 2.0s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.thankyou-title {
    font-size: clamp(3.7rem, 6vw, 4rem);
    letter-spacing: 0.05em;
    margin-bottom: 15px;
    animation-delay: 3.5s;
}

.thankyou-subtitle {
    font-size: clamp(1.2rem, 3vw, 1.8rem);
    letter-spacing: 0.05em;
    animation-delay: 3.9s;
}

@media screen and (max-width: 767px) {
    .thankyou-content { top: 83%; }
}

/* ==========================================
   5. 星が降る演出
   ========================================== */
.star-fall-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    pointer-events: none;
    z-index: 50;
    overflow: hidden;
}

.star {
    position: absolute;
    top: -50px;
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    opacity: 0;
    animation: starFallAnim 7s linear forwards;
}

.star.silver {
    background-image: url("/photo/page/20260218/star.png");
    filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.7));
}

.star.red {
    background-image: url("/photo/page/20260218/star-red.png");
    filter: drop-shadow(0 0 7px rgba(255, 0, 0, 0.8));
    width: 24px;
    height: 24px;
}

.star:nth-child(1) { left: 15%; animation-delay: 3.2s; }
.star:nth-child(2) { left: 30%; animation-delay: 4.8s; }
.star:nth-child(3) { left: 45%; animation-delay: 3.8s; }
.star:nth-child(4) { left: 65%; animation-delay: 5.5s; }
.star:nth-child(5) { left: 80%; animation-delay: 4.1s; }
.star:nth-child(6) { left: 10%; animation-delay: 6.2s; }
.star.red { left: 50%; animation-delay: 5.8s; }

/* ==========================================
   6. メッセージエリア
   ========================================== */
.thankyou-message-container {
    padding: 100px 20px;
    text-align: center;
    background-color: #ffffff;
}

.thankyou-message-text {
    font-size: 14px;
    line-height: 2.2;
    color: #333333;
    letter-spacing: 0.08em;
}

/* ==========================================
   7. Limited Item 共通設定
   ========================================== */
.limited-container {
    width: 100%;
    background-color: #ffffff;
    padding: clamp(40px, 6vw, 80px) 0;
    box-sizing: border-box;
    overflow: hidden;
}

.limited-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: clamp(30px, 5vw, 60px);
    padding: 0 clamp(20px, 4vw, 40px);
}

.limited-image-box {
    flex: 1.1 1 0%;
    min-width: 0;
    overflow: hidden;
    align-self: center;
}

.limited-slider-track {
    display: flex;
    gap: 20px;
}

.limited-slide {
    flex: 1 1 0%;
    min-width: 0;
}

.limited-slide img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 5 / 7;
    object-fit: cover;
}

.limited-text-content {
    flex: 1 1 0%;
    min-width: 0;
    color: #333333;
}

.limited-brand-title {
    font-size: clamp(28px, 4vw, 42px);
    margin: 0 0 20px 0;
    line-height: 1.1;
    font-weight: 700;
}

.limited-lead-text {
    font-size: clamp(11px, 1.3vw, 13px);
    line-height: 1.8;
    margin-bottom: 30px;
    text-align: justify;
}

/* 商品カード詳細 */
.limited-item-card {
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    color: #333333;
    transition: opacity 0.3s;
    margin-bottom: 15px;
}

.limited-item-card:last-child { margin-bottom: 0; }
.limited-item-card:hover { opacity: 0.7; }

.limited-item-thumb { width: 55px; flex-shrink: 0; }
.limited-item-thumb img { width: 100%; height: auto; display: block; }

.limited-item-info { display: flex; flex-direction: column; gap: 3px; }
.limited-brand-sub { font-size: 10px; font-weight: 600; }
.limited-item-name { font-size: 11px; margin: 0; line-height: 1.3; }
.limited-item-price { font-size: 11px; color: #777777; margin: 0; }

/* ==========================================
   8. スマホ表示・反転制御 (767px以下)
   ========================================== */
@media screen and (max-width: 767px) {
    .star { width: 16px; height: 16px; }
    .star.red { width: 20px; height: 20px; }
    
    .thankyou-message-container { padding: 70px 20px; }
    .thankyou-message-text { font-size: 13px; text-align:center; display: inline-block; }

    .limited-wrapper { flex-direction: column; padding: 0 20px; gap: 35px; }
    .limited-slider-track {
        gap: 0;
        width: 200%;
        animation: limitedSlideAnime 6s infinite cubic-bezier(0.45, 0, 0.55, 1);
    }
    .limited-brand-title { font-size: 30px; }
    .limited-item-card { margin-bottom: 20px; }
    .limited-item-thumb { width: 60px; }

    /* スマホ時の順序制御 */
    .limited-rev .limited-wrapper { flex-direction: column; }
    .limited-rev .limited-image-box { order: 1; }
    .limited-rev .limited-text-content { order: 2; }
}

@media screen and (min-width: 768px) {
    .limited-rev .limited-wrapper { flex-direction: row; }
}

/* ==========================================
   9. アニメーション定義
   ========================================== */
@keyframes tarotIntro { 
    0% { transform: rotateY(0deg) scale(0.6); opacity: 0; } 
    20% { opacity: 1; } 
    100% { transform: rotateY(720deg) scale(1); opacity: 1; } 
}
@keyframes fadeOutContainer { 0% { opacity: 1; visibility: visible; } 100% { opacity: 0; visibility: hidden; } }
@keyframes fadeInPage { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeUpOnly { 0% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes starFallAnim {
    0% { transform: translateY(0) rotate(0deg); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; transform: translateY(100vh) rotate(320deg); }
    100% { opacity: 0; transform: translateY(110vh) rotate(360deg); }
}
@keyframes limitedSlideAnime { 0%, 45% { transform: translateX(0); } 55%, 100% { transform: translateX(-50%); } }

/* ==========================================
   10. クーポンセクション設定
   ========================================== */
.coupon-section {
    width: 100%;
    padding: 80px 20px 30px 20px;
    box-sizing: border-box;
}

.coupon-inner {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.coupon-info-top { margin-bottom: 40px; }
.coupon-info-top p { margin: 0 0 8px 0; font-size: 13px; line-height: 1.6; color: #333333; letter-spacing: 0.05em; }
.sale-period { font-weight: 600; font-size: 15px !important; margin-bottom: 15px !important; }

.coupon-image-box { width: 100%; max-width: 450px; margin: 0 auto 40px auto; }
.coupon-image-box img { width: 100%; height: auto; display: block; }

.coupon-info-bottom p { margin: 0 0 10px 0; font-size: 13px; line-height: 1.6; color: #333333; letter-spacing: 0.05em; }
.coupon-code { font-size: 16px !important; font-weight: 600; margin-bottom: 15px !important; }
.coupon-code span { letter-spacing: 0.2em; margin-left: 5px; }
.expiry-date { font-weight: 600; margin-bottom: 20px !important; }

.how-to-use { margin-top: 30px; }
.how-to-use a { color: #333333; text-decoration: underline; font-size: 14px; transition: opacity 0.3s; }
.how-to-use a:hover { opacity: 0.7; }

@media screen and (max-width: 767px) {
    .coupon-section { padding: 60px 20px 80px 20px; }
    .coupon-info-top p, .coupon-info-bottom p { font-size: 11px; }
    .sale-period { font-size: 13px !important; }
    .coupon-code { font-size: 14px !important; }

/* 追加：ご利用方法下の画像スタイル */

.how-to-use-image {
    margin-top: 30px; 
    width: 100%;
    max-width: 600px; 
    margin-left: auto;
    margin-right: auto;
}

.how-to-use-image img {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom:20px;
}

@media screen and (max-width: 767px) {
    .how-to-use-image {
        margin-top: 20px;
        padding: 0 10px; 
        margin-bottom:20px;
    }
}