:root{
    --primary:#2563eb;
    --primary-dark:#1d4ed8;
    --secondary:#14b8a6;
    --bg:#f8fafc;
    --card:#ffffff;
    --text:#0f172a;
    --muted:#64748b;
    --shadow:0 20px 40px rgba(0,0,0,.08);
    --shadow-lg:0 32px 64px rgba(15,23,42,.12);
}

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

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.7;
    overflow-x:hidden;
}

.container{
    width:min(1150px,90%);
    margin:auto;
}

/* Header */
header{
    padding:24px 0;
}

.nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.logo{
    display:inline-flex;
    align-items:center;
    text-decoration:none;
    color:var(--text);
}

.logo-wordmark{
    font-family:'Fraunces',Georgia,serif;
    font-size:1.45rem;
    font-weight:600;
    letter-spacing:-.02em;
    line-height:1;
}

.logo-wordmark em{
    font-style:italic;
    color:var(--primary);
}

/* Hero */
.hero{
    padding:40px 0 80px;
}

.hero-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:48px;
    align-items:center;
}

.hero-copy h1{
    font-size:clamp(2.2rem,4vw,3.2rem);
    line-height:1.12;
    margin-bottom:20px;
    letter-spacing:-.02em;
}

.hero-headline-accent{
    background:linear-gradient(120deg,#1d4ed8 0%,#2563eb 28%,#14b8a6 58%,#8b5cf6 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:transparent;
}

.hero-copy > p{
    color:var(--muted);
    font-size:1.08rem;
    max-width:520px;
}

/* Quote carousel */
.quote-carousel{
    margin:28px 0;
    background:white;
    padding:24px 24px 18px;
    border-radius:18px;
    box-shadow:var(--shadow);
    position:relative;
    min-height:130px;
}

.quote-track{
    position:relative;
    min-height:72px;
}

.quote-slide{
    position:absolute;
    inset:0;
    opacity:0;
    transform:translateY(8px);
    transition:opacity .5s ease, transform .5s ease;
    pointer-events:none;
}

.quote-slide.is-active{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
}

.quote{
    font-style:italic;
    color:#334155;
    font-size:1rem;
    line-height:1.6;
}

.author{
    margin-top:10px;
    color:var(--primary);
    font-weight:600;
    font-size:.95rem;
}

.quote-dots{
    display:flex;
    gap:8px;
    margin-top:16px;
}

.quote-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    border:none;
    background:#cbd5e1;
    cursor:pointer;
    padding:0;
    transition:background .3s, transform .3s;
}

.quote-dot.is-active{
    background:var(--primary);
    transform:scale(1.2);
}

/* CTA */
.cta{
    display:inline-block;
    background:var(--primary);
    color:white;
    text-decoration:none;
    padding:14px 28px;
    border-radius:12px;
    font-weight:600;
    transition:transform .3s, box-shadow .3s;
    border:2px solid transparent;
}

.cta:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 24px rgba(37,99,235,.25);
}

/* Hero visual — ed-tech style (BYJU'S / Udemy inspired) */
.hero-visual{
    position:relative;
    min-height:460px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding-right:8px;
}

.hero-visual__backdrop{
    position:absolute;
    inset:6% 2% 6% 8%;
    background:linear-gradient(145deg,#dbeafe 0%,#e0f2fe 42%,#ccfbf1 100%);
    border-radius:32px;
    z-index:0;
}

.hero-visual__backdrop::after{
    content:'';
    position:absolute;
    width:180px;
    height:180px;
    top:-40px;
    right:-20px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(139,92,246,.18) 0%,transparent 70%);
}

.hero-visual__photo{
    position:relative;
    z-index:1;
    margin:0;
    overflow:hidden;
    box-shadow:var(--shadow-lg);
    border:4px solid white;
}

.hero-visual__photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.hero-visual__photo--main{
    width:min(100%,360px);
    aspect-ratio:4/5;
    border-radius:24px;
    transform:rotate(2deg);
}

.hero-visual__photo--accent{
    position:absolute;
    bottom:6%;
    left:0;
    width:132px;
    aspect-ratio:1;
    border-radius:18px;
    z-index:2;
    transform:rotate(-4deg);
    box-shadow:0 20px 40px rgba(15,23,42,.18);
}

.hero-card{
    position:absolute;
    z-index:3;
    background:white;
    border-radius:16px;
    padding:14px 16px;
    box-shadow:0 18px 40px rgba(15,23,42,.12);
    border:1px solid rgba(226,232,240,.9);
}

