/*
Theme Name: Custom-Child
Theme URI: https://wordpress.org/themes/twentytwentyfour/
Template: twentytwentyfour
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4.
Tags: one-column,custom-colors,custom-menu,custom-logo,editor-style,featured-images,full-site-editing,block-patterns,rtl-language-support,sticky-post,threaded-comments,translation-ready,wide-blocks,block-styles,style-variations,accessibility-ready,blog,portfolio,news
Version: 1.3.1750385342
Updated: 2025-06-20 02:09:02

*/

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@100..800&display=swap');

:root {
    /* Colores de marca */
    --color-primary: #F67478;
    /* Principal */
    --color-primary-dark: #D38688;
    /* Secundario oscuro */
    --color-bg: #FFFFFF;
    /* Fondo principal */
    --color-shadow: #00000029;
    /* Sombra */
    --color-text-main: #666666;
    /* Texto principal */
    --color-input-bg: #F5F5F5;
    --color-input-placeholder: #BCBCBC;
    /* Fondo de inputs */
    --color-modal-bg: rgba(0, 0, 0, 0.5);

    /* Colores de la rueda de la vida */
    --wheel-color-1: #FFBD06;
    --wheel-color-2: #FF6458;
    --wheel-color-3: #90EC65;
    --wheel-color-4: #3D8CF7;
    --wheel-color-5: #B13BD5;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Sora', Arial, sans-serif;
    background-color: var(--color-primary);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--color-text-main);
}

/* styles for inputs */
input,
textarea {
    border: none;
    border-radius: 21px;
    background: var(--color-input-bg);
    font-size: 1rem;
    font-family: 'Sora', Arial, sans-serif;
    font-weight: 400;
    padding: 16px 20px;
    margin-bottom: 0;
    box-sizing: border-box;
    transition: background 0.2s;
    color: var(--color-text-main);
}

input:focus,
textarea:focus {
    outline: 1px solid var(--color-primary-dark);
}


input::placeholder,
textarea::placeholder {
    color: var(--color-input-placeholder);
}

/* Botones con hover fluido */
.btn {
    position: relative;
    overflow: hidden;
    font-family: 'Sora', Arial, sans-serif;
    font-weight: 600;
    letter-spacing: 0.2px;
    border: none;
    border-radius: 15px;
    font-size: 1rem;
    width: auto;
    min-width: 175px;
    max-width: 220px;
    margin: 0 auto;
    display: block;
    transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    padding: 15px;
    cursor: pointer;
    transform: translateY(0);
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.btn:active {
    transform: translateY(0);
    transition: all 0.1s;
}

.btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(120deg, rgba(255, 255, 255, 0.0) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.0) 100%);
    transform: skewX(-20deg);
    transition: left 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    z-index: 2;
}

.btn:hover::after {
    left: 120%;
    transition: left 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed;
    pointer-events: none;
}

.btn__primary {
    background: var(--color-primary-dark);
    color: #fff;
}

.btn__primary:hover {
    background: var(--color-primary);
    color: #fff;
}

.btn__secondary {
    background: #fff;
    color: var(--color-primary-dark);
    border: 2px solid var(--color-primary-dark);
}

.btn__secondary:hover {
    background: var(--color-primary-dark);
    color: #fff;
    border: 2px solid var(--color-primary-dark);
}

.container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    /* min-height: 70vh; */
    max-width: 500px;
    margin: 0 auto;
    width: 100vw;
    padding: 0 16px;
}

.screen-container {
    width: 100%;
    position: relative;
    overflow: hidden;
}

