/*
 * The CNAME "wow" layer. Loaded only on full pages served from a partner's own
 * subdomain. Script-embedded pages can never have any of this: the partner's
 * page injects them with innerHTML, and innerHTML never runs a <script>.
 *
 * Everything here is progressive: with no JS the pages read exactly as before,
 * and prefers-reduced-motion turns every animation off.
 */

/* ---------- page-to-page transitions (same-origin, Chromium) ---------- */
@view-transition { navigation: auto; }
.pt-header { view-transition-name: pt-header; }
::view-transition-old(root) { animation: wow-fade-out .22s ease both; }
::view-transition-new(root) { animation: wow-fade-in .38s ease both; }
@keyframes wow-fade-out { to { opacity: 0; transform: translateY(-6px); } }
@keyframes wow-fade-in { from { opacity: 0; transform: translateY(10px); } }

/* ---------- scroll progress ---------- */
.wow-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 80; pointer-events: none;
  background: linear-gradient(90deg, var(--pt-primary), var(--pt-accent)); transform-origin: 0 50%; transform: scaleX(0); }

/* ---------- header: frosted once you scroll ---------- */
.pt-header { transition: background .3s ease, box-shadow .3s ease, border-color .3s ease; }
.pt-header.wow-scrolled { background: rgba(255,255,255,.78); -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px);
  box-shadow: 0 8px 30px rgba(15,25,40,.08); border-color: transparent; }
.pt-header.pt-dark.wow-scrolled { background: rgba(10,10,15,.78); box-shadow: 0 8px 30px rgba(0,0,0,.35); }

/* ---------- animated Solutions menu ---------- */
.pt-menu { display: grid !important; opacity: 0; visibility: hidden; transform: translateY(8px) scale(.98); transform-origin: 70% 0;
  transition: opacity .2s ease, transform .25s cubic-bezier(.2,.8,.2,1), visibility 0s linear .25s; }
.pt-dd:hover .pt-menu, .pt-dd:focus-within .pt-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.pt-menu a { transition: color .15s ease, transform .15s ease; }
.pt-menu a:hover { transform: translateX(3px); }

/* ---------- scroll reveal (only ever applied by JS, below the fold) ---------- */
.wow-rv { opacity: 0; transform: translateY(26px); transition: opacity .75s ease, transform .85s cubic-bezier(.16,1,.3,1) !important; }
.wow-rv.wow-in { opacity: 1; transform: none; }

/* ---------- refreshed marker ---------- */
.pt-crumb .pt-wrap { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.wow-fresh { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--pt-muted); }
.wow-fresh b { color: var(--pt-text); font-weight: 700; }
.wow-dot { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 0 rgba(34,197,94,.6); animation: wow-ping 2.2s infinite; }
@keyframes wow-ping { 0% { box-shadow: 0 0 0 0 rgba(34,197,94,.55); } 70% { box-shadow: 0 0 0 9px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }

/* ---------- cursor light on any vendor hero ---------- */
.wow-spot { position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: 0; transition: opacity .5s ease;
  background: radial-gradient(520px circle at var(--mx, 50%) var(--my, 40%), rgba(255,255,255,.16), transparent 60%);
  mix-blend-mode: soft-light; }
.wow-spot.wow-on { opacity: 1; }
.wow-sheen { position: absolute; inset: 0; pointer-events: none; z-index: 1; overflow: hidden; }
.wow-sheen::after { content: ""; position: absolute; top: -50%; bottom: -50%; width: 38%; left: -60%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.09), transparent); transform: skewX(-12deg);
  animation: wow-sweep 9s ease-in-out 1.2s infinite; }
@keyframes wow-sweep { 0% { left: -60%; } 38%, 100% { left: 130%; } }

/* ================= SOLUTIONS HOME ================= */
.sh-hero { position: relative; overflow: hidden; isolation: isolate; color: #fff; padding: 88px 0 96px !important;
  background: color-mix(in oklab, var(--pt-primary), black 58%) !important; }
