/* abhalo.com · capa «más visual» (equipo W, 23-oct-2026)
   Se carga DESPUÉS de marca-v4.css en las páginas de la marca (no en las de sector ni en el área de clientes).
   Ideas: luz cobalto que entra por arriba a la derecha, superficies de cristal con un canto de luz, botones en píldora,
   4B-halo junto al chat, franja de pruebas, rejilla «bento», galería de sectores y tarjetas de precio.
   Mismas variables de la marca v4 (contraste AA medido). Se puede quitar entero: borra este fichero y su <link>. */

:root {
  --w-cobalto: #3f6dff;
  --w-luz: rgba(63, 109, 255, .22);
  --w-cristal: rgba(255, 255, 255, .035);
  --w-cristal2: rgba(255, 255, 255, .06);
  --w-canto: rgba(255, 255, 255, .09);
  --w-sombra: 0 30px 60px -32px rgba(0, 0, 0, .7);
  --w-radio: 18px;
  --w-lima: #c8f169;
}
html.tema-crema {
  --w-cobalto: #2c55d6;
  --w-luz: rgba(44, 85, 214, .14);
  --w-cristal: rgba(255, 255, 255, .55);
  --w-cristal2: rgba(255, 255, 255, .8);
  --w-canto: rgba(255, 255, 255, .9);
  --w-sombra: 0 26px 50px -30px rgba(40, 36, 28, .35);
  --w-lima: #3d6b00;
}

/* ───────── la luz: entra por arriba a la derecha ───────── */
body.m { position: relative; }
body.m::after { content: ""; position: absolute; top: 0; right: 0; width: min(100%, 1100px); height: 900px; z-index: -1; pointer-events: none;
  background: radial-gradient(60% 70% at 85% 10%, var(--w-luz), transparent 75%); }
body.m main { position: relative; z-index: 0; }

/* ───────── botones en píldora, con luz en vez de sombra dura ───────── */
.m-boton { border-radius: 999px; box-shadow: 0 10px 30px -12px var(--m-acento); padding-inline: 1.6rem; }
.m-boton:hover { transform: translateY(-2px); box-shadow: 0 14px 36px -12px var(--m-acento); }
.m-boton:active { transform: translateY(1px); box-shadow: 0 6px 18px -10px var(--m-acento); }
.m-boton.hueco, body.m a.m-boton.hueco { background: var(--w-cristal); border-width: 1px; box-shadow: inset 0 1px 0 var(--w-canto); }
.m-boton.hueco:hover { box-shadow: inset 0 1px 0 var(--w-canto); }
.m-boton.chico { padding-inline: 1.1rem; }
.m-menu-boton, .m-ajustes button, .m-chip span, .m-chip-a { border-radius: 999px; }
.m-chip span, .m-chip-a { padding-inline: 1rem; }

/* ───────── cristal: chat, formularios, tarjetas ───────── */
.m-chat, .m-form, .m-linea, .m-plat-caja, .m-tablero {
  background: linear-gradient(180deg, var(--w-cristal2), var(--w-cristal)), var(--m-capa);
  border: 1px solid var(--m-linea); border-radius: var(--w-radio);
  box-shadow: inset 0 1px 0 var(--w-canto), var(--w-sombra); }
.m-chat { transform: none; overflow: hidden; }
.m-chat figcaption { border-bottom-style: solid; border-bottom-color: var(--m-linea); }
.m-chat-pie { border-top-style: solid; border-top-color: var(--m-linea); }
.m-msg span.m-txt { border-radius: 4px 14px 14px 14px; }
.m-msg.agente span.m-txt { border-radius: 14px 4px 14px 14px; }
.m-plat-caja { border-top: 1px solid var(--m-linea); }
.m-plat-caja h3 { display: flex; align-items: center; gap: .6rem; }
.m-campo { border-radius: 10px; }
.m-aviso-campo, .m-ejemplo { border-radius: 0 10px 10px 0; }
.m-video video { border-radius: var(--w-radio); box-shadow: var(--w-sombra); }
.m-ficha-marco { border-radius: 12px; }
.m-plan.reco { border-radius: 12px; }
@media (max-width: 900px) { .m-chat { transform: none; box-shadow: inset 0 1px 0 var(--w-canto), var(--w-sombra); margin-right: 0; } }