.screen {
    width: 100%;
    color: var(--color-text-main);
    padding: 34px 19px;
    text-align: center;
    background: var(--color-bg);
    border-radius: 21px;
    box-shadow: 0px 3px 6px var(--color-shadow);

    /* Estados de animación optimizados - sin position absolute */
    display: none;
    opacity: 0;
    transform: translateX(20px);
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.screen.active {
    display: block;
    opacity: 1;
    transform: translateX(0);
    animation: screenFadeIn 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

@keyframes screenFadeIn {
    from {
        opacity: 0;
        transform: translateX(20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Animación de entrada para elementos internos - solo CSS */
.screen.active .section-title,
.screen.active .description,
.screen.active .btn,
.screen.active .form-group,
.screen.active .white-box,
.screen.active .commitment-form,
.screen.active .lead-form-title {
    animation: slideInUp 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) alternate forwards;
}

.screen.active .section-title {
    animation-delay: 0.05s;
}

.screen.active .description {
    animation-delay: 0.1s;
}

.screen.active .btn {
    animation-delay: 0.15s;
}

.screen.active .form-group:nth-child(1) {
    animation-delay: 0.05s;
}

.screen.active .form-group:nth-child(2) {
    animation-delay: 0.1s;
}

.screen.active .white-box:nth-child(1) {
    animation-delay: 0.05s;
}

.screen.active .white-box:nth-child(2) {
    animation-delay: 0.15s;
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(1000px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Canvas con animación inmediata */
#wheelChart {
    width: 100%;
    max-width: 320px;
    height: auto;
    aspect-ratio: 1/1;
    background: white;
    border-radius: 5px;
    user-select: none;
    display: block;
    margin: 0 auto 24px auto;
    opacity: 0;
    transform: scale(0.95);
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.screen#wheel-screen {
    margin-top: 40px;
}

.screen#wheel-screen.active #wheelChart {
    opacity: 1;
    transform: scale(1);
    animation-delay: 0.2s;
}

/* Header con transición rápida */
#global-header {
    width: 100%;
    text-align: center;
    margin-bottom: 41px;
    padding: 0 43px;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    opacity: 1;
    transform: translateY(0);
}

#global-header.is-hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-20px);
    position: absolute;
    top: 0;
    left: 0;
}

/* Título de rueda con animación rápida */
.wheel-title {
    color: var(--color-primary);
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 40px;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.wheel-title.is-visible {
    opacity: 1;
    transform: translateY(0);
}


/* Estilos específicos por pantalla */
#home-screen {
    padding-left: 24px;
    padding-right: 24px;
}

#success-screen {
    background: transparent;
    box-shadow: none;
    padding: 0;
}

/* Elementos básicos */
h1,
.success-title {
    font-family: 'Sora', Arial, sans-serif;
    font-weight: 700;
    letter-spacing: -0.5px;
}

h1 {
    color: var(--color-primary);
    font-size: 2rem;
    margin-bottom: 15px;
}

.subtitle,
.section-title {
    font-family: 'Sora', Arial, sans-serif;
    font-weight: 500;
}

.subtitle {
    color: var(--color-text-light);
    font-size: 16px;
    margin-bottom: 30px;
    line-height: 1.4;
}

.section-title {
    color: var(--color-primary-dark);
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 22px;
    letter-spacing: 0.1px;
}

.description {
    color: var(--color-text-main);
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 41px;
    font-weight: 400;
}


/* Rueda de la Vida */
.wheel-container {
    position: relative;
    width: 280px;
    height: 280px;
    margin: 30px auto;
}

.wheel {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.wheel-label {
    position: absolute;
    font-size: 12px;
    font-weight: bold;
    color: var(--color-text-light);
    pointer-events: none;
}

.wheel-label.salud {
    top: 20px;
    right: 20px;
    transform: rotate(-15deg);
}

.wheel-label.recreacion {
    bottom: 20px;
    right: 20px;
    transform: rotate(15deg);
}

.wheel-label.espiritualidad {
    bottom: 20px;
    left: 20px;
    transform: rotate(-15deg);
}

.wheel-label.alimentacion {
    top: 20px;
    left: 20px;
    transform: rotate(15deg);
}

.wheel-label.mente {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Compromiso */
.commitment-text {
    color: var(--color-text-main);
    font-size: 1rem;
    margin-bottom: 10px;
    font-weight: 400;
    text-align: left;
}

.commitment-form {
    margin-bottom: 56px;
}

.commitment-input {
    min-height: 180px;
    width: 100%;
    resize: none;
}

.lead-form-title {
    color: var(--color-text-main);
    font-size: 1rem;
    margin-bottom: 43px;
    text-align: center;
    padding: 0 24px;
}

.form-group {
    width: 100%;
    margin-bottom: 24px;
}

.form-input {
    width: 100%;
    border: none;
    background: var(--color-input-bg);
    font-size: 1rem;
    color: var(--color-text-main);
    margin-bottom: 0;
    box-sizing: border-box;
    transition: background 0.2s;
}

.form-input:focus {
    outline: 2px solid var(--color-primary-dark);
    background: #fff;
}

.form-description {
    color: var(--color-text-main);
    font-size: 0.813rem;
    line-height: 0.9rem;
    margin-bottom: 26px;
    padding: 24px 24px 0 24px;
    text-align: center;
}

/* Success Screen */
.success-box {
    margin-bottom: 18px;
    padding-bottom: 24px;
}

.success-title {
    color: var(--color-primary);
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 12px;
}

.success-message {
    color: var(--color-text-main);
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 0;
    font-weight: 400;
}

.logo {
    width: 100%;
    max-width: 190px;
    height: 40px;
    text-align: center;
    margin: 27px auto 0 auto;
}

.logo img {
    height: 100%;
    width: 100%;
    object-fit: contain;
}

#global-header .main-title {
    color: #fff;
    font-size: 2rem;
    font-weight: 800;
    margin-bottom: 12px;
    letter-spacing: 0;
}

#global-header .subtitle {
    color: #fff;
    font-size: 1rem;
    font-weight: 400;
    margin-bottom: 0;
}

.white-box {
    background: var(--color-bg);
    border-radius: 22px;
    box-shadow: 0px 3px 6px var(--color-shadow);
    padding: 55px 85px;
    margin: 0 auto 24px auto;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
}

.white-box .main-title {
    color: var(--color-primary-dark);
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 18px;
}

.white-box.instagram-box {
    padding: 11px 0;
    margin-bottom: 0;
}

.instagram-link {
    color: var(--color-text-main);
    font-size: clamp(0.8rem, 1.5vw, 1rem);
    font-weight: 400;
    text-decoration: underline;
}

.instagram-logo {
    width: 20px;
    height: 20px;
    margin: 0 auto;

    img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
}

canvas {
    -webkit-tap-highlight-color: transparent;
}

.wheel-error-styles {
    color: var(--color-primary);
    font-size: 0.813rem;
    margin-top: 8px;
    text-align: center;
}

.wheel-placeholder {
    background: #F5F5F5;
    border-radius: 50%;
    width: 180px;
    height: 180px;
    margin: 0 auto 24px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #bbb;
    font-size: 1.1rem;
    font-style: italic;
}

.white-box form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}


