/* =========================================
   1. RESET & VARIABLE GLOBAL
   ========================================= */
:root {
    --cream: #F4E2D6;
    --red: #EC1C24;
    --purple: #490981;
    --promo-red: #A3001F;
    
    /* VARIABEL TRIAL GAMEPLAY */
    --neon:#FF2D95;
    --neon-shadow:#AD1F69;
    --card-radius:14px;
    --card-w:240px;
    --card-h:396px;
    --shadow:0 18px 34px rgba(0,0,0,.35);
    --z-popup:30;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

/* REVISI BODY: Hapus overflow hidden */
body {
    background-color: #000;
    background-image: url('/landing/assets/img/BG_wildloov_LP.png');
    background-repeat: repeat-y;
    background-position: top center;
    background-size: 470px auto;
    font-family: 'Montserrat', sans-serif;
    color: var(--cream);
    max-width: 480px;
    margin: 0 auto;
    position: relative;
    overflow-x: hidden;
    min-height: 100vh;
}

body.allow-scroll {
    overflow-y: auto;
    overflow-x: hidden;
}

/* FIX: Mencegah layout shift pada gambar */
img {
    max-width: 100%;
    height: auto;
    display: block; 
    margin: 0 auto;
}

/* PEMBUNGKUS UTAMA */
.landing-container {
    width: 100%;
    overflow: hidden; 
    position: relative;
}

/* =========================================
   2. PENGATURAN UMUM SECTION (GAP)
   ========================================= */
section {
    padding: 5px 10px;
    text-align: center;
}

.mt-gap {
    margin-top: 13px;
}

/* =========================================
   3. HEADER
   ========================================= */
.main-header {
    padding: 7px 0;
    text-align: center;
}

.main-header img {
    max-height: 75px;
}

/* =========================================
   4. SECTION AGE RESTRICTION
   ========================================= */
.section-age-restriction p {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    font-size: 17pt;
    color: var(--cream);
    line-height: 1.2;
}

.red-exclamation {
    color: var(--red);
    margin-bottom: 3px;
}

/* =========================================
   5. SECTION HEADLINE UTAMA
   ========================================= */
.headline-title {
    font-family: 'Playfair Display', serif;
    font-weight: 600;
    font-size: 28pt;
    color: var(--cream);
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.5);
    line-height: 1.1;
    margin-bottom: 3px;
}

.headline-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 11pt;
    color: var(--cream);
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.5);
    margin-bottom: 15px;
}

.headline-desc {
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 11pt;
    color: var(--cream);
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.5);
    margin-bottom: 15px;
}

/* =========================================
   6. SECTION ILUSTRASI KARTU
   ========================================= */
.section-illustration-card img {
    max-width: 350px;
    margin-bottom: 15px;
}

/* =========================================
   7. TEXT BLOCK STYLING
   ========================================= */
.text-bold {
    font-weight: 700;
    font-size: 15pt;
    color: var(--cream);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    line-height: 1;
}

.text-medium {
    font-weight: 500;
    font-size: 12.5pt;
    color: var(--cream);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    line-height: 1.4;
}

.text-bold-18 {
    font-weight: 700;
    font-size: 14pt;
    color: var(--cream);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    line-height: 1.4;
    margin-bottom: 10px;
}
.text-kedua-penjelasan {
    font-weight: 500;
    font-size: 13pt;
    color: var(--cream);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    line-height: 1.4;
    margin-bottom: 10px;
}

.text-keetiga-cta-trial {
    font-weight: 700;
    font-size: 15pt;
    color: var(--cream);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    line-height: 1.4;
    margin-bottom: 20px;
}

.text-medium-14 {
    font-family: 'Montserrat';
    font-weight: 500;
    font-size: 13pt;
    color: var(--cream);
    line-height: 1.4;
    margin-bottom: 20px;
}

/* =========================================
   8. SWIPER SETTING
   ========================================= */