/* iconos a dos tonos dentro de una pastilla de luz */
.w-ico { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; flex: none; border-radius: 12px;
  color: var(--m-acento); background: color-mix(in srgb, var(--m-acento) 12%, transparent); border: 1px solid color-mix(in srgb, var(--m-acento) 28%, transparent); }
.w-ico .ico { width: 1.3rem; height: 1.3rem; }
.w-ico-grande { width: 3rem; height: 3rem; margin-bottom: 1rem; }
.w-ico-grande .ico { width: 1.6rem; height: 1.6rem; }

/* ───────── primera pantalla: el chat con 4B-halo al lado ───────── */
@media (min-width: 901px) { .w-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.w-escena { position: relative; padding: 0 0 0 clamp(120px, 12vw, 172px); }
.w-escena::before { content: ""; position: absolute; left: -6%; bottom: -8%; width: 70%; aspect-ratio: 1; border-radius: 50%; z-index: -1;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--w-cobalto) 45%, transparent), transparent 75%); }
.w-escena-halo { position: absolute; left: -12px; bottom: -24px; width: clamp(140px, 13.4vw, 196px); height: auto; z-index: 2;
  filter: drop-shadow(0 18px 24px rgba(0, 0, 0, .45)); }
@media (max-width: 900px) {
  .w-escena { padding: 0 0 0 0; margin-bottom: 8px; }
  .w-escena .w-chat { margin-left: 96px; }
  .w-escena-halo { width: 112px; bottom: -14px; left: -14px; }
}
@media (max-width: 420px) { .w-escena .w-chat { margin-left: 74px; } .w-escena-halo { width: 92px; left: -16px; } .m-msg { grid-template-columns: 1fr; gap: .2rem; } }

/* ───────── franja de pruebas ───────── */
.w-franja-cont { margin-block: clamp(8px, 2vw, 24px) clamp(24px, 4vw, 48px); }
.w-franja { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  background: linear-gradient(180deg, var(--w-cristal2), var(--w-cristal)), var(--m-capa); border: 1px solid var(--m-linea); border-radius: var(--w-radio);
  box-shadow: inset 0 1px 0 var(--w-canto), var(--w-sombra); }
.w-franja li { display: flex; gap: .9rem; align-items: center; padding: 1.2rem 1.3rem; }
.w-franja li + li { border-left: 1px solid var(--m-linea); }
.w-franja b { display: block; font-weight: 800; font-size: 1.0625rem; line-height: 1.3; }
.w-franja span span { display: block; color: var(--m-suave); font-size: .95rem; line-height: 1.4; }
@media (max-width: 1000px) { .w-franja { grid-template-columns: 1fr 1fr; } .w-franja li:nth-child(3) { border-left: 0; } .w-franja li:nth-child(n+3) { border-top: 1px solid var(--m-linea); } }
@media (max-width: 560px) { .w-franja { grid-template-columns: 1fr; } .w-franja li + li { border-left: 0; border-top: 1px solid var(--m-linea); } }

.m-sec.w-sin-raya { border-top: 0; }

/* ───────── las tres líneas: rejilla «bento» con imagen arriba ───────── */
.w-bento { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1.15fr 1fr; grid-template-rows: auto auto; gap: clamp(14px, 2vw, 24px); }
.w-tile { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--w-radio); border: 1px solid var(--m-linea);
  background: linear-gradient(180deg, var(--w-cristal2), var(--w-cristal)), var(--m-capa); box-shadow: inset 0 1px 0 var(--w-canto), var(--w-sombra);
  transition: border-color .2s ease, transform .2s ease; }
.w-tile:hover { border-color: color-mix(in srgb, var(--m-acento) 55%, var(--m-linea)); }
.w-tile.grande { grid-row: span 2; }
.w-tile-img { position: relative; display: grid; place-items: end center; height: 190px; overflow: hidden; border-bottom: 1px solid var(--m-linea);
  background: radial-gradient(60% 90% at 50% 100%, color-mix(in srgb, var(--w-cobalto) 40%, transparent), transparent 70%),
              linear-gradient(180deg, var(--m-fondo), var(--m-capa2)); }
