:root{
    --philo-bg:#fdfcfa;
    --philo-surface:#ffffff;
    --philo-text:#1a1a1a;
    --philo-text-secondary:#4a4a4a;
    --philo-muted:#6b6b6b;
    --philo-primary:#7c3aed;
    --philo-primary-hover:#6d28d9;
    --philo-primary-light:#f5f3ff;
    --philo-accent:#ede9fe;
    --philo-border:#e8e4de;
    --philo-shadow:0 4px 24px rgba(0,0,0,0.06);
    --philo-shadow-lg:0 8px 40px rgba(0,0,0,0.1);
    --philo-radius:16px;
    --philo-radius-lg:24px;
    --philo-transition:all 0.3s ease;
}

/* =========================
   PAGE WRAPPER
   ========================= */
.philo-page{
    background:var(--philo-bg);
    padding-bottom:80px;
}

/* =========================
   HEADER SECTION
   ========================= */
.philo-header{
    padding:80px 0;
    background:var(--philo-surface);
    border-bottom:1px solid var(--philo-border);
    text-align:center;
    position:relative;
    overflow:hidden;
}

.philo-header::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 30% 50%, rgba(124,58,237,0.06) 0%, transparent 50%),
        radial-gradient(circle at 70% 30%, rgba(124,58,237,0.04) 0%, transparent 40%);
    pointer-events:none;
}

.philo-header-content{
    max-width:800px;
    margin:0 auto;
    padding:0 24px;
    position:relative;
    z-index:2;
}

.philo-label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 16px;
    background:var(--philo-primary-light);
    color:var(--philo-primary);
    font-size:13px;
    font-weight:600;
    border-radius:999px;
    margin-bottom:24px;
}

.philo-label svg{
    width:16px;
    height:16px;
}

.philo-title{
    font-size:52px;
    font-weight:800;
    line-height:1.1;
    color:var(--philo-text);
    margin:0 0 20px;
}

.philo-description{
    font-size:18px;
    line-height:1.7;
    color:var(--philo-text-secondary);
    margin:0 0 32px;
}

.philo-header-actions{
    display:flex;
    gap:16px;
    justify-content:center;
    flex-wrap:wrap;
}

.philo-btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:16px 28px;
    font-size:15px;
    font-weight:600;
    border-radius:var(--philo-radius);
    text-decoration:none;
    transition:var(--philo-transition);
}

.philo-btn--primary{
    background:var(--philo-primary);
    color:#fff;
    box-shadow:0 4px 16px rgba(124,58,237,0.3);
}

.philo-btn--primary:hover{
    background:var(--philo-primary-hover);
    transform:translateY(-2px);
}

.philo-btn--ghost{
    background:transparent;
    color:var(--philo-primary);
    border:1px solid var(--philo-border);
}

.philo-btn--ghost:hover{
    background:var(--philo-primary-light);
}

/* =========================
   INTRO SECTION
   ========================= */
.philo-intro{
    padding:64px 0;
    background:var(--philo-bg);
}

.philo-intro-content{
    max-width:800px;
    margin:0 auto;
    padding:0 24px;
    text-align:center;
}

.philo-intro-content p{
    font-size:17px;
    line-height:1.8;
    color:var(--philo-text-secondary);
    margin:0 0 20px;
}

.philo-intro-content strong{
    color:var(--philo-primary);
}

/* =========================
   SECTIONS
   ========================= */
.philo-section{
    padding:72px 0;
    background:var(--philo-bg);
}

.philo-section--alt{
    background:var(--philo-surface);
}

.philo-container{
    max-width:1100px;
    margin:0 auto;
    padding:0 24px;
}

.philo-section-title{
    font-size:32px;
    font-weight:800;
    color:var(--philo-text);
    margin:0 0 8px;
    text-align:center;
}

.philo-section-label{
    display:block;
    text-align:center;
    padding:6px 14px;
    background:var(--philo-primary-light);
    color:var(--philo-primary);
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.5px;
    border-radius:999px;
    margin:0 auto 16px;
    width:fit-content;
}

.philo-section-desc{
    font-size:16px;
    line-height:1.7;
    color:var(--philo-text-secondary);
    margin:0 auto;
    text-align:center;
    max-width:600px;
}

/* =========================
   CARDS
   ========================= */
.philo-grid{
    display:grid;
    gap:24px;
    margin-top:40px;
}