.swiper-container-visual {
    width: 100%; 
    margin-left: 0;
    position: relative;
    overflow: hidden;
    padding: 20px 0;
}

.swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    transition: transform 0.4s ease, opacity 0.4s ease;
    width: 280px; 
}

.swiper-slide:not(.swiper-slide-active) {
    opacity: 0.5;
    transform: scale(0.8);
}

.swiper-slide-active {
    opacity: 1;
    transform: scale(1);
    z-index: 5;
}

.swiper-slide img {
    max-width: 100%;
    border-radius: 15px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
}

.swiper-button-next,
.swiper-button-prev {
    color: var(--cream) !important;
    background: transparent;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 40px !important;
    font-weight: bold;
    opacity: 50%;
}

.swiper-button-prev { left: 10%; }
.swiper-button-next { right: 10%; }

/* =========================================
   9. BUTTON UMUM & ANIMASI
   ========================================= */
@keyframes pulse-check {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); filter: brightness(1.1); }
    100% { transform: scale(1); }
}

.btn-animate {
    margin: 0 auto;
    animation: pulse-check 1.5s infinite ease-in-out;
    transition: transform 0.1s;
    cursor: pointer;
    display: block;
    margin-bottom: 35px;
}

.btn-animate:active {
    transform: scale(0.95) !important;
    animation: none;
}

/* JENIS BUTTON */
.btn-age-gate {
    width: 190px;
}

.btn-checkout-trial {
    width: 300px;
    bottom: 55px;
    margin-bottom: 7px;
}

.btn-main-checkout {
    width: 309px;
    margin-bottom: 5px;
}

/* =========================================
   10. INTEGRATED TRIAL GAMEPLAY
   ========================================= */
.rail-wrap{ position:relative; overflow:hidden; padding:16px 0 20px; }

.card{
  width:var(--card-w); height:var(--card-h);
  position:relative; border-radius:var(--card-radius);
}
.card .front,.card .back{
  position:absolute; inset:0; border-radius:var(--card-radius);
  backface-visibility:hidden; overflow:hidden;
}
.card .front img,.card .back img{ width:100%; height:100%; object-fit:cover; display:block; }
.card .back{ transform:rotateY(180deg); }
.card.is-flipped{ transform:rotateY(180deg) !important; }

/* ANIMASI FLIP */
@keyframes flipCard { 0%{transform:rotateY(0)} 100%{transform:rotateY(180deg)} }
.card.flip-anim{ animation: flipCard .8s ease forwards; }

/* ANIMASI KILAP */
@keyframes shine-card {
  0% { transform: translateX(-100%); }
  6% { transform: translateX(100%); } 
  100% { transform: translateX(100%); }
}
.card.is-flipped .back::after {
  content: ''; position: absolute; top: 0;
  transform: translateX(-100%); width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  animation: shine-card 10s infinite linear;
}

.tabs{ display:flex; justify-content:space-between; gap:8px; padding:6px 0; max-width: 360px; margin: 0 auto; }
.tab{ 
  background:transparent; border:0; padding:0; line-height:0; 
  position: relative; transition: all 0.25s ease;
  pointer-events: none; 
}
.tab img{ display:block; width:100%; height:auto; }
[aria-selected="true"] { transform: scale(1.1); }
[aria-selected="true"] img { filter: drop-shadow(0 0 3px rgba(255, 70, 150, 0.75)); }
[aria-selected="false"] { transform: scale(0.95); opacity: 0.85; }

.controls{ display:flex; justify-content:center; align-items:center; margin:20px 0; }
.btn-play{ background:transparent; border:0; padding:0; cursor: pointer; }
.btn-play img{
  width:351px; max-width:90vw; height:auto; display:block;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.35));
  transition: transform .2s ease;
}
.btn-play:active img{ transform:scale(.94); }

.gameplay-wrapper .swiper {
    width: 100%;
    padding-top: 10px;
    padding-bottom: 10px;
    overflow: hidden !important; 
}

