*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#fff;color:#211629;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:#4B1D66;text-decoration-thickness:2px;text-underline-offset:4px}
:root{--morado:#4B1D66;--morado2:#301042;--dorado:#D6A642;--dorado2:#B87A20;--crema:#FFF8EC;--blanco:#fff;--negro:#161016}
.jm-header{position:sticky;top:0;z-index:50;background:linear-gradient(90deg,var(--morado2),var(--morado));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:13px 5vw;box-shadow:0 8px 28px rgba(48,16,66,.22)}
.jm-logo{display:flex;flex-direction:column;color:#fff;text-decoration:none;font-weight:900;line-height:1.05}.jm-logo span{font-size:1.18rem}.jm-logo small{font-size:.76rem;opacity:.86}.jm-nav{display:flex;gap:22px}.jm-nav a{color:#fff;text-decoration:none;font-weight:800}.jm-menu{display:none;background:#fff;color:var(--morado);border:0;border-radius:999px;padding:10px 16px;font-weight:900}
.jm-wrap{max-width:1180px;margin:0 auto;padding:0 5vw}.jm-franja-morada{background:linear-gradient(135deg,var(--morado2),var(--morado));color:#fff}.jm-franja-blanca{background:#fff;color:#211629}.jm-franja-crema{background:linear-gradient(180deg,#fff,var(--crema));color:#211629}
.jm-hero{position:relative;overflow:hidden}.jm-hero:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 25% 15%,rgba(214,166,66,.32),transparent 34%),radial-gradient(circle at 70% 80%,rgba(255,255,255,.12),transparent 30%);pointer-events:none}.jm-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:42px;align-items:center;max-width:1280px;margin:0 auto;padding:78px 5vw 82px}.jm-badge,.jm-kicker{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:var(--dorado);margin:0 0 16px}.jm-kicker.gold{color:var(--dorado)}
h1,h2{font-family:Georgia,serif;letter-spacing:-.045em;line-height:1.02;margin:0 0 22px}h1{font-size:clamp(3.1rem,7.2vw,7rem);color:#fff}h2{font-size:clamp(2.25rem,5vw,4.8rem)}.jm-subtitle{font-size:clamp(1.15rem,2vw,1.42rem);max-width:790px;color:rgba(255,255,255,.9)}
.jm-hero-points{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.jm-hero-points span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:10px 15px;font-weight:800}.jm-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.jm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 26px;border-radius:999px;font-weight:900;text-decoration:none}.jm-btn-gold{background:linear-gradient(180deg,var(--dorado),var(--dorado2));color:#fff;box-shadow:0 16px 42px rgba(214,166,66,.28)}.jm-btn-white{background:#fff;color:var(--morado)}.jm-hero-photo img{border-radius:34px;box-shadow:0 28px 80px rgba(0,0,0,.38);border:3px solid rgba(214,166,66,.65)}
.jm-intro{padding:72px 0}.jm-intro .jm-wrap{max-width:980px}.jm-intro p:not(.jm-kicker){font-size:1.2rem;color:#34243e}
.jm-niveles,.jm-author,.jm-usa,.jm-final{padding:82px 0}.jm-niveles h2,.jm-author h2,.jm-usa h2,.jm-final h2{color:#fff}.jm-niveles p,.jm-author p,.jm-usa p,.jm-final p{color:rgba(255,255,255,.9);font-size:1.1rem}
.jm-level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}.jm-level-grid article{background:#fff;color:#24132f;border-radius:28px;padding:26px;box-shadow:0 20px 55px rgba(0,0,0,.18);border:1px solid rgba(214,166,66,.38)}.jm-level-grid span{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--morado);color:#fff;font-weight:900;margin-bottom:14px}.jm-level-grid h3{font-size:1.45rem;margin:0 0 12px;color:var(--morado)}
.jm-split{padding:82px 0}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}.split.reverse{grid-template-columns:.95fr 1.05fr}.jm-split p{font-size:1.1rem;color:#382641}.jm-checks{padding-left:0;list-style:none;display:grid;gap:12px;margin-top:24px}.jm-checks li{background:#fff;border:1px solid rgba(75,29,102,.12);border-radius:16px;padding:14px 16px;font-weight:800}.jm-checks li:before{content:"✓";color:var(--dorado);font-weight:900;margin-right:10px}.jm-img-card img,.author-grid figure img{border-radius:30px;box-shadow:0 18px 52px rgba(48,16,66,.16);border:3px solid rgba(214,166,66,.35)}
.author-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:42px;align-items:center}.jm-author a{color:#fff;text-decoration-color:var(--dorado)}.jm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}.jm-stats div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:22px}.jm-stats strong{display:block;font-size:2rem;color:var(--dorado)}.jm-stats span{font-weight:800;color:#fff}
.portrait-gallery{padding:82px 0}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.gallery-grid figure{background:#fff;border:1px solid rgba(75,29,102,.12);border-radius:28px;padding:16px;box-shadow:0 16px 42px rgba(48,16,66,.08)}.gallery-grid img{border-radius:20px}.gallery-grid figcaption{font-weight:900;color:var(--morado);padding:14px 6px 4px}
.jm-map{margin-top:34px;background:#fff;border-radius:32px;padding:14px;box-shadow:0 20px 60px rgba(0,0,0,.18)}.jm-map img{border-radius:24px}.jm-compare{padding:82px 0}.jm-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.jm-compare-grid article{background:#fff;border-radius:28px;padding:28px;border:1px solid rgba(75,29,102,.12);box-shadow:0 18px 50px rgba(48,16,66,.08)}.jm-compare-grid h3{font-size:1.6rem;color:var(--morado);margin-top:0}.jm-compare-grid li{margin:10px 0;font-weight:700}
.jm-final{text-align:center}.jm-final .jm-wrap{max-width:920px}.jm-final p{font-size:1.18rem}
.jm-faq{padding:82px 0}.faq-list{display:grid;gap:12px;margin-top:30px}.faq-item{background:#fff;border:1px solid rgba(75,29,102,.12);border-radius:20px;overflow:hidden;box-shadow:0 12px 32px rgba(48,16,66,.06)}.faq-item summary{cursor:pointer;padding:19px 22px;font-weight:900;color:var(--morado);list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item div{padding:0 22px 22px}.faq-item p{margin:0;color:#3a2b3f}
.jm-footer{background:var(--morado2);color:#fff;display:flex;justify-content:space-between;gap:24px;padding:34px 5vw}.jm-footer p{max-width:620px;color:rgba(255,255,255,.82)}.jm-footer nav{display:flex;gap:16px;flex-wrap:wrap}.jm-footer a{color:#fff;text-decoration:none;font-weight:800}
@media(max-width:980px){.jm-menu{display:block}.jm-nav{position:absolute;top:68px;left:4vw;right:4vw;background:var(--morado2);border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:18px;display:none;flex-direction:column}.jm-nav.open{display:flex}.jm-hero-inner,.split,.split.reverse,.author-grid{grid-template-columns:1fr}.jm-level-grid,.gallery-grid,.jm-stats,.jm-compare-grid{grid-template-columns:1fr}.jm-hero-inner{padding-top:54px}.jm-hero-photo img{max-width:460px;margin:0 auto}h1{font-size:clamp(2.7rem,13vw,4.6rem)}.jm-footer{display:block}.jm-footer nav{margin-top:18px}.toc-grid{grid-template-columns:1fr}}


/* Correcciones finales */
.jm-level-grid article p,
.jm-level-grid article li {
  color: #3a2b3f !important;
}

.jm-level-grid article h3 {
  color: var(--morado) !important;
}

.jm-level-grid article {
  overflow: visible;
}

.jm-map {
  overflow: hidden;
}

.jm-map img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Preguntas frecuentes claramente desplegables */
.faq-item summary {
  position: relative;
  padding-right: 64px;
}

.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--morado);
  color: #ffffff;
  display: grid;
  place-items: center;
  font-size: 24px;
  font-weight: 900;
  line-height: 1;
}

.faq-item[open] summary::after {
  content: "−";
  background: var(--dorado);
  color: #ffffff;
}

@media(max-width: 640px) {
  .faq-item summary {
    padding-right: 58px;
  }
  .faq-item summary::after {
    right: 16px;
  }
}


/* Tarjeta de autoridad sin repetir la misma foto */
.jm-author-card {
  min-height: 420px;
  border-radius: 34px;
  background:
    radial-gradient(circle at 30% 20%, rgba(214,166,66,.35), transparent 36%),
    linear-gradient(145deg, rgba(255,255,255,.16), rgba(255,255,255,.06));
  border: 2px solid rgba(214,166,66,.48);
  box-shadow: 0 22px 70px rgba(0,0,0,.22);
  padding: 38px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.jm-author-card span {
  color: var(--dorado);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 950;
  margin-bottom: 18px;
}

.jm-author-card strong {
  display: block;
  color: #ffffff;
  font-family: Georgia, serif;
  font-size: clamp(2.2rem, 4vw, 4.1rem);
  line-height: 1.02;
  letter-spacing: -.045em;
  margin-bottom: 18px;
}

.jm-author-card p {
  color: rgba(255,255,255,.88) !important;
  font-weight: 800;
  font-size: 1.12rem;
}

.jm-img-card img {
  background: #fff;
  object-fit: contain;
}


/* Galería real de JavierMa y CTAs añadidos */
.jm-gallery-real {
  padding: 82px 0;
}

.jm-gallery-intro {
  max-width: 840px;
  font-size: 1.12rem;
  color: #3a2b3f;
}

.jm-real-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 30px;
}

.jm-real-grid figure {
  background: #fff;
  border: 1px solid rgba(75,29,102,.12);
  border-radius: 26px;
  padding: 14px;
  margin: 0;
  box-shadow: 0 18px 46px rgba(48,16,66,.08);
}

.jm-real-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 18px;
}

.jm-real-grid figcaption {
  font-weight: 900;
  color: var(--morado);
  padding: 13px 6px 4px;
  font-size: .96rem;
}

.jm-center-action {
  text-align: center;
  margin-top: 32px;
}

.jm-mid-cta {
  padding: 68px 0;
  text-align: center;
}

.jm-mid-cta .jm-wrap {
  max-width: 920px;
}

.jm-mid-cta p {
  font-size: 1.15rem;
  color: #3a2b3f;
}

.jm-bottom-cta {
  padding: 82px 0;
  text-align: center;
}

.jm-bottom-cta .jm-wrap {
  max-width: 920px;
}

.jm-bottom-cta h2,
.jm-bottom-cta p {
  color: #ffffff;
}

@media(max-width: 980px) {
  .jm-real-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media(max-width: 640px) {
  .jm-real-grid {
    grid-template-columns: 1fr;
  }
}


/* Corrección definitiva de imágenes reales */
.author-grid {
  grid-template-columns: 1fr 1fr !important;
  gap: 52px !important;
}

.author-grid > figure {
  margin: 0 !important;
  width: 100% !important;
  align-self: center !important;
}

.author-grid > figure img {
  width: 100% !important;
  max-width: none !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 32px !important;
  border: 4px solid rgba(214,166,66,.55) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.28) !important;
}

.jm-gallery-real .jm-wrap {
  max-width: 1220px !important;
}

.jm-real-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
  align-items: stretch !important;
}

.jm-real-grid figure {
  margin: 0 !important;
  width: 100% !important;
  background: #ffffff !important;
  border: 1px solid rgba(75,29,102,.14) !important;
  border-radius: 28px !important;
  padding: 14px !important;
  box-shadow: 0 18px 46px rgba(48,16,66,.08) !important;
  display: flex !important;
  flex-direction: column !important;
}

.jm-real-grid img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 20px !important;
  display: block !important;
}

.jm-real-grid figcaption {
  min-height: 52px !important;
  display: flex !important;
  align-items: center !important;
  font-weight: 900 !important;
  color: var(--morado) !important;
  padding: 12px 6px 2px !important;
  line-height: 1.2 !important;
}

.jm-img-card img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center top !important;
}

@media(max-width: 980px) {
  .author-grid {
    grid-template-columns: 1fr !important;
  }
  .jm-real-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media(max-width: 640px) {
  .jm-real-grid {
    grid-template-columns: 1fr !important;
  }
}


/* REVISIÓN FINAL JAVIERMA: imágenes sin recortes incorrectos */
.author-grid {
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr) !important;
  align-items: center !important;
  gap: 46px !important;
}

.author-grid > figure {
  margin: 0 !important;
  width: 100% !important;
}

.author-grid > figure img {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 30px !important;
  border: 4px solid rgba(214,166,66,.55) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.28) !important;
}

