@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;800;900&display=swap');

/* =========================================================
   ESCOLI · DETALLE PÚBLICO DEL ENTRENAMIENTO
========================================================= */

:root{
    --cd-purple:#5A189A;
    --cd-purple-2:#6A0572;
    --cd-purple-3:#8B5FD1;
    --cd-deep:#20102E;
    --cd-ink:#24162F;
    --cd-text:#493A56;
    --cd-muted:#75687E;
    --cd-soft:#F8F2FF;
    --cd-cream:#FFFDF7;
    --cd-white:#FFFFFF;
    --cd-gold:#F08E03;
    --cd-gold-2:#D8B26E;
    --cd-coral:#F74436;
    --cd-mint:#EFFFF7;
    --cd-line:rgba(90,24,154,.10);
    --cd-shadow:0 22px 60px rgba(45,19,70,.10);
    --cd-shadow-strong:0 34px 90px rgba(45,19,70,.18);
    --cd-radius-xl:34px;
    --cd-radius-lg:26px;
    --cd-radius-md:18px;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Roboto',sans-serif;
    background:
        radial-gradient(circle at 8% 4%, rgba(90,24,154,.16), transparent 30%),
        radial-gradient(circle at 94% 18%, rgba(240,142,3,.16), transparent 32%),
        radial-gradient(circle at 14% 92%, rgba(247,68,54,.10), transparent 30%),
        linear-gradient(180deg,#FFFDF7 0%,#F8F2FF 52%,#FFFFFF 100%);
    color:var(--cd-text);
}

.course-detail-page{
    position:relative;
    overflow:hidden;
    padding:clamp(36px,5vw,72px) 0 clamp(70px,8vw,110px);
}

.course-detail-page .container{
    position:relative;
    z-index:2;
    width:min(1180px, calc(100% - 32px));
    margin:0 auto;
}

.detail-bg-shape{
    position:absolute;
    border-radius:50%;
    filter:blur(86px);
    opacity:.42;
    pointer-events:none;
}

.shape-a{
    width:300px;
    height:300px;
    left:-110px;
    top:80px;
    background:rgba(90,24,154,.24);
}

.shape-b{
    width:380px;
    height:380px;
    right:-150px;
    top:260px;
    background:rgba(240,142,3,.20);
}

.shape-c{
    width:260px;
    height:260px;
    left:20%;
    bottom:120px;
    background:rgba(247,68,54,.15);
}

/* =========================================================
   VOLVER
========================================================= */

.btn-back{
    width:max-content;
    max-width:100%;
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:22px;
    padding:12px 16px;
    border-radius:999px;
    text-decoration:none;
    color:var(--cd-purple);
    background:rgba(255,255,255,.72);
    border:1px solid rgba(90,24,154,.10);
    box-shadow:0 12px 30px rgba(45,19,70,.06);
    font-size:.94rem;
    font-weight:800;
    backdrop-filter:blur(10px);
    transition:transform .25s ease, background .25s ease, box-shadow .25s ease;
}

.btn-back:hover{
    transform:translateY(-2px);
    background:#FFFFFF;
    box-shadow:0 18px 38px rgba(45,19,70,.10);
}

/* =========================================================
   HERO
========================================================= */

.course-hero-card{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
    gap:28px;
    align-items:stretch;
    margin-bottom:26px;
    padding:clamp(22px,3vw,34px);
    border-radius:var(--cd-radius-xl);
    background:
        radial-gradient(circle at 10% 12%, rgba(255,255,255,.22), transparent 34%),
        linear-gradient(135deg,rgba(255,255,255,.96) 0%,rgba(248,242,255,.92) 100%);
    border:1px solid rgba(90,24,154,.10);
    box-shadow:var(--cd-shadow-strong);
    backdrop-filter:blur(14px);
}

.course-hero-card::before{
    content:"";
    position:absolute;
    left:-80px;
    top:-80px;
    width:250px;
    height:250px;
    border-radius:50%;
    background:rgba(240,142,3,.16);
}

.course-hero-card::after{
    content:"";
    position:absolute;
    right:28%;
    bottom:-120px;
    width:280px;
    height:280px;
    border-radius:50%;
    background:rgba(90,24,154,.10);
}

.course-hero-content,
.course-hero-visual{
    position:relative;
    z-index:1;
}

.course-hero-content{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:clamp(12px,2vw,24px);
}

.course-kicker,
.section-kicker{
    display:inline-flex;
    align-items:center;
    gap:9px;
    width:max-content;
    max-width:100%;
    padding:10px 16px;
    border-radius:999px;
    color:var(--cd-purple);
    background:rgba(90,24,154,.08);
    border:1px solid rgba(90,24,154,.12);
    font-size:.74rem;
    line-height:1.2;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.course-kicker i{
    color:var(--cd-gold);
}

.course-hero-content h1{
    max-width:760px;
    margin:22px 0 20px;
    color:var(--cd-deep);
    font-size:clamp(2.55rem,5.3vw,5.25rem);
    line-height:.96;
    letter-spacing:-.07em;
    font-weight:900;
}

.course-hero-text{
    max-width:720px;
    margin:0 0 24px;
    color:#3B2B48;
    font-size:clamp(1.08rem,1.42vw,1.22rem);
    line-height:1.88;
    font-weight:500;
}

.frase-destacada{
    display:inline;
    color:var(--cd-gold);
    font-weight:900;
}

.frase-cursiva{
    display:block;
    margin:12px 0;
    color:#5D4B6D;
    font-style:italic;
    font-weight:600;
}

.course-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:24px;
}

.course-meta span{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:11px 14px;
    border-radius:999px;
    color:var(--cd-purple);
    background:#FFFFFF;
    border:1px solid rgba(90,24,154,.10);
    box-shadow:0 10px 22px rgba(45,19,70,.05);
    font-size:.9rem;
    line-height:1.2;
    font-weight:800;
}

.course-meta i{
    color:var(--cd-gold);
}

.course-price-box{
    display:none;
}

.price-old{
    font-size:1rem;
    color:#9B8CA8;
    text-decoration:line-through;
    margin-bottom:6px;
    font-weight:700;
}

.price-main{
    font-size:clamp(2rem,3vw,2.7rem);
    line-height:1.05;
    color:var(--cd-purple);
    font-weight:900;
    letter-spacing:-.04em;
}

.price-usd{
    margin-top:7px;
    color:var(--cd-muted);
    font-size:1rem;
    font-weight:800;
}

.course-hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}