.gameplay-wrapper .swiper-slide {
    background-position: center;
    background-size: cover;
    width: var(--card-w) !important; 
    height: var(--card-h) !important; 
    opacity: 1 !important; 
    transform-style: preserve-3d !important; 
    display: block !important; 
    margin: 0 auto;
}

.gameplay-wrapper .swiper-slide {
    margin: 0 15px !important; 
}

.gameplay-wrapper .swiper-slide-shadow { display: none !important; }
.gameplay-wrapper .swiper-wrapper { transform-style: preserve-3d !important; }

/* =========================================
   11. SUBHEADLINE UMUM
   ========================================= */
.section-subheadline h3 {
    font-family: 'Playfair Display', serif;
    font-weight: 600;
    font-size: 25pt;
    color: var(--cream);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    line-height: 1.3;
}

/* =========================================
   12. LIST TEXT
   ========================================= */
.text-left-mobile {
    text-align: left;
    padding: 10px 25px;
}

.benefit-list {
    list-style-type: disc;
    color: var(--cream);
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 13pt;
    padding-left: 20px;
    line-height: 1.4;
    margin-bottom: 5px;
}

.benefit-list li {
    margin-bottom: 8px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

/* =========================================
   13. BOX VISUAL
   ========================================= */
.section-box-visual .visual-box {
    border: 2px solid var(--cream);
    border-radius: 20px;
    padding: 7px 20px;
    margin: 0 auto;
    max-width: 350px;
    height: 525px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    overflow: hidden;
}

.box-title {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    font-size: 20pt;
    color: var(--cream);
    margin-bottom: 10px;
}

.swiperVisualBox .swiper-slide img {
    max-width: 250px;
}

/* =========================================
   14. SUBHEADLINE BOLD
   ========================================= */
.section-subheadline-bold h3 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 18pt;
    color: var(--cream);
    line-height: 1.4;
}

/* =========================================
   15. PRICE LIST
   ========================================= */