.w-tile.grande .w-tile-img { height: clamp(260px, 30vw, 380px); }
.w-tile-img img { width: auto; height: 92%; max-width: none; margin-bottom: -6%; filter: drop-shadow(0 14px 18px rgba(0, 0, 0, .45)); }
.w-tile-txt { display: flex; flex-direction: column; flex: 1; padding: clamp(18px, 2.2vw, 28px); }
.w-tile h3 { display: flex; align-items: center; gap: .7rem; font-size: clamp(1.4rem, 2.2vw, 1.9rem); margin-bottom: .8rem; }
.w-tile .m-linea-n { font: 500 .8125rem/1 var(--m-mono); color: var(--m-acento); margin: 0 0 .8rem; }
.w-tile:not(.grande) .w-tile-txt > p:not(.m-linea-n):not(.m-linea-nota) { font-size: 1.0625rem; }
@media (min-width: 901px) {
  .w-tile:not(.grande) { flex-direction: row; }
  .w-tile:not(.grande) .w-tile-img { width: 38%; height: auto; min-height: 100%; border-bottom: 0; border-right: 1px solid var(--m-linea); }
  .w-tile:not(.grande) .w-tile-img img { height: auto; width: 82%; max-height: 260px; }
}
@media (max-width: 900px) { .w-bento { grid-template-columns: 1fr; } .w-tile.grande { grid-row: auto; } .w-tile-img, .w-tile.grande .w-tile-img { height: 200px; } }

