/* ============================================================
   Puente Elementor → diseño Libertad
   Adapta el HTML que genera Elementor (contenedores .e-con y los
   wrappers de cada widget) a los estilos de libertad-global.css,
   para que los WIDGETS NATIVOS se vean como el diseño original.
   Se carga después de libertad-global.css.
   ============================================================ */

/* --- 1. Reasertar el layout del diseño en los contenedores Elementor ---
   (Elementor fuerza display:flex en .e-con; el diseño usa grid/flex propios.
    Subimos especificidad con .elementor-element para ganar sin !important.) */
.elementor-element.e-con.about-grid   { display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(48px,7vw,110px); align-items:center; }
.elementor-element.e-con.services-head{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; margin-bottom:90px; }
.elementor-element.e-con.featured-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(48px,7vw,110px); align-items:center; }
.elementor-element.e-con.testi-inner  { display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(48px,7vw,110px); align-items:center; }
.elementor-element.e-con.svc-grid     { display:grid; grid-template-columns:repeat(4,1fr); }
.elementor-element.e-con.team-grid    { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; }
.elementor-element.e-con.results-head,
.elementor-element.e-con.team-head    { display:block; text-align:center; }
.elementor-element.e-con.final-cta-inner { display:flex; align-items:center; justify-content:center; min-height:720px; }
.elementor-element.e-con.about-images { position:relative; min-height:640px; }
.elementor-element.e-con.featured-content,
.elementor-element.e-con.about-content,
.elementor-element.e-con.testi-left   { display:block; }

@media (max-width:1024px){
  .elementor-element.e-con.svc-grid { grid-template-columns:repeat(2,1fr); }
  .elementor-element.e-con.team-grid{ grid-template-columns:1fr; }
}
@media (max-width:900px){
  .elementor-element.e-con.services-head{ grid-template-columns:1fr; gap:32px; margin-bottom:56px; }
}
@media (max-width:768px){
  .elementor-element.e-con.about-grid,
  .elementor-element.e-con.featured-grid,
  .elementor-element.e-con.testi-inner { grid-template-columns:1fr; }
  .elementor-element.e-con.svc-grid    { grid-template-columns:1fr; }
}

/* --- 2. Quitar relleno/gap por defecto de Elementor donde el diseño manda --- */
/* El .container conserva su gutter horizontal del diseño (padding:0 var(--pad-x));
   antes lo poníamos a 0 y el contenido tocaba los bordes en móvil/tablet. */
.elementor-element.e-con.container { padding-left:var(--pad-x); padding-right:var(--pad-x); padding-top:0; padding-bottom:0; }
.elementor-element.e-con.about-content,
.elementor-element.e-con.featured-content,
.elementor-element.e-con.testi-left,
.elementor-element.e-con.final-cta-content,
.elementor-element.e-con.results-head,
.elementor-element.e-con.team-head,
.elementor-element.e-con.services-head,
.elementor-element.e-con.featured-cta,
.elementor-element.e-con.final-cta-ctas { padding:0; }

.elementor-element.e-con.about-content,
.elementor-element.e-con.featured-content,
.elementor-element.e-con.testi-left,
.elementor-element.e-con.final-cta-content { --gap:0px; gap:0; }

/* La tarjeta de servicio conserva su padding del diseño */
.elementor-element.e-con.svc { padding:48px 32px 56px; }

/* --- 3. Widgets: sin margen por defecto; heredan la tipografía del diseño --- */
.elementor-element.e-con .elementor-widget { margin-block-end:0; }
/* El texto del Encabezado hereda tamaño/peso/etc. del wrapper (que lleva la clase
   del diseño), pero la FAMILIA la fijamos explícitamente: serif (Cormorant) en los
   títulos y sans (DM Sans) en eyebrows/etiquetas. (Antes "font:inherit" forzaba la
   fuente del body = sans en todos los títulos → tipografía incorrecta.) */
/* Familia con !important para ganar a la tipografía global de Elementor (Roboto). */
.elementor-element.e-con .elementor-widget-heading .elementor-heading-title {
  font-family:var(--serif) !important;
  font-size:inherit; font-weight:inherit; font-style:inherit;
  letter-spacing:inherit; line-height:inherit; color:inherit; margin:0;
}
.elementor-element.e-con .elementor-widget-heading.eyebrow .elementor-heading-title,
.elementor-element.e-con .elementor-widget-heading.hero-side .elementor-heading-title,
.elementor-element.e-con .elementor-widget-heading.hero-scroll .elementor-heading-title,
.elementor-element.e-con .elementor-widget-heading.svc-num .elementor-heading-title,
.elementor-element.e-con .elementor-widget-heading.about-tag .elementor-heading-title,
.elementor-element.e-con .elementor-widget-heading.doc-role .elementor-heading-title,
.elementor-element.e-con .elementor-widget-heading.result-tag .elementor-heading-title,
.elementor-element.e-con .elementor-widget-heading.result-time .elementor-heading-title { font-family:var(--sans) !important; }
.elementor-element.e-con .elementor-widget-text-editor { color:inherit; }
/* Solo reseteamos el margen INFERIOR del <p> (evita dobles espacios). El margen
   SUPERIOR y el HORIZONTAL los gestiona el diseño: así los párrafos de columnas
   van a la izquierda (about-lead) y las cabeceras centradas siguen centradas
   (results-head/team-head con margin:auto). Antes forzar margin:0/auto rompía esto. */
.elementor-element.e-con .elementor-widget-text-editor p { margin-bottom:0; }

/* Color dorado de los <em> de los títulos (el diseño lo hacía con inline style) */
.elementor-widget-heading.h-section em,
.elementor-widget-heading.h-display em,
.final-cta-content .elementor-widget-heading em { font-style:italic; font-weight:300; color:var(--gold); }

/* Cabeceras centradas: centrar el eyebrow y el texto */
.results-head .elementor-widget,
.team-head .elementor-widget,
.final-cta-content .elementor-widget { text-align:center; }
.results-head .eyebrow,
.team-head .eyebrow,
.final-cta-content .eyebrow { justify-content:center; }

