/* ===================================================================
   LULY MONTALVO — Sistema de diseño definitivo
   Prefijo lm- en TODO para evitar conflictos con Elementor/WordPress
   =================================================================== */

/* ── VARIABLES ─────────────────────────────────────────────── */
:root {
  --lm-crema:     #F8F3E8;
  --lm-crema-r:   #F3EEE9;
  --lm-blanco:    #FFFFFF;
  --lm-tinta:     #3A2E4D;
  --lm-suave:     #6B5E73;
  --lm-lavanda:   #B9A7D6;
  --lm-lav-s:     #CFC4DF;
  --lm-violeta:   #A98BC7;
  --lm-vio-d:     #8E6FAE;
  --lm-turquesa:  #A8D5D8;
  --lm-dorado:    #C9A86A;
  --lm-ff-d:      'Fraunces', serif;
  --lm-ff-b:      'Lato', sans-serif;
  --lm-max:       1240px;
  --lm-ease:      cubic-bezier(0.16, 1, 0.3, 1);
  --lm-sh-md:     0 8px 28px rgba(58,46,77,.13);
  --lm-sh-lg:     0 24px 60px rgba(58,46,77,.20);
  --lm-sh-xl:     0 40px 90px rgba(58,46,77,.26);
}

/* ── BASE TIPOGRAFÍA GLOBAL ─────────────────────────────────── */
body { font-family: var(--lm-ff-b); -webkit-font-smoothing: antialiased; }

h1,h2,h3,h4,h5,h6 {
  font-family: var(--lm-ff-d) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
}

/* Blog/posts content */
.entry-content h2 { font-size:clamp(21px,2.8vw,30px)!important; margin:2em 0 .7em; }
.entry-content h3 { font-size:clamp(18px,2.2vw,24px)!important; margin:1.6em 0 .6em; }
.entry-content p  { font-size:17px; line-height:1.8; margin-bottom:1.4em; }
.entry-content a  { color:var(--lm-vio-d); border-bottom:1px solid rgba(142,111,174,.3); }
.entry-content blockquote {
  border-left:3px solid var(--lm-dorado); padding:16px 22px; margin:2em 0;
  background:var(--lm-crema-r); border-radius:0 12px 12px 0; font-style:italic;
}
.entry-content img { border-radius:20px; margin:2em 0; box-shadow:var(--lm-sh-md); }

/* ── ADMIN BAR ──────────────────────────────────────────────── */
@media (min-width:783px) { body.admin-bar .lm-header { top:32px !important; } }
@media (max-width:782px) { body.admin-bar .lm-header { top:46px !important; } }

/* ── KEYFRAMES ──────────────────────────────────────────────── */
@keyframes lm-float  { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes lm-blob   { 0%,100%{transform:scale(1)} 50%{transform:scale(1.1) translate(-10px,14px)} }
@keyframes lm-marq   { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes lm-rise   { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:none} }
@keyframes lm-scalein{ from{opacity:0;transform:scale(.94)} to{opacity:1;transform:none} }
@keyframes lm-left   { from{opacity:0;transform:translateX(-28px)} to{opacity:1;transform:none} }
@keyframes lm-right  { from{opacity:0;transform:translateX(28px)} to{opacity:1;transform:none} }

/* ── SCROLL REVEAL ──────────────────────────────────────────── */
.lm-reveal {
  opacity:0; transform:translateY(24px);
  transition:opacity .8s var(--lm-ease), transform .8s var(--lm-ease);
}
.lm-reveal.lm-left  { transform:translateX(-28px); }
.lm-reveal.lm-right { transform:translateX(28px); }
.lm-reveal.lm-scale { transform:scale(.94); }
.lm-reveal.on       { opacity:1 !important; transform:none !important; }
@media (prefers-reduced-motion:reduce) {
  .lm-reveal { opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ── UTILIDADES ─────────────────────────────────────────────── */
.lm-eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--lm-ff-b); font-size:11.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--lm-vio-d);
}
.lm-eyebrow::before { content:''; width:20px; height:1.5px; background:var(--lm-dorado); flex-shrink:0; }
.lm-eyebrow.center  { justify-content:center; }
.lm-eyebrow.center::before { display:none; }
.lm-eyebrow.light   { color:var(--lm-lav-s); }

.lm-wave { display:block; width:100%; line-height:0; margin-bottom:-1px; }

.lm-rule {
  width:58px; height:2.5px;
  background:linear-gradient(90deg,var(--lm-dorado),var(--lm-violeta));
  border-radius:2px; margin:0 auto 26px;
}

/* ── BOTONES ────────────────────────────────────────────────── */
.lm-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--lm-ff-b); font-size:15px; font-weight:700; letter-spacing:.03em;
  padding:15px 32px; border-radius:100px; border:none; cursor:pointer;
  position:relative; overflow:hidden; text-decoration:none; white-space:nowrap;
  transition:transform .4s var(--lm-ease), box-shadow .4s var(--lm-ease), background .3s ease;
}
.lm-btn::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.26) 50%,transparent 70%);
  transform:translateX(-110%); transition:transform .5s ease;
}
.lm-btn:hover::after { transform:translateX(110%); }

