/*
 * home-redesign.css
 * Estilos del nuevo diseño del Home (Cursos AB), a partir de
 * rediseno-home-cursosab.html. Todo va dentro de .ab-redesign para
 * no afectar el header, el footer ni el resto del sitio.
 * Se carga solo en la portada (is_front_page) — ver functions.php.
 */

  /* ---------- barra de progreso de scroll (elemento firma) ---------- */
  #ab-scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    z-index: 1031;
    background: rgba(43, 34, 48, .12);
    pointer-events: none;
  }
  #ab-scroll-progress-bar {
    display: block;
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #c9a227, #a8642f);
    transition: width .1s linear;
  }
  @media (prefers-reduced-motion: reduce) {
    #ab-scroll-progress-bar { transition: none; }
  }

  .ab-redesign {
    --rojo-oscuro:#352c47;
    --rojo:#6a2fa0;
    --rojo-vivo:#a8642f;
    --dorado:#c9a227;
    --dorado-claro:#e9d38a;
    --dorado-suave:#f5ecd2;
    --crema:#f9f4ec;
    --crema-2:#f4e6e1;
    --tinta:#2b2230;
    --tinta-2:#453a5c;
    --marfil:#f7f2ea;
    --magenta:#d6006b;
    --maroon:#7a1233;
    --azul:#2f4cc4;
    --sombra: 0 30px 60px -20px rgba(43,34,48,.45);
    --sombra-suave: 0 14px 34px -12px rgba(43,34,48,.28);
  }
  .ab-redesign, .ab-redesign *{box-sizing:border-box;}
  .ab-redesign {
    margin:0;
    font-family:'Nunito Sans', sans-serif;
    color:var(--tinta);
    background:var(--crema);
    overflow-x:hidden;
  }
  .ab-redesign h1, .ab-redesign h2, .ab-redesign h3, .ab-redesign h4 {
    font-family:'Montserrat', sans-serif;
    font-weight:700;
    margin:0;
    letter-spacing:.02em;
  }
  .ab-redesign p { margin:0; }
  .ab-redesign img {max-width:100%; display:block;}
  .ab-redesign a {color:inherit;}
  .ab-redesign .wrap {
    max-width:1180px;
    margin:0 auto;
    padding:0 28px;
  }
  .ab-redesign .eyebrow {
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'Montserrat', sans-serif;
    font-size:13px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--rojo-vivo);
  }
  .ab-redesign .eyebrow::before {
    content:'';
    width:26px; height:2px;
    background:var(--dorado);
    display:inline-block;
    border-radius:2px;
  }
  .ab-redesign .section-title {
    font-size:clamp(30px, 4.2vw, 50px);
    font-weight:600;
    line-height:1.08;
    margin-top:14px;
    color:var(--tinta);
  }
  .ab-redesign .section-title em {
    font-style:italic;
    color:var(--rojo-vivo);
  }
  .ab-redesign .section-lede {
    font-size:17px;
    line-height:1.7;
    color:#5a4650;
    max-width:640px;
    margin-top:18px;
  }
  .ab-redesign .light .section-lede { color:#5a4650; }
  .ab-redesign .dark { color:var(--marfil); }
  .ab-redesign .dark .section-lede { color:#e7cfd6; }
  .ab-redesign .dark .eyebrow { color:var(--dorado-claro); }
  .ab-redesign .dark .section-title { color:var(--marfil); }

  /* ---------- reveal on scroll ---------- */
  .ab-redesign .reveal {
    opacity:0;
    transform:translateY(26px);
    transition:opacity .9s cubic-bezier(.16,.8,.3,1), transform .9s cubic-bezier(.16,.8,.3,1);
  }
  .ab-redesign .reveal.in-view { opacity:1; transform:translateY(0); }
  .ab-redesign .reveal.delay-1.in-view { transition-delay:.12s; }
  .ab-redesign .reveal.delay-2.in-view { transition-delay:.24s; }
  .ab-redesign .reveal.delay-3.in-view { transition-delay:.36s; }

  @media (prefers-reduced-motion: reduce){
    .ab-redesign * { animation:none !important; transition:none !important; }
    .ab-redesign .reveal { opacity:1; transform:none; }
  }

  /* ---------- staff line signature ---------- */
  .ab-redesign .staff-divider {
    width:100%;
    height:68px;
    display:block;
  }
  .ab-redesign .staff-divider path {
    fill:none;
    stroke:var(--dorado);
    stroke-width:1.3;
    stroke-dasharray:1400;
    stroke-dashoffset:1400;
    transition:stroke-dashoffset 1.8s cubic-bezier(.16,.8,.3,1);
  }
  .ab-redesign .staff-divider.in-view path { stroke-dashoffset:0; }
  .ab-redesign .staff-divider .note {
    opacity:0;
    transform:scale(.4);
    transform-origin:center;
    transition:opacity .6s ease .9s, transform .6s cubic-bezier(.34,1.56,.64,1) .9s;
  }
  .ab-redesign .staff-divider.in-view .note { opacity:1; transform:scale(1); }

  /* ---------- floating notes ambience ---------- */
  .ab-redesign .notes-field {
    position:absolute; inset:0;
    overflow:hidden;
    pointer-events:none;
  }
  .ab-redesign .notes-field span {
    position:absolute;
    font-family:'Playfair Display', serif;
    color:var(--dorado);
    opacity:.16;
    animation:drift 14s ease-in-out infinite;
    font-size:34px;
  }
  @keyframes drift{
    0%{ transform:translateY(0) rotate(0deg); }
    50%{ transform:translateY(-26px) rotate(8deg); }
    100%{ transform:translateY(0) rotate(0deg); }
  }

  /* =========================================================
     TRANSICIÓN DESDE EL HERO (mismo fondo, ligera continuidad)
     ========================================================= */
  .ab-redesign .hero-echo {
    position:relative;
    background:
      linear-gradient(180deg, rgba(78,18,32,0) 0%, rgba(34,18,25,.94) 78%),
      url('https://cursosab.com/wp-content/themes/cursos-ab-landing/assets/images/Fondo-abstracto-rojo-1-1-1.webp?v=2.0.0.1779814891') center 20%/cover no-repeat;
    padding:90px 0 120px;
    color:var(--marfil);
  }
  .ab-redesign .hero-echo .wrap {
    position:relative;
    z-index:2;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .ab-redesign .hero-echo .eyebrow { color:var(--dorado-claro); justify-content:center; }
  .ab-redesign .hero-echo .section-title { color:var(--marfil); max-width:820px; }
  .ab-redesign .stat-row {
    margin-top:52px;
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    justify-content:center;
  }
  .ab-redesign .stat-card {
    background:rgba(251,241,225,.06);
    border:1px solid rgba(228,178,92,.35);
    backdrop-filter:blur(6px);
    border-radius:18px;
    padding:26px 30px;
    min-width:190px;
    transition:transform .5s cubic-bezier(.16,.8,.3,1), background .4s ease, border-color .4s ease;
  }
  .ab-redesign .stat-card:hover {
    transform:translateY(-8px);
    background:rgba(251,241,225,.1);
    border-color:var(--dorado);
  }
  .ab-redesign .stat-num {
    font-family:'Montserrat', sans-serif;
    font-size:38px;
    font-weight:600;
    color:var(--dorado-claro);
  }
  .ab-redesign .stat-label {
    margin-top:6px;
    font-size:13.5px;
    letter-spacing:.03em;
    color:#e7cfd6;
  }

  /* book preview floating card */
  .ab-redesign .book-preview {
    margin-top:64px;
    position:relative;
    display:flex;
    gap:26px;
    align-items:flex-end;
    justify-content:center;
    flex-wrap:wrap;
  }
  .ab-redesign .book-preview img {
    border-radius:16px;
    box-shadow:var(--sombra);
  }
  .ab-redesign .book-preview .b1 { width:250px; max-width:250px; flex:0 0 auto; transform:rotate(-4deg); transition:transform .6s cubic-bezier(.16,.8,.3,1); }
  .ab-redesign .book-preview .b2 { width:290px; max-width:290px; flex:0 0 auto; z-index:2; transition:transform .6s cubic-bezier(.16,.8,.3,1); }
  .ab-redesign .book-preview .b3 { width:230px; max-width:230px; flex:0 0 auto; transform:rotate(4deg); transition:transform .6s cubic-bezier(.16,.8,.3,1); }
  .ab-redesign .book-preview:hover .b1 { transform:rotate(-7deg) translateY(-6px); }
  .ab-redesign .book-preview:hover .b2 { transform:translateY(-14px); }
  .ab-redesign .book-preview:hover .b3 { transform:rotate(7deg) translateY(-6px); }

  /* =========================================================
     PILARES (Ritmo / Melodía / Armonía)
     ========================================================= */
  .ab-redesign .pilares {
    background:var(--crema);
    padding:120px 0 100px;
    position:relative;
  }
  .ab-redesign .pilares-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    flex-wrap:wrap;
  }
  .ab-redesign .pilares-nav {
    display:flex;
    gap:10px;
  }
  .ab-redesign .nav-btn {
    width:52px; height:52px;
    border-radius:50%;
    border:1.5px solid var(--rojo);
    background:transparent;
    color:var(--rojo);
    font-size:18px;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:all .35s cubic-bezier(.16,.8,.3,1);
  }
  .ab-redesign .nav-btn:hover { background:var(--rojo); color:var(--marfil); transform:translateY(-3px); }

  .ab-redesign .pilares-track {
    margin-top:50px;
    display:flex;
    gap:26px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding-bottom:14px;
    scrollbar-width:none;
    cursor:grab;
    user-select:none;
  }
  .ab-redesign .pilares-track.is-dragging { cursor:grabbing; scroll-snap-type:none; }
  .ab-redesign .pilares-track::-webkit-scrollbar { display:none; }
  .ab-redesign .pilar-card {
    scroll-snap-align:start;
    min-width:320px;
    flex:1 0 320px;
    background:linear-gradient(160deg,#fff,var(--crema-2));
    border-radius:26px;
    padding:38px 32px 34px;
    box-shadow:var(--sombra-suave);
    position:relative;
    overflow:hidden;
    transition:transform .5s cubic-bezier(.16,.8,.3,1), box-shadow .5s ease;
  }
  .ab-redesign .pilar-card:hover { transform:translateY(-10px); box-shadow:var(--sombra); }
  .ab-redesign .pilar-card img.bg-icon {
    position:absolute; right:-30px; top:-30px;
    width:150px; opacity:.14; filter:saturate(1.4);
  }
  .ab-redesign .badge3d {
    width:84px; height:84px;
    border-radius:22px;
    display:flex; align-items:center; justify-content:center;
    font-size:36px;
    background:radial-gradient(circle at 30% 25%, var(--dorado-claro), var(--dorado) 55%, #b9852b 100%);
    box-shadow: inset 0 2px 4px rgba(255,255,255,.6), inset 0 -8px 14px rgba(90,55,10,.35), 0 16px 24px -10px rgba(180,120,30,.55);
    transition:transform .5s cubic-bezier(.34,1.56,.64,1);
  }
  .ab-redesign .pilar-card:hover .badge3d { transform:rotate(-8deg) scale(1.08); }
  .ab-redesign .pilar-card h3 {
    margin-top:24px;
    font-size:24px;
    font-weight:600;
  }
  .ab-redesign .pilar-card p {
    margin-top:12px;
    font-size:15px;
    line-height:1.65;
    color:#5a4650;
  }
  .ab-redesign .pilar-num {
    position:absolute; bottom:20px; right:26px;
    font-family:'Montserrat', sans-serif;
    font-size:52px;
    font-weight:300;
    color:var(--rojo);
    opacity:.14;
  }

  /* =========================================================
     ESCRITURA MUSICAL
     ========================================================= */
  .ab-redesign .escritura {
    background:var(--tinta);
    color:var(--marfil);
    padding:120px 0;
    position:relative;
    overflow:hidden;
  }
  .ab-redesign .escritura .wrap {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    align-items:center;
    position:relative;
    z-index:2;
  }
  .ab-redesign .escritura-visual {
    position:relative;
    border-radius:26px;
    overflow:hidden;
    box-shadow:var(--sombra);
    border:1px solid rgba(228,178,92,.25);
  }
  .ab-redesign .escritura-visual img {
    width:100%;
    transition:transform 1.2s cubic-bezier(.16,.8,.3,1);
  }
  .ab-redesign .escritura-visual:hover img { transform:scale(1.06); }
  .ab-redesign .escritura-list {
    margin-top:30px;
    display:flex;
    flex-direction:column;
    gap:20px;
  }
  .ab-redesign .escritura-list li {
    list-style:none;
    display:flex;
    gap:16px;
    align-items:flex-start;
  }
  .ab-redesign .escritura-list .dot {
    width:10px; height:10px;
    border-radius:50%;
    margin-top:8px;
    background:var(--dorado);
    box-shadow:0 0 0 4px rgba(228,178,92,.2);
    flex-shrink:0;
  }
  .ab-redesign .escritura-list p { color:#e7cfd6; font-size:15.5px; line-height:1.6; }
  .ab-redesign .escritura-list strong { color:var(--marfil); }

  /* =========================================================
     MÉTODO — intuitivo y simple
     ========================================================= */
  .ab-redesign .metodo {
    background:var(--crema);
    padding:120px 0;
  }
  .ab-redesign .metodo-head { text-align:center; }
  .ab-redesign .metodo-head .section-lede { margin-left:auto; margin-right:auto; }
  .ab-redesign .metodo-grid {
    margin-top:60px;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
  }
  .ab-redesign .metodo-card {
    background:#fff;
    border-radius:24px;
    padding:36px 30px;
    text-align:left;
    box-shadow:var(--sombra-suave);
    transition:transform .45s cubic-bezier(.16,.8,.3,1), box-shadow .45s ease;
    border-top:4px solid var(--dorado);
  }
  .ab-redesign .metodo-card:hover { transform:translateY(-8px); box-shadow:var(--sombra); }
  .ab-redesign .metodo-icon {
    width:66px; height:66px;
    border-radius:18px;
    display:flex; align-items:center; justify-content:center;
    font-size:28px;
    color:#fff;
    background:linear-gradient(155deg, var(--rojo-vivo), var(--rojo-oscuro));
    box-shadow: inset 0 2px 3px rgba(255,255,255,.35), 0 14px 20px -10px rgba(122,31,44,.55);
  }
  .ab-redesign .metodo-card h3 {
    margin-top:22px;
    font-size:20px;
    font-weight:600;
  }
  .ab-redesign .metodo-card p {
    margin-top:10px;
    font-size:14.5px;
    line-height:1.65;
    color:#5a4650;
  }
  .ab-redesign .metodo-showcase {
    margin-top:60px;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:30px;
    align-items:center;
  }
  .ab-redesign .metodo-showcase img {
    border-radius:24px;
    box-shadow:var(--sombra-suave);
  }

  /* =========================================================
     TESTIMONIO
     ========================================================= */
  .ab-redesign .testimonio {
    position:relative;
    background:linear-gradient(155deg, var(--rojo-oscuro), var(--rojo) 55%, var(--rojo-vivo));
    padding:130px 0;
    color:var(--marfil);
    overflow:hidden;
  }
  .ab-redesign .testimonio .wrap { position:relative; z-index:2; }
  .ab-redesign .quote-card {
    max-width:760px;
    margin:0 auto;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .ab-redesign .quote-mark {
    font-family:'Playfair Display', serif;
    font-size:90px;
    line-height:1;
    color:var(--dorado);
    opacity:.85;
  }
  .ab-redesign .quote-text {
    font-family:'Playfair Display', serif;
    font-size:clamp(24px, 3.4vw, 36px);
    font-weight:500;
    font-style:italic;
    line-height:1.4;
    color:var(--marfil);
  }
  .ab-redesign .quote-person {
    margin-top:34px;
    display:flex;
    align-items:center;
    gap:16px;
  }
  .ab-redesign .quote-person img {
    width:64px; height:64px;
    border-radius:50%;
    object-fit:cover;
    border:2.5px solid var(--dorado);
  }
  .ab-redesign .quote-person .name { font-weight:700; font-size:15px; }
  .ab-redesign .quote-person .role { font-size:13px; color:#e7cfd6; }

  /* =========================================================
     CUADERNOS PENTAGRAMADOS
     ========================================================= */
  .ab-redesign .cuadernos {
    background:var(--crema);
    padding:120px 0;
  }
  .ab-redesign .cuadernos-grid {
    margin-top:56px;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:30px;
  }
  .ab-redesign .cuaderno-card {
    perspective:1200px;
  }
  .ab-redesign .cuaderno-inner {
    background:#fff;
    border-radius:22px;
    padding:26px;
    box-shadow:var(--sombra-suave);
    transition:transform .5s cubic-bezier(.16,.8,.3,1), box-shadow .5s ease;
    transform-style:preserve-3d;
    text-align:center;
  }
  .ab-redesign .cuaderno-card:hover .cuaderno-inner {
    transform:rotateY(6deg) rotateX(3deg) translateY(-8px);
    box-shadow:var(--sombra);
  }
  .ab-redesign .cuaderno-inner img {
    border-radius:12px;
    margin:0 auto;
  }
  .ab-redesign .cuaderno-inner h4 {
    margin-top:20px;
    font-size:17px;
    font-weight:600;
  }
  .ab-redesign .cuaderno-tag {
    display:inline-block;
    margin-top:10px;
    font-size:12px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--rojo-vivo);
    background:rgba(122,31,44,.08);
    padding:5px 12px;
    border-radius:100px;
  }

  /* =========================================================
     PAGO / CHECKOUT
     ========================================================= */
  .ab-redesign .pago {
    background:var(--tinta);
    padding:130px 0;
    position:relative;
    overflow:hidden;
  }
  .ab-redesign .pago .wrap { position:relative; z-index:2; }
  .ab-redesign .pago-grid {
    display:grid;
    grid-template-columns:1fr 1.05fr;
    gap:56px;
    align-items:center;
  }
  .ab-redesign .pago-list { margin-top:26px; display:flex; flex-direction:column; gap:16px; }
  .ab-redesign .pago-list li {
    list-style:none;
    display:flex;
    gap:14px;
    align-items:center;
    font-size:15px;
    color:#e7cfd6;
  }
  .ab-redesign .check {
    width:26px; height:26px;
    border-radius:50%;
    background:var(--dorado);
    display:flex; align-items:center; justify-content:center;
    color:var(--tinta);
    font-weight:800;
    flex-shrink:0;
    font-size:13px;
  }
  .ab-redesign .price-card {
    background:linear-gradient(165deg,#fff, var(--crema-2));
    border-radius:30px;
    padding:44px;
    box-shadow:var(--sombra);
    color:var(--tinta);
    position:relative;
  }
  .ab-redesign .price-card .lock-badge {
    position:absolute; top:-20px; left:44px;
    background:var(--dorado);
    color:var(--tinta);
    font-size:12.5px;
    font-weight:800;
    letter-spacing:.04em;
    padding:9px 18px;
    border-radius:100px;
    box-shadow:0 10px 20px -8px rgba(228,178,92,.6);
  }
  .ab-redesign .price-amount {
    margin-top:18px;
    font-family:'Montserrat', sans-serif;
    font-size:54px;
    font-weight:600;
    color:var(--rojo);
  }
  .ab-redesign .price-amount span { font-size:18px; font-weight:500; color:#5a4650; }
  .ab-redesign .price-sub { margin-top:6px; font-size:14px; color:#5a4650; }
  .ab-redesign .pay-icons {
    margin-top:24px;
    display:flex;
    gap:14px;
    align-items:center;
  }
  .ab-redesign .pay-icons img { height:24px; }
  .ab-redesign .cta-btn {
    margin-top:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    padding:19px 24px;
    border-radius:100px;
    background:linear-gradient(120deg, var(--rojo-vivo), var(--rojo-oscuro));
    color:var(--marfil);
    font-weight:700;
    font-size:16px;
    letter-spacing:.02em;
    text-decoration:none;
    box-shadow:0 20px 30px -12px rgba(122,31,44,.55);
    transition:transform .4s cubic-bezier(.16,.8,.3,1), box-shadow .4s ease;
  }
  .ab-redesign .cta-btn:hover { transform:translateY(-4px); box-shadow:0 26px 40px -12px rgba(122,31,44,.7); }
  .ab-redesign .cta-btn svg { transition:transform .4s ease; }
  .ab-redesign .cta-btn:hover svg { transform:translateX(4px); }
  .ab-redesign .price-note {
    margin-top:16px;
    text-align:center;
    font-size:12.5px;
    color:#8a7580;
  }

  /* =========================================================
     FAQ
     ========================================================= */
  .ab-redesign .faq {
    background:var(--crema);
    padding:120px 0;
  }
  .ab-redesign .faq-list { margin-top:50px; display:flex; flex-direction:column; gap:14px; }
  .ab-redesign .faq-item {
    background:#fff;
    border-radius:18px;
    box-shadow:var(--sombra-suave);
    overflow:hidden;
  }
  .ab-redesign .faq-q {
    width:100%;
    text-align:left;
    padding:24px 28px;
    background:none;
    border:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    font-family:'Montserrat', sans-serif;
    font-size:18px;
    font-weight:500;
    color:var(--tinta);
    cursor:pointer;
  }
  .ab-redesign .faq-plus {
    width:32px; height:32px;
    border-radius:50%;
    background:var(--dorado-suave);
    color:var(--rojo);
    display:flex; align-items:center; justify-content:center;
    font-size:18px;
    flex-shrink:0;
    transition:transform .4s cubic-bezier(.34,1.56,.64,1), background .3s ease;
  }
  .ab-redesign .faq-item.open .faq-plus { transform:rotate(45deg); background:var(--dorado); }
  .ab-redesign .faq-a {
    max-height:0;
    overflow:hidden;
    transition:max-height .5s cubic-bezier(.16,.8,.3,1);
  }
  .ab-redesign .faq-a-inner {
    padding:0 28px 26px;
    font-size:14.5px;
    line-height:1.7;
    color:#5a4650;
  }

  @media (max-width: 860px){
    .ab-redesign .escritura .wrap, .ab-redesign .pago-grid, .ab-redesign .metodo-showcase { grid-template-columns:1fr; }
    .ab-redesign .metodo-grid, .ab-redesign .cuadernos-grid { grid-template-columns:1fr; }
    .ab-redesign .book-preview img { width:220px !important; }
  }

  /* =========================================================
     SECCIÓN DE PAGO — envoltorio del include existente
     (inc/landing-pago-section.php). No conocemos el markup
     interno exacto de ese include, así que solo le damos
     un "marco" visual acorde al nuevo diseño; si el checkout
     real no calza del todo, puede necesitar un ajuste manual.
     ========================================================= */
  .ab-redesign .pago-embed{
    background:linear-gradient(165deg,#fff, var(--crema-2));
    border-radius:30px;
    padding:38px;
    box-shadow:var(--sombra);
    color:var(--tinta);
  }
  @media (max-width: 600px){
    .ab-redesign .pago-embed{ padding:26px; }
  }