.jm-img-card img[src*="certificados"] {
  width: 100% !important;
  aspect-ratio: auto !important;
  max-height: 760px !important;
  object-fit: contain !important;
  object-position: center !important;
  background: #FFF8EC !important;
  padding: 10px !important;
}

.jm-real-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: stretch !important;
}

.jm-real-grid figure {
  margin: 0 !important;
  background: #ffffff !important;
  border: 1px solid rgba(75,29,102,.14) !important;
  border-radius: 28px !important;
  padding: 14px !important;
  box-shadow: 0 18px 46px rgba(48,16,66,.08) !important;
  display: flex !important;
  flex-direction: column !important;
}

.jm-real-grid img {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 20px !important;
}

.jm-real-grid figcaption {
  min-height: 52px !important;
  display: flex !important;
  align-items: center !important;
  color: var(--morado) !important;
  font-weight: 900 !important;
  line-height: 1.22 !important;
  padding: 12px 6px 2px !important;
}

.jm-method-card {
  background: #17110A;
  color: #FFF8EC;
  border-radius: 32px;
  border: 4px solid rgba(214,166,66,.55);
  box-shadow: 0 20px 60px rgba(48,16,66,.14);
  padding: clamp(24px, 4vw, 42px);
  width: 100%;
}

.jm-method-card h3 {
  font-family: Georgia, serif;
  font-size: clamp(2rem, 4vw, 3.9rem);
  line-height: 1.02;
  letter-spacing: -.04em;
  margin: 0 0 26px;
  color: #FFF8EC;
}

