/* Javier de María · Web Suite — shared frontend */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=DM+Sans:wght@300;400;500;600&family=Open+Sans:wght@300;400;600&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap');

html { scroll-behavior:smooth; }
body.jdm-plugin-canvas {
  margin:0; background:#fffefa; color:#403e3e; overflow-x:hidden;
  -webkit-font-smoothing: antialiased; text-rendering:optimizeLegibility;
}
body.jdm-plugin-canvas *, body.jdm-plugin-canvas *::before, body.jdm-plugin-canvas *::after { box-sizing:border-box; }
body.jdm-plugin-canvas img { max-width:100%; }
body.jdm-plugin-canvas a { text-decoration:none; }
body.jdm-plugin-canvas .screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
body.jdm-plugin-canvas .screen-reader-text:focus { width:auto; height:auto; clip:auto; background:#fff; padding:10px; z-index:100000; }
body.jdm-plugin-canvas .jdm-notice { padding:13px 18px; border-radius:4px; margin:12px 0; font:400 13px/1.45 'Open Sans',sans-serif; }
body.jdm-plugin-canvas .jdm-notice--ok { background:#eef5ec; border:1px solid #aac39f; color:#355d2b; }
body.jdm-plugin-canvas .jdm-notice--error { background:#fff1ef; border:1px solid #d29a8f; color:#7e3025; }

  .jdm-global-header,
  .jdm-global-header * {
    box-sizing: border-box;
  }

  .jdm-global-header {
    --gris: #403E3E;
    --gris-mid: #5a5857;
    --blanco: #FFFEFD;
    --oliva: #7A804A;
    --oliva-light: #9a9f68;
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Open Sans', sans-serif;
    --transition: 0.25s ease;

    font-family: var(--font-body);
    width: 100%;
    position: relative;
    z-index: 99999;
  }

  .jdm-global-header a {
    text-decoration: none;
    color: inherit;
  }

  .jdm-global-header .jdm-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99999;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 48px;
    background: transparent;
    box-shadow: none;
    transition: background var(--transition), box-shadow var(--transition), backdrop-filter var(--transition);
  }

  .jdm-global-header .jdm-nav.scrolled {
    background: rgba(255,254,253,0.97);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 1px 0 rgba(64,62,62,0.09);
  }

  .jdm-global-header .nav-links {
    display: flex;
    align-items: center;
    gap: 32px;
  }

  .jdm-global-header .nav-link {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: rgba(255,254,253,0.90);
    transition: color var(--transition);
    white-space: nowrap;
  }

  .jdm-global-header .jdm-nav.scrolled .nav-link {
    color: var(--gris-mid);
  }

  .jdm-global-header .nav-link:hover {
    color: var(--oliva-light);
  }

  .jdm-global-header .jdm-nav.scrolled .nav-link:hover {
    color: var(--oliva);
  }

  .jdm-global-header .nav-logo {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: rgba(255,254,253,0.95);
    text-align: center;
    transition: color var(--transition);
    flex-shrink: 0;
    line-height: 1.1;
  }

  .jdm-global-header .jdm-nav.scrolled .nav-logo {
    color: var(--gris);
  }

  .jdm-global-header .nav-logo small {
    display: block;
    font-family: var(--font-body);
    font-size: 0.58rem;
    letter-spacing: 0.20em;
    text-transform: uppercase;
    color: rgba(255,254,253,0.55);
    margin-top: 2px;
    font-weight: 400;
    transition: color var(--transition);
  }

  .jdm-global-header .jdm-nav.scrolled .nav-logo small {
    color: var(--oliva);
  }

  .jdm-global-header .mobile-toggle {
    display: none;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255,254,253,0.40);
    background: transparent;
    border-radius: 3px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    padding: 0;
  }

  .jdm-global-header .mobile-toggle span {
    width: 18px;
    height: 1px;
    background: var(--blanco);
    display: block;
    transition: transform var(--transition), opacity var(--transition), background var(--transition);
  }

  .jdm-global-header .jdm-nav.scrolled .mobile-toggle {
    border-color: rgba(64,62,62,0.20);
  }

  .jdm-global-header .jdm-nav.scrolled .mobile-toggle span {
    background: var(--gris);
  }

  .jdm-global-header .mobile-menu {
    display: none;
  }

  @media (max-width: 900px) {
    .jdm-global-header .jdm-nav {
      padding: 0 22px;
    }

    .jdm-global-header .desktop-links {
      display: none;
    }

    .jdm-global-header .mobile-toggle {
      display: flex;
    }

    .jdm-global-header .nav-logo {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      font-size: 1.05rem;
    }

    .jdm-global-header .nav-logo small {
      font-size: 0.52rem;
      letter-spacing: 0.16em;
    }

    .jdm-global-header .mobile-menu {
      position: fixed;
      top: 68px;
      left: 0;
      right: 0;
      z-index: 99998;
      background: rgba(255,254,253,0.98);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-top: 1px solid rgba(64,62,62,0.08);
      box-shadow: 0 12px 30px rgba(64,62,62,0.10);
      padding: 22px;
      display: none;
      flex-direction: column;
      gap: 18px;
    }

    .jdm-global-header.is-open .mobile-menu {
      display: flex;
    }

    .jdm-global-header .mobile-menu a {
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: var(--gris-mid);
      padding-bottom: 14px;
      border-bottom: 1px solid rgba(64,62,62,0.08);
    }

    .jdm-global-header .mobile-menu a:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }

    .jdm-global-header .mobile-menu a:hover {
      color: var(--oliva);
    }

    .jdm-global-header.is-open .mobile-toggle span:nth-child(1) {
      transform: translateY(6px) rotate(45deg);
    }

    .jdm-global-header.is-open .mobile-toggle span:nth-child(2) {
      opacity: 0;
    }

    .jdm-global-header.is-open .mobile-toggle span:nth-child(3) {
      transform: translateY(-6px) rotate(-45deg);
    }
  }

  @media (max-width: 480px) {
    .jdm-global-header .jdm-nav {
      height: 64px;
    }

    .jdm-global-header .nav-logo {
      font-size: 0.95rem;
    }

    .jdm-global-header .nav-logo small {
      font-size: 0.48rem;
    }

    .jdm-global-header .mobile-menu {
      top: 64px;
    }
  }


  /* Fuerza el widget y el footer a ocupar el ancho total de pantalla */
  body .elementor-widget-html:has(.jdm-site-footer),
  body .elementor-widget-html:has(.jdm-site-footer) .elementor-widget-container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .jdm-site-footer,
  .jdm-site-footer * {
    box-sizing: border-box;
  }

  .jdm-site-footer {
    --gris: #403E3E;
    --blanco: #FFFEFD;
    --oliva-light: #9a9f68;
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Open Sans', sans-serif;
    --transition: 0.25s ease;

    width: 100vw !important;
    min-width: 100vw;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 68px 0 36px;
    background: var(--gris);
    font-family: var(--font-body);
    overflow: hidden;
  }

  .jdm-site-footer a {
    text-decoration: none;
  }

  .jdm-site-footer .jdm-footer-container {
    width: 100%;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 48px;
  }

  .jdm-site-footer .footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 52px;
    padding-bottom: 52px;
    border-bottom: 0.5px solid rgba(255,254,253,0.10);
    margin-bottom: 32px;
  }

  .jdm-site-footer .footer-brand h3 {
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--blanco);
    margin: 0 0 4px;
    line-height: 1.2;
  }

  .jdm-site-footer .footer-brand .tagline {
    display: block;
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--oliva-light);
    margin-bottom: 16px;
  }

  .jdm-site-footer .footer-brand p {
    margin: 0;
    font-size: 0.85rem;
    color: rgba(255,254,253,0.52);
    line-height: 1.75;
    max-width: 300px;
  }

  .jdm-site-footer .footer-social {
    display: flex;
    gap: 12px;
    margin-top: 22px;
  }

  .jdm-site-footer .footer-social a {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 0.5px solid rgba(255,254,253,0.18);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fffefd;
    background: rgba(255,255,255,0.03);
    transition: all var(--transition);
  }

  .jdm-site-footer .footer-social a svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
    display: block;
  }

  .jdm-site-footer .footer-social a:hover {
    border-color: var(--oliva-light);
    color: #fffefd;
    background: rgba(122,128,74,0.28);
    transform: translateY(-1px);
  }

  .jdm-site-footer .footer-col h4 {
    margin: 0 0 18px;
    font-family: var(--font-body);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--blanco);
  }

  .jdm-site-footer .footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .jdm-site-footer .footer-col ul li {
    margin-bottom: 9px;
  }

  .jdm-site-footer .footer-col ul li a {
    font-size: 0.85rem;
    color: rgba(255,254,253,0.48);
    transition: color var(--transition);
  }

  .jdm-site-footer .footer-col ul li a:hover {
    color: var(--oliva-light);
  }

  .jdm-site-footer .footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    font-size: 0.75rem;
    color: rgba(255,254,253,0.30);
  }

  .jdm-site-footer .footer-bottom p {
    margin: 0;
  }

  .jdm-site-footer .footer-bottom-links {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
  }

  .jdm-site-footer .footer-bottom a {
    color: rgba(255,254,253,0.30);
    transition: color var(--transition);
  }

  .jdm-site-footer .footer-bottom a:hover {
    color: rgba(255,254,253,0.60);
  }

  @media (max-width: 768px) {
    .jdm-site-footer {
      padding: 54px 0 30px;
    }

    .jdm-site-footer .jdm-footer-container {
      padding: 0 22px;
    }

    .jdm-site-footer .footer-grid {
      grid-template-columns: 1fr;
      gap: 32px;
      padding-bottom: 38px;
    }

    .jdm-site-footer .footer-bottom {
      flex-direction: column;
      text-align: center;
    }

    .jdm-site-footer .footer-bottom-links {
      justify-content: center;
      gap: 16px;
    }
  }