.lm-btn.primary   { background:var(--lm-tinta); color:var(--lm-crema); box-shadow:0 6px 20px rgba(58,46,77,.28); }
.lm-btn.primary:hover { background:var(--lm-vio-d); transform:translateY(-3px); box-shadow:0 14px 32px rgba(58,46,77,.36); }
.lm-btn.violeta   { background:var(--lm-violeta); color:#fff; box-shadow:0 6px 20px rgba(169,139,199,.35); }
.lm-btn.violeta:hover { background:var(--lm-vio-d); transform:translateY(-3px); box-shadow:0 14px 32px rgba(169,139,199,.45); }
.lm-btn.ghost     { background:transparent; color:var(--lm-tinta); border:1.5px solid rgba(58,46,77,.28); }
.lm-btn.ghost:hover { background:var(--lm-tinta); color:var(--lm-crema); transform:translateY(-3px); }
.lm-btn.ghost-light { background:transparent; color:var(--lm-crema); border:1.5px solid rgba(248,243,232,.4); }
.lm-btn.ghost-light:hover { background:rgba(248,243,232,.12); transform:translateY(-3px); }
.lm-btn.lg  { padding:19px 44px; font-size:16px; }
.lm-btn.sm  { padding:10px 20px; font-size:13.5px; }
.lm-btn.block { width:100%; }

/* CF7 heredará estos estilos */

/* ===================================================================
   HEADER
=================================================================== */
.lm-header {
  position:fixed; top:0; left:0; right:0; z-index:9999;
  padding:20px 0;
  transition:padding .4s var(--lm-ease), background .4s var(--lm-ease), box-shadow .4s var(--lm-ease);
}
.lm-header.scrolled {
  padding:12px 0;
  background:rgba(248,243,232,.9);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  box-shadow:0 2px 20px rgba(58,46,77,.10);
}
.lm-header__in {
  max-width:var(--lm-max); margin:0 auto;
  padding:0 clamp(20px,5vw,60px);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.lm-logo {
  font-family:var(--lm-ff-d) !important; font-size:21px; font-weight:600 !important;
  color:var(--lm-tinta) !important; letter-spacing:.01em; flex-shrink:0;
  text-decoration:none !important;
}
.lm-logo strong { color:var(--lm-violeta); }

.lm-nav { display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0; }
.lm-nav a {
  font-family:var(--lm-ff-b); font-size:14.5px; font-weight:600; color:var(--lm-tinta);
  position:relative; padding:4px 0; text-decoration:none;
  transition:color .25s ease;
}
.lm-nav a::after {
  content:''; position:absolute; bottom:-2px; left:0;
  width:0; height:2px; background:var(--lm-dorado); border-radius:2px;
  transition:width .3s var(--lm-ease);
}
.lm-nav a:hover { color:var(--lm-vio-d); }
.lm-nav a:hover::after { width:100%; }

.lm-burger {
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; background:none; border:none; padding:8px;
  border-radius:8px; cursor:pointer;
}
.lm-burger span {
  display:block; width:100%; height:2px; background:var(--lm-tinta);
  border-radius:2px; transition:.3s var(--lm-ease);
}
.lm-burger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.lm-burger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.lm-burger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

.lm-overlay { display:none; position:fixed; inset:0; background:rgba(58,46,77,.45); backdrop-filter:blur(3px); z-index:9998; }
.lm-overlay.open { display:block; }

/* ===================================================================
   HERO — Grid 100% CSS, Elementor no interfiere
=================================================================== */
.lm-hero-bg {
  background:var(--lm-crema);
  position:relative;
  overflow:hidden;
  min-height:100svh;
}
.lm-hero-bg::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 70% 80% at 68% 40%, rgba(207,196,223,.28) 0%, transparent 70%),
    radial-gradient(ellipse 50% 60% at 20% 80%, rgba(168,213,216,.18) 0%, transparent 60%);
}
.lm-blob {
  position:absolute; border-radius:50%; pointer-events:none;
  animation:lm-blob 10s ease-in-out infinite;
}
.lm-blob.b1 {
  width:480px; height:480px; top:-90px; right:-70px; filter:blur(5px);
  background:radial-gradient(circle,rgba(207,196,223,.42) 0%,transparent 70%);
}
.lm-blob.b2 {
  width:320px; height:320px; bottom:-50px; left:8%; filter:blur(7px);
  background:radial-gradient(circle,rgba(168,213,216,.28) 0%,transparent 70%);
  animation-direction:reverse; animation-delay:-5s;
}

/* EL GRID DEL HERO — aquí estaba el problema */
.lm-hero-grid {
  position:relative; z-index:2;
  max-width:var(--lm-max); margin:0 auto;
  padding:150px clamp(20px,5vw,60px) 90px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
  min-height:100svh;
  box-sizing:border-box;
}

.lm-hero-copy { animation:lm-rise 1s var(--lm-ease) both .1s; }
.lm-hero-copy .lm-eyebrow { margin-bottom:20px; }