/* --- 4. Botones nativos: el <a.elementor-button> adopta el estilo .btn ---
   (con !important para ganar al color de acento verde por defecto de Elementor) */

/* Doble borde/padding: el WRAPPER del widget Botón lleva la clase .btn (de
   css_classes), así que el diseño .btn le pintaría un 2º borde + relleno. Lo
   neutralizamos: todo el estilo del botón va SOLO en el <a> interno. */
.elementor-widget-button.btn,
.elementor-widget-button.solid,
.elementor-widget-button.cream {
  border:0 !important; padding:0 !important; background:transparent !important;
  overflow:visible !important; box-shadow:none !important;
}
.elementor-widget-button.btn::after { content:none !important; display:none !important; }
.elementor-widget-button .elementor-button-content-wrapper { padding:0 !important; border:0 !important; }

.elementor-widget-button .elementor-button {
  display:inline-flex !important; align-items:center; justify-content:center; gap:12px;
  font-family:var(--sans) !important; font-size:11px !important; letter-spacing:.28em !important; text-transform:uppercase;
  font-weight:500 !important; padding:18px 32px !important; border:1px solid var(--gold) !important; background:transparent !important;
  color:var(--gold) !important; border-radius:0 !important; position:relative; overflow:hidden;
  transition:all .5s cubic-bezier(.2,.7,.2,1); fill:currentColor;
}
.elementor-widget-button .elementor-button::after {
  content:""; position:absolute; inset:0; background:var(--gold); transform:translateY(101%);
  transition:transform .55s cubic-bezier(.7,0,.2,1); z-index:0;
}
.elementor-widget-button .elementor-button:hover::after { transform:translateY(0); }
.elementor-widget-button .elementor-button > * { position:relative; z-index:1; transition:color .35s; }
.elementor-widget-button .elementor-button:hover > * { color:var(--ink) !important; }
.elementor-widget-button.solid .elementor-button { background:var(--gold) !important; color:var(--ink) !important; }
.elementor-widget-button.solid .elementor-button::after { background:transparent; border:1px solid var(--gold); }
.elementor-widget-button.solid .elementor-button:hover { background:transparent !important; color:var(--gold) !important; }
.elementor-widget-button.solid .elementor-button:hover > * { color:var(--gold) !important; }
.elementor-widget-button.cream .elementor-button { border-color:var(--ink) !important; color:var(--ink) !important; }
.elementor-widget-button.cream .elementor-button::after { background:var(--ink); }
.elementor-widget-button.cream .elementor-button:hover > * { color:var(--cream) !important; }

/* --- 5. Imágenes de fondo (contenedores) conservan el alto del diseño --- */
.elementor-element.e-con.svc-img      { min-height:180px; }
.elementor-element.e-con.featured-img { min-height:680px; }
.elementor-element.e-con.doc-img      { aspect-ratio:3/4; }

/* --- 6. EDITOR de Elementor: el JS de reveal no corre allí, así que el
   contenido .reveal quedaría invisible (opacity:0). Lo mostramos siempre. --- */
.elementor-editor-active .reveal { opacity:1 !important; transform:none !important; }
.elementor-editor-active .img-reveal::after { transform:scaleY(0) !important; }
.elementor-editor-active .img-reveal img,
.elementor-editor-active .img-reveal .img-fake { transform:none !important; }
.elementor-editor-active .eyebrow::before { transform:scaleX(1) !important; }
/* Stats del hero editables en el EDITOR: el CONTENEDOR no intercepta el clic
   (pointer-events:none) y los CONTADORES sí lo reciben (auto) → al hacer clic en
   "15+" se selecciona el widget Contador (no el contenedor). */
.elementor-editor-active .hero-meta { pointer-events:none !important; }
.elementor-editor-active .hero-meta .elementor-widget-counter,
.elementor-editor-active .hero-meta .elementor-widget-counter * { pointer-events:auto !important; }

/* ============================================================
   9. HEADER y FOOTER (plantillas de Theme Builder con widgets nativos)
   ============================================================ */
/* Logo (widget Imagen) con la altura del diseño. max-width:none + width:auto
   evita que el contenedor flex lo aplaste (salía a 30px). */
.nav .elementor-widget-image,
.nav-inner .elementor-widget-image { flex:0 0 auto; width:auto; }
/* Ancho EXPLÍCITO: el logo es un SVG 1000×500 (2:1). Con width:auto colapsaba a
   ~48px en el contenedor flex de Elementor (el SVG llegaba como complete:false y no
   se aplicaba su ratio intrínseco). object-fit:contain mantiene la proporción. */
.nav .elementor-widget-image img,
.nav-inner .elementor-widget-image img { height:100px !important; width:200px !important; max-width:none !important; object-fit:contain; display:block; }
.footer-brand .elementor-widget-image img { height:110px !important; width:220px !important; max-width:none !important; object-fit:contain; display:block; }
.nav .elementor-widget-image .elementor-widget-container,
.footer-brand .elementor-widget-image .elementor-widget-container { line-height:0; }
@media (max-width:700px){
  .nav .elementor-widget-image img{ height:70px !important; width:140px !important; }
  .footer-brand .elementor-widget-image img{ height:56px !important; width:112px !important; }
}

/* Franja blanca sobre el header: la plantilla del Theme Builder envuelve el menú
   móvil (overlay position:fixed) en un contenedor de Elementor que quedaba en el
   flujo con 10px+10px de padding → se veía ~20px del fondo del body por encima del
   header. Como su contenido es fixed, anulamos su alto (no afecta al .nav). */
.elementor .e-con:has(.mobile-menu),
.elementor .e-con-full:has(.mobile-menu) {
  padding-top:0 !important; padding-bottom:0 !important; min-height:0 !important;
}

/* nav-inner en fila space-between; sus 3 bloques a width:auto (Elementor los pone
   a 100% por defecto, lo que aplastaba el menú y solapaba el grupo derecho). */