.pricelist-box {
    background: linear-gradient(135deg, #C7C9D6 0%, #FFFFFF 100%);
    width: 100%;
    padding: 10px 20px;
    color: var(--purple);
    text-align: center;
    position: relative;
    overflow: hidden;
    margin-bottom: 20px;
    margin-top: 20px;
}

.price-strike-wrapper {
    position: relative;
    display: inline-block;
    margin-bottom: -20px;
}

.price-strike-text {
    font-family: 'Bebas Neue';
    font-size: 69pt;
    color: var(--purple);
}

.price-strike-line {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 252px;
    height: 12px;
}

.price-offer-text {
    font-family: 'Bebas Neue';
    font-size: 22pt;
    color: var(--purple);
    margin-bottom: 10px;
}

.price-main {
    font-family: 'Bebas Neue';
    font-size: 110pt;
    color: var(--promo-red);
    line-height: 0.9;
    margin-bottom: 0px;
}

.price-visual {
    width: 312px;
    height: 312px;
    margin: 0 auto 30px auto;
}

.price-what-get {
    font-family: 'Playfair Display';
    font-weight: 800;
    font-size: 28pt;
    color: var(--purple);
    margin-bottom: 25px;
    line-height: 1.2;
}

.price-list-items {
    text-align: left;
    font-family: 'Montserrat';
    font-weight: 600;
    font-size: 14pt;
    color: var(--purple);
    padding-left: 20px;
    margin-bottom: 30px;
    line-height: 1.4;
}

.price-list-items li {
    margin-bottom: 15px;
}

.price-book-visual {
    width: 312px;
    height: 312px;
    margin-bottom: 0px;
}

.price-warning {
    margin-top: 10px;
}

.warning-head {
    font-family: 'Montserrat';
    font-weight: 700;
    font-size: 25pt;
    color: var(--red);
    margin-bottom: 0px;
}

.warning-body {
    font-family: 'Montserrat';
    font-weight: 600;
    font-size: 13pt;
    color: var(--purple);
    margin-bottom: 15px;
}

/* =========================================
   16. SUBHEADLINE EXTRA
   ========================================= */
.section-subheadline-extra h3 {
    font-family: 'Playfair Display', serif;
    font-weight: 800;
    font-size: 20pt;
    color: var(--cream);
    line-height: 1.3;
    margin-bottom: 10px;
}

/* =========================================
   17. FAQ ACCORDION
   ========================================= */
.accordion-container {
    max-width: 95%;
    margin: 0 auto;
}

.accordion-item {
    border-bottom: 1px solid rgba(73, 9, 129, 0.2);
    margin-bottom: 10px;
}

.accordion-header {
    background-color: var(--cream);
    color: var(--purple);
    cursor: pointer;
    padding: 10px;
    width: 100%;
    text-align: left;
    border: none;
    outline: none;
    transition: 0.4s;
    font-family: 'Montserrat';
    font-weight: 700;
    font-size: 11pt;
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2px;
}

.accordion-header:after {
    content: '\002B';
    font-weight: bold;
    font-size: 14pt;
    float: right;
    margin-left: 10px;
}

.accordion-header.active:after {
    content: "\2212";
}

.accordion-content {
    padding: 1px 0 20px 20px;
    background-color: var(--cream);
    max-height: 0;
    border-radius: 7px;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
    text-align: left;
}

.accordion-content p {
    font-family: 'Montserrat';
    font-weight: 700;
    font-size: 12pt;
    color: var(--purple);
    padding: 20px 0;
    line-height: 1.6;
}

/* =========================================
   18. CTA AKHIR BOX
   ========================================= */
.section-cta-akhir .cta-box {
    background: linear-gradient(135deg, #C7C9D6 0%, #FFFFFF 100%);
    padding: 15px 20px;
    color: var(--purple);
}

.cta-title {
    font-family: 'Montserrat';
    font-weight: 700;
    font-size: 20pt;
    margin-top: 25px;
    margin-bottom: 15px;
    line-height: 1.3;
}

.cta-checkout {
    font-family: 'Montserrat';
    font-weight: 800;
    font-size: 28pt;
    margin-bottom: 25px;
}

.cta-price-old {
    font-family: 'Montserrat';
    font-weight: 500;
    font-size: 18pt;
    text-decoration: line-through;
    margin-bottom: 5px;
}

.cta-price-new {
    font-family: 'Montserrat';
    font-weight: 700;
    font-size: 23pt;
    color: var(--red);
    margin-bottom: 15px;
}

.cta-price-voucher {
    font-family: 'Montserrat';
    font-weight: 700;
    font-size: 14pt;
    line-height: 1.5;
    color: var(--red);
    margin-bottom: 30px;
}

.cta-desc-box {
    max-width: 350px;
    margin: 0 auto;
    font-family: 'Montserrat';
    font-size: 15pt;
    line-height: 1.5;
    margin-bottom: 15px;
    border: 1px solid var(--purple);
    padding: 20px;
    border-radius: 10px;
}

/* =========================================
   19. FOOTER
   ========================================= */
.main-footer {
    background-color: var(--cream);
    padding: 5px 20px;
    text-align: center;
    margin-top: 30px;
}

.main-footer p {
    font-family: 'Montserrat';
    font-weight: 600;
    font-size: 10.5pt;
    color: var(--purple);
}

/* =========================================
   20. POP UP (TRIAL END ONLY)
   ========================================= */
.popup{ 
  position:fixed; inset:0; background:rgba(0,0,0,.7); 
  display:flex; justify-content:center; align-items:center; 
  z-index:var(--z-popup);
}
.popup.hidden{ display:none; }

.popup-inner{
  position:relative; 
  width: 92%;       
  max-width: 400px; 
}
#popupImage{ width:100%; height:auto; display:block; }

.popup-close-btn {
  position: absolute;
  top: 15px;    
  right: 20px; 
  width: 34px;   
  height: 34px; 
  font-size: 50px;
  background: transparent;
  border: 0;
  color: var(--neon);
  font-weight: bold;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  z-index: 50;
}

.popup-actions{ 
  position:absolute; left:0; right:0; 
  scale: 75%;
  display:flex; justify-content:center; 
  bottom: 20%;
}

.popup-actions img:active { transform: scale(0.95); }

.price-main.btn-animate {
    display: inline-block; 
    cursor: default;     
    width: 100%;     
}


/* =========================================
   21. STICKY FOOTER CTA (VERSI LEBIH TIPIS + TEKS PULSE)
   ========================================= */

body {
    padding-bottom: 90px;
}

.sticky-footer-cta {
    position: fixed;
    bottom: 15px; /* Sedikit naik biar estetik */
    left: 50%;
    
    /* FIX: KITA SET DARI AWAL BIAR GAK LARI */
    transform: translateX(-50%) scale(0);
    opacity: 0;
    pointer-events: none;
    transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.27);
    
    width: 90%; 
    max-width: 460px;
    z-index: 9999;
    
    background-color: #e1bfff;
    color: #000000 !important;
    
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    font-size: 13pt; 
    text-align: center;
    text-decoration: none;
    padding: 10px 10px; 
    
    border-radius: 50px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.5); 
    border: 2px solid #f507e5;
    
    display: flex;
    justify-content: center;
    align-items: center;
}

