# Wallarm Documentation

Everything you need to discover your APIs, MCPs, and AI agents, protect them from threats, and test for vulnerabilities.

<div class="homepage-actions">
  
  <div id="homepage-search-mount"></div>

</div>


<div class="navigation navigation-1col">
  <div class="navigation-card homepage-intro">
    <h3 class="icon-homepage quick-start-title"><a href="https://docs.wallarm.com/about-wallarm/overview.md">Introduction <span class="card-arrow">→</span></a></h3>
    <p class="card-description">Get started with the Wallarm platform and learn the fundamentals.</p>
    <p><ul>
      <li><a href="https://docs.wallarm.com/about-wallarm/overview.md">Platform Overview</a></li>
      <li><a href="https://docs.wallarm.com/quickstart/getting-started.md">Quick Start</a></li>
      <li><a href="https://docs.wallarm.com/demo-videos/platform-overview.md">Video Guides</a></li>
    </ul></p>
  </div>
</div>


<div class="navigation navigation-4col">

  <div class="navigation-card">
    <h3 class="icon-homepage api-discovery-title"><a href="https://docs.wallarm.com/api-discovery/overview.md">API Discovery <span class="card-arrow">→</span></a></h3>
    <p class="card-description">Catalog all your APIs/MCPs/agents, their risks and sensisitve data flows.</p>
    <p><ul>
      <li><a href="https://docs.wallarm.com/api-discovery/exploring.md">Exploring Your APIs</a></li>
      <li><a href="https://docs.wallarm.com/api-discovery/risk-score.md">Risk Score</a></li>
      <li><a href="https://docs.wallarm.com/api-discovery/rogue-api.md">Rogue APIs (Shadow/Zombie)</a></li>
      <li><a href="https://docs.wallarm.com/api-discovery/sensitive-data.md">Sensitive Data Detection</a></li>
      <li><a href="https://docs.wallarm.com/api-discovery/setup.md">Setup & Configuration</a></li>
    </ul></p>
  </div>

  <div class="navigation-card">
    <h3 class="icon-homepage api-threat-prevent"><a href="https://docs.wallarm.com/about-wallarm/api-protection-overview.md">API Protection <span class="card-arrow">→</span></a></h3>
    <p class="card-description">Block attacks, bots, and abuse in real-time with intelligent threat detection.</p>
    <p><ul>
      <li><a href="https://docs.wallarm.com/api-sessions/overview.md">API Sessions</a></li>
      <li><a href="https://docs.wallarm.com/api-specification-enforcement/overview.md">API Spec Enforcement</a></li>
      <li><a href="https://docs.wallarm.com/api-abuse-prevention/overview.md">Bot Management</a></li>
      <li><a href="https://docs.wallarm.com/about-wallarm/credential-stuffing.md">Credential Stuffing</a></li>
      <li><a href="https://docs.wallarm.com/about-wallarm/waap-overview.md">Threat Protection (WAAP)</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/rules/rules.md">Rules & Policies</a></li>
    </ul></p>
  </div>

  <div class="navigation-card">
    <h3 class="icon-homepage api-security-testing"><a href="https://docs.wallarm.com/vulnerability-detection/security-testing-overview.md">API Security Testing <span class="card-arrow">→</span></a></h3>
    <p class="card-description">Find vulnerabilities before attackers do with automated security testing.</p>
    <p><ul>
      <li><a href="https://docs.wallarm.com/vulnerability-detection/threat-replay-testing/overview.md">Threat Replay Testing</a></li>
      <li><a href="https://docs.wallarm.com/vulnerability-detection/schema-based-testing/overview.md">Schema-Based Testing</a></li>
      <li><a href="https://docs.wallarm.com/vulnerability-detection/api-security-testing-via-postman/overview.md">API Security Testing via Postman</a></li>
      <li><a href="https://docs.wallarm.com/api-attack-surface/overview.md">Attack Surface (AASM)</a></li>
    </ul></p>
  </div>

  <div class="navigation-card">
    <h3 class="icon-homepage agent-ai-title"><a href="https://docs.wallarm.com/agentic-ai/overview.md">AI Security <span class="card-arrow">→</span></a></h3>
    <p class="card-description">Discover and protect AI agents and MCPs.</p>
    <p><ul>
      <li><a href="https://docs.wallarm.com/agentic-ai/agentic-ai-discovery.md">AI Agent Discovery</a></li>
      <li><a href="https://docs.wallarm.com/agentic-ai/agentic-ai-protection.md">AI Agent Protection</a></li>
      <li><a href="https://docs.wallarm.com/agentic-ai/ai-payload-inspection.md">AI Payload Inspection</a></li>
      <li><a href="https://docs.wallarm.com/agentic-ai/rogue-mcp-inspection.md">Rogue MCP Inspection</a></li>
    </ul></p>
  </div>