/* El nav-inner mantiene su espaciado (sin el pad-x grande del .container, que no
   dejaría sitio al menú en desktop); en móvil añade un pequeño gutter. */
.elementor-element.e-con.nav-inner { display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:32px; padding-left:0; padding-right:0; }
@media (max-width:1024px){ .elementor-element.e-con.nav-inner { padding-left:24px; padding-right:24px; } }
.elementor-element.e-con.nav-right { display:flex; flex-direction:row; align-items:center; gap:24px; width:auto; flex:0 0 auto; }
.nav-inner .nav-links { width:auto; flex:0 1 auto; }

/* Transición suave + estado .scrolled (sticky). Elementor deja el contenedor
   transparente, así que aquí reproducimos el oscurecido del diseño con prioridad
   alta. libertad.js añade la clase .scrolled al hacer scroll (>80px). */
.elementor-element.e-con.nav { transition:background-color .4s ease, padding .4s ease; }
.elementor-element.e-con.nav.scrolled,
.nav.scrolled {
  background-color:rgba(45,42,38,0.92) !important;
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line-dark);
  padding-top:16px !important; padding-bottom:16px !important;
}

/* Widget "Menú de navegación" con el aspecto de .nav-links del diseño */
.nav-links .elementor-nav-menu,
.nav-links .elementor-nav-menu--main { display:flex; gap:38px; align-items:center; flex-wrap:nowrap; width:auto; }
.nav-links .elementor-nav-menu--main .elementor-item {
  font-family:var(--sans); font-size:11px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--cream) !important; padding:0; line-height:1; background:transparent; fill:var(--cream);
  position:relative;
}
/* Hover/activo: dorado (con !important para ganar al color del tema global de Elementor). */
.nav-links .elementor-item:hover,
.nav-links .elementor-item:focus,
.nav-links .elementor-item.elementor-item-active { color:var(--gold) !important; background:transparent !important; }
/* Subrayado dorado que crece desde el centro (como .nav-links a::after del diseño).
   El menú de Elementor ya pinta un "pointer" ::after pero en verde (--e-global-color-accent)
   con especificidad (0,4,1); usamos !important en cada propiedad para imponer el del diseño. */
.nav-links .elementor-nav-menu--main .elementor-item::after {
  content:"" !important; position:absolute !important; left:50% !important; bottom:-6px !important;
  width:0 !important; height:1px !important; background-color:var(--gold) !important;
  transition:width .3s ease, left .3s ease !important; opacity:1 !important;
}
.nav-links .elementor-nav-menu--main .elementor-item:hover::after,
.nav-links .elementor-nav-menu--main .elementor-item.elementor-item-active::after { width:100% !important; left:0 !important; }
.nav-links .elementor-nav-menu--main .elementor-item::before { display:none !important; }
/* Usamos el menú móvil propio del diseño (.mobile-menu): ocultamos el toggle/dropdown nativos */
.nav-links .elementor-menu-toggle,
.nav-links .elementor-nav-menu--dropdown { display:none !important; }
@media (max-width:1024px){ .nav .nav-links { display:none !important; } }

/* Burger y botón de cierre del menú móvil: son <button> en HTML; el kit de Elementor
   les aplica estilos de botón (fondo/borde de acento = el "hover rosa", y deforma el
   cierre). Forzamos el aspecto del diseño y quitamos el resalte de tap. */
.nav-burger {
  background:transparent !important; border-radius:0 !important; box-shadow:none !important;
  -webkit-tap-highlight-color:transparent; appearance:none; -webkit-appearance:none;
}
.nav-burger:hover, .nav-burger:focus, .nav-burger:active {
  background:transparent !important; border-color:var(--gold) !important; color:var(--gold) !important; outline:none !important;
}
.nav-burger span, .nav-burger span::before, .nav-burger span::after { background-color:currentColor !important; }
.mobile-menu-close {
  flex:0 0 44px; width:44px !important; height:44px !important; padding:0 !important;
  border-radius:0 !important; background:transparent !important; box-shadow:none !important;
  display:inline-flex !important; align-items:center; justify-content:center;
  -webkit-tap-highlight-color:transparent; appearance:none; -webkit-appearance:none;
  min-width:0; min-height:0;
}
.mobile-menu-close:hover, .mobile-menu-close:focus { background:var(--gold) !important; color:var(--ink) !important; outline:none !important; }
.mobile-menu-close svg { width:14px !important; height:14px !important; display:block; flex:0 0 auto; }

/* footer-top en grid (1.4fr + 3) y barra inferior en fila */
.elementor-element.e-con.footer-top { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:56px; }
.elementor-element.e-con.footer-bottom { display:flex; flex-direction:row; justify-content:space-between; align-items:center; }
@media (max-width:900px){
  .elementor-element.e-con.footer-top { grid-template-columns:1fr 1fr; gap:40px; }
  .elementor-element.e-con.footer-bottom { flex-direction:column; gap:16px; }
}
@media (max-width:560px){ .elementor-element.e-con.footer-top { grid-template-columns:1fr; } }
/* En el editor los Encabezados toman un color por defecto (azulado). Forzamos el del diseño. */
.elementor-editor-active .elementor-widget-heading .elementor-heading-title { color:inherit !important; }
.elementor-editor-active .on-dark .elementor-widget-heading .elementor-heading-title,
.elementor-editor-active .hero .elementor-widget-heading .elementor-heading-title { color:var(--cream) !important; }
.elementor-editor-active .h-section em,
.elementor-editor-active .h-display em,
.elementor-editor-active .hero .accent { color:var(--gold) !important; }

/* --- 7. HERO nativo (fondo de vídeo + contadores nativos) --- */
.elementor-element.e-con.hero { min-height:100vh; }
.hero-bg .elementor-background-video-container,
.hero-bg .elementor-background-video-container video,
.hero-bg video { width:100% !important; height:100% !important; object-fit:cover; object-position:60% center; }
.hero .accent { font-style:italic; font-weight:300; color:var(--gold); }
.elementor-element.e-con.hero-inner { position:relative; z-index:2; }