.lm-h1 {
  font-family:var(--lm-ff-d) !important;
  font-size:clamp(34px,4.6vw,54px) !important;
  font-weight:600 !important;
  line-height:1.1 !important;
  color:var(--lm-tinta) !important;
  margin:0 0 20px !important;
}
.lm-h1 em {
  font-style:italic; font-weight:500;
  background:linear-gradient(135deg,var(--lm-violeta) 0%,var(--lm-lavanda) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.lm-hero-lead {
  font-family:var(--lm-ff-b);
  font-size:18px; line-height:1.72; color:var(--lm-suave); margin-bottom:32px;
}
.lm-hero-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:30px; }
.lm-hero-link {
  font-size:14.5px; font-weight:700; color:var(--lm-tinta);
  border-bottom:1.5px solid rgba(58,46,77,.3); padding-bottom:3px;
  text-decoration:none; transition:color .25s ease, border-color .25s ease;
}
.lm-hero-link:hover { color:var(--lm-vio-d); border-color:var(--lm-vio-d); }
.lm-hero-trust {
  display:flex; align-items:center; gap:10px;
  font-size:13px; font-style:italic; color:var(--lm-vio-d);
  border-top:1px solid rgba(169,139,199,.2); padding-top:18px;
}
.lm-hero-trust .star { color:var(--lm-dorado); font-style:normal; flex-shrink:0; }

/* Visual derecho */
.lm-hero-visual { position:relative; animation:lm-scalein 1.1s var(--lm-ease) both .2s; }
.lm-hero-frame {
  position:relative;
  border-radius:38px 38px 38px 8px;
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--lm-sh-xl);
}
.lm-hero-frame img {
  width:100%; height:100%; object-fit:cover; object-position:center top;
  display:block; transition:transform 8s ease;
}
.lm-hero-frame:hover img { transform:scale(1.04); }
.lm-hero-frame::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top,rgba(58,46,77,.15) 0%,transparent 45%);
  pointer-events:none;
}

/* Tarjetas flotantes */
.lm-fc {
  position:absolute; background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px); border-radius:16px;
  padding:12px 16px; box-shadow:var(--lm-sh-lg);
  display:flex; align-items:center; gap:11px; z-index:3;
  animation:lm-float 5s ease-in-out infinite;
}
.lm-fc-icon {
  width:34px; height:34px; border-radius:50%; background:var(--lm-crema-r);
  display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0;
}
.lm-fc-txt { font-size:13px; font-weight:700; color:var(--lm-tinta); line-height:1.3; }
.lm-fc-txt small { display:block; font-weight:400; color:var(--lm-suave); font-size:11px; }
.lm-fc.a { top:8%; left:-11%; }
.lm-fc.b { bottom:10%; right:-9%; animation-delay:1.5s; }

/* ===================================================================
   MARQUEE
=================================================================== */
.lm-marquee {
  background:var(--lm-tinta); padding:17px 0; overflow:hidden; white-space:nowrap;
}
.lm-marquee-track {
  display:inline-flex; animation:lm-marq 24s linear infinite;
}
.lm-marquee:hover .lm-marquee-track { animation-play-state:paused; }
.lm-marquee-item {
  display:inline-flex; align-items:center; gap:22px; padding:0 22px;
  font-family:var(--lm-ff-b); font-size:12px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:rgba(248,243,232,.6);
}
.lm-marquee-sep { color:var(--lm-dorado); font-size:8px; }

/* ===================================================================
   MANIFIESTO
=================================================================== */
.lm-manifesto {
  background:var(--lm-crema-r);
  padding:95px clamp(20px,5vw,60px) 55px;
  text-align:center; position:relative; overflow:hidden;
}
.lm-manifesto::before {
  content:''; position:absolute; width:380px; height:380px; border-radius:50%;
  background:rgba(169,139,199,.08); top:-140px; right:-90px; pointer-events:none;
}
.lm-manifesto-in { max-width:700px; margin:0 auto; }
.lm-manifesto-in h2 { font-size:clamp(27px,3.6vw,40px) !important; margin:14px 0 24px !important; }
.lm-manifesto-in p { font-size:19px; line-height:1.85; color:var(--lm-suave); }
.lm-manifesto-in strong { color:var(--lm-tinta); font-weight:700; }

