/* ClickaCierre — celular «web» del hero (#hxw, «la web que no cabe»), biblioteca de la plantilla #7, pilar Diseño y
   desarrollo web. Lo carga la página con p.estilos, después de landing.css. Usa las clases del celular del hero (.hx,
   .dx-*) y solo agrega lo propio, con el prefijo .hw-. Lo que se mueve es solo transform y opacity.
   Sin movimiento y sin JS queda un solo fotograma: la web de computadora encogida hasta caber en la pantalla, con las
   tres marcas a la vista, y debajo la línea final y el enlace. La web dibujada es aria-hidden; los resultados de la
   búsqueda quedan en el HTML, tapados por la web, y el pie de la figura cuenta la historia. */

/* ---------- los resultados de la búsqueda: orgánicos, el tuyo y el que se lleva al cliente */
.hx.hx-web .dx-zone.hw-res{position:relative;overflow:hidden;margin-top:0;padding:11px 8px 12px}
.hx-web .hw-res.is-you{box-shadow:inset 0 0 0 1.5px rgba(11,18,32,.14)}
.hx-web .hw-res.is-pick{background:#e8f0fe}
.hx-web .hw-serp{transition:translate .55s var(--m-ease),opacity .55s}
.hx-web.is-web .hw-serp{translate:-28% 0;opacity:.35}
.hw-dot{position:absolute;left:62%;top:48%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(32,33,36,.2);opacity:0;scale:.2;pointer-events:none}
.hw-res.is-tap .hw-dot{animation:hw-dot .7s ease-out both}
@keyframes hw-dot{0%{opacity:.9;scale:.2}100%{opacity:0;scale:2.4}}
.hw-chips{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin-top:8px}
.hw-open{display:inline-flex;align-items:center;gap:6px;font:700 12px/1 Arial,sans-serif;color:#137333}
.hw-open i{width:7px;height:7px;border-radius:50%;background:#1e8e3e}
.hw-call{display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 10px;border:1px solid #dadce0;border-radius:999px;background:#fff;font:700 12.5px/1 Arial,sans-serif;color:#1a73e8}
.hw-call svg{width:13px;height:13px;fill:currentColor}

/* ---------- la web: una página nueva dentro del navegador del celular */
.hx-web .hw-site{position:absolute;left:0;right:0;top:36px;bottom:34px;z-index:4;display:flex;flex-direction:column;background:#fff}
.js-motion .hx-web.is-armed .hw-site{translate:104% 0;box-shadow:-18px 0 30px -18px rgba(11,18,32,.35);transition:translate .55s var(--m-ease)}
.js-motion .hx-web.is-armed.is-web .hw-site{translate:0 0}
.hw-bar{display:flex;align-items:center;flex:none;gap:8px;height:34px;margin:6px 12px;padding:0 14px;border-radius:999px;background:#f1f3f4;font:13px/1 Arial,sans-serif;color:#202124}
.hw-bar span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.hw-lock{position:relative;flex:none;width:9px;height:7px;margin-top:4px;border-radius:2px;background:#5f6368}
.hw-lock:before{content:'';position:absolute;left:1.5px;bottom:5px;width:6px;height:6px;border:1.6px solid #5f6368;border-bottom:0;border-radius:4px 4px 0 0;box-sizing:border-box}
/* la ventana de la página: el ancho de la pantalla; la web de computadora (1024 px) se dibuja entera y se escala */
.hw-view{position:relative;flex:1;min-height:0;overflow:hidden;container-type:inline-size;border-top:1px solid #ebebeb;background:#fff}

/* ---------- la web de computadora, de 1024 px. --fit es lo que hace falta para que entre en el ancho de la pantalla
   (telefono-web.js lo mide; sin JS lo calcula el CSS); --z, --tx y --ty son el zoom y el desplazamiento */
.hw-desk{--z:1;--tx:0;--ty:0;--fit:.34;position:absolute;left:0;top:0;display:flex;flex-direction:column;width:1024px;height:2600px;transform-origin:0 0;
  transform:translate(calc(var(--tx) * 1px),calc(var(--ty) * 1px)) scale(calc(var(--fit) * var(--z)));
  transition:transform var(--hw-d,.9s) cubic-bezier(.22,.8,.26,1);
  background:#fff;color:#3c4043;font:16px/1.35 Arial,sans-serif;text-align:left}
@supports (width:calc(tan(atan2(1px,1px)) * 1px)){.hw-desk{--fit:tan(atan2(100cqw,1024px))}}
.hw-desk.is-reset{transition:none}
.hw-head{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;gap:40px;height:76px;padding:0 56px;border-bottom:1px solid #dfe3e8}
.hw-logo{font:700 26px/1 Arial,sans-serif;letter-spacing:-.01em;color:#24507e;white-space:nowrap}
.hw-menu{display:flex;gap:26px;margin:0;font-size:15px;color:#4a4f55;white-space:nowrap}
.hw-menu span:first-child{padding-bottom:4px;border-bottom:3px solid #24507e;font-weight:700;color:#24507e}
.hw-ban{position:relative;flex:none;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;height:300px;padding:0 56px 56px;background:linear-gradient(110deg,#7592ad,#476483 55%,#31485f);color:#fff}
.hw-ban>b{margin-bottom:6px;font:700 62px/1 Arial,sans-serif;letter-spacing:-.01em}
.hw-bl{display:block;height:11px;border-radius:6px;background:rgba(255,255,255,.4)}
.hw-bl:nth-of-type(1){width:430px}
.hw-bl:nth-of-type(2){width:300px}
.hw-dots{position:absolute;left:50%;bottom:20px;display:flex;gap:9px;translate:-50% 0}
.hw-dots i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.5)}
.hw-dots i:first-child{background:#fff}
.hw-main{flex:none;display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:44px;padding:44px 56px 0}
.hw-cols{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.hw-col b{display:block;margin-bottom:18px;font:700 22px/1.15 Arial,sans-serif;color:#24507e}
.hw-ln{display:block;height:10px;margin-bottom:12px;border-radius:5px;background:#e1e5ea}
.hw-col .hw-ln:nth-of-type(2){width:92%}
.hw-col .hw-ln:nth-of-type(4){width:84%}
.hw-col .hw-ln:nth-of-type(5){width:58%}
.hw-tile{display:block;height:150px;margin-top:22px;border-radius:6px;background:linear-gradient(160deg,#e9edf1,#d9e0e6)}
.hw-side{position:relative;align-self:start;padding:26px 24px 30px;border:1px solid #dde2e7;background:#f3f5f7}
.hw-side>b{display:block;font:700 19px/1.2 Arial,sans-serif;color:#24507e}
.hw-row{display:flex;justify-content:space-between;gap:10px;margin:0;padding:10px 0;border-bottom:1px solid #e1e5e9;font-size:15px;color:#4a4f55}
.hw-row:nth-of-type(1){margin-top:8px}
.hw-th{margin-top:26px}
.hw-tel{display:block;width:max-content;margin-top:12px;font:700 27px/1.1 Arial,sans-serif;letter-spacing:.01em;color:#2b2f33}
.hw-gal{flex:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:50px 56px 0}
.hw-gal i{height:150px;border-radius:6px;background:linear-gradient(160deg,#e9edf1,#d9e0e6)}
.hw-gal i:nth-child(2n){background:linear-gradient(160deg,#dde6e3,#cfdcd8)}
.hw-foot{flex:1;margin-top:56px;padding:44px 56px 0;border-top:1px solid #dde2e7;background:#eceff2}
.hw-foot .hw-ln{background:#d8dde3}
.hw-foot .hw-ln:nth-child(1){width:46%}
.hw-foot .hw-ln:nth-child(2){width:34%}
.hw-foot .hw-ln:nth-child(3){width:40%}

/* una parte de la web, resaltada cuando el cursor señala su marca (o el toque): un velo lima y un borde */
.hw-desk [data-part]:after,.hw-desk:after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 calc(2.5px / (var(--fit) * var(--z))) #b8f34a;opacity:0;pointer-events:none;transition:opacity .25s}
.hw-desk [data-part]:after{background:rgba(184,243,74,.2)}
.hx-web[data-hot="1"] .hw-desk:after,.hx-web[data-hot="2"] .hw-desk [data-part="2"]:after,.hx-web[data-hot="3"] .hw-desk [data-part="3"]:after{opacity:1}

/* la barra de desplazamiento que se asoma cuando la página es más ancha que la pantalla */
.hw-sb{position:absolute;left:8px;right:8px;bottom:5px;z-index:5;display:block;height:3px;opacity:0;pointer-events:none;transition:opacity .3s}
.hw-sb i{display:block;width:100%;height:3px;border-radius:3px;background:rgba(32,33,36,.5);transform-origin:0 50%;transform:translateX(calc(var(--sbx,0) * 1px)) scaleX(var(--sbs,1));transition:transform var(--hw-d,.9s) cubic-bezier(.22,.8,.26,1)}
.hx-web.is-wide .hw-sb{opacity:1}

/* ---------- las tres marcas: no se mueven con la página, así que viven en su propia capa */
.hx-web .hw-tags{position:absolute;inset:0;z-index:6;pointer-events:none}
.hx-web .hw-part{position:absolute;left:8px;right:8px;top:var(--t);height:0}
.hx-web .hw-part:nth-child(1){--t:9%}
.hx-web .hw-part:nth-child(2){--t:33%}
.hx-web .hw-part:nth-child(3){--t:47%}
.hx-web .hw-part .hx-tag{left:0;top:0;pointer-events:auto;cursor:default}
.hx-web .hw-part:nth-child(3) .hx-tag{left:auto;right:0}
.hx-web .hw-tags .hx-tag:after{content:'✕';margin-left:1px;color:#8f1d12;font-size:10px}
.js-motion .hx-web.is-armed .hw-part .hx-tag{opacity:0;scale:.4;transform-origin:14px 50%;pointer-events:none;transition:opacity .2s,scale .55s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}
.js-motion .hx-web.is-armed .hw-part.is-tagged .hx-tag{opacity:1;scale:1;pointer-events:auto}
.js-motion .hx-web.is-armed .hw-part:nth-child(3) .hx-tag{transform-origin:calc(100% - 14px) 50%}
/* el cursor sobre una marca (o su parte): se levanta, se recuadra en tinta y, si aún no llegó, se asoma */
.hx-web[data-hot="1"] .hw-part:nth-child(1) .hx-tag,.hx-web[data-hot="2"] .hw-part:nth-child(2) .hx-tag,.hx-web[data-hot="3"] .hw-part:nth-child(3) .hx-tag{scale:1.06;box-shadow:0 0 0 2px #fff,0 0 0 4.5px #0b1220,0 10px 20px -8px rgba(11,18,32,.55)}
.js-motion .hx-web.is-armed[data-hot="1"] .hw-part:nth-child(1) .hx-tag,.js-motion .hx-web.is-armed[data-hot="2"] .hw-part:nth-child(2) .hx-tag,.js-motion .hx-web.is-armed[data-hot="3"] .hw-part:nth-child(3) .hx-tag{opacity:1;pointer-events:auto}

/* ---------- los gestos: el pellizco (dos círculos), el toque y la ✕ de «no pasa nada» */
.hw-fx{position:absolute;inset:0;z-index:7;pointer-events:none}
.hw-pinch{position:absolute;left:50%;top:30%;width:0;height:0}
.hw-pinch i{position:absolute;left:-19px;top:-19px;width:38px;height:38px;border-radius:50%;background:rgba(32,33,36,.22);box-shadow:0 0 0 2px rgba(255,255,255,.8);opacity:0}
.hw-pinch.is-on i:nth-child(1){animation:hw-pa .95s ease-in-out both}
.hw-pinch.is-on i:nth-child(2){animation:hw-pb .95s ease-in-out both}
@keyframes hw-pa{0%{opacity:0;transform:translate(-7px,7px)}16%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(-46px,46px)}}
@keyframes hw-pb{0%{opacity:0;transform:translate(7px,-7px)}16%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(46px,-46px)}}
.hw-tap{position:absolute;left:0;top:0;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(32,33,36,.24);box-shadow:0 0 0 2px rgba(255,255,255,.8);opacity:0;scale:.3}
.hw-tap.is-on{animation:hw-press .95s ease-out both}
@keyframes hw-press{0%{opacity:0;scale:.3}22%{opacity:1;scale:1}66%{opacity:1;scale:.92}100%{opacity:0;scale:1.5}}
.hw-nope{position:absolute;left:0;top:0;display:grid;place-items:center;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:#d93025;box-shadow:0 0 0 2.5px #fff,0 8px 16px -6px rgba(11,18,32,.5);opacity:0;scale:.4;transition:opacity .15s,scale .45s cubic-bezier(.34,1.56,.64,1)}
.hw-nope:after{content:'✕';color:#fff;font:700 14px/1 Arial,sans-serif}
.hw-nope.is-on{opacity:1;scale:1}

/* ---------- el celular completo a 390 px y menos */
@media (max-width:380px){.hw-open,.hw-call{font-size:11.5px}}
@media (prefers-reduced-motion:reduce){.hw-pinch i,.hw-tap,.hw-nope,.hw-res .hw-dot{animation:none}}