/* CTAs en fila (no apilados ni a ancho completo) */
.elementor-element.e-con.hero-ctas { display:flex !important; flex-direction:row !important; gap:20px; justify-content:flex-start; align-items:center; width:auto; }
.hero-ctas .elementor-widget-button { width:auto; flex:0 0 auto; }

/* hero-meta: posición abajo-derecha + contador nativo con aspecto del diseño */
.elementor-element.e-con.hero-meta { position:absolute !important; z-index:3; bottom:clamp(40px,5vw,60px); right:var(--pad-x); left:auto; top:auto; width:auto; display:flex; flex-direction:row; gap:56px; }
.hero-meta-item { border-left:1px solid var(--gold-line); padding-left:20px; max-width:160px; }
.hero-meta-item .elementor-counter { text-align:left; }
.hero-meta-item .elementor-counter-number-wrapper {
  display:flex; justify-content:flex-start; font-family:var(--serif) !important; font-size:32px !important;
  font-weight:400 !important; letter-spacing:0; color:var(--gold) !important; margin-bottom:6px; line-height:1;
}
.hero-meta-item .elementor-counter-title {
  font-family:var(--sans) !important; font-size:11px !important; letter-spacing:.06em;
  color:rgba(255,253,251,.7) !important; text-transform:none !important; font-weight:400; line-height:1.4;
}

/* --- 8. Stats de "Sobre nosotros" (contadores nativos con aspecto del diseño) --- */
.elementor-element.e-con.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.lib-stat .elementor-counter-number-wrapper {
  display:flex; justify-content:flex-start; align-items:flex-start;
  font-family:var(--serif) !important; font-size:clamp(40px,4vw,56px) !important;
  font-weight:400 !important; line-height:1; color:var(--gold) !important;
}
.lib-stat .elementor-counter-number-suffix { font-size:.4em; margin-left:2px; }
.lib-stat .elementor-counter-title {
  margin-top:12px; font-family:var(--sans) !important; font-size:11px !important;
  letter-spacing:.22em; text-transform:uppercase; color:var(--ink) !important; font-weight:500;
}

/* svc-link: flecha como texto (en vez de svg) */
.svc-link .svc-link-arrow { display:inline-block; transition:transform .4s; }
.svc-link:hover .svc-link-arrow { transform:translateX(4px); }

/* ============================================================
   10. PÁGINAS INTERIORES (Lote C1)
   Re-afirma el layout del diseño en los contenedores Elementor
   (Elementor fuerza display:flex en .e-con; aquí restituimos grid/flex).
   Las sub-listas/iconos/placeholders van en bloques HTML con la clase del
   diseño, por lo que su layout (timeline, certs, institutions, res-card…)
   lo gobierna libertad-global.css directamente.
   ============================================================ */

/* --- Hero interior --- */
.elementor-element.e-con.page-hero { position:relative; min-height:60vh; display:flex; flex-direction:column; justify-content:flex-end; padding:200px 0 72px; overflow:hidden; }
.elementor-element.e-con.page-hero.compact { justify-content:center; }
.elementor-element.e-con.page-hero-bg { position:absolute; left:0; right:0; top:-50%; height:150%; padding:0; }
.page-hero.team .page-hero-bg { background-image:url("https://images.unsplash.com/photo-1631049035182-249067d7618e?q=80&w=2400&auto=format&fit=crop"); }

/* --- Sobre Nosotros --- */
.elementor-element.e-con.history-grid { display:grid; grid-template-columns:1.15fr 0.85fr; gap:clamp(48px,7vw,110px); align-items:start; }
.elementor-element.e-con.philo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.elementor-element.e-con.philo-col { display:flex; flex-direction:column; padding:56px 40px; }
.elementor-element.e-con.fac-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:110px; gap:20px; }
.elementor-element.e-con.values-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding:56px 0; }
.elementor-element.e-con.certs { display:block; }

/* --- Servicios --- */
.elementor-element.e-con.svc-index { display:block; }
.elementor-element.e-con.svc-block { display:block; padding:clamp(80px,10vw,130px) 0; }
.elementor-element.e-con.svc-block-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,7vw,110px); align-items:center; }
.elementor-element.e-con.svc-block-image { aspect-ratio:5/6; }
.elementor-element.e-con.svc-help { padding:clamp(80px,12vh,140px) 0; }

/* --- Equipo --- */
.elementor-element.e-con.director-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(48px,7vw,110px); align-items:start; }
.elementor-element.e-con.team-section-head { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:end; }
.elementor-element.e-con.team-card-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.elementor-element.e-con.team-card { display:flex; flex-direction:column; padding:0; }
.elementor-element.e-con.team-card-img { aspect-ratio:3/4; position:relative; overflow:hidden; }
.elementor-element.e-con.formacion-grid { display:grid; grid-template-columns:0.95fr 1.05fr; gap:clamp(48px,7vw,110px); align-items:start; }
.elementor-element.e-con.team-quote { padding:clamp(80px,12vh,140px) 0; text-align:center; }

/* --- Categoría --- */
.elementor-element.e-con.cat-intro-grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(48px,7vw,110px); align-items:center; }
.elementor-element.e-con.cat-intro-img { aspect-ratio:4/5; }
.elementor-element.e-con.treat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.elementor-element.e-con.tr-card { display:flex; flex-direction:column; padding:0; }
.elementor-element.e-con.whyus-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.elementor-element.e-con.whyus-col { display:block; }

/* Columnas de contenido → bloque sin relleno (el diseño controla el flujo) */
.elementor-element.e-con.history-content,
.elementor-element.e-con.svc-block-content,
.elementor-element.e-con.director-content,
.elementor-element.e-con.formacion-content,
.elementor-element.e-con.cat-intro-content,
.elementor-element.e-con.tr-body,
.elementor-element.e-con.team-card-body { display:block; padding:0; }