/* Stats */
.lm-stats { background:var(--lm-crema-r); padding:0 clamp(20px,5vw,60px) 85px; }
.lm-stats-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
  max-width:var(--lm-max); margin:0 auto;
}
.lm-stat {
  background:rgba(255,255,255,.58); border-radius:20px; padding:34px 22px;
  text-align:center; border:1px solid rgba(255,255,255,.85);
  transition:transform .4s var(--lm-ease), box-shadow .4s var(--lm-ease), background .3s ease;
}
.lm-stat:hover { transform:translateY(-7px) scale(1.02); box-shadow:var(--lm-sh-lg); background:var(--lm-blanco); }
.lm-stat-n {
  display:block; font-family:var(--lm-ff-d); font-size:48px; font-weight:600;
  line-height:1; margin-bottom:9px;
  background:linear-gradient(135deg,var(--lm-violeta) 0%,var(--lm-lavanda) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.lm-stat-l { font-size:14px; color:var(--lm-suave); line-height:1.5; }

/* ===================================================================
   SOBRE MÍ
=================================================================== */
.lm-about {
  background:var(--lm-crema); padding:105px clamp(20px,5vw,60px);
}
.lm-about-grid {
  display:grid; grid-template-columns:.88fr 1.12fr; gap:78px;
  align-items:center; max-width:var(--lm-max); margin:0 auto;
}
.lm-about-vis { position:relative; }
.lm-about-frame {
  border-radius:8px 38px 38px 38px; overflow:hidden;
  aspect-ratio:4/5; box-shadow:var(--lm-sh-xl);
}
.lm-about-frame img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.lm-about-badge {
  position:absolute; bottom:-18px; right:-14px;
  background:var(--lm-blanco); border-radius:16px; padding:13px 17px;
  box-shadow:var(--lm-sh-lg); display:flex; align-items:center; gap:11px;
  animation:lm-float 6s ease-in-out infinite .5s; max-width:190px;
}
.lm-about-badge-icon {
  width:36px; height:36px; border-radius:50%; background:var(--lm-crema-r);
  display:flex; align-items:center; justify-content:center;
  color:var(--lm-dorado); font-size:15px; flex-shrink:0;
}
.lm-about-badge-txt { font-size:12.5px; font-weight:700; color:var(--lm-tinta); line-height:1.3; }
.lm-about-badge-txt small { display:block; font-weight:400; color:var(--lm-suave); font-size:11px; }
.lm-about-txt h2 { font-size:clamp(25px,3vw,36px) !important; margin:13px 0 18px !important; }
.lm-about-txt p  { font-size:17px; line-height:1.8; margin-bottom:16px; }

/* ===================================================================
   SERVICIOS
=================================================================== */
.lm-services {
  background:var(--lm-tinta); padding:105px clamp(20px,5vw,60px);
  position:relative; overflow:hidden;
}
.lm-services::before,
.lm-services::after {
  content:''; position:absolute; border-radius:50%; pointer-events:none;
}
.lm-services::before { width:480px; height:480px; top:-190px; right:-140px; background:rgba(169,139,199,.1); }
.lm-services::after  { width:320px; height:320px; bottom:-110px; left:-70px; background:rgba(168,213,216,.08); }

.lm-svc-in { max-width:var(--lm-max); margin:0 auto; position:relative; z-index:1; }
.lm-svc-head { text-align:center; max-width:600px; margin:0 auto 58px; }
.lm-svc-head h2 { color:var(--lm-crema) !important; font-size:clamp(27px,3.6vw,42px) !important; margin:13px 0 13px !important; }
.lm-svc-head p  { color:rgba(207,196,223,.8); font-size:18px; }

.lm-svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }

.lm-card {
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10);
  border-radius:20px; padding:38px 28px; display:flex; flex-direction:column;
  position:relative; overflow:hidden;
  transition:transform .4s var(--lm-ease), box-shadow .4s var(--lm-ease),
             background .3s ease, border-color .3s ease;
}
.lm-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--lm-dorado),var(--lm-violeta),transparent);
  opacity:0; transition:opacity .3s ease;
}
.lm-card:hover { transform:translateY(-10px); box-shadow:0 26px 52px rgba(0,0,0,.3); background:rgba(255,255,255,.09); border-color:rgba(169,139,199,.35); }
.lm-card:hover::before { opacity:1; }
.lm-card.featured {
  background:rgba(169,139,199,.18); border-color:rgba(169,139,199,.4);
  transform:translateY(-13px); box-shadow:0 28px 52px rgba(0,0,0,.25);
}
.lm-card.featured::before { opacity:1; }
.lm-card.featured:hover { transform:translateY(-20px); }

.lm-card-icon {
  width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:center;
  font-size:19px; color:var(--lm-dorado); margin-bottom:18px;
  transition:transform .4s var(--lm-ease), background .3s ease;
}
.lm-card:hover .lm-card-icon { transform:rotate(12deg) scale(1.1); background:rgba(201,168,106,.18); }
.lm-card-tag { font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--lm-dorado); margin-bottom:8px; font-family:var(--lm-ff-b); }
.lm-card h3  { font-size:19px !important; color:var(--lm-crema) !important; margin-bottom:10px !important; line-height:1.3 !important; }
.lm-card p   { font-size:14.5px; color:rgba(207,196,223,.76); line-height:1.7; flex:1; margin-bottom:22px; }
.lm-card-cta { display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:var(--lm-lav-s); transition:color .25s ease, gap .3s var(--lm-ease); margin-top:auto; text-decoration:none; }
.lm-card-cta .arr { transition:transform .3s var(--lm-ease); }
.lm-card:hover .lm-card-cta { color:var(--lm-dorado); gap:13px; }
.lm-card:hover .lm-card-cta .arr { transform:translateX(4px); }
.lm-svc-cta { text-align:center; margin-top:50px; }

/* ===================================================================
   PROCESO
=================================================================== */
.lm-process { background:var(--lm-crema); padding:105px clamp(20px,5vw,60px); }
.lm-process-grid {
  display:grid; grid-template-columns:.84fr 1.16fr; gap:85px;
  align-items:center; max-width:var(--lm-max); margin:0 auto;
}
.lm-proc-frame {
  position:relative; border-radius:38px 8px 38px 38px;
  overflow:hidden; aspect-ratio:3/4; box-shadow:var(--lm-sh-xl);
}
.lm-proc-frame img { width:100%; height:100%; object-fit:cover; }
.lm-proc-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(58,46,77,.72) 0%,transparent 54%);
  display:flex; align-items:flex-end; padding:24px 22px;
}
.lm-proc-overlay p { font-family:var(--lm-ff-d); font-size:16.5px; font-style:italic; color:rgba(248,243,232,.9); line-height:1.4; }
.lm-proc-txt h2 { font-size:clamp(23px,2.8vw,34px) !important; margin:13px 0 36px !important; line-height:1.25 !important; }
.lm-step { display:flex; gap:19px; padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid rgba(169,139,199,.18); transition:transform .3s var(--lm-ease); }
.lm-step:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.lm-step:hover { transform:translateX(5px); }
.lm-step-n { font-family:var(--lm-ff-d); font-size:28px; font-weight:600; color:var(--lm-dorado); line-height:1; min-width:46px; flex-shrink:0; padding-top:2px; }
.lm-step h4 { font-size:16.5px !important; margin-bottom:5px !important; }
.lm-step p  { font-size:14.5px; line-height:1.65; margin:0; }