/* ───────── galería de sectores: 4B-halo vestido de cada oficio ───────── */
.w-sectores { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 20px); }
.w-sector { display: flex; flex-direction: column; height: 100%; text-decoration: none; border-radius: var(--w-radio); overflow: hidden; border: 1px solid var(--m-linea);
  background: linear-gradient(180deg, var(--w-cristal2), var(--w-cristal)), var(--m-capa); box-shadow: inset 0 1px 0 var(--w-canto);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
body.m a.w-sector { color: var(--m-texto); }
.w-sector:hover, .w-sector:focus-visible { transform: translateY(-4px); border-color: var(--c, var(--m-acento)); box-shadow: inset 0 1px 0 var(--w-canto), 0 22px 40px -24px var(--c, #000); }
.w-sector-img { display: grid; place-items: end center; aspect-ratio: 4 / 4.2; overflow: hidden;
  background: radial-gradient(70% 70% at 50% 85%, color-mix(in srgb, var(--c, var(--w-cobalto)) 55%, transparent), transparent 72%),
              linear-gradient(180deg, var(--m-fondo), var(--m-capa2)); border-bottom: 1px solid var(--m-linea); }
.w-sector-img img { width: 86%; height: auto; margin-bottom: -4%; filter: drop-shadow(0 10px 14px rgba(0, 0, 0, .45)); transition: transform .3s ease; }
.w-sector:hover .w-sector-img img { transform: translateY(-4px) scale(1.03); }
.w-sector-pie { display: block; padding: .9rem 1rem 1.1rem; }
.w-sector-pie b { display: block; font-weight: 800; font-size: 1.0625rem; line-height: 1.25; }
.w-sector-pie small { display: block; margin-top: .3rem; color: var(--m-suave); font-size: .95rem; line-height: 1.4; }
@media (max-width: 1100px) { .w-sectores { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .w-sectores { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding: 4px var(--m-pad) 18px; margin-inline: calc(-1 * var(--m-pad)); scroll-padding-inline: var(--m-pad); }
  .w-sectores li { flex: 0 0 62%; scroll-snap-align: start; }
}

/* ───────── límites: lista con marcas de luz ───────── */
.m-reglas { border-top: 0; padding: .4rem 1.4rem; border-radius: var(--w-radio); border: 1px solid var(--m-linea);
  background: linear-gradient(180deg, var(--w-cristal2), var(--w-cristal)), var(--m-capa); box-shadow: inset 0 1px 0 var(--w-canto), var(--w-sombra); }
.m-reglas li:last-child { border-bottom: 0; }
.m-reglas li::before { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; font-size: .95rem; line-height: 1;
  background: color-mix(in srgb, var(--m-acento) 14%, transparent); border: 1px solid color-mix(in srgb, var(--m-acento) 35%, transparent); }

/* ───────── cierre con 4B-halo ───────── */
.m-cierre { border-top: 0; margin-top: clamp(24px, 4vw, 48px); padding: clamp(24px, 4vw, 48px); border-radius: calc(var(--w-radio) + 6px); border: 1px solid var(--m-linea);
  background: radial-gradient(60% 120% at 0% 100%, var(--w-luz), transparent 70%), linear-gradient(180deg, var(--w-cristal2), var(--w-cristal)), var(--m-capa);
  box-shadow: inset 0 1px 0 var(--w-canto), var(--w-sombra); }
@media (max-width: 700px) { .m-cierre { margin-inline: 12px; width: auto; } }

/* ───────── precios de la Plataforma web ───────── */
.w-planes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(14px, 2vw, 24px); max-width: 1180px; }
.w-plan { display: flex; flex-direction: column; padding: clamp(22px, 3vw, 34px); border-radius: var(--w-radio); border: 1px solid var(--m-linea);
  background: linear-gradient(180deg, var(--w-cristal2), var(--w-cristal)), var(--m-capa); box-shadow: inset 0 1px 0 var(--w-canto), var(--w-sombra); }
.w-plan.destaca { border-color: color-mix(in srgb, var(--m-acento) 60%, var(--m-linea));
  background: radial-gradient(90% 60% at 100% 0%, var(--w-luz), transparent 70%), linear-gradient(180deg, var(--w-cristal2), var(--w-cristal)), var(--m-capa); }
.w-plan-cab { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.w-plan h3 { font-size: clamp(1.6rem, 2.6vw, 2rem); }
.w-sello { font: 500 .75rem/1 var(--m-mono); text-transform: uppercase; letter-spacing: .04em; padding: .45rem .7rem; border-radius: 999px; color: var(--m-sobre); background: var(--m-acento); }
.w-plan-precio { display: flex; align-items: baseline; gap: .5rem; margin: 1.2rem 0 .2rem; }
.w-plan-precio b { font-family: var(--m-mono); font-weight: 500; font-size: clamp(2.6rem, 5vw, 3.6rem); letter-spacing: -.05em; line-height: 1; }
.w-plan-precio span { color: var(--m-suave); font-size: 1.05rem; }
.w-plan-alta { color: var(--m-suave); font-size: 1rem; margin-bottom: 1.1rem; }
.w-plan-txt { flex: 1; padding-top: 1.1rem; border-top: 1px solid var(--m-linea); }
.w-plan .m-boton { align-self: flex-start; margin-top: .4rem; }
.w-sobreuso { display: flex; gap: .8rem; align-items: center; margin: 1.6rem 0 0; color: var(--m-suave); max-width: 72ch; }
.w-comps-t { font-size: clamp(1.4rem, 2.4vw, 1.8rem); margin: clamp(32px, 5vw, 56px) 0 1rem; }
.w-comps-t span { font: 500 1rem var(--m-tit); color: var(--m-suave); letter-spacing: 0; }
.w-comps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.w-comp { display: grid; grid-template-columns: 1fr; gap: .3rem; padding: 1rem 1.1rem; border-radius: 14px; border: 1px solid var(--m-linea);
  background: var(--w-cristal); box-shadow: inset 0 1px 0 var(--w-canto); }
.w-comp-n { font-weight: 800; line-height: 1.3; }
.w-comp-p { font-family: var(--m-mono); font-weight: 500; font-size: 1.35rem; color: var(--m-acento); white-space: nowrap; }
.w-comp-p small { font-family: var(--m-tit); color: var(--m-suave); font-size: .85rem; }
.w-comp-t { color: var(--m-suave); font-size: .95rem; line-height: 1.45; }
.w-precio-mas { margin-top: 1.4rem; }
@media (max-width: 700px) { .w-planes { grid-template-columns: 1fr; } }

/* ───────── cabecera de página con 4B-halo ───────── */
.w-cab-img .m-ancho { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; }
.w-cab-halo { position: relative; width: clamp(140px, 16vw, 220px); }
.w-cab-halo::before { content: ""; position: absolute; inset: 10% -20% -10%; border-radius: 50%; z-index: -1; background: radial-gradient(closest-side, color-mix(in srgb, var(--w-cobalto) 45%, transparent), transparent 75%); }
.w-cab-halo img { display: block; width: 100%; height: auto; filter: drop-shadow(0 16px 20px rgba(0, 0, 0, .45)); }
@media (max-width: 700px) { .w-cab-img .m-ancho { grid-template-columns: 1fr; } .w-cab-halo { width: 120px; order: -1; } }
.m-hoja h3 { margin-top: 0; }
.m-regl2 { border-top: 0; }

/* contacto */
.w-contacto-halo { position: relative; width: 150px; margin-top: 1rem; }
.w-contacto-halo::before { content: ""; position: absolute; inset: 0 -30% -10%; z-index: -1; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--w-cobalto) 40%, transparent), transparent 75%); }
.w-contacto-halo img { display: block; width: 100%; height: auto; }
@media (max-width: 900px) { .w-contacto-halo { display: none; } }

/* pie: los sectores en dos columnas */
.m-pie-sectores { grid-template-columns: 1fr 1fr; column-gap: 1rem; }
@media (max-width: 1000px) { .m-pie-sectores { grid-template-columns: 1fr; } }

/* ───────── movimiento suave (solo si el sistema no pide «menos movimiento») ───────── */
@media (prefers-reduced-motion: no-preference) {
  html.js-aparecer .w-aparece.w-oculto { opacity: 0; transform: translateY(18px); }
  html.js-aparecer .w-aparece { transition: opacity .6s ease, transform .6s ease; }
  .w-escena-halo, .w-cab-halo img { animation: w-flota 6s ease-in-out infinite; }
  @keyframes w-flota { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
}
@media (prefers-reduced-motion: reduce) { .w-sector:hover, .w-sector:hover .w-sector-img img, .m-boton:hover { transform: none; } }

/* iconos a dos tonos: el relleno suave vive dentro del <symbol> (no dentro de .ico), así que se le da aquí */
:is(path, circle, rect, ellipse, polygon).t { opacity: .22; } :is(path, circle, rect, ellipse, polygon).t6 { opacity: .13; }
:is(path, circle, rect, ellipse, polygon).t16 { opacity: .35; }

/* ───────── Llamar y WhatsApp (24-oct-2026, rama contacto-93). Bloque propio: se puede borrar entero. ───────── */
.c-botones { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.4rem 0 .6rem; }
.c-botones .m-boton { min-height: 52px; }
.c-botones .c-num { font-family: var(--m-mono); font-weight: 500; font-size: .9em; opacity: .85; white-space: nowrap; }
.c-frase { color: var(--m-suave); font-size: 1rem; max-width: 34em; }
.c-frase-form { margin: 0 0 1.2rem; }
.m-pie .c-botones { margin-top: 3.2rem; margin-bottom: 1.6rem; }
.m-cab-der { display: flex; align-items: center; gap: .4rem; }
.c-ico { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; width: 44px; min-height: 44px; padding: 0; border-radius: 999px;
  border: 1px solid var(--m-linea2); background: var(--w-cristal); box-shadow: inset 0 1px 0 var(--w-canto); color: var(--m-texto); text-decoration: none; }
body.m a.c-ico { color: var(--m-texto); }
.c-ico:hover { border-color: var(--m-acento); color: var(--m-acento); }
.m-contacto > div { min-width: 0; }
@media (max-width: 900px) {
  .c-botones .c-num { font-family: inherit; font-weight: 700; font-size: 1em; letter-spacing: 0; opacity: 1; }
  .c-botones:not(.en-pie) { display: grid; grid-template-columns: minmax(0, 1fr); }
  .c-botones .m-boton { min-height: 60px; font-size: 1.1875rem; width: 100%; box-sizing: border-box; max-width: 100%; padding-inline: 1rem; }
}
@media (max-width: 374px) { .c-ico + .c-ico { display: none; } .c-botones .m-boton { font-size: 1.0625rem; flex-wrap: wrap; gap: .1rem .6rem; } }