.hero-card strong{
    display:block;
    font-size:.92rem;
    color:var(--text);
    line-height:1.3;
}

.hero-card span{
    display:block;
    font-size:.78rem;
    color:var(--muted);
    margin-top:2px;
}

.hero-card--plan{
    top:4%;
    left:-2%;
    display:flex;
    align-items:center;
    gap:12px;
    max-width:210px;
}

.hero-card__icon{
    width:40px;
    height:40px;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eff6ff;
    border-radius:12px;
}

.hero-card__icon svg{
    width:22px;
    height:22px;
}

.hero-card--progress{
    bottom:22%;
    right:0;
    min-width:148px;
}

.hero-card__label{
    font-size:.72rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#db2777;
}

.hero-card__stat{
    font-size:1.6rem;
    font-weight:700;
    color:#be185d;
    margin:4px 0 8px;
    letter-spacing:-.02em;
}

.hero-card__bar{
    height:6px;
    background:#fce7f3;
    border-radius:99px;
    overflow:hidden;
}

.hero-card__bar span{
    display:block;
    height:100%;
    margin:0;
    background:linear-gradient(90deg,#f472b6,#ec4899);
    border-radius:99px;
}

.hero-card--exam{
    top:52%;
    right:0;
    transform:translateY(-50%);
    background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);
    border:none;
    color:white;
    min-width:160px;
}

.hero-card--exam .hero-card__label{
    color:#bfdbfe;
}

.hero-card--exam strong{
    color:white;
    font-size:.95rem;
    margin-top:4px;
}

/* Features — Stripe-style collage */
.features{
    padding:80px 0 100px;
}

.section-title{
    text-align:center;
    margin-bottom:48px;
    max-width:640px;
    margin-left:auto;
    margin-right:auto;
}

.section-title h2{
    font-size:clamp(1.8rem,3vw,2.4rem);
    letter-spacing:-.02em;
    margin-bottom:10px;
}

.section-title p{
    color:var(--muted);
    font-size:1.05rem;
}

.feature-collage{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    grid-auto-rows:minmax(100px, auto);
    gap:18px;
}

.feature-card{
    background:white;
    border-radius:22px;
    padding:28px;
    box-shadow:var(--shadow);
    transition:transform .35s ease, box-shadow .35s ease;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    gap:14px;
}

.feature-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-lg);
}

.feature-card h3{
    font-size:1.15rem;
    letter-spacing:-.01em;
}

.feature-card p{
    color:var(--muted);
    font-size:.92rem;
    line-height:1.6;
}

.feature-card__icon{
    width:48px;
    height:48px;
    flex-shrink:0;
}

.feature-card__icon--large{
    width:64px;
    height:64px;
}

.feature-card__icon svg{
    width:100%;
    height:100%;
}

.feature-card__media{
    border-radius:14px;
    overflow:hidden;
    margin-top:auto;
}

.feature-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.feature-card__media--small{
    max-height:140px;
}