/* Newsletter in global footer */
.jdm-site-footer .footer-grid { grid-template-columns: 1.35fr .75fr .75fr 1.2fr; }
.jdm-site-footer .footer-newsletter p { margin:0 0 13px; color:rgba(255,254,253,.52); font-size:.8rem; line-height:1.65; }
.jdm-site-footer .footer-newsletter .jdm-newsletter-form { padding:0; gap:8px; }
.jdm-site-footer .footer-newsletter .newsletter-input { width:100%; padding:10px 12px; background:rgba(255,254,253,.08); border:1px solid rgba(255,254,253,.18); color:#fffefd; border-radius:2px; font:400 12px/1.2 'Open Sans',sans-serif; }
.jdm-site-footer .footer-newsletter .newsletter-input::placeholder { color:rgba(255,254,253,.45); }
.jdm-site-footer .footer-newsletter .newsletter-submit { width:100%; border:1px solid #9a9f68; background:#7a804a; color:#fffefd; padding:11px 12px; font:600 10px/1 'Open Sans',sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.jdm-site-footer .footer-newsletter .jdm-newsletter-consent { color:rgba(255,254,253,.45); font-size:10px; }
.jdm-site-footer .footer-newsletter .jdm-newsletter-consent a { color:#c4c98e; }
.jdm-site-footer .footer-newsletter .jdm-newsletter-message { color:#d9dfaa; }
@media (max-width: 980px){ .jdm-site-footer .footer-grid { grid-template-columns:1.2fr 1fr 1fr; } .jdm-site-footer .footer-newsletter{grid-column:1/-1; max-width:460px;} }

/* Blog subscription area */
.jdm-blog-newsletter-anchor { background:#e9ddd0; padding:54px 24px; display:flex; justify-content:center; }
.jdm-blog-newsletter-anchor .jdm-newsletter-form { width:min(100%,520px); padding:0; }
.jdm-blog-newsletter-anchor .newsletter-input { width:100%; padding:14px 18px; border:1px solid rgba(64,62,62,.2); background:#fffefd; color:#403e3e; font:400 14px/1.2 'Open Sans',sans-serif; }
.jdm-blog-newsletter-anchor .newsletter-submit { width:100%; padding:14px 18px; border:0; background:#403e3e; color:#fffefd; letter-spacing:.08em; text-transform:uppercase; font:600 12px/1 'Open Sans',sans-serif; cursor:pointer; }
.jdm-blog-newsletter-anchor .jdm-newsletter-consent { color:#686561; font-size:11px; }
.jdm-empty-blog { margin:0; padding:36px; border:1px solid #d6cabd; color:#706d68; font:400 15px/1.7 'Open Sans',sans-serif; }

/* Imported blog article */
.jdm-single-post { background:#fffefa; padding:136px 24px 88px; }
.jdm-post-article { width:min(100%,850px); margin:0 auto; }
.jdm-post-heading { text-align:center; max-width:760px; margin:0 auto 40px; }
.jdm-post-eyebrow { color:#7a804a; font:500 10px/1.2 'DM Sans',sans-serif; letter-spacing:.18em; text-transform:uppercase; margin:0 0 18px; }
.jdm-post-heading h1 { color:#403e3e; font:400 clamp(2.7rem,6vw,5.2rem)/1.02 'Cormorant Garamond',Georgia,serif; margin:0; }
.jdm-post-date { color:#8a8480; font:400 12px/1.5 'Open Sans',sans-serif; letter-spacing:.05em; margin:20px 0 0; }
.jdm-post-image { margin:0 0 46px; max-height:510px; overflow:hidden; }
.jdm-post-image img { display:block; width:100%; height:100%; max-height:510px; object-fit:cover; }
.jdm-post-content { color:#5e5a57; font:400 17px/1.85 'Open Sans',sans-serif; }
.jdm-post-content p { margin:0 0 24px; }
.jdm-post-content h2,.jdm-post-content h3 { color:#403e3e; font-family:'Cormorant Garamond',Georgia,serif; line-height:1.1; margin:48px 0 16px; }
.jdm-post-content h2 { font-size:clamp(2rem,4vw,3.2rem); font-weight:400; }
.jdm-post-content h3 { font-size:clamp(1.5rem,3vw,2.2rem); font-weight:400; }
.jdm-post-content img { height:auto; max-width:100%; }
.jdm-post-content a { color:#66703c; text-decoration:underline; }
.jdm-post-content blockquote { margin:30px 0; padding:8px 0 8px 28px; border-left:2px solid #7a804a; color:#5c6138; font:italic 1.35rem/1.6 'Cormorant Garamond',Georgia,serif; }
.jdm-post-back { margin:54px 0 0; padding-top:28px; border-top:1px solid #d6cabd; }
.jdm-post-back a { color:#5c6138; font:600 11px/1 'Open Sans',sans-serif; letter-spacing:.1em; text-transform:uppercase; }
@media (max-width:768px){ .jdm-single-post{padding:112px 20px 64px}.jdm-post-content{font-size:16px}.jdm-post-image{margin-bottom:32px;} }

/* v1.6: Inicio debe mostrar contenido incluso sin JavaScript, sin imagen remota o con un optimizador de caché activo. */
body.jdm-plugin-canvas .jdm-home .fade-up {
  opacity: 1 !important;
  transform: translateY(0) !important;
}
body.jdm-plugin-canvas .jdm-home .hero-bg {
  background-color: #403e3e;
}
body.jdm-plugin-canvas .jdm-home .hero-tagline,
body.jdm-plugin-canvas .jdm-home .hero-sub {
  position: relative;
  z-index: 2;
}


/* v2.7: Session detail pages retain the global WordPress header/footer. */
body.jdm-page--sesion-presencial .jdm-global-header .jdm-nav,
body.jdm-page--sesion-online .jdm-global-header .jdm-nav {
  background:rgba(255,254,253,.98);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 1px 0 rgba(64,62,62,.09);
}
body.jdm-page--sesion-presencial .jdm-global-header .nav-link,
body.jdm-page--sesion-online .jdm-global-header .nav-link,
body.jdm-page--sesion-presencial .jdm-global-header .nav-logo,
body.jdm-page--sesion-online .jdm-global-header .nav-logo { color:#403e3e; }
body.jdm-page--sesion-presencial .jdm-global-header .nav-logo small,
body.jdm-page--sesion-online .jdm-global-header .nav-logo small { color:#7a804a; }
body.jdm-page--sesion-presencial .jdm-global-header .mobile-toggle,
body.jdm-page--sesion-online .jdm-global-header .mobile-toggle { border-color:rgba(64,62,62,.20); }
body.jdm-page--sesion-presencial .jdm-global-header .mobile-toggle span,
body.jdm-page--sesion-online .jdm-global-header .mobile-toggle span { background:#403e3e; }


/* Bloque de financiación Kit Digital */
.jdm-site-footer .jdm-kit-digital-banner{
  width:100%;
  max-width:1320px;
  margin:34px auto 0;
  padding:0 22px 22px;
}
.jdm-site-footer .jdm-kit-digital-banner img{
  display:block;
  width:100%;
  height:auto;
  max-width:1024px;
  margin:0 auto;
  border:0;
}
@media (max-width:640px){
  .jdm-site-footer .jdm-kit-digital-banner{
    margin-top:26px;
    padding:0 16px 18px;
  }
}

/* Solo dentro del editor: la maqueta original se previsualiza sin cambiar el frontal. */
.jdm-elementor-editor-status{
  position:relative;
  z-index:20;
  margin:0;
  padding:12px 16px;
  color:#fff;
  background:#052756;
  font:600 14px/1.45 Inter,Arial,sans-serif;
  text-align:center;
}
.jdm-elementor-editor-empty{
  padding:24px;
  border:1px solid #ccd5df;
  background:#fff;
  font:600 15px/1.5 Inter,Arial,sans-serif;
}


/* Editor nativo Elementor: estos estilos solo se aplican al documento de edición. */
.jdm-elementor-editor-preview .jdm-native-elementor-editor{max-width:980px;margin:32px auto;padding:18px;background:#fff;}
.jdm-elementor-editor-preview .jdm-editor-field-label .elementor-heading-title{margin:26px 0 8px;font-size:13px;letter-spacing:.04em;color:#69705a;}
.jdm-elementor-editor-preview .jdm-editor-field-value{padding:12px 14px;border:1px solid rgba(64,62,62,.16);border-radius:5px;}
.jdm-elementor-editor-preview .jdm-editor-field-image{padding:12px;border:1px solid rgba(64,62,62,.16);border-radius:5px;}


/* v3.8.1 · Las cabeceras de artículos conservan la parte alta de las fotos al adaptarse a un marco horizontal. */
.jdm-post-image img { object-position:center 18%; }