/* ===================================================================
   TESTIMONIOS
=================================================================== */
.lm-testimonials {
  background:var(--lm-crema-r); padding:105px clamp(20px,5vw,60px);
  position:relative; overflow:hidden;
}
.lm-testimonials::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 60% at 80% 50%,rgba(207,196,223,.22) 0%,transparent 70%); pointer-events:none;
}
.lm-test-in { max-width:var(--lm-max); margin:0 auto; position:relative; z-index:1; }
.lm-test-head { text-align:center; max-width:560px; margin:0 auto 50px; }
.lm-test-head h2 { font-size:clamp(25px,3.2vw,36px) !important; margin:13px 0 !important; }
.lm-t-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.lm-t {
  background:var(--lm-blanco); border-radius:20px; padding:30px 24px;
  box-shadow:0 2px 8px rgba(58,46,77,.07); border:1px solid rgba(169,139,199,.11);
  display:flex; flex-direction:column; gap:13px;
  transition:transform .4s var(--lm-ease), box-shadow .4s var(--lm-ease);
}
.lm-t:hover { transform:translateY(-7px); box-shadow:var(--lm-sh-lg); }
.lm-t-stars  { color:var(--lm-dorado); font-size:13px; letter-spacing:2px; }
.lm-t-quote  { font-size:36px; color:var(--lm-lav-s); font-family:var(--lm-ff-d); line-height:1; }
.lm-t-text   { font-size:15px; font-style:italic; line-height:1.72; flex:1; color:var(--lm-tinta); }
.lm-t-author { display:flex; align-items:center; gap:11px; padding-top:11px; border-top:1px solid rgba(169,139,199,.14); }
.lm-t-av   { width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg,var(--lm-lav-s),var(--lm-turquesa)); display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0; }
.lm-t-name { font-size:13.5px; font-weight:700; color:var(--lm-tinta); }
.lm-t-role { font-size:12px; color:var(--lm-vio-d); }

/* ===================================================================
   BLOG (home preview + loop real de WordPress)
=================================================================== */
.lm-blog { background:var(--lm-crema); padding:105px clamp(20px,5vw,60px); }
.lm-blog-in { max-width:var(--lm-max); margin:0 auto; }
.lm-blog-head { text-align:center; max-width:540px; margin:0 auto 48px; }
.lm-blog-head h2 { font-size:clamp(25px,3.2vw,36px) !important; margin:13px 0 11px !important; }
.lm-blog-head p  { font-size:17px; }
.lm-blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }

/* Tarjeta — aplica al HTML estático y al loop WP */
.lm-bc, .hentry, article.post {
  background:var(--lm-blanco); border-radius:20px; overflow:hidden;
  box-shadow:0 2px 8px rgba(58,46,77,.07); border:1px solid rgba(169,139,199,.10);
  display:flex; flex-direction:column;
  transition:transform .4s var(--lm-ease), box-shadow .4s var(--lm-ease);
}
.lm-bc:hover, .hentry:hover { transform:translateY(-8px); box-shadow:var(--lm-sh-lg); }
.lm-bc-img { aspect-ratio:3/2; overflow:hidden; background:var(--lm-crema-r); }
.lm-bc-img img { width:100%; height:100%; object-fit:cover; transition:transform .65s ease; }
.lm-bc:hover .lm-bc-img img { transform:scale(1.06); }
.lm-bc-body { padding:20px 18px 22px; flex:1; display:flex; flex-direction:column; }
.lm-bc-cat  { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--lm-vio-d); margin-bottom:7px; font-family:var(--lm-ff-b); }
.lm-bc h3   { font-size:17px !important; margin-bottom:8px !important; line-height:1.35 !important; }
.lm-bc p    { font-size:14px; line-height:1.65; margin-bottom:13px; flex:1; }
.lm-bc-more { font-size:13.5px; font-weight:700; color:var(--lm-violeta); transition:color .25s ease; margin-top:auto; text-decoration:none; }
.lm-bc:hover .lm-bc-more { color:var(--lm-vio-d); }

/* Paginación WordPress */
.pagination,.nav-links { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:50px; flex-wrap:wrap; }
.pagination .page-numbers,.nav-links .page-numbers {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%; font-size:14.5px; font-weight:600;
  color:var(--lm-tinta); border:1.5px solid rgba(169,139,199,.25); transition:.3s ease;
}
.pagination .page-numbers.current,.pagination .page-numbers:hover,
.nav-links .page-numbers.current,.nav-links .page-numbers:hover {
  background:var(--lm-violeta); color:#fff; border-color:var(--lm-violeta);
}

/* ===================================================================
   CTA FINAL
=================================================================== */
.lm-cta {
  background:var(--lm-tinta); padding:110px clamp(20px,5vw,60px);
  text-align:center; position:relative; overflow:hidden;
}
.lm-cta::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 55% 70% at 15% 50%,rgba(169,139,199,.18) 0%,transparent 70%),
    radial-gradient(ellipse 40% 55% at 85% 60%,rgba(168,213,216,.12) 0%,transparent 70%);
}
.lm-cta-in { position:relative; z-index:1; max-width:660px; margin:0 auto; }
.lm-cta-in h2 { font-size:clamp(27px,3.8vw,44px) !important; color:var(--lm-crema) !important; line-height:1.18 !important; margin:15px 0 17px !important; }
.lm-cta-in p  { font-size:18px; color:rgba(207,196,223,.8); margin-bottom:36px; line-height:1.65; }
.lm-cta-btns  { display:flex; align-items:center; justify-content:center; gap:13px; flex-wrap:wrap; }