.feature-card__content{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.feature-card__progress{
    margin-top:auto;
}

.progress-bar{
    height:8px;
    background:#fce7f3;
    border-radius:99px;
    overflow:hidden;
}

.progress-bar span{
    display:block;
    height:100%;
    background:linear-gradient(90deg,#f472b6,#ec4899);
    border-radius:99px;
}

.progress-label{
    display:block;
    margin-top:8px;
    font-size:.8rem;
    font-weight:600;
    color:#db2777;
}

.feature-mini-stats{
    list-style:none;
    display:flex;
    gap:12px;
    margin-top:auto;
}

.feature-mini-stats li{
    background:#ede9fe;
    color:#6d28d9;
    padding:8px 14px;
    border-radius:10px;
    font-size:.85rem;
}

.feature-mini-stats strong{
    display:block;
    font-size:1rem;
}

/* Collage layout & soft-tone backgrounds */
.feature-card--planning{
    grid-column:span 7;
    grid-row:span 2;
    background:linear-gradient(145deg,#eff6ff 0%,#dbeafe 100%);
    flex-direction:row;
    align-items:stretch;
    gap:24px;
}

.feature-card--planning .feature-card__content{
    flex:1;
    justify-content:center;
}

.feature-card--planning .feature-card__media{
    flex:0 0 42%;
    min-height:220px;
    margin-top:0;
}

.feature-card--syllabus{
    grid-column:span 5;
    grid-row:span 2;
    background:linear-gradient(145deg,#fdf2f8 0%,#fce7f3 100%);
}

.feature-card--exams{
    grid-column:span 4;
    grid-row:span 2;
    background:linear-gradient(145deg,#fffbeb 0%,#fef3c7 100%);
    padding-top:16px;
    padding-bottom:12px;
    gap:8px;
}

.feature-card--exams .feature-card__media{
    max-height:220px;
    height:220px;
    flex-shrink:0;
    margin-top:0;
}

.feature-card--exams .feature-card__content{
    flex:1 1 0;
    min-height:0;
    gap:8px;
}

.feature-card--results{
    grid-column:span 4;
    grid-row:span 2;
    background:linear-gradient(145deg,#f5f3ff 0%,#ede9fe 100%);
}

.feature-card--parents{
    grid-column:span 4;
    grid-row:span 2;
    background:linear-gradient(145deg,#f0fdfa 0%,#ccfbf1 100%);
    flex-direction:column;
}

.feature-card--parents .feature-card__media{
    min-height:160px;
}

/* About — impactful section */
.about{
    position:relative;
    padding:100px 0 120px;
    overflow:hidden;
}

.about-bg{
    position:absolute;
    inset:0;
    background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 45%,#2563eb 100%);
    z-index:0;
}

.about-bg::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 20% 80%, rgba(20,184,166,.25) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(139,92,246,.2) 0%, transparent 45%);
}

.about-grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
    align-items:center;
}

.about-badge{
    display:inline-block;
    background:rgba(255,255,255,.12);
    color:#93c5fd;
    font-size:.78rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.08em;
    padding:8px 16px;
    border-radius:99px;
    border:1px solid rgba(255,255,255,.15);
    margin-bottom:20px;
}

.about-copy h2{
    font-size:clamp(1.8rem,3.5vw,2.6rem);
    color:white;
    line-height:1.15;
    letter-spacing:-.02em;
    margin-bottom:18px;
}

.about-copy > p{
    color:#cbd5e1;
    font-size:1.05rem;
    margin-bottom:28px;
    max-width:520px;
}

.about-highlights{
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:18px;
    margin-bottom:32px;
}

.about-highlights li{
    padding-left:20px;
    border-left:3px solid var(--secondary);
}

.about-highlights strong{
    display:block;
    color:white;
    font-size:1rem;
    margin-bottom:2px;
}

.about-highlights span{
    color:#94a3b8;
    font-size:.92rem;
}

.about-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}

.lead-form-wrap{
    margin-top:36px;
    padding-top:32px;
    border-top:1px solid rgba(255,255,255,.14);
}

.lead-form-title{
    font-family:var(--font-display);
    font-size:clamp(1.35rem,2.5vw,1.75rem);
    color:#fff;
    margin:0 0 8px;
    letter-spacing:-0.02em;
}

.lead-form-subtitle{
    color:rgba(255,255,255,.72);
    font-size:.95rem;
    line-height:1.55;
    margin:0 0 22px;
    max-width:38rem;
}

.lead-form{
    display:flex;
    flex-direction:column;
    gap:14px;
    max-width:520px;
}

.lead-form__row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.lead-field{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.lead-field span{
    font-size:.82rem;
    font-weight:600;
    color:rgba(255,255,255,.82);
}

.lead-field span em{
    font-style:normal;
    font-weight:400;
    color:rgba(255,255,255,.55);
}

.lead-field input,
.lead-field textarea{
    width:100%;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.08);
    color:#fff;
    border-radius:10px;
    padding:11px 13px;
    font:inherit;
    transition:border-color .2s, background .2s;
}

.lead-field input::placeholder,
.lead-field textarea::placeholder{
    color:rgba(255,255,255,.4);
}

.lead-field input:focus,
.lead-field textarea:focus{
    outline:none;
    border-color:rgba(249,115,22,.75);
    background:rgba(255,255,255,.12);
}

.lead-field textarea{
    resize:vertical;
    min-height:108px;
}

.lead-form__submit{
    align-self:flex-start;
    margin-top:4px;
    border:none;
    cursor:pointer;
}

.lead-form__submit:disabled{
    opacity:.7;
    cursor:not-allowed;
}

.lead-form__alert{
    border-radius:10px;
    padding:11px 14px;
    font-size:.9rem;
    line-height:1.5;
}

.lead-form__alert--error{
    background:rgba(254,243,242,.95);
    color:#b42318;
    border:1px solid #fecdca;
}

.lead-form__alert--success{
    background:rgba(230,244,234,.95);
    color:#1b7f3b;
    border:1px solid #9fd4ad;
}

.cta--light{
    background:white;
    color:var(--primary-dark);
    border-color:white;
}

.cta--light:hover{
    box-shadow:0 12px 32px rgba(255,255,255,.35);
    transform:translateY(-2px);
}

button.cta{
    font:inherit;
    cursor:pointer;
}

/* Lead modal */
.lead-modal{
    display:none;
    position:fixed;
    inset:0;
    z-index:1000;
    align-items:center;
    justify-content:center;
    padding:24px;
    width:100%;
    height:100%;
    height:100dvh;
}

.lead-modal.is-open{
    display:flex;
}

.lead-modal__backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(4px);
}

.lead-modal__dialog{
    position:relative;
    z-index:1;
    width:min(100%,520px);
    max-height:min(90vh,720px);
    overflow-y:auto;
    background:white;
    border-radius:20px;
    padding:32px 28px 28px;
    box-shadow:0 32px 64px rgba(15,23,42,.25);
}

.lead-modal__close{
    position:absolute;
    top:14px;
    right:16px;
    width:36px;
    height:36px;
    border:none;
    border-radius:10px;
    background:#f1f5f9;
    color:#64748b;
    font-size:1.5rem;
    line-height:1;
    cursor:pointer;
    transition:background .2s, color .2s;
}

.lead-modal__close:hover{
    background:#e2e8f0;
    color:var(--text);
}

.lead-modal__title{
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(1.35rem,2.5vw,1.75rem);
    color:var(--text);
    margin:0 0 8px;
    letter-spacing:-0.02em;
    padding-right:32px;
}

.lead-modal__subtitle{
    color:var(--muted);
    font-size:.95rem;
    line-height:1.55;
    margin:0 0 22px;
}

.lead-form--modal .lead-field span{
    color:#334155;
}

.lead-form--modal .lead-field span em{
    color:var(--muted);
}

.lead-form--modal .lead-field input,
.lead-form--modal .lead-field textarea{
    border:1px solid #e2e8f0;
    background:#f8fafc;
    color:var(--text);
}

.lead-form--modal .lead-field input::placeholder,
.lead-form--modal .lead-field textarea::placeholder{
    color:#94a3b8;
}

.lead-form--modal .lead-field input:focus,
.lead-form--modal .lead-field textarea:focus{
    border-color:var(--primary);
    background:#fff;
}

.lead-modal__success{
    text-align:center;
    padding:16px 8px 8px;
}

.lead-modal__success-icon{
    width:120px;
    height:120px;
    margin:0 auto 24px;
}

.lead-modal__success-icon svg{
    width:100%;
    height:100%;
}

.lead-modal__success-text{
    font-size:1.05rem;
    line-height:1.6;
    color:#334155;
    max-width:340px;
    margin:0 auto;
}

.cta--ghost{
    background:transparent;
    border-color:rgba(255,255,255,.35);
    color:white;
}

.cta--ghost:hover{
    background:rgba(255,255,255,.08);
    box-shadow:none;
}

/* About visual collage */
.about-visual{
    position:relative;
    min-height:420px;
}

.about-image{
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 24px 48px rgba(0,0,0,.35);
    border:3px solid rgba(255,255,255,.12);
}

.about-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.about-image--main{
    width:78%;
    aspect-ratio:4/3;
    margin-left:auto;
    transform:rotate(2deg);
}

.about-image--secondary{
    position:absolute;
    bottom:0;
    left:0;
    width:48%;
    aspect-ratio:1;
    transform:rotate(-4deg);
    z-index:2;
}

.about-stat-card{
    position:absolute;
    top:12%;
    left:8%;
    background:white;
    padding:20px 24px;
    border-radius:16px;
    box-shadow:0 16px 40px rgba(0,0,0,.25);
    z-index:3;
    text-align:center;
}

.about-stat-number{
    display:block;
    font-size:2.4rem;
    font-weight:800;
    color:var(--primary);
    line-height:1;
}

.about-stat-label{
    display:block;
    font-size:.78rem;
    color:var(--muted);
    font-weight:500;
    margin-top:4px;
    max-width:100px;
}

footer{
    text-align:center;
    padding:40px 0;
    color:var(--muted);
    background:var(--bg);
}

.footer-links{
    display:flex;
    justify-content:center;
    gap:20px;
    margin-top:10px;
    flex-wrap:wrap;
}

.footer-links a{
    color:var(--muted);
    text-decoration:none;
    font-size:.87rem;
    transition:color .2s;
}

.footer-links a:hover{
    color:var(--primary);
    text-decoration:underline;
}

/* Legal pages */
.legal-hero{
    padding:48px 0 36px;
    border-bottom:1px solid #e2e8f0;
    margin-bottom:44px;
}

.legal-hero .legal-badge{
    display:inline-block;
    background:#eff6ff;
    color:var(--primary);
    font-size:.78rem;
    font-weight:600;
    padding:6px 14px;
    border-radius:99px;
    margin-bottom:16px;
}

.legal-hero h1{
    font-size:clamp(1.8rem,3vw,2.6rem);
    letter-spacing:-.02em;
    margin-bottom:8px;
}

.legal-hero p{
    color:var(--muted);
    font-size:.95rem;
}

.legal-section{
    padding:0 0 100px;
}

.legal-prose h2{
    font-size:1.15rem;
    font-weight:700;
    color:var(--text);
    margin:36px 0 10px;
    letter-spacing:-.01em;
}

.legal-prose h2:first-child{
    margin-top:0;
}

.legal-prose p{
    color:#334155;
    font-size:.95rem;
    line-height:1.8;
    margin-bottom:12px;
    max-width:740px;
}

.legal-prose ul{
    margin:0 0 14px 22px;
    color:#334155;
    font-size:.95rem;
    line-height:1.8;
    max-width:720px;
}

.legal-prose li{
    margin-bottom:5px;
}

.legal-prose a{
    color:var(--primary);
    text-decoration:underline;
}

.legal-prose .legal-highlight{
    background:#eff6ff;
    border-left:3px solid var(--primary);
    border-radius:0 10px 10px 0;
    padding:14px 18px;
    margin:20px 0;
    max-width:740px;
}

.legal-prose .legal-highlight p{
    margin-bottom:0;
    font-weight:500;
    color:var(--text);
}

.legal-back{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--muted);
    text-decoration:none;
    font-size:.9rem;
    font-weight:500;
    margin-bottom:28px;
    transition:color .2s;
}

.legal-back:hover{
    color:var(--primary);
}

/* Responsive */
@media(max-width:960px){
    .hero-grid,
    .about-grid{
        grid-template-columns:1fr;
        text-align:center;
    }

    .hero-copy > p,
    .about-copy > p{
        margin-left:auto;
        margin-right:auto;
    }

    .hero-visual{
        order:-1;
        min-height:380px;
        max-width:440px;
        margin:0 auto 12px;
    }

    .hero-visual__photo--main{
        transform:none;
    }

    .hero-visual__photo--accent{
        width:110px;
        left:4%;
    }

    .hero-card--plan{
        left:2%;
        top:2%;
    }

    .hero-card--progress{
        right:2%;
        bottom:18%;
    }

    .hero-card--exam{
        right:0;
    }

    .feature-collage{
        grid-template-columns:1fr;
    }

    .feature-card--planning,
    .feature-card--syllabus,
    .feature-card--exams,
    .feature-card--results,
    .feature-card--parents{
        grid-column:span 1;
        grid-row:span 1;
    }

    .feature-card--planning{
        flex-direction:column;
    }

    .feature-card--planning .feature-card__media{
        flex:none;
        min-height:180px;
    }

    .about-highlights li{
        text-align:left;
    }

    .about-actions{
        justify-content:center;
    }

    .lead-form-wrap{
        text-align:left;
    }

    .lead-form__row{
        grid-template-columns:1fr;
    }

    .lead-form__submit{
        width:100%;
    }

    .lead-modal__dialog{
        padding:28px 20px 24px;
    }

    .about-visual{
        min-height:340px;
        max-width:420px;
        margin:0 auto;
    }
}

@media(max-width:540px){
    .logo-wordmark{
        font-size:1.25rem;
    }

    .hero-visual{
        min-height:340px;
    }

    .hero-visual__photo--main{
        width:min(100%,300px);
    }

    .hero-visual__photo--accent{
        width:88px;
        bottom:4%;
    }

    .hero-card{
        padding:10px 12px;
    }

    .hero-card--plan{
        max-width:170px;
    }

    .hero-card--plan strong{
        font-size:.82rem;
    }

    .hero-card--progress{
        min-width:120px;
    }

    .hero-card__stat{
        font-size:1.35rem;
    }

    .hero-card--exam{
        min-width:138px;
    }

    .about-stat-card{
        padding:14px 18px;
    }

    .about-stat-number{
        font-size:1.8rem;
    }
}