</div>


<div class="navigation navigation-3col">

  <div class="navigation-card">
    <h3 class="icon-homepage deployment-title"><a href="https://docs.wallarm.com/installation/supported-deployment-options.md">Deployment <span class="card-arrow">→</span></a></h3>
    <p class="card-description">Deploy Wallarm using managed, self-hosted, or connector-based options.</p>
    <p><ul>
      <li><a href="https://docs.wallarm.com/installation/supported-deployment-options.md">All deployment options</a></li>
      <li><a href="https://docs.wallarm.com/installation/security-edge/overview.md">Security Edge (Managed)</a></li>
      <li><a href="https://docs.wallarm.com/installation/supported-deployment-options.md#kubernetes">Kubernetes</a></li>
      <li><a href="https://docs.wallarm.com/installation/supported-deployment-options.md#cloud-platforms">Cloud Platforms</a></li>
      <li><a href="https://docs.wallarm.com/installation/supported-deployment-options.md#api-gateways">API Gateways</a></li>
      <li><a href="https://docs.wallarm.com/installation/supported-deployment-options.md#cdn">CDN</a></li>
    </ul></p>
  </div>

  <div class="navigation-card">
    <h3 class="icon-homepage integration-title"><a href="https://docs.wallarm.com/user-guides/settings/integrations/integrations-intro.md">Integrations <span class="card-arrow">→</span></a></h3>
    <p class="card-description">Connect Wallarm with your existing security tools, SIEMs, and alerting systems.</p>
    <p><ul>
      <li><a href="https://docs.wallarm.com/user-guides/settings/integrations/email.md">Messaging & Alerts</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/settings/integrations/pagerduty.md">Incident Management</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/settings/integrations/splunk.md">SIEM & Analytics</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/settings/integrations/fluentd.md">Log Collectors</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/settings/integrations/amazon-s3.md">Cloud Storage</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/settings/integrations/webhook.md">Webhooks</a></li>
    </ul></p>
  </div>

  <div class="navigation-card">
    <h3 class="icon-homepage platform-management-title"><a href="https://docs.wallarm.com/platform-management/overview.md">Platform Management <span class="card-arrow">→</span></a></h3>
    <p class="card-description">Monitor threats, configure alerts, and manage access and infrastructure.</p>
    <p><ul>
      <li><a href="https://docs.wallarm.com/user-guides/events/overview.md">Monitoring & Events</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/triggers/triggers.md">Triggers & Alerts</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/search-and-filters/use-search.md">Search & Reports</a></li>
      <li><a href="https://docs.wallarm.com/user-guides/settings/users.md">Users & Access</a></li>
      <li><a href="https://docs.wallarm.com/troubleshooting/overview.md">Troubleshooting</a></li>
    </ul></p>
  </div>

</div>


<div class="demo-cta-section">
  <div class="demo-cta-content">
    <div class="demo-cta-left">
      <div class="demo-cta-label">NEW TO WALLARM?</div>
      <h2 class="demo-cta-heading">See How It All Works in 5 Minutes</h2>
      <a href="https://docs.wallarm.com/demo-videos/platform-overview.md" class="demo-cta-button">Watch the Overview</a>
    </div>
    <div class="demo-cta-right">
      <a href="https://docs.wallarm.com/demo-videos/platform-overview.md" class="demo-cta-video-link">
        <div class="demo-cta-video">
          <iframe src="https://player.vimeo.com/video/1077418935?h=8e650aed1a&title=0&byline=0&portrait=0&muted=1&autoplay=1&autopause=0&controls=0&loop=1" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
          <div class="demo-cta-video-overlay"></div>
        </div>
      </a>
    </div>
  </div>
