/*
 Theme Name: KM32 (Divi hijo)
 Template: Divi
 Description: Tema hijo de Divi para km32.com. Estilos de los bloques (clases km-*) y letras locales.
 Author: KM32
 Version: 1.1.0
*/

/* ------------------------------------------------------------ letras (alojadas aquí, sin Google) */
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400 800; font-display: swap; src: url(fonts/manrope-latin.woff2) format('woff2'); }

/* ------------------------------------------------------------ las tres propuestas (06/11/2026)
   A Noche: casi negro como el logo, verde del ✓ («todo en orden»). Space Grotesk + Inter.
   B Papel: crema y tinta, teja de acento. Fraunces + Inter. Más cálida y cercana.
   C Ría: azul intenso y amarillo. Manrope. Más alegre y comercial.
   --osc*: bandas oscuras (cabecera de portada y cierre). El resto, fondos claros. */
.km-c {
	--osc: #0a2a8f; --osc2: #123aa8; --osc-txt: #ffffff; --osc-suave: #c7d4ff; --osc-linea: rgba(255,255,255,.16);
	--fondo: #ffffff; --fondo2: #f1f4fc; --tarjeta: #ffffff; --txt: #0d1630; --suave: #46506b; --linea: #dfe5f3;
	--acento: #ffd23f; --acento-txt: #10131c; --acento-osc: #1d4ed8; --puntos: rgba(255,255,255,.2); --puntos-claro: rgba(29,78,216,.12);
	--f-tit: 'Manrope', system-ui, sans-serif; --f-txt: 'Manrope', system-ui, sans-serif; --tit-peso: 800; --tit-esp: -.025em; --radio: 22px;
}

/* ------------------------------------------------------------ base */
body.km-pagina { background: var(--fondo); }
body.km-pagina #main-content { background: transparent; }
.km, .km .et_pb_text, .km p, .km li, .km a { font-family: var(--f-txt); color: var(--txt); }
.km.et_pb_section { background: var(--fondo); padding: 96px 0; position: relative; overflow: hidden; }
.km .et_pb_row, .km .et_pb_row:not([class*="et_flex_column"]) { width: 90%; max-width: 1180px; padding: 0; position: relative; z-index: 1; }
.km .et_pb_text, .km .et_pb_text p { font-size: 18px; line-height: 1.65; }
.km .et_pb_text p { padding-bottom: .9em; }
.km .et_pb_text p:last-child { padding-bottom: 0; }
.km h1, .km h2, .km h3, .km .et_pb_text h1, .km .et_pb_text h2, .km .et_pb_text h3 {
	font-family: var(--f-tit); font-weight: var(--tit-peso); letter-spacing: var(--tit-esp); color: var(--txt); line-height: 1.08; padding: 0;
}
.km h1 { font-size: clamp(38px, 5.4vw, 66px); margin-bottom: 22px; }
.km h2 { font-size: clamp(30px, 3.6vw, 46px); margin-bottom: 16px; }
.km h3 { font-size: 22px; line-height: 1.2; margin-bottom: 8px; }
.km .km-antetitulo { font-family: var(--f-txt); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--acento-osc); margin-bottom: 14px; }
.km .km-intro { max-width: 640px; color: var(--suave); }
.km-centro .et_pb_text_inner, .km-centro .et_pb_text { text-align: center; }
.km-centro .km-intro { margin: 0 auto; }

/* botones nativos de Divi */
.km .et_pb_button_module_wrapper { margin: 0; display: inline-block; }
.km .et_pb_button {
	font-family: var(--f-txt) !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: 0 !important;
	background: var(--acento) !important; color: var(--acento-txt) !important; border: 2px solid var(--acento) !important;
	border-radius: 999px !important; padding: 14px 30px !important; line-height: 1.2 !important; transition: transform .15s, box-shadow .15s;
}
.km .et_pb_button:hover { padding: 14px 30px !important; transform: translateY(-2px); box-shadow: 0 10px 24px -10px var(--acento); }
.km .et_pb_button:after, .km .et_pb_button:before { display: none !important; }
.km .km-boton-2 .et_pb_button, .km .km-boton-2.et_pb_button { background: transparent !important; color: inherit !important; border-color: currentColor !important; }
.km .km-botones { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }

/* trama de puntos, como el logo */
.km-puntos::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background-image: radial-gradient(var(--puntos) 1.6px, transparent 1.9px); background-size: 22px 22px;
	-webkit-mask-image: linear-gradient(115deg, transparent 35%, #000 85%); mask-image: linear-gradient(115deg, transparent 35%, #000 85%);
}