.jm-method-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.jm-method-grid div {
  background: #FFF8EC;
  color: #1A1713;
  border-radius: 20px;
  padding: 22px;
  min-height: 118px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.jm-method-grid div:nth-child(2),
.jm-method-grid div:nth-child(4) {
  background: #F9E9C5;
}

.jm-method-grid strong {
  font-size: 1.35rem;
  line-height: 1.1;
  margin-bottom: 9px;
}

.jm-method-grid span {
  color: #6A3F0B;
  font-weight: 900;
}

@media(max-width: 980px) {
  .author-grid {
    grid-template-columns: 1fr !important;
  }
  .jm-real-grid {
    grid-template-columns: 1fr !important;
  }
}

@media(max-width: 640px) {
  .jm-method-grid {
    grid-template-columns: 1fr;
  }
}


/* FIX FINAL: evitar texto cortado en bloque de método */
.jm-method-card {
  overflow: visible !important;
}

.jm-method-grid {
  grid-template-columns: 1fr !important;
  gap: 14px !important;
}

.jm-method-grid div {
  min-height: auto !important;
  padding: 20px 22px !important;
  overflow: visible !important;
}

.jm-method-grid strong {
  display: block !important;
  font-size: clamp(1.12rem, 1.7vw, 1.38rem) !important;
  line-height: 1.15 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  margin-bottom: 7px !important;
}

.jm-method-grid span {
  display: block !important;
  font-size: clamp(.98rem, 1.35vw, 1.08rem) !important;
  line-height: 1.25 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
}

@media(min-width: 1180px) {
  .jm-method-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .jm-method-grid strong {
    font-size: 1.16rem !important;
  }
}


/* FIX DEFINITIVO MÓVIL - JavierMa */
@media (max-width: 768px) {

  body {
    overflow-x: hidden !important;
  }

  .jm-header {
    padding: 12px 16px !important;
  }

  .jm-hero-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    padding: 44px 18px 54px !important;
  }

  .jm-hero-copy {
    width: 100% !important;
    min-width: 0 !important;
  }

  .jm-hero h1,
  .jm-hero-copy h1 {
    font-size: clamp(2.35rem, 12vw, 3.65rem) !important;
    line-height: 1.02 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }

  .jm-subtitle {
    font-size: 1.08rem !important;
    line-height: 1.45 !important;
  }

  .jm-hero-photo {
    margin: 0 auto !important;
    width: 100% !important;
    max-width: 390px !important;
    overflow: visible !important;
  }

  .jm-hero-photo img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center top !important;
    border-radius: 26px !important;
    display: block !important;
  }

  .jm-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
  }

  .jm-btn {
    width: 100% !important;
    min-height: 54px !important;
    padding: 13px 18px !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.18 !important;
  }

  .jm-hero-points {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .jm-hero-points span {
    width: 100% !important;
    white-space: normal !important;
    line-height: 1.25 !important;
  }

  .jm-wrap {
    padding-left: 18px !important;
    padding-right: 18px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .jm-level-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .jm-level-grid article {
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    padding: 24px 20px !important;
  }

  .jm-level-grid article h3 {
    font-size: 1.36rem !important;
    line-height: 1.12 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    color: var(--morado) !important;
  }

  .jm-level-grid article p {
    font-size: 1rem !important;
    line-height: 1.5 !important;
    color: #3a2b3f !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .split,
  .split.reverse,
  .author-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  .jm-img-card img[src*="certificados"],
  .jm-img-card img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center !important;
  }

  .jm-map {
    width: calc(100vw - 24px) !important;
    max-width: none !important;
    margin-left: 50% !important;
    transform: translateX(-50%) !important;
    padding: 6px !important;
    border-radius: 22px !important;
    overflow: visible !important;
  }

  .jm-map img {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 18px !important;
  }

  .faq-item summary {
    font-size: 1rem !important;
    line-height: 1.25 !important;
    padding: 18px 58px 18px 18px !important;
  }
}

@media (max-width: 420px) {
  .jm-hero h1,
  .jm-hero-copy h1 {
    font-size: clamp(2.12rem, 11vw, 3.05rem) !important;
  }

  .jm-hero-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .jm-hero-photo {
    max-width: 340px !important;
  }

  .jm-map {
    width: calc(100vw - 14px) !important;
  }
}