</div>

<script>
/**
 * Homepage search behavior (MkDocs Material):
 * - Desktop (>= 960px): move the built-in header search into #homepage-search-mount
 *   and render results as a dropdown under the input.
 * - Tablet/Mobile (< 960px): restore search back to the header and let MkDocs Material
 *   handle search normally (overlay, toggle, back arrow, etc).
 *
 * Fixes:
 * - Mobile search icon opening a blank screen (search was moved/hidden).
 * - Mobile search icon sometimes "jumping" to the middle of the page (toggle opens but UI isn't in header).
 */
(function () {
  var BREAKPOINT = 960; // >= 960px = desktop, <= 959px = tablet/mobile
  var mql = window.matchMedia("(min-width: " + BREAKPOINT + "px)");

  // Remember original DOM position so we can restore exactly
  var original = { parent: null, nextSibling: null };

  function isHomepage() {
    var p = window.location.pathname.replace(/\/+$/, "");
    return p === "" || p.endsWith("/index.html") || p.endsWith("/index");
  }

  function getSearchEl() {
    // Search root (same element used by MkDocs Material)
    return document.querySelector(".md-search[data-md-component='search']");
  }

  function getHeaderContainerFallback() {
    // Best-effort header container where search usually lives
    return (
      document.querySelector(".md-header .md-header__inner") ||
      document.querySelector(".md-header") ||
      document.body
    );
  }

  function closeMaterialSearchToggle() {
    // MkDocs Material uses this checkbox to toggle the search overlay on mobile
    var toggle = document.getElementById("__search");
    if (toggle) toggle.checked = false;
  }

  function resetHomepageSearchState(searchEl) {
    if (!searchEl) return;

    // Remove homepage-only classes so default CSS/JS applies
    searchEl.classList.remove("homepage-search", "homepage-search--open");

    // Remove inline styles we set for homepage dropdown behavior
    var output = searchEl.querySelector(".md-search__output");
    if (output) {
      output.style.display = "";
      output.style.pointerEvents = "";
    }

    // Ensure toggle is closed to avoid a half-open/empty overlay state on mobile
    closeMaterialSearchToggle();
  }

  function restoreSearchToHeader(searchEl) {
    if (!searchEl) return;

    // Restore to the exact original DOM location if we have it
    if (original.parent) {
      if (original.nextSibling && original.nextSibling.parentNode === original.parent) {
        original.parent.insertBefore(searchEl, original.nextSibling);
      } else {
        original.parent.appendChild(searchEl);
      }
    } else {
      // Fallback if original was not recorded for some reason
      getHeaderContainerFallback().appendChild(searchEl);
    }

    resetHomepageSearchState(searchEl);
  }

  function mountSearchToHomepage(searchEl) {
    if (!searchEl) return;

    var mount = document.getElementById("homepage-search-mount");
    if (!mount) return;

    // Record original DOM position once
    if (!original.parent) {
      original.parent = searchEl.parentNode;
      original.nextSibling = searchEl.nextSibling; // can be null
    }

    if (!mount.contains(searchEl)) {
      mount.appendChild(searchEl);
    }

    searchEl.classList.add("homepage-search");

    // Homepage-only dropdown open/close hooks
    var input  = searchEl.querySelector("input[data-md-component='search-query'], .md-search__input");
    var output = searchEl.querySelector(".md-search__output");

    // Defensive: output must NOT intercept clicks when closed
    if (output) {
      output.style.display = "none";
      output.style.pointerEvents = "none";
    }

    function openDropdown() {
      searchEl.classList.add("homepage-search--open");
      if (output) {
        output.style.display = "";
        output.style.pointerEvents = "";
      }
    }

    function closeDropdown() {
      searchEl.classList.remove("homepage-search--open");
      if (output) {
        output.style.display = "none";
        output.style.pointerEvents = "none";
      }
    }

    // Attach homepage handlers only once
    if (input && !input.dataset.homepageSearchHooked) {
      input.dataset.homepageSearchHooked = "true";

      input.addEventListener("focus", openDropdown);
      input.addEventListener("click", openDropdown);
      input.addEventListener("input", openDropdown);

      // "/" focuses search on homepage desktop
      document.addEventListener("keydown", function (e) {
        if (!mql.matches) return; // desktop only
        if (!isHomepage()) return;
        if (!input) return;

        if (e.key === "/" && document.activeElement !== input) {
          e.preventDefault();
          openDropdown();
          input.focus();
        }
        if (e.key === "Escape") {
          closeDropdown();
        }
      });

      // Close dropdown when clicking outside
      document.addEventListener("pointerdown", function (e) {
        if (!mql.matches) return; // desktop only
        if (!isHomepage()) return;
        if (!searchEl.classList.contains("homepage-search--open")) return;

        if (typeof document.hasFocus === "function" && !document.hasFocus()) return;
        if (!e || !e.target || !(e.target instanceof Node)) return;

        if (searchEl.contains(e.target)) return;
        closeDropdown();
      }, { capture: true });

      // Close dropdown on blur (with small delay)
      input.addEventListener("blur", function () {
        setTimeout(function () {
          if (!mql.matches) return; // desktop only
          if (typeof document.hasFocus === "function" && !document.hasFocus()) return;
          if (document.activeElement && searchEl.contains(document.activeElement)) return;
          closeDropdown();
        }, 120);
      });
    }
  }

  function apply() {
    if (!isHomepage()) return;

    var searchEl = getSearchEl();
    if (!searchEl) return;

    if (mql.matches) {
      // Desktop: move search into homepage
      mountSearchToHomepage(searchEl);
    } else {
      // Tablet/Mobile: restore search back to header (default Material behavior)
      restoreSearchToHeader(searchEl);
    }
  }

  function init() {
    // Apply immediately
    apply();

    // Re-apply on breakpoint changes (resize/orientation)
    if (mql.addEventListener) {
      mql.addEventListener("change", apply);
    } else {
      // Safari fallback
      mql.addListener(apply);
    }

    // Extra safety: some browsers delay matchMedia updates
    window.addEventListener("resize", apply);

    // Ensure correct placement after full load (fonts/layout settle)
    window.addEventListener("load", apply);
  }

  // MkDocs Material navigation events
  if (window.document$ && typeof window.document$.subscribe === "function") {
    window.document$.subscribe(init);
  } else {
    document.addEventListener("DOMContentLoaded", init);
    document.addEventListener("navigation:load", init);
  }
})();
</script>