/* Cabeceras centradas (eyebrow + título + texto) */
.elementor-element.e-con.philo-head,
.elementor-element.e-con.facilities-head,
.elementor-element.e-con.values-head,
.elementor-element.e-con.treatments-head,
.elementor-element.e-con.whyus-head,
.elementor-element.e-con.cat-results-head,
.elementor-element.e-con.svc-help-content,
.elementor-element.e-con.cat-results-link { display:block; text-align:center; padding:0; }
.philo-head .elementor-widget, .facilities-head .elementor-widget, .values-head .elementor-widget,
.treatments-head .elementor-widget, .whyus-head .elementor-widget, .cat-results-head .elementor-widget,
.svc-help-content .elementor-widget { text-align:center; }
.philo-head .eyebrow, .facilities-head .eyebrow, .values-head .eyebrow,
.treatments-head .eyebrow, .whyus-head .eyebrow, .cat-results-head .eyebrow,
.svc-help-content .eyebrow { justify-content:center; }

/* em dorado en títulos interiores que no son .h-section */
.elementor-widget-heading.svc-block-title em,
.elementor-widget-heading.director-name em,
.svc-help-content .elementor-widget-heading em { font-style:italic; font-weight:300; color:var(--gold); }

/* Responsive C1 */
@media (max-width:1024px){
  .elementor-element.e-con.team-card-grid,
  .elementor-element.e-con.treat-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:900px){
  .elementor-element.e-con.fac-grid { grid-template-columns:repeat(6,1fr); grid-auto-rows:90px; }
  .elementor-element.e-con.team-section-head { grid-template-columns:1fr; gap:24px; }
}
@media (max-width:768px){
  .elementor-element.e-con.history-grid,
  .elementor-element.e-con.svc-block-grid,
  .elementor-element.e-con.director-grid,
  .elementor-element.e-con.formacion-grid,
  .elementor-element.e-con.cat-intro-grid { grid-template-columns:1fr; }
  .elementor-element.e-con.philo-grid,
  .elementor-element.e-con.whyus-grid { grid-template-columns:1fr; }
  .elementor-element.e-con.values-stats { grid-template-columns:repeat(2,1fr); }
  .elementor-element.e-con.team-card-grid,
  .elementor-element.e-con.treat-grid { grid-template-columns:1fr; }
}

/* ============================================================
   11. Lote C1 — ajustes finos (hero, iconos-imagen, imágenes reemplazables)
   ============================================================ */
/* Encabezados cuyo tamaño venía de un selector de ELEMENTO del diseño
   (.page-hero h1, .final-cta-content h2, .svc-help h2): la regla font-size:inherit
   los dejaba a ~15px. Los restituimos (excluyendo el eyebrow, que es pequeño). */
.page-hero .elementor-widget-heading:not(.eyebrow) .elementor-heading-title { font-size:clamp(40px,6vw,84px); line-height:1.02; }
.final-cta-content .elementor-widget-heading:not(.eyebrow) .elementor-heading-title { font-size:clamp(48px,6vw,88px); line-height:1.05; }
.svc-help .elementor-widget-heading:not(.eyebrow) .elementor-heading-title { font-size:clamp(40px,5vw,64px); line-height:1.05; }

/* Iconos del diseño como widget Imagen (SVG): tamaños exactos del diseño */
.philo-icon img { width:56px !important; height:56px !important; max-width:none; }
.cat-highlight-icon img { width:36px !important; height:36px !important; max-width:none; }
.philo-icon .elementor-widget-container,
.cat-highlight-icon .elementor-widget-container { line-height:0; }

/* Stack de imágenes de "Historia" (contenedores con fondo, posicionados) */
.elementor-element.e-con.history-img-stack { position:relative; height:680px; }
.elementor-element.e-con.history-img-1 { position:absolute; top:0; right:0; width:80%; height:72%; }
.elementor-element.e-con.history-img-2 { position:absolute; bottom:0; left:0; width:58%; height:42%; }

/* Foto de la directora (contenedor con fondo reemplazable) */
.elementor-element.e-con.director-img { aspect-ratio:3/4; position:relative; }

/* Highlights de categoría (nativo: icono Imagen + etiqueta) */
.elementor-element.e-con.cat-highlights { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-top:32px; }
.elementor-element.e-con.cat-highlight { display:flex; flex-direction:column; gap:14px; padding:0; }
@media (max-width:768px){
  .elementor-element.e-con.cat-highlights { grid-template-columns:1fr; }
  /* Hero interior: menos padding superior en móvil (la barra fija es más baja) */
  .elementor-element.e-con.page-hero { padding-top:120px; padding-bottom:48px; min-height:52vh; }
  /* Bloques con padding grande → más ajustado en móvil */
  .elementor-element.e-con.svc-block { padding:60px 0; }
  .elementor-element.e-con.philo-col { padding:36px 26px; }
}

/* ============================================================
   12. Lote C2 — Contacto y Resultados
   ============================================================ */
/* Contacto */
.elementor-element.e-con.contact-section { background-color:var(--cream); }
.elementor-element.e-con.contact-grid { display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(48px,7vw,110px); align-items:start; }
.elementor-element.e-con.contact-info { display:block; padding:8px 0 0; }
.contact-info .elementor-widget-heading:not(.eyebrow) .elementor-heading-title { font-size:28px; line-height:1.2; }
.elementor-element.e-con.bigmap-section { background-color:var(--ink); padding:clamp(60px,8vw,100px) 0; }
.elementor-element.e-con.bigmap-head { display:block; text-align:center; padding:0; }
.bigmap-head .elementor-widget { text-align:center; }
.bigmap-head .eyebrow { justify-content:center; }
/* Resultados */
.elementor-element.e-con.lib-gallery { padding:0; }
.elementor-element.e-con.legal-bar { background-color:var(--ink-2); padding-top:28px; padding-bottom:28px; }
@media (max-width:768px){
  .elementor-element.e-con.contact-grid { grid-template-columns:1fr; }
}

/* ============================================================
   13. Lote C2 — fixes: pills de filtro (sin rosa) + iconos sociales
   ============================================================ */
