/* =========================================================
   AVANZUR · Sistema de diseño v2 (rediseño D-013)
   Tokens + componentes reutilizables para home y landing.
   Carga global vía functions.php. Namespacing: .avz-*
   Direccion: equilibrado oscuro/claro · cian (#0CCFCF) protagonista
   ========================================================= */

:root {
  /* --- Acento tecnológico protagonista (cian) --- */
  --avz-cian: #0CCFCF;                 /* = --accent-2 de GeneratePress */
  --avz-cian-ink: #0a8f99;             /* variante legible sobre fondo claro */
  --avz-cian-soft: rgba(12, 207, 207, .12);
  --avz-cian-glow: rgba(12, 207, 207, .45);

  /* --- Acento secundario muy puntual (ámbar/anaranjado, estilo xora) --- */
  --avz-amber: #ffb020;

  /* --- Fondo oscuro ÚNICO y continuo (estilo xora: casi negro, limpio) --- */
  --avz-ink:   #070a12;                /* fondo dark base (lienzo continuo) */
  --avz-ink-2: #0b1018;                /* leve variación para paneles/tarjetas */
  --avz-ink-3: #0e1622;                /* superficie elevada sobre el lienzo */
  --avz-glow-mouse: rgba(12, 207, 207, .10); /* halo que sigue al cursor (sutil) */

  /* --- Texto sobre claro --- */
  --avz-heading: #08293d;              /* títulos */
  --avz-text:    #25323d;              /* cuerpo */
  --avz-muted:   #5d6f7d;              /* secundario */

  /* --- Superficies claras --- */
  --avz-surface:   #ffffff;
  --avz-surface-2: #f3f7fb;

  /* --- Radios, sombras, foco --- */
  --avz-radius:    16px;
  --avz-radius-sm: 10px;
  --avz-shadow:    0 14px 34px rgba(8, 41, 61, .08);
  --avz-shadow-lg: 0 28px 64px rgba(6, 37, 54, .22);
  --avz-ring:      0 0 0 3px rgba(12, 207, 207, .30);

  /* --- Ritmo --- */
  --avz-band-y: clamp(48px, 6.4vw, 88px);
  --avz-wrap:   1200px;
}

/* Fix latente: --base-3 estaba sin definir y se usa como color de título. */
:root { --base-3: var(--avz-heading); }

/* ============ Layout helpers ============ */
.avz-wrap  { max-width: var(--avz-wrap); margin-inline: auto; padding-inline: 30px; }
.avz-band  { padding-block: var(--avz-band-y); }
.avz-band--tint { background: var(--avz-surface-2); }

/* =========================================================
   LIENZO OSCURO CONTINUO (.avz-canvas)
   ========================================================= */