<style>
/* =====================================================
   Homepage search: DESKTOP ONLY
   Tablet and below → hide, header search is used instead
   ===================================================== */

/* Tablet and smaller */
@media screen and (max-width: 959px) {
  .homepage-actions { display: none !important; }
  .homepage .md-content__inner h1+p, .admonition {
    max-width: unset !important;
  }
}

.homepage .md-content__inner h1+p {
  max-width: unset !important;
}

/* Desktop-only homepage search styling */
@media screen and (min-width: 960px) {

/* ==========================
   Actions row: LEFT as before
   ========================== */

.homepage-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 24px;
  overflow: visible;

  /* key: do NOT center */
  align-self: flex-start;
  justify-content: flex-start;
  /* Match intro tile width (50% of grid minus half gap) */
  width: calc(50% - 8px);
}

/* Search expands to fill available width */
#homepage-search-mount {
  flex: 1;
  min-width: 280px;
  overflow: visible;
  border: 1px solid #DAE1EB;
  border-radius: 8px;
}

/* ==========================
   Search: keep it stable
   ========================== */

.md-search { padding: unset; }

#homepage-search-mount .md-search {
  position: relative;
  display: block;
  width: 100%;
}

/* Match button height */
#homepage-search-mount .md-search__inner {
  height: 44px;
  border: 1px solid #DAE1EB;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  background: #F9FAFB;
  width: 100%;
  display: flex;
  align-items: center;

  transition: none !important;

  /* KEY: anchor absolute ::after */
  position: relative;
}

#homepage-search-mount .md-search__inner:hover,
#homepage-search-mount .md-search__inner:active,
#homepage-search-mount .md-search__inner:focus,
#homepage-search-mount .md-search__inner:focus-within {
  background: #F9FAFB !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important;
  outline: none !important;
}

#homepage-search-mount .md-search__form {
  display: flex;
  align-items: center;
  height: 44px;
  background-color: #ffffff1f;
}