/* Grupo de botones lado a lado */
.button-group,
.button-group p {
    display: flex;
    gap: 12px;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 0 auto;
    position: relative;

    .wpcf7-spinner {
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        margin: auto;
    }
}

.button-group .btn {
    flex: 1;
    max-width: 140px;
    min-width: 120px;
    margin: 0;
}

/* Pantalla de éxito - botón centrado */
#success-screen .button-group {
    justify-content: center;
    margin-top: 24px;
}

#success-screen .button-group .btn {
    flex: none;
    max-width: 180px;
}

/* Responsive */
@media (max-width: 480px) {

    /* Optimizar animaciones para móvil */
    .screen {
        transform: translateX(15px);
        transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    @keyframes screenFadeIn {
        from {
            opacity: 0;
            transform: translateX(15px);
            /* Menos movimiento en móvil */
        }

        to {
            opacity: 1;
            transform: translateX(0);
        }
    }

    /* Reducir delays en móvil para mayor fluidez */
    .screen.active .section-title {
        animation-delay: 0.02s;
    }

    .screen.active .description {
        animation-delay: 0.05s;
    }

    .screen.active .btn {
        animation-delay: 0.08s;
    }

    /* Grupo de botones en móvil */
    .button-group {
        gap: 8px;
    }

    .button-group .btn {
        max-width: none;
        width: 100%;
    }

    /* Pantalla de éxito en móvil */
    #success-screen .button-group {
        flex-direction: row;
        justify-content: center;
    }

    #success-screen .button-group .btn {
        width: auto;
        max-width: 180px;
    }

    #global-header .main-title {
        font-size: 1.5625rem;
    }

    #global-header .subtitle {
        font-size: 0.813rem;
    }

    #home-screen {
        padding: 24px 16px;
    }

    .container {
        max-width: 100vw;
    }

    .white-box {
        padding-left: 60px;
        padding-right: 60px;
    }

    .wheel-title {
        font-size: 1.5625rem;
        margin-bottom: 24px;
    }

    .white-box .main-title {
        font-size: 1.1rem;
        margin-bottom: 12px;
    }

    .description,
    .success-message,
    .commitment-text,
    .form-description {
        font-size: 0.813rem;
    }

    .commitment-input,
    .form-input {
        font-size: 0.85rem;
        padding: 12px 10px;
    }

    .wheel-placeholder {
        width: 140px;
        height: 140px;
        font-size: 0.95rem;
    }


    .logo img {
        height: 36px;
    }

    /* Hover más sutil en móvil */
    .btn:hover {
        transform: translateY(-0.5px);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    }


}