/* ------------------------------------------------------------ cabecera propia de la prueba */
.km-cab.et_pb_section { background: var(--osc); padding: 22px 0; overflow: visible; }
.km-cab .et_pb_row { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.km-cab .et_pb_column { width: auto !important; margin: 0 !important; flex: 0 0 auto; }
.km-cab .et_pb_column:last-child { flex: 1 1 auto; }
.km-cab .km-logo, .km-cab .km-logo .et_pb_image_wrap { display: block; width: 150px; }
.km-cab .km-logo img { width: 150px; height: auto; display: block; }
.km-cab .km-nav { display: flex; align-items: center; justify-content: flex-end; gap: 28px; }
.km-cab .km-nav a { color: var(--osc-txt); font-size: 15px; font-weight: 600; text-decoration: none; opacity: .86; }
.km-cab .km-nav a:hover { opacity: 1; color: var(--acento); }
.km-cab .km-nav a.km-nav-boton { opacity: 1; background: var(--acento); color: var(--acento-txt); padding: 10px 20px; border-radius: 999px; }
.km-c .km-cab .km-nav a:hover:not(.km-nav-boton) { color: #fff; text-decoration: underline; }
.km-cab .km-nav a { white-space: nowrap; }   /* 07/11: «Sobre mí» se partía a 1024 px */
.km-menu-boton { display: none; }
@media (max-width: 1100px) { .km-cab .km-nav { gap: 20px; } .km-cab .km-nav a { font-size: 14px; } }
@media (max-width: 980px) {   /* 07/11: menú desplegable */
	.km-cab .et_pb_column:last-child .et_pb_text_inner { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
	.km-menu-boton { display: inline-flex; align-items: center; gap: 8px; position: relative; background: transparent; border: 1.5px solid var(--osc-linea); color: #fff; font: 700 14px/1 var(--f-txt); padding: 10px 14px 10px 36px; border-radius: 999px; cursor: pointer; }
	.km-menu-boton span { position: absolute; left: 14px; width: 14px; height: 2px; border-radius: 2px; background: var(--acento); }
	.km-menu-boton span:nth-child(1) { top: 13px; } .km-menu-boton span:nth-child(2) { top: 18px; } .km-menu-boton span:nth-child(3) { top: 23px; }
	.km-cab .km-nav { gap: 0; }
	.km-cab .km-nav.km-abierto { position: absolute; top: calc(100% + 12px); left: 0; right: 0; z-index: 50; display: flex; flex-direction: column; align-items: stretch; background: var(--osc2); border: 1px solid var(--osc-linea); border-radius: 18px; padding: 10px; box-shadow: 0 30px 60px -20px rgba(0,0,0,.6); }
	.km-cab .km-nav.km-abierto a:not(.km-nav-boton) { display: block; padding: 13px 16px; font-size: 16px; opacity: 1; border-radius: 12px; }
	.km-cab .km-nav.km-abierto a:not(.km-nav-boton):hover { background: rgba(255,255,255,.06); }
	.km-cab .km-nav.km-abierto a:not(.km-nav-boton)::after { display: none; }
	.km-cab .km-nav.km-abierto a.km-nav-boton { margin-top: 8px; text-align: center; }
	.km-cab .et_pb_row { position: relative; }
	.km-cab .et_pb_column, .km-cab .et_pb_module, .km-cab .et_pb_text_inner { position: static !important; }   /* el panel toma el ancho de la cabecera, no el de la columna */
	.km-cab .km-nav.km-abierto a:not(.km-nav-boton) { white-space: normal; }
}
@media (max-width: 560px) {   /* 07/11: el botón Contacto se salía por la derecha; ya está en la barra fija de abajo */
	.km-cab .km-nav:not(.km-abierto) a.km-nav-boton { display: none; }
	.km-cab .km-logo img { width: 112px; }
}

/* ------------------------------------------------------------ portada: cabecera grande */
.km-hero.et_pb_section { background: var(--osc); padding: 70px 0 110px; }
.km-hero .et_pb_row { display: flex; align-items: center; gap: 6%; }
.km-hero .et_pb_column { margin: 0 !important; }
.km-hero .et_pb_column:first-child { flex: 1 1 56%; }
.km-hero .et_pb_column:last-child { flex: 1 1 38%; }
.km-hero h1, .km-hero p, .km-hero .et_pb_text, .km.km-hero .et_pb_text h1 { color: var(--osc-txt); }
.km-hero h1 em { font-style: normal; color: var(--acento); }
.km-c .km-hero h1 em { color: var(--acento); }
.km-hero .km-intro { color: var(--osc-suave); font-size: 20px; }
.km-hero .km-antetitulo { color: var(--acento); }
.km-hero .km-sellos { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 26px; padding: 0; list-style: none; }
.km-hero .km-sellos li { color: var(--osc-txt); font-size: 15px; font-weight: 600; display: flex; align-items: center; gap: 8px; padding: 0; }
.km-hero .km-sellos li::before { content: ''; width: 18px; height: 18px; border-radius: 50%; background: var(--acento) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat; flex: 0 0 auto; }
/* (B quitada) */ .km-x-nada { filter: none; background-color: var(--acento); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E"); }
.km-hero .km-boton-2 .et_pb_button { color: var(--osc-txt) !important; border-color: var(--osc-linea) !important; background: rgba(255,255,255,.04) !important; }
.km-hero .km-boton-2 .et_pb_button:hover { border-color: var(--osc-txt) !important; box-shadow: none; }

/* el panel de estado (ilustración de lo que es tener la web al día) */
.km-panel { background: var(--osc2); border: 1px solid var(--osc-linea); border-radius: calc(var(--radio) + 4px); padding: 24px 24px 20px; box-shadow: 0 40px 80px -30px rgba(0,0,0,.55); transform: rotate(1.2deg); }
.km-panel-cab { display: flex; align-items: center; gap: 8px; padding-bottom: 16px; margin-bottom: 8px; border-bottom: 1px solid var(--osc-linea); }
.km-panel-cab i { width: 10px; height: 10px; border-radius: 50%; background: var(--osc-linea); display: block; }
.km-panel-cab span { margin-left: auto; font-size: 13px; color: var(--osc-suave); font-family: var(--f-txt); }
.km-panel ul { list-style: none; padding: 0; margin: 0; }
.km-panel li { display: flex; align-items: center; gap: 14px; padding: 13px 0; border-bottom: 1px dashed var(--osc-linea); color: var(--osc-txt); font-size: 16px; font-weight: 600; }
.km-panel li:last-child { border-bottom: 0; }
.km-panel li small { display: block; font-weight: 400; font-size: 13px; color: var(--osc-suave); margin-top: 2px; }
.km-panel li b { width: 30px; height: 30px; border-radius: 50%; flex: 0 0 auto; border: 2px dotted var(--acento); display: grid; place-items: center; }
.km-panel li b::after { content: ''; width: 14px; height: 14px; background: var(--acento); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat; }
.km-panel-pie { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,.05); font-size: 14px; color: var(--osc-suave); }
.km-panel-pie strong { color: var(--osc-txt); }

/* ------------------------------------------------------------ servicios */
.km-servicios.et_pb_section { padding-top: 0; background: var(--fondo); }
.km-servicios .km-sube { margin-top: -56px; }
.km-servicios .et_pb_row.km-tarjetas { display: grid; grid-template-columns: repeat(6, 1fr); gap: 22px; }
.km-tarjetas .et_pb_column { margin: 0 !important; width: auto !important; grid-column: span 2; }
.km-tarjetas .et_pb_column:nth-child(4), .km-tarjetas .et_pb_column:nth-child(5) { grid-column: span 3; }
.km-tarjeta { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: var(--radio); padding: 30px 28px 26px !important; height: 100%;
	box-shadow: 0 1px 0 rgba(0,0,0,.02), 0 24px 40px -32px rgba(15,17,21,.35); transition: transform .2s, box-shadow .2s, border-color .2s; }
.km-tarjeta:hover { transform: translateY(-4px); border-color: var(--acento-osc); box-shadow: 0 30px 50px -30px rgba(15,17,21,.4); }
.km-tarjeta .et_pb_text, .km-tarjeta .et_pb_text_inner { height: 100%; }
.km-tarjeta .et_pb_text_inner { display: flex; flex-direction: column; }
.km-icono { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; margin-bottom: 20px; background: var(--fondo2); color: var(--acento-osc); }
.km-icono svg { width: 26px; height: 26px; }
.km-tarjeta p { color: var(--suave); font-size: 16px !important; }
.km-precio { margin-top: auto; padding-top: 18px; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; border-top: 1px solid var(--linea); margin-top: 22px; }
.km-precio span { font-size: 14px !important; color: var(--suave); }
.km-precio strong { font-family: var(--f-tit); font-size: 24px; font-weight: var(--tit-peso); color: var(--txt); letter-spacing: var(--tit-esp); }
.km-tarjeta a.km-mas { margin-top: 16px; font-weight: 700; color: var(--acento-osc); text-decoration: none; font-size: 16px; }
.km-tarjeta a.km-mas::after { content: ' →'; transition: margin .15s; }
.km-tarjeta:hover a.km-mas::after { margin-left: 4px; }
.km-nota { font-size: 14px !important; color: var(--suave); margin-top: 18px; }
.km-servicios .km-titulo-fila { margin-top: 80px; margin-bottom: 34px; }

/* ------------------------------------------------------------ por qué (foto + razones) */
.km-porque.et_pb_section { background: var(--fondo2); }
.km-porque .et_pb_row { display: flex; align-items: center; gap: 7%; }
.km-porque .et_pb_column { margin: 0 !important; }
.km-porque .et_pb_column:first-child { flex: 0 0 38%; }
.km-porque .et_pb_column:last-child { flex: 1 1 auto; }
.km-foto { position: relative; }
.km-foto::before { content: ''; position: absolute; width: 78%; aspect-ratio: 1; left: -14%; bottom: -12%; border-radius: 50%;
	background-image: radial-gradient(var(--puntos-claro) 2.2px, transparent 2.6px); background-size: 16px 16px; }
.km-foto img { position: relative; border-radius: calc(var(--radio) + 10px); display: block; width: 100%; height: auto; box-shadow: 0 30px 60px -30px rgba(0,0,0,.45); }
.km-foto-firma { position: absolute; right: -18px; bottom: 26px; z-index: 2; background: var(--tarjeta); border-radius: 14px; padding: 12px 18px; box-shadow: 0 16px 30px -16px rgba(0,0,0,.35); }
.km-foto-firma strong { display: block; font-family: var(--f-tit); font-size: 18px; color: var(--txt); }
.km-foto-firma span { font-size: 14px; color: var(--suave); }
.km-razones { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 34px; margin-top: 34px; }
.km-razones div { border-top: 2px solid var(--txt); padding-top: 18px; }
.km-razones h3 { font-size: 21px; }
.km-razones p { font-size: 16px !important; color: var(--suave); }
.km-razones a { color: var(--acento-osc); font-weight: 700; }

/* ------------------------------------------------------------ cierre */
.km-cierre.et_pb_section { background: var(--fondo); padding: 30px 0 100px; }
.km-cierre .et_pb_row { background: var(--osc); border-radius: calc(var(--radio) + 12px); padding: 76px 7% !important; overflow: hidden; text-align: center; }
.km-cierre .et_pb_row::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(var(--puntos) 1.6px, transparent 1.9px); background-size: 22px 22px;
	-webkit-mask-image: radial-gradient(circle at 50% 120%, #000 10%, transparent 65%); mask-image: radial-gradient(circle at 50% 120%, #000 10%, transparent 65%); }
.km-cierre h2, .km-cierre p, .km.km-cierre .et_pb_text h2 { color: var(--osc-txt); position: relative; }
.km-cierre .km-intro { color: var(--osc-suave); margin: 0 auto; }
.km-cierre .km-botones { justify-content: center; position: relative; }
.km-cierre .km-horario { font-size: 15px !important; color: var(--osc-suave); margin-top: 22px; }

/* ------------------------------------------------------------ pie */
.km-pie.et_pb_section { background: var(--osc); padding: 64px 0 34px; }
.km-pie .et_pb_row { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
.km-pie .et_pb_column { margin: 0 !important; width: auto !important; }
.km-pie, .km-pie p, .km-pie a, .km-pie .et_pb_text { color: var(--osc-suave); font-size: 15px !important; }
.km-pie h3 { color: var(--osc-txt); font-family: var(--f-txt); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 14px; }
.km-pie ul { list-style: none; padding: 0 !important; margin: 0; }
.km-pie li { padding: 4px 0; }
.km-pie a { text-decoration: none; }
.km-pie a:hover { color: var(--osc-txt); }
.km-pie .km-logo, .km-pie .km-logo .et_pb_image_wrap { display: block; width: 130px; margin-bottom: 16px; }
.km-pie .km-logo img { width: 130px; height: auto; }
.km-pie .km-legal { grid-column: 1 / -1; border-top: 1px solid var(--osc-linea); padding-top: 22px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: 14px !important; }


/* ------------------------------------------------------------ tableta y móvil */
@media (max-width: 980px) {
	.km.et_pb_section { padding: 70px 0; }
	.km-cab .km-nav a:not(.km-nav-boton) { display: none; }
	.km-hero .et_pb_row, .km-porque .et_pb_row { flex-direction: column; align-items: stretch; gap: 48px; }
	.km-hero .et_pb_column, .km-porque .et_pb_column:first-child { flex: 1 1 auto; }
	.km-porque .et_pb_column:first-child { max-width: 420px; }
	.km-servicios .et_pb_row.km-tarjetas { grid-template-columns: 1fr 1fr; }
	.km-tarjetas .et_pb_column, .km-tarjetas .et_pb_column:nth-child(4), .km-tarjetas .et_pb_column:nth-child(5) { grid-column: span 1; }
	.km-tarjetas .et_pb_column:nth-child(5) { grid-column: 1 / -1; }
	.km-pie .et_pb_row { grid-template-columns: 1fr 1fr; }
	.km-pie .et_pb_column:first-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
	.km .et_pb_text, .km .et_pb_text p { font-size: 17px; }
	.km-hero.et_pb_section { padding: 40px 0 96px; }
	.km-hero .km-intro { font-size: 18px; }
	.km-cab .km-logo img { width: 116px; }
	.km-cab .km-nav a.km-nav-boton { padding: 9px 16px; font-size: 14px; }
	.km-panel { transform: none; }
	.km-servicios .et_pb_row.km-tarjetas { grid-template-columns: 1fr; }
	.km-tarjetas .et_pb_column:nth-child(5) { grid-column: auto; }
	.km-razones { grid-template-columns: 1fr; gap: 24px; }
	.km-foto-firma { right: 10px; }
	.km-cierre .et_pb_row { padding: 56px 7% !important; }
	.km-pie .et_pb_row { grid-template-columns: 1fr; }
	.km .km-botones .et_pb_button_module_wrapper, .km .km-botones .et_pb_button { width: 100%; text-align: center; }
}

/* páginas de prueba: sin la cabecera ni el pie de Divi (llevan los suyos dentro) */
body.km-prueba #main-header, body.km-prueba #top-header, body.km-prueba #main-footer { display: none !important; }
/* 06/11: cabecera y pie en el Theme Builder; la cabecera se queda arriba al bajar */
.et-l--header { position: sticky; top: 0; z-index: 60; }
.et-l--header .km-cab.et_pb_section { position: relative; }
body.km-prueba #page-container { padding-top: 0 !important; margin-top: 0 !important; }

/* ------------------------------------------------------------ ajustes tras la primera captura (06/11) */
.km.km-servicios { overflow: visible; z-index: 2; }
.km.km-servicios.et_pb_section { padding-top: 64px !important; }
.km-tarjeta .km-precio { margin-top: auto; }
.km-tarjeta h3 + p { margin-bottom: 22px; }
.km-tarjeta .km-precio + p { padding: 0; }
.km-hero .km-boton-2.et_pb_button, .km-hero .km-boton-2 .et_pb_button { color: var(--osc-txt) !important; border-color: var(--osc-suave) !important; background: rgba(255,255,255,.04) !important; }
.km-hero .km-boton-2.et_pb_button:hover, .km-hero .km-boton-2 .et_pb_button:hover { border-color: var(--osc-txt) !important; box-shadow: none; }
.km-tarjeta { display: flex !important; flex-direction: column; }
.km-tarjeta > .et_pb_module { flex: 1 1 auto; }
.km-cierre .et_pb_text, .km-cierre .et_pb_text_inner { text-align: center; }
.km-cierre .et_pb_button_module_wrapper { display: block; text-align: center; margin-top: 30px; }
.km.km-cierre .et_pb_text h2 { margin-bottom: 14px; }
.km.km-cierre { padding-bottom: 80px; }
.km.km-pie .et_pb_text h3 { color: var(--osc-txt); font-family: var(--f-txt); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 14px; }
.km-cab .km-logo, .km-cab .km-logo .et_pb_image_wrap, .km-cab .km-logo img { width: 176px; }
.km-hero .et_pb_button_module_wrapper { margin: 34px 12px 0 0; }
@media (max-width: 640px) { .km-cab .km-logo, .km-cab .km-logo .et_pb_image_wrap, .km-cab .km-logo img { width: 128px; } .km-hero .et_pb_button_module_wrapper { margin: 14px 0 0; display: block; } }
@media (max-width: 640px) { .km-selector a { padding: 8px 10px; font-size: 12px; } .km.km-servicios.et_pb_section { padding-top: 44px !important; } }

/* ------------------------------------------------------------ cambios de Josu al elegir la C (06/11) */
.km-porque .et_pb_column:first-child { flex: 0 0 30%; align-self: flex-start; }
.km-razones { margin-top: 0; }
.km-con-foto { position: relative; }
.km-avatar { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; float: right; margin: -6px 0 8px 14px; border: 3px solid var(--tarjeta); box-shadow: 0 8px 18px -10px rgba(0,0,0,.5); }
.km.km-pie .et_pb_text h3.km-pie-horario { margin-top: 24px; }
.km-pie .km-logo, .km-pie .km-logo .et_pb_image_wrap, .km-pie .km-logo img { width: 150px; }
@media (max-width: 980px) { .km-porque .et_pb_column:first-child { flex: 1 1 auto; max-width: none; } }

/* ------------------------------------------------------------ páginas de servicio (06/11) */
.km-hero-pagina.et_pb_section { padding: 56px 0 96px; }
.km.km-hero-pagina .et_pb_text h1 { font-size: clamp(34px, 4.4vw, 54px); }
.km-titulo { margin-bottom: 44px; }
.km-titulo .km-intro { margin-top: 6px; }
.km .et_pb_row.km-estrecho { max-width: 860px; }
.km.km-planes, .km.km-hackeo { background: var(--fondo); }
.km.km-que, .km.km-preguntas { background: var(--fondo2); }

/* planes */
.km .et_pb_row.km-planes-fila { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: stretch; }
.km-planes-fila .et_pb_column { margin: 0 !important; width: auto !important; }
.km-plan { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: var(--radio); padding: 32px 28px 30px !important; display: flex !important; flex-direction: column; position: relative; }
.km-plan > .et_pb_text { flex: 1 1 auto; }
.km-plan-dest { border: 2px solid var(--acento-osc); box-shadow: 0 30px 60px -34px rgba(29,78,216,.55); transform: translateY(-10px); }
.km-plan-marca { position: absolute; top: -14px; left: 28px; background: var(--acento); color: var(--acento-txt); font-size: 13px; font-weight: 800; padding: 6px 14px; border-radius: 999px; }
.km.km-planes .et_pb_text h3 { font-size: 24px; margin-bottom: 10px; }
.km-plan-precio { display: flex; align-items: baseline; gap: 4px; padding: 0 !important; }
.km-plan-precio strong { font-family: var(--f-tit); font-size: 48px; font-weight: var(--tit-peso); letter-spacing: var(--tit-esp); color: var(--txt); line-height: 1; }
.km-plan-precio span { color: var(--suave); font-size: 17px; }
.km-plan-nota { font-size: 14px !important; color: var(--suave); padding: 6px 0 0 !important; }
.km-plan-cab { padding-bottom: 20px; margin-bottom: 8px; border-bottom: 1px solid var(--linea); }
.km-plan-lista { list-style: none; padding: 0 !important; margin: 0 0 26px; }
.km-plan-lista li { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 11px 0; border-bottom: 1px dashed var(--linea); font-size: 15px; line-height: 1.35; }
.km-plan-lista li span { color: var(--txt); }
.km-plan-lista li em { font-style: normal; font-weight: 700; color: var(--acento-osc); text-align: right; flex: 0 0 auto; max-width: 45%; font-size: 14px; }
.km-si, .km-no { display: inline-block; width: 22px; height: 22px; border-radius: 50%; vertical-align: middle; }
.km-si { background: var(--acento-osc) url("img/si.svg") center / 13px no-repeat; }
.km-no { background: var(--fondo2); position: relative; }
.km-no::after { content: ''; position: absolute; left: 6px; right: 6px; top: 10px; height: 2px; border-radius: 2px; background: #b4bccf; }
.km-plan .et_pb_button_module_wrapper { display: block; margin-top: auto; }
.km-plan .et_pb_button { display: block; width: 100%; text-align: center; }
.km-planes .km-boton-2.et_pb_button, .km-planes .km-boton-2 .et_pb_button { color: var(--acento-osc) !important; border-color: var(--acento-osc) !important; background: transparent !important; }
.km-notas { list-style: none; padding: 0 !important; margin: 40px auto 0; max-width: 820px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 28px; }
.km-notas li { font-size: 15px; color: var(--suave); padding-left: 18px; position: relative; }
.km-notas li::before { content: ''; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--acento-osc); }
.km-aviso { max-width: 820px; margin: 28px auto 0; padding: 18px 22px !important; border-radius: 14px; background: var(--fondo2); font-size: 16px !important; text-align: center; }
.km-aviso a, .km-caja a, .km-persona a { color: var(--acento-osc); font-weight: 700; }

/* qué hacemos */
.km .et_pb_row.km-items { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.km-items .et_pb_column { margin: 0 !important; width: auto !important; }
.km-item { background: var(--tarjeta); border-radius: var(--radio); padding: 28px 24px !important; border: 1px solid var(--linea); }
.km-item p { font-size: 15.5px !important; color: var(--suave); }
.km.km-que .et_pb_text h3 { font-size: 20px; margin-bottom: 10px; }

/* texto + ilustración */
.km.km-split { background: var(--fondo); }
.km-split .et_pb_row { display: flex; align-items: center; gap: 7%; }
.km-split .et_pb_column { margin: 0 !important; flex: 1 1 0; }
.km-split p { color: var(--suave); }
.km-informe { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: calc(var(--radio) + 4px); padding: 26px; box-shadow: 0 40px 70px -40px rgba(13,22,48,.45); transform: rotate(-1deg); }
.km-informe-cab { display: flex; justify-content: space-between; align-items: center; padding-bottom: 14px; border-bottom: 1px solid var(--linea); }
.km-informe-cab strong { font-family: var(--f-tit); font-size: 20px; color: var(--txt); }
.km-informe-cab span { font-size: 13px; color: var(--suave); }
.km-informe ul { list-style: none; padding: 0 !important; margin: 8px 0 0; }
.km-informe li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px dashed var(--linea); font-weight: 600; font-size: 16px; color: var(--txt); }
.km-informe li b { width: 26px; height: 26px; border-radius: 50%; flex: 0 0 auto; background: var(--acento-osc) url("img/si.svg") center / 14px no-repeat; }
.km-informe-pie { margin-top: 14px; padding: 14px 16px; border-radius: 12px; background: var(--fondo2); font-size: 15px; color: var(--txt); font-weight: 600; }
.km-informe-pie span { display: inline-block; margin-right: 10px; background: var(--acento); color: var(--acento-txt); font-size: 12px; font-weight: 800; padding: 3px 10px; border-radius: 999px; }

/* cajas (si te hackean) */
.km-hackeo .et_pb_row:not(.km-titulo) { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.km-hackeo .et_pb_row:not(.km-titulo) .et_pb_column { margin: 0 !important; width: auto !important; }
.km-caja { border-radius: var(--radio); padding: 34px 32px !important; background: var(--fondo2); }
.km-caja p { color: var(--suave); }
.km-caja-dest { background: var(--osc); }
.km.km-hackeo .km-caja-dest .et_pb_text h3 { color: var(--osc-txt); }
.km-caja-dest p { color: var(--osc-suave); }
.km.km-hackeo .et_pb_text h3 { font-size: 22px; margin-bottom: 12px; }
.km-caja a.km-mas { text-decoration: none; }
.km-caja a.km-mas::after { content: ' →'; }

/* persona */
.km.km-persona { background: var(--fondo); padding-top: 20px; }
.km-persona-caja { display: flex; gap: 32px; align-items: flex-start; max-width: 900px; margin: 0 auto; padding: 38px 40px; border-radius: calc(var(--radio) + 6px); border: 1px solid var(--linea); background: var(--tarjeta); }
.km-avatar-grande { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.km.km-persona .et_pb_text h2 { font-size: 30px; margin-bottom: 12px; }
.km-persona p { color: var(--suave); }

/* preguntas */
.km-faq { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: 14px; margin-bottom: 12px; }
.km-faq summary { cursor: pointer; list-style: none; padding: 20px 56px 20px 24px; font-family: var(--f-tit); font-weight: 700; font-size: 18px; color: var(--txt); position: relative; }
.km-faq summary::-webkit-details-marker { display: none; }
.km-faq summary::after { content: '+'; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: var(--fondo2); color: var(--acento-osc); display: grid; place-items: center; font-size: 20px; font-weight: 700; line-height: 1; }
.km-faq[open] summary::after { content: '−'; }
.km-faq > div { padding: 0 24px 20px; }
.km-faq p { color: var(--suave); font-size: 16.5px !important; }

/* formulario */
.km.km-form { background: var(--osc); }
.km-form .et_pb_row { display: flex; align-items: center; gap: 7%; }
.km-form .et_pb_column { margin: 0 !important; flex: 1 1 0; }
.km.km-form .et_pb_text h2, .km-form p { color: var(--osc-txt); }
.km-form .km-intro { color: var(--osc-suave); }
.km-form .km-antetitulo { color: var(--acento); }
.km-form-hueco { border: 2px dashed var(--osc-linea); border-radius: var(--radio); padding: 30px; background: rgba(255,255,255,.04); }
.km-form-hueco p { color: var(--osc-suave) !important; font-size: 15px !important; }
.km-form-boton { display: inline-block; margin-top: 14px; background: var(--acento); color: var(--acento-txt) !important; font-weight: 800; padding: 12px 26px !important; border-radius: 999px; }

@media (max-width: 980px) {
	.km .et_pb_row.km-planes-fila { grid-template-columns: 1fr; max-width: 520px; }
	.km-plan-dest { transform: none; }
	.km .et_pb_row.km-items { grid-template-columns: 1fr 1fr; }
	.km-split .et_pb_row, .km-form .et_pb_row { flex-direction: column; align-items: stretch; gap: 40px; }
	.km-notas { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.km .et_pb_row.km-items, .km-hackeo .et_pb_row:not(.km-titulo) { grid-template-columns: 1fr; }
	.km-persona-caja { flex-direction: column; padding: 28px 24px; }
	.km-avatar-grande { width: 88px; height: 88px; }
	.km-informe { transform: none; }
}

/* ajustes de la página de mantenimiento (06/11) */
.km .et_pb_text ul.km-notas, .km .et_pb_text ul.km-notas li { list-style: none !important; }
.km .et_pb_text ul.km-notas { padding-left: 0 !important; }
.km-form-hueco p.km-form-boton { color: var(--acento-txt) !important; }
.km-c .km-pie.et_pb_section { background: #061a5c; }
.km-c .km-form.et_pb_section + .km-pie.et_pb_section { border-top: 0; }
@media (max-width: 980px) { .km-split .et_pb_column, .km-form .et_pb_column { flex: 1 1 auto; } }
@media (max-width: 640px) { .km-persona-caja { gap: 18px; } }

/* ------------------------------------------------------------ más diseño (06/11, petición de Josu) */

/* cabecera fija al bajar */
.km-cab.et_pb_section { position: sticky; top: 0; z-index: 50; transition: box-shadow .2s, background .2s; }
body.km-bajado .km-cab.et_pb_section { background: rgba(10, 42, 143, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 10px 30px -18px rgba(0,0,0,.6); padding: 14px 0; }
body.km-bajado .km-cab .km-logo, body.km-bajado .km-cab .km-logo .et_pb_image_wrap, body.km-bajado .km-cab .km-logo img { width: 150px; }
.km-cab .km-logo img { transition: width .2s; }
.km-cab .km-nav a:not(.km-nav-boton) { position: relative; }
.km-cab .km-nav a:not(.km-nav-boton)::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -6px; height: 2px; border-radius: 2px; background: var(--acento); transition: right .2s; }
.km-c .km-cab .km-nav a:hover:not(.km-nav-boton) { text-decoration: none; }
.km-cab .km-nav a:hover:not(.km-nav-boton)::after { right: 0; }

/* círculo del logo detrás del panel del arranque */
.km-hero .et_pb_column:last-child { position: relative; }
.km-hero .et_pb_column:last-child::before { content: ''; position: absolute; width: 520px; height: 520px; right: -120px; top: 50%; transform: translateY(-50%); background: url(img/km32-circulo-blanco.svg) center / contain no-repeat; opacity: .07; pointer-events: none; }
.km-panel { position: relative; }

/* títulos de sección con la raya de puntos del logo */
.km-titulo h2::after, .km-porque h2::after { content: ''; display: block; width: 74px; height: 6px; margin: 18px auto 0; background-image: radial-gradient(var(--acento-osc) 2.4px, transparent 2.8px); background-size: 12px 6px; }
.km-porque h2::after { margin-left: 0; }
.km-hero h1::after { display: none; }

/* ------------------------------------------------------------ formulario */
.km-form .km-sellos { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 26px; padding: 0 !important; list-style: none; }
.km-form .km-sellos li { color: var(--osc-txt); font-size: 15px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.km-form .km-sellos li::before { content: ''; width: 18px; height: 18px; border-radius: 50%; background: var(--acento) url(img/si-osc.svg) center / 12px no-repeat; flex: 0 0 auto; }
.km-form-caja { background: var(--tarjeta); border-radius: calc(var(--radio) + 4px); padding: 34px 32px 30px !important; box-shadow: 0 40px 80px -40px rgba(0,0,0,.6); }
.km-formulario .et_pb_contact_form_container, .km-formulario { margin: 0 !important; }
.km-formulario .et_pb_contact_main_title { display: none; }
.km-formulario p.et_pb_contact_field { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.km-formulario label, .km-formulario .et_pb_contact_form_label { display: block !important; font-family: var(--f-txt); font-size: 14px; font-weight: 700; color: var(--txt); margin-bottom: 6px; }
.km-formulario input.input, .km-formulario textarea.input, .km-formulario input[type="text"], .km-formulario input[type="email"], .km-formulario textarea {
	width: 100% !important; background: var(--fondo2) !important; border: 1.5px solid var(--linea) !important; border-radius: 12px !important;
	padding: 14px 16px !important; font-family: var(--f-txt) !important; font-size: 16px !important; color: var(--txt) !important; transition: border-color .15s, box-shadow .15s; }
.km-formulario textarea { min-height: 120px; }
.km-formulario input:focus, .km-formulario textarea:focus { outline: 0; border-color: var(--acento-osc) !important; box-shadow: 0 0 0 4px rgba(29,78,216,.15); background: #fff !important; }
.km-formulario ::placeholder { color: #8a93ab; }
.km-formulario .et_pb_contact_field_options_title { font-size: 14px; font-weight: 700; color: var(--txt); margin-bottom: 6px; display: none; }
.km-formulario .et_pb_checkbox_handle, .km-formulario .et_pb_contact_field_checkbox label { font-size: 14px !important; font-weight: 500 !important; color: var(--suave) !important; }
.km-formulario .et_pb_contact_field_checkbox a { color: var(--acento-osc); font-weight: 700; }
.km-formulario .et_contact_bottom_container { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px !important; float: none !important; width: 100%; }
.km-formulario .et_pb_contact_right { color: var(--txt); font-size: 15px; }
.km-formulario .et_pb_contact_captcha { width: 60px !important; padding: 10px !important; border-radius: 10px !important; background: var(--fondo2) !important; border: 1.5px solid var(--linea) !important; }
.km-formulario .et_pb_contact_submit, .km-formulario button.et_pb_button {
	background: var(--acento) !important; color: var(--acento-txt) !important; border: 0 !important; border-radius: 999px !important;
	padding: 14px 30px !important; font-family: var(--f-txt) !important; font-weight: 800 !important; font-size: 17px !important; margin-left: auto !important; }
.km-formulario .et_pb_contact_submit:after { display: none !important; }
.km-formulario .et-pb-contact-message { color: var(--txt); font-weight: 600; }
.km-formulario .et-pb-contact-message p { color: var(--txt) !important; }
.km-formulario .et_pb_contact_error { border-color: #d92d20 !important; }

/* ------------------------------------------------------------ pie nuevo */
.km-c .km-pie.et_pb_section { background: #061a5c; padding: 80px 0 0; position: relative; overflow: hidden; }
.km-pie.et_pb_section::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, var(--acento), #ffe98a 40%, var(--acento-osc)); }
.km-pie.et_pb_section::after { content: ''; position: absolute; width: 460px; height: 460px; right: -130px; bottom: -150px; background: url(img/km32-circulo-blanco.svg) center / contain no-repeat; opacity: .06; pointer-events: none; }
.km-pie .et_pb_row { grid-template-columns: 1.5fr 1fr 1fr 1.2fr !important; gap: 44px; }
.km-pie .km-logo, .km-pie .km-logo .et_pb_image_wrap, .km-pie .km-logo img { width: 170px; }
.km-pie .km-logo { margin-bottom: 20px; }
.km-pie p { line-height: 1.6; }
.km.km-pie .et_pb_text h3 { color: #fff; margin-bottom: 18px; position: relative; padding-bottom: 12px; }
.km.km-pie .et_pb_text h3::after { content: ''; position: absolute; left: 0; bottom: 0; width: 28px; height: 3px; border-radius: 3px; background: var(--acento); }
.km-pie li { padding: 5px 0; }
.km-pie li a { transition: color .15s, padding .15s; }
.km-pie li a:hover { color: #fff; padding-left: 4px; }
.km-pie a.km-pie-correo { display: inline-flex; align-items: center; gap: 10px; margin-top: 16px; padding: 10px 18px; border-radius: 999px; border: 1.5px solid rgba(255,255,255,.22); color: #fff !important; font-weight: 700; }
.km-pie a.km-pie-correo::before { content: ''; width: 18px; height: 18px; background: url(img/correo.svg) center / contain no-repeat; }
.km-pie a.km-pie-correo:hover { border-color: var(--acento); }
.km-horario-caja { border-radius: 14px; background: rgba(255,255,255,.06); padding: 6px 18px; }
.km-horario-caja p { padding: 12px 0 12px 28px !important; position: relative; border-bottom: 1px dashed rgba(255,255,255,.14); }
.km-horario-caja p:last-child { border-bottom: 0; }
.km-horario-caja p::before { content: ''; position: absolute; left: 0; top: 15px; width: 18px; height: 18px; background: url(img/reloj.svg) center / contain no-repeat; }
.km-horario-caja strong { display: block; color: #fff; font-weight: 700; }
.km-pie .km-legal { margin-top: 30px; padding: 24px 0 28px !important; border-top: 1px solid rgba(255,255,255,.12); display: flex !important; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.km-pie .km-legal .et_pb_text_inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; width: 100%; }
.km-pie .km-legal p { padding: 0 !important; font-size: 14px !important; }
.km-pie .km-legal a { margin-left: 22px; }
.km-pie .km-legal a:first-child { margin-left: 0; }

@media (max-width: 980px) {
	.km-pie .et_pb_row { grid-template-columns: 1fr 1fr !important; }
	.km-hero .et_pb_column:last-child::before { width: 380px; height: 380px; right: -60px; }
}
@media (max-width: 640px) {
	.km-pie .et_pb_row { grid-template-columns: 1fr !important; gap: 30px; }
	.km-pie .km-legal .et_pb_text_inner { flex-direction: column; align-items: flex-start; }
	.km-form-caja { padding: 26px 20px 22px !important; }
	.km-formulario .et_contact_bottom_container { flex-direction: column; align-items: stretch; }
	.km-formulario .et_pb_contact_submit { width: 100%; }
	body.km-bajado .km-cab .km-logo, body.km-bajado .km-cab .km-logo .et_pb_image_wrap, body.km-bajado .km-cab .km-logo img { width: 116px; }
}
.km-pie .km-legal .et_pb_text_inner p:last-child { margin-left: auto; }
.km-formulario .et_pb_contact_right p { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0 !important; font-weight: 700; }
.km-formulario .et_pb_contact_field_checkbox label i { border-radius: 6px; }

/* ------------------------------------------------------------ Contact Form 7 (06/11) */
.km-formulario .wpcf7 { margin: 0; }
.km-formulario .km-filas { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 14px; }
.km-formulario .km-filas label { display: block; font-family: var(--f-txt); font-size: 14px; font-weight: 700; color: var(--txt); }
.km-formulario .km-filas label.km-ancho { grid-column: 1 / -1; }
.km-formulario .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.km-formulario input.wpcf7-text, .km-formulario input.wpcf7-email, .km-formulario input.wpcf7-url, .km-formulario textarea.wpcf7-textarea {
	width: 100%; background: var(--fondo2); border: 1.5px solid var(--linea); border-radius: 12px; padding: 14px 16px;
	font-family: var(--f-txt); font-size: 16px; color: var(--txt); transition: border-color .15s, box-shadow .15s, background .15s; box-sizing: border-box; }
.km-formulario textarea.wpcf7-textarea { min-height: 110px; resize: vertical; }
.km-formulario .wpcf7-form-control:focus { outline: 0; border-color: var(--acento-osc); box-shadow: 0 0 0 4px rgba(29,78,216,.15); background: #fff; }
.km-formulario ::placeholder { color: #8a93ab; }
.km-formulario .km-envio { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 20px; }
.km-formulario .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.km-formulario .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: var(--suave); line-height: 1.45; }
.km-formulario .wpcf7-acceptance input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--acento-osc); flex: 0 0 auto; }
.km-formulario .wpcf7-acceptance a { color: var(--acento-osc); font-weight: 700; }
.km-formulario .cf-turnstile { flex: 1 1 100%; }
.km-formulario input.wpcf7-submit {
	background: var(--acento); color: var(--acento-txt); border: 0; border-radius: 999px; padding: 15px 32px; cursor: pointer;
	font-family: var(--f-txt); font-weight: 800; font-size: 17px; margin-left: auto; transition: transform .15s, box-shadow .15s; }
.km-formulario input.wpcf7-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -10px var(--acento); }
.km-formulario input.wpcf7-submit:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.km-formulario .wpcf7-spinner { margin: 0 0 0 8px; }
.km-formulario .wpcf7-not-valid-tip { font-size: 13px; color: #c4320a; margin-top: 4px; }
.km-formulario .wpcf7-not-valid { border-color: #c4320a !important; }
.km-formulario .wpcf7-response-output { margin: 18px 0 0 !important; padding: 12px 16px !important; border-radius: 12px; font-size: 15px; color: var(--txt); }
.km-formulario form.sent .wpcf7-response-output { border-color: #12b76a !important; background: #ecfdf3; }
.km-form-legal { margin-top: 18px; font-size: 13px; color: var(--suave); }
.km-form-legal summary { cursor: pointer; font-weight: 700; color: var(--suave); }
.km-form-legal p { font-size: 13px !important; color: var(--suave); margin-top: 8px; line-height: 1.5; }
.km-form-legal a { color: var(--acento-osc); }
@media (max-width: 640px) {
	.km-formulario .km-filas { grid-template-columns: 1fr; }
	.km-formulario input.wpcf7-submit { width: 100%; }
}
.km-formulario .km-filas input[type="url"], .km-formulario .km-filas input[type="text"], .km-formulario .km-filas input[type="email"], .km-formulario .km-filas textarea { width: 100% !important; background: var(--fondo2) !important; border: 1.5px solid var(--linea) !important; border-radius: 12px !important; padding: 14px 16px !important; font-size: 16px !important; color: var(--txt) !important; }
.km-formulario .km-filas input:focus, .km-formulario .km-filas textarea:focus { background: #fff !important; border-color: var(--acento-osc) !important; }

/* ------------------------------------------------------------ urgencias (06/11) */
/* tarjeta de precio del arranque */
.km-precio-caja { position: relative; background: var(--tarjeta); border-radius: calc(var(--radio) + 4px); padding: 38px 32px 28px; box-shadow: 0 40px 80px -30px rgba(0,0,0,.55); transform: rotate(1.2deg); }
.km-precio-caja .km-plan-marca { left: 32px; }
.km-precio-caja .km-plan-precio strong { font-size: 64px; }
.km-precio-caja .km-plan-precio span { color: var(--suave) !important; }
.km-hero .km-precio-caja p, .km-hero .km-precio-caja li { color: var(--txt); }
.km-precio-caja ul { list-style: none; padding: 0 !important; margin: 18px 0 0; }
.km-precio-caja li { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px dashed var(--linea); font-weight: 600; font-size: 16px; }
.km-precio-caja li::before { content: ''; width: 22px; height: 22px; border-radius: 50%; flex: 0 0 auto; background: var(--acento-osc) url(img/si.svg) center / 13px no-repeat; }
.km-hero .km-precio-caja .km-precio-pie { margin-top: 14px; padding: 12px 14px !important; border-radius: 12px; background: var(--fondo2); font-size: 14px !important; color: var(--suave); }

/* señales */
.km.km-senales { background: var(--fondo); }
.km-senales .et_pb_row { display: flex; align-items: flex-start; gap: 6%; }
.km-senales .et_pb_column { margin: 0 !important; }
.km-senales .et_pb_column:first-child { flex: 0 0 32%; position: sticky; top: 120px; }
.km-senales .et_pb_column:last-child { flex: 1 1 auto; }
.km-senales h2::after { content: ''; display: block; width: 74px; height: 6px; margin: 18px 0 0; background-image: radial-gradient(var(--acento-osc) 2.4px, transparent 2.8px); background-size: 12px 6px; }
.km-senales-lista { list-style: none; padding: 0 !important; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.km-senales-lista li { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: var(--radio); padding: 64px 22px 22px; position: relative; font-size: 16px; line-height: 1.5; color: var(--txt); font-weight: 500; }
.km-senales-lista li::before { content: ''; position: absolute; left: 22px; top: 20px; width: 32px; height: 32px; border-radius: 10px; background: #fff4e5 url(img/aviso.svg) center / 18px no-repeat; }

/* pasos */
.km.km-pasos { background: var(--fondo2); }
.km-pasos-lista { list-style: none; counter-reset: paso; padding: 0 !important; margin: 0; position: relative; }
.km-pasos-lista::before { content: ''; position: absolute; left: 23px; top: 24px; bottom: 24px; border-left: 2px dotted var(--acento-osc); opacity: .5; }
.km-pasos-lista li { counter-increment: paso; position: relative; padding: 14px 0 14px 76px; min-height: 48px; font-size: 17px; line-height: 1.55; color: var(--suave); }
.km-pasos-lista li::before { content: counter(paso); position: absolute; left: 0; top: 8px; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center;
	background: var(--acento-osc); color: #fff; font-family: var(--f-tit); font-weight: 800; font-size: 20px; box-shadow: 0 0 0 6px var(--fondo2); }
.km-pasos-lista li strong { color: var(--txt); }
.km-pasos-nota { margin-top: 18px; padding: 16px 20px !important; border-radius: 14px; background: var(--tarjeta); border: 1px solid var(--linea); font-size: 16px !important; color: var(--suave); }

/* precio */
.km.km-precio-sec { background: var(--fondo); }
.km-precio-sec .et_pb_row:not(.km-titulo):not(.km-estrecho) { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.km-precio-sec .et_pb_row:not(.km-titulo):not(.km-estrecho) .et_pb_column { margin: 0 !important; width: auto !important; }
.km.km-precio-sec .et_pb_text h3 { font-size: 18px; margin-bottom: 14px; }
.km.km-precio-sec .km-caja-dest .et_pb_text h3 { color: var(--osc-suave); }
.km-cifra { font-family: var(--f-tit); font-weight: var(--tit-peso); letter-spacing: var(--tit-esp); font-size: 44px !important; line-height: 1 !important; color: var(--txt); padding-bottom: 10px !important; }
.km-caja-dest .km-cifra { color: var(--acento) !important; }
.km-precio-sec .km-estrecho { margin-top: 26px; }
.km-garantia { position: relative; border: 2px dashed var(--acento-osc); border-radius: calc(var(--radio) + 4px); padding: 30px 34px 26px 120px; background: var(--fondo2); }
.km-garantia::before { content: ''; position: absolute; left: 30px; top: 30px; width: 64px; height: 64px; background: url(img/km32-circulo-azul.svg) center / contain no-repeat; }
.km-garantia p { color: var(--suave); }
.km-garantia .km-letra { font-size: 14px !important; margin-top: 6px; }

/* después */
.km.km-despues { background: var(--fondo); padding-top: 0; }
.km-despues-caja { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 44px 48px; border-radius: calc(var(--radio) + 10px);
	background: linear-gradient(120deg, var(--osc) 0%, var(--osc2) 100%); position: relative; overflow: hidden; }
.km-despues-caja::after { content: ''; position: absolute; width: 300px; height: 300px; right: -70px; top: -90px; background: url(img/km32-circulo-blanco.svg) center / contain no-repeat; opacity: .08; }
.km-despues-caja h2, .km-despues-caja p, .km.km-despues .et_pb_text h2 { color: var(--osc-txt); }
.km-despues-caja p { color: var(--osc-suave); max-width: 640px; }
.km-despues-caja .km-antetitulo { color: var(--acento); }
.km-despues-boton { flex: 0 0 auto; position: relative; z-index: 1; }
a.km-boton-enlace { display: inline-block; background: var(--acento); color: var(--acento-txt) !important; font-weight: 800; padding: 15px 28px; border-radius: 999px; text-decoration: none; transition: transform .15s, box-shadow .15s; }
a.km-boton-enlace:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -10px var(--acento); }

@media (max-width: 980px) {
	.km-senales .et_pb_row { flex-direction: column; gap: 30px; }
	.km-senales .et_pb_column:first-child { flex: 1 1 auto; position: static; }
	.km-precio-sec .et_pb_row:not(.km-titulo):not(.km-estrecho) { grid-template-columns: 1fr; }
	.km-despues-caja { flex-direction: column; align-items: flex-start; }
	.km-precio-caja { transform: none; }
}
@media (max-width: 640px) {
	.km-senales-lista { grid-template-columns: 1fr; }
	.km-garantia { padding: 96px 22px 22px; }
	.km-garantia::before { left: 22px; top: 22px; width: 54px; height: 54px; }
	.km-despues-caja { padding: 32px 24px; }
	.km-pasos-lista li { padding-left: 64px; }
}
.km .et_pb_text ul.km-senales-lista, .km .et_pb_text ul.km-senales-lista li, .km .et_pb_text ol.km-pasos-lista, .km .et_pb_text ol.km-pasos-lista li, .km .et_pb_text .km-precio-caja ul, .km .et_pb_text .km-precio-caja li { list-style: none !important; }
.km .et_pb_text ul.km-senales-lista, .km .et_pb_text ol.km-pasos-lista { padding-left: 0 !important; }
.km-formulario .km-filas input[type="tel"] { width: 100% !important; background: var(--fondo2) !important; border: 1.5px solid var(--linea) !important; border-radius: 12px !important; padding: 14px 16px !important; font-size: 16px !important; color: var(--txt) !important; box-sizing: border-box; }
.km-formulario .km-filas input[type="tel"]:focus { background: #fff !important; border-color: var(--acento-osc) !important; outline: 0; }
.km-pie .km-legal .et_pb_text { width: 100%; }

/* ------------------------------------------------------------ alojamiento (06/11) */
.km-espacio { margin-top: 14px; padding: 14px 16px; border-radius: 12px; background: rgba(255,255,255,.06); }
.km-espacio-txt { display: flex; justify-content: space-between; font-size: 14px; font-weight: 700; color: var(--osc-txt); margin-bottom: 10px; }
.km-espacio-barra { position: relative; height: 10px; border-radius: 10px; background: rgba(255,255,255,.14); }
.km-espacio-barra i { position: absolute; left: 0; top: 0; bottom: 0; width: 58%; border-radius: 10px; background: linear-gradient(90deg, var(--acento-osc), #4f7dff); }
.km-espacio-barra em { position: absolute; left: 95%; top: -6px; bottom: -6px; border-left: 2px dashed var(--acento); font-style: normal; font-size: 11px; font-weight: 800; color: var(--acento); padding-left: 0; }
.km-espacio-barra em::after { content: '95 %'; position: absolute; top: -18px; left: -14px; }
.km-espacio-barra em { font-size: 0; }
.km-espacio small { display: block; margin-top: 12px; font-size: 13px; color: var(--osc-suave); }
.km-espacio-claro { background: var(--fondo2); margin: 16px 0 4px; }
.km-espacio-claro .km-espacio-txt { color: var(--txt); }
.km-espacio-claro .km-espacio-barra { background: #dfe5f3; }
.km-espacio-barra i.km-lleno { width: 96%; background: linear-gradient(90deg, #f59e0b, #dc2626); }

.km-traslado { margin-top: 26px; padding-left: 120px; }

.km.km-solo { background: var(--fondo); }
.km-solo-caja { display: flex; align-items: center; gap: 40px; padding: 40px 44px; border-radius: calc(var(--radio) + 8px); border: 1px solid var(--linea); background: var(--tarjeta); }
.km-solo-caja > div:first-child { flex: 1 1 auto; }
.km-solo-caja p { color: var(--suave); }
.km-solo-caja a { color: var(--acento-osc); font-weight: 700; }
.km.km-solo .et_pb_text h2 { font-size: 30px; margin-bottom: 12px; }
.km-solo-precio { flex: 0 0 240px; text-align: center; padding: 26px 20px; border-radius: var(--radio); background: var(--fondo2); }
.km-solo-precio span { display: block; font-size: 14px; font-weight: 700; color: var(--suave); line-height: 1.4; }
.km-solo-precio strong { display: block; font-family: var(--f-tit); font-size: 52px; font-weight: var(--tit-peso); letter-spacing: var(--tit-esp); color: var(--txt); line-height: 1.1; margin-top: 8px; }
.km-solo-precio em { font-style: normal; font-size: 14px; color: var(--suave); }

.km .et_pb_row.km-planes-fila .km-plan-lista li { font-size: 14.5px; }

@media (max-width: 980px) {
	.km-solo-caja { flex-direction: column; align-items: stretch; }
	.km-solo-precio { flex: 1 1 auto; }
}
@media (max-width: 640px) {
	.km-solo-caja { padding: 28px 22px; }
	.km-traslado { padding-left: 22px; }
}

/* ------------------------------------------------------------ movimiento (06/11, petición de Josu)
   Solo con JavaScript (clase km-anim en <html>) y sin «reducir movimiento» en el sistema. */
@media (prefers-reduced-motion: no-preference) {
	/* aparecer al bajar, uno detrás de otro (--i lo pone el script) */
	.km-anim .km-revela { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: calc(var(--i, 0) * 90ms); }
	.km-anim .km-revela.km-visto { opacity: 1; transform: none; }
	.km-anim .km-plan-dest.km-revela.km-visto { transform: translateY(-10px); }

	/* arranque: entra al cargar */
	@keyframes km-sube { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
	/* 06/11: el texto del arranque ya no entra con fundido (retrasaba la carga que mide Google) */
	.km-anim .km-hero .et_pb_column:last-child { animation: km-sube 1s .3s cubic-bezier(.2,.7,.2,1) both; }

	/* el panel y la tarjeta de precio flotan */
	@keyframes km-flota { 0%, 100% { transform: rotate(1.2deg) translateY(0); } 50% { transform: rotate(.4deg) translateY(-10px); } }
	.km-panel, .km-precio-caja { animation: km-flota 7s ease-in-out infinite; }
	/* las comprobaciones del panel se van marcando */
	@keyframes km-marca { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: none; } }
	.km-anim .km-panel li b::after { animation: km-marca .45s cubic-bezier(.3,1.6,.5,1) both; }
	.km-anim .km-panel li:nth-child(1) b::after { animation-delay: .9s; }
	.km-anim .km-panel li:nth-child(2) b::after { animation-delay: 1.2s; }
	.km-anim .km-panel li:nth-child(3) b::after { animation-delay: 1.5s; }
	.km-anim .km-panel li:nth-child(4) b::after { animation-delay: 1.8s; }
	/* la barra de espacio se llena */
	@keyframes km-llena { from { width: 0; } }
	.km-anim .km-visto .km-espacio-barra i, .km-anim .km-hero .km-espacio-barra i { animation: km-llena 1.6s .4s cubic-bezier(.2,.7,.2,1) both; }

	/* el círculo del logo gira muy despacio */
	@keyframes km-gira { to { transform: translateY(-50%) rotate(360deg); } }
	@keyframes km-gira2 { to { transform: rotate(360deg); } }
	.km-hero .et_pb_column:last-child::before { animation: km-gira 90s linear infinite; }
	.km-pie.et_pb_section::after, .km-despues-caja::after { animation: km-gira2 120s linear infinite; }

	/* la trama de puntos del arranque se mueve poco a poco */
	@keyframes km-puntos { to { background-position: 22px 22px; } }
	.km-puntos::before { animation: km-puntos 6s linear infinite; }

	/* raya de puntos de los títulos: se dibuja al aparecer */
	.km-anim .km-revela h2::after { width: 0; transition: width .8s .35s ease; }
	.km-anim .km-revela.km-visto h2::after { width: 74px; }

	/* pasos: los números saltan al aparecer */
	.km-anim .km-pasos-lista li.km-revela::before { transform: scale(.3); transition: transform .5s cubic-bezier(.3,1.6,.5,1); transition-delay: calc(var(--i, 0) * 90ms + .15s); }
	.km-anim .km-pasos-lista li.km-revela.km-visto::before { transform: none; }
}

/* al pasar el ratón (también sin animaciones de entrada) */
.km-item, .km-caja, .km-senales-lista li, .km-faq, .km-plan { transition: transform .2s, box-shadow .2s, border-color .2s; }
.km-item:hover, .km-senales-lista li:hover, .km-caja:not(.km-caja-dest):hover { transform: translateY(-4px); box-shadow: 0 24px 40px -28px rgba(13,22,48,.45); border-color: var(--acento-osc); }
.km-plan:not(.km-plan-dest):hover { transform: translateY(-6px); box-shadow: 0 30px 50px -34px rgba(13,22,48,.5); }
.km-faq:hover { border-color: var(--acento-osc); }
.km-item:hover .km-icono, .km-tarjeta:hover .km-icono { background: var(--acento-osc); color: #fff; transition: background .2s, color .2s; }
.km-icono { transition: background .2s, color .2s; }
.km .et_pb_button, a.km-boton-enlace, .km-formulario input.wpcf7-submit { position: relative; overflow: hidden; }
.km .et_pb_button::before { display: none !important; }

/* ------------------------------------------------------------ diseño web (06/11): la página escaparate */
.km-hero-diseno .et_pb_column:last-child::before { display: none; }
.km-maqueta { position: relative; height: 430px; }
.km-mq-portatil { position: absolute; left: 0; right: 40px; top: 10px; }
.km-mq-pantalla { background: #0d1630; border-radius: 16px 16px 6px 6px; padding: 10px; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.14); }
.km-mq-barra { display: flex; align-items: center; gap: 6px; padding: 2px 6px 9px; }
.km-mq-barra i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.25); }
.km-mq-barra span { margin-left: 10px; flex: 1; font-size: 11px; color: rgba(255,255,255,.6); background: rgba(255,255,255,.08); border-radius: 6px; padding: 3px 10px; font-family: var(--f-txt); }
.km-mq-base { height: 14px; margin: 0 -26px; border-radius: 0 0 14px 14px; background: linear-gradient(#cfd7ea, #9aa6c4); box-shadow: 0 18px 30px -18px rgba(0,0,0,.6); }
.km-mq-web { background: #fff; border-radius: 6px; overflow: hidden; height: 290px; }
.km-mq-nav { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid #eef1f8; }
.km-mq-logo { width: 26px; height: 26px; border-radius: 8px; background: linear-gradient(135deg, #0f766e, #14b8a6); }
.km-mq-nav span { width: 42px; height: 7px; border-radius: 4px; background: #e3e8f3; }
.km-mq-nav b { margin-left: auto; width: 64px; height: 22px; border-radius: 99px; background: #0f766e; }
.km-mq-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px; padding: 22px 18px 16px; align-items: center; }
.km-mq-hero em { display: block; width: 70px; height: 7px; border-radius: 4px; background: #99f6e4; margin-bottom: 12px; }
.km-mq-hero strong, .km-mq-texto strong { display: block; height: 14px; border-radius: 5px; background: #13203f; margin-bottom: 8px; }
.km-mq-hero strong.corto { width: 70%; }
.km-mq-hero p, .km-mq-texto p { height: 7px; border-radius: 4px; background: #dfe5f1; margin: 10px 0 0; padding: 0 !important; }
.km-mq-hero p.corto, .km-mq-texto p.corto { width: 75%; }
.km-mq-hero b, .km-mq-texto b { display: inline-block; margin-top: 16px; width: 92px; height: 26px; border-radius: 99px; background: #0f766e; }
.km-mq-foto { display: block; height: 128px; border-radius: 12px; background:
	radial-gradient(circle at 70% 30%, rgba(255,255,255,.55) 0 18px, transparent 19px),
	linear-gradient(160deg, transparent 55%, rgba(15,118,110,.55) 55.5%),
	linear-gradient(200deg, #fde68a 0%, #fbbf24 30%, #f97316 100%); }
.km-mq-tarjetas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 4px 18px 18px; }
.km-mq-tarjetas i { height: 48px; border-radius: 10px; background: #f1f5fb; border: 1px solid #e6ebf5; }
.km-mq-movil { position: absolute; right: 0; bottom: 0; width: 150px; height: 300px; border-radius: 28px; background: #0d1630; padding: 10px 8px; box-shadow: 0 30px 60px -20px rgba(0,0,0,.7); border: 1px solid rgba(255,255,255,.18); }
.km-mq-muesca { position: absolute; top: 9px; left: 50%; width: 46px; height: 10px; margin-left: -23px; border-radius: 10px; background: #0d1630; z-index: 2; }
.km-mq-web-movil { height: 100%; border-radius: 20px; padding-top: 14px; }
.km-mq-web-movil .km-mq-nav { padding: 8px 10px; }
.km-mq-web-movil .km-mq-nav b { width: 30px; height: 14px; }
.km-mq-web-movil .km-mq-logo { width: 18px; height: 18px; border-radius: 6px; }
.km-mq-web-movil .km-mq-foto { height: 86px; margin: 10px; border-radius: 10px; }
.km-mq-texto { padding: 0 12px; }
.km-mq-texto strong { height: 10px; }
.km-mq-texto b { width: 70px; height: 20px; margin-top: 12px; }
.km-mq-web-movil .km-mq-tarjetas { grid-template-columns: 1fr 1fr; padding: 12px; gap: 8px; }
.km-mq-web-movil .km-mq-tarjetas i { height: 34px; }
.km-mq-sello { position: absolute; z-index: 3; background: #fff; border-radius: 14px; padding: 10px 14px; font-family: var(--f-txt); font-size: 12px; font-weight: 600; color: var(--suave); box-shadow: 0 18px 34px -16px rgba(0,0,0,.55); line-height: 1.3; }
.km-mq-sello b { display: block; font-family: var(--f-tit); font-size: 20px; font-weight: 800; color: var(--txt); }
.km-mq-s1 { left: -24px; bottom: 36px; }
.km-mq-s2 { right: 120px; top: -12px; max-width: 150px; }
.km-hero .km-mq-sello, .km-hero .km-mq-sello b { color: var(--suave); }
.km-hero .km-mq-sello b { color: var(--txt); }

@media (prefers-reduced-motion: no-preference) {
	@keyframes km-mq-flota { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
	@keyframes km-mq-brillo { 0%, 100% { filter: saturate(1); } 50% { filter: saturate(1.25) brightness(1.05); } }
	@keyframes km-mq-carga { from { width: 0; } }
	.km-mq-movil { animation: km-mq-flota 6s ease-in-out infinite; }
	.km-mq-portatil { animation: km-mq-flota 8s 1s ease-in-out infinite; }
	.km-mq-sello { animation: km-mq-flota 5s .5s ease-in-out infinite; }
	.km-mq-s2 { animation-delay: 1.6s; }
	.km-mq-foto { animation: km-mq-brillo 6s ease-in-out infinite; }
	.km-anim .km-mq-hero strong, .km-anim .km-mq-hero p, .km-anim .km-mq-texto strong, .km-anim .km-mq-texto p { animation: km-mq-carga 1.2s cubic-bezier(.2,.7,.2,1) both; }
	.km-anim .km-mq-hero p { animation-delay: .5s; }
	.km-anim .km-mq-texto strong { animation-delay: .9s; }
	.km-anim .km-mq-texto p { animation-delay: 1.1s; }
}

/* comparativa web / tienda */
.km.km-incluye { background: var(--fondo); }
.km-comp { border: 1px solid var(--linea); border-radius: calc(var(--radio) + 4px); overflow: hidden; background: var(--tarjeta); box-shadow: 0 30px 60px -44px rgba(13,22,48,.5); }
.km-comp-cab, .km-comp-fila { display: grid; grid-template-columns: 1.6fr 1fr 1fr; }
.km-comp-cab > div { padding: 30px 24px 22px; position: relative; }
.km.km-incluye .et_pb_text h3 { font-size: 22px; margin-bottom: 8px; }
.km-comp-cab .km-plan-precio { gap: 8px; }
.km-comp-cab .km-plan-precio strong { font-size: 40px; }
.km-comp-cab .km-plan-precio span { font-size: 15px; }
.km-comp-fila > div { padding: 16px 24px; border-top: 1px solid var(--linea); font-size: 15.5px; line-height: 1.45; color: var(--txt); display: flex; align-items: center; }
.km-comp-fila > div:first-child { color: var(--suave); }
.km-comp-fila > div:not(:first-child) { justify-content: center; text-align: center; font-weight: 600; }
.km-comp-fila a { color: var(--acento-osc); font-weight: 700; }
.km-comp .km-comp-dest { background: #f4f7ff; }
.km-comp-cab .km-comp-dest { border-top: 4px solid var(--acento-osc); }
.km-comp-cab .km-comp-dest .km-plan-marca { top: -2px; left: 24px; position: relative; display: inline-block; margin-bottom: 10px; }
.km-comp-botones > div { padding: 22px 24px 26px; }
a.km-boton-borde { background: transparent; color: var(--acento-osc) !important; border: 2px solid var(--acento-osc); padding: 13px 26px; }
.km-incluye .km-notas { margin-top: 26px; grid-template-columns: repeat(3, auto); justify-content: center; }

/* línea de tiempo */
.km.km-plazo { background: var(--fondo2); }
.km-linea { list-style: none !important; padding: 0 !important; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; position: relative; counter-reset: none; }
.km-linea::before { content: ''; position: absolute; left: 10%; right: 10%; top: 27px; border-top: 2px dotted var(--acento-osc); opacity: .55; }
.km .et_pb_text .km-linea li { list-style: none !important; position: relative; text-align: center; padding: 0 6px; }
.km-linea-n { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 18px; border-radius: 50%; background: var(--acento-osc); color: #fff; font-family: var(--f-tit); font-weight: 800; font-size: 22px; position: relative; box-shadow: 0 0 0 8px var(--fondo2); }
.km-linea li:last-child .km-linea-n { background: var(--acento); color: var(--acento-txt); }
.km.km-plazo .et_pb_text h3 { font-size: 17px; margin-bottom: 8px; }
.km-linea p { font-size: 14.5px !important; color: var(--suave); }
.km-plazo .km-pasos-nota { max-width: 760px; margin: 34px auto 0; text-align: center; }

/* lo que va aparte */
.km-aparte-lista { list-style: none !important; padding: 0 !important; margin: 0; }
.km .et_pb_text .km-aparte-lista li { list-style: none !important; position: relative; padding: 14px 0 14px 40px; border-bottom: 1px dashed var(--linea); color: var(--txt); font-size: 16px; }
.km-aparte-lista li::before { content: ''; position: absolute; left: 0; top: 15px; width: 24px; height: 24px; border-radius: 50%; background: var(--fondo2); }
.km-aparte-lista li::after { content: ''; position: absolute; left: 7px; top: 26px; width: 10px; height: 2px; border-radius: 2px; background: var(--acento-osc); }

@media (max-width: 980px) {
	.km-maqueta { height: 400px; max-width: 520px; margin: 0 auto; }
	.km-linea { grid-template-columns: 1fr; gap: 0; }
	.km-linea::before { left: 27px; right: auto; top: 20px; bottom: 20px; border-top: 0; border-left: 2px dotted var(--acento-osc); }
	.km .et_pb_text .km-linea li { text-align: left; padding: 0 0 22px 80px; min-height: 56px; }
	.km-linea-n { position: absolute; left: 0; top: 0; margin: 0; }
	.km-incluye .km-notas { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.km-maqueta { height: 330px; }
	.km-mq-portatil { right: 30px; }
	.km-mq-web { height: 210px; }
	.km-mq-hero { grid-template-columns: 1fr; }
	.km-mq-hero .km-mq-foto { display: none; }
	.km-mq-movil { width: 118px; height: 236px; }
	.km-mq-web-movil .km-mq-foto { height: 60px; }
	.km-mq-s1 { left: 0; bottom: 10px; }
	.km-mq-s2 { display: none; }
	.km-comp-cab, .km-comp-fila { grid-template-columns: 1.2fr 1fr 1fr; }
	.km-comp-cab > div, .km-comp-fila > div { padding: 12px 10px; font-size: 13.5px; }
	.km-comp-cab .km-plan-precio strong { font-size: 26px; }
	.km.km-incluye .et_pb_text h3 { font-size: 16px; }
	.km-comp-cab .km-comp-dest .km-plan-marca { display: none; }
	.km-comp-botones { grid-template-columns: 1fr !important; }
	.km-comp-botones > div:first-child { display: none; }
	.km-comp-botones > div { justify-content: stretch !important; }
	.km-comp-botones a { width: 100%; text-align: center; }
}
.km-comp-cab > div { padding-top: 52px; }
.km-comp-cab .km-comp-dest .km-plan-marca { position: absolute; top: 16px; left: 24px; margin: 0; }
.km-comp-fila > div:first-child { display: block; align-self: center; }
.km-comp-fila { align-items: stretch; }
.km-comp-cab .km-plan-precio strong, .km-plan-precio strong, .km-cifra { white-space: nowrap; }
.km-formulario select.wpcf7-select { width: 100% !important; background: var(--fondo2) url("img/flecha.svg") right 14px center / 14px no-repeat !important; border: 1.5px solid var(--linea) !important; border-radius: 12px !important; padding: 14px 40px 14px 16px !important; font-family: var(--f-txt) !important; font-size: 16px !important; color: var(--txt) !important; -webkit-appearance: none; appearance: none; box-sizing: border-box; }
.km-formulario select.wpcf7-select:focus { outline: 0; border-color: var(--acento-osc) !important; background-color: #fff !important; }
@media (max-width: 640px) { .km-comp-cab .km-plan-precio { flex-wrap: wrap; gap: 0 4px; } .km-comp-cab .km-plan-precio strong { font-size: 22px; } }

/* ------------------------------------------------------------ portada nueva (06/11, tras el análisis de la competencia) */
/* matriz de puntos */
.km-led { display: block; width: 100%; height: auto; overflow: visible; }
.km-led circle { fill: currentColor; opacity: .12; }
.km-led circle.e { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
	@keyframes km-enciende { 0% { opacity: .12; transform: scale(.6); } 60% { opacity: 1; transform: scale(1.25); } 100% { opacity: 1; transform: none; } }
	.km-anim .km-led circle.e { opacity: .12; transform-box: fill-box; transform-origin: center; }
	.km-anim .km-hero .km-led circle.e, .km-anim .km-visto .km-led circle.e, .km-anim .km-revela.km-visto circle.e { animation: km-enciende .5s calc(var(--d) + .3s) cubic-bezier(.3,1.5,.5,1) forwards; }
	@keyframes km-parpadea { 0%, 92%, 100% { opacity: 1; } 95% { opacity: .35; } }
	.km-anim .km-hero .km-led-grande { animation: km-parpadea 6s 3s infinite; }
}

/* arranque */
.km-hero2.et_pb_section { padding: 70px 0 120px; }
.km.km-hero2 .et_pb_text h1 { font-size: clamp(44px, 6.2vw, 84px); line-height: 1.02; letter-spacing: -.035em; margin-bottom: 26px; }
.km-hero2 .km-intro { font-size: 22px !important; max-width: 520px; }
.km-contador { position: relative; background: var(--osc2); border: 1px solid var(--osc-linea); border-radius: calc(var(--radio) + 6px); padding: 40px 38px 30px; box-shadow: 0 40px 80px -30px rgba(0,0,0,.55); color: var(--acento); }
.km-led-grande { max-width: 260px; }
.km-hero .km-contador p.km-contador-txt { margin-top: 22px; font-size: 20px !important; color: var(--osc-suave); }
.km-contador-txt strong { display: block; color: #fff; font-size: 28px; font-family: var(--f-tit); letter-spacing: -.02em; }
.km .et_pb_text .km-contador-lista { list-style: none !important; padding: 18px 0 0 !important; margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px dashed var(--osc-linea); }
.km .et_pb_text .km-contador-lista li { list-style: none !important; padding: 7px 14px 7px 34px; border-radius: 99px; background: rgba(255,255,255,.07); color: #fff; font-size: 14px; font-weight: 700; position: relative; }
.km-contador-lista li::before { content: ''; position: absolute; left: 10px; top: 50%; margin-top: -8px; width: 16px; height: 16px; border-radius: 50%; background: var(--acento) url(img/si-osc.svg) center / 10px no-repeat; }
.km-hero2 .et_pb_column:last-child::before { opacity: .09; }

/* cinta en movimiento */
.km.km-cinta { background: var(--acento); padding: 0; }
.km-cinta .et_pb_row { width: 100% !important; max-width: none !important; }
.km-cinta-caja { overflow: hidden; padding: 20px 0; }
.km-cinta-pista { display: flex; width: max-content; }
.km-cinta-pista span { font-family: var(--f-tit); font-weight: 800; font-size: 26px; letter-spacing: -.02em; color: var(--acento-txt); padding: 0 28px; white-space: nowrap; display: flex; align-items: center; gap: 56px; }
.km-cinta-pista span::after { content: ''; width: 46px; height: 10px; background-image: radial-gradient(var(--acento-txt) 2.6px, transparent 3px); background-size: 11px 10px; opacity: .6; }
@media (prefers-reduced-motion: no-preference) {
	@keyframes km-cinta { to { transform: translateX(-50%); } }
	.km-cinta-pista { animation: km-cinta 38s linear infinite; }
	.km-cinta-caja:hover .km-cinta-pista { animation-play-state: paused; }
}

/* frase que se enciende al bajar */
.km.km-frase-sec { background: var(--fondo); padding: 130px 0; }
.km .et_pb_text p.km-frase { font-family: var(--f-tit); font-weight: 800; font-size: clamp(32px, 4.6vw, 62px); line-height: 1.12; letter-spacing: -.03em; color: var(--txt); max-width: 1050px; }
.km-frase strong { color: var(--acento-osc); }
.km-anim .km-frase .w { opacity: .14; transition: opacity .25s; }
.km-anim .km-frase .w.on { opacity: 1; }

/* servicios en filas */
.km.km-servicios2 { background: var(--fondo); padding-top: 10px; }
.km-servicios2 .km-titulo h2::after { margin-left: 0; }
.km-filas-serv { border-top: 2px solid var(--txt); }
a.km-fila { position: relative; display: grid; grid-template-columns: 70px 1fr auto 56px; align-items: center; gap: 24px; padding: 30px 8px; border-bottom: 1px solid var(--linea); text-decoration: none; color: var(--txt); overflow: hidden; isolation: isolate; }
a.km-fila::before { content: ''; position: absolute; inset: 0; background: var(--osc); transform: scaleY(0); transform-origin: bottom; transition: transform .35s cubic-bezier(.2,.7,.2,1); z-index: -1; }
a.km-fila:hover::before { transform: none; }
.km-fila-n { font-family: var(--f-tit); font-weight: 800; font-size: 16px; color: var(--acento-osc); transition: color .2s; }
.km-fila-txt strong { display: block; font-family: var(--f-tit); font-weight: 800; font-size: clamp(24px, 2.8vw, 38px); letter-spacing: -.025em; line-height: 1.1; transition: color .2s, transform .35s; }
.km-fila-txt small { display: block; margin-top: 6px; font-size: 16px; color: var(--suave); transition: color .2s; }
.km-fila-precio { font-family: var(--f-tit); font-weight: 800; font-size: 20px; white-space: nowrap; transition: color .2s; }
.km-fila-flecha { width: 52px; height: 52px; border-radius: 50%; border: 2px solid var(--linea); position: relative; transition: background .2s, border-color .2s, transform .35s; }
.km-fila-flecha::after { content: ''; position: absolute; inset: 0; background: currentColor; -webkit-mask: url(img/flecha-der.svg) center / 20px no-repeat; mask: url(img/flecha-der.svg) center / 20px no-repeat; }
a.km-fila:hover .km-fila-txt strong, a.km-fila:hover .km-fila-precio { color: #fff; }
a.km-fila:hover .km-fila-txt strong { transform: translateX(10px); }
a.km-fila:hover small { color: var(--osc-suave); }
a.km-fila:hover .km-fila-n { color: var(--acento); }
a.km-fila:hover .km-fila-flecha { background: var(--acento); border-color: var(--acento); color: var(--acento-txt); transform: rotate(-45deg); }

/* franja de la ría */
.km.km-franja { padding: 0; background: var(--fondo); }
.km-franja .et_pb_row { width: 100% !important; max-width: none !important; }
.km-franja-col { display: grid !important; }
.km-franja-col > * { grid-area: 1 / 1; }
.km-franja-foto, .km-franja-foto .et_pb_image_wrap { display: block; height: 620px; }
.km-franja-foto img { width: 100%; height: 620px; object-fit: cover; display: block; }
.km-franja-col > .et_pb_text { align-self: end; z-index: 2; background: linear-gradient(0deg, rgba(6,26,92,.92) 0%, rgba(6,26,92,.55) 55%, transparent 100%); padding: 160px 5% 40px !important; }
.km-franja-txt { max-width: 1180px; margin: 0 auto; }
.km.km-franja .et_pb_text h2 { color: #fff; font-size: clamp(34px, 4.8vw, 64px); letter-spacing: -.03em; }
.km-franja .km-antetitulo { color: var(--acento); }
.km-credito { font-size: 12px !important; color: rgba(255,255,255,.7); max-width: 1180px; margin: 18px auto 0; }
.km-credito a { color: inherit !important; text-decoration: underline; }
.km-trato .km-credito { color: var(--suave); margin: 10px 0 0; }
@media (prefers-reduced-motion: no-preference) {
	.km-franja-foto img { transform: scale(1.08); transition: transform 1.6s cubic-bezier(.2,.7,.2,1); }
	.km-franja.km-dentro .km-franja-foto img { transform: scale(1); }
}

/* cifras en puntos */
.km.km-cifras { background: var(--osc); padding: 90px 0; }
.km-cifras .et_pb_row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px; }
.km-cifras .et_pb_column { margin: 0 !important; width: auto !important; color: var(--acento); }
.km-cifras .km-led { max-width: 240px; height: 84px; }
.km-cifras p { color: var(--osc-suave) !important; font-size: 17px !important; margin-top: 20px; max-width: 260px; }

/* trato directo */
.km.km-trato { background: var(--fondo); padding: 110px 0; }
.km-trato .et_pb_row { display: flex; align-items: center; gap: 7%; }
.km-trato .et_pb_column { margin: 0 !important; flex: 1 1 0; }
.km-trato-foto img { width: 100%; height: 480px; object-fit: cover; border-radius: calc(var(--radio) + 10px); display: block; }
.km-trato h2::after { content: ''; display: block; width: 74px; height: 6px; margin: 18px 0 0; background-image: radial-gradient(var(--acento-osc) 2.4px, transparent 2.8px); background-size: 12px 6px; }
.km-trato-firma { display: flex; align-items: center; gap: 16px; margin: 26px 0 22px; padding: 16px 18px; border-radius: 16px; background: var(--fondo2); }
.km-trato-firma img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.km-trato-firma p { padding: 0 !important; color: var(--suave); font-size: 16px !important; }
.km-trato-firma strong { display: block; color: var(--txt); font-family: var(--f-tit); font-size: 19px; }
.km-trato p { color: var(--suave); }
.km-trato a.km-mas { color: var(--acento-osc); font-weight: 800; text-decoration: none; }
.km-trato a.km-mas::after { content: ' →'; }

/* cierre */
.km-cierre2 .km-boton-2 .et_pb_button, .km-cierre2 .km-boton-2.et_pb_button { color: #fff !important; border-color: rgba(255,255,255,.4) !important; }
.km-cierre2 .et_pb_button_module_wrapper { display: inline-block !important; margin: 30px 6px 0 !important; }
.km-cierre2 .et_pb_column { text-align: center; }
.km.km-cierre2 .et_pb_text h2 { font-size: clamp(34px, 4.4vw, 58px); }

/* el KM32 gigante de puntos del pie */
.km-pie .km-pie-marca { grid-column: 1 / -1; color: rgba(255,255,255,.9); margin-top: 30px !important; }
.km-led-pie { width: 100%; }
.km-led-pie circle { opacity: .07; }
.km-led-pie circle.e { opacity: .16; }
@media (prefers-reduced-motion: no-preference) {
	.km-anim .km-visto .km-led-pie circle.e { animation: none; opacity: .16; }
	.km-led-pie circle.e { transition: opacity .3s, fill .3s; }
	.km-pie-marca:hover .km-led-pie circle.e { opacity: .9; fill: var(--acento); transition-delay: var(--d); }
}

@media (max-width: 980px) {
	.km-trato .et_pb_row { flex-direction: column; align-items: stretch; gap: 40px; }
	.km-trato .et_pb_column { flex: 1 1 auto; }
	.km-cifras .et_pb_row { grid-template-columns: 1fr; gap: 40px; }
	a.km-fila { grid-template-columns: 44px 1fr 44px; }
	.km-fila-precio { grid-column: 2; grid-row: 2; font-size: 17px; }
	.km-fila-flecha { grid-column: 3; grid-row: 1 / span 2; width: 44px; height: 44px; }
}
@media (max-width: 640px) {
	.km-hero2.et_pb_section { padding: 40px 0 90px; }
	.km-hero2 .km-intro { font-size: 18px !important; }
	.km-contador { padding: 28px 24px 22px; }
	.km-led-grande { max-width: 190px; }
	.km.km-frase-sec { padding: 80px 0; }
	.km-cinta-pista span { font-size: 19px; gap: 30px; padding: 0 16px; }
	.km-franja-foto, .km-franja-foto .et_pb_image_wrap, .km-franja-foto img { height: 460px; }
	.km-franja-col > .et_pb_text { padding: 120px 6% 26px !important; }
	.km-trato-foto img { height: 300px; }
	a.km-fila { padding: 22px 4px; gap: 14px; }
}

/* ajustes de la portada nueva */
.km-franja-foto, .km-franja .et_pb_image_wrap { width: 100% !important; max-width: none !important; margin: 0 !important; }
.km-franja .et_pb_image img, .km-franja-foto img { width: 100% !important; max-width: none !important; }
.km-franja .km-credito, .km-franja .km-credito a { color: rgba(255,255,255,.75) !important; }
.km-cifras .km-led, .km-contador .km-led { color: var(--acento) !important; }
.km-cifras .km-led circle { opacity: .14; }
.km-cifras .km-led circle.e { opacity: 1; }
.km-led-pie { color: #fff !important; }
.km-led-pie circle { opacity: .06 !important; }
.km-led-pie circle.e { opacity: .3 !important; }
.km-pie-marca:hover .km-led-pie circle.e { opacity: 1 !important; fill: var(--acento); }

/* filas de información (qué hacemos / qué incluye) en las páginas de servicio */
.km-fila-info { position: relative; display: grid; grid-template-columns: 70px 1fr; align-items: start; gap: 24px; padding: 30px 8px; border-bottom: 1px solid var(--linea); color: var(--txt); }
.km-fila-info .km-fila-txt strong { font-size: clamp(22px, 2.4vw, 32px); }
.km-fila-info .km-fila-txt small { font-size: 17px; max-width: 760px; line-height: 1.55; }
.km-fila-info .km-fila-n { padding-top: 8px; }
.km-fila-info::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 2px; width: 0; background: var(--acento-osc); transition: width .5s cubic-bezier(.2,.7,.2,1); }
.km-fila-info:hover::after { width: 100%; }
.km.km-info { background: var(--fondo2); padding-top: 90px; }
.km-hero2.km-hero-pagina.et_pb_section { padding: 60px 0 110px; }
.km.km-hero2.km-hero-pagina .et_pb_text h1 { font-size: clamp(40px, 5.2vw, 68px); }
@media (max-width: 980px) { .km-fila-info { grid-template-columns: 44px 1fr; gap: 14px; } }

/* barra fija del móvil */
.km-barra-movil { display: none; }
@media (max-width: 767px) {
	.km-barra-movil { display: flex; gap: 8px; position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 9998; padding: 8px; border-radius: 999px; background: rgba(6,26,92,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 14px 34px -10px rgba(0,0,0,.55); transform: translateY(140%); transition: transform .35s cubic-bezier(.2,.7,.2,1); }
	.km-barra-movil.km-barra-ver { transform: none; }
	.km-barra-movil a { flex: 1 1 0; text-align: center; padding: 13px 10px; border-radius: 999px; font: 800 15px/1 Manrope, sans-serif; text-decoration: none; }
	.km-barra-1 { background: var(--acento); color: var(--acento-txt); }
	.km-barra-2 { color: #fff; border: 1.5px solid rgba(255,255,255,.3); }
}

/* logo 7 (KM sólido y 32 en puntos con brillo), en prueba desde el 06/11 */
.km-cab .km-logo, .km-cab .km-logo .et_pb_image_wrap, .km-cab .km-logo img { width: 190px; }
body.km-bajado .km-cab .km-logo, body.km-bajado .km-cab .km-logo .et_pb_image_wrap, body.km-bajado .km-cab .km-logo img { width: 160px; }
.km-pie .km-logo, .km-pie .km-logo .et_pb_image_wrap, .km-pie .km-logo img { width: 190px; }
@media (max-width: 640px) { .km-cab .km-logo, .km-cab .km-logo .et_pb_image_wrap, .km-cab .km-logo img { width: 140px; } }

/* ------------------------------------------------------------ tiendas online (06/11) */
.km-tq { position: relative; height: 440px; max-width: 460px; margin: 0 auto; }
.km-tq-movil { position: absolute; left: 70px; top: 0; width: 230px; height: 440px; border-radius: 34px; background: #0d1630; padding: 12px 10px; box-shadow: 0 40px 70px -24px rgba(0,0,0,.7); border: 1px solid rgba(255,255,255,.18); }
.km-tq-pantalla { height: 100%; border-radius: 24px; background: #fff; overflow: hidden; padding-top: 16px; }
.km-tq .km-mq-nav { padding: 8px 14px; }
.km-tq-cesta { margin-left: auto; width: 26px !important; height: 26px !important; border-radius: 8px !important; background: #f1f5fb !important; position: relative; }
.km-tq-cesta::after { content: '2'; position: absolute; right: -6px; top: -6px; width: 16px; height: 16px; border-radius: 50%; background: #f97316; color: #fff; font: 800 10px/16px Manrope, sans-serif; text-align: center; }
.km-tq-foto { display: block; height: 170px; margin: 10px 12px; border-radius: 16px; background:
	radial-gradient(circle at 50% 58%, #fff 0 34px, transparent 35px),
	radial-gradient(circle at 50% 58%, rgba(15,118,110,.25) 0 46px, transparent 47px),
	linear-gradient(160deg, #ccfbf1, #99f6e4); }
.km-tq-ficha { padding: 6px 16px; }
.km-tq-ficha strong { display: block; height: 12px; width: 80%; border-radius: 5px; background: #13203f; }
.km-tq-ficha p { height: 7px; border-radius: 4px; background: #dfe5f1; margin: 9px 0 0; padding: 0 !important; }
.km-tq-ficha p.corto { width: 60%; }
.km-tq-precio { display: flex; align-items: center; justify-content: space-between; margin: 14px 0 4px; }
.km-tq-precio span { font: 800 17px/1 Manrope, sans-serif; color: #13203f; }
.km-tq-precio em { font: 800 10px/1 Manrope, sans-serif; font-style: normal; color: #fff; background: #0f766e; padding: 8px 10px; border-radius: 99px; }
.km-tq-aviso { position: absolute; right: 0; top: 92px; display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 16px; padding: 12px 16px 12px 12px; box-shadow: 0 20px 40px -16px rgba(0,0,0,.55); z-index: 3; }
.km-tq-icono { width: 36px; height: 36px; border-radius: 10px; background: #dcfce7 url(img/si-osc.svg) center / 16px no-repeat; flex: 0 0 auto; }
.km-tq-aviso b { display: block; font: 800 15px/1.2 Manrope, sans-serif; color: #13203f; }
.km-tq-aviso small { font: 600 12px/1.3 Manrope, sans-serif; color: #46506b; }
.km-tq-sello { left: 0; bottom: 40px; }
@media (prefers-reduced-motion: no-preference) {
	@keyframes km-tq-llega { 0% { opacity: 0; transform: translate(30px, -10px) scale(.9); } 12%, 100% { opacity: 1; transform: none; } }
	.km-tq-movil { animation: km-mq-flota 7s ease-in-out infinite; }
	.km-anim .km-tq-aviso { animation: km-tq-llega 7s 1s cubic-bezier(.2,.7,.2,1) both infinite; }
	.km-tq-sello { animation: km-mq-flota 5s .8s ease-in-out infinite; }
}

/* cobros y envíos */
.km.km-cobros { background: var(--fondo); }
.km-cobros .et_pb_row:not(.km-titulo) { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.km-cobros .et_pb_row:not(.km-titulo) .et_pb_column { margin: 0 !important; width: auto !important; }
.km.km-cobros .et_pb_text h3 { font-size: 24px; margin-bottom: 10px; }
.km .et_pb_text .km-etiquetas { list-style: none !important; padding: 0 !important; margin: 20px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.km .et_pb_text .km-etiquetas li { list-style: none !important; padding: 8px 14px; border-radius: 99px; background: var(--tarjeta); border: 1px solid var(--linea); font-size: 14px; font-weight: 700; color: var(--txt); }
@media (max-width: 980px) { .km-cobros .et_pb_row:not(.km-titulo) { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
	.km-tq { height: 380px; }
	.km-tq-movil { left: 30px; width: 190px; height: 370px; }
	.km-tq-foto { height: 120px; }
	.km-tq-aviso { top: 60px; padding: 10px 12px 10px 10px; }
	.km-tq-sello { bottom: 10px; }
}
.km-filas-dos { display: grid; grid-template-columns: 1fr 1fr; column-gap: 50px; }
.km-filas-dos .km-fila-info .km-fila-txt strong { font-size: clamp(19px, 1.8vw, 24px); }
.km-filas-dos .km-fila-info { padding: 24px 6px; grid-template-columns: 50px 1fr; }
@media (max-width: 980px) { .km-filas-dos { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ SEO (06/11) */
.km-seo-leyenda { display: flex; gap: 18px; margin: 6px 0 4px; }
.km-seo-leyenda b { font: 700 13px/1 Manrope, sans-serif; color: var(--osc-suave); display: flex; align-items: center; gap: 8px; }
.km-seo-leyenda b::before { content: ''; width: 18px; height: 4px; border-radius: 4px; }
.km-seo-leyenda .c::before { background: var(--acento); }
.km-seo-leyenda .i::before { background: #7ea2ff; }
.km-seo-svg { display: block; width: 100%; height: auto; margin-top: 8px; overflow: visible; }
.km-seo-rejilla line { stroke: rgba(255,255,255,.1); stroke-dasharray: 3 5; }
.km-seo-c, .km-seo-i { fill: none; stroke-width: 4; stroke-linecap: round; }
.km-seo-c { stroke: var(--acento); }
.km-seo-i { stroke: #7ea2ff; stroke-width: 3; opacity: .8; }
.km-seo-p { fill: var(--acento); }
@media (prefers-reduced-motion: no-preference) {
	@keyframes km-traza { from { stroke-dashoffset: 520; } to { stroke-dashoffset: 0; } }
	@keyframes km-punto { 0%, 70% { opacity: 0; transform: scale(.2); } 100% { opacity: 1; transform: none; } }
	@keyframes km-late { 0%, 100% { r: 6; } 50% { r: 9; } }
	.km-anim .km-seo-c, .km-anim .km-seo-i { stroke-dasharray: 520; animation: km-traza 2.2s .5s cubic-bezier(.3,.6,.2,1) both; }
	.km-anim .km-seo-i { animation-delay: .2s; }
	.km-anim .km-seo-p { transform-box: fill-box; transform-origin: center; animation: km-punto 2.8s both, km-late 1.6s 3s ease-in-out infinite; }
}
.km .et_pb_text .km-linea.km-linea-4 { grid-template-columns: repeat(4, 1fr); }
.km-linea.km-linea-4::before { left: 12%; right: 12%; }
@media (max-width: 980px) { .km .et_pb_text .km-linea.km-linea-4 { grid-template-columns: 1fr; } }
.km-planes .km-notas strong { color: var(--txt); }

/* ------------------------------------------------------------ sobre mí (06/11) */
.km-retrato { position: relative; max-width: 280px; margin: 0 auto; }   /* 07/11: más pequeña (Josu) */
.km-retrato::before { content: ''; position: absolute; inset: -18px -18px 30px 30px; border-radius: calc(var(--radio) + 14px); background-image: radial-gradient(rgba(255,210,63,.35) 2.2px, transparent 2.6px); background-size: 16px 16px; }
.km-retrato img { position: relative; display: block; width: 100%; height: auto; border-radius: calc(var(--radio) + 10px); box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); }
.km-retrato-led { position: absolute; left: -34px; bottom: 30px; background: var(--osc2); border: 1px solid var(--osc-linea); border-radius: 18px; padding: 16px 18px 12px; color: var(--acento); box-shadow: 0 20px 40px -16px rgba(0,0,0,.6); }
.km-retrato-led .km-led { width: 92px; height: auto; }
.km-hero .km-retrato-led span { display: block; margin-top: 8px; font: 700 13px/1.2 Manrope, sans-serif; color: #fff; }
.km-hero-sobre .et_pb_column:last-child::before { display: none; }
.km-filas-sin-precio a.km-fila { grid-template-columns: 70px 1fr 56px; }
.km-filas-sin-precio .km-fila-precio { display: none; }
.km.km-como { background: var(--fondo2); }
.km .et_pb_row.km-items .km-como-n { display: block; font: 800 15px/1 Manrope, sans-serif; color: var(--acento-osc); margin-bottom: 16px; }
.km.km-como .et_pb_text h3 { font-size: 22px; margin-bottom: 10px; }
.km.km-empresa { background: var(--fondo); padding: 30px 0 20px; }
.km-empresa-caja { max-width: 900px; margin: 0 auto; padding: 34px 40px; border-radius: calc(var(--radio) + 6px); border: 1px dashed var(--acento-osc); background: var(--fondo2); text-align: center; }
.km.km-empresa .et_pb_text h2 { font-size: 28px; margin-bottom: 10px; }
.km-empresa-caja p { color: var(--suave); }
@media (prefers-reduced-motion: no-preference) {
	.km-retrato img { animation: km-mq-flota 9s ease-in-out infinite; }
}
@media (max-width: 980px) { .km .et_pb_row.km-items.km-items { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
	.km-retrato { max-width: 220px; }
	.km-retrato-led { left: -10px; bottom: 16px; padding: 12px 14px 10px; }
	.km-retrato-led .km-led { width: 70px; }
	.km-filas-sin-precio a.km-fila { grid-template-columns: 44px 1fr 44px; }
	.km-empresa-caja { padding: 26px 20px; }
}
@media (max-width: 640px) { .km .et_pb_row.km-items.km-items { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ contacto (06/11) */
.km-hero-contacto .et_pb_column:last-child::before { display: none; }
.km-hero .km-intro a { color: var(--acento); font-weight: 700; }
a.km-correo-grande { display: inline-block; margin-top: 14px; font-family: var(--f-tit); font-weight: 800; font-size: clamp(26px, 3vw, 40px); letter-spacing: -.02em; color: #fff !important; text-decoration: none; border-bottom: 3px dotted var(--acento); padding-bottom: 4px; }
a.km-correo-grande:hover { color: var(--acento) !important; }
.km-urgente { position: relative; background: var(--tarjeta); border-radius: calc(var(--radio) + 6px); padding: 36px 34px 30px; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); }
.km-urgente-icono { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: #fff4e5 url(img/aviso.svg) center / 28px no-repeat; margin-bottom: 18px; }
.km.km-hero .km-urgente .et_pb_text h2, .km-hero .km-urgente h2 { color: var(--txt) !important; font-size: 28px; margin-bottom: 10px; }
.km-hero .km-urgente p { color: var(--suave) !important; }
.km-urgente .km-boton-enlace { margin-top: 10px; }
@media (prefers-reduced-motion: no-preference) {
	@keyframes km-aviso-late { 0%, 100% { box-shadow: 0 0 0 0 rgba(249,115,22,.45); } 50% { box-shadow: 0 0 0 12px rgba(249,115,22,0); } }
	.km-urgente-icono { animation: km-aviso-late 2.4s ease-in-out infinite; }
}
.km.km-datos { background: var(--fondo); }
.km-datos .et_pb_row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.km-datos .et_pb_column { margin: 0 !important; width: auto !important; }
.km.km-datos .et_pb_text h3 { font-size: 20px; margin-bottom: 8px; }
@media (max-width: 980px) { .km-datos .et_pb_row { grid-template-columns: 1fr; } }
.km-cifras .et_pb_row.km-cifras-4 { grid-template-columns: repeat(4, 1fr); gap: 36px; }
.km-cifras-4 .km-led { max-width: 200px; height: 70px; }
@media (max-width: 980px) { .km-cifras .et_pb_row.km-cifras-4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .km-cifras .et_pb_row.km-cifras-4 { grid-template-columns: 1fr; } }
.km-cifras .km-led { margin: 0 !important; }
.km-cifras .km-led-svg, .km-cifras svg.km-led { width: auto; max-width: 100%; }

/* ------------------------------------------------------------ legales (06/11) */
.km-hero-legal.et_pb_section { padding: 60px 0 70px; }
.km.km-hero-legal .et_pb_text h1 { font-size: clamp(36px, 4.6vw, 58px); margin-bottom: 14px; }
.km-hero .km-legal-otros, .km-hero .km-legal-otros a { color: var(--osc-suave) !important; font-size: 15px !important; }
.km-hero .km-legal-otros a:hover { color: var(--acento) !important; }
.km.km-legal-sec { background: var(--fondo); padding: 70px 0 100px; }
.km-legal-txt h2 { font-size: 24px !important; margin: 38px 0 10px !important; }
.km-legal-txt h2:first-child { margin-top: 0 !important; }
.km-legal-txt h2::after { display: none !important; }
.km-legal-txt p, .km-legal-txt li { color: var(--suave); font-size: 17px !important; }
.km .et_pb_text .km-legal-txt ul { list-style: disc !important; padding-left: 22px !important; margin: 6px 0 14px; }
.km .et_pb_text .km-legal-txt li { list-style: disc !important; padding: 4px 0; }
.km-legal-txt a { color: var(--acento-osc); font-weight: 600; }
.km-titular { margin: 16px 0 20px; padding: 0; border: 1px solid var(--linea); border-radius: 16px; overflow: hidden; background: #fff; }
.km-titular img { display: block; width: 100%; height: auto; }
.km-titular figcaption { padding: 10px 16px; font-size: 13px; color: var(--suave); background: var(--fondo2); border-top: 1px solid var(--linea); }
.km-legal-fecha { margin-top: 40px; font-size: 14px !important; }

/* aviso de cookies (CookieYes) con el estilo de la web */
.cky-consent-container, .cky-modal, .cky-btn-revisit-wrapper, .cky-consent-container *, .cky-modal * { font-family: Manrope, system-ui, sans-serif !important; }
.cky-consent-container .cky-consent-bar { border-radius: 18px !important; box-shadow: 0 30px 60px -24px rgba(13,22,48,.55) !important; }
.cky-btn { border-radius: 999px !important; font-weight: 800 !important; padding: 11px 18px !important; }
.cky-title { font-weight: 800 !important; font-size: 18px !important; }
.cky-modal { border-radius: 18px !important; }
.km-tabla { width: 100%; border-collapse: collapse; margin: 10px 0 18px; font-size: 15px; }
.km-tabla th, .km-tabla td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--linea); vertical-align: top; color: var(--suave); }
.km-tabla th { color: var(--txt); font-weight: 800; background: var(--fondo2); }
.km-tabla code { font-size: 13px; background: var(--fondo2); padding: 2px 6px; border-radius: 6px; color: var(--txt); }
@media (max-width: 640px) { .km-tabla th:nth-child(3), .km-tabla td:nth-child(3) { display: none; } }

/* ------------------------------------------------------------ blog (06/11) */
/* tarjetas del módulo Blog de Divi */
.km.km-blog-sec { background: var(--fondo); }
.km-del-blog.km.et_pb_section { background: var(--fondo2); }
.km-blog .et_pb_ajax_pagination_container, .km-blog .et_pb_blog_grid { display: block; }
.km-blog .et_pb_salvattore_content, .km-blog .et_pb_blog_grid .et_pb_salvattore_content { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.km-blog .et_pb_salvattore_content .column { width: auto !important; margin: 0 !important; display: contents; }
.km-blog article.et_pb_post { background: var(--tarjeta); border: 1px solid var(--linea) !important; border-radius: var(--radio); padding: 0 0 24px !important; margin: 0 !important; overflow: hidden; display: flex; flex-direction: column;
	transition: transform .2s, box-shadow .2s, border-color .2s; }
.km-blog article.et_pb_post:hover { transform: translateY(-4px); box-shadow: 0 26px 46px -30px rgba(13,22,48,.5); border-color: var(--acento-osc) !important; }
.km-blog .et_pb_image_container { margin: 0 0 20px !important; }
.km-blog .et_pb_image_container img, .km-blog .entry-featured-image-url img { width: 100%; aspect-ratio: 1200 / 630; object-fit: cover; display: block; }
.km-blog .entry-featured-image-url { margin: 0 !important; display: block; }
.km-blog .entry-title, .km .et_pb_text .km-blog .entry-title { font-family: var(--f-tit) !important; font-weight: 800 !important; font-size: 20px !important; line-height: 1.25 !important; padding: 0 22px !important; margin: 0 0 8px !important; }
.km-blog .entry-title a { color: var(--txt) !important; text-decoration: none; }
.km-blog .post-meta { padding: 0 22px !important; font-size: 13px !important; color: var(--suave) !important; margin-bottom: 10px; }
.km-blog .post-content { padding: 0 22px; flex: 1 1 auto; display: flex; flex-direction: column; }
.km-blog .post-content-inner p, .km-blog .post-content p { font-size: 15px !important; color: var(--suave) !important; line-height: 1.55; }
.km-blog .more-link { margin-top: auto; padding-top: 14px; font-weight: 800; color: var(--acento-osc) !important; text-decoration: none; font-size: 15px; }
.km-blog .more-link::after { content: ' →'; }
.km-blog .pagination { margin-top: 30px; }
.km-blog .pagination a { color: var(--acento-osc); font-weight: 700; }
.km-blog-todos { margin-top: 26px !important; }
.km-blog-todos a.km-mas { color: var(--acento-osc); font-weight: 800; text-decoration: none; }
.km-blog-todos a.km-mas::after { content: ' →'; }

/* plantilla de artículo */
.km-hero-articulo.et_pb_section { padding: 56px 0 70px; }
.km-hero-articulo .km-antetitulo a { color: var(--acento) !important; text-decoration: none; }
.km-art-titulo .et_pb_title_container h1, .km-art-titulo h1.entry-title { font-family: var(--f-tit) !important; font-weight: 800 !important; letter-spacing: -.03em; color: #fff !important; font-size: clamp(32px, 4.4vw, 54px) !important; line-height: 1.08 !important; max-width: 900px; }
.km-art-titulo .et_pb_title_meta_container, .km-art-titulo .et_pb_title_meta_container a { color: var(--osc-suave) !important; font-size: 15px !important; margin-top: 14px; display: block; }
.km.km-articulo { background: var(--fondo); padding: 60px 0 40px; }
.km-art-texto, .km-art-texto p, .km-art-texto li { font-family: var(--f-txt); font-size: 18px; line-height: 1.75; color: #2b3550; }
.km-art-texto h2 { font-family: var(--f-tit); font-weight: 800; letter-spacing: -.02em; font-size: 30px; line-height: 1.2; color: var(--txt); margin: 44px 0 14px; padding: 0; }
.km-art-texto h3 { font-family: var(--f-tit); font-weight: 800; font-size: 22px; margin: 30px 0 10px; color: var(--txt); padding: 0; }
.km-art-texto p { padding-bottom: 1em; }
.km-art-texto ul, .km-art-texto ol { padding-left: 24px !important; margin: 0 0 1.2em; }
.km-art-texto li { padding: 3px 0; }
.km-art-texto a { color: var(--acento-osc); font-weight: 700; }
.km-art-texto code { font-size: 15px; background: var(--fondo2); padding: 2px 7px; border-radius: 6px; color: var(--txt); word-break: break-word; }
.km-art-texto blockquote { margin: 18px 0 24px; padding: 18px 22px; border-left: 4px solid var(--acento-osc); background: var(--fondo2); border-radius: 0 14px 14px 0; }
.km-art-texto blockquote p { padding: 0; font-style: italic; }
.km-art-nota { font-size: 15px !important; color: var(--suave) !important; background: var(--fondo2); padding: 12px 16px !important; border-radius: 12px; }
.km-art-caja { border: 2px dashed var(--acento-osc); border-radius: 16px; padding: 18px 22px; margin: 10px 0 24px; background: #f6f8ff; }
.km-art-caja p { padding: 0 !important; }
.km-art-boton { margin: 8px 0 24px !important; }
.km-art-boton a.km-boton-enlace { color: var(--acento-txt) !important; text-decoration: none; }
.km-autor { display: flex; gap: 18px; align-items: center; margin-top: 30px; padding: 22px 24px; border-radius: 18px; background: var(--fondo2); border: 1px solid var(--linea); }
.km-autor img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.km-autor strong { font-family: var(--f-tit); font-size: 19px; color: var(--txt); }
.km-autor p { font-size: 15px !important; color: var(--suave); padding: 4px 0 0 !important; }
.km-autor a { color: var(--acento-osc); font-weight: 800; }

@media (max-width: 980px) { .km-blog .et_pb_salvattore_content { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
	.km-blog .et_pb_salvattore_content { grid-template-columns: 1fr; }
	.km-art-texto, .km-art-texto p, .km-art-texto li { font-size: 17px; }
	.km-art-texto h2 { font-size: 25px; }
}
.km-art-titulo .et_pb_title_meta_container a { display: inline !important; margin: 0 !important; color: #fff !important; font-weight: 700; }
.km-art-titulo .et_pb_title_meta_container .author, .km-art-titulo .et_pb_title_meta_container span { display: inline !important; }
.km-blog .entry-featured-image-url, .km-blog .et_pb_image_container { margin: 0 !important; width: 100% !important; left: 0 !important; }
.km-blog .entry-featured-image-url img, .km-blog .et_pb_image_container img { max-width: 100% !important; width: 100% !important; margin: 0 !important; object-position: left center; }

/* ------------------------------------------------------------ casos (06/11) */
.km-caso-movil { position: relative; width: 270px; margin: 0 auto; border-radius: 36px; background: #0d1630; padding: 12px; box-shadow: 0 40px 70px -24px rgba(0,0,0,.7); border: 1px solid rgba(255,255,255,.18); }
.km-caso-movil img { display: block; width: 100%; height: 500px; object-fit: cover; object-position: top; border-radius: 26px; }
.km-caso-movil .km-mq-muesca { top: 18px; }
.km-hero-caso .et_pb_column:last-child::before { display: none; }
@media (prefers-reduced-motion: no-preference) { .km-caso-movil { animation: km-mq-flota 7s ease-in-out infinite; } }
.km.km-caso-comp { background: var(--fondo); }
.km .et_pb_row.km-caso-ancho { max-width: 1180px; }
.km-antes-despues { position: relative; border-radius: calc(var(--radio) + 6px); overflow: hidden; box-shadow: 0 40px 80px -40px rgba(13,22,48,.55); border: 1px solid var(--linea); aspect-ratio: 1366 / 854; user-select: none; }
.km-antes-despues img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.km-ad-despues { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--x)) 0 0); }
.km-ad-tirador { position: absolute; top: 0; bottom: 0; left: var(--x); width: 4px; margin-left: -2px; background: var(--acento); pointer-events: none; }
.km-ad-tirador::after { content: ''; position: absolute; top: 50%; left: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: var(--acento) url(img/flechas-lados.svg) center / 26px no-repeat; box-shadow: 0 10px 24px -8px rgba(0,0,0,.5); }
.km-ad-et { position: absolute; top: 18px; padding: 7px 14px; border-radius: 99px; font: 800 13px/1 Manrope, sans-serif; letter-spacing: .08em; text-transform: uppercase; pointer-events: none; }
.km-ad-et-a { right: 18px; background: rgba(13,22,48,.75); color: #fff; }
.km-ad-et-d { left: 18px; background: var(--acento); color: var(--acento-txt); }
.km-antes-despues input[type=range] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; }
.km.km-caso-et { background: var(--fondo2); padding-top: 0; }
.km .et_pb_text .km-etiquetas-grandes li { font-size: 15px; padding: 10px 18px; }
.km.km-casos-lista { background: var(--fondo); }
.km-casos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
a.km-caso-tarjeta { display: flex; flex-direction: column; text-decoration: none; background: var(--tarjeta); border: 1px solid var(--linea); border-radius: var(--radio); overflow: hidden; transition: transform .2s, box-shadow .2s, border-color .2s; }
a.km-caso-tarjeta:hover { transform: translateY(-5px); box-shadow: 0 30px 50px -30px rgba(13,22,48,.55); border-color: var(--acento-osc); }
a.km-caso-tarjeta img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; display: block; }
.km-caso-tarjeta .km-caso-et { padding: 18px 22px 0; font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--acento-osc); }
.km-caso-tarjeta strong { padding: 6px 22px 0; font-family: var(--f-tit); font-size: 24px; color: var(--txt); letter-spacing: -.02em; }
.km-caso-tarjeta em { padding: 12px 22px 22px; font-style: normal; font-weight: 800; color: var(--acento-osc); }
.km-caso-tarjeta em::after { content: ' →'; }
@media (max-width: 980px) { .km-casos-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
	.km-casos-grid { grid-template-columns: 1fr; }
	.km-caso-movil { width: 220px; } .km-caso-movil img { height: 400px; }
	.km-antes-despues { aspect-ratio: 4 / 3; }
}

/* 07/11: captura del informe SEO real en /seo/ */
.km-captura-informe img { width: 100%; height: auto; border-radius: calc(var(--radio) + 4px); border: 1px solid var(--linea); box-shadow: 0 18px 40px rgba(10, 42, 143, .14); background: #fff; }
.km-pie-foto { font-size: .85em; color: var(--suave); margin-top: 1em; }
.km-quien { margin-top: 1.4em; font-size: .92em; opacity: .9; }
.km-quien a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