#homepage-search-mount .md-search__input {
  height: 44px;
  line-height: 44px;
  padding: 0 16px 0 44px;
  font-size: 15px;
  background: transparent !important;
  width: 100%;

  /* Reserve space on the right so UI/clear doesn't cover the badge */
  padding-right: 64px;
}

/* Keep left icon + options centered */
#homepage-search-mount .md-search__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
}

.md-search__icon[for=__search] { top: unset; }

#homepage-search-mount .md-search__options {
  display: inline-flex !important;
  align-items: center !important;
  height: 44px !important;
  gap: 6px;
}

/* Disable fullscreen overlay behavior on homepage (desktop dropdown instead) */
#homepage-search-mount .md-search__overlay {
  display: none !important;
}

/* Output dropdown under input */
#homepage-search-mount .md-search__output {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,0.12);
  z-index: 2;
}

/* Default: hidden + non-interactive */
#homepage-search-mount .md-search__output {
  display: none !important;
  pointer-events: none !important;
}

/* Only when open/focused: visible + interactive */
#homepage-search-mount .md-search__inner:focus-within .md-search__output,
#homepage-search-mount .md-search.homepage-search--open .md-search__output {
  display: block !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  transform: none !important;
}

#homepage-search-mount .md-search__scrollwrap {
  max-height: min(60vh, 26rem);
  width: unset;
}

/* Hotkey indicator for the search field (desktop only) */
#homepage-search-mount .md-search__inner::after {
  content: "⌘K";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 11px;
  font-weight: 500;
  color: #6B7280;
  background-color: white;
  border: 1px solid #D1D5DB;
  border-radius: 4px;
  padding: 2px 6px;
  pointer-events: none;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Hide the badge while typing (desktop dropdown UX) */
#homepage-search-mount .md-search__inner:focus-within::after,
#homepage-search-mount .md-search.homepage-search--open .md-search__inner::after {
  display: none !important;
}

/* Links in search results */
#homepage-search-mount a:hover {
  color: unset;
  text-decoration: none;
}

/* Lists styling ONLY inside homepage search results */
[dir=ltr] #homepage-search-mount .md-search-result__list {
  margin-top: 0;
  margin-left: 0;
  padding-left: 0;
}

[dir=ltr] #homepage-search-mount .md-search-result__item {
  margin-left: 0;
}

/* =========================================================
   Homepage search styling ONLY (ported from default styles)
   No header selectors, no toggle dependencies
   ========================================================= */

/* Input base style */
#homepage-search-mount .md-search__input {
  color: #000000;
  border-radius: .1rem;
}

/* Input background when NOT focused */
#homepage-search-mount .md-search__input:not(:focus-visible) {
  background-color: #F7F7F8;
}

/* Placeholder color */
#homepage-search-mount input.md-search__input::placeholder {
  color: #959DAC;
}

/* Search icon color */
#homepage-search-mount .md-search__icon,
#homepage-search-mount .md-search__icon svg {
  color: #959DAC;
}

/* Result meta background */
#homepage-search-mount .md-search-result__meta {
  background-color: #FAFAFB;
}

/* Result link hover / focus */
#homepage-search-mount a.md-search-result__link:hover {
  background-color: #F7F7F8;
  box-shadow: inset 0px -1px 0px rgba(229, 229, 229, 0.5);
}

#homepage-search-mount .md-search-result__link:focus code,
#homepage-search-mount .md-search-result__link:hover code {
    background-color: unset !important;
}

#homepage-search-mount .md-search-result__link:focus,
#homepage-search-mount .md-search-result__link:hover {
  background-color: #F7F7F8;
}

/* "More results" hover / focus */
#homepage-search-mount .md-search-result__more > summary:focus > div,
#homepage-search-mount .md-search-result__more > summary:hover > div {
  background-color: #F7F7F8;
  box-shadow: inset 0px -1px 0px rgba(229, 229, 229, 0.5);
}

#homepage-search-mount .md-search-result__more > summary {
    padding-right: 0px;
    padding-top: 0px;
    padding-left: 0px;
    padding-bottom: 0px;
    background-color: var(--md-default-bg-color) !important;
}

#homepage-search-mount .md-search-result__more {
    border: unset;
}