.avz-canvas{
  position:relative; overflow:hidden; color:#fff; isolation:isolate;
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
    radial-gradient(80% 120% at -8% 42%, rgba(12,207,207,.16), rgba(12,207,207,.05) 30%, transparent 60%),
    var(--avz-ink);
  background-size:56px 56px, 56px 56px, auto, auto;
}
.avz-canvas::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:radial-gradient(460px circle at var(--mx,50%) var(--my,30%), var(--avz-cian-glow), transparent 70%);
  opacity:.3; transition:opacity .4s;
}
.avz-canvas::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0; opacity:.85;
  background:
    linear-gradient(rgba(12,207,207,.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12,207,207,.16) 1px, transparent 1px),
    radial-gradient(circle, rgba(12,207,207,.5) 1.4px, transparent 1.6px);
  background-size:30px 30px, 30px 30px, 30px 30px;
  background-position:0 0, 0 0, 15px 15px;
  -webkit-mask-image:radial-gradient(340px circle at var(--mx,-100%) var(--my,-100%), #000 0%, rgba(0,0,0,.4) 45%, transparent 70%);
          mask-image:radial-gradient(340px circle at var(--mx,-100%) var(--my,-100%), #000 0%, rgba(0,0,0,.4) 45%, transparent 70%);
}
.avz-canvas--no-glow::before,
.avz-canvas--no-glow::after{ display:none; }
.avz-canvas > .avz-wrap{ position:relative; z-index:1; }
.avz-canvas--particles{
  background:
    radial-gradient(80% 120% at -8% 42%, rgba(12,207,207,.16), rgba(12,207,207,.05) 30%, transparent 60%),
    var(--avz-ink);
}
.avz-canvas--particles::after{ display:none; }
.avz-band--on-canvas{ position:relative; z-index:1; background:transparent; color:#fff; }
.avz-band--on-canvas > .avz-wrap{ position:relative; z-index:1; }
.avz-band--on-canvas .avz-head__title,
.avz-band--on-canvas .avz-feature__title{ color:#fff; }
.avz-band--on-canvas .avz-head__eyebrow{ color:var(--avz-cian); }
.avz-band--on-canvas .avz-head__lead{ color:rgba(255,255,255,.8); }
.avz-band--on-canvas .avz-card{ background:rgba(255,255,255,.04); border-color:rgba(12,207,207,.28); box-shadow:none; }
.avz-band--on-canvas .avz-card:hover{ border-color:var(--avz-cian); background:rgba(12,207,207,.07); }
.avz-band--on-canvas .avz-card__title{ color:#fff; }
.avz-band--on-canvas .avz-card__text{ color:rgba(255,255,255,.78); }
.avz-band--on-canvas .avz-card__icon{ background:rgba(12,207,207,.14); color:var(--avz-cian); }
.avz-band--on-canvas .avz-step__title{ color:#fff; }
.avz-band--on-canvas .avz-step__text{ color:rgba(255,255,255,.78); }
.avz-band--on-canvas .avz-flist li{ color:rgba(255,255,255,.85); }
.avz-band--on-canvas .avz-flist strong{ color:#fff; }

.avz-edge{ position:relative; display:block; line-height:0; margin-top:-1px; margin-bottom:-1px; z-index:2; }
.avz-glowline{ position:relative; height:1px; background:var(--avz-ink); z-index:3; overflow:visible; }
.avz-glowline::before{
  content:""; position:absolute; left:6%; right:6%; top:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--avz-cian-glow) 25%, var(--avz-cian) 50%, var(--avz-cian-glow) 75%, transparent);
  box-shadow:0 0 16px 1px var(--avz-cian-glow);
}
.avz-edge svg{ display:block; width:100%; height:clamp(60px,7vw,120px); }
.avz-edge__fill{ fill:var(--avz-surface-2); }
.avz-edge__line{ fill:none; stroke:var(--avz-cian); stroke-width:2; opacity:.85;
  filter:drop-shadow(0 0 6px var(--avz-cian-glow)); }
.avz-edge--down .avz-edge__fill{ fill:var(--avz-ink); }

.avz-band--dark {
  position: relative; color: #fff; overflow: hidden;
  background: var(--avz-ink);
}
.avz-band--dark::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), var(--avz-cian-glow), transparent 70%);
  opacity: .5; transition: opacity .4s;
}

/* ============ Hero / Stage ============ */
.avz-stage {
  position: relative; overflow: hidden; color: #fff;
  padding-block: clamp(80px, 11vw, 150px) clamp(24px, 3.5vw, 48px);
  background:
    radial-gradient(60% 75% at 85% -5%, var(--avz-cian-glow) 0%, transparent 50%),
    var(--avz-ink);
}
.avz-stage::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5; z-index: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(80% 60% at 70% 0%, #000 0%, transparent 70%);
          mask-image: radial-gradient(80% 60% at 70% 0%, #000 0%, transparent 70%);
}
.avz-canvas .avz-stage{ background:transparent; }
.avz-canvas .avz-stage::before{ display:none; }
.avz-stage__canvas { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.avz-stage > .avz-wrap { position: relative; z-index: 1; }
.avz-stage__eyebrow {
  display: inline-flex; align-items: center; gap: .55em;
  font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  font-size: .85rem; color: var(--avz-cian); margin-bottom: 1.1rem;
}
.avz-stage__eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--avz-cian); }
.avz-stage__title {
  font-size: clamp(2.5rem, 5.2vw, 4.2rem); line-height: 1.03; font-weight: 700;
  letter-spacing: -.5px; margin: 0 0 1rem; max-width: 20ch; color: #fff;
  text-shadow: 0 2px 30px rgba(0,0,0,.45);
}
.avz-stage__title b, .avz-stage__title .avz-hl { color: var(--avz-cian); font-weight: 700; text-shadow: 0 0 26px var(--avz-cian-glow); }
.avz-stage__lead {
  font-size: clamp(1.1rem, 1.6vw, 1.4rem); color: rgba(255,255,255,.86);
  max-width: 60ch; margin: 0 0 2rem; line-height: 1.5;
}
.avz-stage__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.avz-stage--img {
  background:
    linear-gradient(150deg, rgba(6,37,54,.82) 0%, rgba(6,37,54,.62) 55%, rgba(10,58,87,.72) 100%),
    var(--avz-stage-img, linear-gradient(155deg, var(--avz-ink-2), var(--avz-ink)));
  background-size: cover; background-position: center; background-repeat: no-repeat;
}
.avz-stage--img::after {
  content: ""; position: absolute; inset: auto 0 0 0; height: 55%; z-index: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(6,37,54,.65), transparent);
}
.avz-stage--compact { padding-block: clamp(48px, 7vw, 96px) clamp(20px, 3vw, 40px); }
.avz-stage--compact .avz-stage__title { font-size: clamp(2rem, 4vw, 3rem); }
.avz-stage--still {}
.avz-stage--light{
  color:var(--avz-text);
  background:
    radial-gradient(70% 110% at -6% 30%, rgba(12,207,207,.10), transparent 55%),
    var(--avz-surface-2);
}
.avz-stage--light::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:1; z-index:0;
  background-image:
    linear-gradient(rgba(8,41,61,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8,41,61,.05) 1px, transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(90% 80% at 50% 30%, #000 0%, transparent 75%);
          mask-image:radial-gradient(90% 80% at 50% 30%, #000 0%, transparent 75%);
}
.avz-stage--light::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, transparent, var(--avz-cian-glow) 25%, var(--avz-cian) 50%, var(--avz-cian-glow) 75%, transparent);
  box-shadow:0 0 16px 1px var(--avz-cian-glow);
}
.avz-stage--light .avz-stage__eyebrow{ color:var(--avz-cian-ink); }
.avz-stage--light .avz-stage__eyebrow::before{ background:var(--avz-cian-ink); }
.avz-stage--light .avz-stage__title{ color:var(--avz-heading); text-shadow:none; }
.avz-stage--light .avz-stage__title b,
.avz-stage--light .avz-stage__title .avz-hl{ color:var(--avz-cian-ink); text-shadow:none; }
.avz-stage--light .avz-stage__lead{ color:var(--avz-muted); }
.avz-stage--light .avz-btn--ghost{ color:var(--avz-heading); border-color:rgba(8,41,61,.25); }
.avz-stage--light .avz-btn--ghost:hover{ color:var(--avz-cian-ink); border-color:var(--avz-cian-ink); }