/* ===================================================================
   FOOTER
=================================================================== */
.lm-footer { background:var(--lm-tinta); color:var(--lm-lav-s); padding:76px clamp(20px,5vw,60px) 26px; }
.lm-footer-in { max-width:var(--lm-max); margin:0 auto; }
.lm-footer-top { display:grid; grid-template-columns:1.3fr .8fr .8fr 1.2fr; gap:42px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.08); }
.lm-footer-brand p { font-size:14px; line-height:1.7; max-width:265px; margin-top:11px; }
.lm-logo.inv { color:var(--lm-crema) !important; }
.lm-logo.inv strong { color:var(--lm-dorado) !important; }
.lm-fc-title { font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--lm-crema); margin-bottom:17px; font-family:var(--lm-ff-b); }
.lm-footer-col { display:flex; flex-direction:column; }
.lm-footer-col a { font-size:13.5px; color:var(--lm-lav-s); margin-bottom:10px; text-decoration:none; transition:color .25s ease, padding-left .25s ease; }
.lm-footer-col a:hover { color:var(--lm-dorado); padding-left:4px; }
.lm-nl-note { font-size:13px; line-height:1.65; margin-bottom:13px; }
.lm-nl-form { display:flex; }
.lm-nl-form input {
  flex:1; padding:11px 13px; border:1px solid rgba(255,255,255,.13); border-right:none;
  background:rgba(255,255,255,.05); color:var(--lm-crema); font-size:13.5px;
  font-family:var(--lm-ff-b); border-radius:100px 0 0 100px; outline:none;
}
.lm-nl-form input::placeholder { color:rgba(248,243,232,.4); }
.lm-nl-form button {
  background:var(--lm-dorado); color:var(--lm-tinta); border:none; padding:0 17px;
  border-radius:0 100px 100px 0; font-size:13px; font-weight:700; cursor:pointer;
  transition:background .25s ease;
}
.lm-nl-form button:hover { background:var(--lm-violeta); color:#fff; }
.lm-footer-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:13px; padding-top:22px; font-size:12.5px; color:rgba(207,196,223,.5); }
.lm-socials { display:flex; gap:8px; }
.lm-socials a {
  width:33px; height:33px; border-radius:50%; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10); display:flex; align-items:center; justify-content:center;
  font-size:12.5px; color:var(--lm-lav-s); text-decoration:none;
  transition:background .3s ease, transform .3s var(--lm-ease);
}
.lm-socials a:hover { background:var(--lm-violeta); color:#fff; transform:translateY(-3px); }

/* ===================================================================
   RESPONSIVE
=================================================================== */
@media (max-width:1024px) {
  .lm-hero-grid { grid-template-columns:1fr; min-height:auto; padding-top:105px; padding-bottom:55px; }
  .lm-hero-visual { order:-1; max-width:340px; margin:0 auto; }
  .lm-fc { display:none; }
  .lm-about-grid, .lm-process-grid { grid-template-columns:1fr; gap:44px; }
  .lm-about-badge { right:0; bottom:-14px; }
  .lm-svc-grid, .lm-t-grid, .lm-blog-grid { grid-template-columns:1fr; }
  .lm-card.featured { transform:none; }
  .lm-card.featured:hover { transform:translateY(-10px); }
  .lm-proc-frame { max-width:360px; margin:0 auto; }
  .lm-stats-grid { grid-template-columns:1fr; }
  .lm-footer-top { grid-template-columns:1fr 1fr; gap:30px; }
  .lm-nav { display:none; }
  .lm-burger { display:flex; }
}
@media (max-width:640px) {
  .lm-form { padding:22px 15px; }
  .lm-form-row { grid-template-columns:1fr; }
  .lm-footer-top { grid-template-columns:1fr; }
  .lm-footer-bottom { flex-direction:column; align-items:flex-start; }
  .lm-h1 { font-size:clamp(29px,9vw,35px) !important; }
}

/* Menú móvil */
@media (max-width:1024px) {
  .lm-nav {
    display:flex; position:fixed; top:0; right:-100%;
    width:min(280px,82vw); height:100vh;
    background:var(--lm-crema); flex-direction:column;
    align-items:flex-start; justify-content:flex-start;
    padding:85px 26px 38px; gap:22px;
    box-shadow:-8px 0 36px rgba(58,46,77,.15);
    transition:right .4s var(--lm-ease); z-index:9999; overflow-y:auto;
  }
  .lm-nav.open { right:0; }
  .lm-nav a { font-size:19px; }
}
/* ===================================================================
   FIX: Waves SVG alineadas — eliminar gaps de Elementor
   =================================================================== */

/* Quitar padding del widget container en secciones con wave */
.elementor-widget-html .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0;
}
/* Pero restaurar line-height para el contenido que no es wave */
.elementor-widget-html .elementor-widget-container > *:not(.lm-wave) {
  line-height: 1.65;
}

/* La wave siempre al ras del borde inferior de su contenedor */
.lm-wave {
  display: block !important;
  width: 100% !important;
  line-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  position: relative !important;
  bottom: 0 !important;
  /* -1px evita el pixel gap entre SVG y la siguiente sección */
  margin-bottom: -1px !important;
}