#homepage-search-mount .md-search-result__more > summary:before {
    display: none !important;
}

/* Highlighted matches */
#homepage-search-mount .md-search-result em {
  color: #FC7303;
  text-decoration: none;
  font-weight: inherit;
}

/* ==========================
   Search button: fixed height
   ========================== */

.md-search__button {
  width: 100%;
  height: 44px;
  background-color: #F9FAFB;
  border-radius: 8px;
  font-size: 15px;
  color: rgb(160, 160, 160);
}

.md-search__button:before {
  background-color: rgb(160, 160, 160);
  top: unset;
}

.md-search__button:after {
  top: .60rem;
  background: white;
  border: 1px solid #DAE1EB;
}

.md-search__button:focus, .md-search__button:hover {
  background-color: #F9FAFB;
  color: rgb(160, 160, 160);
}

.homepage-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  height: 44px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 400;
  text-align: center;
  border: 1px solid #DAE1EB;
  cursor: pointer;
  font-size: 15px;
  font-family: inherit;
}

/* Keep desktop actions row stable on small desktop widths */
@media screen and (max-width: 1100px) {
  .homepage-actions { width: 100%; }
}

} /* end min-width: 960px desktop block */

/* (Your existing styles below can remain as-is) */

.navigation-1col { margin-bottom: 24px; }

.card-arrow {
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  display: inline-block;
}

.navigation-card:hover .card-arrow {
  opacity: 1;
  transform: translateX(3px);
}

.navigation-card { position: relative; }

.navigation-card h3 a::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 0;
}

.navigation-card ul a { position: relative; z-index: 1; }

.navigation-4col {
  grid-template-columns: repeat(4, 1fr) !important;
  margin-bottom: 24px;
}

.navigation-3col {
  grid-template-columns: repeat(3, 1fr) !important;
  margin-bottom: 48px;
}

@media screen and (max-width: 1100px) {
  .navigation-4col { grid-template-columns: repeat(2, 1fr) !important; }
}

@media screen and (max-width: 900px) {
  .navigation-3col { grid-template-columns: repeat(2, 1fr) !important; }
}

@media screen and (max-width: 600px) {
  .navigation-4col,
  .navigation-3col {
    grid-template-columns: repeat(1, 1fr) !important;
  }
}

/* Demo CTA Section */
.demo-cta-section {
  background-color: #121B28;
  border-radius: 12px;
  padding: 48px;
  margin-top: 24px;
  margin-bottom: 24px;
}

.demo-cta-content {
  display: flex;
  gap: 48px;
  align-items: center;
}

.demo-cta-left { flex: 1; }

.demo-cta-label {
  color: #FC7303;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  margin-bottom: 12px;
}

.demo-cta-heading {
  color: white !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  margin: 0 0 24px 0 !important;
  line-height: 1.3 !important;
}

.demo-cta-right { flex: 1; }

.demo-cta-video-link {
  display: block;
  text-decoration: none;
}

.demo-cta-video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 5px 5px 0 #FC7303;
  background-color: white;
  position: relative;
  cursor: pointer;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.demo-cta-video:hover {
  box-shadow: 7px 7px 0 #FC7303;
  transform: translate(-2px, -2px);
}

.demo-cta-video iframe {
  width: 100%;
  height: 100%;
  border: none;
  pointer-events: none;
}

.demo-cta-video-overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  cursor: pointer;
}

.demo-cta-button {
  display: inline-block;
  background-color: #3B82F6;
  color: white !important;
  padding: 14px 32px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 16px;
  text-decoration: none !important;
  transition: all 0.2s ease;
}

.demo-cta-button:hover {
  background-color: #2563EB;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
  color: white !important;
  text-decoration: none !important;
}

@media screen and (max-width: 900px) {
  .demo-cta-content { flex-direction: column; gap: 32px; }
  .demo-cta-section { padding: 32px; }
  .demo-cta-heading { font-size: 24px !important; }
}

@media screen and (max-width: 600px) {
  .demo-cta-section { padding: 24px; }
  .demo-cta-heading { font-size: 20px !important; }
}

@media screen and (max-width: 475px) {
  .md-header__title {
    display: none !important;
  }
}

button.md-clipboard-page {
  display: none;
}

a.md-content__button {
  display: none;
}

</style>