/* Pills de filtro: estados del diseño (dorado) con prioridad, y sin resaltados
   de foco/tap del navegador (el "rosa" reportado). */
.filter-pill, .load-more { -webkit-tap-highlight-color:transparent; }
.filter-pill:focus, .filter-pill:focus-visible, .load-more:focus, .load-more:focus-visible { outline:none !important; box-shadow:none !important; }
.filter-pill:hover { background:rgba(184,160,137,0.10) !important; color:var(--ink) !important; }
.filter-pill.active { background:var(--gold) !important; color:var(--ink) !important; }

/* Widget "Iconos sociales" del footer con el aspecto del diseño (.footer-social):
   círculo con borde fino, crema translúcido, hover dorado (no el color de marca). */
.footer-social .elementor-social-icon {
  background-color:transparent !important;
  width:36px; height:36px;
  border:1px solid var(--line-dark);
  color:rgba(255,253,251,0.7) !important;
  transition:border-color .3s ease, color .3s ease;
}
.footer-social .elementor-social-icon:hover { border-color:var(--gold) !important; color:var(--gold) !important; background-color:transparent !important; }
.footer-social .elementor-social-icon i { font-size:14px; }
.footer-social .elementor-social-icon svg { width:14px; height:14px; fill:currentColor; }
.footer-social .elementor-social-icons-wrapper.elementor-grid { gap:10px; --grid-column-gap:10px; --grid-row-gap:10px; }

/* ============================================================
   14. Contacto — datos (iconos), formulario (widget Form), mapa (Google Maps)
   ============================================================ */
/* Lista de datos: icono (widget) en círculo dorado + texto */
.elementor-element.e-con.contact-list { display:flex; flex-direction:column; gap:26px; padding:0; }
.elementor-element.e-con.ci-item { display:grid; grid-template-columns:44px 1fr; gap:20px; align-items:start; padding:0; }
.ci-icon .elementor-icon { width:44px; height:44px; border:1px solid var(--gold-line); border-radius:50%; color:var(--gold) !important; display:flex; align-items:center; justify-content:center; padding:0; }
.ci-icon .elementor-icon i, .ci-icon .elementor-icon svg { color:var(--gold) !important; fill:var(--gold) !important; }
.ci-icon .elementor-icon i { font-size:17px; }
.ci-icon .elementor-icon svg { width:17px; height:17px; }
.ci-label { font-family:var(--sans); font-size:10px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:6px; }
.ci-value { font-family:var(--serif); font-size:19px; color:var(--ink); line-height:1.3; }
.ci-value small { display:block; font-family:var(--sans); font-size:12px; color:var(--muted); margin-top:4px; }

/* Redes en Contacto (sección clara): círculo con borde fino, hover dorado */
.contact-social .elementor-social-icon { background-color:transparent !important; width:40px; height:40px; border:1px solid var(--line-light); color:var(--ink) !important; transition:border-color .3s ease, color .3s ease; }
.contact-social .elementor-social-icon:hover { border-color:var(--gold) !important; color:var(--gold) !important; background-color:transparent !important; }
.contact-social .elementor-social-icon i { font-size:15px; }
.contact-social .elementor-social-icon svg { width:15px; height:15px; fill:currentColor; }
.contact-social .elementor-social-icons-wrapper.elementor-grid { gap:10px; --grid-column-gap:10px; }