/* Quitar padding bottom en secciones que terminan con wave */
.elementor-top-section:has(.lm-wave) {
  padding-bottom: 0 !important;
}

/* Fallback sin :has() para navegadores más antiguos */
.elementor-section.elementor-section-full_width .elementor-column {
  padding-bottom: 0 !important;
}
/* Solo en columnas que contienen wave */
.elementor-widget-html:last-child {
  display: block;
  line-height: 0;
}

/* La sección completa: quitar cualquier gap entre secciones */
.elementor-top-section {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ===================================================================
   WIDGET POSTS DE ELEMENTOR PRO — estilos integrados con lm-*
=================================================================== */
.lm-posts-widget.elementor-posts-container {
  gap: 24px !important;
}

/* Tarjeta */
.lm-posts-widget .elementor-post {
  background: var(--lm-blanco) !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 8px rgba(58,46,77,.07) !important;
  border: 1px solid rgba(169,139,199,.10) !important;
  transition: transform .4s cubic-bezier(0.16,1,0.3,1),
              box-shadow .4s cubic-bezier(0.16,1,0.3,1) !important;
}
.lm-posts-widget .elementor-post:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 24px 60px rgba(58,46,77,.16) !important;
}

/* Imagen */
.lm-posts-widget .elementor-post__thumbnail__link {
  display: block;
  overflow: hidden;
}
.lm-posts-widget .elementor-post__thumbnail__link img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  transition: transform .65s ease !important;
  display: block;
}
.lm-posts-widget .elementor-post:hover .elementor-post__thumbnail__link img {
  transform: scale(1.06) !important;
}

/* Contenido de la tarjeta */
.lm-posts-widget .elementor-post__text {
  padding: 22px 20px 24px !important;
}

/* Categoría / meta */
.lm-posts-widget .elementor-post__meta-data {
  font-family: var(--lm-ff-b) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--lm-vio-d) !important;
  margin-bottom: 8px !important;
}

/* Título */
.lm-posts-widget .elementor-post__title {
  margin-bottom: 10px !important;
}
.lm-posts-widget .elementor-post__title a {
  font-family: var(--lm-ff-d) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--lm-tinta) !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  transition: color .25s ease !important;
}
.lm-posts-widget .elementor-post__title a:hover {
  color: var(--lm-vio-d) !important;
}

/* Excerpt */
.lm-posts-widget .elementor-post__excerpt p {
  font-family: var(--lm-ff-b) !important;
  font-size: 14px !important;
  color: var(--lm-suave) !important;
  line-height: 1.65 !important;
  margin-bottom: 14px !important;
}

/* Read more */
.lm-posts-widget .elementor-post__read-more {
  font-family: var(--lm-ff-b) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  color: var(--lm-violeta) !important;
  text-decoration: none !important;
  transition: color .25s ease, gap .3s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.lm-posts-widget .elementor-post:hover .elementor-post__read-more {
  color: var(--lm-vio-d) !important;
}

/* Sin paginación en home (solo 3 posts) */
.lm-posts-widget .elementor-pagination { display: none; }

/* Responsive posts */
@media (max-width: 1024px) {
  .lm-posts-widget .elementor-posts-container {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 640px) {
  .lm-posts-widget .elementor-posts-container {
    grid-template-columns: 1fr !important;
  }
  .lm-posts-widget .elementor-post__thumbnail__link img {
    height: 200px !important;
  }
}

/* ===================================================================
   CONTACTO — Página independiente y sección
   Reglas limpias, sin duplicados, sin overrides de columnas en desktop
=================================================================== */

/* ── Hero compacto de página interna ── */
.lm-page-hero {
  text-align: center;
  max-width: 640px;
  margin: 0 auto;
  padding: 0;
}
.lm-page-hero .lm-eyebrow { margin-bottom: 16px; }
.lm-page-hero__title {
  font-family: var(--lm-ff-d) !important;
  font-size: clamp(34px, 4.5vw, 52px) !important;
  font-weight: 600 !important;
  color: var(--lm-tinta) !important;
  line-height: 1.12 !important;
  margin: 0 0 18px !important;
}
.lm-page-hero__sub {
  font-size: 18px;
  color: var(--lm-suave);
  line-height: 1.7;
}

/* ── Columna izquierda: Info ── */
.lm-contact-info { padding: 8px 0; }
.lm-contact-info .lm-eyebrow { margin-bottom: 16px; display: block; }

.lm-contact-info__block { margin-bottom: 30px; }
.lm-contact-info__block:last-child { margin-bottom: 0; }

.lm-contact-info__block h3 {
  font-family: var(--lm-ff-d) !important;
  font-size: 22px !important;
  color: var(--lm-tinta) !important;
  font-weight: 600 !important;
  margin: 0 0 12px !important;
  line-height: 1.3 !important;
}
.lm-contact-info__block h4 {
  font-family: var(--lm-ff-b) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--lm-tinta) !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  margin: 0 0 16px !important;
}
.lm-contact-info__block p {
  font-size: 16px;
  color: var(--lm-suave);
  line-height: 1.75;
  margin: 0;
}

/* Pasos numerados */
.lm-contact-step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 13px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(169,139,199,.15);
}
.lm-contact-step:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.lm-contact-step__num {
  font-family: var(--lm-ff-d);
  font-size: 24px;
  font-weight: 600;
  color: var(--lm-dorado);
  line-height: 1;
  min-width: 38px;
  flex-shrink: 0;
  padding-top: 1px;
}
.lm-contact-step p {
  font-size: 15px;
  color: var(--lm-suave);
  line-height: 1.6;
  margin: 0;
}

