
  :root{
    --ew-radius:10px;
    --ew-space-1:6px; --ew-space-2:10px; --ew-space-3:14px; --ew-space-4:18px;
    --ew-space-5:26px; --ew-space-6:34px; --ew-space-7:44px; --ew-space-8:56px;
    --ew-text-heading:#133B4F;
    --ew-text-body:#405B69;
    --ew-text-muted:#556A7A;
    --ew-action:#0A6098;
    --ew-action-hover:#08507F;
    --ew-icon:#0A6EAC;
    --ew-secondary:#16B7AA;
    --ew-secondary-deep:#0E8A80;
    /* Tono secundario apto para TEXTO sobre superficie clara: #0E8A80 mide 4,15:1 sobre
       tarjeta y no alcanza 4,5:1. El relleno decorativo conserva #0E8A80; el texto usa este. */
    --ew-secondary-text:#0B6E66;
    --ew-surface:#FCFDFE;
    --ew-surface-alt:#FAFCFE;
    --ew-control-border:#6A8798;
    --ew-threshold:rgba(19,59,79,0.28);
    --ew-rule:rgba(19,59,79,0.20);
    --ew-canvas-a:rgba(243,248,251,0.50);
    --ew-canvas-b:rgba(214,230,238,0.50);
    --ew-canvas-c:rgba(220,237,234,0.50);
    --ew-canvas-footer:rgba(220,237,234,0.50);
    --ew-elev-1:0 2px 8px rgba(19,59,79,0.063), 0 18px 55px -14px rgba(19,59,79,0.108);
    --ew-elev-2:0 4px 18px rgba(19,59,79,0.099), 0 36px 100px -22px rgba(19,59,79,0.162);
    --ew-dur:200ms; --ew-dur-slow:300ms; --ew-dur-disclose:300ms; --ew-dur-surface:420ms;
    --ew-ease:cubic-bezier(0.22,1,0.36,1); --ew-ease-soft:cubic-bezier(0.4,0,0.2,1); --ew-ease-surface:cubic-bezier(0.32,0.72,0,1);
  }
  html,body{margin:0;padding:0;}
  *{box-sizing:border-box;}
  body{background:#E8F0F5;}
  .ew-band-a::before,.ew-band-b::before,.ew-band-c::before{content:''; position:absolute; inset:0; pointer-events:none; z-index:0; background:repeating-linear-gradient(90deg, rgba(255,255,255,0.14) 0 1px, rgba(255,255,255,0) 1px 14px); opacity:0.42;}
  .ew-band-a > *,.ew-band-b > *,.ew-band-c > *{position:relative; z-index:1;}
  /* Solo en html: con overflow-x:clip también en body, body pasa a ser contenedor de recorte y
     la animación conducida por scroll resuelve su scroller contra body, que nunca desplaza — el
     progreso quedaba clavado en 0.5 y el paralaje no avanzaba en ningún sujeto. */
  html{overflow-x:clip;}
  a{color:var(--ew-icon);}
  a:hover{color:var(--ew-action-hover);}
  ::selection{background:rgba(10,110,172,0.18);}
  section{border:0;}
  section[id]{scroll-margin-top:104px;}
  /* Each section starts in the previous section's colour and resolves into its own; the seam is invisible. */
  .ew-ambient{position:fixed; left:0; top:0; width:100vw; height:100vh; z-index:0; pointer-events:none; overflow:hidden;}
  /* Los degradados de los orbes reparten dos o tres niveles RGB sobre cientos de píxeles: a 8 bits
     los escalones de cuantización se ven como franjas horizontales tenues, sobre todo entre el
     mapa y el pie. Un grano imperceptible sobre la capa atmosférica difumina esos escalones. No
     desplaza, tiñe ni redimensiona ningún orbe, y no cuesta nada por fotograma. */
  .ew-ambient::after{content:""; position:absolute; inset:0; pointer-events:none; opacity:0.055; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"); background-size:160px 160px;}
  body{position:relative;}
  body > .ew-ambient{z-index:0;}
  x-dc,.sc-host{position:relative; z-index:1; background:transparent !important;}
  .ew-orb{position:absolute; border-radius:999px; will-change:transform; background:radial-gradient(circle at 32% 28%, rgba(255,255,255,0.72) 0%, rgba(255,255,255,0.18) 20%, rgba(255,255,255,0) 44%), radial-gradient(circle at 50% 56%, var(--orb) 0%, var(--orb) 26%, var(--orb-mid) 56%, rgba(255,255,255,0.03) 82%, rgba(255,255,255,0) 100%); box-shadow:inset -20px -34px 70px -24px rgba(255,255,255,0.62);}
  .ew-orb--1{--orb:rgba(8,127,202,0.28); --orb-mid:rgba(8,127,202,0.11); width:42vmin; height:42vmin; left:-14vmin; top:2vh;}
  .ew-orb--2{--orb:rgba(22,183,170,0.28); --orb-mid:rgba(22,183,170,0.11); width:44vmin; height:44vmin; right:-10vmin; top:16vh;}
  .ew-orb--3{--orb:rgba(10,110,172,0.26); --orb-mid:rgba(10,110,172,0.10); width:36vmin; height:36vmin; left:32vw; bottom:-12vmin;}
  .ew-orb--4{--orb:rgba(22,183,170,0.24); --orb-mid:rgba(22,183,170,0.09); width:24vmin; height:24vmin; right:20vw; bottom:12vh;}
  .ew-orb--5{--orb:rgba(8,127,202,0.22); --orb-mid:rgba(8,127,202,0.09); width:16vmin; height:16vmin; left:14vw; top:48vh;}
  @keyframes ewDrift1{from{transform:translate3d(0,0,0) scale(1);}to{transform:translate3d(9vw,-12vh,0) scale(1.08);}}
  @keyframes ewDrift2{from{transform:translate3d(0,0,0) scale(1);}to{transform:translate3d(-11vw,14vh,0) scale(0.94);}}
  @keyframes ewDrift3{from{transform:translate3d(0,0,0) scale(1);}to{transform:translate3d(7vw,-18vh,0) scale(1.1);}}
  .ew-page{position:relative; z-index:1;}
  /* Paralaje conducido desde JS. La vía nativa (animation-timeline:view()) no es utilizable
     aquí: cada imagen vive dentro de una caja overflow:hidden, que en CSS es un contenedor de
     scroll, así que view() resuelve su timeline contra esa caja —que nunca desplaza— y el
     progreso queda inactivo en 0.5. El recorte es esencial al diseño. */
  /* content-visibility se retiró: implica contain:paint, y la contención de pintado convierte la
     sección en backdrop root, de modo que el Header no podía desenfocar su texto. El material del
     Header pesa más que el ahorro de render de tres secciones. */
  @media (prefers-contrast: more){ .ew-glass-subtle,.ew-glass-standard,.ew-glass-elevated,.ew-tcard,.ew-note,.ew-service-text{background:#FFFFFF !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; box-shadow:0 0 0 1px var(--ew-text-heading) !important;} }
  .ew-glass-elevated p,.ew-glass-standard p,.ew-tq,.ew-service-text p{letter-spacing:0.002em;}
  .ew-form-status,label,[data-ew-derived$=".label"]{letter-spacing:0.01em;}
  .ew-reveal{opacity:1; transform:none; transition:opacity 520ms var(--ew-ease-soft), transform 620ms var(--ew-ease-soft);}
  html.ew-io .ew-reveal:not(.is-in){opacity:0; transform:translateY(14px);}
  .ew-reveal[data-d="1"]{transition-delay:70ms;} .ew-reveal[data-d="2"]{transition-delay:140ms;} .ew-reveal[data-d="3"]{transition-delay:210ms;} .ew-reveal[data-d="4"]{transition-delay:280ms;} .ew-reveal[data-d="5"]{transition-delay:350ms;}
  @media (prefers-reduced-motion: reduce){ .ew-reveal{opacity:1 !important; transform:none !important; transition:none !important;} }
  .ew-band-a,.ew-band-b,.ew-band-c{position:relative;}
  .ew-band-a{background:linear-gradient(180deg, var(--ew-canvas-b) 0%, var(--ew-canvas-a) 26%, var(--ew-canvas-a) 100%);}
  .ew-band-b{background:linear-gradient(180deg, var(--ew-canvas-a) 0%, var(--ew-canvas-b) 26%, var(--ew-canvas-b) 100%);}
  .ew-band-b.ew-band--atmos{background:linear-gradient(180deg, var(--ew-canvas-a) 0%, var(--ew-canvas-b) 22%, rgba(201,221,233,0.54) 100%);}
  .ew-band-a.ew-band--after-atmos{background:linear-gradient(180deg, rgba(201,221,233,0.54) 0%, var(--ew-canvas-a) 30%, var(--ew-canvas-a) 100%);}
  .ew-band-c{background:linear-gradient(180deg, var(--ew-canvas-a) 0%, var(--ew-canvas-c) 26%, var(--ew-canvas-c) 100%);}
  .ew-band-a.ew-band--after-c{background:linear-gradient(180deg, var(--ew-canvas-c) 0%, var(--ew-canvas-a) 26%, var(--ew-canvas-a) 100%);}
  .ew-band-a.ew-band--after-hero{background:var(--ew-canvas-a); z-index:1;}
  .ew-band-a.ew-band--after-hero::before{display:none;}
  /* Proof: atmospheric floor with depth so the glass surface has something to refract (no light-on-light stack) */
  .ew-proof-floor{position:relative; border-radius:var(--ew-radius); overflow:hidden; background:linear-gradient(148deg,#DCEDF5 0%, #B9D9E9 34%, #8FC3D9 62%, #63A2BF 84%, #8FC3D9 100%); background-size:260% 260%; animation:ewProofDrift 14s ease-in-out infinite alternate; padding:22px;}
  @keyframes ewProofDrift{from{background-position:0% 0%;}50%{background-position:100% 30%;}to{background-position:40% 100%;}}
  @media (prefers-reduced-motion: reduce){ .ew-proof-floor{animation:none;} }
  .ew-proof-floor::before{content:''; position:absolute; right:-6%; top:-40%; width:46%; height:180%; background:radial-gradient(circle at 50% 50%, rgba(22,183,170,0.32), rgba(22,183,170,0) 62%); pointer-events:none;}
  .ew-proof-floor::after{content:''; position:absolute; left:-2%; bottom:-40%; width:52%; height:140%; background:radial-gradient(circle at 50% 50%, rgba(226,208,171,0.13) 0%, rgba(226,208,171,0.06) 42%, rgba(226,208,171,0) 78%); pointer-events:none;}
  .ew-proof-glass{position:relative; padding:6px 0;}
  .ew-proof-floor{padding:26px;}
  .ew-proof-glass.ew-glass-standard{background:rgba(255,255,255,0.76);}
  .ew-proof-item{position:relative; padding:24px 28px 26px;}
  .ew-proof-item + .ew-proof-item{border-left:1px solid rgba(19,59,79,0.16);}
  .ew-service-card{background:var(--ew-surface); border:0; border-radius:var(--ew-radius); box-shadow:var(--ew-elev-1); overflow:hidden;}
  .ew-glass-subtle{
    background:rgba(250,252,254,0.42);
    -webkit-backdrop-filter:blur(14px) saturate(1.15); backdrop-filter:blur(14px) saturate(1.15);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.60), inset 0 16px 28px -18px rgba(255,255,255,0.45), 0 2px 9px rgba(19,59,79,0.099), 0 18px 53px -12px rgba(19,59,79,0.153);
    border:0; border-radius:var(--ew-radius);
  }
  .ew-glass-standard{
    background:rgba(250,252,254,0.58);
    -webkit-backdrop-filter:blur(22px) saturate(1.28); backdrop-filter:blur(22px) saturate(1.28);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.72), inset 0 20px 34px -20px rgba(255,255,255,0.50), 0 3px 14px rgba(19,59,79,0.126), 0 36px 98px -22px rgba(19,59,79,0.207);
    border:0; border-radius:var(--ew-radius);
  }
  .ew-glass-elevated{
    background:rgba(250,252,254,0.52);
    -webkit-backdrop-filter:blur(32px) saturate(1.55); backdrop-filter:blur(32px) saturate(1.55);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.90), inset 0 26px 44px -26px rgba(255,255,255,0.55), 0 6px 28px rgba(19,59,79,0.189), 0 52px 140px -26px rgba(19,59,79,0.261);
    border:0; border-radius:var(--ew-radius);
  }
  .ew-glass-elevated.ew-glass-elevated--hero{
    background:rgba(250,252,254,0.756);
    -webkit-backdrop-filter:blur(34px) saturate(1.60); backdrop-filter:blur(34px) saturate(1.60);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.90), inset 0 26px 44px -26px rgba(255,255,255,0.55), 0 5px 18px rgba(19,59,79,0.27), 0 34px 88px -18px rgba(19,59,79,0.342);
  }
  /* El Header conserva la receta glassElevated de Stage B v6 (blur y saturación intactos) y solo
     sube su propia opacidad: con 0.52 los títulos de sección de 34 px se leían a través y parecía
     que no hubiera desenfoque. El blur no cambia, así que el token de material se respeta. */
  .ew-glass-elevated.ew-glass-elevated--header{background:rgba(250,252,254,0.74); transition:background var(--ew-dur-surface) var(--ew-ease-soft), backdrop-filter var(--ew-dur-surface) var(--ew-ease-soft), -webkit-backdrop-filter var(--ew-dur-surface) var(--ew-ease-soft), box-shadow var(--ew-dur-surface) var(--ew-ease-soft);}
  /* Estado denso: se activa cuando el Header solapa un título o un párrafo. Es comportamiento de
     presentación determinista, no una opción de cliente. Refuerza alfa, desenfoque, saturación y
     la luz superior permitida; no añade perímetro y no llega a barra opaca. */
  .ew-glass-elevated.ew-glass-elevated--header.is-dense{background:rgba(250,252,254,0.88); -webkit-backdrop-filter:blur(44px) saturate(1.72) brightness(1.04); backdrop-filter:blur(44px) saturate(1.72) brightness(1.04); box-shadow:inset 0 1px 0 rgba(255,255,255,0.96), inset 0 26px 44px -26px rgba(255,255,255,0.62), 0 5px 18px rgba(19,59,79,0.27), 0 30px 80px -16px rgba(19,59,79,0.324);}
  .ew-glass-elevated.ew-glass-elevated--about{background:rgba(250,252,254,0.812); -webkit-backdrop-filter:blur(34px) saturate(1.60); backdrop-filter:blur(34px) saturate(1.60);}
  .ew-surface-1{background:var(--ew-surface); border:0; border-radius:var(--ew-radius); box-shadow:var(--ew-elev-1);}
  .ew-benefit-card{transition:box-shadow var(--ew-dur-slow) var(--ew-ease-soft), transform var(--ew-dur-slow) var(--ew-ease-soft);}

  @media (hover:hover) and (pointer:fine){ .ew-benefit-card:hover{box-shadow:0 6px 18px rgba(19,59,79,0.144), 0 30px 75px -18px rgba(19,59,79,0.27); transform:translateY(-6px) scale(1.012);} }
  .ew-navlink{position:relative; font-size:15px; font-weight:500; color:var(--ew-text-heading); text-decoration:none; padding:9px 14px; border-radius:var(--ew-radius); transition:box-shadow var(--ew-dur) var(--ew-ease-soft), color var(--ew-dur) var(--ew-ease-soft), transform 130ms var(--ew-ease);}
  @media (hover:hover) and (pointer:fine){ .ew-navlink:hover{background:linear-gradient(180deg, rgba(19,59,79,0.05) 0%, rgba(19,59,79,0.02) 100%); color:var(--ew-action); box-shadow:inset 0 1px 3px rgba(19,59,79,0.12), inset 0 -1px 0 rgba(255,255,255,0.85);} }
  .ew-navlink:active{transform:scale(0.97);}
  /* El activo lleva el mismo tratamiento que el hover de un inactivo, y no reacciona al puntero. */
  .ew-navlink[aria-current="page"],
  .ew-navlink[aria-current="page"]:hover{background:linear-gradient(180deg, rgba(19,59,79,0.05) 0%, rgba(19,59,79,0.02) 100%); color:var(--ew-action); box-shadow:inset 0 1px 3px rgba(19,59,79,0.12), inset 0 -1px 0 rgba(255,255,255,0.85); font-weight:500;}

  .ew-btn{font-family:inherit; font-size:16px; font-weight:500; border-radius:var(--ew-radius); padding:13px 22px; min-height:44px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; position:relative; transition:box-shadow 200ms var(--ew-ease-soft), color 200ms var(--ew-ease-soft), transform 150ms var(--ew-ease-soft);}
  .ew-btn:active{transform:scale(0.98); transition-duration:110ms;}
  .ew-btn--primary{color:#FFFFFF; background:linear-gradient(180deg, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.04) 48%, rgba(255,255,255,0) 100%), linear-gradient(135deg, var(--ew-action) 0%, #0B6FAE 100%); border:0; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.22), inset 0 1px 0 rgba(255,255,255,0.55), inset 0 -8px 14px -10px rgba(6,40,66,0.55), 0 1px 4px rgba(19,59,79,0.198), 0 10px 22px -10px rgba(10,96,152,0.60); -webkit-backdrop-filter:blur(14px) saturate(1.15); backdrop-filter:blur(14px) saturate(1.15);}
  .ew-btn--primary:hover{background:linear-gradient(180deg, rgba(255,255,255,0.30) 0%, rgba(255,255,255,0.06) 48%, rgba(255,255,255,0) 100%), linear-gradient(135deg, #0B6CAC 0%, var(--ew-icon) 100%); color:#FFFFFF; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.22), inset 0 1px 0 rgba(255,255,255,0.75), inset 0 -8px 14px -10px rgba(6,40,66,0.55), 0 2px 8px rgba(19,59,79,0.198), 0 16px 30px -14px rgba(10,96,152,0.62); transform:translateY(-1px);}
  .ew-btn--primary:hover:active{transform:translateY(0) scale(0.97);}
  .ew-btn--secondary{color:var(--ew-text-heading); background:linear-gradient(180deg, rgba(255,255,255,0.72) 0%, rgba(250,252,254,0.50) 100%); border:0; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.70), inset 0 1px 0 rgba(255,255,255,0.95), inset 0 -7px 13px -8px rgba(19,59,79,0.18), 0 1px 4px rgba(19,59,79,0.144), 0 8px 23px -10px rgba(19,59,79,0.252); -webkit-backdrop-filter:blur(22px) saturate(1.28); backdrop-filter:blur(22px) saturate(1.28);}
  .ew-btn--secondary:hover{background:rgba(250,252,254,0.92); color:var(--ew-action); box-shadow:inset 0 0 0 1px rgba(255,255,255,0.70), inset 0 1px 0 #FFFFFF, inset 0 -7px 13px -8px rgba(19,59,79,0.14), 0 2px 8px rgba(19,59,79,0.144), 0 14px 35px -14px rgba(19,59,79,0.306); transform:translateY(-1px);}
  .ew-btn--secondary:hover:active{transform:translateY(0) scale(0.97);}
  .ew-btn--compact{font-size:15px; padding:10px 18px; min-height:40px;}
  .ew-btn--primary,.ew-btn--secondary{border:0 !important;}
  /* Glass buttons sitting on a glass parent: drop their own backdrop-filter (apple-design: never stack light glass on glass) */
  .ew-glass-elevated .ew-btn,.ew-glass-standard .ew-btn{-webkit-backdrop-filter:none; backdrop-filter:none;}
  .ew-glass-elevated .ew-btn--secondary,.ew-glass-standard .ew-btn--secondary{background:linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(250,252,254,0.74) 100%);}
  .ew-btn--header{margin-left:6px;}
  /* Glass form: opaque-enough field on standard glass body, no light-on-light stacking (fields are solid white) */
  .ew-form-glass{padding:28px 30px;}
  .ew-note{display:flex; flex-direction:column; gap:20px; padding:22px 22px 24px; border-radius:var(--ew-radius); background:linear-gradient(180deg, rgba(255,255,255,0.72) 0%, rgba(250,252,254,0.58) 100%); -webkit-backdrop-filter:blur(22px) saturate(1.28); backdrop-filter:blur(22px) saturate(1.28); box-shadow:inset 0 1px 0 rgba(255,255,255,0.95), inset 0 -1px 0 rgba(19,59,79,0.04), 0 2px 8px rgba(19,59,79,0.126), 0 20px 55px -16px rgba(19,59,79,0.216); position:relative;}
  .ew-cicon{flex:none; width:44px; height:44px; border-radius:var(--ew-radius); display:flex; align-items:center; justify-content:center; color:var(--ew-action); background:linear-gradient(180deg, rgba(19,59,79,0.08) 0%, rgba(255,255,255,0.35) 100%); -webkit-backdrop-filter:blur(12px) saturate(1.2); backdrop-filter:blur(12px) saturate(1.2); box-shadow:inset 0 2px 5px rgba(19,59,79,0.18), inset 0 -1px 0 rgba(255,255,255,0.95), inset 1px 0 0 rgba(19,59,79,0.05), inset -1px 0 0 rgba(19,59,79,0.05); transition:box-shadow var(--ew-dur-slow) var(--ew-ease-soft), color var(--ew-dur-slow) var(--ew-ease-soft);}
  @media (hover:hover) and (pointer:fine){ .ew-cinfo:hover .ew-cicon{background:linear-gradient(180deg, rgba(19,59,79,0.04) 0%, rgba(255,255,255,0.65) 100%); color:var(--ew-secondary-deep); box-shadow:inset 0 1px 3px rgba(19,59,79,0.12), inset 0 -1px 0 #FFFFFF;} }
  .ew-req{color:var(--ew-secondary-text); font-weight:600; margin-left:2px;}
  .ew-form-status{display:flex; align-items:center; gap:10px; font-size:15px; color:var(--ew-text-heading); min-height:44px;}
  .ew-form-status-dot{width:10px; height:10px; border-radius:999px; background:var(--ew-secondary); box-shadow:0 0 0 4px rgba(22,183,170,0.22); flex:none;}
  .ew-form-glass .ew-input{background:rgba(255,255,255,0.92); border-color:rgba(19,59,79,0.30); box-shadow:inset 0 1px 2px rgba(19,59,79,0.06);}
  .ew-form-glass .ew-input:focus{background:#FFFFFF;}
  /* Testimonial: grounded card with a quiet secondary accent that earns its place (the quote mark) */
  .ew-tcard{position:relative; margin:0; padding:28px 28px 24px 30px; display:flex; flex-direction:column; height:100%; background:rgba(250,252,254,0.54); -webkit-backdrop-filter:blur(28px) saturate(1.42); backdrop-filter:blur(28px) saturate(1.42); border:0; border-radius:var(--ew-radius); box-shadow:inset 0 1px 0 rgba(255,255,255,0.88), inset 1px 0 0 rgba(255,255,255,0.50), inset 0 24px 40px -22px rgba(255,255,255,0.62), 0 1px 5px rgba(19,59,79,0.11), 0 4px 22px -14px rgba(19,59,79,0.19);}
  .ew-tcard::after{content:''; position:absolute; left:0; top:0; bottom:0; width:56px; border-radius:inherit; pointer-events:none; background:linear-gradient(90deg, rgba(22,183,170,0.14) 0%, rgba(22,183,170,0.05) 55%, rgba(22,183,170,0) 100%);}
  .ew-tq{flex:1; margin:0; font-size:19px; line-height:1.58; color:var(--ew-text-heading); max-width:52ch; text-wrap:pretty;}
  .ew-tauth{display:block; font-size:15px; font-weight:600; color:var(--ew-text-heading);}
  .ew-tco{display:block; font-size:14px; color:var(--ew-text-muted); margin-top:2px;}
  .ew-tq::before,.ew-tq::after{font-weight:700; color:var(--ew-secondary-deep);}
  .ew-tq::before{content:'\201C';}
  .ew-tq::after{content:'\201D';}
  .ew-tmeta{display:flex; align-items:center; gap:12px; margin-top:var(--ew-space-4);}
  /* Carrusel de testimonios: scroll-snap nativo (gesto táctil y trackpad gratis, transición
     interrumpible) con controles visibles, indicador de posición y navegación por teclado.
     Sin autoplay. El contenido se entiende sin animación: sin transición sigue habiendo salto. */
  /* Patrones repetidos, deduplicados desde estilos en línea idénticos. */
  .ew-h2{margin:0; font-size:clamp(28px, 3vw, 34px); font-weight:600; letter-spacing:-0.018em; line-height:1.14; color:var(--ew-text-heading);}
  .ew-intro{margin:12px 0 0; font-size:17px; line-height:1.6; color:var(--ew-text-body); max-width:58ch; text-wrap:pretty;}
  .ew-svc-h3{margin:0; font-size:24px; font-weight:600; line-height:1.22; letter-spacing:-0.016em; color:var(--ew-text-heading);}
  .ew-plabel{font-size:15px; line-height:1.55; color:var(--ew-text-body); margin-top:10px;}
  .ew-cinfo{display:flex; gap:14px; align-items:flex-start;}
  .ew-cicon svg{width:20px; height:20px; display:block; fill:currentColor;}
  .ew-clabel{display:block; font-size:13px; font-weight:600; letter-spacing:0.02em; color:var(--ew-text-muted);}
  .ew-chev{width:13px; height:13px; flex:none; fill:currentColor;}
  .ew-carousel{position:relative; margin-top:var(--ew-space-5);}
  .ew-car-frame{position:relative;}
  .ew-car-viewport{display:flex; gap:var(--ew-space-5); overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; background:transparent; padding:0 8px 16px; margin:0 -8px; scroll-padding-inline:8px;}
  .ew-car-viewport::-webkit-scrollbar{display:none;}
  .ew-car-viewport:focus-visible{outline:2px solid var(--ew-action); outline-offset:3px; border-radius:var(--ew-radius);}
  .ew-car-slide{flex:0 0 calc((100% - var(--ew-space-5)) / 2); scroll-snap-align:start; display:flex;}
  .ew-car-slide > .ew-tcard{width:100%;}
  /* Controles bajo las tarjetas, centrados al eje vertical del contenedor. */
  .ew-car-bar{display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:12px; row-gap:6px; margin-top:var(--ew-space-3);}
  .ew-car-nav[disabled]{opacity:0.4; cursor:default; box-shadow:inset 0 1px 0 rgba(255,255,255,0.45), 0 1px 3px rgba(19,59,79,0.09);}
  .ew-car-nav svg{width:17px; height:17px; display:block;}
  .ew-car-dots{display:flex; align-items:center; gap:0; margin-left:auto;}
  .ew-dot{width:44px; height:44px; min-width:44px; min-height:44px; padding:0; border:0; background:transparent; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;}
  .ew-dot::after{content:''; width:11px; height:11px; border-radius:999px; background:rgba(255,255,255,0.68); -webkit-backdrop-filter:blur(8px) saturate(1.25); backdrop-filter:blur(8px) saturate(1.25); box-shadow:inset 0 1px 0.5px rgba(255,255,255,0.98), inset 0 -2px 4px -1px rgba(19,59,79,0.26), 0 1px 4px rgba(19,59,79,0.342); transition:background var(--ew-dur) var(--ew-ease-soft), transform var(--ew-dur) var(--ew-ease-surface), box-shadow var(--ew-dur) var(--ew-ease-soft);}
  .ew-dot[aria-current="true"]::after{background:rgba(14,138,128,0.5); -webkit-backdrop-filter:blur(10px) saturate(1.5); backdrop-filter:blur(10px) saturate(1.5); box-shadow:inset 0 1px 0.5px rgba(255,255,255,0.70), inset 0 -3px 5px -2px rgba(6,58,54,0.34), 0 1px 4px rgba(11,90,84,0.40); transform:scale(1.42);}
  @media (hover:hover) and (pointer:fine){ .ew-dot:not([aria-current="true"]):hover::after{background:rgba(255,255,255,0.92); transform:scale(1.16);} }
  .ew-dot:active::after{transform:scale(0.88); transition-duration:110ms;}
  .ew-dot:focus-visible{outline:2px solid var(--ew-action); outline-offset:2px; border-radius:999px;}
  @media (prefers-reduced-motion: reduce){ .ew-dot::after{transition:background var(--ew-dur) linear;} .ew-dot:active::after{transform:none;} }
  /* Transparencia reducida: el material se vuelve sólido y el estado se sostiene por color y tamaño. */
  @media (prefers-reduced-transparency: reduce){
    .ew-dot::after{background:#FFFFFF; -webkit-backdrop-filter:none; backdrop-filter:none;}
    .ew-dot[aria-current="true"]::after{background:var(--ew-secondary-deep); -webkit-backdrop-filter:none; backdrop-filter:none;}
  }
  @media (prefers-contrast: more){
    .ew-dot::after{background:#FFFFFF; box-shadow:0 0 0 1px var(--ew-text-heading); -webkit-backdrop-filter:none; backdrop-filter:none;}
    .ew-dot[aria-current="true"]::after{background:var(--ew-secondary-deep); box-shadow:0 0 0 1px var(--ew-text-heading);}
  }
  /* El breakpoint decide, no la medición: en escritorio hay 5 posiciones alcanzables. */
  /* Marco de vidrio de 4 px alrededor del mapa: superficie con padding, no propiedad border. */
  .ew-mapframe{padding:12px; border-radius:calc(var(--ew-radius) + 12px); background:linear-gradient(135deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.58) 34%, rgba(240,247,251,0.46) 62%, rgba(255,255,255,0.80) 100%); -webkit-backdrop-filter:blur(22px) saturate(1.4); backdrop-filter:blur(22px) saturate(1.4); box-shadow:inset 0 2px 1px rgba(255,255,255,0.98), inset 2px 0 1px rgba(255,255,255,0.72), inset 0 -3px 2px rgba(19,59,79,0.10), inset -2px 0 2px rgba(19,59,79,0.07), inset 0 -10px 16px -10px rgba(19,59,79,0.20), var(--ew-elev-2);}
  .ew-mapframe iframe{display:block; border-radius:var(--ew-radius);}
  /* Páginas internas: una sola superficie de lectura continua, suficientemente opaca. El vidrio
     se reserva al armazón (Header, Footer) y al plano principal, no a cada subapartado. */
  .ew-legal{max-width:78ch; margin:0 auto; padding:46px 46px 54px; border-radius:var(--ew-radius); background:rgba(253,254,255,0.94); -webkit-backdrop-filter:blur(28px) saturate(1.3); backdrop-filter:blur(28px) saturate(1.3); box-shadow:inset 0 1px 0 rgba(255,255,255,0.96), var(--ew-elev-2); border:0;}
  .ew-legal h1{margin:0; font-size:clamp(30px,3.6vw,40px); font-weight:700; letter-spacing:-0.022em; line-height:1.1; color:var(--ew-text-heading); text-wrap:pretty;}
  .ew-legal h1:focus-visible{outline:2px solid var(--ew-action); outline-offset:6px; border-radius:6px;}
  .ew-lnote{margin:18px 0 0; padding:12px 16px; border-radius:var(--ew-radius); background:rgba(19,59,79,0.05); font-size:14.5px; line-height:1.55; color:var(--ew-text-body);}
  .ew-lbody{margin-top:30px;}
  .ew-lbody h2{margin:34px 0 0; font-size:23px; font-weight:600; letter-spacing:-0.014em; line-height:1.24; color:var(--ew-text-heading); text-wrap:pretty;}
  .ew-lbody h3{margin:24px 0 0; font-size:18px; font-weight:600; line-height:1.3; color:var(--ew-text-heading);}
  .ew-lbody p{margin:14px 0 0; font-size:17px; line-height:1.72; color:var(--ew-text-body); text-wrap:pretty;}
  .ew-lbody ul,.ew-lbody ol{margin:14px 0 0; padding-left:22px; display:flex; flex-direction:column; gap:8px;}
  .ew-lbody li{font-size:17px; line-height:1.68; color:var(--ew-text-body);}
  .ew-lbody strong{font-weight:600; color:var(--ew-text-heading);}
  .ew-lbody a{color:var(--ew-icon); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px;}
  .ew-lbody a:hover{color:var(--ew-action-hover); text-decoration-thickness:2px;}
  @media (max-width:760px){ .ew-legal{padding:30px 20px 36px; max-width:none;} .ew-lbody h2{margin-top:28px;} }
  @media (prefers-reduced-transparency: reduce){ .ew-legal{background:#FDFEFF !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;} }
  html.ew-force-opaque .ew-legal{background:#FDFEFF !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
  /* Control del Libro de Reclamaciones: ancla con el tratamiento de CTA canónico (.ew-btn--primary),
     no con el vidrio de los botones sociales. Aquí solo la colocación y el icono. */
  .ew-lrbtn{margin-top:var(--ew-space-4); gap:10px;}
  .ew-lrbtn svg{width:17px; height:17px; flex:none; fill:currentColor;}
  /* Libro de Reclamaciones: formulario agrupado, no asistente por pasos. */
  .ew-cbgrid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px;}
  @media (max-width:760px){ .ew-cbgrid{grid-template-columns:1fr;} }
  .ew-cbfield{display:flex; flex-direction:column; gap:6px;}
  .ew-cbfield label{font-size:15px; font-weight:500; color:var(--ew-text-heading);}
  .ew-cberr{font-size:14px; line-height:1.5; color:#9A2A1E; font-weight:500;}
  .ew-input[aria-invalid="true"]{border-color:#9A2A1E; box-shadow:0 0 0 2px #FFFFFF, 0 0 0 3px rgba(154,42,30,0.45);}
  .ew-cbsummary{margin-top:20px; padding:16px 18px; border-radius:var(--ew-radius); background:rgba(154,42,30,0.07); box-shadow:inset 0 0 0 2px rgba(154,42,30,0.30);}
  .ew-cbsummary a{color:#9A2A1E; font-weight:500;}
  .ew-cbgroup{margin-top:30px;}
  .ew-cbgroup > h2{margin:0 0 4px; font-size:20px; font-weight:600; letter-spacing:-0.012em; color:var(--ew-text-heading);}
  .ew-cbradios{display:flex; flex-wrap:wrap; gap:12px; margin-top:10px;}
  .ew-cbradio{display:inline-flex; align-items:center; gap:9px; min-height:44px; padding:0 16px; border-radius:var(--ew-radius); background:rgba(255,255,255,0.72); box-shadow:inset 0 1px 0 rgba(255,255,255,0.95), 0 1px 3px rgba(19,59,79,0.12); font-size:16px; color:var(--ew-text-heading); cursor:pointer;}
  .ew-cbradio input{width:18px; height:18px; accent-color:var(--ew-action);}
  .ew-cbradio:focus-within{outline:2px solid var(--ew-action); outline-offset:2px;}
  .ew-turnstile{margin-top:20px; padding:18px; border-radius:var(--ew-radius); background:rgba(19,59,79,0.045); font-size:14.5px; line-height:1.55; color:var(--ew-text-muted); text-align:center;}
  .ew-cbstate{margin-top:22px; padding:22px 24px; border-radius:var(--ew-radius); background:rgba(255,255,255,0.86); box-shadow:inset 0 1px 0 rgba(255,255,255,0.96), var(--ew-elev-1);}
  .ew-cbstate h2{margin:0; font-size:21px; font-weight:600; color:var(--ew-text-heading);}
  .ew-cbstate p{margin:12px 0 0; font-size:16.5px; line-height:1.65; color:var(--ew-text-body);}
  .ew-cbcode{display:inline-block; margin-top:14px; padding:10px 14px; border-radius:var(--ew-radius); background:rgba(19,59,79,0.06); font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:17px; font-weight:600; letter-spacing:0.02em; color:var(--ew-text-heading);}
  .ew-req-note{margin-top:8px; font-size:14.5px; color:var(--ew-text-muted);}
  .ew-sr--single{display:none;}
  @media (max-width:860px){ .ew-sr--range{display:none;} .ew-sr--single{display:block;} }
  @media (min-width:861px){ .ew-car-dots .ew-dot:last-child{display:none;} }
  .ew-sr{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;}
  @media (max-width:1000px){ .ew-car-slide{flex-basis:calc((100% - var(--ew-space-5)) / 2);} }
  @media (max-width:860px){ .ew-car-slide{flex-basis:100%;} }
  @media (max-width:600px){ .ew-proof-floor::after{background:radial-gradient(circle at 50% 50%, rgba(226,208,171,0.07) 0%, rgba(226,208,171,0) 72%) !important;} .ew-car-bar{justify-content:space-between;} .ew-car-dots{margin-left:0; flex:1 0 100%; justify-content:space-between;} }
  @media (prefers-reduced-motion: reduce){ .ew-car-viewport{scroll-behavior:auto;} }
  html.ew-no-anim .ew-car-viewport,html.ew-force-rm .ew-car-viewport{scroll-behavior:auto;}
  .ew-tavatar{width:57px; height:57px; border-radius:999px; object-fit:cover; flex:none; box-shadow:0 0 0 2px #FFFFFF, 0 0 0 3px rgba(22,183,170,0.45);}
  /* Service card: image with bottom scrim, glass title inset, grounded description; hover lifts */
  .ew-service-card{position:relative; aspect-ratio:4/5; border-radius:var(--ew-radius); overflow:hidden; background:var(--ew-surface); box-shadow:var(--ew-elev-1); isolation:isolate;}
  .ew-service-card img{position:absolute; left:0; top:-12%; width:100%; height:124%; object-fit:cover; transition:transform 520ms var(--ew-ease-soft);}
  .ew-service-text{position:absolute; left:8px; right:8px; bottom:8px; top:32%; height:auto; padding:20px; border-radius:calc(var(--ew-radius) - 3px); display:flex; flex-direction:column; justify-content:flex-end; gap:8px; color:var(--ew-text-heading); isolation:isolate;}
  .ew-service-text::before{content:''; position:absolute; inset:0; z-index:-1; border-radius:inherit; background:linear-gradient(180deg, rgba(255,255,255,0) 0px, rgba(255,255,255,0.04) calc(100% - var(--text-h, 120px) - 110px), rgba(255,255,255,0.16) calc(100% - var(--text-h, 120px) - 74px), rgba(255,255,255,0.56) calc(100% - var(--text-h, 120px) - 40px), rgba(255,255,255,0.84) calc(100% - var(--text-h, 120px) - 12px), rgba(253,254,255,0.855) calc(100% - var(--text-h, 120px)), rgba(253,254,255,0.855) 100%); -webkit-backdrop-filter:blur(12px) saturate(1.28); backdrop-filter:blur(12px) saturate(1.28); -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,0) 0px, rgba(0,0,0,0.1) calc(100% - var(--text-h, 120px) - 110px), rgba(0,0,0,0.32) calc(100% - var(--text-h, 120px) - 74px), rgba(0,0,0,0.78) calc(100% - var(--text-h, 120px) - 40px), #000 calc(100% - var(--text-h, 120px) - 12px), #000 100%); mask-image:linear-gradient(180deg, rgba(0,0,0,0) 0px, rgba(0,0,0,0.1) calc(100% - var(--text-h, 120px) - 110px), rgba(0,0,0,0.32) calc(100% - var(--text-h, 120px) - 74px), rgba(0,0,0,0.78) calc(100% - var(--text-h, 120px) - 40px), #000 calc(100% - var(--text-h, 120px) - 12px), #000 100%);}
  .ew-service-text h3,.ew-service-text p{position:relative; z-index:1; opacity:1;}
  @media (hover:hover) and (pointer:fine){ .ew-service-card:hover img{--zoom:1.06;} }
  .ew-service-card img{--zoom:1; transform:scale(var(--zoom));}
  /* Process step marker picks up the secondary */
  .ew-step-dot{position:relative; z-index:1; width:48px; height:48px; border-radius:999px; display:flex; align-items:center; justify-content:center; color:#F4FBFA; background:linear-gradient(180deg, #1FC6B8 0%, var(--ew-secondary) 55%, var(--ew-secondary-deep) 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,0.45), 0 0 0 4px var(--ew-canvas-c), 0 6px 14px -6px rgba(14,138,128,0.55); transition:box-shadow var(--ew-dur-slow) var(--ew-ease-soft), color var(--ew-dur-slow) var(--ew-ease-soft), transform var(--ew-dur-slow) var(--ew-ease-soft);}
  @media (hover:hover) and (pointer:fine){ .ew-step:hover .ew-step-dot{background:linear-gradient(180deg, rgba(255,255,255,0.80) 0%, rgba(255,255,255,0.45) 100%), linear-gradient(180deg, #5FDCD2 0%, var(--ew-secondary) 100%); color:var(--ew-secondary-deep); -webkit-backdrop-filter:blur(10px) saturate(1.4); backdrop-filter:blur(10px) saturate(1.4); box-shadow:inset 0 1px 0 #FFFFFF, inset 0 -6px 10px -8px rgba(14,138,128,0.35), 0 0 0 4px var(--ew-canvas-c), 0 10px 22px -8px rgba(14,138,128,0.55); transform:translateY(-2px);} }
  .ew-process-line{height:6px !important; border-radius:3px; top:21px !important; z-index:0; overflow:hidden; background:linear-gradient(90deg, rgba(22,183,170,0.38), rgba(22,183,170,0.55)) !important;}
  .ew-process-line::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 30%, rgba(255,255,255,0.62) 50%, rgba(255,255,255,0) 70%, rgba(255,255,255,0) 100%); background-size:50% 100%; background-repeat:no-repeat; animation:ewFlow 9s cubic-bezier(0.4,0,0.6,1) infinite;}
  @keyframes ewFlow{from{background-position:-60% 0;}to{background-position:170% 0;}}
  .ew-benefit-num{color:var(--ew-secondary-deep) !important;}
  .ew-form-grid{align-items:end;}
  .ew-proof-value{min-height:0;}
  .ew-proof-item{display:flex; flex-direction:column; justify-content:flex-start;}
  .ew-input{font-family:inherit; font-size:16px; color:var(--ew-text-heading); background:#FFFFFF; border:1px solid var(--ew-control-border); border-radius:var(--ew-radius); padding:11px 13px; min-height:44px; width:100%; transition:border-color var(--ew-dur) var(--ew-ease-soft), box-shadow var(--ew-dur) var(--ew-ease-soft), background var(--ew-dur) var(--ew-ease-soft);}
  .ew-input:focus{outline:none; border-color:var(--ew-action); box-shadow:0 0 0 2px #FFFFFF, 0 0 0 4px var(--ew-action);}
  .ew-footlink{display:flex; align-items:center; gap:var(--ew-space-2); min-height:36px; white-space:nowrap; font-size:15px; font-weight:400; color:var(--ew-text-body); text-decoration:none; transition:color var(--ew-dur) var(--ew-ease-soft), transform var(--ew-dur) var(--ew-ease-soft);}
  @media (hover:hover) and (pointer:fine){ .ew-footlink:hover{transform:translateX(3px);} }
  .ew-footlink:hover{color:var(--ew-action-hover);}
  /* Familia de controles de vidrio: sociales, hamburguesa y navegación del carrusel comparten
     material e interacción. Hover hundido, pulsación más marcada, border:0, sin perímetro. */
  .ew-social,.ew-burger,.ew-car-nav{position:relative; display:inline-flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; border:0; border-radius:var(--ew-radius); cursor:pointer; color:var(--ew-icon); background:linear-gradient(180deg, rgba(255,255,255,0.70) 0%, rgba(250,252,254,0.50) 100%); -webkit-backdrop-filter:blur(18px) saturate(1.32); backdrop-filter:blur(18px) saturate(1.32); box-shadow:inset 0 1px 0 rgba(255,255,255,0.96), inset 0 -6px 12px -7px rgba(19,59,79,0.20), 0 2px 8px rgba(19,59,79,0.099), 0 16px 43px -16px rgba(19,59,79,0.207); transition:box-shadow var(--ew-dur) var(--ew-ease-soft), color var(--ew-dur) var(--ew-ease-soft), transform 130ms var(--ew-ease-soft);}
  @media (hover:hover) and (pointer:fine){
    .ew-social:hover,.ew-burger:hover,.ew-car-nav:not([disabled]):hover{color:var(--ew-action); transform:translateY(0.5px) scale(0.994); box-shadow:inset 0 1px 2px rgba(19,59,79,0.15), inset 0 -1px 0 rgba(255,255,255,0.96), 0 1px 3px rgba(19,59,79,0.108);}
  }
  .ew-social:active,.ew-burger:active,.ew-car-nav:not([disabled]):active{transform:translateY(1px) scale(0.978); box-shadow:inset 0 2px 5px rgba(19,59,79,0.22), inset 0 -1px 0 rgba(255,255,255,0.68);}
  .ew-social:focus-visible,.ew-burger:focus-visible,.ew-car-nav:focus-visible{outline:2px solid var(--ew-action); outline-offset:2px;}
  /* v9.1 Defecto 4. Los trazos de estos iconos llegan al borde de su viewBox 0 0 16 16 y se
     dibujan a 21/16 y 20/16, escalas fraccionarias; con el scale() del hover, Firefox redondea el
     recorte propio del SVG (overflow:hidden por defecto) y raspa ~2 px del borde derecho. El SVG
     deja de recortar su propio lienzo: la geometría, el tamaño y el centrado no cambian. */
  .ew-social svg,.ew-car-nav svg,.ew-lrbtn svg{overflow:visible;}
  /* Sobre un padre de vidrio no se acumula vidrio (apple-design §12): el control suelta su
     backdrop-filter y el material lo sostienen el relleno y las luces internas. */
  .ew-glass-elevated .ew-social,.ew-glass-standard .ew-social,.ew-glass-elevated .ew-burger,.ew-glass-elevated .ew-car-nav{-webkit-backdrop-filter:none; backdrop-filter:none; background:linear-gradient(180deg, rgba(255,255,255,0.78) 0%, rgba(250,252,254,0.56) 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,0.96), inset 0 -6px 12px -7px rgba(19,59,79,0.20), 0 2px 8px rgba(19,59,79,0.099), 0 16px 43px -16px rgba(19,59,79,0.198);}
  @media (hover:hover) and (pointer:fine){
    .ew-glass-elevated .ew-social:hover,.ew-glass-standard .ew-social:hover,.ew-glass-elevated .ew-burger:hover{background:linear-gradient(180deg, rgba(255,255,255,0.90) 0%, rgba(250,252,254,0.70) 100%); box-shadow:inset 0 1px 2px rgba(19,59,79,0.16), inset 0 -1px 0 rgba(255,255,255,0.98), 0 1px 3px rgba(19,59,79,0.108);}
  }
  .ew-glass-elevated .ew-social:active,.ew-glass-standard .ew-social:active,.ew-glass-elevated .ew-burger:active{background:linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(250,252,254,0.76) 100%); box-shadow:inset 0 2px 5px rgba(19,59,79,0.22), inset 0 -1px 0 rgba(255,255,255,0.90);}
  .ew-car-nav{-webkit-backdrop-filter:blur(18px) saturate(1.32); backdrop-filter:blur(18px) saturate(1.32); background:linear-gradient(180deg, rgba(255,255,255,0.78) 0%, rgba(250,252,254,0.56) 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,0.96), inset 0 -6px 12px -7px rgba(19,59,79,0.20), 0 2px 8px rgba(19,59,79,0.099), 0 16px 43px -16px rgba(19,59,79,0.198);}
  @media (hover:hover) and (pointer:fine){
    .ew-car-nav:not([disabled]):hover{background:linear-gradient(180deg, rgba(255,255,255,0.90) 0%, rgba(250,252,254,0.70) 100%); box-shadow:inset 0 1px 2px rgba(19,59,79,0.16), inset 0 -1px 0 rgba(255,255,255,0.95), 0 1px 3px rgba(19,59,79,0.108);}
  }
  .ew-car-nav:not([disabled]):active{background:linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(250,252,254,0.76) 100%); box-shadow:inset 0 2px 5px rgba(19,59,79,0.22), inset 0 -1px 0 rgba(255,255,255,0.90);}
  @media (prefers-reduced-motion: reduce){ .ew-social,.ew-burger,.ew-car-nav{transition:box-shadow var(--ew-dur) linear, color var(--ew-dur) linear;} .ew-social:hover,.ew-burger:hover,.ew-car-nav:hover,.ew-social:active,.ew-burger:active,.ew-car-nav:active{transform:none;} }
  .ew-social:focus-visible,.ew-faq-btn:focus-visible,.ew-btn:focus-visible,.ew-navlink:focus-visible,.ew-footlink:focus-visible{outline:2px solid var(--ew-action); outline-offset:2px;}
  .ew-faq-btn{width:100%; font-family:inherit; text-align:left; background:transparent; border:0; padding:17px 20px; cursor:pointer; display:flex; align-items:center; gap:var(--ew-space-4); min-height:56px; color:inherit; transition:background var(--ew-dur) var(--ew-ease-soft);}
  @media (hover:hover) and (pointer:fine){ .ew-faq-btn:hover{background:rgba(255,255,255,0.40);} }
  /* Sin animaciones de entrada de un solo disparo: en este runtime se congelan en su
     fotograma 0%, que es un estado oculto. La visibilidad en reposo no puede depender
     de movimiento. Las clases se conservan como anclas de auditoría. */
  .ew-mo-surface,.ew-mo-disclose{opacity:1;}
  .ew-faq-answer{display:grid; grid-template-rows:0fr; transition:grid-template-rows 460ms var(--ew-ease-soft);}
  .ew-faq-answer[data-open="true"]{grid-template-rows:1fr;}
  .ew-faq-answer > div{overflow:hidden; min-height:0;}
  .ew-faq-answer > div > div{padding:0 56px 20px 20px; opacity:0; transform:translateY(-3px); transition:opacity 420ms var(--ew-ease-soft), transform 460ms var(--ew-ease-soft);}
  .ew-faq-answer[data-open="true"] > div > div{opacity:1; transform:none;}
  .ew-burger{position:relative; display:none;}
  .ew-burger-line{position:absolute; left:13px; width:18px; height:2px; border-radius:1px; background:var(--ew-text-heading); transition:transform 260ms var(--ew-ease-surface), opacity 170ms var(--ew-ease-soft);}
  .ew-burger-line:nth-of-type(1){top:15px;}
  .ew-burger-line:nth-of-type(2){top:21px;}
  .ew-burger-line:nth-of-type(3){top:27px;}
  .ew-burger[aria-expanded="true"] .ew-burger-line:nth-of-type(1){transform:translateY(6px) rotate(45deg);}
  .ew-burger[aria-expanded="true"] .ew-burger-line:nth-of-type(2){opacity:0; transform:scaleX(0.35);}
  .ew-burger[aria-expanded="true"] .ew-burger-line:nth-of-type(3){transform:translateY(-6px) rotate(-45deg);}
  .ew-mopanel{display:grid; grid-template-rows:0fr; opacity:0; visibility:hidden; transition:grid-template-rows 280ms var(--ew-ease-surface), opacity 200ms var(--ew-ease-soft), visibility 0s linear 280ms;}
  .ew-mopanel[data-open="true"]{grid-template-rows:1fr; opacity:1; visibility:visible; transition-delay:0s,0s,0s;}
  .ew-mopanel > div{overflow:hidden; min-height:0;}
  .ew-faq-sign{position:relative; display:block; width:15px; height:15px;}
  .ew-faq-sign::before,.ew-faq-sign::after{content:''; position:absolute; background:currentColor; border-radius:1px; transition:transform 460ms var(--ew-ease-soft), opacity 420ms var(--ew-ease-soft);}
  .ew-faq-sign::before{top:6.5px; left:0; width:15px; height:2px;}
  .ew-faq-sign::after{left:6.5px; top:0; width:2px; height:15px;}
  .ew-faq-btn[aria-expanded="true"] .ew-faq-sign::after{transform:scaleY(0); opacity:0;}
  .ew-faq-btn[aria-expanded="true"] .ew-faq-sign::before{transform:rotate(180deg);}
  .ew-faq-btn:active{background:rgba(255,255,255,0.55);}
  /* .ew-social salió de aquí: esta regla precede a la familia de controles y, con la misma
     especificidad y una posición posterior, anulaba su pulsación hundida. */
  .ew-footlink:active{transform:scale(0.97);}
  @media (hover:none){ .ew-navlink:hover,.ew-footlink:hover{background:transparent;} }
  @media (prefers-reduced-motion: reduce){
    .ew-service-card img,.ew-benefit-card,.ew-service-text,.ew-step-dot{transition:none !important;}
    .ew-orb,.ew-process-line::after{animation:none !important;}
    .ew-navlink,.ew-btn,.ew-input,.ew-social,.ew-footlink,.ew-faq-btn{transition:none !important;}
  }
  @media (prefers-reduced-transparency: reduce){
    .ew-glass-subtle,.ew-glass-standard,.ew-glass-elevated{background:#F1F6FA !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
  }
  @supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
    .ew-glass-subtle,.ew-glass-standard,.ew-glass-elevated{background:#F1F6FA !important;}
  }
  @media (max-width:1000px){
    /* La navegación por hamburguesa cubre todo el rango de tableta, no solo hasta 760 px. */
    .ew-navlinks{display:none !important;}
    .ew-burger{display:inline-flex !important; margin-left:auto;}
    .ew-benefits{grid-template-columns:repeat(2,1fr) !important;}
    .ew-services{grid-template-columns:repeat(2,1fr) !important;}
    .ew-benefits > *{padding-top:0 !important;}
  }
  @media (max-width:860px){
    .ew-proof{grid-template-columns:1fr 1fr !important;}
    .ew-proof-item + .ew-proof-item{border-left:0 !important;}
    .ew-proof-item{border-top:1px solid rgba(19,59,79,0.16);}
    .ew-proof-item:first-child, .ew-proof-item:nth-child(2){border-top:0;}
    .ew-proof-value{min-height:0 !important;}
    .ew-tgrid{grid-template-columns:1fr !important;}
    .ew-contact{grid-template-columns:1fr !important;}
    .ew-foot{grid-template-columns:1fr 1fr !important;}
    .ew-process-line{display:none !important;}
    .ew-process{grid-template-columns:1fr 1fr !important; row-gap:var(--ew-space-5) !important;}
    .ew-about-body{margin-top:-120px !important; max-width:none !important; margin-right:0 !important;}
    .ew-about-img{height:380px !important;}
  }
  /* Tablet: el panel del Hero baja 25 px, así que solapa la sección siguiente 25 px más. */
  @media (min-width:761px) and (max-width:1000px){
    .ew-hero-surface{top:auto !important; bottom:calc(var(--ew-hero-cross) * -1) !important;}
    .ew-about-body{width:90% !important; max-width:90% !important; margin-left:auto !important; margin-right:auto !important;}
  }
  @media (max-width:760px){
    .ew-hero-surface{position:relative !important; top:auto !important; left:auto !important; right:auto !important; width:auto !important; bottom:auto !important; margin:-94px 16px 0 !important;}
    .ew-form-grid{grid-template-columns:1fr !important;}
    .ew-services{grid-template-columns:1fr !important;}
    .ew-service-card{aspect-ratio:4/4.4 !important;}
    .ew-step-dot{width:44px !important; height:44px !important;}
    #proof{padding-top:77px !important;}
  }
  @media (max-width:600px){
    .ew-benefits{grid-template-columns:1fr !important;}
    .ew-proof{grid-template-columns:1fr !important;}
    .ew-proof-item:nth-child(2){border-top:1px solid rgba(19,59,79,0.16) !important;}
    .ew-process{grid-template-columns:1fr !important;}
    .ew-foot{grid-template-columns:1fr !important;}
    .ew-pad{padding-left:18px !important; padding-right:18px !important;}
    header.ew-glass-elevated{width:calc(100% - 20px) !important;}
    /* Móvil: la imagen de About va a sangre completa y sin radio; el contenido flotante conserva el suyo. */
    .ew-about-img{border-radius:0 !important; width:100vw !important; max-width:100vw !important; margin-left:calc(50% - 50vw) !important;}
  }
  /* ===== Consentimiento: banner, panel de preferencias, contenido externo =====
     Material y movimiento tomados de los tokens compartidos de Stage B v6 (glassElevated,
     --ew-elev-*, --ew-dur-*, --ew-ease-*). No se reescriben valores aproximados. */
  :root{
    /* Reservado para la integración futura del FloatingWhatsAppButton. Sin botón renderizado. */
    --floating-action-obstruction-offset:0px;
    --ew-consent-layer:190;
    --ew-prefs-layer:200;
  }
  .ew-consent{position:fixed; left:50%; bottom:24px; transform:translateX(-50%); width:calc(100% - 48px); max-width:720px; z-index:var(--ew-consent-layer); padding:22px 26px 20px; border:0;}
  /* Sin animación de entrada: el runtime re-renderiza esta Landing de forma continua (paralaje,
     revelado por IntersectionObserver, temporizador de testimonios) y una animación de un solo
     disparo se reiniciaría en cada render, dejando la superficie en su fotograma 0. La visibilidad
     en reposo no puede depender de movimiento. */
  .ew-consent{opacity:1;}
  .ew-consent-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;}
  .ew-consent-actions .ew-btn{flex:1 1 auto; min-width:180px;}
  .ew-prefs-backdrop{position:fixed; inset:0; z-index:var(--ew-prefs-layer); display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(19,59,79,0.36); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); opacity:1;}
  .ew-prefs{width:100%; max-width:560px; max-height:calc(100dvh - 48px); display:flex; flex-direction:column; border:0; padding:0; overflow:hidden; opacity:1; background:rgba(250,252,254,0.85);}
  .ew-prefs-head{padding:24px 26px 0; display:flex; align-items:flex-start; justify-content:space-between; gap:16px;}
  .ew-prefs-body{padding:16px 26px 2px; overflow-y:auto; -webkit-overflow-scrolling:touch;}
  .ew-prefs-foot{padding:18px 26px 22px; display:flex; justify-content:flex-end;}
  .ew-prefs-close{flex:none; width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:var(--ew-radius); background:transparent; color:var(--ew-text-body); cursor:pointer; transition:background var(--ew-dur) var(--ew-ease-soft), color var(--ew-dur) var(--ew-ease-soft);}
  @media (hover:hover) and (pointer:fine){ .ew-prefs-close:hover{background:rgba(19,59,79,0.06); color:var(--ew-action);} }
  .ew-cat{display:flex; gap:18px; align-items:flex-start; justify-content:space-between; padding:16px 0;}
  .ew-cat + .ew-cat{border-top:1px solid var(--ew-rule);}
  .ew-switch{flex:none; position:relative; width:56px; height:44px; min-height:44px; padding:0; border:0; background:transparent; cursor:pointer;}
  .ew-switch::before{content:''; position:absolute; left:0; top:7px; width:52px; height:30px; border-radius:999px; background:rgba(19,59,79,0.24); box-shadow:inset 0 1px 3px rgba(19,59,79,0.24); transition:background var(--ew-dur) var(--ew-ease-soft);}
  .ew-switch::after{content:''; position:absolute; left:4px; top:12px; width:20px; height:20px; border-radius:999px; background:#FFFFFF; box-shadow:0 1px 4px rgba(19,59,79,0.306); transition:transform var(--ew-dur-disclose) var(--ew-ease-surface);}
  .ew-switch[aria-checked="true"]::before{background:var(--ew-secondary-deep);}
  .ew-switch[aria-checked="true"]::after{transform:translateX(24px);}
  .ew-switch[aria-disabled="true"]{cursor:default;}
  .ew-switch:focus-visible{outline:2px solid var(--ew-action); outline-offset:2px; border-radius:var(--ew-radius);}
  .ew-prefs-close:focus-visible{outline:2px solid var(--ew-action); outline-offset:2px;}
  .ew-extph{position:relative; overflow:hidden; border-radius:var(--ew-radius); padding:var(--ew-space-6) var(--ew-space-5); min-height:220px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:12px;}
  .ew-extph::before{content:''; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(135deg, rgba(19,59,79,0.055) 0 10px, rgba(19,59,79,0) 10px 22px);}
  .ew-extph > *{position:relative; z-index:1;}
  .ew-extph-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:4px;}
  button.ew-footlink{font-family:inherit; background:transparent; border:0; padding:0; text-align:left; cursor:pointer; width:100%;}
  /* Respaldo de transparencia reducida y de contraste alto para las superficies de consentimiento */
  @media (prefers-reduced-transparency: reduce){
    .ew-consent,.ew-prefs{background:#F1F6FA !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
    .ew-prefs-backdrop{background:rgba(19,59,79,0.52) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
  }
  @media (prefers-contrast: more){
    .ew-consent,.ew-prefs{background:#FFFFFF !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; box-shadow:0 0 0 1px var(--ew-text-heading) !important;}
  }
  html.ew-force-opaque .ew-glass-subtle,html.ew-force-opaque .ew-glass-standard,html.ew-force-opaque .ew-glass-elevated,html.ew-force-opaque .ew-consent,html.ew-force-opaque .ew-prefs,html.ew-force-opaque .ew-note,html.ew-force-opaque .ew-tcard{background:#F1F6FA !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
  html.ew-force-opaque .ew-prefs-backdrop{background:rgba(19,59,79,0.52) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
  html.ew-force-rm *,html.ew-force-rm *::before,html.ew-force-rm *::after{transition:none !important; animation:none !important;}
  /* Reloj de animación detenido (host sin fotogramas): toda transición se pinaría en su
     fotograma 0, que en un cambio de estado in situ es el estado ANTERIOR — la FAQ no abriría,
     el signo +/− no giraría. Sin transiciones, cada cambio aplica su valor final al instante. */
  html.ew-no-anim *,html.ew-no-anim *::before,html.ew-no-anim *::after{transition:none !important; animation:none !important;}
  @media (prefers-reduced-motion: reduce){
    .ew-switch::after{transition:none !important;}
  }
  @media (max-width:600px){
    .ew-consent{left:16px; right:16px; transform:none; width:auto; max-width:none; bottom:calc(16px + env(safe-area-inset-bottom)); padding:20px 18px 18px;}
    .ew-consent-actions .ew-btn{flex:1 1 100%; min-width:0;}
    .ew-prefs-backdrop{padding:16px; align-items:flex-end;}
    .ew-prefs{max-height:calc(100dvh - 32px);}
    .ew-prefs-head{padding:20px 18px 0;}
    .ew-prefs-body{padding:14px 18px 2px;}
    .ew-prefs-foot{padding:16px 18px 20px;}
    .ew-prefs-foot .ew-btn{width:100%;}
    .ew-extph{padding:var(--ew-space-5) var(--ew-space-4);}
    .ew-extph-actions .ew-btn{flex:1 1 100%;}
  }

  /* ===== Informativa v1 adiciones sobre el sistema azul aprobado ===== */
  /* Enlace de salto: primer elemento enfocable con significado. Oculto hasta el foco. */
  .ew-skip{position:fixed; left:16px; top:-96px; z-index:300; padding:12px 18px; border-radius:var(--ew-radius); background:#FFFFFF; color:var(--ew-action); font-size:15px; font-weight:600; text-decoration:none; box-shadow:var(--ew-elev-2); transition:top 180ms var(--ew-ease-soft);}
  .ew-skip:focus{top:96px; outline:2px solid var(--ew-action); outline-offset:2px;}
  @media (prefers-reduced-motion: reduce){ .ew-skip{transition:none;} }
  main:focus-visible,h1:focus-visible,h2:focus-visible{outline:2px solid var(--ew-action); outline-offset:6px; border-radius:6px;}
  /* Migas derivadas. Nunca en Inicio. La página actual es texto, no enlace. */
  .ew-crumbs{display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:14px; color:var(--ew-text-muted);}
  .ew-crumbs a{color:var(--ew-icon); text-decoration:none;}
  .ew-crumbs a:hover{color:var(--ew-action-hover); text-decoration:underline; text-underline-offset:2px;}
  .ew-crumbs svg{width:11px; height:11px; fill:currentColor; opacity:0.55;}
  .ew-crumbs [aria-current="page"]{color:var(--ew-text-body); font-weight:500;}
  /* PageHeaderMedia el panel cruza hacia la sección siguiente, igual que el Hero de Inicio.
     El cruce se ancla al borde INFERIOR del panel mediante --ew-phm-cross, así la distancia es
     constante y no depende del alto del panel ni del largo del título o la introducción. El
     recorte con radio vive en .ew-phm-media, no en .ew-phm, para que el panel pueda sobresalir. */
  :root{ --ew-phm-cross:88px; }
  .ew-phm{position:relative;}
  .ew-phm-media{border-radius:var(--ew-radius); overflow:hidden; box-shadow:var(--ew-elev-2);}
  .ew-phm-img{display:block; width:100%; height:clamp(340px,40vw,520px); object-fit:cover;}
  .ew-phm-panel{position:absolute; left:24px; right:24px; bottom:calc(var(--ew-phm-cross) * -1); padding:26px 30px 28px; max-width:720px;}
  /* La sección siguiente reserva el cruce completo más aire de lectura. */
  .ew-after-phm{padding-top:calc(var(--ew-phm-cross) + 62px) !important;}
  .ew-phm h1{margin:0; font-size:clamp(30px,3.6vw,42px); font-weight:700; letter-spacing:-0.022em; line-height:1.08; color:var(--ew-text-heading); text-wrap:pretty;}
  .ew-phm p{margin:12px 0 0; font-size:17px; line-height:1.6; color:var(--ew-text-body); max-width:56ch; text-wrap:pretty;}
  @media (max-width:760px){ .ew-phm{margin-left:calc(50% - 50vw); width:100vw; max-width:100vw;} .ew-phm-media{border-radius:0;} .ew-phm-img{height:300px;} .ew-phm-panel{position:relative; left:auto; right:auto; bottom:auto; margin:-72px 14px 0; max-width:none;} .ew-after-phm{padding-top:var(--ew-space-7) !important;} }
  /* PageHeaderText sin imagen canónica, así que sin vidrio: nada flota sobre nada. La
     jerarquía la sostienen la escala, el filo de luz y el aire, no un material prestado. */
  .ew-pht{position:relative; padding:8px 0 0;}
  .ew-pht h1{margin:0; font-size:clamp(32px,4vw,46px); font-weight:700; letter-spacing:-0.024em; line-height:1.06; color:var(--ew-text-heading); max-width:20ch; text-wrap:pretty;}
  .ew-pht p{margin:16px 0 0; font-size:18px; line-height:1.62; color:var(--ew-text-body); max-width:58ch; text-wrap:pretty;}
  /* Servicios una sola rejilla, tres modos, sin igualar altura con espacio vacío. */
  /* ServiceItem, variante `image`: misma composición que la BenefitCard de Landing v9.1 —caja de
     medio 4:3 pegada a los cantos superior, izquierdo y derecho, recorte absoluto top:-12%/124%,
     texto con relleno solo debajo— sin la insignia de posición, porque Servicios no tiene campo de
     posición derivada. Esta corrección sustituye la tarjeta 4:5 con plano de vidrio: el encargo fija
     4:3 horizontal para Servicios y prohíbe el recorte editorial vertical. */
  .ew-svc-media{position:relative; aspect-ratio:4/3; overflow:hidden;}
  .ew-svc-media img{display:block; position:absolute; left:0; top:-12%; width:100%; height:124%; object-fit:cover;}
  .ew-svc-body{padding:20px var(--ew-space-4) var(--ew-space-4);}
  .ew-svc-body h3{margin:0; font-size:21px; font-weight:600; line-height:1.28; letter-spacing:-0.012em; color:var(--ew-text-heading); text-wrap:pretty;}
  .ew-svc-body p{margin:6px 0 0; font-size:15px; line-height:1.55; color:var(--ew-text-body); text-wrap:pretty;}
  /* Valores el título y la introducción dejan de flotar sobre la lista y pasan a ser una
     columna fija que la acompaña: la relación entre encabezado e ítems se ve, no se supone.
     Seis ítems en dos columnas llenan tres filas exactas, sin columna vacía ni hueco sobrante.
     Sin icono, sin número, sin insignia: el contrato solo da título y descripción. */
  .ew-values-wrap{display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:var(--ew-space-6) var(--ew-space-7); align-items:start; margin-top:var(--ew-space-6);}
  .ew-values-head{position:sticky; top:118px;}
  .ew-values-head .ew-h2{margin:0;}
  .ew-values-head .ew-intro{margin:14px 0 0; max-width:34ch;}
  .ew-values{display:grid; grid-template-columns:1fr 1fr; gap:var(--ew-space-4);}
  .ew-value{padding:24px 26px 26px; border-radius:var(--ew-radius); border:0; background:var(--ew-surface); box-shadow:var(--ew-elev-1);}
  .ew-value h3{margin:0; font-size:19.5px; font-weight:600; line-height:1.26; color:var(--ew-text-heading); letter-spacing:-0.014em; text-wrap:pretty;}
  .ew-value p{margin:9px 0 0; font-size:15.5px; line-height:1.62; color:var(--ew-text-body); max-width:46ch; text-wrap:pretty;}
  @media (max-width:1000px){ .ew-values-wrap{grid-template-columns:1fr; gap:var(--ew-space-5);} .ew-values-head{position:static;} .ew-values-head .ew-intro{max-width:56ch;} }
  @media (max-width:640px){ .ew-values{grid-template-columns:1fr;} }
  /* Equipo tarjetas no interactivas, foto 1:1 pegada a tres cantos. */
  /* Cada fila de la rejilla iguala su propia altura por estiramiento normal de CSS Grid: sin
     alto fijo, sin recorte de biografía. Filas distintas conservan alturas distintas. */
  .ew-team{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--ew-space-5); margin-top:var(--ew-space-6); align-items:stretch;}
  @media (max-width:1000px){ .ew-team{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:760px){ .ew-team{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:460px){ .ew-team{grid-template-columns:1fr;} }
  .ew-member{border-radius:var(--ew-radius); overflow:hidden; background:var(--ew-surface); box-shadow:var(--ew-elev-1); border:0; height:100%; display:flex; flex-direction:column;}
  .ew-member img{display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; flex:none;}
  .ew-member-body{padding:16px 18px 20px; flex:1 1 auto;}
  @media (max-width:460px){ .ew-member{height:auto;} }
  .ew-member h3{margin:0; font-size:17px; font-weight:600; color:var(--ew-text-heading);}
  .ew-member .ew-role{margin:3px 0 0; font-size:14.5px; color:var(--ew-secondary-text); font-weight:500;}
  .ew-member .ew-bio{margin:10px 0 0; font-size:14.5px; line-height:1.58; color:var(--ew-text-body);}
  /* Galería rejilla 4:3, pie fuera del marco, disparador semántico. */
  .ew-gal{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--ew-space-4); margin-top:var(--ew-space-6);}
  @media (max-width:1100px){ .ew-gal{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:760px){ .ew-gal{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:460px){ .ew-gal{grid-template-columns:1fr;} }
  .ew-galitem{display:flex; flex-direction:column; gap:9px;}
  .ew-galbtn{padding:0; border:0; background:transparent; border-radius:var(--ew-radius); overflow:hidden; cursor:pointer; display:block; box-shadow:var(--ew-elev-1); transition:box-shadow var(--ew-dur-slow) var(--ew-ease-soft), transform var(--ew-dur-slow) var(--ew-ease-soft);}
  .ew-galbtn img{display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover;}
  @media (hover:hover) and (pointer:fine){ .ew-galbtn:hover{transform:translateY(-4px); box-shadow:var(--ew-elev-2);} }
  .ew-galbtn:active{transform:translateY(0) scale(0.99);}
  .ew-galbtn:focus-visible{outline:2px solid var(--ew-action); outline-offset:3px;}
  .ew-galcap{font-size:14.5px; line-height:1.55; color:var(--ew-text-body);}
  @media (prefers-reduced-motion: reduce){ .ew-galbtn{transition:none;} .ew-galbtn:hover,.ew-galbtn:active{transform:none;} }
  /* Lightbox propuesta de presentación, pendiente de aprobación visual. */
  /* Desenfoque de fondo de 5 px exactos. El velo oscuro translúcido sostiene la separación por
     sí solo cuando backdrop-filter no está soportado; el contenido del lightbox no se desenfoca. */
  .ew-lb{position:fixed; inset:0; z-index:210; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(19,59,79,0.62); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px);}
  @supports not ((backdrop-filter:blur(5px)) or (-webkit-backdrop-filter:blur(5px))){ .ew-lb{background:rgba(19,59,79,0.82);} }
  .ew-lb-panel{position:relative; max-width:min(1080px,100%); max-height:calc(100dvh - 48px); display:flex; flex-direction:column; gap:14px;}
  .ew-lb-panel img{display:block; max-width:100%; max-height:calc(100dvh - 190px); object-fit:contain; border-radius:var(--ew-radius); box-shadow:var(--ew-elev-2);}
  .ew-lb-bar{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
  .ew-lb-cap{flex:1 1 320px; min-width:0; font-size:15px; line-height:1.55; color:#EAF3F8;}
  .ew-lb-btn{width:44px; height:44px; min-width:44px; border:0; border-radius:var(--ew-radius); background:rgba(255,255,255,0.92); color:var(--ew-action); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--ew-elev-1);}
  .ew-lb-btn svg{width:17px; height:17px; fill:currentColor; overflow:visible;}
  .ew-lb-btn:focus-visible{outline:2px solid #FFFFFF; outline-offset:3px;}
  .ew-lb-btn[disabled]{opacity:0.45; cursor:default;}
  @media (prefers-reduced-transparency: reduce){ .ew-lb{background:rgba(19,59,79,0.94); -webkit-backdrop-filter:none; backdrop-filter:none;} }
  html.ew-force-opaque .ew-lb{background:rgba(19,59,79,0.94); -webkit-backdrop-filter:none; backdrop-filter:none;}
  /* Historia una sola composición, no dos columnas ajenas. La fotografía 4:3 ocupa la columna
     estrecha y acompaña la lectura en posición pegajosa; la superficie opaca de texto se solapa
     48 px sobre ella y arranca más arriba, de modo que las dos piezas se leen como un mismo
     objeto en capas. La imagen no es vidrio, así que no hay vidrio sobre vidrio. */
  .ew-story{display:grid; grid-template-columns:minmax(0,46fr) minmax(0,66fr); align-items:start; margin-top:var(--ew-space-6);}
  .ew-prose{grid-column:2; grid-row:1; position:relative; z-index:1; margin-left:calc(var(--ew-space-6) * -1); background:var(--ew-surface); border-radius:var(--ew-radius); box-shadow:var(--ew-elev-2); padding:34px 38px 38px;}
  /* Frontera de tableta unificada con el resto del pase: 1024 px. */
  @media (max-width:1024px){
    .ew-story{grid-template-columns:1fr;}
    .ew-prose{grid-column:1; grid-row:auto; margin-left:0;}
  }
  @media (max-width:600px){ .ew-prose{padding:24px 20px 28px;} }
  .ew-prose h2{margin:0; font-size:26px; font-weight:600; letter-spacing:-0.016em; line-height:1.18; color:var(--ew-text-heading);}
  .ew-prose h3{margin:26px 0 0; font-size:18px; font-weight:600; color:var(--ew-text-heading);}
  .ew-prose p{margin:14px 0 0; font-size:16.5px; line-height:1.72; color:var(--ew-text-body); max-width:66ch; text-wrap:pretty;}
  .ew-prose ul{margin:14px 0 0; padding-left:20px; display:flex; flex-direction:column; gap:7px;}
  .ew-prose li{font-size:16.5px; line-height:1.66; color:var(--ew-text-body);}
  .ew-storyfig{grid-column:1; grid-row:1; position:sticky; top:118px; margin:0; padding-top:46px;}
  .ew-storyfig img{display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--ew-radius); box-shadow:var(--ew-elev-1);}
  .ew-storyfig figcaption{margin-top:10px; font-size:14px; line-height:1.55; color:var(--ew-text-muted); max-width:34ch;}
  /* Tableta y móvil: el solape de escritorio y sus márgenes negativos dejaban la fotografía
     desalineada y pegada al texto. Aquí las dos piezas van en flujo normal, con el mismo ancho
     de columna, la misma alineación lateral y una separación vertical explícita. */
  @media (max-width:1024px){
    /* La prosa precede a la figura en el DOM, así que la separación vertical va sobre la figura. */
    .ew-storyfig{grid-column:1; grid-row:auto; position:static; padding-top:0; width:100%; margin-top:28px;}
    .ew-storyfig img{width:100%; height:auto; aspect-ratio:4/3; object-fit:cover;}
    .ew-storyfig figcaption{max-width:none;}
    .ew-prose{margin:0; width:100%; max-width:none;}
  }
  @media (max-width:600px){
    .ew-storyfig{margin-top:22px;}
  }
  /* Misión y visión el contrato no da imagen ni icono, así que el carácter lo ponen la escala
     tipográfica, la atmósfera del plano y una luz de canto. Nada decorativo se inventa. Las dos
     tarjetas se equilibran por estiramiento de rejilla, sin alto fijo que recorte el texto largo. */
  .ew-purpose{display:grid; grid-template-columns:1fr 1fr; gap:var(--ew-space-5); margin-top:var(--ew-space-6); align-items:stretch;}
  @media (max-width:760px){ .ew-purpose{grid-template-columns:1fr;} }
  .ew-purpose > div{position:relative; overflow:hidden; padding:34px 36px 38px; border-radius:var(--ew-radius); border:0; background:var(--ew-surface); box-shadow:var(--ew-elev-2);}
  .ew-purpose > div::before{content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(120% 130% at 6% 0%, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0) 42%), radial-gradient(90% 120% at 100% 108%, rgba(10,96,152,0.11) 0%, rgba(10,96,152,0) 60%);}
  .ew-purpose > div::after{content:''; position:absolute; left:0; right:0; top:0; height:1px; pointer-events:none; background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.95) 26%, rgba(255,255,255,0.55) 100%);}
  .ew-purpose h2,.ew-purpose p{position:relative; z-index:1;}
  .ew-purpose h2{margin:0; font-size:clamp(24px,2.4vw,28px); font-weight:600; line-height:1.16; letter-spacing:-0.018em; color:var(--ew-text-heading);}
  .ew-purpose p{margin:14px 0 0; font-size:17px; line-height:1.68; color:var(--ew-text-body); max-width:48ch; text-wrap:pretty;}
  /* CTA final mismo componente en tres páginas, con aire propio en cada una. */
  /* FinalCta una sola superficie de vidrio elevada, con el contenido centrado sobre el eje
     vertical y el material de gradientes repartido a AMBOS costados. El centro queda limpio y
     con la superficie aprobada íntegra, así que el contraste de lectura no depende del efecto.
     Todos los tintes se derivan de las variables de plantilla mediante `color-mix`: si el
     cliente cambia --ew-action, --ew-secondary, --ew-icon o --ew-surface, el CTA cambia con él. */
  /* La sombra es la del sistema: la misma única elevación de `.ew-glass-elevated` que llevan el
     Footer y el resto de superficies elevadas. No se declara sombra propia. */
  .ew-finalcta{position:relative; overflow:hidden; padding:46px 40px 48px; border:0; background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none;}
  /* Capa A la superficie aprobada: tinte y desenfoque de `.ew-glass-elevated` con el filo de
     luz superior del sistema. Plena en el centro, se aligera hacia los dos costados para dejar
     paso al material. */
  .ew-finalcta::before{content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:
      linear-gradient(180deg, rgba(255,255,255,0.86) 0px, rgba(255,255,255,0.34) 1px, rgba(255,255,255,0.09) 18px, rgba(255,255,255,0) 36px),
      linear-gradient(0deg, color-mix(in oklab, var(--ew-surface) 34%, transparent) 0%, color-mix(in oklab, var(--ew-surface) 34%, transparent) 100%);
    -webkit-backdrop-filter:blur(14px) saturate(1.42); backdrop-filter:blur(14px) saturate(1.42);
    -webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0.78) 20%, rgba(0,0,0,1) 38%, rgba(0,0,0,1) 62%, rgba(0,0,0,0.78) 80%, rgba(0,0,0,0.30) 100%);
    mask-image:linear-gradient(90deg, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0.78) 20%, rgba(0,0,0,1) 38%, rgba(0,0,0,1) 62%, rgba(0,0,0,0.78) 80%, rgba(0,0,0,0.30) 100%);}
  /* Capa B gradientes a los lados. Dos racimos espejados —azul de acción arriba, cian
     secundario abajo— de radio amplio y centro fuera del marco, para que se lean como lavado
     de color y no como arcos. Más transparentes que el centro y con desenfoque ligero de 9 px
     frente a los 34 px de la capa A. Sin destello diagonal, sin volumen, sin filo, sin
     animación, sin marcado semántico propio. El filo de luz superior lo pone la capa A. */
  .ew-finalcta::after{content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:
      radial-gradient(78% 132% at -16% 28%, color-mix(in oklab, var(--ew-action) 27%, transparent) 0%, color-mix(in oklab, var(--ew-action) 10%, transparent) 44%, transparent 84%),
      radial-gradient(68% 118% at -12% 112%, color-mix(in oklab, var(--ew-secondary) 24%, transparent) 0%, color-mix(in oklab, var(--ew-secondary) 8%, transparent) 46%, transparent 86%),
      radial-gradient(78% 132% at 116% 26%, color-mix(in oklab, var(--ew-action) 29%, transparent) 0%, color-mix(in oklab, var(--ew-action) 11%, transparent) 44%, transparent 84%),
      radial-gradient(68% 118% at 112% 114%, color-mix(in oklab, var(--ew-secondary) 26%, transparent) 0%, color-mix(in oklab, var(--ew-secondary) 9%, transparent) 46%, transparent 86%),
      radial-gradient(52% 104% at 2% 64%, color-mix(in oklab, var(--ew-icon) 13%, transparent) 0%, transparent 80%),
      radial-gradient(52% 104% at 98% 62%, color-mix(in oklab, var(--ew-icon) 14%, transparent) 0%, transparent 80%);
    -webkit-backdrop-filter:blur(8px) saturate(1.40) brightness(1.04); backdrop-filter:blur(8px) saturate(1.40) brightness(1.04);
    -webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0.88) 14%, rgba(0,0,0,0) 40%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.88) 86%, rgba(0,0,0,1) 100%);
    mask-image:linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0.88) 14%, rgba(0,0,0,0) 40%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.88) 86%, rgba(0,0,0,1) 100%);}
  /* Contenido centrado sobre el eje vertical: título, descripción y la única acción canónica,
     en columna, con el botón colgando de la descripción. */
  .ew-finalcta-inner{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; width:100%; max-width:660px; margin:0 auto;}
  .ew-finalcta-body{min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center;}
  .ew-finalcta-body .ew-btn{margin-top:24px; align-self:center;}
  .ew-finalcta h2{margin:0; font-size:clamp(26px,3vw,34px); font-weight:600; letter-spacing:-0.02em; line-height:1.12; color:var(--ew-text-heading); text-wrap:pretty;}
  .ew-finalcta p{margin:12px 0 0; font-size:16.5px; line-height:1.6; color:var(--ew-text-body); max-width:52ch; text-wrap:pretty;}
  .ew-finalcta .ew-btn{white-space:nowrap;}
  /* Acción de WhatsApp: mismo glifo #ew-i-wa que ya usa el sitio, heredando currentColor. El
     nombre accesible sigue siendo la etiqueta visible; el icono es decorativo. */
  .ew-btn--wa{gap:10px;}
  .ew-btn--wa svg{width:18px; height:18px; flex:none; fill:currentColor;}
  @media (max-width:760px){ .ew-finalcta{padding:34px 24px 36px;} .ew-finalcta .ew-btn{white-space:normal;}
    .ew-finalcta::before{-webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,0.42) 0%, rgba(0,0,0,1) 30%, rgba(0,0,0,1) 70%, rgba(0,0,0,0.42) 100%); mask-image:linear-gradient(90deg, rgba(0,0,0,0.42) 0%, rgba(0,0,0,1) 30%, rgba(0,0,0,1) 70%, rgba(0,0,0,0.42) 100%);}
    .ew-finalcta::after{-webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 34%, rgba(0,0,0,0) 66%, rgba(0,0,0,1) 100%); mask-image:linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 34%, rgba(0,0,0,0) 66%, rgba(0,0,0,1) 100%);} }
  @media (max-width:600px){ .ew-finalcta{padding:28px 20px 30px;} }
  /* Transparencia reducida: la superficie vuelve a ser un plano opaco continuo y el material de
     los costados se atempera, sin desenfoque en ninguna de las dos capas. */
  @media (prefers-reduced-transparency: reduce){
    .ew-finalcta::before{background:#F1F6FA; -webkit-backdrop-filter:none; backdrop-filter:none; -webkit-mask-image:none; mask-image:none;}
    .ew-finalcta::after{opacity:0.30; -webkit-backdrop-filter:none; backdrop-filter:none;}
  }
  html.ew-force-opaque .ew-finalcta::before{background:#F1F6FA; -webkit-backdrop-filter:none; backdrop-filter:none; -webkit-mask-image:none; mask-image:none;}
  html.ew-force-opaque .ew-finalcta::after{opacity:0.30; -webkit-backdrop-filter:none; backdrop-filter:none;}
  /* Beneficios tarjeta con medio 4:3 pegado a tres cantos. */
  /* BenefitCard: estructura de Landing v9.1 (.ew-surface-1 + caja de medio 4:3 + insignia de
     posición en vidrio sutil). Aquí no se define superficie ni recorte propios. */
  /* Proceso */
  /* Process: seis pasos en una fila con línea conectora y punto de vidrio, como en Landing v9.1.
     Sin tarjeta por paso, sin borde, sin numeración añadida. */
  .ew-process{display:grid; grid-template-columns:repeat(6,1fr); gap:var(--ew-space-5);}
  /* La línea conectora de v9.1 lleva un brillo en bucle (`ewFlow`). Informativa lo desactiva:
     su inventario de movimiento no admite animación ambiental. Misma desviación declarada que
     la retirada del parallax del Hero. */
  .ew-process-line::after{animation:none !important;}
  /* Prueba */
  .ew-proof{display:grid; grid-template-columns:repeat(4,1fr);}
  .ew-proof-value{font-size:22px; font-weight:600; letter-spacing:-0.012em; color:var(--ew-text-heading); line-height:1.2;}
  /* Contacto formulario a la izquierda, información canónica a la derecha, mapa debajo en su
     propia sección. `align-items:start` impide que el formulario estire su alto para igualar a
     otro componente: cada columna conserva su altura intrínseca. */
  .ew-contact{display:grid; grid-template-columns:1.15fr 0.9fr; gap:var(--ew-space-6) var(--ew-space-7); align-items:start;}
  .ew-contact > *{align-self:start;}
  .ew-mapsection .ew-mapwrap{margin-top:0;}
  .ew-mapsection .ew-mapwrap iframe{height:clamp(320px,34vw,440px);}
  .ew-form-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--ew-space-4);}
  .ew-field{display:flex; flex-direction:column; gap:6px;}
  .ew-field label{font-size:15px; font-weight:500; color:var(--ew-text-heading);}
  .ew-err{font-size:14px; line-height:1.5; color:#9A2A1E; font-weight:500;}
  .ew-ok{margin-top:16px; padding:16px 18px; border-radius:var(--ew-radius); background:rgba(22,183,170,0.10); box-shadow:inset 0 0 0 2px rgba(14,138,128,0.28); font-size:15.5px; line-height:1.6; color:var(--ew-text-heading);}
  .ew-fail{margin-top:16px; padding:16px 18px; border-radius:var(--ew-radius); background:rgba(154,42,30,0.07); box-shadow:inset 0 0 0 2px rgba(154,42,30,0.30); font-size:15.5px; line-height:1.6; color:var(--ew-text-heading);}
  .ew-sched{display:grid; grid-template-columns:auto 1fr; gap:6px 18px; margin-top:12px; font-size:15.5px; color:var(--ew-text-body);}
  .ew-sched dt{font-weight:500; color:var(--ew-text-heading);}
  .ew-sched dd{margin:0; font-variant-numeric:tabular-nums;}
  /* Cola de página: una sola capa pinta el fondo del último bloque y el pie. La técnica no es
     canónica; el resultado (sin línea, hueco ni costura) sí. */
  .ew-tail{position:relative; background:linear-gradient(180deg, var(--ew-canvas-a) 0%, var(--ew-canvas-c) 22%, var(--ew-canvas-c) 100%);}
  .ew-tail > *{background:transparent !important;}
  .ew-faqlist{display:flex; flex-direction:column; margin-top:var(--ew-space-6);}
  .ew-faqitem + .ew-faqitem{border-top:1px solid var(--ew-rule);}
  .ew-faq-q{flex:1; font-size:17.5px; font-weight:500; line-height:1.4; color:var(--ew-text-heading); text-wrap:pretty;}
  .ew-faq-answer p{margin:0; font-size:16.5px; line-height:1.7; color:var(--ew-text-body); max-width:70ch;}
  @media (max-width:1000px){ .ew-benefits{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:860px){ .ew-contact{grid-template-columns:1fr;} .ew-proof{grid-template-columns:1fr 1fr;} }
  @media (max-width:640px){ .ew-benefits{grid-template-columns:1fr;} .ew-proof{grid-template-columns:1fr;} .ew-form-grid{grid-template-columns:1fr;} }

  .ew-page{background:linear-gradient(180deg, var(--ew-canvas-b) 0%, var(--ew-canvas-a) 10%, var(--ew-canvas-a) 30%, var(--ew-canvas-b) 50%, var(--ew-canvas-a) 70%, var(--ew-canvas-c) 90%, var(--ew-canvas-c) 100%);}
  .ew-page > footer{background:transparent !important;}
  .ew-pad{padding-left:24px; padding-right:24px;}
  .ew-wrap{max-width:1232px; margin:0 auto;}
  .ew-sect{padding-top:var(--ew-space-8); padding-bottom:var(--ew-space-8);}
  .ew-sect--top{padding-top:132px;}
  @media (max-width:760px){ .ew-sect{padding-top:var(--ew-space-7); padding-bottom:var(--ew-space-7);} .ew-sect--top{padding-top:112px;} }

  /* HomeHero: componente de Landing v9.1 (.ew-hero-surface + reglas heredadas de esta hoja).
     El panel se ancla por su borde INFERIOR a --ew-hero-cross por debajo del límite de la imagen,
     así el cruce es la distancia aprobada de 96 px y no depende del alto intrínseco del panel
     ni del largo del texto. La sección siguiente reserva ese cruce más aire de lectura. */
  :root{ --ew-hero-cross:96px; }
  .ew-hero-media{position:relative; height:680px; overflow:hidden; background:#0E3346;}
  .ew-hero-surface{top:auto; bottom:calc(var(--ew-hero-cross) * -1);}
  .ew-after-hero{padding-top:calc(var(--ew-hero-cross) + 82px) !important;}
  @media (max-width:760px){ .ew-after-hero{padding-top:var(--ew-space-7) !important;} }
  .ew-secthead{display:flex; flex-direction:column; gap:0;}
  .ew-eyeless{margin:0;}
  .ew-tail-note{font-size:14px; line-height:1.6; color:var(--ew-text-muted);}
  .ew-mapwrap{margin-top:var(--ew-space-5);}
  .ew-mapwrap iframe{width:100%; height:340px; border:0;}

  /* ===== Correcciones del pase de verificación v1 ===== */
  /* 1. El panel de navegación móvil no abría: la regla heredada de apertura no ganaba tras
        concatenar las hojas. Se declara aquí, al final, con especificidad y peso explícitos.
        Por debajo de 1000 px el hamburguesa es la ÚNICA vía de navegación, así que esto es
        bloqueante y no admite depender del orden de cascada. */
  .ew-page .ew-mopanel{grid-template-rows:0fr; opacity:0; visibility:hidden;}
  .ew-page .ew-mopanel[data-open="true"]{grid-template-rows:1fr !important; opacity:1 !important; visibility:visible !important; transition-delay:0s,0s,0s !important;}
  .ew-page .ew-mopanel[data-open="true"] > div{overflow:visible;}
  /* 2. Transparencia reducida: el Header y el resto de superficies de vidrio no resolvían a
        sólido porque la variante --header repintaba su propio fondo. Se cubren las tres vías:
        el conmutador de prototipo, la consulta normativa y la ausencia de backdrop-filter. */
  /* El Header es la única superficie de vidrio con transición sobre background y
     backdrop-filter. Este runtime re-renderiza de forma continua, así que la transición se
     reinicia en cada render y el valor de respaldo nunca llega a destino: hay que neutralizar
     la transición, no solo reescribir el fondo. */
  html.ew-force-opaque .ew-glass-elevated--header,
  html.ew-force-opaque .ew-glass-elevated--header.is-dense,
  html.ew-force-opaque .ew-glass-elevated--hero,
  html.ew-force-opaque .ew-glass-elevated--about,
  html.ew-force-opaque .ew-tcard,
  html.ew-force-opaque .ew-note,
  html.ew-force-opaque .ew-proof-glass{background:#F1F6FA !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; transition:none !important;}
  @media (prefers-reduced-transparency: reduce){
    .ew-glass-elevated--header,.ew-glass-elevated--header.is-dense,.ew-glass-elevated--hero,
    .ew-glass-elevated--about,.ew-tcard,.ew-note,.ew-proof-glass{background:#F1F6FA !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; transition:none !important;}
  }
  @supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
    .ew-glass-elevated--header,.ew-glass-elevated--header.is-dense,.ew-glass-elevated--hero,
    .ew-glass-elevated--about,.ew-tcard,.ew-note,.ew-proof-glass{background:#F1F6FA !important; transition:none !important;}
  }


  /* ===== Pase de correcciones compartidas 2026-09-10 ===== */
  /* 1. Historia de Nosotros: en tableta y móvil la imagen va ARRIBA del texto, en flujo normal.
     El orden del DOM ya es figura → prosa; aquí solo se retira la colocación explícita de rejilla. */
  @media (max-width:1024px){
    .ew-story{display:block;}
    .ew-storyfig{grid-column:auto; grid-row:auto; position:static; padding-top:0; margin:0 0 var(--ew-space-6); width:100%;}
    .ew-storyfig img{width:100%; height:auto; aspect-ratio:4/3; object-fit:cover;}
    .ew-storyfig figcaption{max-width:none;}
    .ew-prose{grid-column:auto; grid-row:auto; margin:0; width:100%; max-width:none;}
  }
  @media (max-width:600px){ .ew-storyfig{margin-bottom:var(--ew-space-5);} }
  /* 2. Vista previa de Galería en Inicio: exactamente dos columnas en tableta y móvil. */
  .ew-gal--preview{grid-template-columns:repeat(4,1fr);}
  @media (max-width:1100px){ .ew-gal--preview{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:460px){ .ew-gal--preview{grid-template-columns:repeat(2,1fr); gap:12px;} }
  @media (max-width:360px){ .ew-gal--preview{gap:10px;} }
  /* 5. FloatingWhatsAppButton componente provisional aprobado, misma implementación que
     Restaurante. Permanece montado y visible con el menú móvil abierto; solo las superficies
     modales (preferencias de cookies, lightbox) lo vuelven inerte. */
  :root{
    --whatsapp-action-fill:#0C8339;
    --whatsapp-action-fill-hover:#0A7332;
    --floating-action-inline-offset:24px;
    --floating-action-block-offset:24px;
    --floating-action-layer:110;
    --wa-ease:cubic-bezier(0.2,0,0.38,0.9);
    --wa-elev-rest:0 1px 4px rgba(19,59,79,0.198), 0 10px 30px -8px rgba(19,59,79,0.27), inset 0 1px 0 rgba(255,255,255,0.26);
    --wa-elev-hover:0 2px 8px rgba(19,59,79,0.216), 0 16px 40px -10px rgba(19,59,79,0.306), inset 0 1px 0 rgba(255,255,255,0.34);
  }
  .ew-fabwrap{position:fixed; right:var(--floating-action-inline-offset); bottom:var(--floating-action-block-offset); z-index:var(--floating-action-layer); display:inline-flex;}
  .ew-fab{width:56px; height:56px; min-width:56px; min-height:56px; flex:none; border-radius:999px; border:0; padding:0; display:inline-flex; align-items:center; justify-content:center; background:var(--whatsapp-action-fill); color:#FFFFFF; box-shadow:var(--wa-elev-rest); text-decoration:none; cursor:pointer; -webkit-tap-highlight-color:transparent; transition:background 140ms var(--wa-ease), box-shadow 140ms var(--wa-ease), transform 120ms var(--wa-ease);}
  .ew-fab:hover{color:#FFFFFF;}
  .ew-fab svg{width:30px; height:30px; display:block; pointer-events:none; fill:currentColor;}
  @media (hover:hover) and (pointer:fine){ .ew-fab:hover{background:var(--whatsapp-action-fill-hover); box-shadow:var(--wa-elev-hover); transform:translateY(-1px);} }
  .ew-fab:active{transform:scale(0.98); transition-duration:100ms;}
  .ew-fab:focus-visible{outline:3px solid var(--ew-action); outline-offset:3px; box-shadow:var(--wa-elev-rest), 0 0 0 3px #FCFDFE;}
  .ew-fabtip{position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%); white-space:nowrap; background:#133B4F; color:#FCFDFE; font-size:13px; font-weight:500; padding:7px 11px; border-radius:var(--ew-radius); box-shadow:var(--ew-elev-1); opacity:0; visibility:hidden; pointer-events:none; transition:opacity 140ms var(--wa-ease);}
  @media (hover:hover) and (pointer:fine){ .ew-fabwrap:hover .ew-fabtip,.ew-fab:focus-visible + .ew-fabtip{opacity:1; visibility:visible;} }
  @media (pointer:coarse){ .ew-fabtip{display:none !important;} }
  @media (min-width:601px) and (max-width:1000px){ .ew-fabwrap{--floating-action-inline-offset:12px; --floating-action-block-offset:12px;} }
  /* Dentro del área segura del móvil y despejado de los enlaces del panel de navegación. */
  @media (max-width:600px){ .ew-fabwrap{--floating-action-inline-offset:max(8px, env(safe-area-inset-right)); --floating-action-block-offset:calc(8px + env(safe-area-inset-bottom));} }
  @media (prefers-reduced-motion: reduce){
    .ew-fab{transition:background 140ms linear, box-shadow 140ms linear;}
    .ew-fab:hover,.ew-fab:active{transform:none;}
  }
  .ew-fabwrap[data-inert="true"]{opacity:0; visibility:hidden; pointer-events:none;}

  /* =====================================================================
     HOVER HUNDIDO COMPARTIDO una sola receta para todo botón real.
     Carácter ya aprobado en los controles de carrusel y en los botones
     sociales: el reposo conserva su elevación, el puntero lo hunde ~1px
     con luz interior, la pulsación lo hunde ~2px. Solo transform y
     box-shadow: ni un borde nuevo, ni desplazamiento del entorno, ni
     desenfoque animado. Fuera de (hover:hover) no existe, así que el
     táctil no puede quedarse con el estado pegado.

     ALCANCE exclusión explícita del WhatsApp flotante.
     .ew-fab NO figura en ninguna lista de esta receta y ningún selector
     de aquí lo alcanza: todos son de clase concreta, sin button:hover,
     sin [role="button"]:hover, sin selector de icono compartido y sin
     regla de hover de antecesor. El WhatsApp flotante conserva íntegro
     su hover aprobado (elevación --wa-elev-hover, translateY(-1px),
     relleno --whatsapp-action-fill-hover) y su pulsación, foco,
     movimiento reducido y conducta táctil previas. No hay parche con
     !important que lo restaure: nunca entra en el conjunto.

     Excluidos además por contrato: enlaces de texto, .ew-navlink,
     .ew-footlink, .ew-subitem, .ew-skip, tarjetas, .ew-vchip (es un
     label con radio), .ew-switch (control de formulario), pastillas
     estáticas .ew-disc, etiquetas de estado .ew-avail, campos de
     formulario y todo control deshabilitado.
     ===================================================================== */
  :root{
    --ew-press-tf-h:translateY(1px) scale(0.996);
    --ew-press-tf-a:translateY(2px) scale(0.985);
    --ew-press-sh-h:inset 0 1px 2px rgba(19,59,79,0.15), inset 0 -1px 0 rgba(255,255,255,0.96), 0 1px 3px rgba(19,59,79,0.108);
    --ew-press-sh-a:inset 0 2px 5px rgba(19,59,79,0.22), inset 0 -1px 0 rgba(255,255,255,0.68), 0 1px 2px rgba(19,59,79,0.09);
    --ew-press-sh-h-solid:inset 0 1px 2px rgba(9,34,47,0.34), inset 0 -1px 0 rgba(255,255,255,0.20), 0 1px 3px rgba(19,59,79,0.20);
    --ew-press-sh-a-solid:inset 0 2px 6px rgba(9,34,47,0.44), inset 0 -1px 0 rgba(255,255,255,0.14), 0 1px 2px rgba(19,59,79,0.16);
  }
  .ew-btn--secondary,
  .ew-social,
  .ew-burger,
  .ew-car-nav,
  .ew-faq-btn,
  .ew-prefs-close,
  .ew-galbtn,
  .ew-lb-btn,
  .ew-btn--primary{transition-property:box-shadow,transform,background,background-color,color; transition-duration:var(--ew-dur); transition-timing-function:var(--ew-ease-soft);}
  @media (hover:hover) and (pointer:fine){
    .ew-btn--secondary:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-social:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-burger:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-car-nav:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-faq-btn:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-prefs-close:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-galbtn:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-lb-btn:not([disabled]):not([aria-disabled="true"]):hover{transform:var(--ew-press-tf-h) !important; box-shadow:var(--ew-press-sh-h) !important;}
    .ew-btn--primary:not([disabled]):not([aria-disabled="true"]):hover{transform:var(--ew-press-tf-h) !important; box-shadow:var(--ew-press-sh-h-solid) !important;}
    .ew-dot:not([aria-current="true"]):hover::after{transform:scale(0.94) !important; box-shadow:inset 0 1px 2px rgba(19,59,79,0.20), inset 0 -1px 0 rgba(255,255,255,0.92) !important;}
  }
  .ew-btn--secondary:not([disabled]):not([aria-disabled="true"]):active,
  .ew-social:not([disabled]):not([aria-disabled="true"]):active,
  .ew-burger:not([disabled]):not([aria-disabled="true"]):active,
  .ew-car-nav:not([disabled]):not([aria-disabled="true"]):active,
  .ew-faq-btn:not([disabled]):not([aria-disabled="true"]):active,
  .ew-prefs-close:not([disabled]):not([aria-disabled="true"]):active,
  .ew-galbtn:not([disabled]):not([aria-disabled="true"]):active,
  .ew-lb-btn:not([disabled]):not([aria-disabled="true"]):active{transform:var(--ew-press-tf-a) !important; box-shadow:var(--ew-press-sh-a) !important;}
  .ew-btn--primary:not([disabled]):not([aria-disabled="true"]):active{transform:var(--ew-press-tf-a) !important; box-shadow:var(--ew-press-sh-a-solid) !important;}
  .ew-dot:not([aria-current="true"]):active::after{transform:scale(0.88) !important;}
  @media (prefers-reduced-motion: reduce){
    .ew-btn--secondary,
    .ew-social,
    .ew-burger,
    .ew-car-nav,
    .ew-faq-btn,
    .ew-prefs-close,
    .ew-galbtn,
    .ew-lb-btn,
    .ew-btn--primary{transition-property:box-shadow,background,background-color,color;}
    .ew-btn--secondary:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-social:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-burger:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-car-nav:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-faq-btn:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-prefs-close:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-galbtn:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-lb-btn:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-btn--primary:not([disabled]):not([aria-disabled="true"]):hover,
    .ew-btn--secondary:not([disabled]):not([aria-disabled="true"]):active,
  .ew-social:not([disabled]):not([aria-disabled="true"]):active,
  .ew-burger:not([disabled]):not([aria-disabled="true"]):active,
  .ew-car-nav:not([disabled]):not([aria-disabled="true"]):active,
  .ew-faq-btn:not([disabled]):not([aria-disabled="true"]):active,
  .ew-prefs-close:not([disabled]):not([aria-disabled="true"]):active,
  .ew-galbtn:not([disabled]):not([aria-disabled="true"]):active,
  .ew-lb-btn:not([disabled]):not([aria-disabled="true"]):active,
  .ew-btn--primary:not([disabled]):not([aria-disabled="true"]):active{transform:none !important;}
  }
  html.ew-force-rm .ew-btn--secondary:hover,
  html.ew-force-rm .ew-social:hover,
  html.ew-force-rm .ew-burger:hover,
  html.ew-force-rm .ew-car-nav:hover,
  html.ew-force-rm .ew-faq-btn:hover,
  html.ew-force-rm .ew-prefs-close:hover,
  html.ew-force-rm .ew-galbtn:hover,
  html.ew-force-rm .ew-lb-btn:hover,
  html.ew-force-rm .ew-btn--primary:hover,
  html.ew-force-rm .ew-btn--secondary:active,
  html.ew-force-rm .ew-social:active,
  html.ew-force-rm .ew-burger:active,
  html.ew-force-rm .ew-car-nav:active,
  html.ew-force-rm .ew-faq-btn:active,
  html.ew-force-rm .ew-prefs-close:active,
  html.ew-force-rm .ew-galbtn:active,
  html.ew-force-rm .ew-lb-btn:active,
  html.ew-force-rm .ew-btn--primary:active{transform:none !important;}
  @media (forced-colors: active){
    .ew-btn--secondary:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-social:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-burger:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-car-nav:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-faq-btn:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-prefs-close:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-galbtn:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-lb-btn:not([disabled]):not([aria-disabled="true"]):hover,
  .ew-btn--primary:not([disabled]):not([aria-disabled="true"]):hover,
    .ew-btn--secondary:not([disabled]):not([aria-disabled="true"]):active,
  .ew-social:not([disabled]):not([aria-disabled="true"]):active,
  .ew-burger:not([disabled]):not([aria-disabled="true"]):active,
  .ew-car-nav:not([disabled]):not([aria-disabled="true"]):active,
  .ew-faq-btn:not([disabled]):not([aria-disabled="true"]):active,
  .ew-prefs-close:not([disabled]):not([aria-disabled="true"]):active,
  .ew-galbtn:not([disabled]):not([aria-disabled="true"]):active,
  .ew-lb-btn:not([disabled]):not([aria-disabled="true"]):active,
  .ew-btn--primary:not([disabled]):not([aria-disabled="true"]):active{box-shadow:none !important;}
  }

  /* =====================================================================
     HomeAboutPreview en móvil y tableta la imagen va ARRIBA del bloque
     de texto completo, en flujo vertical normal. El orden del DOM ya es
     imagen → titular → descripción → acción, así que no hace falta ningún
     "order", ni posición absoluta, ni alto fijo. Escritorio conserva la
     composición aprobada mediante colocación explícita de columna.
     El artefacto Landing queda fuera de esta corrección por contrato.
     ===================================================================== */
  .ew-hab{display:grid; grid-template-columns:1.05fr 0.95fr; gap:0; overflow:hidden;}
  .ew-hab-text{grid-column:1; grid-row:1; padding:38px 40px 40px;}
  .ew-hab-img{grid-column:2; grid-row:1; display:block; width:100%; height:100%; min-height:280px; object-fit:cover;}
  @media (max-width:860px){
    .ew-hab{display:block;}
    .ew-hab-img{grid-column:auto; grid-row:auto; width:100%; height:auto; min-height:0; aspect-ratio:1400 / 788;}
    .ew-hab-text{grid-column:auto; grid-row:auto; padding:24px 22px 28px;}
  }
  @media (max-width:430px){ .ew-hab-text{padding:20px 18px 24px;} }

  /* =====================================================================
     WhatsApp flotante posición idéntica con el menú móvil cerrado y
     abierto (referencia: Landing). Se retira la regla que subía su
     desplazamiento inferior con data-nav="true" y el propio atributo.
     El hueco lo abre el menú con su relleno inferior, no el botón.
     ===================================================================== */
  .ew-fabwrap{margin:0 !important; transform:none !important;}
  @media (max-width:600px){
    .ew-mopanel[data-open="true"] > div{padding-bottom:calc(78px + env(safe-area-inset-bottom));}
  }