.course-hero-actions form{
    margin:0;
}

.btn-main{
    min-height:58px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    padding:0 25px;
    border:0;
    border-radius:999px;
    text-decoration:none;
    font-family:'Roboto',sans-serif;
    font-size:.98rem;
    line-height:1.2;
    font-weight:900;
    cursor:pointer;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.btn-main i{
    font-size:1rem;
}

.btn-primary{
    color:#FFFFFF;
    background:linear-gradient(135deg,var(--cd-purple),var(--cd-purple-2));
    box-shadow:0 18px 36px rgba(90,24,154,.24);
}

.btn-primary:hover{
    transform:translateY(-3px);
    box-shadow:0 24px 48px rgba(90,24,154,.30);
}

.btn-secondary{
    color:var(--cd-purple);
    background:#FFFFFF;
    border:1px solid rgba(90,24,154,.14);
    box-shadow:0 14px 30px rgba(45,19,70,.06);
}

.btn-secondary:hover{
    transform:translateY(-3px);
    background:#FFFDF7;
}

.full-btn{
    width:100%;
}

/* HERO IMAGE */

.course-hero-visual{
    min-height:520px;
    display:grid;
    align-items:stretch;
}

.course-hero-image{
    position:relative;
    overflow:hidden;
    min-height:520px;
    border-radius:30px;
    background:#F3EAFB;
    box-shadow:0 26px 70px rgba(45,19,70,.16);
}

.course-hero-image::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg,rgba(32,16,46,.04) 0%,rgba(32,16,46,.18) 100%),
        radial-gradient(circle at 80% 15%,rgba(240,142,3,.12),transparent 35%);
    pointer-events:none;
}

.course-hero-image img{
    width:100%;
    height:100%;
    min-height:520px;
    display:block;
    object-fit:cover;
    object-position:center;
    transform:scale(1.01);
}

.course-hero-investment{
    position:absolute;
    left:22px;
    right:22px;
    bottom:22px;
    padding:20px 22px;
    border-radius:24px;
    color:#FFFFFF;
    background:rgba(32,16,46,.74);
    border:1px solid rgba(255,255,255,.16);
    box-shadow:0 20px 48px rgba(0,0,0,.22);
    backdrop-filter:blur(12px);
}

