/* --- Playful Details & Vibes --- */

/* Fun Underlines (Crayon Style) */
.fun-underline {
    position: relative;
    display: inline-block;
    z-index: 1;
}

.fun-underline::after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: -5px;
    right: -5px;
    height: 15px;
    background-color: var(--accent);
    opacity: 0.6;
    z-index: -1;
    border-radius: 20px 5px 20px 5px;
    transform: rotate(-2deg);
}

.fun-underline.blue::after {
    background-color: var(--secondary);
    opacity: 0.3;
}

.fun-underline.red::after {
    background-color: var(--primary);
    opacity: 0.3;
}

/* Polka Dot Background Pattern */
.bg-dots {
    background-image: radial-gradient(#e1e8ed 20%, transparent 20%),
        radial-gradient(#e1e8ed 20%, transparent 20%);
    background-color: #ffffff;
    background-position: 0 0, 25px 25px;
    background-size: 50px 50px;
}

/* Floating Shapes Animation */
@keyframes float {
    0% {
        transform: translateY(0px) rotate(0deg);
    }

    50% {
        transform: translateY(-15px) rotate(5deg);
    }

    100% {
        transform: translateY(0px) rotate(0deg);
    }
}

.floating-shape {
    position: absolute;
    font-size: 3rem;
    opacity: 0.2;
    z-index: 0;
    pointer-events: none;
    animation: float 6s ease-in-out infinite;
}

.shape-1 {
    top: 10%;
    left: 5%;
    color: var(--primary);
    animation-delay: 0s;
}

.shape-2 {
    top: 20%;
    right: 10%;
    color: var(--secondary);
    animation-delay: 1s;
}

.shape-3 {
    bottom: 15%;
    left: 10%;
    color: var(--accent);
    animation-delay: 2s;
}

.shape-4 {
    bottom: 30%;
    right: 5%;
    color: #a55eea;
    animation-delay: 3s;
}

/* Bouncy Hover Effects */
.reason-item,
.benefit-item,
.testimonial-card,
.bonus-card,
.problem-card {
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease;
}

.reason-item:hover,
.benefit-item:hover,
.testimonial-card:hover,
.bonus-card:hover {
    transform: translateY(-10px) rotate(1deg) !important;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1) !important;
}

/* Section Separators (Wavy) */
.wavy-divider {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    transform: rotate(180deg);
}

.wavy-divider svg {
    position: relative;
    display: block;
    width: calc(100% + 1.3px);
    height: 50px;
}

.wavy-divider .shape-fill {
    fill: #FFFFFF;
}

/* Add pattern to specific sections */
.benefits-section,
.faq-section {
    background-color: #f9fbfd;
    background-image: radial-gradient(#4ecdc4 0.5px, transparent 0.5px), radial-gradient(#4ecdc4 0.5px, #f9fbfd 0.5px);
    background-size: 20px 20px;
    background-position: 0 0, 10px 10px;
}

/* Cartoon Title Style (New) */
.cartoon-title {
    font-family: 'Fredoka', sans-serif;
    font-weight: 900;
    font-size: 3.5rem;
    color: #00C2FF;
    /* Cyan */
    text-transform: uppercase;
    -webkit-text-stroke: 2.5px black;
    text-shadow: 5px 5px 0px #000000;
    letter-spacing: 1px;
    transform: rotate(-2deg);
    display: inline-block;
    margin-bottom: 1rem;
    line-height: 1.1;
    padding: 0 10px;
}

@media (max-width: 768px) {
    .cartoon-title {
        font-size: 2.2rem;
        -webkit-text-stroke: 1.5px black;
        text-shadow: 3px 3px 0px #000000;
    }
}

/* Cartoon Title Color Variations */
.cartoon-title.pink {
    color: #FF6B6B;
}

.cartoon-title.yellow {
    color: #FDCB6E;
}

.cartoon-title.green {
    color: #00b894;
}

.cartoon-title.purple {
    color: #a55eea;
}

.cartoon-title.red {
    color: #d63031;
}

.cartoon-title.white {
    color: #ffffff;
}