/* Formulario (widget Form de Elementor) con el aspecto del diseño */
.lib-contact-form { background:#fff; padding:clamp(32px,5vw,56px); border:1px solid var(--line-light); }
.lib-contact-form .elementor-field-group > label { font-family:var(--sans); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; font-weight:600; }
.lib-contact-form .elementor-field-textual { background:var(--cream); border:1px solid var(--line-light); border-radius:0; padding:14px 16px; font-family:var(--sans); font-size:14px; color:var(--ink); min-height:52px; transition:border-color .3s ease; }
.lib-contact-form .elementor-field-textual:focus { border-color:var(--gold); outline:none; box-shadow:none; }
.lib-contact-form textarea.elementor-field-textual { min-height:120px; }
.lib-contact-form .elementor-button { background:var(--gold) !important; color:var(--ink) !important; border:0; border-radius:0; font-family:var(--sans); font-size:11px; letter-spacing:.28em; text-transform:uppercase; font-weight:600; padding:18px 34px; transition:background-color .4s ease, color .4s ease; }
.lib-contact-form .elementor-button:hover { background:var(--ink) !important; color:var(--cream) !important; }
.lib-contact-form .elementor-field-type-acceptance .elementor-field-subgroup,
.lib-contact-form .elementor-acceptance-field-label { font-size:12px; color:var(--muted); line-height:1.5; }

/* Mapa (widget Google Maps): filtro para integrarlo en la sección oscura */
.lib-map .elementor-custom-embed, .lib-map iframe { width:100%; min-height:520px; border:1px solid var(--line-dark); }
.lib-map iframe { filter:grayscale(1) invert(0.92) hue-rotate(180deg) brightness(0.9) contrast(0.9); }
@media (max-width:768px){ .elementor-element.e-con.ci-item { grid-template-columns:40px 1fr; gap:16px; } }

/* ============================================================
   15. Lote C2 — Reservar (reserva) + Tratamiento (Ácido Hialurónico)
   ============================================================ */
/* Reserva: el bloque .booking-page trae su propio estilo; el contenedor solo envuelve */
.elementor-element.e-con.lib-booking { padding:0; }
/* Navbar oscura sobre la página de reserva (fondo claro) — como el diseño original */
body:has(.booking-page) .elementor-element.e-con.nav { background-color:rgba(45,42,38,0.92) !important; -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); border-bottom:1px solid var(--line-dark); }
/* Trust bar (nativa: rejilla + iconos) */
.elementor-element.e-con.trust-bar { background-color:var(--ink); padding:clamp(40px,5vw,56px) 0; }
.elementor-element.e-con.trust-row { display:grid; grid-template-columns:repeat(3,1fr) auto; gap:32px; align-items:center; }
.elementor-element.e-con.trust-item { display:flex; flex-direction:row; align-items:center; gap:16px; padding:0; }
.trust-icon .elementor-icon { color:var(--gold); }
.trust-icon .elementor-icon i { font-size:22px; }
.trust-icon .elementor-icon svg { width:22px; height:22px; fill:var(--gold); }
@media (max-width:900px){ .elementor-element.e-con.trust-row { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .elementor-element.e-con.trust-row { grid-template-columns:1fr; } }

/* Tratamiento */
.elementor-element.e-con.tx-desc-grid { display:grid; grid-template-columns:1.2fr 0.95fr; gap:clamp(48px,7vw,110px); align-items:start; }
.elementor-element.e-con.tx-desc-content { display:block; padding:0; }
.elementor-element.e-con.tx-desc-img { aspect-ratio:4/5; }
.elementor-element.e-con.tx-proc-head,
.elementor-element.e-con.ideal-head,
.elementor-element.e-con.tx-ba-head { display:block; text-align:center; padding:0; }
.tx-proc-head .elementor-widget, .ideal-head .elementor-widget, .tx-ba-head .elementor-widget { text-align:center; }
.tx-proc-head .eyebrow, .ideal-head .eyebrow, .tx-ba-head .eyebrow { justify-content:center; }
.elementor-element.e-con.ideal-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.elementor-element.e-con.faq-grid { display:grid; grid-template-columns:1fr 1.35fr; gap:clamp(48px,7vw,96px); align-items:start; }
.elementor-element.e-con.faq-side { display:block; padding:0; }
.elementor-element.e-con.tx-price { background-color:var(--ink-2); padding:clamp(80px,10vw,130px) 0; text-align:center; }
.tx-price .elementor-widget { text-align:center; }
.tx-price .eyebrow { justify-content:center; }
.elementor-element.e-con.related-head { display:grid; grid-template-columns:1fr auto; gap:32px; align-items:end; }
.elementor-element.e-con.related-head-titles { display:block; padding:0; }
@media (max-width:768px){
  .elementor-element.e-con.tx-desc-grid,
  .elementor-element.e-con.ideal-grid,
  .elementor-element.e-con.faq-grid,
  .elementor-element.e-con.related-head { grid-template-columns:1fr; }
}

/* ============================================================
   16. Anular el fondo ROSA de :focus que reset.css aplica a los <button>
   (se veía al clicar svc-pick, FAQ, pills…). Mismo selector que el reset
   (esta hoja carga después → gana) y re-afirmamos los botones con relleno.
   ============================================================ */
/* El reset cambia fondo (rosa) Y color (blanco) en :hover/:focus/:active. Anulamos
   ambos: fondo transparente + color heredado (visible), y re-afirmamos los botones
   con relleno con su fondo y color de texto correctos. */
[type="button"]:hover, [type="button"]:focus, [type="button"]:active,
[type="submit"]:hover, [type="submit"]:focus, [type="submit"]:active,
[type="reset"]:hover, [type="reset"]:focus, [type="reset"]:active { background-color:transparent !important; color:inherit !important; }
.svc-pick:focus { background-color:#fff !important; }
.svc-pick.active, .svc-pick.active:hover, .svc-pick.active:focus { background-color:#EDE8E1 !important; }
.faq-q:hover, .faq-q:focus { color:var(--ink) !important; }
.filter-pill:hover { background-color:rgba(184,160,137,0.10) !important; color:var(--gold) !important; }
.filter-pill.active, .filter-pill.active:hover, .filter-pill.active:focus { background-color:var(--gold) !important; color:var(--ink) !important; }
.time-pill:hover { color:var(--ink) !important; }
.time-pill.active, .time-pill.active:hover, .time-pill.active:focus { background-color:var(--gold) !important; color:var(--ink) !important; }
.load-more:hover { background-color:var(--ink) !important; color:var(--cream) !important; }
.booking-submit, .booking-submit:hover, .booking-submit:focus { background-color:var(--gold) !important; color:var(--ink) !important; }
.lib-contact-form .elementor-button:focus { background-color:var(--gold) !important; color:var(--ink) !important; }
.lib-contact-form .elementor-button:hover { background-color:var(--ink) !important; color:var(--cream) !important; }

/* ============================================================
   17. Candidato ideal: columnas + widget Listado de iconos con el aspecto del diseño
   ============================================================ */
.elementor-element.e-con.ideal-col { background:#fff; border:1px solid var(--line-light); padding:40px 36px 44px; display:block; }
.ideal-col .elementor-widget-heading .elementor-heading-title { font-size:24px; font-weight:400; line-height:1.2; }
.ideal-iconlist .elementor-icon-list-items { display:flex; flex-direction:column; gap:16px; }
.ideal-iconlist .elementor-icon-list-item { align-items:flex-start; }
.ideal-iconlist .elementor-icon-list-icon { width:22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex:0 0 22px; margin-top:2px; background:rgba(184,160,137,0.15); border:1px solid var(--gold); }
.ideal-iconlist .elementor-icon-list-icon i, .ideal-iconlist .elementor-icon-list-icon svg { font-size:11px; width:11px; height:11px; color:var(--gold) !important; fill:var(--gold) !important; }
.ideal-iconlist.neg .elementor-icon-list-icon { background:rgba(45,42,38,0.05); border-color:rgba(45,42,38,0.15); }
.ideal-iconlist.neg .elementor-icon-list-icon i, .ideal-iconlist.neg .elementor-icon-list-icon svg { color:rgba(45,42,38,0.4) !important; fill:rgba(45,42,38,0.4) !important; }
.ideal-iconlist .elementor-icon-list-text { font-family:var(--sans); font-size:15px; color:var(--muted-2); line-height:1.5; }

/* ============================================================
   18. Plantillas de blog (Theme Builder): envoltura a sangre completa.
   El widget (lib_article / lib_blog_index) ya trae sus .container y
   secciones full-bleed; la envoltura no debe añadir relleno ni límite.
   ============================================================ */
.elementor-element.e-con.lib-tpl-wrap { padding:0 !important; max-width:none !important; width:100%; }
.elementor-element.e-con.lib-tpl-wrap > .e-con-inner { max-width:none !important; padding:0 !important; }
.lib-tpl-wrap .elementor-widget-lib_article,
.lib-tpl-wrap .elementor-widget-lib_blog_index { width:100%; }
.lib-tpl-wrap .elementor-widget-lib_article > .elementor-widget-container,
.lib-tpl-wrap .elementor-widget-lib_blog_index > .elementor-widget-container { margin:0; padding:0; }

/* ============================================================
   19. Plantilla SINGLE de entrada con WIDGETS NATIVOS de Elementor.
   Reasertamos las rejillas/bloques del diseño en los contenedores .e-con y
   damos a los widgets de entrada (Título, Info, Imagen destacada, Contenido,
   Tabla de contenidos) el aspecto del artículo original.
   ============================================================ */
/* Contenedores → bloques/rejilla del diseño (ganan a .e-con{display:flex}). */
.elementor-element.e-con.article-header        { display:block; background:var(--cream); padding:clamp(110px,14vw,180px) 0 0; }
.elementor-element.e-con.article-header-inner  { display:block; max-width:1140px; margin:0 auto 0 0; padding:0 var(--pad-x); }
.elementor-element.e-con.article-section       { display:block; background:var(--cream); padding:clamp(60px,8vw,100px) 0; }
.elementor-element.e-con.article-grid          { display:grid; grid-template-columns:minmax(0,720px) 280px; gap:clamp(48px,6vw,90px); align-items:start; max-width:1180px; margin:0 auto; padding:0 var(--pad-x); }
.elementor-element.e-con.article-aside         { display:block; position:sticky; top:110px; }
.elementor-element.e-con.article-related       { display:block; background:var(--cream); padding:0 0 clamp(60px,8vw,100px); }
.elementor-element.e-con.article-related-head  { display:block; margin-bottom:clamp(36px,5vw,60px); }
.elementor-element.e-con.final-cta-content     { display:block; max-width:760px; }

/* Título de la entrada → .article-title */
.article-title .elementor-heading-title { font-family:var(--serif) !important; font-size:clamp(38px,5.5vw,76px); line-height:1.04; color:var(--ink) !important; font-weight:400; letter-spacing:-0.012em; margin:0; }

/* Categoría (Encabezado dinámico post-terms) → .article-cat */
.article-cat { margin-bottom:28px; }
.article-cat .elementor-heading-title { font-family:var(--sans) !important; font-size:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; font-weight:inherit; }
.article-cat .elementor-heading-title a { color:var(--gold); }
/* Meta (fecha · autor con Encabezados dinámicos) → .article-meta */
.elementor-element.e-con.article-meta { display:flex; flex-direction:row !important; gap:18px; align-items:center; flex-wrap:wrap; margin-top:40px; padding-top:28px; border-top:1px solid var(--gold-line); }
/* Relacionados (widget Entradas nativo): ocultar el meta de comentarios para
   dejar solo la fecha, como en el diseño. */
.article-related-posts .elementor-post__meta-data .elementor-post__comments { display:none; }
.article-related-posts .elementor-post__excerpt p { font-family:var(--sans); }
.article-meta-item .elementor-heading-title { font-family:var(--sans) !important; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); font-weight:400; }
.article-meta .author .elementor-heading-title::before { content:""; display:inline-block; width:4px; height:4px; border-radius:50%; background:var(--gold); margin-right:18px; vertical-align:middle; }
/* Imagen destacada vacía: ocultar el placeholder de Elementor (deja la caja crema del diseño) */
.article-hero-img img[src*="placeholder"] { display:none; }

/* Imagen destacada → .article-hero-img (full width del contenedor) */
.article-hero-img { position:relative; margin-top:clamp(48px,6vw,72px); aspect-ratio:21 / 9; background-color:var(--cream-2); overflow:hidden; }
.article-hero-img .elementor-widget-container { position:absolute; inset:0; height:100%; }
.article-hero-img img { width:100%; height:100%; object-fit:cover; display:block; }

/* Contenido de la entrada → .article-body (los selectores de descendencia del
   diseño .article-body p/h2/blockquote… ya aplican; solo restauramos el espaciado
   entre hermanos, que el wrapper de Elementor rompe). */
.article-body { font-family:var(--sans); font-size:18px; line-height:1.8; color:#333; }
.article-body .elementor-widget-container > * + * { margin-top:28px; }

/* Tabla de contenidos nativa → aspecto .toc-list */
.article-toc .elementor-toc, .article-toc .elementor-toc__body { border:0 !important; background:transparent !important; padding:0; }
.article-toc .elementor-toc__header { padding:0 0 16px; margin-bottom:22px; border-bottom:1px solid var(--gold-line); }
.article-toc .elementor-toc__header-title { font-family:var(--sans); font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); font-weight:500; }
.article-toc .elementor-toc__list-item { margin:0; padding:10px 0; }
.article-toc .elementor-toc__list-item-text { font-family:var(--serif); font-size:16px; color:var(--muted-2); }
.article-toc .elementor-toc__list-item-text:hover, .article-toc .elementor-toc__list-item.elementor-item-active .elementor-toc__list-item-text { color:var(--ink); }

/* Tarjeta CTA lateral → .aside-card (el fondo/línea los da el diseño por clase) */
.elementor-element.e-con.aside-card { display:block; }
.aside-card-title .elementor-heading-title { font-family:var(--serif) !important; font-size:22px; line-height:1.2; color:var(--cream) !important; }
.aside-card-title em { font-style:italic; color:var(--gold); font-weight:300; }

@media (max-width:1000px){
  .elementor-element.e-con.article-grid { grid-template-columns:1fr; }
  .elementor-element.e-con.article-aside { position:static; max-width:600px; margin:0 auto; }
}