/* Detalles de contacto */
.lm-contact-info__details { margin: 24px 0 20px; }
.lm-contact-row {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 10px;
  font-size: 15px;
  font-weight: 600;
  color: var(--lm-tinta);
}
.lm-contact-ico {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--lm-blanco);
  display: flex; align-items: center; justify-content: center;
  color: var(--lm-violeta); font-size: 14px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(58,46,77,.08);
}

/* Promesa */
.lm-contact-promise {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 20px;
  padding: 16px 18px;
  background: rgba(255,255,255,.6);
  border-radius: 14px;
  border-left: 3px solid var(--lm-dorado);
}
.lm-contact-promise > span {
  color: var(--lm-dorado);
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 1px;
}
.lm-contact-promise > p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--lm-tinta);
  margin: 0;
  font-style: italic;
}

/* ── Columna derecha: CF7 con caja visual ── */
/* El widget shortcode de Elementor PRO */
.lm-cf7-col > .elementor-widget-container {
  background: var(--lm-blanco) !important;
  border-radius: 20px !important;
  padding: 44px 40px !important;
  box-shadow: 0 20px 56px rgba(58,46,77,.16) !important;
  margin: 0 !important;
}

/* CF7 — formulario */
.wpcf7 { width: 100%; }
.wpcf7 form.wpcf7-form { display: block; }
.wpcf7 p {
  margin: 0 0 15px 0 !important;
  padding: 0 !important;
}
.wpcf7 p:last-child { margin-bottom: 0 !important; }

/* Labels */
.wpcf7 label {
  display: block !important;
  font-family: var(--lm-ff-b) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--lm-tinta) !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  margin-bottom: 7px !important;
}

/* Inputs, textarea, select */
.wpcf7 input:not([type="submit"]),
.wpcf7 textarea,
.wpcf7 select {
  display: block !important;
  width: 100% !important;
  padding: 13px 15px !important;
  border: 1.5px solid rgba(169,139,199,.25) !important;
  border-radius: 11px !important;
  font-family: var(--lm-ff-b) !important;
  font-size: 15px !important;
  color: var(--lm-tinta) !important;
  background: var(--lm-crema) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color .3s ease, box-shadow .3s ease, background .3s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  border-color: var(--lm-violeta) !important;
  background: var(--lm-blanco) !important;
  box-shadow: 0 0 0 4px rgba(169,139,199,.14) !important;
}
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: rgba(107,94,115,.4) !important;
  font-style: italic;
}
.wpcf7 textarea {
  resize: vertical !important;
  min-height: 120px !important;
}
.wpcf7 select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238E6FAE' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-color: var(--lm-crema) !important;
  padding-right: 38px !important;
  cursor: pointer !important;
}

/* Submit */
.wpcf7 input[type="submit"] {
  display: block !important;
  width: 100% !important;
  padding: 16px 32px !important;
  background: var(--lm-tinta) !important;
  color: var(--lm-crema) !important;
  border: none !important;
  border-radius: 100px !important;
  font-family: var(--lm-ff-b) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: .03em !important;
  cursor: pointer !important;
  margin-top: 8px !important;
  box-shadow: 0 6px 20px rgba(58,46,77,.28) !important;
  transition: background .3s ease, transform .35s cubic-bezier(0.16,1,0.3,1), box-shadow .35s ease !important;
}
.wpcf7 input[type="submit"]:hover {
  background: var(--lm-vio-d) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 14px 32px rgba(58,46,77,.36) !important;
}

/* Mensajes CF7 */
.wpcf7-response-output {
  margin: 14px 0 0 !important;
  padding: 12px 16px !important;
  border-radius: 10px !important;
  font-family: var(--lm-ff-b) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border: none !important;
  text-align: center !important;
}
.wpcf7-mail-sent-ok {
  background: rgba(201,216,168,.25) !important;
  color: #3d5c1e !important;
  border-left: 3px solid #7aaa3c !important;
}
.wpcf7-validation-errors,
.wpcf7-mail-sent-ng {
  background: rgba(201,168,106,.15) !important;
  color: var(--lm-tinta) !important;
  border-left: 3px solid var(--lm-dorado) !important;
}
.wpcf7-not-valid-tip {
  font-family: var(--lm-ff-b) !important;
  font-size: 12px !important;
  color: #c0392b !important;
  margin-top: 4px !important;
  display: block !important;
}
.wpcf7-not-valid {
  border-color: rgba(192,57,43,.45) !important;
}

/* ── Responsive contacto ── */
/* IMPORTANTE: NO tocar el ancho de columnas de Elementor en desktop */
@media (max-width: 1024px) {
  .lm-cf7-col > .elementor-widget-container {
    padding: 32px 24px !important;
  }
}
@media (max-width: 767px) {
  /* Solo en mobile colapsar a 1 columna — Elementor lo hace solo,
     pero reforzamos el espaciado */
  .lm-contact-info {
    margin-bottom: 40px;
  }
  .lm-cf7-col > .elementor-widget-container {
    padding: 26px 18px !important;
  }
  .lm-contact-promise {
    display: none; /* Simplificar en mobile */
  }
}