.sticky-footer-cta:active {
    transform: translateX(-50%) scale(0.95);
}

/* === ANIMASI KHUSUS FONT (PULSING) === */
.sticky-footer-cta .cta-text {
    display: inline-block; 
    animation: textBreath 1.5s infinite ease-in-out;
}

@keyframes textBreath {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); text-shadow: 0 0 5px rgba(255,255,255,0.8); }
    100% { transform: scale(1); }
}

/* =========================================
   22. TIMER STYLE (SCARCITY)
   ========================================= */
.timer-dynamic {
    font-weight: 800;
    color: #000000; /* Default Hitam */
    transition: color 0.1s ease;
}

/* Class Merah (Akan di-switch oleh JS) */
.blink-red {
    color: #EC1C24 !important; /* Merah Menyala */
}

/* =========================================
   FAKE SALES NOTIFICATION TOAST
   ========================================= */
.wl-toast-container {
    position: fixed;
    top: 25px;
    left: 50%;
    transform: translate(-50%, -150%); /* Sembunyi di atas */
    z-index: 9999;
    opacity: 0;
    width: 90%;
    max-width: 360px;
    pointer-events: none; /* Biar gak ganggu klik user di konten utama */
    transition: transform 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55), opacity 0.6s ease;
}

/* Animasi Masuk dari Atas */
.wl-toast-container.show {
    transform: translate(-50%, 0);
    opacity: 1;
}

/* Animasi Keluar ke Kiri */
.wl-toast-container.hide {
    transform: translate(-150vw, 0);
    opacity: 0;
    transition: transform 0.5s ease-in, opacity 0.5s ease;
}

.wl-toast-content {
    background: rgba(73, 9, 129, 0.85); /* var(--purple) transparan */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(244, 226, 214, 0.2); /* var(--cream) transparan */
    border-radius: 12px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
}

.wl-toast-icon {
    background: rgba(244, 226, 214, 0.15);
    border-radius: 50%;
    width: 38px;
    height: 38px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}

.wl-toast-text p {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 500;
    color: #F4E2D6; /* var(--cream) */
    line-height: 1.4;
    margin: 0;
    padding: 0;
}

.wl-toast-time {
    display: block;
    font-size: 9px;
    color: rgba(244, 226, 214, 0.6);
    margin-top: 4px;
    font-weight: 600;
}
