/* =========================================================
   CreceMED · Componentes (móvil primero)
   Cada bloque de Elementor usa estas clases; los colores
   provienen siempre de los tokens, nunca de valores sueltos.
   ========================================================= */

/* --- Cabecera --- */
.cm-header {
  position: sticky; top: 0; z-index: 500;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--cm-border);
}
.cm-header__inner {
  max-width: var(--cm-maxw); margin-inline: auto;
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; padding: 14px 20px;
}
.cm-nav a { color: var(--cm-ink); font-weight: 600; text-decoration: none; }
.cm-nav a[aria-current="page"] { color: var(--cm-accent-strong); }

/* --- Hero --- */
.cm-hero {
  background:
    radial-gradient(120% 100% at 15% 0%, rgba(18, 163, 160, 0.10) 0%, transparent 60%),
    linear-gradient(180deg, var(--cm-surface) 0%, var(--cm-white) 100%);
  padding-block: clamp(3rem, 2rem + 6vw, 6.5rem);
}
.cm-hero__inner {
  max-width: var(--cm-maxw); margin-inline: auto; padding-inline: 20px;
  display: grid; gap: 32px;
}
.cm-hero p.cm-hero__lead {
  font-size: clamp(1.05rem, 1rem + 0.4vw, 1.3rem);
  color: var(--cm-text-muted);
}
.cm-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (min-width: 992px) {
  .cm-hero__inner { grid-template-columns: 1.05fr 0.95fr; align-items: center; gap: 56px; }
}

/* --- Barra de confianza --- */
.cm-trustbar {
  display: grid; gap: 14px; grid-template-columns: repeat(2, 1fr);
  max-width: var(--cm-maxw); margin: 0 auto; padding: 24px 20px;
  text-align: center;
}
.cm-trustbar strong { display: block; font-family: var(--cm-font-display); font-size: 1.6rem; color: var(--cm-ink); }
.cm-trustbar span { font-size: 0.85rem; color: var(--cm-text-muted); }
@media (min-width: 768px) { .cm-trustbar { grid-template-columns: repeat(4, 1fr); } }

/* --- Rejilla genérica de tarjetas: servicios, especialidades, beneficios --- */
.cm-grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .cm-grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) {
  .cm-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .cm-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* --- Contenido largo (artículos y guías) --- */
.cm-article { max-width: 760px; margin-inline: auto; padding-inline: 20px; }
.cm-article h2 { margin-top: 2.2em; scroll-margin-top: 90px; }
.cm-article h3 { margin-top: 1.6em; scroll-margin-top: 90px; }
.cm-article ul, .cm-article ol { padding-left: 1.25rem; }
.cm-article li + li { margin-top: 0.4em; }
.cm-article table { width: 100%; border-collapse: collapse; margin-block: 1.5rem; }
.cm-article th, .cm-article td { border: 1px solid var(--cm-border); padding: 12px; text-align: left; }
.cm-article th { background: var(--cm-surface); font-family: var(--cm-font-display); }

/* Índice de contenidos: mejora lectura y enlazado interno */
.cm-toc {
  background: var(--cm-surface); border-radius: var(--cm-radius);
  padding: 22px 24px; margin-block: 2rem;
}
.cm-toc h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: 0.1em; margin: 0 0 12px; }
.cm-toc ol { margin: 0; padding-left: 1.1rem; }
.cm-toc a { color: var(--cm-ink); }

/* --- Testimonios y casos de éxito --- */
.cm-quote {
  background: var(--cm-white); border-left: 4px solid var(--cm-accent);
  border-radius: 0 var(--cm-radius) var(--cm-radius) 0;
  padding: 24px; box-shadow: var(--cm-shadow-sm);
}
.cm-quote figcaption { margin-top: 14px; font-size: 0.9rem; color: var(--cm-text-muted); }
.cm-case__metric { font-family: var(--cm-font-display); font-size: 2.4rem; color: var(--cm-accent-strong); line-height: 1; }