.hero-price-label{
    display:block;
    margin-bottom:8px;
    color:rgba(255,255,255,.76);
    font-size:.72rem;
    line-height:1.2;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.hero-price-value{
    display:block;
    color:#FFFFFF;
    font-size:clamp(1.65rem,2.8vw,2.55rem);
    line-height:1.05;
    letter-spacing:-.045em;
    font-weight:900;
}

.course-hero-investment small{
    display:block;
    margin-top:6px;
    color:rgba(255,255,255,.78);
    font-size:.98rem;
    font-weight:800;
}

/* =========================================================
   STRIP
========================================================= */

.course-trust-strip{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-bottom:30px;
}

.trust-item{
    display:flex;
    align-items:flex-start;
    gap:14px;
    padding:20px;
    border-radius:24px;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(90,24,154,.09);
    box-shadow:var(--cd-shadow);
    backdrop-filter:blur(10px);
}

.trust-icon{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    flex-shrink:0;
    border-radius:17px;
    color:#FFFFFF;
    background:linear-gradient(135deg,var(--cd-purple),var(--cd-gold));
    box-shadow:0 14px 28px rgba(90,24,154,.16);
}

.trust-item strong{
    display:block;
    margin-bottom:5px;
    color:var(--cd-deep);
    font-size:1rem;
    font-weight:900;
}

.trust-item span{
    display:block;
    color:var(--cd-text);
    font-size:.95rem;
    line-height:1.55;
    font-weight:500;
}

/* =========================================================
   VIDEO
========================================================= */

.video-showcase{
    display:grid;
    grid-template-columns:minmax(0,.65fr) minmax(420px,1fr);
    gap:24px;
    align-items:center;
    margin-bottom:30px;
    padding:clamp(24px,4vw,42px);
    border-radius:var(--cd-radius-xl);
    background:
        radial-gradient(circle at 12% 14%,rgba(240,142,3,.18),transparent 34%),
        linear-gradient(135deg,var(--cd-deep) 0%,#3A155C 52%,var(--cd-purple) 120%);
    box-shadow:var(--cd-shadow-strong);
}

.video-showcase__content h2{
    margin:18px 0 16px;
    color:#FFFFFF;
    font-size:clamp(2rem,3.6vw,3.4rem);
    line-height:1.04;
    letter-spacing:-.055em;
    font-weight:900;
}

.video-showcase__content p{
    margin:0;
    color:rgba(255,255,255,.86);
    font-size:1.08rem;
    line-height:1.7;
    font-weight:600;
}

.video-showcase .section-kicker{
    color:#FFFFFF;
    background:rgba(255,255,255,.12);
    border-color:rgba(255,255,255,.20);
}

.video-box{
    overflow:hidden;
    border-radius:26px;
    background:#000;
    box-shadow:
        0 26px 70px rgba(0,0,0,.34),
        0 0 0 1px rgba(255,255,255,.12);
}

.video-box video{
    width:100%;
    display:block;
}

/* =========================================================
   GRID
========================================================= */

.detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.48fr) minmax(310px,360px);
    gap:26px;
    align-items:start;
}

.detail-main{
    display:grid;
    gap:24px;
}

.detail-card,
.sidebar-card{
    position:relative;
    overflow:hidden;
    padding:clamp(24px,3vw,34px);
    border-radius:var(--cd-radius-lg);
    background:rgba(255,255,255,.88);
    border:1px solid rgba(90,24,154,.09);
    box-shadow:var(--cd-shadow);
    backdrop-filter:blur(12px);
}

.detail-card::before{
    content:"";
    position:absolute;
    right:-90px;
    top:-90px;
    width:210px;
    height:210px;
    border-radius:50%;
    background:rgba(90,24,154,.06);
}

.detail-card > *{
    position:relative;
    z-index:1;
}

.detail-card h2,
.sidebar-card h3{
    margin:16px 0 20px;
    color:var(--cd-deep);
    font-size:clamp(1.75rem,2.7vw,2.65rem);
    line-height:1.08;
    letter-spacing:-.045em;
    font-weight:900;
}

.detail-card p{
    margin:0 0 15px;
    color:#433452;
    font-size:1.06rem;
    line-height:1.78;
    font-weight:500;
}

.detail-card p:last-child{
    margin-bottom:0;
}

/* =========================================================
   ETAPAS
========================================================= */

.etapas-lista{
    display:grid;
    gap:16px;
    margin-top:28px;
    counter-reset:etapa;
}