.philo-grid--2{
    grid-template-columns:repeat(2, 1fr);
}

.philo-grid--3{
    grid-template-columns:repeat(3, 1fr);
}

.philo-card{
    background:var(--philo-surface);
    border:1px solid var(--philo-border);
    border-radius:var(--philo-radius-lg);
    padding:28px;
    transition:var(--philo-transition);
}

.philo-card:hover{
    border-color:var(--philo-primary);
    box-shadow:var(--philo-shadow);
    transform:translateY(-4px);
}

.philo-card-icon{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--philo-primary-light);
    color:var(--philo-primary);
    border-radius:12px;
    margin-bottom:16px;
}

.philo-card-icon svg{
    width:24px;
    height:24px;
}

.philo-card h3{
    font-size:18px;
    font-weight:700;
    color:var(--philo-text);
    margin:0 0 10px;
}

.philo-card p{
    font-size:14px;
    line-height:1.7;
    color:var(--philo-text-secondary);
    margin:0;
}

/* =========================
   BIG MESSAGE
   ========================= */
.philo-message{
    background:linear-gradient(135deg, var(--philo-primary) 0%, #6d28d9 100%);
    border-radius:32px;
    padding:56px;
    text-align:center;
    margin:0 24px;
    box-shadow:0 12px 48px rgba(124,58,237,0.25);
}

.philo-message p{
    font-size:20px;
    line-height:1.7;
    color:rgba(255,255,255,0.95);
    margin:0 0 16px;
}

.philo-message strong{
    color:#fff;
    font-weight:700;
}

.philo-message cite{
    display:block;
    font-size:18px;
    color:rgba(255,255,255,0.85);
    font-style:italic;
}

/* =========================
   STEPS
   ========================= */
.philo-steps{
    display:flex;
    flex-direction:column;
    gap:20px;
    margin-top:40px;
}

.philo-step{
    display:flex;
    gap:20px;
    align-items:flex-start;
    background:var(--philo-surface);
    border:1px solid var(--philo-border);
    border-radius:var(--philo-radius-lg);
    padding:24px;
    transition:var(--philo-transition);
}

.philo-step:hover{
    box-shadow:var(--philo-shadow);
}

.philo-step-number{
    width:48px;
    height:48px;
    min-width:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--philo-primary);
    color:#fff;
    font-size:20px;
    font-weight:800;
    border-radius:50%;
}

.philo-step-content h3{
    font-size:18px;
    font-weight:700;
    color:var(--philo-text);
    margin:0 0 8px;
}

.philo-step-content p{
    font-size:14px;
    line-height:1.7;
    color:var(--philo-text-secondary);
    margin:0;
}

/* =========================
   CTA
   ========================= */
.philo-cta{
    padding:72px 0;
    background:var(--philo-bg);
}

.philo-cta-box{
    background:var(--philo-surface);
    border:1px solid var(--philo-border);
    border-radius:var(--philo-radius-lg);
    padding:48px;
    text-align:center;
    box-shadow:var(--philo-shadow-lg);
    max-width:700px;
    margin:0 auto;
}

.philo-cta-box h2{
    font-size:28px;
    font-weight:800;
    color:var(--philo-text);
    margin:0 0 16px;
}

.philo-cta-box p{
    font-size:16px;
    line-height:1.7;
    color:var(--philo-text-secondary);
    margin:0 0 28px;
}

.philo-cta-actions{
    display:flex;
    gap:16px;
    justify-content:center;
    flex-wrap:wrap;
}

/* =========================
   ANIMATIONS
   ========================= */
.reveal{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 0.6s ease, transform 0.6s ease;
}

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

/* =========================
   RESPONSIVE
   ========================= */
@media (max-width:768px){
    .philo-title{
        font-size:36px;
    }
    
    .philo-header-actions{
        flex-direction:column;
    }
    
    .philo-btn{
        width:100%;
        justify-content:center;
    }
    
    .philo-grid--2,
    .philo-grid--3{
        grid-template-columns:1fr;
    }
    
    .philo-message{
        padding:40px 24px;
        margin:0 16px;
        border-radius:24px;
    }
    
    .philo-step{
        flex-direction:column;
    }
    
    .philo-step-number{
        width:40px;
        height:40px;
        min-width:40px;
        font-size:16px;
    }
    
    .philo-cta-box{
        padding:32px 24px;
    }
    
    .philo-cta-actions{
        flex-direction:column;
    }
}