/* --- CTA --- */
.cm-cta { border-radius: var(--cm-radius-lg); }
.cm-cta__inner {
  max-width: 820px; margin-inline: auto; padding: clamp(2rem, 1.5rem + 3vw, 3.5rem) 24px;
  text-align: center; display: grid; gap: 16px; justify-items: center;
}
.cm-cta__inner p { color: #cdd9e4; }

/* --- Formularios --- */
.cm-form label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--cm-ink); }
.cm-form input, .cm-form select, .cm-form textarea {
  width: 100%; padding: 14px 16px; font: inherit;
  border: 1px solid var(--cm-border); border-radius: 12px; background: var(--cm-white);
}
.cm-form .cm-field + .cm-field { margin-top: 16px; }
.cm-form small { color: var(--cm-text-muted); }
.cm-form [aria-invalid="true"] { border-color: #b3261e; }
.cm-form__error { color: #b3261e; font-size: 0.875rem; }

/* --- Pie --- */
.cm-footer { background: var(--cm-ink); color: #c9d6e2; padding-block: 56px 28px; }
.cm-footer a { color: #e8eef4; text-decoration: none; }
.cm-footer a:hover { color: var(--cm-white); text-decoration: underline; }
.cm-footer__grid {
  max-width: var(--cm-maxw); margin-inline: auto; padding-inline: 20px;
  display: grid; gap: 32px; grid-template-columns: 1fr;
}
@media (min-width: 768px) { .cm-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.cm-footer__bottom {
  max-width: var(--cm-maxw); margin: 32px auto 0; padding: 20px 20px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.85rem;
}

/* --- Botón flotante de WhatsApp (conversión móvil) --- */
.cm-whatsapp {
  position: fixed; right: 16px; bottom: 16px; z-index: 600;
  width: 56px; height: 56px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--cm-accent); color: var(--cm-white);
  box-shadow: var(--cm-shadow);
}

/* Imágenes dentro del artículo: medida legible, no a sangre completa */
.cm-article .cm-media,
.cm-article figure,
.cm-article img { max-width: 760px; margin-inline: auto; }

/* =========================================================
   Cabecera, pie, artículo y listados nativos del tema
   (sustituyen al Theme Builder de Elementor Pro)
   ========================================================= */

.cm-header__brand img,
.cm-header__brand .custom-logo { max-height: 48px; width: auto; height: auto; display: block; }
.cm-brand-text {
  font-family: var(--cm-font-display); font-weight: 700; font-size: 1.25rem;
  color: var(--cm-ink); text-decoration: none; letter-spacing: -0.01em;
}

.cm-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cm-nav__list a { display: block; padding: 10px 4px; }
.cm-nav__list .sub-menu { list-style: none; margin: 0; padding-left: 14px; }
.cm-nav__cta { margin-top: 10px; align-self: flex-start; }

.cm-nav-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 1px solid var(--cm-border);
  border-radius: 12px; background: var(--cm-white); cursor: pointer;
}
.cm-nav-toggle__bars { display: grid; gap: 4px; }
.cm-nav-toggle__bars span { display: block; width: 18px; height: 2px; background: var(--cm-ink); border-radius: 2px; }
.cm-nav-toggle:focus-visible, .cm-nav a:focus-visible { outline: 3px solid var(--cm-accent-strong); outline-offset: 2px; }

.cm-nav[hidden] { display: none; }
body.cm-nav-open { overflow: hidden; }
.cm-header .cm-nav {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--cm-white); border-bottom: 1px solid var(--cm-border);
  padding: 16px 20px 24px; box-shadow: var(--cm-shadow-md, 0 20px 40px rgba(11, 37, 64, 0.08));
}
.cm-header__inner { position: relative; }

@media (min-width: 992px) {
  .cm-nav-toggle { display: none; }
  .cm-header .cm-nav {
    position: static; display: flex !important; align-items: center; gap: 26px;
    padding: 0; border: 0; box-shadow: none; background: transparent;
  }
  .cm-header .cm-nav[hidden] { display: flex !important; }
  .cm-nav__list { flex-direction: row; align-items: center; gap: 26px; }
  .cm-nav__list .sub-menu { display: none; }
  .cm-nav__cta { margin-top: 0; }
}

/* --- Contenedor principal --- */
.cm-main { display: block; }
.cm-main--page > .cm-article,
.cm-main--single > .cm-article { padding-inline: 20px; }
.cm-main--archive { max-width: var(--cm-maxw); margin-inline: auto; padding: clamp(2rem, 1rem + 4vw, 4rem) 20px; }

/* --- Cabecera de artículo --- */
.cm-article__header h1 { margin-bottom: 8px; }
.cm-article__meta { color: var(--cm-text-muted); font-size: 0.92rem; display: flex; flex-wrap: wrap; gap: 8px; }
.cm-article__cover { width: 100%; height: auto; border-radius: 18px; margin-block: 24px; }
.cm-reviewed {
  border-left: 3px solid var(--cm-accent-strong); background: var(--cm-surface);
  padding: 12px 16px; border-radius: 0 12px 12px 0; margin-block: 20px; font-size: 0.95rem;
}

/* --- Navegación entre artículos --- */
.cm-postnav {
  max-width: var(--cm-maxw); margin: 40px auto; padding-inline: 20px;
  display: grid; gap: 14px; grid-template-columns: 1fr;
}
.cm-postnav__item {
  border: 1px solid var(--cm-border); border-radius: 16px; padding: 16px 18px;
  text-decoration: none; color: var(--cm-ink); background: var(--cm-white);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.cm-postnav__item:hover { border-color: var(--cm-accent-strong); transform: translateY(-2px); }
.cm-postnav__item span { display: block; font-size: 0.8rem; color: var(--cm-text-muted); text-transform: uppercase; letter-spacing: 0.06em; }
.cm-postnav__item strong { display: block; margin-top: 4px; font-weight: 600; }
.cm-postnav__item--next { text-align: right; }
@media (min-width: 768px) { .cm-postnav { grid-template-columns: 1fr 1fr; } }

/* --- Listados --- */
.cm-archive__header { margin-bottom: 32px; }
.cm-archive__header h1 { margin-bottom: 8px; }
.cm-archive__desc { color: var(--cm-text-muted); max-width: 65ch; }
.cm-card {
  border: 1px solid var(--cm-border); border-radius: 18px; overflow: hidden;
  background: var(--cm-white); transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cm-card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(11, 37, 64, 0.10); }
.cm-card__link { display: block; color: inherit; text-decoration: none; height: 100%; }
.cm-card__media img { width: 100%; height: auto; display: block; aspect-ratio: 16 / 10; object-fit: cover; }
.cm-card__body { padding: 18px 20px 22px; }
.cm-card__title { font-size: 1.12rem; line-height: 1.35; margin: 0 0 8px; }
.cm-card__excerpt { color: var(--cm-text-muted); font-size: 0.95rem; margin: 0 0 12px; }
.cm-card__meta { font-size: 0.82rem; color: var(--cm-text-muted); margin: 0; }
.cm-card__link:focus-visible { outline: 3px solid var(--cm-accent-strong); outline-offset: 3px; }

.cm-empty { color: var(--cm-text-muted); }

/* --- Paginación --- */
.pagination, .navigation.pagination { margin-top: 36px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px; padding: 0 12px;
  border: 1px solid var(--cm-border); border-radius: 12px;
  text-decoration: none; color: var(--cm-ink);
}
.pagination .page-numbers.current { background: var(--cm-ink); color: var(--cm-white); border-color: var(--cm-ink); }
.pagination .page-numbers:focus-visible { outline: 3px solid var(--cm-accent-strong); outline-offset: 2px; }

/* --- Búsqueda --- */
.cm-search { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.cm-search input[type="search"] {
  flex: 1 1 220px; min-height: 44px; padding: 0 14px;
  border: 1px solid var(--cm-border); border-radius: 12px; background: var(--cm-white);
}

/* --- Pie --- */
.cm-footer__grid {
  max-width: var(--cm-maxw); margin-inline: auto; padding: clamp(2.5rem, 2rem + 3vw, 4rem) 20px 1.5rem;
  display: grid; gap: 28px; grid-template-columns: 1fr;
}
@media (min-width: 720px) { .cm-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.cm-footer__brand { font-family: var(--cm-font-display); font-size: 1.15rem; font-weight: 700; margin: 0 0 6px; }
.cm-footer__desc { opacity: 0.8; margin: 0; font-size: 0.94rem; }
.cm-footer__title { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.7; margin: 0 0 10px; }
.cm-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 0.95rem; }
.cm-footer__notice {
  max-width: var(--cm-maxw); margin-inline: auto; padding: 0 20px 20px;
  font-size: 0.82rem; opacity: 0.72; line-height: 1.6;
}

/* =========================================================
   DISEÑO PREMIUM PARA PÁGINAS ELEMENTOR (v2)
   ========================================================= */

/* Hero -------------------------------------------------- */
.cm-hero--gradient {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(900px 420px at 12% -10%, rgba(18, 163, 160, 0.16), transparent 60%),
    radial-gradient(760px 380px at 92% 0%, rgba(111, 159, 47, 0.18), transparent 62%),
    linear-gradient(180deg, #f7fbf8 0%, #ffffff 100%);
}
.cm-hero--gradient::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: linear-gradient(rgba(11, 37, 64, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 37, 64, 0.045) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(70% 60% at 50% 0%, #000 0%, transparent 75%);
}
.cm-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--cm-border);
  background: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(6px);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cm-accent-strong);
}
.cm-eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--cm-teal);
}
.cm-eyebrow--line {
  border: 0;
  background: none;
  padding: 0;
  backdrop-filter: none;
  color: var(--cm-text-muted);
}
.cm-hero .cm-h1,
.cm-hero .cm-h1 .elementor-heading-title {
  font-size: clamp(2.3rem, 1.4rem + 3.6vw, 4rem);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -0.03em;
  background: linear-gradient(120deg, var(--cm-ink) 0%, var(--cm-ink-soft) 45%, var(--cm-accent-strong) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.cm-hero p.cm-hero__lead,
.cm-hero .cm-hero__lead p {
  font-size: clamp(1.05rem, 1rem + 0.4vw, 1.28rem);
  color: var(--cm-text-muted);
  max-width: 56ch;
}
.cm-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

/* Botones ----------------------------------------------- */
.cm-btn .elementor-button,
a.cm-btn {
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: -0.01em;
  padding: 15px 28px;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.cm-btn--primary .elementor-button,
a.cm-btn--primary {
  background: linear-gradient(135deg, var(--cm-accent) 0%, var(--cm-accent-strong) 100%);
  color: #fff;
  box-shadow: 0 14px 30px -14px rgba(91, 134, 36, 0.85);
}
.cm-btn--primary .elementor-button:hover,
a.cm-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 20px 38px -16px rgba(91, 134, 36, 0.9); }
.cm-btn--ghost .elementor-button,
a.cm-btn--ghost {
  background: rgba(255, 255, 255, 0.9);
  color: var(--cm-ink);
  border: 1px solid var(--cm-border);
  box-shadow: var(--cm-shadow-sm);
}
.cm-btn--ghost .elementor-button:hover { transform: translateY(-2px); border-color: var(--cm-ink); }
.cm-btn--ghost-light .elementor-button,
a.cm-btn--ghost-light {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.45);
}
.cm-btn--ghost-light .elementor-button:hover { background: rgba(255, 255, 255, 0.12); }

/* Franja de confianza ------------------------------------ */
.cm-strip { margin-top: 0; position: relative; z-index: 2; }
.cm-strip .cm-pill {
  flex: 1 1 260px;
  padding: 22px 24px;
  border-radius: var(--cm-radius);
  border: 1px solid var(--cm-border);
  background: #fff;
  box-shadow: var(--cm-shadow-sm);
}
.cm-pill__title { font-family: var(--cm-font-display); font-weight: 700; font-size: 1.02rem; color: var(--cm-ink); }
.cm-pill__text p { margin: 0; font-size: 0.94rem; color: var(--cm-text-muted); }

/* Secciones / paneles ------------------------------------ */
.cm-panel { padding-block: clamp(3rem, 1.5rem + 5vw, 5.5rem); }
.cm-panel h2,
.cm-panel h2 .elementor-heading-title {
  letter-spacing: -0.025em;
  max-width: 22ch;
}
.cm-section--surface {
  background: linear-gradient(180deg, var(--cm-surface) 0%, #fff 100%);
  border-block: 1px solid var(--cm-border);
}
.cm-prose p { color: var(--cm-text); }
.cm-prose strong { color: var(--cm-ink); }

/* Tarjetas de lista -------------------------------------- */
.cm-grid { display: flex; flex-wrap: wrap; }
.cm-grid .cm-tile {
  flex: 1 1 280px;
  padding: 26px 24px 28px;
  border-radius: var(--cm-radius);
  border: 1px solid var(--cm-border);
  background: #fff;
  box-shadow: var(--cm-shadow-sm);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.cm-grid .cm-tile:hover {
  transform: translateY(-4px);
  border-color: color-mix(in oklab, var(--cm-accent) 45%, var(--cm-border));
  box-shadow: 0 22px 44px -26px rgba(11, 37, 64, 0.45);
}
.cm-tile__num {
  font-family: var(--cm-font-display);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--cm-accent-strong);
}
.cm-tile__title,
.cm-tile__title .elementor-heading-title { font-size: 1.1rem; line-height: 1.3; }
.cm-tile__text p { margin: 0; font-size: 0.97rem; color: var(--cm-text-muted); }

/* Media --------------------------------------------------- */
.cm-media--frame img {
  border-radius: var(--cm-radius-lg);
  border: 1px solid var(--cm-border);
  box-shadow: 0 34px 70px -38px rgba(11, 37, 64, 0.6);
  background: #fff;
}

/* FAQ ----------------------------------------------------- */
.cm-faq .elementor-accordion-item {
  border: 1px solid var(--cm-border) !important;
  border-radius: var(--cm-radius);
  margin-bottom: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--cm-shadow-sm);
}
.cm-faq .elementor-tab-title { font-family: var(--cm-font-display); font-weight: 700; padding: 18px 22px; }
.cm-faq .elementor-tab-content { padding: 0 22px 20px; color: var(--cm-text-muted); }

/* CTA final ------------------------------------------------ */
.cm-cta--gradient {
  border-radius: var(--cm-radius-lg);
  background:
    radial-gradient(600px 240px at 85% 0%, rgba(18, 163, 160, 0.45), transparent 60%),
    linear-gradient(135deg, var(--cm-ink) 0%, var(--cm-ink-soft) 100%);
  color: #fff;
  padding: clamp(2.5rem, 1.5rem + 4vw, 4.5rem) clamp(1.5rem, 1rem + 3vw, 4rem);
}
.cm-cta--gradient h2,
.cm-cta--gradient h2 .elementor-heading-title { color: #fff; }
.cm-cta--gradient .cm-cta__text p { color: #d7e3ee; font-size: 1.08rem; }
.cm-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.cm-cta__note p { margin: 0; font-size: 0.88rem; color: rgba(255, 255, 255, 0.7); }

@media (prefers-reduced-motion: reduce) {
  .cm-grid .cm-tile, .cm-btn .elementor-button { transition: none; }
}

/* Ajustes finos v2 */
.cm-btn, .cm-btn .elementor-button, a.cm-btn { text-decoration: none; }
.cm-grid { align-items: flex-start; }
.cm-article.cm-panel:has(.cm-grid),
.cm-article.cm-panel:has(.cm-media--frame) { max-width: var(--cm-maxw); }
.cm-panel > .elementor-widget-heading + .elementor-widget-heading { margin-top: -10px; }
.cm-strip + .cm-panel { padding-top: clamp(2.5rem, 1.5rem + 3vw, 4rem); }
.cm-cta--gradient .cm-cta__actions .elementor-widget-button { width: auto; }


/* ============ v4: capa limpia y editorial ============ */

:root{
  --cm-ink:#0b2540;
  --cm-text:#33424f;
  --cm-muted:#5d6f7d;
  --cm-accent:#5b8624;
  --cm-accent-strong:#4a6d1d;
  --cm-blue:#12557f;
  --cm-border:#e3e8ed;
  --cm-surface:#f7f9fa;
  --cm-maxw:1080px;
  --cm-read:68ch;
  --cm-font:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --cm-display:"Sora",var(--cm-font);
  --cm-space:clamp(3rem,1.8rem + 4.5vw,5.5rem);
}

.elementor body,body{font-family:var(--cm-font);color:var(--cm-text);background:#fff;line-height:1.7;-webkit-font-smoothing:antialiased;}
.elementor h1,.elementor h2,.elementor h3,.elementor h4{font-family:var(--cm-display);color:var(--cm-ink)!important;line-height:1.2;letter-spacing:-.015em;text-wrap:balance;}
.elementor h1{font-size:clamp(2.1rem,1.5rem + 2.6vw,3.25rem);font-weight:700;margin:0 0 .5em;}
.elementor h2{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.1rem);font-weight:700;margin:0 0 .45em;}
.elementor h3{font-size:clamp(1.15rem,1.05rem + .6vw,1.4rem);font-weight:600;margin:0 0 .4em;}
.elementor p,.elementor li{font-size:clamp(1rem,.97rem + .2vw,1.09rem);color:var(--cm-text);}
.cm-prose p,.cm-prose li,.cm-hero__lead{max-width:var(--cm-read);}
.cm-prose p+p{margin-top:1em;}
.cm-prose a{color:var(--cm-accent-strong);text-underline-offset:3px;}
.elementor img{max-width:100%;height:auto;}

:where(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--cm-blue);outline-offset:2px;border-radius:6px;}

/* Ritmo de secciones */
.elementor .e-con{--container-max-width:var(--cm-maxw);}
.cm-section,.cm-panel,.cm-article,.cm-hero,.cm-cta,.cm-faq{padding-block:var(--cm-space);}
.cm-section--surface{background:var(--cm-surface)!important;border-block:1px solid var(--cm-border);}

/* Hero sobrio */
.cm-hero,.cm-hero--gradient{background:#fff!important;background-image:none!important;padding-block:clamp(2.5rem,1.5rem + 4vw,4.5rem) var(--cm-space);}
.cm-h1,.cm-hero h1{max-width:20ch;}
.cm-hero__lead{font-size:clamp(1.05rem,1rem + .35vw,1.2rem);color:var(--cm-muted);}
.cm-hero__actions{gap:12px;margin-top:1.6rem;}

/* Eyebrow discreta */
.cm-eyebrow,.cm-eyebrow--line{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--cm-font);font-size:.78rem!important;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--cm-accent-strong)!important;background:none!important;border:0!important;box-shadow:none!important;padding:0!important;margin-bottom:.6rem;}
.cm-eyebrow::before{content:"";width:22px;height:2px;background:var(--cm-accent);display:inline-block;}

/* Botones sólidos */
.cm-btn .elementor-button,.elementor-button.cm-btn{font-family:var(--cm-font);font-weight:700;font-size:.98rem;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 1.35rem;border-radius:8px!important;text-decoration:none!important;box-shadow:none!important;background-image:none!important;transition:background-color .15s ease,color .15s ease,border-color .15s ease;}
.cm-btn--primary .elementor-button{background:var(--cm-accent-strong)!important;color:#fff!important;border:1px solid var(--cm-accent-strong)!important;}
.cm-btn--primary .elementor-button:hover{background:#3d5c18!important;border-color:#3d5c18!important;}
.cm-btn--ghost .elementor-button,.cm-btn--ghost-light .elementor-button{background:#fff!important;color:var(--cm-ink)!important;border:1px solid var(--cm-border)!important;}
.cm-btn--ghost .elementor-button:hover,.cm-btn--ghost-light .elementor-button:hover{border-color:var(--cm-ink)!important;}

/* Franja de confianza: una línea, sin ruido */
.cm-strip{background:#fff!important;border-block:1px solid var(--cm-border);padding-block:1.4rem!important;}
.cm-pill{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;}
.cm-pill__title{font-size:.95rem!important;font-weight:700;color:var(--cm-ink)!important;margin-bottom:.15rem;}
.cm-pill__text{font-size:.9rem!important;color:var(--cm-muted)!important;}

/* Tarjetas planas */
.cm-grid{gap:20px;}
.cm-tile{background:#fff!important;border:1px solid var(--cm-border)!important;border-radius:10px!important;box-shadow:none!important;padding:1.25rem 1.35rem!important;}
.cm-tile__num{font-family:var(--cm-display);font-size:.85rem!important;font-weight:700;color:var(--cm-accent-strong)!important;background:none!important;border:0!important;width:auto!important;height:auto!important;border-radius:0!important;margin-bottom:.35rem;}
.cm-tile__title{font-size:1.02rem!important;}
.cm-tile__text p{font-size:.98rem;color:var(--cm-text);}

/* Paneles y artículo */
.cm-panel{background:#fff!important;border:0!important;box-shadow:none!important;border-radius:0!important;}
.cm-article{max-width:var(--cm-maxw);margin-inline:auto;}
.cm-media,.cm-media--frame{background:none!important;box-shadow:none!important;padding:0!important;border-radius:0!important;}
.cm-media img,.cm-media--frame img{border:1px solid var(--cm-border);border-radius:10px;max-width:760px;width:100%;}

/* Aviso / cita */
.cm-note,blockquote{border-left:3px solid var(--cm-accent);background:var(--cm-surface);padding:1rem 1.2rem;border-radius:0 8px 8px 0;color:var(--cm-text);}

/* FAQ */
.cm-faq .elementor-accordion-item{border:0!important;border-bottom:1px solid var(--cm-border)!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;}
.cm-faq .elementor-tab-title{font-family:var(--cm-display);font-size:1.02rem!important;font-weight:600;color:var(--cm-ink)!important;background:transparent!important;padding:1.05rem 0!important;}
.cm-faq .elementor-tab-content{border:0!important;background:transparent!important;padding:0 0 1.1rem!important;color:var(--cm-text);}

/* CTA final en claro */
.cm-cta,.cm-cta--gradient,.cm-section--ink{background:var(--cm-surface)!important;background-image:none!important;border:1px solid var(--cm-border);border-radius:12px;padding:clamp(1.8rem,1.2rem + 2vw,3rem)!important;}
.cm-cta h2,.cm-cta h3,.cm-section--ink h2,.cm-section--ink h3{color:var(--cm-ink)!important;}
.cm-cta__text,.cm-cta__text p{color:var(--cm-muted)!important;max-width:60ch;}
.cm-cta__actions{gap:12px;margin-top:1.3rem;}
.cm-cta__note,.cm-cta__note p{font-size:.85rem!important;color:var(--cm-muted)!important;}

@media (max-width:767px){
  .cm-hero__actions,.cm-cta__actions{flex-direction:column;align-items:stretch;}
  .cm-btn .elementor-button{width:100%;}
}

/* Listas de apoyo */
.cm-list{list-style:none;margin:.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.5rem 1.5rem;max-width:100%;}
.cm-list li{position:relative;padding-left:1.4rem;max-width:44ch;}
.cm-list li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--cm-accent);}
.cm-list-wrap{margin:.2rem 0 1.7rem;}
