/* ============================================================
   LEAD THE MOOD — HOME "SOCIAL MOOD"
   Luz, color y juguete. Cargado solo en front-page.php.
   ============================================================ */

/* ------------------------------------------------ G-FLOW core
   (traído del proyecto gflow: registro tipado + ciclo de pares
   de color + rotación del ángulo; sin esto las variables no
   interpolan y el gradiente se queda congelado) */
@property --ang { syntax: '<angle>'; initial-value: 45deg; inherits: true; }
@property --cA  { syntax: '<color>'; initial-value: #002bff; inherits: true; }
@property --cB  { syntax: '<color>'; initial-value: #bf0fff; inherits: true; }

@keyframes pair-shift {
	0%   { --cA:#002bff; --cB:#bf0fff; }  /* azul → magenta */
	25%  { --cA:#ff3b30; --cB:#bf0fff; }  /* rojo → magenta */
	50%  { --cA:#00e632; --cB:#0044ff; }  /* verde → azul */
	75%  { --cA:#0066ff; --cB:#ff3b30; }  /* azul → rojo */
	100% { --cA:#002bff; --cB:#bf0fff; }  /* cierre del bucle */
}
@keyframes angle-rotate {
	to { --ang: 405deg; }
}

/* ------------------------------------------------ tokens */
body.home,
.ltmhome{
	--lm-bg:#faf8ff;               /* lienzo claro */
	--lm-ink:#191338;              /* tinta índigo */
	--lm-dim:rgba(25,19,56,.55);
	--lm-line:rgba(25,19,56,.12);
	--lm-card:#ffffff;
	--lm-font:'Poppins',sans-serif;
	--lm-ease:cubic-bezier(.22,1,.36,1);
	/* mood por defecto: Eléctrico (marca) */
	--mA:#002bff; --mB:#bf0fff; --mC:#ff4fd8; --mD:#ffc03a;
}
.ltmhome[data-mood="sunset"]{ --mA:#ff6a3d; --mB:#ff2f92; --mC:#ffb03a; --mD:#a833ff; }
.ltmhome[data-mood="mediterraneo"]{ --mA:#00c2ff; --mB:#2b6bff; --mC:#3dffc0; --mD:#ff4fd8; }

html{ scroll-behavior:smooth; }
body.home{
	background:var(--lm-bg);
	color:var(--lm-ink);
	font-family:var(--lm-font);
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
}
.ltmhome{ display:block; overflow:hidden; }
/* G-FLOW: el gradiente vivo de la marca. Un solo reloj en el body:
   pair-shift cicla los pares de color y angle-rotate gira el ángulo
   (keyframes y @property ya definidos en style.css). Header, main y
   confetti heredan --ang/--cA/--cB animados y quedan en sincronía. */
body.home{
	--ang:45deg; --cA:#002bff; --cB:#bf0fff;
	animation:pair-shift 16s linear infinite, angle-rotate 28s linear infinite;
}
.ltmhome ::selection{ background:var(--mB); color:#fff; }
.ltmhome a{ color:inherit; text-decoration:none; }
.ltmhome img{ max-width:100%; display:block; }

/* ------------------------------------------------ header (solo home) */
.home{ --headerheight:88px; }
.home .cheader{ background:transparent; box-shadow:none; transition:background .4s, box-shadow .4s; }
.home .cheader.is-scrolled{ background:rgba(250,248,255,.8); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--lm-line); }
.home .cheaderfix{ display:none; }
.home .ctopbar{ display:none; }
.home .cheaderinner{ height:88px; padding-left:2vw; padding-right:2vw; }
/* arriba (sobre el gradiente): blanco · con scroll (fondo claro): tinta */
.home .cheaderlogo a{ color:#fff; transition:opacity .3s, color .4s; }
.home .cheader.is-scrolled .cheaderlogo a{ color:var(--lm-ink); }
.home .cheaderlogo a:hover{ opacity:.8; }
.home .cheaderlogo svg{ height:56px; width:auto; }
.home .clanguages{ display:none; }
.home .iusercomments{ display:none !important; }
.home .cheader .cmenu{ display:flex; align-items:center; gap:4px; }
.home .cheader .cmenu li a{
	display:inline-block; color:#fff; font-family:var(--lm-font);
	font-size:13.5px; font-weight:500; letter-spacing:.015em; line-height:1;
	padding:11px 17px; border-radius:100px; opacity:.85;
	transition:opacity .25s, background .25s, border-color .25s, color .4s;
}
.home .cheader .cmenu li a:hover{ opacity:1; background:rgba(255,255,255,.16); }
.home .cheader.is-scrolled .cmenu li a{ color:var(--lm-ink); }
.home .cheader.is-scrolled .cmenu li a:hover{ background:rgba(25,19,56,.07); }
.home .cheader .cmenu li:last-child a{
	opacity:1; border:1.5px solid rgba(255,255,255,.6); margin-left:10px;
}
.home .cheader.is-scrolled .cmenu li:last-child a{ border-color:var(--lm-ink); }
.home .cheader .cmenu li:last-child a:hover{
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
	border-color:transparent; color:#fff;
}
.home .cburger .cbar{ background:#fff; transition:background .4s; }
.home .cheader.is-scrolled .cburger .cbar{ background:var(--lm-ink); }
@media (max-width:900px){
	.home .cmenuwrap{ display:none; } /* menú móvil: pendiente de decidir burger vs nav corta */
	.home .cheaderlogo svg{ height:44px; }
}

/* ------------------------------------------------ botones */
.lbtn{
	display:inline-flex; align-items:center; justify-content:center;
	padding:17px 34px; border-radius:100px;
	font-size:15px; font-weight:600; letter-spacing:.01em; line-height:1;
	transition:transform .35s var(--lm-ease), box-shadow .35s var(--lm-ease), background .35s, color .35s, border-color .35s;
	will-change:transform;
}
.lbtn-solid{
	color:#fff;
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
	box-shadow:0 14px 34px -12px var(--cB);
}
.lbtn-solid:hover{ box-shadow:0 20px 44px -10px var(--cB); }
.lbtn-ghost{ color:var(--lm-ink); border:1.5px solid rgba(25,19,56,.35); background:rgba(255,255,255,.6); }
.lbtn-ghost:hover{ border-color:var(--lm-ink); }
.lbtn-invert{ background:#191338; color:#fff; }
.lbtn-invert:hover{ background:#0d0a24; }
.lbtn-ghostdark{ border:1.5px solid rgba(255,255,255,.7); color:#fff; }
.lbtn-ghostdark:hover{ border-color:#fff; background:rgba(255,255,255,.14); }

/* ============================================================
   HERO
   ============================================================ */
.lhero{
	position:relative; min-height:100vh; min-height:100svh;
	display:flex; align-items:center; justify-content:center;
	padding:120px 5vw 110px;
	overflow:hidden;
}

/* ---------- fondo g-flow ---------- */
#moodgl{
	position:absolute; inset:0; z-index:0;
	width:100%; height:100%; display:block;
}
/* fallback sin WebGL: el mismo g-flow en CSS puro */
.no-webgl #moodgl{ display:none; }
.no-webgl .lhero{
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
}

/* ---------- copy ---------- */
.lhero-copy{ position:relative; z-index:4; isolation:isolate; text-align:center; max-width:1100px; }
.lhero-copy:before{
	content:""; position:absolute; z-index:-1; pointer-events:none;
	inset:-10vh -10vw;
	background:radial-gradient(ellipse at center,rgba(15,10,52,.30) 0%,rgba(15,10,52,.20) 48%,transparent 76%);
	filter:blur(10px);
}
.lhero-h1{ margin:0; font-weight:500; }
.lhero-kicker{
	display:inline-flex; align-items:center; gap:10px;
	font-size:clamp(10px,1.05vw,10px); font-weight:600; letter-spacing:.14em;
	text-transform:uppercase; color:#fff;
	border:1.5px solid rgba(255,255,255,.45); border-radius:100px;
	padding:10px 22px; margin-bottom:1.2vh;
	background:rgba(255,255,255,.14); backdrop-filter:blur(8px);
}
.lhero-display{ display:block; }
.lhl{
	display:block; overflow:hidden;
	font-size:clamp(44px,7.6vw,88px);
	font-weight:700; line-height:1.04; letter-spacing:-.035em;
	color:#fff;
	text-shadow:0 2px 30px rgba(10,5,40,.18);
}
.lhl i{
	font-style:normal; color:#fff;
	animation:ldot 2.6s ease-in-out infinite;
}
.lhl:nth-child(2) i{ animation-delay:.4s; }
.lhl:nth-child(3) i{ animation-delay:.8s; }
@keyframes ldot{ 0%,100%{ opacity:1; } 50%{ opacity:.3; } }
.lhl .lchar{ display:inline-block; will-change:transform; }
/* la 3ª línea, en blanco glass sobre el gradiente */
.lhl-grad{ color:#fff; }
.lhero-sub{
	margin:10px auto 0; max-width:620px;
	font-size:clamp(14px,1.35vw,16px); font-weight:400; line-height:1.65;
	color:rgba(255,255,255,.88);
	text-shadow:0 1px 16px rgba(10,5,40,.2);
}
.lhero-ctas{ margin-top:2.2vh; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
/* sobre el gradiente: primaria blanca con tinta, secundaria glass */
.lhero .lbtn-solid{
	background-image:none; background-color:#fff; color:var(--lm-ink);
	box-shadow:0 18px 44px -14px rgba(10,5,40,.5);
}
.lhero .lbtn-solid:hover{ box-shadow:0 24px 54px -12px rgba(10,5,40,.6); }
.lhero .lbtn-ghost{
	color:#fff; border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.12);
	backdrop-filter:blur(8px);
}
.lhero .lbtn-ghost:hover{ border-color:#fff; }

/* ---------- mood cards: polaroids a todo color ---------- */
.lhero-stage{ position:absolute; inset:0; z-index:3; pointer-events:none; }
.moodcard{
	position:absolute; top:50%; left:50%; margin:0;
	width:clamp(150px,var(--mw),320px);
	transform:translate(-50%,-50%) translate(var(--mx),var(--my)) rotate(var(--mr));
	pointer-events:auto; cursor:grab;
	opacity:0; /* intro via JS */
}
.moodcard:active{ cursor:grabbing; }
.moodcard-media{
	position:relative; border-radius:16px; overflow:hidden;
	border:7px solid #fff; background:#fff;
	box-shadow:0 24px 60px -18px rgba(25,19,56,.35);
	transition:box-shadow .5s var(--lm-ease);
}
.moodcard:hover .moodcard-media{ box-shadow:0 34px 80px -18px color-mix(in srgb, var(--mB) 55%, rgba(25,19,56,.3)); }
.moodcard-media img{
	width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:9px;
	transform:scale(1.02);
	transition:transform .8s var(--lm-ease);
}
.moodcard:hover img{ transform:scale(1.08); }
/* lavado de mood muy sutil: la foto manda, el mood acompaña */
.moodcard-tint{
	position:absolute; inset:0; border-radius:9px;
	background:linear-gradient(45deg,var(--mA),var(--mB));
	mix-blend-mode:color; opacity:.14;
	transition:opacity .5s var(--lm-ease), background 1s;
}
.moodcard:hover .moodcard-tint,
.moodcard.is-drag .moodcard-tint{ opacity:0; }
.moodcard figcaption{
	position:absolute; left:10px; right:10px; bottom:10px; z-index:2;
	display:flex; align-items:center; gap:8px;
	font-size:11.5px; font-weight:600; color:var(--lm-ink);
	background:rgba(255,255,255,.9); border-radius:100px; padding:8px 12px;
	box-shadow:0 6px 18px rgba(25,19,56,.18);
	white-space:nowrap; overflow:hidden;
}
.mc-type{ color:var(--mB); font-weight:700; text-transform:uppercase; font-size:9.5px; letter-spacing:.08em; transition:color .8s; }
.mc-name{ overflow:hidden; text-overflow:ellipsis; }
.mc-likes{ margin-left:auto; opacity:.75; }

/* ---------- stickers sociales ---------- */
.lsticker{
	position:absolute; top:50%; left:50%;
	transform:translate(-50%,-50%) translate(var(--mx),var(--my)) rotate(var(--mr));
	pointer-events:auto; z-index:4;
	font-family:var(--lm-font); font-weight:600; color:var(--lm-ink);
	background:#fff; border:none; border-radius:100px;
	box-shadow:0 12px 30px -8px rgba(25,19,56,.28);
	opacity:0; /* intro via JS */
	transition:box-shadow .3s;
	cursor:pointer;
}
.lsticker:hover{ box-shadow:0 18px 40px -8px rgba(25,19,56,.4); }
.lst-like{
	display:inline-flex; align-items:center; gap:9px;
	font-size:14px; padding:13px 20px;
}
.lst-heart{ color:#ff3b6b; font-size:17px; line-height:1; transition:transform .2s; }
.lst-like:active .lst-heart{ transform:scale(1.5); }
.lst-pill{
	display:inline-block; font-size:13.5px; padding:12px 19px;
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
	color:#fff; border:3px solid #fff;
}
.lst-comment{
	display:inline-block; font-size:13.5px; padding:13px 19px;
	border-radius:18px 18px 18px 4px;
}
.lst-emoji{
	font-size:34px; background:transparent; box-shadow:none;
	filter:drop-shadow(0 10px 18px rgba(25,19,56,.25));
}
.lst-emoji:hover{ box-shadow:none; }

/* corazones del confetti */
.lconfetti{
	position:fixed; z-index:80; left:0; top:0; pointer-events:none;
	font-size:18px; line-height:1; will-change:transform,opacity;
}

/* ---------- burbuja que sigue al cursor, solo dentro del hero ---------- */
.lhero-cursor-hint{
	position:fixed; z-index:90; top:0; left:0;
	pointer-events:none; opacity:0;
	transform:translate3d(-1000px,-1000px,0);
	transition:opacity .35s var(--lm-ease);
	will-change:transform,opacity;
}
.lhero-cursor-hint span{
	display:inline-block; transform:translate(-50%,-160%);
	font-family:var(--lm-font); font-size:13px; font-weight:600; color:var(--lm-ink);
	background:#fff; border-radius:100px; padding:9px 16px;
	box-shadow:0 10px 26px -10px rgba(25,19,56,.4);
	white-space:nowrap;
}
.lhero-cursor-hint.is-visible{ opacity:1; }

/* ---------- scroll hint ---------- */
.lhero-scroll{
	position:absolute; z-index:5; right:5vw; bottom:118px;
	width:26px; height:42px; border:2px solid rgba(255,255,255,.55); border-radius:14px;
}
.lhero-scroll span{
	position:absolute; top:7px; left:50%; width:3px; height:8px; margin-left:-1.5px;
	border-radius:3px; background:#fff; opacity:.85;
	animation:lscroll 1.6s ease-in-out infinite;
}
@keyframes lscroll{ 0%{ transform:translateY(0); opacity:.8; } 70%{ transform:translateY(14px); opacity:0; } 100%{ transform:translateY(0); opacity:0; } }

/* ---------- marquee ---------- */
.lhero-marquee{
	position:absolute; z-index:5; left:0; right:0; bottom:0;
	border-top:1px solid rgba(255,255,255,.28);
	background:rgba(255,255,255,.14); backdrop-filter:blur(12px);
	padding:18px 0; overflow:hidden; white-space:nowrap;
}
.lmq{ display:inline-block; padding-right:12px; font-size:14px; font-weight:500; letter-spacing:.05em; color:rgba(255,255,255,.92); }
.lmq b{ color:#fff; font-weight:400; padding:0 14px; opacity:.75; }
.ejq-jqmarquesina{ display:inline-block; white-space:nowrap; }
.ejq-jqmarquesinainner{ display:inline-block; }

/* ============================================================
   SECCIONES
   ============================================================ */
.lmanifest,.lservices,.lsectors,.lnumbers,.lcases,.laudit,.lfaq{ position:relative; padding:12vh 5vw; }
.lsec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:5vw; margin-bottom:7vh; flex-wrap:wrap; }
.lsec-title{
	margin:0; font-size:clamp(34px,4.6vw,68px); font-weight:700;
	line-height:1.05; letter-spacing:-.03em; color:var(--lm-ink);
}
.lsec-lead{ max-width:420px; margin:0 0 .6em; font-size:16px; font-weight:400; line-height:1.7; color:var(--lm-dim); }

/* ---------- manifiesto ---------- */
.lmanifest{ padding-top:14vh; padding-bottom:9vh; max-width:1150px; }
.lmanifest-tag{
	font-size:12.5px; letter-spacing:.16em; text-transform:uppercase;
	color:var(--lm-dim); margin:0 0 3.5vh; font-weight:600;
}
.lmanifest-text{
	margin:0; font-size:clamp(24px,2.9vw,44px); font-weight:500;
	line-height:1.34; letter-spacing:-.015em; color:var(--lm-ink);
}
.lmanifest-text .lword{ display:inline-block; opacity:.13; transition:opacity .3s linear; }
.lmanifest-text a{
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
	-webkit-background-clip:text; background-clip:text;
	-webkit-text-fill-color:transparent;
	border-bottom:2.5px solid var(--cB);
}

/* ---------- servicios ---------- */
.lservices-list{ border-top:1px solid var(--lm-line); }
.lsrow{
	position:relative; display:grid;
	grid-template-columns:70px 1fr auto 40px; align-items:center; gap:24px;
	padding:30px 10px; border-bottom:1px solid var(--lm-line);
	transition:padding .45s var(--lm-ease), background .45s;
}
.lsrow-n{ font-size:13px; font-weight:600; color:var(--lm-dim); }
.lsrow-name{
	font-size:clamp(26px,3.2vw,50px); font-weight:600; letter-spacing:-.025em;
	color:var(--lm-ink); line-height:1.1;
}
.lsrow-tag{ font-size:14px; font-weight:400; color:var(--lm-dim); max-width:300px; text-align:right; transition:color .3s; }
.lsrow-arr{ font-size:22px; color:var(--lm-dim); transition:transform .45s var(--lm-ease), color .3s; }
.lsrow:hover{ padding-left:26px; }
.lsrow:hover .lsrow-name{
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
	-webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.lsrow:hover .lsrow-arr{ transform:translateX(8px) rotate(-45deg); color:var(--lm-ink); }
.lsrow:hover .lsrow-tag{ color:var(--lm-ink); }
.lsrow-hl .lsrow-name::after{
	content:"gratis"; display:inline-block; vertical-align:middle;
	font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
	color:#fff;
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
	border-radius:100px; padding:6px 12px; margin-left:14px; transform:translateY(-6px);
	-webkit-text-fill-color:#fff;
}
.lsrv-preview{
	position:fixed; z-index:60; top:0; left:0; width:330px; aspect-ratio:4/3;
	border-radius:18px; overflow:hidden; pointer-events:none; isolation:isolate;
	border:1px solid rgba(255,255,255,.8);
	opacity:0; transform:scale(.85) rotate(-4deg);
	box-shadow:0 34px 90px rgba(25,19,56,.38), inset 0 0 0 1px rgba(25,19,56,.08);
	will-change:transform,opacity;
}
.lsrv-preview-gradient{ position:absolute; inset:-55%; z-index:-3; background:conic-gradient(from 20deg, var(--cA), #16e4d5, var(--cB), #fa74bd, var(--cA)); animation:lsrv-flow 4.8s linear infinite; }
.lsrv-preview-gradient::after{ content:""; position:absolute; inset:14%; border-radius:50%; background:rgba(255,255,255,.44); filter:blur(28px); }
.lsrv-preview-grid{ position:absolute; inset:0; z-index:-2; opacity:.48; background-image:linear-gradient(rgba(255,255,255,.62) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.62) 1px,transparent 1px); background-size:22px 22px; mask-image:linear-gradient(135deg,transparent,black 25%,black 75%,transparent); }
.lsrv-wireframe{ position:absolute; inset:21px 22px 35px; padding:13px; border:1.5px solid rgba(25,19,56,.72); border-radius:10px; background:rgba(255,255,255,.77); box-shadow:0 14px 30px rgba(25,19,56,.14); }
.lsrv-wirebar{ height:10px; display:flex; align-items:center; gap:4px; border-bottom:1px solid rgba(25,19,56,.23); padding-bottom:9px; }
.lsrv-wirebar i{ width:5px; height:5px; border:1px solid rgba(25,19,56,.62); border-radius:50%; }
.lsrv-wirebar b{ margin-left:auto; width:43px; height:5px; border:1px solid rgba(25,19,56,.45); border-radius:10px; }
.lsrv-wirehero{ display:flex; align-items:center; justify-content:space-between; height:55px; margin:12px 0 9px; border:1.5px solid rgba(25,19,56,.62); padding:10px; }
.lsrv-wirehero span{ display:block; width:48%; height:7px; border:1px solid rgba(25,19,56,.6); box-shadow:0 11px 0 -1px rgba(255,255,255,.1),0 11px 0 0 rgba(25,19,56,.48),0 22px 0 -1px rgba(255,255,255,.1),0 22px 0 0 rgba(25,19,56,.35); }
.lsrv-wirehero em{ width:33px; height:33px; border:1.5px solid rgba(25,19,56,.65); border-radius:50%; }
.lsrv-wireline{ width:55%; height:5px; margin:7px 0; border:1px solid rgba(25,19,56,.44); }
.lsrv-wireline.is-wide{ width:80%; }
.lsrv-wirecards{ display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-top:13px; }
.lsrv-wirecards span{ height:35px; border:1.5px solid rgba(25,19,56,.58); background:linear-gradient(135deg,transparent 49%,rgba(25,19,56,.15) 50%,transparent 51%); }
.lsrv-wirelabel{ position:absolute; bottom:12px; left:18px; font-size:9px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:rgba(25,19,56,.84); }
.lsrv-preview[data-wire="social"] .lsrv-wirehero{ justify-content:center; background:repeating-linear-gradient(45deg,transparent 0 9px,rgba(25,19,56,.09) 9px 10px); }
.lsrv-preview[data-wire="social"] .lsrv-wirehero span{ width:66%; }
.lsrv-preview[data-wire="web"] .lsrv-wirecards{ grid-template-columns:2fr 1fr; }.lsrv-preview[data-wire="web"] .lsrv-wirecards span:last-child{ display:none; }
.lsrv-preview[data-wire="seo"] .lsrv-wirehero{ height:30px; }.lsrv-preview[data-wire="seo"] .lsrv-wirecards{ grid-template-columns:1fr; gap:5px; margin-top:7px; }.lsrv-preview[data-wire="seo"] .lsrv-wirecards span{ height:13px; }
.lsrv-preview[data-wire="branding"] .lsrv-wirehero{ height:67px; justify-content:center; }.lsrv-preview[data-wire="branding"] .lsrv-wirehero em{ width:42px; height:42px; border-radius:0; transform:rotate(45deg); }.lsrv-preview[data-wire="branding"] .lsrv-wirehero span{ display:none; }
.lsrv-preview[data-wire="contenido"] .lsrv-wirehero{ height:76px; align-items:flex-end; }.lsrv-preview[data-wire="contenido"] .lsrv-wirehero em{ width:30%; height:45px; border-radius:0; }.lsrv-preview[data-wire="contenido"] .lsrv-wirehero span{ width:42%; }
.lsrv-preview[data-wire="email"] .lsrv-wirehero{ height:67px; justify-content:center; }.lsrv-preview[data-wire="email"] .lsrv-wirehero span{ width:70%; height:34px; box-shadow:none; transform:skewY(-13deg); }
.lsrv-preview[data-wire="auditoria"] .lsrv-wirehero{ height:45px; }.lsrv-preview[data-wire="auditoria"] .lsrv-wirecards{ grid-template-columns:repeat(4,1fr); }.lsrv-preview[data-wire="auditoria"] .lsrv-wirecards span{ height:26px; }

/* Wireframes de servicio: una sola idea visual por servicio. */
.lsrv-wireframe{ inset:34px 40px 48px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.lsrv-wirebar,.lsrv-wirehero,.lsrv-wireline,.lsrv-wirecards{ display:none !important; }
.lsrv-wireframe::before,.lsrv-wireframe::after{ content:""; position:absolute; box-sizing:border-box; border:2px solid rgba(25,19,56,.82); }
/* Redes: tres publicaciones. */
.lsrv-preview[data-wire="social"] .lsrv-wireframe::before{ width:42px; height:42px; left:0; top:50%; transform:translateY(-50%); box-shadow:58px 0 0 -2px transparent,116px 0 0 -2px transparent; }
.lsrv-preview[data-wire="social"] .lsrv-wireframe::after{ width:42px; height:42px; left:58px; top:50%; transform:translateY(-50%); box-shadow:58px 0 0 -2px rgba(25,19,56,.82); }
/* Web: ventana y una línea de contenido. */
.lsrv-preview[data-wire="web"] .lsrv-wireframe::before{ inset:8px 0; border-radius:2px; }
.lsrv-preview[data-wire="web"] .lsrv-wireframe::after{ width:46%; height:2px; border:0; background:rgba(25,19,56,.82); left:16px; top:43%; box-shadow:0 17px 0 rgba(25,19,56,.48); }
/* SEO: tres resultados. */
.lsrv-preview[data-wire="seo"] .lsrv-wireframe::before{ width:100%; height:14px; top:16px; border-width:2px 0; }
.lsrv-preview[data-wire="seo"] .lsrv-wireframe::after{ width:74%; height:2px; border:0; background:rgba(25,19,56,.82); left:0; top:50%; box-shadow:0 17px 0 rgba(25,19,56,.82),0 34px 0 rgba(25,19,56,.82); }
/* Branding: símbolo y sistema de líneas. */
.lsrv-preview[data-wire="branding"] .lsrv-wireframe::before{ width:54px; height:54px; left:0; top:50%; border-radius:50%; transform:translateY(-50%); }
.lsrv-preview[data-wire="branding"] .lsrv-wireframe::after{ width:56%; height:2px; border:0; background:rgba(25,19,56,.82); right:0; top:42%; box-shadow:0 17px 0 rgba(25,19,56,.48); }
/* Contenido: una pieza editorial vertical. */
.lsrv-preview[data-wire="contenido"] .lsrv-wireframe::before{ width:54px; height:74px; left:50%; top:50%; transform:translate(-50%,-50%); }
.lsrv-preview[data-wire="contenido"] .lsrv-wireframe::after{ width:30px; height:2px; border:0; background:rgba(25,19,56,.82); left:50%; top:42%; transform:translateX(-50%); box-shadow:0 14px 0 rgba(25,19,56,.48),0 28px 0 rgba(25,19,56,.48); }
/* Email: maqueta de newsletter, no un sobre genérico. */
.lsrv-preview[data-wire="email"] .lsrv-wireframe::before{
	width:158px; height:98px; left:50%; top:50%; transform:translate(-50%,-50%);
	border-radius:3px; background:rgba(255,255,255,.72);
	box-shadow:0 10px 0 -8px rgba(25,19,56,.82),0 30px 0 -8px rgba(25,19,56,.48),0 54px 0 -4px rgba(25,19,56,.82);
}
.lsrv-preview[data-wire="email"] .lsrv-wireframe::after{
	width:42px; height:14px; left:50%; top:calc(50% + 20px); border:0; border-radius:100px;
	background:rgba(188,0,255,.86); transform:translateX(-50%);
}
/* Auditoría: tres indicadores de barra. */
.lsrv-preview[data-wire="auditoria"] .lsrv-wireframe::before{ width:22px; height:38px; left:18px; bottom:6px; box-shadow:38px -20px 0 -2px transparent,76px -44px 0 -2px transparent; }
.lsrv-preview[data-wire="auditoria"] .lsrv-wireframe::after{ width:22px; height:58px; left:56px; bottom:6px; box-shadow:38px -20px 0 -2px rgba(25,19,56,.82); }
@keyframes lsrv-flow{ to{ transform:rotate(1turn); } }

/* ---------- sectores ---------- */
.lsectors-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.lsector{
	position:relative; display:flex; flex-direction:column; justify-content:flex-end; gap:10px;
	min-height:250px; padding:28px; border-radius:22px; overflow:hidden;
	background:var(--lm-card); border:1px solid var(--lm-line);
	box-shadow:0 14px 40px -22px rgba(25,19,56,.3);
	transition:transform .5s var(--lm-ease), box-shadow .5s;
}
.lsector::before{
	content:""; position:absolute; inset:0; opacity:0;
	background:
		radial-gradient(90% 90% at 20% 0%, color-mix(in srgb, var(--mA) 16%, transparent), transparent 60%),
		radial-gradient(90% 90% at 100% 100%, color-mix(in srgb, var(--mB) 14%, transparent), transparent 60%);
	transition:opacity .5s;
}
.lsector:hover{ transform:translateY(-6px) rotate(-.5deg); box-shadow:0 26px 60px -22px color-mix(in srgb, var(--mB) 40%, rgba(25,19,56,.3)); }
.lsector:hover::before{ opacity:1; }
.lsector-photo{ background-image:linear-gradient(to top, rgba(15,10,40,.78) 20%, rgba(15,10,40,.06)), var(--bg); background-size:cover; background-position:center; }
.lsector-photo::before{ display:none; }
.lsector-photo .lsector-name,
.lsector-photo .lsector-pain{ color:#fff; }
.lsector-photo .lsector-pain{ color:rgba(255,255,255,.85); }
.lsector-name{ position:relative; font-size:22px; font-weight:600; letter-spacing:-.02em; color:var(--lm-ink); }
.lsector-pain{ position:relative; font-size:13.5px; font-weight:400; line-height:1.55; color:var(--lm-dim); }

/* ---------- números ---------- */
.lnumbers{
	display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
	border-top:1px solid var(--lm-line); border-bottom:1px solid var(--lm-line);
	padding-top:8vh; padding-bottom:8vh;
}
.lnum{ text-align:center; }
.lnum-fig{
	display:flex; justify-content:center; align-items:baseline;
	font-size:clamp(56px,7vw,110px); font-weight:700; letter-spacing:-.04em;
	line-height:1; color:var(--lm-ink); -webkit-text-fill-color:var(--lm-ink);
}
.lnum-cap{ display:block; margin-top:14px; font-size:14px; font-weight:400; color:var(--lm-dim); }
.jqnumbers{ display:inline-flex; overflow:hidden; height:1em; line-height:1; color:var(--lm-ink); -webkit-text-fill-color:var(--lm-ink); opacity:1; }
.digit-col{ display:inline-flex; flex-direction:column; }
.digit-number{ height:1em; line-height:1; color:var(--lm-ink); -webkit-text-fill-color:var(--lm-ink); opacity:1; }
.digit-static{ display:inline-block; }

/* ---------- casos ---------- */
.lcases-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.lcase{
	position:relative; display:flex; flex-direction:column; gap:14px;
	padding:34px 30px 30px; min-height:300px; border-radius:22px;
	background:var(--lm-card); border:1px solid var(--lm-line); overflow:hidden;
	box-shadow:0 14px 40px -22px rgba(25,19,56,.3);
	transition:transform .5s var(--lm-ease), box-shadow .5s;
}
.lcase::after{
	content:""; position:absolute; left:0; right:0; bottom:0; height:4px;
	background-image:linear-gradient(90deg,var(--cA),var(--cB));
	transform:scaleX(0); transform-origin:left;
	transition:transform .5s var(--lm-ease);
}
.lcase:hover{ transform:translateY(-6px) rotate(.5deg); box-shadow:0 26px 60px -22px color-mix(in srgb, var(--mA) 40%, rgba(25,19,56,.3)); }
.lcase:hover::after{ transform:scaleX(1); }
.lcase-k{ font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--cB); }
.lcase-name{ font-size:clamp(24px,2.2vw,34px); font-weight:600; letter-spacing:-.02em; color:var(--lm-ink); line-height:1.15; }
.lcase-what{ font-size:14px; font-weight:400; line-height:1.65; color:var(--lm-dim); }
.lcase-cta{ margin-top:auto; font-size:13.5px; font-weight:600; color:var(--lm-ink); opacity:.65; transition:opacity .3s; }
.lcase:hover .lcase-cta{ opacity:1; }

/* ---------- auditoría ---------- */
.laudit{ padding-top:6vh; }
.laudit-panel{
	position:relative; border-radius:30px; overflow:hidden;
	padding:9vh 6vw;
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
	text-align:center;
	box-shadow:0 40px 90px -30px color-mix(in srgb, var(--cB) 55%, transparent);
}
.laudit-title{
	margin:0; font-size:clamp(32px,4.4vw,64px); font-weight:700;
	letter-spacing:-.03em; line-height:1.08; color:#fff;
}
.laudit-title em{ font-style:normal; text-decoration:underline; text-decoration-thickness:4px; text-underline-offset:8px; }
.laudit-text{ max-width:640px; margin:3.5vh auto 0; font-size:16.5px; font-weight:400; line-height:1.7; color:rgba(255,255,255,.95); }
.laudit-list{
	list-style:none; margin:4vh auto 0; padding:0;
	display:flex; gap:12px; justify-content:center; flex-wrap:wrap;
}
.laudit-list li{
	font-size:13.5px; font-weight:600; color:#fff;
	border:1.5px solid rgba(255,255,255,.55); border-radius:100px; padding:11px 20px;
	background:rgba(255,255,255,.12); backdrop-filter:blur(4px);
}
.laudit-ctas{ margin-top:5vh; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.laudit .lbtn-invert,
.laudit .lbtn-invert:visited,
.laudit .lbtn-invert:hover,
.laudit .lbtn-invert:focus-visible{ color:#fff; -webkit-text-fill-color:#fff; }
.laudit .lbtn-invert:focus-visible{ outline:2px solid #fff; outline-offset:4px; }

/* ---------- FAQ ---------- */
.lfaq{ max-width:1150px; }
.lfaq .lsec-title{ margin-bottom:6vh; }
.lfaq-item{ border-bottom:1px solid var(--lm-line); }
.lfaq-item summary{
	list-style:none; cursor:pointer; position:relative;
	padding:26px 60px 26px 0;
	font-size:clamp(17px,1.7vw,22px); font-weight:600; color:var(--lm-ink);
}
.lfaq-item summary::-webkit-details-marker{ display:none; }
.lfaq-item summary::after{
	content:"+"; position:absolute; right:8px; top:50%;
	transform:translateY(-50%); font-size:26px; font-weight:300;
	color:var(--cB); transition:transform .35s var(--lm-ease);
}
.lfaq-item[open] summary::after{ transform:translateY(-50%) rotate(45deg); }
.lfaq-a p{ margin:0 0 26px; max-width:780px; font-size:15.5px; font-weight:400; line-height:1.75; color:var(--lm-dim); }

/* ---------- footer: cierre nocturno elegante ---------- */
.lfooter{
	position:relative; padding:12vh 5vw 40px;
	background:#171236; color:#fff;
	border-radius:34px 34px 0 0;
}
.lfooter-kicker{ font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.55); margin:0 0 2vh; }
.lfooter-mail{
	display:inline-block;
	font-size:clamp(30px,4.6vw,72px); font-weight:700; letter-spacing:-.03em; color:#fff;
	line-height:1.1; word-break:break-word;
}
.lfooter-mail:hover{
	background-image:linear-gradient(var(--ang),var(--cA),var(--cB));
	background-size:200% 200%;
	-webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.lfooter-tel{ display:block; margin-top:1.6vh; font-size:19px; font-weight:400; color:rgba(255,255,255,.6); }
.lfooter-tel:hover{ color:#fff; }
.lfooter-cols{
	display:grid; grid-template-columns:repeat(4,1fr); gap:30px;
	margin-top:9vh; padding-top:6vh; border-top:1px solid rgba(255,255,255,.14);
}
.lfcol{ display:flex; flex-direction:column; gap:12px; }
.lfcol-t{ font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:6px; }
.lfcol a{ font-size:14.5px; font-weight:300; color:rgba(255,255,255,.82); width:fit-content; transition:color .25s; }
.lfcol a:hover{ color:#fff; }
.lfcol-brand{ align-items:flex-end; text-align:right; }
.lfooter-logo{ color:#fff; width:120px; }
.lfooter-logo svg{ width:100%; height:auto; }
.lfooter-area{ font-size:13px; font-weight:300; line-height:1.7; color:rgba(255,255,255,.55); margin:14px 0 0; }
.lfooter-legal{
	display:flex; gap:26px; flex-wrap:wrap;
	margin-top:7vh; padding-top:26px; border-top:1px solid rgba(255,255,255,.14);
	font-size:12.5px; color:rgba(255,255,255,.4);
}
.lfooter-legal a:hover{ color:#fff; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
	.lsectors-grid{ grid-template-columns:repeat(2,1fr); }
	.lcases-grid{ grid-template-columns:1fr 1fr; }
	.lsrow{ grid-template-columns:50px 1fr 30px; }
	.lsrow-tag{ display:none; }
	.lsrv-preview{ display:none; }
}
@media (max-width:760px){
	.lhero{ padding:110px 6vw 130px; }
	.lhero-copy:before{ inset:-9vh -8vw; background:radial-gradient(ellipse at center,rgba(15,10,52,.40) 0%,rgba(15,10,52,.25) 58%,transparent 80%); }
	.moodcard{ --mw:34vw !important; }
	.moodcard:nth-of-type(2),.moodcard:nth-of-type(4){ display:none; }
	.moodcard:nth-of-type(1){ --mx:-30vw !important; --my:-21vh !important; }
	.moodcard:nth-of-type(3){ --mx:30vw !important; --my:-23vh !important; }
	.moodcard:nth-of-type(5){ --mx:-28vw !important; --my:24vh !important; }
	.moodcard:nth-of-type(6){ --mx:28vw !important; --my:22vh !important; }
	.moodcard:nth-of-type(7){ display:none; }
	.moodcard figcaption{ display:none; }
	.lst-pill,.lst-comment,.lst-emoji2{ display:none; }
	.lst-like{ --mx:8vw !important; --my:-30vh !important; }
	.lhero-cursor-hint{ display:none; }
	.lhero-scroll{ display:none; }
	.lsectors-grid,.lcases-grid,.lnumbers{ grid-template-columns:1fr; }
	.lfooter-cols{ grid-template-columns:1fr 1fr; }
	.lfcol-brand{ align-items:flex-start; text-align:left; grid-column:1/-1; }
	.lsec-head{ margin-bottom:5vh; }
	.lhero-sub .lbr{ display:none; }
	.lblob{ filter:blur(50px); }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */

/* wrappers de las mood cards (creados por JS) */
.mc-par,.mc-drag{ will-change:transform; }
.mc-drag{ position:relative; }