/* ============ Botones ============ */
.avz-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  font-weight: 700; font-size: 1rem; line-height: 1; text-decoration: none;
  padding: .95em 1.7em; border-radius: var(--avz-radius-sm); cursor: pointer;
  border: 2px solid transparent;
  transition: transform .25s cubic-bezier(.22,.61,.36,1), box-shadow .25s, background-color .2s, color .2s;
}
.avz-btn--primary { background: var(--avz-cian); color: #04222b; box-shadow: 0 8px 24px var(--avz-cian-glow); }
.avz-btn--primary:hover { transform: translateY(-3px); box-shadow: 0 12px 32px var(--avz-cian-glow); color: #04222b; }
.avz-btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.avz-btn--ghost:hover { border-color: var(--avz-cian); color: var(--avz-cian); transform: translateY(-3px); }
.avz-btn--solid { background: var(--contrast); color: #fff; }
.avz-btn--solid:hover { filter: brightness(1.06); transform: translateY(-3px); color: #fff; }

/* ============ Cabecera de sección ============ */
.avz-head { max-width: 64ch; margin-bottom: clamp(2rem, 4vw, 3.2rem); }
.avz-head--center { margin-inline: auto; text-align: center; }
.avz-head__eyebrow {
  display: inline-flex; align-items: center; gap: .55em;
  font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  font-size: 1.1rem; color: var(--avz-cian-ink); margin-bottom: .9rem;
}
.avz-band--dark .avz-head__eyebrow { color: var(--avz-cian); }
.avz-head__title {
  font-size: clamp(1.7rem, 3.2vw, 2.6rem); line-height: 1.12; font-weight: 700;
  letter-spacing: -.4px; color: var(--avz-heading); margin: 0;
}
.avz-band--dark .avz-head__title { color: #fff; }
.avz-head__lead { font-size: 1.15rem; line-height: 1.55; color: var(--avz-muted); margin: 1rem 0 0; }
.avz-band--dark .avz-head__lead { color: rgba(255,255,255,.8); }

/* ============ Grids ============ */
.avz-grid { display: grid; gap: 1.5rem; }
.avz-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.avz-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.avz-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 900px) { .avz-grid--3, .avz-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px) { .avz-grid--2, .avz-grid--3, .avz-grid--4 { grid-template-columns: 1fr; } }

/* ============ Card ============ */
.avz-card {
  position: relative; background: var(--avz-surface);
  border: 1px solid rgba(12,207,207,.35); border-radius: var(--avz-radius);
  padding: 1.8rem; box-shadow: var(--avz-shadow);
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.avz-card:hover { transform: translateY(-6px); box-shadow: var(--avz-shadow-lg); border-color: var(--avz-cian); }
.avz-card__icon {
  display: inline-grid; place-items: center; width: 54px; height: 54px;
  margin-bottom: 1.1rem; border-radius: 12px; background: var(--avz-cian-soft); color: var(--avz-cian-ink);
}
.avz-card__icon svg { width: 26px; height: 26px; fill: currentColor; }
.avz-card__title { font-size: 1.2rem; font-weight: 700; color: var(--avz-heading); margin: 0 0 .5rem; }
.avz-card__text  { color: var(--avz-muted); line-height: 1.55; margin: 0; }
.avz-band--dark .avz-card { background: rgba(255,255,255,.04); border-color: rgba(12,207,207,.28); box-shadow: none; }
.avz-band--dark .avz-card:hover { border-color: var(--avz-cian); background: rgba(12,207,207,.07); }
.avz-band--dark .avz-card__title { color: #fff; }
.avz-band--dark .avz-card__text  { color: rgba(255,255,255,.78); }
.avz-band--dark .avz-card__icon  { background: rgba(12,207,207,.14); color: var(--avz-cian); }
a.avz-card { text-decoration: none; color: inherit; display: block; }

/* ============ Steps ============ */
.avz-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
@media (max-width: 900px) { .avz-steps { grid-template-columns: repeat(2, 1fr); row-gap: 2.6rem; } }
@media (max-width: 600px) { .avz-steps { grid-template-columns: 1fr; } }
.avz-step { position: relative; }
.avz-step__num {
  display: block; font-size: 3rem; font-weight: 700; line-height: 1; margin-bottom: .6rem;
  color: transparent; -webkit-text-stroke: 1.5px var(--avz-cian);
}
.avz-step__title { font-size: 1.15rem; font-weight: 700; margin: 0 0 .4rem; }
.avz-step__text  { margin: 0; line-height: 1.5; }
.avz-step__link{ display:inline-block; margin-top:.5rem; font-weight:600; color:var(--avz-cian-ink); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .2s, color .2s; }
.avz-step__link:hover{ color:var(--avz-cian); border-bottom-color:currentColor; }
.avz-band--on-canvas .avz-step__link,
.avz-band--dark .avz-step__link,
.avz-band--deep .avz-step__link{ color:var(--avz-cian); }

/* ============ Stats ============ */
.avz-stat__num   { font-size: clamp(2.4rem, 4vw, 3.4rem); font-weight: 700; color: var(--avz-cian); line-height: 1; }
.avz-stat__label { color: var(--avz-muted); margin-top: .4rem; }
.avz-band--dark .avz-stat__label { color: rgba(255,255,255,.75); }

/* ============ CTA band ============ */
.avz-cta {
  position: relative; overflow: hidden; color: #fff;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(12,207,207,.28);
  border-radius: var(--avz-radius); padding: clamp(2.4rem, 5vw, 3.6rem);
}
.avz-cta__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 2.5rem; flex-wrap: wrap; }
.avz-cta__title { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 700; margin: 0 0 .5rem; color:#fff; }
.avz-cta__text  { margin: 0; color: rgba(255,255,255,.82); max-width: 52ch; }

/* ============ Utilidades ============ */
.avz-hl { color: var(--avz-cian); }
.avz-reveal { opacity: 0; transform: translateY(20px); animation: avzUp .7s ease forwards; }
@keyframes avzUp { to { opacity: 1; transform: none; } }

/* =========================================================
   AMPLIACIÓN v2.1
   ========================================================= */
.avz-io { opacity: 0; transform: translateY(42px); transition: opacity .8s ease, transform .8s cubic-bezier(.16,.84,.44,1); }
.avz-io.is-in { opacity: 1; transform: none; }
.avz-io.is-in { transition-delay: 0s; }
@media (prefers-reduced-motion: reduce){ .avz-io { opacity:1; transform:none; transition:none; } }

.avz-band--dark::before, .avz-band--deep::before {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0; opacity:.4;
  background:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size:56px 56px;
}
.avz-band--dark > .avz-wrap { position:relative; z-index:1; }

.avz-chip {
  display:inline-flex; align-items:center; gap:.5em;
  font-weight:700; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.45em 1em; border-radius:999px;
  color:var(--avz-cian); background:var(--avz-cian-soft);
  border:1px solid rgba(12,207,207,.35);
}
.avz-chip::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--avz-amber); box-shadow:0 0 10px var(--avz-amber); animation:avzBlink 1.8s ease-in-out infinite; }
@keyframes avzBlink{ 0%,100%{opacity:1} 50%{opacity:.3} }
@media (prefers-reduced-motion: reduce){ .avz-chip::before{ animation:none; } }

.avz-feature { position:relative; }
.avz-feature__grid {
  display:grid; grid-template-columns:1.3fr .9fr; gap:clamp(2rem,5vw,4rem); align-items:center;
}
@media (max-width:860px){ .avz-feature__grid{ grid-template-columns:1fr; } }
.avz-feature__title{ font-size:clamp(1.8rem,3.4vw,2.8rem); line-height:1.1; font-weight:700; margin:.6rem 0 1rem; }
.avz-feature__text{ font-size:1.12rem; line-height:1.6; color:rgba(255,255,255,.82); margin:0 0 1.6rem; }
.avz-feature__aside{
  position:relative; border-radius:var(--avz-radius); padding:2rem;
  background:rgba(255,255,255,.04); border:1px solid rgba(12,207,207,.25);
  box-shadow: inset 0 0 60px rgba(12,207,207,.06);
}
.avz-feature__aside::after{
  content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none;
  background:linear-gradient(130deg, rgba(12,207,207,.5), transparent 40%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; padding:1px;
}
.avz-feature__big{ font-size:clamp(2.6rem,6vw,4rem); font-weight:700; color:var(--avz-cian); line-height:1; }
.avz-feature__cap{ color:rgba(255,255,255,.78); margin:.4rem 0 0; }

.avz-split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
@media (max-width:860px){ .avz-split{ grid-template-columns:1fr; } }
.avz-flist{ list-style:none; margin:1.4rem 0 0; padding:0; display:grid; gap:1rem; }
.avz-flist li{ position:relative; padding-left:2.2rem; line-height:1.5; color:var(--avz-text); }
.avz-flist li::before{
  content:""; position:absolute; left:0; top:.1em; width:1.4em; height:1.4em; border-radius:7px;
  background:var(--avz-cian-soft); border:1px solid rgba(12,207,207,.4);
}
.avz-flist li::after{
  content:""; position:absolute; left:.42em; top:.42em; width:.5em; height:.28em;
  border-left:2px solid var(--avz-cian-ink); border-bottom:2px solid var(--avz-cian-ink);
  transform:rotate(-45deg);
}
.avz-flist strong{ color:var(--avz-heading); }
.avz-panel{
  position:relative; border-radius:var(--avz-radius); overflow:hidden; min-height:300px;
  background:var(--avz-ink-3); color:#fff; padding:2rem;
  border:1px solid rgba(12,207,207,.22);
}
.avz-panel::before{
  content:""; position:absolute; inset:0; opacity:.6;
  background:radial-gradient(70% 55% at 80% 12%, var(--avz-cian-glow), transparent 60%),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:auto, 38px 38px, 38px 38px;
}
.avz-panel__tag{ position:relative; display:inline-block; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.85rem; color:var(--avz-cian); background:rgba(0,0,0,.25); border:1px solid rgba(12,207,207,.3); border-radius:6px; padding:.3em .7em; margin-bottom:.5rem; }

.avz-logos{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.4rem; }
@media (max-width:600px){ .avz-logos{ justify-content:center; } }
.avz-logos span{
  font-weight:500; font-size:1.08rem; letter-spacing:.2px;
  padding:.7em 1.3em; border-radius:12px;
  background:rgba(255,255,255,.04); transition:border-color .25s, background .25s, transform .25s, box-shadow .25s, color .25s;
  --c:12,207,207;
  color:rgb(var(--c)); border:1px solid rgba(var(--c),.45);
}
.avz-logos span:hover{ border-color:rgb(var(--c)); background:rgba(var(--c),.12); transform:translateY(-2px); box-shadow:0 6px 20px rgba(var(--c),.25); }
.avz-logos span:nth-child(5n+1){ --c:12,207,207; }
.avz-logos span:nth-child(5n+2){ --c:139,124,246; }
.avz-logos span:nth-child(5n+3){ --c:45,212,160; }
.avz-logos span:nth-child(5n+4){ --c:255,176,32; }
.avz-logos span:nth-child(5n+5){ --c:80,160,255; }
.avz-band:not(.avz-band--dark):not(.avz-band--on-canvas) .avz-logos span{ color:var(--avz-heading); background:var(--avz-surface); border-color:rgba(8,41,61,.12); box-shadow:var(--avz-shadow); }
.avz-badge{
  display:inline-flex; align-items:center; gap:.6em; font-weight:700; color:var(--avz-cian-ink);
  padding:.55em 1.1em; border-radius:999px; background:var(--avz-cian-soft); border:1px solid rgba(12,207,207,.35);
}
.avz-badge svg{ width:1.1em; height:1.1em; fill:currentColor; }

.avz-band--local{
  position:relative; overflow:hidden;
  background:var(--avz-surface-2);
}
.avz-band--local::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:url(../img/local/andalucia_software_gestion.jpg);
  background-image:image-set(
    url(../img/local/andalucia_software_gestion.avif) type("image/avif"),
    url(../img/local/andalucia_software_gestion.webp) type("image/webp"),
    url(../img/local/andalucia_software_gestion.jpg) type("image/jpeg")
  );
  background-position:center; background-size:cover; background-repeat:no-repeat;
  opacity:var(--avz-local-op, .30);
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
          mask-image:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
}
.avz-band--local > .avz-wrap{ position:relative; z-index:1; }

.avz-cities{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
@media (max-width:760px){ .avz-cities{ grid-template-columns:1fr; } }
.avz-city{
  position:relative; border-radius:var(--avz-radius); padding:1.8rem 1.8rem 1.8rem 1.9rem; overflow:hidden;
  background:var(--avz-surface); border:1px solid rgba(12,207,207,.35); box-shadow:var(--avz-shadow);
  transition:transform .3s, box-shadow .3s, border-color .3s;
}
.avz-city::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(var(--avz-cian), var(--avz-cian-ink));
}
.avz-city:hover{ transform:translateY(-5px); border-color:var(--avz-cian); box-shadow:var(--avz-shadow-lg); }
.avz-city__name{ position:relative; font-size:1.4rem; font-weight:700; color:var(--avz-heading); margin:0 0 .3rem; }
.avz-city__name svg{ width:1em; height:1em; fill:var(--avz-cian-ink); vertical-align:-.1em; margin-right:.3em; }
.avz-city__text{ position:relative; color:var(--avz-muted); margin:0; line-height:1.5; }

.avz-btn--primary{ position:relative; }
.avz-btn--lg{ font-size:1.08rem; padding:1.05em 2em; }

.avz-band + .avz-band--tint, .avz-band--tint + .avz-band { border-top:1px solid rgba(8,41,61,.06); }
.avz-band--local { border-top:0 !important; box-shadow:none !important; margin-top:-1px; }

.avz-band--deep{
  position:relative; color:#fff; overflow:hidden;
  background: var(--avz-ink);
}
.avz-band--deep::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 100%), var(--avz-cian-glow), transparent 70%);
  opacity:.4; transition:opacity .4s;
}
.avz-band--deep > .avz-wrap{ position:relative; z-index:1; }
.avz-band--deep .avz-head__title{ color:#fff; }
.avz-band--deep .avz-head__eyebrow{ color:var(--avz-cian); }
.avz-band--deep .avz-head__lead{ color:rgba(255,255,255,.8); }
.avz-band--deep .avz-card{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.12); box-shadow:none; }
.avz-band--deep .avz-card:hover{ border-color:var(--avz-cian); background:rgba(12,207,207,.06); }
.avz-band--deep .avz-card__title{ color:#fff; }
.avz-band--deep .avz-card__text{ color:rgba(255,255,255,.78); }
.avz-band--deep .avz-card__icon{ background:rgba(12,207,207,.14); color:var(--avz-cian); }
.avz-band--deep .avz-step__title{ color:#fff; }
.avz-band--deep .avz-step__text{ color:rgba(255,255,255,.78); }
.avz-band--deep .avz-flist li{ color:rgba(255,255,255,.85); }
.avz-band--deep .avz-flist strong{ color:#fff; }
.avz-band--deep .avz-feature__title, .avz-band--dark .avz-feature__title{ color:#fff; }

.avz-progress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:10000;
  background:linear-gradient(90deg, var(--avz-cian), #5ad6ff);
  box-shadow:0 0 12px var(--avz-cian-glow); transition:width .1s linear;
}
@media (prefers-reduced-motion: reduce){ .avz-progress{ display:none; } }

/* =========================================================
   TARJETAS DE NIVEL/PRECIO (.avz-tiers)
   ========================================================= */
.avz-tiers{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.5rem; align-items:stretch; }
@media (max-width:900px){ .avz-tiers{ grid-template-columns:1fr; max-width:460px; margin-inline:auto; } }
.avz-tier{
  position:relative; display:flex; flex-direction:column;
  background:rgba(255,255,255,.04); border:1px solid rgba(12,207,207,.28);
  border-radius:var(--avz-radius); padding:2rem 1.8rem;
  transition:transform .3s, box-shadow .3s, border-color .3s;
}
.avz-tier:hover{ transform:translateY(-6px); border-color:var(--avz-cian); box-shadow:var(--avz-shadow-lg); }
.avz-tier--feat{ border-color:var(--avz-cian); box-shadow:0 0 0 1px var(--avz-cian-glow), inset 0 0 50px rgba(12,207,207,.06); }
.avz-tier__badge{
  position:absolute; top:-.8rem; left:50%; transform:translateX(-50%);
  font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:#04222b; background:var(--avz-cian); padding:.35em 1em; border-radius:999px;
  box-shadow:0 6px 18px var(--avz-cian-glow); white-space:nowrap;
}
.avz-tier__name{ font-size:1.25rem; font-weight:700; color:#fff; margin:0 0 .2rem; }
.avz-tier__price{ font-size:1.9rem; font-weight:700; color:var(--avz-cian); line-height:1.1; margin:0 0 .6rem; }
.avz-tier__desc{ color:rgba(255,255,255,.8); line-height:1.5; margin:0 0 1.2rem; min-height:2.6em; }
.avz-tier__list{ list-style:none; margin:0 0 1.4rem; padding:0; display:grid; gap:.7rem; flex:1; }
.avz-tier__list li{ position:relative; padding-left:1.7rem; line-height:1.45; color:rgba(255,255,255,.85); font-size:.95rem; }
.avz-tier__list li::before{
  content:""; position:absolute; left:0; top:.15em; width:1.1em; height:1.1em; border-radius:5px;
  background:var(--avz-cian-soft); border:1px solid rgba(12,207,207,.4);
}
.avz-tier__list li::after{
  content:""; position:absolute; left:.32em; top:.4em; width:.42em; height:.24em;
  border-left:2px solid var(--avz-cian); border-bottom:2px solid var(--avz-cian);
  transform:rotate(-45deg);
}
.avz-tier__for{ color:rgba(255,255,255,.6); font-size:.88rem; font-style:italic; margin:0 0 1.2rem; }
.avz-tier .avz-btn{ width:100%; margin-top:auto; }

/* =========================================================
   FORMULARIO DE CONTACTO EN EL CTA (home v2 · D-014)
   ========================================================= */
.avz-cta.avz-cta--form{
  background:transparent; border:0; padding:0; overflow:visible; border-radius:0;
  padding-block: clamp(2.6rem, 5vw, 3.8rem);
}
.avz-cta--form .avz-cta__head{ text-align:center; max-width:60ch; margin-inline:auto; }
.avz-cta--form .avz-cta__title{ margin-bottom:.6rem; }
.avz-cta--form .avz-cta__text{ margin-inline:auto; }
.avz-ctaform{
  position:relative; max-width:640px; margin:2rem auto 0;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(12,207,207,.28);
  border-radius:var(--avz-radius);
  padding:clamp(1.4rem, 3vw, 2rem);
  box-shadow:0 18px 50px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.04);
}
.avz-ctaform .wpcf7{ margin:0; }
.avz-ctaform .wpcf7-form{ margin:0; }
.avz-ctaform .avz-contact-form{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  column-gap:1.1rem; row-gap:1rem; text-align:left;
}
.avz-ctaform .avz-form-row{ margin:0; min-width:0; }
.avz-ctaform .avz-form-row--full,
.avz-ctaform .avz-form-row--privacy,
.avz-ctaform .avz-form-row--submit{ grid-column:1 / -1; }
@media (max-width:560px){ .avz-ctaform .avz-contact-form{ grid-template-columns:1fr; } }
.avz-ctaform .avz-contact-form label{
  display:block; font-size:.9rem; font-weight:600; line-height:1.5; color:rgba(255,255,255,.88);
}
.avz-ctaform .avz-field{
  width:100%; box-sizing:border-box; margin-top:.4rem;
  padding:.65rem .85rem; font-size:1rem; font-family:inherit;
  color:#fff; border-radius:var(--avz-radius-sm);
  background:rgba(255,255,255,.05); border:1px solid rgba(12,207,207,.28);
  transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.avz-ctaform .avz-field::placeholder{ color:rgba(255,255,255,.5); }
.avz-ctaform .avz-field:focus{
  outline:none; border-color:var(--avz-cian);
  background:rgba(255,255,255,.09); box-shadow:var(--avz-ring);
}
.avz-ctaform .avz-field--textarea{ height:90px; min-height:90px; resize:vertical; }
.avz-ctaform select.avz-field{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  padding-right:2.2rem; cursor:pointer;
  background-repeat:no-repeat; background-position:right .85rem center; background-size:11px 7px;
  background-image:url("data:image/svg+xml,%3Csvg width='11' height='7' viewBox='0 0 11 7' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%230CCFCF' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.avz-ctaform select.avz-field option{ color:#0b1018; }
.avz-ctaform .avz-form-row--privacy{ margin-top:-.6rem; }
.avz-ctaform .avz-privacy-label{
  display:block; position:relative; padding-left:1.8rem;
  font-size:.85rem; font-weight:400; line-height:1.5; color:rgba(255,255,255,.72);
}
.avz-ctaform .avz-privacy-label .wpcf7-form-control-wrap{
  position:absolute !important; left:0; top:.1rem;
  width:auto !important; margin:0 !important; padding:0 !important;
}
.avz-ctaform .avz-privacy-label .wpcf7-acceptance,
.avz-ctaform .avz-privacy-label .wpcf7-list-item{
  display:inline !important; margin:0 !important; padding:0 !important;
}
.avz-ctaform .avz-privacy-label .wpcf7-list-item label{ display:inline !important; margin:0 !important; }
.avz-ctaform .avz-privacy-label .wpcf7-list-item-label{ display:none; }
.avz-ctaform .avz-privacy-label input[type="checkbox"]{ margin:0; accent-color:var(--avz-cian); vertical-align:top; }
.avz-ctaform .avz-privacy-label a{ color:var(--avz-cian); text-decoration:underline; }
.avz-ctaform .avz-privacy-label a:hover{ text-decoration:none; }
.avz-ctaform .avz-form-row--submit{ display:flex; justify-content:center; margin-top:1.2rem; }
.avz-ctaform input.avz-btn{
  width:100%; max-width:340px;
  background:var(--avz-cian); color:#04222b;
  border:2px solid transparent;
  box-shadow:0 8px 24px var(--avz-cian-glow);
}
.avz-ctaform input.avz-btn:hover,
.avz-ctaform input.avz-btn:focus,
.avz-ctaform input.avz-btn:active{
  background:var(--avz-cian); color:#04222b; border-color:transparent;
  filter:brightness(1.06); transform:translateY(-3px);
  box-shadow:0 12px 32px var(--avz-cian-glow);
}
.avz-ctaform .wpcf7-response-output{
  margin:1rem 0 0 !important; padding:.7rem 1rem;
  border:1px solid rgba(12,207,207,.3) !important; border-radius:var(--avz-radius-sm);
  font-size:.9rem; background:rgba(12,207,207,.08); color:#bdeef0;
}
.avz-ctaform .wpcf7-mail-sent-ok{ border-color:rgba(45,212,160,.5) !important; background:rgba(45,212,160,.10); color:#a7f3d6; }
.avz-ctaform .wpcf7-mail-sent-ng,
.avz-ctaform .wpcf7-validation-errors,
.avz-ctaform .wpcf7-aborted{ border-color:rgba(255,120,120,.5) !important; background:rgba(255,90,90,.10); color:#ffc9c9; }
.avz-ctaform .wpcf7-not-valid-tip{ color:#ffb4b4; font-size:.8rem; margin-top:.25rem; }
.avz-ctaform .avz-field.wpcf7-not-valid{ border-color:rgba(255,120,120,.6); }
.avz-ctaform .wpcf7-spinner{ margin:0 auto; }
.avz-cta__quick{ margin-top:1.8rem; text-align:center; }
.avz-cta__quicklabel{ color:rgba(255,255,255,.7); font-size:.95rem; margin:0 0 .9rem; }
.avz-cta__quick .avz-stage__actions{ justify-content:center; }

/* =========================================================
   HERO INTERIOR v2 (.avz-hero)
   ========================================================= */
:root{ --avz-header-h: 84px; }

.avz-hero{
  position:relative; overflow:hidden; color:var(--avz-text);
  background:
    radial-gradient(70% 110% at -6% 30%, rgba(12,207,207,.10), transparent 55%),
    var(--avz-surface-2);
  padding-top:calc(var(--avz-header-h) + clamp(36px,5vw,64px));
  padding-bottom:clamp(40px,5vw,72px);
}
.avz-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:
    linear-gradient(rgba(8,41,61,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8,41,61,.05) 1px, transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(90% 80% at 35% 40%, #000 0%, transparent 78%);
          mask-image:radial-gradient(90% 80% at 35% 40%, #000 0%, transparent 78%);
}
.avz-hero::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; z-index:3; pointer-events:none;
  background:linear-gradient(90deg, transparent, var(--avz-cian-glow) 25%, var(--avz-cian) 50%, var(--avz-cian-glow) 75%, transparent);
  box-shadow:0 0 16px 1px var(--avz-cian-glow);
}
.avz-hero__band{
  position:absolute; top:0; left:0; right:0; height:var(--avz-header-h); z-index:2; pointer-events:none;
  background:linear-gradient(90deg, rgba(12,207,207,.30) 0%, rgba(12,207,207,.12) 40%, transparent 72%), var(--avz-ink);
  border-bottom:1px solid rgba(12,207,207,.30);
  box-shadow:0 6px 24px rgba(0,0,0,.35);
}
.avz-hero__band::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; z-index:3; pointer-events:none;
  background:linear-gradient(90deg, transparent, var(--avz-cian-glow) 25%, var(--avz-cian) 50%, var(--avz-cian-glow) 75%, transparent);
  box-shadow:0 0 16px 1px var(--avz-cian-glow);
}
.avz-hero__media{
  position:absolute; top:0; bottom:0; right:0; width:52%; z-index:0; pointer-events:none;
  background-image:var(--avz-hero-img); background-size:cover; background-position:center right;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 22%, #000 60%);
          mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 22%, #000 60%);
}
.avz-hero__grid{
  position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr;
  gap:clamp(2rem,5vw,3.5rem); align-items:center;
}
.avz-hero__col-text{ position:relative; z-index:2; }
.avz-hero__eyebrow{
  display:inline-flex; align-items:center; gap:.55em;
  font-weight:800; letter-spacing:.12em; text-transform:uppercase; font-size:.85rem;
  color:var(--avz-cian-ink); margin-bottom:1rem;
}
.avz-hero__eyebrow::before{ content:""; width:26px; height:2px; background:var(--avz-cian-ink); }
.avz-hero__title{
  font-size:clamp(2rem,3.6vw,3.1rem); line-height:1.06; letter-spacing:-.018em; margin:0 0 1rem; max-width:18ch;
  text-shadow:none;
}
.avz-hero .avz-hero__title{ color:var(--avz-cian-ink) !important; font-weight:600 !important; text-shadow:none !important; }
.avz-hero .avz-hero__title b,
.avz-hero .avz-hero__title .avz-hl{
  color:var(--avz-cian) !important; font-weight:600 !important; text-shadow:none !important;
  -webkit-text-fill-color:currentColor;
}
.avz-hero__lead{
  font-size:clamp(1.05rem,1.4vw,1.25rem); color:var(--avz-muted); line-height:1.55;
  max-width:50ch; margin:0 0 1.8rem;
}
.avz-hero__actions{ display:flex; gap:1rem; flex-wrap:wrap; }
.avz-hero .avz-btn--ghost{ color:var(--avz-heading); border-color:rgba(8,41,61,.25); }
.avz-hero .avz-btn--ghost:hover{ color:var(--avz-cian-ink); border-color:var(--avz-cian-ink); }
@media (max-width:860px){
  .avz-hero__grid{ grid-template-columns:1fr; }
  .avz-hero__media{ display:none; }
}

/* =========================================================
   PÁGINAS INFORMATIVAS (.avz-legal)
   ========================================================= */

/* ---- Cabecera ---- */
.avz-legal-header {
  position: relative; overflow: hidden;
  padding-top: calc(var(--avz-header-h) + clamp(28px, 4vw, 48px));
  padding-bottom: clamp(28px, 4vw, 48px);
  background:
    linear-gradient(90deg, rgba(12,207,207,.18) 0%, rgba(12,207,207,.06) 35%, transparent 65%),
    var(--avz-ink);
  color: #fff;
}
.avz-legal-header::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: .35;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 46px 46px;
}
.avz-legal-header::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--avz-cian-glow) 25%, var(--avz-cian) 50%, var(--avz-cian-glow) 75%, transparent);
  box-shadow: 0 0 14px 1px var(--avz-cian-glow);
}
.avz-legal-header > .avz-wrap { position: relative; z-index: 1; }
.avz-legal-header__eyebrow {
  display: inline-flex; align-items: center; gap: .5em;
  font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--avz-cian); margin-bottom: .7rem;
}
.avz-legal-header__eyebrow::before { content: ""; width: 20px; height: 2px; background: var(--avz-cian); }
.avz-legal-header__title {
  font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 700; line-height: 1.1;
  color: #fff; margin: 0; letter-spacing: -.02em;
}

/* ---- Cuerpo del contenido legal ---- */
.avz-legal {
  max-width: 740px;
  margin-inline: auto;
  padding-inline: 30px;
  padding-block: clamp(40px, 6vw, 72px);
  color: var(--avz-text);
  line-height: 1.75;
  font-size: 1rem;
}
.avz-legal > h2:first-child { display: none; }
.avz-legal h3 {
  font-size: 1.1rem; font-weight: 700;
  color: var(--avz-cian-ink);
  margin: 2.2rem 0 .6rem;
  padding-bottom: .4rem;
  border-bottom: 1px solid rgba(12,207,207,.18);
}
.avz-legal h3:first-of-type { margin-top: 0; }
.avz-legal p { margin: 0 0 1rem; color: var(--avz-text); }
.avz-legal ul { margin: 0 0 1rem; padding-left: 1.4rem; }
.avz-legal ul li { margin-bottom: .4rem; color: var(--avz-text); }
.avz-legal a { color: var(--avz-cian-ink); text-decoration: underline; text-underline-offset: 3px; }
.avz-legal a:hover { color: var(--avz-cian); }
.avz-legal em { color: var(--avz-muted); font-size: .92rem; }

/* ---- Página de cookies: acotar el bloque de Complianz a la misma columna ----
   Complianz genera su HTML fuera de .avz-legal, directamente en el contenido
   de la página. Lo centramos y acotamos al mismo ancho que el cuerpo legal. */
.page-id-1599 .wp-block-complianz-document,
.page-id-1599 .cmplz-document {
  max-width: 740px;
  margin-inline: auto;
  padding-inline: 30px;
  padding-block: clamp(40px, 6vw, 72px);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--avz-text);
}
.page-id-1599 .wp-block-complianz-document h2,
.page-id-1599 .cmplz-document h2 {
  font-size: clamp(1.2rem, 2vw, 1.5rem); font-weight: 700;
  color: var(--avz-heading);
  margin: 2rem 0 .6rem;
}
.page-id-1599 .wp-block-complianz-document h3,
.page-id-1599 .cmplz-document h3 {
  font-size: 1.05rem; font-weight: 700;
  color: var(--avz-cian-ink);
  margin: 1.6rem 0 .5rem;
  padding-bottom: .35rem;
  border-bottom: 1px solid rgba(12,207,207,.18);
}
.page-id-1599 .wp-block-complianz-document p,
.page-id-1599 .cmplz-document p { margin: 0 0 1rem; }
.page-id-1599 .wp-block-complianz-document a,
.page-id-1599 .cmplz-document a { color: var(--avz-cian-ink); }
.page-id-1599 .wp-block-complianz-document a:hover,
.page-id-1599 .cmplz-document a:hover { color: var(--avz-cian); }

/* Separador final entre el cuerpo y el footer */
.avz-legal + * { border-top: 1px solid rgba(8,41,61,.08); }