.sh-mesh { position: absolute; inset: -20%; z-index: -2; filter: blur(70px) saturate(1.25); }
.sh-mesh i { position: absolute; border-radius: 50%; opacity: .85; mix-blend-mode: screen; will-change: transform; }
.sh-mesh i:nth-child(1) { width: 55%; height: 60%; left: 5%; top: 10%; background: var(--pt-primary); animation: wow-drift1 22s ease-in-out infinite alternate; }
.sh-mesh i:nth-child(2) { width: 45%; height: 50%; right: 5%; top: 0; background: color-mix(in oklab, var(--pt-primary), #38bdf8 55%); animation: wow-drift2 26s ease-in-out infinite alternate; }
.sh-mesh i:nth-child(3) { width: 38%; height: 42%; right: 18%; bottom: 0; background: var(--pt-accent); opacity: .55; animation: wow-drift3 19s ease-in-out infinite alternate; }
.sh-mesh i:nth-child(4) { width: 34%; height: 40%; left: 28%; bottom: 5%; background: color-mix(in oklab, var(--pt-primary), white 30%); opacity: .5; animation: wow-drift1 30s ease-in-out infinite alternate-reverse; }
@keyframes wow-drift1 { to { transform: translate(18%, 14%) scale(1.15); } }
@keyframes wow-drift2 { to { transform: translate(-22%, 18%) scale(.9); } }
@keyframes wow-drift3 { to { transform: translate(-16%, -20%) scale(1.2); } }
.sh-lines { position: absolute; inset: 0; z-index: -1; opacity: .35;
  background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size: 56px 56px; -webkit-mask-image: radial-gradient(ellipse at 30% 40%, #000 20%, transparent 70%); mask-image: radial-gradient(ellipse at 30% 40%, #000 20%, transparent 70%); }
.sh-grain { position: absolute; inset: 0; z-index: -1; opacity: .12; mix-blend-mode: overlay;
  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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.sh-hero .wow-spot { z-index: 0; mix-blend-mode: overlay; background: radial-gradient(600px circle at var(--mx, 70%) var(--my, 30%), rgba(255,255,255,.28), transparent 55%); }
.sh-hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }
.sh-hero h1 { background: linear-gradient(180deg, #fff 30%, rgba(255,255,255,.72)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sh-stats { display: flex; gap: 36px; margin-top: 30px; flex-wrap: wrap; }
.sh-stats div { display: flex; flex-direction: column; }
.sh-stats b { font-size: 34px; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.sh-stats span { font-size: 13px; opacity: .75; margin-top: 6px; }

/* the rotating fan of the partner's own pages */
.sh-fan { position: relative; height: 380px; perspective: 1400px; }
.sh-fan a { position: absolute; left: 50%; top: 50%; width: 250px; height: 330px; margin: -165px 0 0 -125px; border-radius: 14px; overflow: hidden;
  background: #0b1220; box-shadow: 0 30px 70px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.12) inset;
  transition: transform .9s cubic-bezier(.2,.8,.2,1), opacity .9s ease, filter .9s ease; transform-style: preserve-3d; }
.sh-fan img { width: 100%; height: 100%; object-fit: cover; object-position: left top; display: block; }
.sh-fan a::after { content: attr(data-label); position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 14px 12px; font: 700 13px system-ui, sans-serif; color: #fff;
  background: linear-gradient(transparent, rgba(0,0,0,.75)); }
.sh-fan a[data-slot="0"] { transform: translateX(0) translateZ(80px) rotateY(0); z-index: 5; }
.sh-fan a[data-slot="1"] { transform: translateX(96px) translateZ(-40px) rotateY(-26deg) scale(.9); z-index: 4; filter: brightness(.62); }
.sh-fan a[data-slot="2"] { transform: translateX(-96px) translateZ(-40px) rotateY(26deg) scale(.9); z-index: 4; filter: brightness(.62); }
.sh-fan a[data-slot="3"] { transform: translateX(160px) translateZ(-160px) rotateY(-36deg) scale(.8); z-index: 3; filter: brightness(.38); }
.sh-fan a[data-slot="4"] { transform: translateX(-160px) translateZ(-160px) rotateY(36deg) scale(.8); z-index: 3; filter: brightness(.38); }
.sh-fan a[data-slot="5"] { transform: translateZ(-300px); opacity: 0; z-index: 1; pointer-events: none; }
.sh-fan a[data-slot="0"]:hover { transform: translateZ(110px) scale(1.02); }

/* tilt + glare on solution cards */
.sh-card { position: relative; transform-style: preserve-3d; will-change: transform; transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease !important; }
.sh-card.wow-tilting { transition: transform .08s linear, box-shadow .3s ease !important; }
.sh-glare { position: absolute; inset: 0; pointer-events: none; border-radius: inherit; opacity: 0; transition: opacity .3s ease;
  background: radial-gradient(420px circle at var(--gx, 50%) var(--gy, 0%), rgba(255,255,255,.35), transparent 45%); mix-blend-mode: overlay; z-index: 2; }
.sh-card:hover .sh-glare { opacity: 1; }
.sh-card img { transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.sh-card:hover img { transform: scale(1.04); }

@media (max-width: 900px) {
  .sh-hero-inner { grid-template-columns: 1fr; }
  .sh-fan { height: 300px; margin-top: 8px; }
  .sh-fan a { width: 190px; height: 250px; margin: -125px 0 0 -95px; }
  .sh-fan a[data-slot="1"] { transform: translateX(70px) translateZ(-40px) rotateY(-26deg) scale(.88); }
  .sh-fan a[data-slot="2"] { transform: translateX(-70px) translateZ(-40px) rotateY(26deg) scale(.88); }
  .sh-fan a[data-slot="3"], .sh-fan a[data-slot="4"] { opacity: 0; }
}

/* ================= ESET: interactive "what an attack has to survive" ================= */
.eset-mod .wow-sim { margin: 0 0 22px; padding: 20px 22px; border-radius: 16px; background: var(--teal-deep, #004b55); color: #fff;
  background-image: radial-gradient(at 90% 0%, rgba(111,241,241,.18), transparent 55%); box-shadow: 0 18px 44px rgba(0,75,85,.22); }
.eset-mod .wow-sim-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.eset-mod .wow-sim-top strong { font-size: 15px; letter-spacing: -.01em; }
.eset-mod .wow-sim-top span { font-size: 12px; font-weight: 800; letter-spacing: 1.6px; text-transform: uppercase; color: var(--cyan, #6ff1f1); }
.eset-mod .wow-sim-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.eset-mod .wow-sim-tabs button { font: 600 13.5px inherit; font-family: inherit; color: #fff; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px; padding: 8px 14px; cursor: pointer; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.eset-mod .wow-sim-tabs button:hover { background: rgba(255,255,255,.14); transform: translateY(-1px); }
.eset-mod .wow-sim-tabs button[aria-pressed="true"] { background: var(--cyan, #6ff1f1); color: #00363e; border-color: transparent; }
.eset-mod .wow-sim-status { margin-top: 14px; min-height: 22px; font-size: 14.5px; color: rgba(255,255,255,.85); }
.eset-mod .wow-sim-status b { color: var(--cyan, #6ff1f1); }

.layer-stack.wow-armed { position: relative; padding-left: 34px; }
.eset-mod .wow-rail { position: absolute; left: 11px; top: 10px; bottom: 10px; width: 2px; border-radius: 2px; background: linear-gradient(var(--line, #e2e8e9), var(--line, #e2e8e9)); }
.eset-mod .wow-threat { position: absolute; left: 3px; top: 10px; width: 18px; height: 18px; border-radius: 50%; margin-top: -9px; z-index: 3; opacity: 0;
  background: radial-gradient(circle at 35% 35%, #ffd27a, #f97316 60%, #b91c1c); box-shadow: 0 0 0 4px rgba(249,115,22,.18), 0 0 22px rgba(249,115,22,.7);
  transition: top .5s cubic-bezier(.5,0,.3,1), opacity .3s ease; }
.eset-mod .wow-threat.wow-live { opacity: 1; }
.eset-mod .wow-threat.wow-caught { background: radial-gradient(circle at 35% 35%, #fff, var(--cyan, #6ff1f1) 55%, var(--teal, #0096a1));
  box-shadow: 0 0 0 6px rgba(111,241,241,.25), 0 0 30px rgba(111,241,241,.9); }
.layer-stack.wow-armed .layer { position: relative; transition: transform .26s ease, box-shadow .3s ease, opacity .3s ease, border-color .3s ease, background .3s ease !important; }
.layer-stack.wow-armed .layer.wow-passed { opacity: .5; }
.layer-stack.wow-armed .layer.wow-scan { box-shadow: 0 0 0 2px rgba(249,115,22,.5); }
.layer-stack.wow-armed .layer.wow-stop { opacity: 1; border-left-color: var(--cyan, #6ff1f1); background: linear-gradient(90deg, rgba(111,241,241,.14), #fff 55%);
  box-shadow: 0 0 0 2px var(--teal, #0096a1), 0 18px 44px rgba(0,150,161,.25); transform: translateX(6px); }
.eset-mod .wow-tag { position: absolute; right: 16px; top: -11px; font-size: 11px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase;
  color: #00363e; background: var(--cyan, #6ff1f1); padding: 4px 10px; border-radius: 999px; box-shadow: 0 6px 16px rgba(0,150,161,.35);
  animation: wow-pop .45s cubic-bezier(.2,1.6,.4,1) both; }
@keyframes wow-pop { from { transform: scale(.4); opacity: 0; } }

/* ---------- touch and reduced motion ---------- */
@media (hover: none) { .wow-spot, .sh-glare { display: none; } }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  .sh-mesh i, .wow-sheen::after, .wow-dot { animation: none !important; }
  .wow-rv { opacity: 1 !important; transform: none !important; }
  .sh-fan a, .wow-threat { transition: none !important; }
}