.etapa-item{
    position:relative;
    overflow:hidden;
    padding:22px 24px 22px 84px;
    border-radius:22px;
    background:
        radial-gradient(circle at 8% 12%,rgba(240,142,3,.10),transparent 30%),
        linear-gradient(135deg,#FFFFFF 0%,#FBF6FF 100%);
    border:1px solid rgba(90,24,154,.10);
    box-shadow:0 14px 34px rgba(45,19,70,.07);
}

.etapa-item::before{
    content:counter(etapa);
    counter-increment:etapa;
    position:absolute;
    left:22px;
    top:22px;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:16px;
    color:#FFFFFF;
    background:linear-gradient(135deg,var(--cd-purple),var(--cd-purple-2));
    box-shadow:0 12px 26px rgba(90,24,154,.22);
    font-size:1rem;
    font-weight:900;
}

.etapa-item strong{
    display:block;
    margin-bottom:8px;
    color:var(--cd-purple);
    font-size:1.18rem;
    line-height:1.35;
    letter-spacing:-.02em;
    font-weight:900;
}

.etapa-item p{
    margin:0;
    color:#564566;
    font-size:1.02rem;
    line-height:1.72;
    font-weight:500;
}

/* =========================================================
   CIERRE
========================================================= */

.detalle-cierre{
    margin-top:28px;
    padding:clamp(22px,3vw,30px);
    border-radius:24px;
    background:
        radial-gradient(circle at 12% 12%,rgba(240,142,3,.16),transparent 34%),
        linear-gradient(135deg,#FFF8EE 0%,#F8F2FF 100%);
    border:1px solid rgba(90,24,154,.10);
    box-shadow:0 14px 34px rgba(45,19,70,.06);
}

.detalle-cierre p{
    margin:0 0 12px;
    color:#3D2A4E;
    font-size:1.08rem;
    line-height:1.75;
    font-weight:700;
}

.detalle-cierre p:last-child{
    margin-bottom:0;
}

/* =========================================================
   PARA QUIÉN
========================================================= */

.detail-card--audience{
    background:
        radial-gradient(circle at 86% 12%,rgba(240,142,3,.12),transparent 34%),
        linear-gradient(135deg,#FFFFFF 0%,#FFFDF7 100%);
}

.bullet-list{
    display:grid;
    gap:14px;
}

.bullet-item{
    display:flex;
    align-items:flex-start;
    gap:13px;
    padding:16px 18px;
    border-radius:19px;
    background:#FFFFFF;
    border:1px solid rgba(90,24,154,.08);
    box-shadow:0 10px 24px rgba(45,19,70,.05);
    color:#4F405C;
    font-size:1.02rem;
    line-height:1.68;
    font-weight:600;
}

.bullet-item i{
    margin-top:4px;
    color:var(--cd-gold);
    font-size:1.05rem;
}

/* =========================================================
   FORTALEZAS
========================================================= */

.feature-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.feature-box{
    padding:22px;
    border-radius:22px;
    background:
        radial-gradient(circle at 12% 12%,rgba(90,24,154,.08),transparent 32%),
        linear-gradient(135deg,#FFFFFF 0%,#F8F2FF 100%);
    border:1px solid rgba(90,24,154,.09);
    box-shadow:0 12px 28px rgba(45,19,70,.05);
}

.feature-box i{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    margin-bottom:15px;
    border-radius:17px;
    color:#FFFFFF;
    background:linear-gradient(135deg,var(--cd-purple),var(--cd-gold));
    font-size:1.1rem;
}

.feature-box h3{
    margin:0 0 9px;
    color:var(--cd-deep);
    font-size:1.14rem;
    line-height:1.25;
    letter-spacing:-.02em;
    font-weight:900;
}

.feature-box p{
    margin:0;
    color:#594B66;
    font-size:.98rem;
    line-height:1.68;
    font-weight:500;
}

/* =========================================================
   HIGHLIGHT
========================================================= */

.highlight-card{
    background:
        radial-gradient(circle at 18% 16%,rgba(240,142,3,.18),transparent 34%),
        linear-gradient(135deg,var(--cd-deep) 0%,var(--cd-purple-2) 58%,var(--cd-purple) 130%);
    border:1px solid rgba(255,255,255,.10);
    box-shadow:var(--cd-shadow-strong);
}

.highlight-card::before{
    background:rgba(255,255,255,.07);
}

.highlight-card h2,
.highlight-card p{
    color:#FFFFFF;
}

.highlight-card p{
    color:rgba(255,255,255,.88);
    font-size:1.12rem;
    font-weight:600;
}

/* =========================================================
   SIDEBAR
========================================================= */

.detail-sidebar{
    display:grid;
    gap:20px;
    position:sticky;
    top:110px;
}

.sidebar-card{
    background:rgba(255,255,255,.92);
}

.sidebar-card--buy{
    background:
        radial-gradient(circle at 12% 12%,rgba(240,142,3,.14),transparent 34%),
        linear-gradient(135deg,#FFFFFF 0%,#FFF8EE 100%);
}

.sidebar-label{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    margin-bottom:12px;
    padding:9px 14px;
    border-radius:999px;
    color:var(--cd-purple);
    background:rgba(90,24,154,.08);
    border:1px solid rgba(90,24,154,.12);
    font-size:.72rem;
    line-height:1.2;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.sidebar-price{
    color:var(--cd-purple);
    font-size:clamp(1.85rem,2.8vw,2.35rem);
    line-height:1.05;
    letter-spacing:-.045em;
    font-weight:900;
    margin-bottom:6px;
}

.sidebar-price-usd{
    margin-bottom:20px;
    color:var(--cd-muted);
    font-size:1rem;
    font-weight:800;
}

.sidebar-note{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:16px;
    padding:14px;
    border-radius:18px;
    background:rgba(90,24,154,.07);
    color:#5A4B66;
    font-size:.92rem;
    line-height:1.5;
    font-weight:600;
}

.sidebar-note i{
    margin-top:3px;
    color:var(--cd-gold);
}

.mini-list{
    display:grid;
    gap:13px;
}

.mini-list div{
    display:flex;
    align-items:flex-start;
    gap:11px;
    color:#4F405C;
    font-size:1rem;
    line-height:1.65;
    font-weight:600;
}

.mini-list i{
    margin-top:4px;
    color:var(--cd-gold);
}

/* =========================================================
   ESTADOS CARRITO
========================================================= */

.success{
    background:linear-gradient(135deg,#2f9e44,#40c057) !important;
    color:#FFFFFF !important;
}

.error{
    background:linear-gradient(135deg,#d94841,#fa5252) !important;
    color:#FFFFFF !important;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:1100px){

    .course-hero-card,
    .detail-grid,
    .video-showcase{
        grid-template-columns:1fr;
    }

    .detail-sidebar{
        position:static;
    }

    .course-hero-visual{
        min-height:auto;
    }

    .course-hero-image,
    .course-hero-image img{
        min-height:440px;
    }
}

@media(max-width:860px){

    .course-trust-strip,
    .feature-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:768px){

    .course-detail-page{
        padding:28px 0 72px;
    }

    .course-detail-page .container{
        width:min(100% - 22px,1180px);
    }

    .btn-back{
        margin-bottom:16px;
    }

    .course-hero-card{
        padding:16px;
        border-radius:26px;
    }

    .course-hero-content{
        padding:8px 4px 4px;
    }

    .course-hero-content h1{
        font-size:clamp(2.15rem,10vw,3.25rem);
        line-height:1.02;
        letter-spacing:-.055em;
    }

    .course-hero-text{
        font-size:1.02rem;
        line-height:1.78;
    }

    .course-hero-actions{
        flex-direction:column;
    }

    .course-hero-actions form,
    .btn-main{
        width:100%;
    }

    .course-hero-image,
    .course-hero-image img{
        min-height:330px;
        border-radius:22px;
    }

    .course-hero-investment{
        left:14px;
        right:14px;
        bottom:14px;
        padding:17px;
        border-radius:20px;
    }

    .course-trust-strip{
        gap:12px;
        margin-bottom:22px;
    }

    .trust-item{
        padding:17px;
        border-radius:20px;
    }

    .video-showcase,
    .detail-card,
    .sidebar-card{
        padding:20px;
        border-radius:24px;
    }

    .video-showcase__content h2,
    .detail-card h2,
    .sidebar-card h3{
        font-size:clamp(1.7rem,8vw,2.45rem);
        line-height:1.08;
    }

    .detail-card p,
    .etapa-item p,
    .detalle-cierre p,
    .bullet-item,
    .mini-list div{
        font-size:1rem;
        line-height:1.68;
    }

    .etapa-item{
        padding:20px;
    }

    .etapa-item::before{
        position:relative;
        left:auto;
        top:auto;
        margin-bottom:14px;
    }

    .section-kicker,
    .course-kicker{
        font-size:.66rem;
        letter-spacing:.09em;
    }
}

@media(max-width:480px){

    .course-detail-page .container{
        width:min(100% - 18px,1180px);
    }

    .course-hero-card{
        padding:12px;
    }

    .course-hero-image,
    .course-hero-image img{
        min-height:290px;
    }

    .course-meta span{
        width:100%;
        justify-content:center;
    }

    .trust-item{
        display:grid;
        text-align:center;
        justify-items:center;
    }

    .video-showcase,
    .detail-card,
    .sidebar-card{
        padding:18px 16px;
    }

    .bullet-item{
        padding:15px;
    }

    .feature-box{
        padding:18px;
    }
}