/* Codex: 本样式表包含主题迭代中新增或调整的页面样式，后续维护请保留现有覆盖顺序。 */
/* 2023-03-02 新增解决方案 */
.server-banner2 {
  color: #fff;
  background-size: cover;
}
.server-banner2 a {
  color: #fff;
}
.e-commerce {
  background: url(../assets/img/solution/e-commerce.png) no-repeat center center;
}
.finance {
  background: url(../assets/img/solution/finance.png) no-repeat center center;
}
.game {
  background: url(../assets/img/solution/game.png) no-repeat center center;
}
.auto {
  background: url(../assets/img/solution/auto.png) no-repeat center center;
}
.travel {
  background: url(../assets/img/solution/travel.png) no-repeat center center;
}
.education {
  background: url(../assets/img/solution/education.png) no-repeat center center;
}
.medical {
  background: url(../assets/img/solution/medical.png) no-repeat center center;
}
.agriculture {
  background: url(../assets/img/solution/agriculture.png) no-repeat center center;
}
.solution-trend {
  background: #fff;
}
.solution-trend .trend-box {
  border: 1px solid #E6EAED;
  background: linear-gradient(180deg, #FFFFFF 0%, #F7F8FA 100%);
  padding: 0;
}
.solution-trend .trend-box .con {
  padding: 30px;
}
.solution-trend .trend-box img {
  height: 190px;
}
.solution-scene .scene-box {
  padding-top: 38px;
  padding-left: 34px;
  padding-right: 34px;
  gap: 93px;
}
.solution-scene .scene-box img {
  width: 680px;
  height: 488px;
}
.arrange-way {
  background: #F7F8FA;
}
.arrange-way .img {
  margin-top: 50px;
}
.arrange-way img {
  max-width: 100%;
  margin: 0 auto;
}
.mt-18 {
  margin-top: 18px;
}
.gallery-top .scene-cont p {
  position: relative;
  padding-left: 10px;
}
.gallery-top .scene-cont p::after {
  content: '';
  width: 4px;
  height: 4px;
  background: #FF6739;
  border-radius: 50%;
  opacity: 1;
  position: absolute;
  top: 8px;
  left: 0;
}
.gallery-top .scene-cont .des {
  font-size: 14px;
  color: rgba(0, 0, 0, 0.6);
  padding-left: 0;
  margin-top: 16px;
}
.gallery-top .scene-cont .des::after {
  width: 0;
}
.section {
  max-width: 1920px;
  margin: 0 auto;
}
.solution-advantage .advantage {
  height: 824px;
  background: #F7F8FA url(../assets/img/solution/line.png) no-repeat center center;
  background-size: 100% 100%;
}
.solution-advantage .section-title {
  padding-top: 80px;
}
.solution-advantage .advantage-list {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.solution-advantage .box {
  width: 22px;
  height: 22px;
  position: absolute;
}
.solution-advantage .box .dot {
  width: 22px;
  height: 22px;
  background: url(../assets/img/solution/dot.png) no-repeat;
  background-size: cover;
  display: block;
  z-index: 2;
}
.solution-advantage .box:nth-child(1) {
  left: 21.25%;
  bottom: 7.52427184%;
}
.solution-advantage .box:nth-child(2) {
  left: 40%;
  bottom: 23.05825243%;
}
.solution-advantage .box:nth-child(3) {
  left: 58.75%;
  bottom: 8.00970874%;
}
.solution-advantage .box:nth-child(4) {
  left: 77.5%;
  bottom: 23.30097087%;
}
.solution-advantage .advantage-box {
  width: 320px;
  height: 336px;
  position: absolute;
  left: -149px !important;
  bottom: 90px !important;
  position: relative;
}
.solution-advantage .advantage-box img {
  background: none;
}
.solution-advantage .line {
  width: 100%;
  height: 170px;
  background: url(../assets/img/solution/line.png) no-repeat center center;
  background-size: 100% 100%;
  position: absolute;
  bottom: 54px;
  left: 0;
}
.solution-future {
  background: url(../assets/img/solution/e_commerce_11.png) no-repeat;
  background-size: cover;
}
.btn-dark {
  background: #FF6739;
  outline: none;
  color: #fff;
}
.btn-dark:focus {
  outline: none !important;
  color: #fff;
  box-shadow: none !important;
}
.solution-future .solution-contact .form-group input,
.solution-future .solution-contact .form-group textarea {
  background: #F7F8F9;
  border: 1px solid #E6EAED;
  resize: none;
}
.solution-future .solution-contact .form-group input:focus,
.solution-future .solution-contact .form-group textarea:focus {
  border-color: #FF6739;
}
@media screen and (max-width: 1800px) {
  .solution-advantage .advantage-box {
    padding: 20px;
    width: 260px;
    height: 300px;
    left: -124px !important;
  }
}
@media screen and (max-width: 1400px) {
  .solution-advantage .advantage-box {
    padding: 10px;
    width: 220px;
    height: 300px;
    left: -105px !important;
  }
}

/* 啸月网络新版解决方案页 */
.xy-solution-page {
  color: #172033;
  background: #f3f6fb;
  overflow-x: hidden;
  letter-spacing: 0;
}

.xy-solution-page img {
  max-width: 100%;
}

.xy-solution-page main .container {
  width: min(1220px, calc(100% - 40px));
  max-width: 1220px;
  padding-right: 0;
  padding-left: 0;
}

.xy-solution-hero {
  position: relative;
  min-height: 560px;
  display: flex;
  align-items: center;
  color: #fff;
  background:
    linear-gradient(105deg, rgba(3, 11, 26, .92), rgba(6, 27, 64, .84) 48%, rgba(8, 43, 96, .64)),
    radial-gradient(circle at 76% 24%, rgba(32, 183, 255, .32), transparent 32%),
    linear-gradient(rgba(255, 255, 255, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .018) 1px, transparent 1px),
    #06152f;
  background-size: auto, auto, 48px 48px, 48px 48px, auto;
  overflow: hidden;
}

.xy-solution-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 90px;
  background: linear-gradient(180deg, rgba(243, 246, 251, 0), #f3f6fb);
  pointer-events: none;
}

.xy-solution-hero .container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 460px);
  gap: 64px;
  align-items: center;
  direction: ltr;
  padding-top: 86px;
  padding-bottom: 86px;
}

.xy-solution-hero-copy {
  grid-column: 1;
  max-width: 760px;
}

.xy-solution-eyebrow,
.xy-solution-title span,
.xy-solution-cta span {
  display: block;
  margin-bottom: 12px;
  color: #20b7ff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
}

.xy-solution-hero h1 {
  margin: 0 0 20px;
  color: #fff;
  font-size: 46px;
  font-weight: 900;
  line-height: 1.2;
  text-shadow: 0 12px 26px rgba(0, 0, 0, .3);
}

.xy-solution-hero p {
  max-width: 720px;
  margin: 0 0 28px;
  color: rgba(235, 244, 255, .82);
  font-size: 17px;
  line-height: 1.8;
}

.xy-solution-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.xy-solution-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.xy-solution-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  color: rgba(235, 244, 255, .9);
  font-size: 13px;
  font-weight: 800;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(141, 194, 255, .24);
  border-radius: 3px;
}

.xy-solution-visual {
  position: relative;
  grid-column: 2;
  min-height: 450px;
  padding-bottom: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  isolation: isolate;
}

.xy-solution-visual::before,
.xy-solution-visual::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(141, 194, 255, .22);
  border-radius: 50%;
  pointer-events: none;
}

.xy-solution-visual::before {
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(32, 183, 255, .16), rgba(0, 91, 255, .04) 52%, transparent 70%);
}

.xy-solution-visual::after {
  width: 285px;
  height: 285px;
  border-color: rgba(255, 255, 255, .16);
}

.xy-solution-visual img {
  position: relative;
  z-index: 1;
  width: min(380px, 86%);
  transform: translateY(-32px);
  filter: drop-shadow(0 30px 46px rgba(0, 0, 0, .28));
}

.xy-solution-visual-card {
  position: absolute;
  z-index: 2;
  min-width: 148px;
  max-width: 168px;
  padding: 12px 14px;
  color: #fff;
  background: rgba(6, 20, 46, .78);
  border: 1px solid rgba(141, 194, 255, .28);
  border-left: 3px solid #20b7ff;
  border-radius: 4px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .2);
  backdrop-filter: blur(10px);
}

.xy-solution-visual-card b {
  display: block;
  margin-bottom: 6px;
  color: #20b7ff;
  font-size: 12px;
  font-weight: 900;
}

.xy-solution-visual-card strong {
  display: block;
  margin-bottom: 4px;
  font-size: 18px;
  line-height: 1.2;
}

.xy-solution-visual-card span {
  color: rgba(235, 244, 255, .76);
  font-size: 13px;
}

.xy-solution-visual-card-main {
  left: 34px;
  bottom: 6px;
}

.xy-solution-visual-card-sub {
  right: 34px;
  top: auto;
  bottom: 6px;
}

.xy-solution-ecommerce .xy-solution-hero {
  background:
    linear-gradient(105deg, rgba(3, 11, 26, .92), rgba(6, 27, 64, .84) 48%, rgba(112, 54, 8, .54)),
    radial-gradient(circle at 78% 22%, rgba(255, 145, 55, .25), transparent 32%),
    linear-gradient(rgba(255, 255, 255, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .018) 1px, transparent 1px),
    #06152f;
  background-size: auto, auto, 48px 48px, 48px 48px, auto;
}

.xy-solution-enterprise .xy-solution-hero {
  background:
    linear-gradient(105deg, rgba(3, 11, 26, .92), rgba(7, 35, 74, .84) 50%, rgba(5, 70, 104, .58)),
    radial-gradient(circle at 78% 22%, rgba(20, 184, 166, .24), transparent 32%),
    linear-gradient(rgba(255, 255, 255, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .018) 1px, transparent 1px),
    #06152f;
  background-size: auto, auto, 48px 48px, 48px 48px, auto;
}

.xy-solution-ddos .xy-solution-hero {
  background:
    linear-gradient(105deg, rgba(3, 11, 26, .94), rgba(7, 26, 61, .86) 48%, rgba(120, 27, 27, .52)),
    radial-gradient(circle at 78% 22%, rgba(248, 113, 113, .24), transparent 32%),
    linear-gradient(rgba(255, 255, 255, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .018) 1px, transparent 1px),
    #06152f;
  background-size: auto, auto, 48px 48px, 48px 48px, auto;
}

.xy-solution-section {
  padding: 76px 0 84px;
  background: #fff;
}

.xy-solution-section-light {
  background: #f3f6fb;
}

.xy-solution-title {
  max-width: 820px;
  margin: 0 auto 38px;
  text-align: center;
}

.xy-solution-title h2 {
  margin: 0 0 14px;
  color: #0f172a;
  font-size: 34px;
  font-weight: 900;
  line-height: 1.25;
}

.xy-solution-title p {
  margin: 0;
  color: #64748b;
  font-size: 15px;
  line-height: 1.8;
}

.xy-solution-card-grid,
.xy-solution-flow,
.xy-solution-resource-grid {
  display: grid;
  gap: 22px;
}

.xy-solution-card-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.xy-solution-card {
  min-height: 226px;
  padding: 26px 24px;
  background: linear-gradient(180deg, #fff, #f8fbff);
  border: 1px solid #dbe4f0;
  border-radius: 4px;
  box-shadow: 0 12px 32px rgba(15, 34, 70, .06);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.xy-solution-card:hover,
.xy-solution-resource-grid article:hover {
  border-color: rgba(0, 91, 255, .34);
  box-shadow: 0 18px 42px rgba(15, 34, 70, .1);
  transform: translateY(-4px);
}

.xy-solution-card h3,
.xy-solution-resource-grid h3,
.xy-solution-flow h3 {
  margin: 18px 0 12px;
  color: #0f172a;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.3;
}

.xy-solution-card p,
.xy-solution-resource-grid p,
.xy-solution-flow p {
  margin: 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.75;
}

.xy-solution-icon {
  --xy-solution-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M13 8h38a5 5 0 0 1 5 5v38a5 5 0 0 1-5 5H13a5 5 0 0 1-5-5V13a5 5 0 0 1 5-5Zm3 8v10h32V16H16Zm0 15v10h32V31H16Zm5-12h6v4h-6v-4Zm0 15h6v4h-6v-4Zm23-16h4v4h-4v-4Zm-8 0h4v4h-4v-4Zm8 15h4v4h-4v-4Zm-8 0h4v4h-4v-4ZM12 59h40v4H12v-4Z'/%3E%3C/svg%3E");
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  color: #005bff;
  background: #edf5ff;
  border: 1px solid #d8e8ff;
  border-radius: 6px;
}

.xy-solution-icon::before {
  content: "";
  width: 28px;
  height: 28px;
  background: currentColor;
  -webkit-mask: var(--xy-solution-icon) center / contain no-repeat;
  mask: var(--xy-solution-icon) center / contain no-repeat;
}

.xy-solution-icon-game {
  --xy-solution-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M18 22h28a12 12 0 0 1 11.5 8.6l4.2 14.7A7 7 0 0 1 50 52l-7-7H21l-7 7a7 7 0 0 1-11.7-6.7l4.2-14.7A12 12 0 0 1 18 22Zm4 8h-5v5h-5v5h5v5h5v-5h5v-5h-5v-5Zm22 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm10 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z'/%3E%3C/svg%3E");
}

.xy-solution-icon-shield,
.xy-solution-icon-lock {
  --xy-solution-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M32 4 54 12v17c0 15-9.4 25.5-22 31C19.4 54.5 10 44 10 29V12L32 4Zm0 8-15 5.4V29c0 10 5.8 18.2 15 23 9.2-4.8 15-13 15-23V17.4L32 12Zm-8 23h16v10H24V35Zm3-5a5 5 0 0 1 10 0v5h-4v-5a1 1 0 0 0-2 0v5h-4v-5Z'/%3E%3C/svg%3E");
}

.xy-solution-icon-route {
  --xy-solution-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M32 8a10 10 0 0 1 10 10c0 1.7-.4 3.3-1.1 4.7l8 8A10 10 0 1 1 44.7 35l-8-8a10 10 0 0 1-9.4 0l-8 8A10 10 0 1 1 15 30.7l8-8A10 10 0 0 1 32 8Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6ZM12 37a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm40 0a3 3 0 1 0 0 6 3 3 0 0 0 0-6ZM29 30h6v16h8v7H21v-7h8V30Z'/%3E%3C/svg%3E");
}

.xy-solution-icon-database {
  --xy-solution-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M32 6c14 0 24 4.5 24 11v30c0 6.5-10 11-24 11S8 53.5 8 47V17C8 10.5 18 6 32 6Zm0 8c-10 0-16 2.4-16 4s6 4 16 4 16-2.4 16-4-6-4-16-4Zm-16 13v6c0 1.6 6 4 16 4s16-2.4 16-4v-6c-4.3 2.2-10.6 3-16 3s-11-.8-16-3Zm0 17v3c0 1.6 6 4 16 4s16-2.4 16-4v-3c-4.3 2.2-10.6 3-16 3s-11-.8-16-3Z'/%3E%3C/svg%3E");
}

.xy-solution-icon-shop {
  --xy-solution-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M10 10h8l4 8h40l-7 24H24l-3 6h39v6H16l6-13-9-31h-3Zm17 26h22l4-14H23l4 14ZM24 58a4 4 0 1 1 0 8 4 4 0 0 1 0-8Zm31 0a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z'/%3E%3C/svg%3E");
}

.xy-solution-icon-website {
  --xy-solution-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M8 12h48v36H8V12Zm6 8v22h38V20H14Zm6 28h24v6h10v6H10v-6h10v-6Zm4-24h20v5H24v-5Zm0 9h14v5H24v-5Z'/%3E%3C/svg%3E");
}

.xy-solution-icon-support {
  --xy-solution-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M32 8a20 20 0 0 0-20 20v9a8 8 0 0 0 8 8h4V27h-8a16 16 0 0 1 32 0h-8v18h5a11 11 0 0 1-10 7h-7v6h7a17 17 0 0 0 16-12 8 8 0 0 0 1-15v-3A20 20 0 0 0 32 8Zm-2 22h4v5h5v4h-5v5h-4v-5h-5v-4h5v-5Z'/%3E%3C/svg%3E");
}

.xy-solution-flow {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.xy-solution-flow article {
  position: relative;
  min-height: 220px;
  padding: 28px 24px;
  background: #fff;
  border: 1px solid #dbe4f0;
  border-radius: 4px;
}

.xy-solution-flow article::after {
  content: "";
  position: absolute;
  right: -22px;
  top: 50%;
  width: 22px;
  height: 1px;
  background: #cfe0f3;
}

.xy-solution-flow article:last-child::after {
  display: none;
}

.xy-solution-flow span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: #005bff;
  font-size: 14px;
  font-weight: 900;
  background: #edf5ff;
  border: 1px solid #d8e8ff;
  border-radius: 50%;
}

.xy-solution-resource-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.xy-solution-resource-grid article {
  min-height: 360px;
  display: flex;
  flex-direction: column;
  padding: 28px 26px;
  background: linear-gradient(180deg, #fff, #f8fbff);
  border: 1px solid #dbe4f0;
  border-radius: 4px;
  box-shadow: 0 12px 32px rgba(15, 34, 70, .06);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.xy-solution-resource-grid h3 {
  margin-top: 0;
  font-size: 22px;
}

.xy-solution-resource-grid ul {
  display: grid;
  gap: 10px;
  margin: 22px 0 24px;
  padding: 0;
  list-style: none;
}

.xy-solution-resource-grid li {
  position: relative;
  padding-left: 16px;
  color: #334155;
  font-size: 14px;
  line-height: 1.55;
}

.xy-solution-resource-grid li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .7em;
  width: 5px;
  height: 5px;
  background: #20b7ff;
  border-radius: 50%;
}

.xy-solution-resource-grid a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  margin-top: auto;
  padding: 0 18px;
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  background: #005bff;
  border-radius: 3px;
  transition: background .18s ease, transform .18s ease;
}

.xy-solution-resource-grid a:hover {
  color: #fff;
  background: #0048d9;
  transform: translateY(-2px);
}

.xy-solution-cta {
  position: relative;
  margin-bottom: 44px;
  color: #fff;
  background:
    linear-gradient(108deg, rgba(3, 11, 26, .94) 0%, rgba(6, 28, 68, .9) 46%, rgba(8, 43, 96, .78) 100%),
    linear-gradient(135deg, #07162f 0%, #082c68 58%, #0b4f9c 100%);
  overflow: hidden;
}

.xy-solution-cta::before {
  content: "";
  position: absolute;
  inset: 20px 0 auto;
  height: 110px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, .16), rgba(160, 208, 255, .08) 42%, rgba(255, 255, 255, 0) 72%);
  opacity: .42;
  pointer-events: none;
}

.xy-solution-cta .container {
  position: relative;
  z-index: 1;
  min-height: 196px;
  display: grid;
  grid-template-columns: minmax(0, 820px) minmax(270px, 1fr);
  gap: 52px;
  align-items: center;
  direction: ltr;
  padding-top: 28px;
  padding-bottom: 28px;
}

.xy-solution-cta .container > div:first-child {
  grid-column: 1;
}

.xy-solution-cta h2 {
  margin: 0 0 12px;
  color: #fff;
  font-size: 32px;
  font-weight: 900;
  line-height: 1.28;
  text-shadow: 0 10px 24px rgba(0, 0, 0, .28);
}

.xy-solution-cta p {
  max-width: 820px;
  margin: 0;
  color: rgba(235, 244, 255, .84);
  font-size: 16px;
  line-height: 1.72;
}

.xy-solution-cta .xy-solution-actions {
  grid-column: 2;
  justify-content: flex-end;
}

@media (max-width: 1199px) {
  .xy-solution-hero .container {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .xy-solution-visual {
    display: none;
  }

  .xy-solution-card-grid,
  .xy-solution-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .xy-solution-flow article::after {
    display: none;
  }
}

@media (max-width: 991px) {
  .xy-solution-resource-grid,
  .xy-solution-cta .container {
    grid-template-columns: 1fr;
  }

  .xy-solution-cta .xy-solution-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .xy-solution-page main .container {
    width: calc(100% - 30px);
    max-width: calc(100% - 30px);
  }

  .xy-solution-hero {
    min-height: 430px;
  }

  .xy-solution-hero .container {
    padding-top: 88px;
    padding-bottom: 58px;
  }

  .xy-solution-hero h1 {
    font-size: 30px;
    line-height: 1.25;
  }

  .xy-solution-hero p,
  .xy-solution-cta p {
    font-size: 14px;
  }

  .xy-solution-section {
    padding: 58px 0 64px;
  }

  .xy-solution-title {
    margin-bottom: 28px;
    text-align: left;
  }

  .xy-solution-title h2,
  .xy-solution-cta h2 {
    font-size: 26px;
  }

  .xy-solution-card-grid,
  .xy-solution-flow,
  .xy-solution-resource-grid {
    grid-template-columns: 1fr;
  }

  .xy-solution-card,
  .xy-solution-flow article,
  .xy-solution-resource-grid article {
    min-height: 0;
    padding: 24px 20px;
  }

  .xy-solution-actions {
    width: 100%;
  }

  .xy-solution-actions .xy-primary-btn,
  .xy-solution-actions .xy-outline-btn {
    width: 100%;
    min-height: 44px;
  }

  .xy-solution-tags span {
    min-height: 32px;
  }
}

/* v108 unified polished solution pages */
body.xy-solution-page {
  margin: 0;
}

.xy-solution-page main,
.xy-solution-page main * {
  box-sizing: border-box;
}

.xy-solution-page {
  --xy-solution-accent: #2563eb;
  --xy-solution-accent-2: #38bdf8;
  --xy-solution-accent-soft: rgba(37, 99, 235, .12);
  --xy-solution-ink: #0f172a;
  --xy-solution-muted: #64748b;
  --xy-solution-line: #e8eef7;
  background: #f6f8fc;
}

.xy-solution-game {
  --xy-solution-accent: #2563eb;
  --xy-solution-accent-2: #7c3aed;
  --xy-solution-accent-soft: rgba(37, 99, 235, .13);
}

.xy-solution-ecommerce {
  --xy-solution-accent: #0f8ee8;
  --xy-solution-accent-2: #10b981;
  --xy-solution-accent-soft: rgba(16, 185, 129, .13);
}

.xy-solution-enterprise {
  --xy-solution-accent: #1d6fe8;
  --xy-solution-accent-2: #06b6d4;
  --xy-solution-accent-soft: rgba(6, 182, 212, .13);
}

.xy-solution-ddos {
  --xy-solution-accent: #1d6fe8;
  --xy-solution-accent-2: #22c55e;
  --xy-solution-accent-soft: rgba(34, 197, 94, .14);
}

.xy-solution-page main .container {
  width: min(1280px, calc(100% - 48px));
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}

.xy-solution-page .xy-solution-hero {
  min-height: 480px;
  color: #fff;
  background:
    radial-gradient(circle at 78% 26%, rgba(56, 189, 248, .22), transparent 31%),
    radial-gradient(circle at 16% 24%, rgba(37, 99, 235, .28), transparent 28%),
    linear-gradient(rgba(255, 255, 255, .022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .022) 1px, transparent 1px),
    linear-gradient(112deg, #020817 0%, #06142d 48%, #0b2b5f 100%);
  background-size: auto, auto, 46px 46px, 46px 46px, auto;
}

.xy-solution-page .xy-solution-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(255, 255, 255, .06), transparent 27%),
    radial-gradient(circle at 58% 50%, rgba(255, 255, 255, .08), transparent 30%);
  opacity: .56;
  pointer-events: none;
}

.xy-solution-page .xy-solution-hero::after {
  height: 72px;
  background: linear-gradient(180deg, rgba(246, 248, 252, 0), #f6f8fc);
}

.xy-solution-page .xy-solution-hero .container {
  grid-template-columns: minmax(0, 1fr) minmax(420px, 500px);
  gap: 72px;
  min-height: 480px;
  padding-top: 56px;
  padding-bottom: 40px;
}

.xy-solution-page .xy-solution-hero-copy {
  max-width: 720px;
}

.xy-solution-page .xy-solution-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin: 0 0 18px;
  padding: 0 12px;
  color: #bfdbfe;
  background: rgba(37, 99, 235, .18);
  border: 1px solid rgba(147, 197, 253, .22);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}

.xy-solution-page .xy-solution-hero h1 {
  margin-bottom: 18px;
  font-size: clamp(42px, 4.1vw, 52px);
  font-weight: 800;
  line-height: 1.16;
  text-shadow: none;
}

.xy-solution-page .xy-solution-hero p {
  max-width: 620px;
  margin-bottom: 28px;
  color: rgba(255, 255, 255, .78);
  font-size: 17px;
  line-height: 1.72;
}

.xy-solution-page .xy-solution-actions {
  gap: 12px;
}

.xy-solution-page .xy-primary-btn,
.xy-solution-page .xy-outline-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 22px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.xy-solution-page .xy-primary-btn {
  color: #fff;
  background: linear-gradient(135deg, var(--xy-solution-accent), #0066ff);
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 14px 28px rgba(0, 102, 255, .26);
}

.xy-solution-page .xy-outline-btn {
  color: #eef6ff;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .30);
}

.xy-solution-page .xy-primary-btn:hover,
.xy-solution-page .xy-outline-btn:hover {
  color: #fff;
  transform: translateY(-2px);
}

.xy-solution-page .xy-outline-btn:hover {
  background: rgba(255, 255, 255, .10);
  border-color: rgba(255, 255, 255, .46);
}

.xy-solution-page .xy-solution-tags {
  gap: 10px;
  margin-top: 24px;
}

.xy-solution-page .xy-solution-tags span {
  min-height: 32px;
  padding: 0 13px;
  color: #dbeafe;
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
}

.xy-solution-page .xy-solution-visual {
  min-height: 390px;
  padding: 0;
}

.xy-solution-page .xy-solution-visual::before,
.xy-solution-page .xy-solution-visual::after,
.xy-solution-page .xy-solution-visual img,
.xy-solution-page .xy-solution-visual-card {
  display: none;
}

.xy-solution-page .xy-solution-visual-panel {
  position: relative;
  width: 100%;
  min-height: 332px;
  padding: 22px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(15, 23, 42, .72), rgba(15, 23, 42, .46));
  border: 1px solid rgba(147, 197, 253, .22);
  border-radius: 24px;
  box-shadow: 0 28px 68px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .08);
  backdrop-filter: blur(14px);
}

.xy-solution-page .xy-solution-visual-panel::before {
  content: "";
  position: absolute;
  inset: -30% -18% auto auto;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, var(--xy-solution-accent-soft), transparent 67%);
  pointer-events: none;
}

.xy-solution-page .xy-solution-visual-panel::after {
  content: "";
  position: absolute;
  inset: auto 26px 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(147, 197, 253, .42), transparent);
}

.xy-solution-page .xy-solution-visual-head {
  position: relative;
  z-index: 1;
  margin-bottom: 18px;
}

.xy-solution-page .xy-solution-visual-head span {
  display: block;
  margin-bottom: 8px;
  color: #93c5fd;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}

.xy-solution-page .xy-solution-visual-head strong {
  display: block;
  color: #fff;
  font-size: 21px;
  font-weight: 800;
  line-height: 1.3;
}

.xy-solution-page .xy-solution-link-map {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.xy-solution-page .xy-solution-link-map::before {
  content: "";
  position: absolute;
  inset: 50% 18px auto;
  height: 1px;
  background: linear-gradient(90deg, rgba(147, 197, 253, 0), rgba(147, 197, 253, .42), rgba(147, 197, 253, 0));
}

.xy-solution-page .xy-solution-node,
.xy-solution-page .xy-solution-launch-flow article,
.xy-solution-page .xy-solution-defense-flow article {
  position: relative;
  min-height: 88px;
  padding: 16px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(191, 219, 254, .18);
  border-radius: 16px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.xy-solution-page .xy-solution-node:hover,
.xy-solution-page .xy-solution-launch-flow article:hover,
.xy-solution-page .xy-solution-defense-flow article:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, .12);
  border-color: rgba(147, 197, 253, .38);
}

.xy-solution-page .xy-solution-node i,
.xy-solution-page .xy-solution-launch-flow i,
.xy-solution-page .xy-solution-defense-flow i {
  display: inline-flex;
  width: 34px;
  height: 34px;
  margin-bottom: 10px;
  background: linear-gradient(135deg, var(--xy-solution-accent), var(--xy-solution-accent-2));
  border-radius: 12px;
  box-shadow: 0 14px 26px rgba(37, 99, 235, .22);
}

.xy-solution-page .xy-solution-node b,
.xy-solution-page .xy-solution-launch-flow b,
.xy-solution-page .xy-solution-defense-flow b {
  display: block;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.3;
}

.xy-solution-page .xy-solution-node span,
.xy-solution-page .xy-solution-launch-flow span,
.xy-solution-page .xy-solution-defense-flow span {
  display: block;
  margin-top: 6px;
  color: rgba(219, 234, 254, .72);
  font-size: 13px;
  line-height: 1.45;
}

.xy-solution-page .xy-solution-node-accent {
  background: linear-gradient(135deg, rgba(37, 99, 235, .2), rgba(255, 255, 255, .08));
  border-color: rgba(96, 165, 250, .36);
}

.xy-solution-page .xy-solution-visual-metrics {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.xy-solution-page .xy-solution-visual-metrics span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  color: #dbeafe;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.xy-solution-page .xy-solution-mini-chart {
  position: relative;
  z-index: 1;
  height: 64px;
  margin: 0 0 14px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: end;
  gap: 10px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(191, 219, 254, .15);
  border-radius: 16px;
}

.xy-solution-page .xy-solution-mini-chart span {
  display: block;
  min-height: 18px;
  border-radius: 999px 999px 4px 4px;
  background: linear-gradient(180deg, var(--xy-solution-accent-2), var(--xy-solution-accent));
}

.xy-solution-page .xy-solution-mini-chart span:nth-child(1) { height: 24px; }
.xy-solution-page .xy-solution-mini-chart span:nth-child(2) { height: 38px; }
.xy-solution-page .xy-solution-mini-chart span:nth-child(3) { height: 56px; }
.xy-solution-page .xy-solution-mini-chart span:nth-child(4) { height: 42px; }
.xy-solution-page .xy-solution-mini-chart span:nth-child(5) { height: 66px; }

.xy-solution-page .xy-solution-launch-flow,
.xy-solution-page .xy-solution-defense-flow {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 14px;
}

.xy-solution-page .xy-solution-launch-flow {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.xy-solution-page .xy-solution-defense-flow {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.xy-solution-page .xy-solution-launch-flow article {
  min-height: 112px;
  padding: 14px 12px;
}

.xy-solution-page .xy-solution-defense-flow article {
  min-height: 106px;
}

.xy-solution-page .xy-solution-attack-node {
  border-color: rgba(59, 130, 246, .34);
}

.xy-solution-page .xy-solution-clean-node {
  border-color: rgba(34, 197, 94, .38);
}

.xy-solution-page .xy-solution-section {
  padding: 78px 0;
  background: #fff;
}

.xy-solution-page .xy-solution-section-light {
  background: #f8fbff;
}

.xy-solution-page .xy-solution-title {
  max-width: 820px;
  margin-bottom: 40px;
}

.xy-solution-page .xy-solution-title span,
.xy-solution-page .xy-solution-cta span {
  color: var(--xy-solution-accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}

.xy-solution-page .xy-solution-title h2 {
  color: var(--xy-solution-ink);
  font-size: 34px;
  font-weight: 800;
}

.xy-solution-page .xy-solution-title p {
  color: var(--xy-solution-muted);
  font-size: 15px;
  line-height: 1.75;
}

.xy-solution-page .xy-solution-card-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.xy-solution-page .xy-solution-card {
  min-height: 220px;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--xy-solution-line);
  border-radius: 16px;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
}

.xy-solution-page .xy-solution-card:hover,
.xy-solution-page .xy-solution-resource-grid article:hover,
.xy-solution-page .xy-solution-flow article:hover {
  border-color: #bfdbfe;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .10);
  transform: translateY(-3px);
}

.xy-solution-page .xy-solution-icon {
  width: 44px;
  height: 44px;
  color: var(--xy-solution-accent);
  background: linear-gradient(145deg, #ffffff 0%, #eef6ff 100%);
  border: 1px solid #dbeafe;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(37, 99, 235, .08);
}

.xy-solution-page .xy-solution-icon::before {
  width: 24px;
  height: 24px;
}

.xy-solution-page .xy-solution-card h3,
.xy-solution-page .xy-solution-resource-grid h3,
.xy-solution-page .xy-solution-flow h3 {
  color: var(--xy-solution-ink);
  font-size: 18px;
  font-weight: 800;
}

.xy-solution-page .xy-solution-card p,
.xy-solution-page .xy-solution-resource-grid p,
.xy-solution-page .xy-solution-flow p {
  color: var(--xy-solution-muted);
  font-size: 14px;
  line-height: 1.65;
}

.xy-solution-page .xy-solution-section-light .container {
  position: relative;
}

.xy-solution-page .xy-solution-flow {
  position: relative;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  padding: 24px;
  background: #f8fbff;
  border: 1px solid #e6eef8;
  border-radius: 24px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.xy-solution-page .xy-solution-flow article {
  min-height: 190px;
  padding: 24px 22px;
  background: #fff;
  border: 1px solid #e8eef7;
  border-radius: 16px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .05);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.xy-solution-page .xy-solution-flow article::after {
  right: -18px;
  width: 18px;
  background: #cfe0f3;
}

.xy-solution-page .xy-solution-flow span {
  width: auto;
  height: auto;
  justify-content: flex-start;
  color: var(--xy-solution-accent);
  font-size: 22px;
  font-weight: 800;
  background: transparent;
  border: 0;
  border-radius: 0;
}

.xy-solution-page .xy-solution-flow h3 {
  margin-top: 14px;
}

.xy-solution-page .xy-solution-resource-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.xy-solution-page .xy-solution-resource-grid article {
  position: relative;
  min-height: 356px;
  padding: 28px;
  background: #fff;
  border: 1px solid var(--xy-solution-line);
  border-radius: 16px;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
  overflow: hidden;
}

.xy-solution-page .xy-solution-resource-grid article::before {
  content: "";
  width: 44px;
  height: 44px;
  margin-bottom: 20px;
  display: block;
  background:
    linear-gradient(135deg, var(--xy-solution-accent), var(--xy-solution-accent-2));
  border-radius: 14px;
  box-shadow: 0 16px 28px rgba(37, 99, 235, .18);
}

.xy-solution-page .xy-solution-resource-grid h3 {
  margin: 0 0 12px;
  font-size: 22px;
}

.xy-solution-page .xy-solution-resource-grid ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0 24px;
}

.xy-solution-page .xy-solution-resource-grid li {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  color: var(--xy-solution-accent);
  background: #eff6ff;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.xy-solution-page .xy-solution-resource-grid li::before {
  display: none;
}

.xy-solution-page .xy-solution-resource-grid a {
  min-height: 42px;
  color: var(--xy-solution-accent);
  background: #fff;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  font-weight: 800;
}

.xy-solution-page .xy-solution-resource-grid a:hover {
  color: #fff;
  background: var(--xy-solution-accent);
  transform: translateY(-2px);
}

.xy-solution-page .xy-solution-cta {
  margin: 0;
  padding: 0 0 76px;
  background: #fff;
}

.xy-solution-page .xy-solution-cta::before {
  display: none;
}

.xy-solution-page .xy-solution-cta .container {
  min-height: 220px;
  padding: 34px 40px;
  color: #fff;
  background:
    radial-gradient(circle at 84% 22%, rgba(56, 189, 248, .16), transparent 34%),
    linear-gradient(120deg, #020817 0%, #071a36 54%, #0b2b5f 100%);
  border: 1px solid rgba(147, 197, 253, .16);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 24px 56px rgba(15, 23, 42, .16);
}

.xy-solution-page .xy-solution-cta .container::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255, 255, 255, .026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .026) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: .8;
  pointer-events: none;
}

.xy-solution-page .xy-solution-cta .container > * {
  position: relative;
  z-index: 1;
}

.xy-solution-page .xy-solution-cta span {
  color: #93c5fd;
}

.xy-solution-page .xy-solution-cta h2 {
  font-size: 32px;
  font-weight: 800;
  text-shadow: none;
}

.xy-solution-page .xy-solution-cta p {
  color: rgba(235, 244, 255, .82);
}

@media (max-width: 1199px) {
  .xy-solution-page .xy-solution-hero .container {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .xy-solution-page .xy-solution-hero-copy,
  .xy-solution-page .xy-solution-visual {
    grid-column: 1;
  }

  .xy-solution-page .xy-solution-visual {
    display: flex;
    max-width: 620px;
    width: 100%;
  }

  .xy-solution-page .xy-solution-card-grid,
  .xy-solution-page .xy-solution-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .xy-solution-page .xy-solution-flow article::after {
    display: none;
  }
}

@media (max-width: 991px) {
  .xy-solution-page .xy-solution-resource-grid,
  .xy-solution-page .xy-solution-cta .container {
    grid-template-columns: 1fr;
  }

  .xy-solution-page .xy-solution-cta .xy-solution-actions {
    grid-column: 1;
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .xy-solution-page main .container {
    width: calc(100% - 30px);
    max-width: calc(100% - 30px);
  }

  .xy-solution-page .xy-solution-hero {
    min-height: 0;
  }

  .xy-solution-page .xy-solution-hero .container {
    grid-template-columns: 1fr;
    min-height: 0;
    padding-top: 96px;
    padding-bottom: 52px;
  }

  .xy-solution-page .xy-solution-hero-copy,
  .xy-solution-page .xy-solution-visual {
    grid-column: 1;
  }

  .xy-solution-page .xy-solution-hero h1 {
    font-size: 31px;
  }

  .xy-solution-page .xy-solution-hero p {
    font-size: 14px;
    line-height: 1.68;
  }

  .xy-solution-page .xy-solution-visual {
    min-height: 0;
  }

  .xy-solution-page .xy-solution-visual-panel {
    min-height: 0;
    padding: 20px;
    border-radius: 18px;
  }

  .xy-solution-page .xy-solution-link-map,
  .xy-solution-page .xy-solution-defense-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .xy-solution-page .xy-solution-launch-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .xy-solution-page .xy-solution-launch-flow article:last-child {
    grid-column: 1 / -1;
  }

  .xy-solution-page .xy-solution-node,
  .xy-solution-page .xy-solution-launch-flow article,
  .xy-solution-page .xy-solution-defense-flow article {
    min-height: 104px;
    padding: 14px;
  }

  .xy-solution-page .xy-solution-link-map::before {
    display: none;
  }

  .xy-solution-page .xy-solution-section {
    padding: 56px 0;
  }

  .xy-solution-page .xy-solution-title {
    text-align: left;
    margin-bottom: 26px;
  }

  .xy-solution-page .xy-solution-title h2,
  .xy-solution-page .xy-solution-cta h2 {
    font-size: 26px;
  }

  .xy-solution-page .xy-solution-card-grid,
  .xy-solution-page .xy-solution-flow,
  .xy-solution-page .xy-solution-resource-grid {
    grid-template-columns: 1fr;
  }

  .xy-solution-page .xy-solution-card,
  .xy-solution-page .xy-solution-flow article,
  .xy-solution-page .xy-solution-resource-grid article {
    min-height: 0;
    padding: 22px;
  }

  .xy-solution-page .xy-solution-flow {
    padding: 16px;
    border-radius: 18px;
  }

  .xy-solution-page .xy-solution-cta {
    padding-bottom: 56px;
  }

  .xy-solution-page .xy-solution-cta .container {
    padding: 26px 22px;
    border-radius: 18px;
  }

  .xy-solution-page .xy-solution-actions {
    width: 100%;
  }

  .xy-solution-page .xy-solution-actions .xy-primary-btn,
  .xy-solution-page .xy-solution-actions .xy-outline-btn {
    width: 100%;
  }
}

/* v109 solution icon adaptation */
.xy-solution-page {
  --xy-icon-server: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M13 8h38a5 5 0 0 1 5 5v38a5 5 0 0 1-5 5H13a5 5 0 0 1-5-5V13a5 5 0 0 1 5-5Zm3 8v10h32V16H16Zm0 15v10h32V31H16Zm5-12h6v4h-6v-4Zm0 15h6v4h-6v-4Zm23-16h4v4h-4v-4Zm-8 0h4v4h-4v-4Zm8 15h4v4h-4v-4Zm-8 0h4v4h-4v-4ZM12 59h40v4H12v-4Z'/%3E%3C/svg%3E");
  --xy-icon-game: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M18 22h28a12 12 0 0 1 11.5 8.6l4.2 14.7A7 7 0 0 1 50 52l-7-7H21l-7 7a7 7 0 0 1-11.7-6.7l4.2-14.7A12 12 0 0 1 18 22Zm4 8h-5v5h-5v5h5v5h5v-5h5v-5h-5v-5Zm22 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm10 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z'/%3E%3C/svg%3E");
  --xy-icon-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M32 4 54 12v17c0 15-9.4 25.5-22 31C19.4 54.5 10 44 10 29V12L32 4Zm0 8-15 5.4V29c0 10 5.8 18.2 15 23 9.2-4.8 15-13 15-23V17.4L32 12Zm-8 23h16v10H24V35Zm3-5a5 5 0 0 1 10 0v5h-4v-5a1 1 0 0 0-2 0v5h-4v-5Z'/%3E%3C/svg%3E");
  --xy-icon-route: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M32 8a10 10 0 0 1 10 10c0 1.7-.4 3.3-1.1 4.7l8 8A10 10 0 1 1 44.7 35l-8-8a10 10 0 0 1-9.4 0l-8 8A10 10 0 1 1 15 30.7l8-8A10 10 0 0 1 32 8Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6ZM12 37a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm40 0a3 3 0 1 0 0 6 3 3 0 0 0 0-6ZM29 30h6v16h8v7H21v-7h8V30Z'/%3E%3C/svg%3E");
  --xy-icon-database: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M32 6c14 0 24 4.5 24 11v30c0 6.5-10 11-24 11S8 53.5 8 47V17C8 10.5 18 6 32 6Zm0 8c-10 0-16 2.4-16 4s6 4 16 4 16-2.4 16-4-6-4-16-4Zm-16 13v6c0 1.6 6 4 16 4s16-2.4 16-4v-6c-4.3 2.2-10.6 3-16 3s-11-.8-16-3Zm0 17v3c0 1.6 6 4 16 4s16-2.4 16-4v-3c-4.3 2.2-10.6 3-16 3s-11-.8-16-3Z'/%3E%3C/svg%3E");
  --xy-icon-shop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M10 10h8l4 8h40l-7 24H24l-3 6h39v6H16l6-13-9-31h-3Zm17 26h22l4-14H23l4 14ZM24 58a4 4 0 1 1 0 8 4 4 0 0 1 0-8Zm31 0a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z'/%3E%3C/svg%3E");
  --xy-icon-website: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M8 12h48v36H8V12Zm6 8v22h38V20H14Zm6 28h24v6h10v6H10v-6h10v-6Zm4-24h20v5H24v-5Zm0 9h14v5H24v-5Z'/%3E%3C/svg%3E");
  --xy-icon-support: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M32 8a20 20 0 0 0-20 20v9a8 8 0 0 0 8 8h4V27h-8a16 16 0 0 1 32 0h-8v18h5a11 11 0 0 1-10 7h-7v6h7a17 17 0 0 0 16-12 8 8 0 0 0 1-15v-3A20 20 0 0 0 32 8Zm-2 22h4v5h5v4h-5v5h-4v-5h-5v-4h5v-5Z'/%3E%3C/svg%3E");
  --xy-icon-cloud: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M22 52h27a12 12 0 0 0 1.1-23.9A18 18 0 0 0 16 24.7 14 14 0 0 0 22 52Zm0-8a6 6 0 0 1-1.5-11.8l3.8-1 .5-4A10 10 0 0 1 44.5 25l1 4.2 4.4.4A4 4 0 0 1 49 44H22Zm6-20h16v5H28v-5Zm-4 10h24v5H24v-5Z'/%3E%3C/svg%3E");
}

.xy-solution-page .xy-solution-node,
.xy-solution-page .xy-solution-launch-flow article,
.xy-solution-page .xy-solution-defense-flow article {
  --xy-scene-icon: var(--xy-icon-server);
}

.xy-solution-page .xy-solution-node i,
.xy-solution-page .xy-solution-launch-flow i,
.xy-solution-page .xy-solution-defense-flow i {
  position: relative;
  align-items: center;
  justify-content: center;
}

.xy-solution-page .xy-solution-node i::before,
.xy-solution-page .xy-solution-launch-flow i::before,
.xy-solution-page .xy-solution-defense-flow i::before {
  content: "";
  display: block;
  width: 19px;
  height: 19px;
  background: rgba(255, 255, 255, .96);
  -webkit-mask: var(--xy-scene-icon) center / contain no-repeat;
  mask: var(--xy-scene-icon) center / contain no-repeat;
}

.xy-solution-game .xy-solution-link-map article:nth-child(1) { --xy-scene-icon: var(--xy-icon-game); }
.xy-solution-game .xy-solution-link-map article:nth-child(2) { --xy-scene-icon: var(--xy-icon-shield); }
.xy-solution-game .xy-solution-link-map article:nth-child(3) { --xy-scene-icon: var(--xy-icon-route); }
.xy-solution-game .xy-solution-link-map article:nth-child(4) { --xy-scene-icon: var(--xy-icon-server); }

.xy-solution-ecommerce .xy-solution-link-map article:nth-child(1) { --xy-scene-icon: var(--xy-icon-shop); }
.xy-solution-ecommerce .xy-solution-link-map article:nth-child(2) { --xy-scene-icon: var(--xy-icon-website); }
.xy-solution-ecommerce .xy-solution-link-map article:nth-child(3) { --xy-scene-icon: var(--xy-icon-database); }
.xy-solution-ecommerce .xy-solution-link-map article:nth-child(4) { --xy-scene-icon: var(--xy-icon-server); }

.xy-solution-enterprise .xy-solution-launch-flow article:nth-child(1) { --xy-scene-icon: var(--xy-icon-route); }
.xy-solution-enterprise .xy-solution-launch-flow article:nth-child(2) { --xy-scene-icon: var(--xy-icon-shield); }
.xy-solution-enterprise .xy-solution-launch-flow article:nth-child(3) { --xy-scene-icon: var(--xy-icon-cloud); }
.xy-solution-enterprise .xy-solution-launch-flow article:nth-child(4) { --xy-scene-icon: var(--xy-icon-support); }
.xy-solution-enterprise .xy-solution-launch-flow article:nth-child(5) { --xy-scene-icon: var(--xy-icon-website); }

.xy-solution-ddos .xy-solution-defense-flow article:nth-child(1) { --xy-scene-icon: var(--xy-icon-shield); }
.xy-solution-ddos .xy-solution-defense-flow article:nth-child(2) { --xy-scene-icon: var(--xy-icon-route); }
.xy-solution-ddos .xy-solution-defense-flow article:nth-child(3) { --xy-scene-icon: var(--xy-icon-server); }
.xy-solution-ddos .xy-solution-defense-flow article:nth-child(4) { --xy-scene-icon: var(--xy-icon-support); }

.xy-solution-page .xy-solution-resource-grid article {
  --xy-resource-icon: var(--xy-icon-server);
}

.xy-solution-page .xy-solution-resource-grid article::before {
  position: relative;
  z-index: 1;
}

.xy-solution-page .xy-solution-resource-grid article::after {
  content: "";
  position: absolute;
  top: 39px;
  left: 39px;
  z-index: 2;
  width: 22px;
  height: 22px;
  background: #fff;
  pointer-events: none;
  -webkit-mask: var(--xy-resource-icon) center / contain no-repeat;
  mask: var(--xy-resource-icon) center / contain no-repeat;
}

.xy-solution-game .xy-solution-resource-grid article:nth-child(1) { --xy-resource-icon: var(--xy-icon-server); }
.xy-solution-game .xy-solution-resource-grid article:nth-child(2) { --xy-resource-icon: var(--xy-icon-route); }
.xy-solution-game .xy-solution-resource-grid article:nth-child(3) { --xy-resource-icon: var(--xy-icon-cloud); }

.xy-solution-ecommerce .xy-solution-resource-grid article:nth-child(1) { --xy-resource-icon: var(--xy-icon-cloud); }
.xy-solution-ecommerce .xy-solution-resource-grid article:nth-child(2) { --xy-resource-icon: var(--xy-icon-shield); }
.xy-solution-ecommerce .xy-solution-resource-grid article:nth-child(3) { --xy-resource-icon: var(--xy-icon-route); }

.xy-solution-enterprise .xy-solution-resource-grid article:nth-child(1) { --xy-resource-icon: var(--xy-icon-cloud); }
.xy-solution-enterprise .xy-solution-resource-grid article:nth-child(2) { --xy-resource-icon: var(--xy-icon-shield); }
.xy-solution-enterprise .xy-solution-resource-grid article:nth-child(3) { --xy-resource-icon: var(--xy-icon-support); }

.xy-solution-ddos .xy-solution-resource-grid article:nth-child(1) { --xy-resource-icon: var(--xy-icon-server); }
.xy-solution-ddos .xy-solution-resource-grid article:nth-child(2) { --xy-resource-icon: var(--xy-icon-shield); }
.xy-solution-ddos .xy-solution-resource-grid article:nth-child(3) { --xy-resource-icon: var(--xy-icon-cloud); }

@media (max-width: 767px) {
  .xy-solution-page .xy-solution-node i::before,
  .xy-solution-page .xy-solution-launch-flow i::before,
  .xy-solution-page .xy-solution-defense-flow i::before {
    width: 18px;
    height: 18px;
  }

  .xy-solution-page .xy-solution-resource-grid article::after {
    top: 33px;
    left: 33px;
  }
}

/* v110 hero visual node layout */
.xy-solution-page .xy-solution-visual-panel::after,
.xy-solution-page .xy-solution-visual-metrics {
  display: none;
}

.xy-solution-page .xy-solution-link-map {
  align-items: stretch;
}

.xy-solution-page .xy-solution-node,
.xy-solution-page .xy-solution-launch-flow article,
.xy-solution-page .xy-solution-defense-flow article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  column-gap: 14px;
  align-items: center;
  align-content: center;
  min-height: 104px;
}

.xy-solution-page .xy-solution-node i,
.xy-solution-page .xy-solution-launch-flow i,
.xy-solution-page .xy-solution-defense-flow i {
  grid-row: 1 / span 2;
  grid-column: 1;
  width: 40px;
  height: 40px;
  margin: 0;
  border-radius: 13px;
}

.xy-solution-page .xy-solution-node i::before,
.xy-solution-page .xy-solution-launch-flow i::before,
.xy-solution-page .xy-solution-defense-flow i::before {
  width: 21px;
  height: 21px;
}

.xy-solution-page .xy-solution-node b,
.xy-solution-page .xy-solution-launch-flow b,
.xy-solution-page .xy-solution-defense-flow b,
.xy-solution-page .xy-solution-node span,
.xy-solution-page .xy-solution-launch-flow span,
.xy-solution-page .xy-solution-defense-flow span {
  grid-column: 2;
  min-width: 0;
}

.xy-solution-page .xy-solution-node b,
.xy-solution-page .xy-solution-launch-flow b,
.xy-solution-page .xy-solution-defense-flow b {
  align-self: end;
}

.xy-solution-page .xy-solution-node span,
.xy-solution-page .xy-solution-launch-flow span,
.xy-solution-page .xy-solution-defense-flow span {
  align-self: start;
  margin-top: 5px;
}

.xy-solution-page .xy-solution-launch-flow {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.xy-solution-page .xy-solution-launch-flow article:last-child {
  grid-column: 1 / -1;
}

@media (max-width: 767px) {
  .xy-solution-page .xy-solution-node,
  .xy-solution-page .xy-solution-launch-flow article,
  .xy-solution-page .xy-solution-defense-flow article {
    grid-template-columns: 36px minmax(0, 1fr);
    column-gap: 10px;
    min-height: 92px;
    padding: 12px;
  }

  .xy-solution-page .xy-solution-node i,
  .xy-solution-page .xy-solution-launch-flow i,
  .xy-solution-page .xy-solution-defense-flow i {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .xy-solution-page .xy-solution-node i::before,
  .xy-solution-page .xy-solution-launch-flow i::before,
  .xy-solution-page .xy-solution-defense-flow i::before {
    width: 18px;
    height: 18px;
  }

  .xy-solution-page .xy-solution-node b,
  .xy-solution-page .xy-solution-launch-flow b,
  .xy-solution-page .xy-solution-defense-flow b {
    font-size: 15px;
  }
}

/* v112: place body section icons on the left with balanced copy on the right. */
.xy-solution-page .xy-solution-card {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 18px;
  row-gap: 8px;
  min-height: 176px;
}

.xy-solution-page .xy-solution-card .xy-solution-icon {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
  width: 44px;
  height: 44px;
  margin: 0;
}

.xy-solution-page .xy-solution-card h3 {
  grid-column: 2;
  margin: 0;
  align-self: end;
}

.xy-solution-page .xy-solution-card p {
  grid-column: 2;
  align-self: start;
}

.xy-solution-page .xy-solution-resource-grid article {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto auto auto 1fr auto;
  align-content: start;
  column-gap: 20px;
  min-height: 330px;
}

.xy-solution-page .xy-solution-resource-grid article::before {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
  justify-self: start;
  margin: 0;
}

.xy-solution-page .xy-solution-resource-grid article::after {
  position: static;
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
  justify-self: start;
  margin: 11px 0 0 11px;
  z-index: 2;
}

.xy-solution-page .xy-solution-resource-grid h3 {
  grid-column: 2;
  margin: 0 0 10px;
  align-self: end;
}

.xy-solution-page .xy-solution-resource-grid p {
  grid-column: 2;
}

.xy-solution-page .xy-solution-resource-grid ul {
  grid-column: 1 / -1;
  margin-top: 24px;
}

.xy-solution-page .xy-solution-resource-grid a {
  grid-column: 1 / -1;
}

@media (max-width: 767px) {
  .xy-solution-page .xy-solution-card {
    grid-template-columns: 42px minmax(0, 1fr);
    column-gap: 14px;
    min-height: 0;
  }

  .xy-solution-page .xy-solution-card .xy-solution-icon {
    width: 40px;
    height: 40px;
    border-radius: 13px;
  }

  .xy-solution-page .xy-solution-resource-grid article {
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 16px;
    min-height: 0;
  }

  .xy-solution-page .xy-solution-resource-grid article::before {
    width: 40px;
    height: 40px;
    border-radius: 13px;
  }

  .xy-solution-page .xy-solution-resource-grid article::after {
    width: 20px;
    height: 20px;
    margin: 10px 0 0 10px;
  }
}

/* v114: keep challenge-card icons and titles on one row above the copy. */
.xy-solution-page .xy-solution-card {
  grid-template-rows: 44px auto;
  align-content: center;
  align-items: start;
  row-gap: 10px;
}

.xy-solution-page .xy-solution-card .xy-solution-icon {
  grid-row: 1;
  align-self: center;
}

.xy-solution-page .xy-solution-card h3 {
  grid-row: 1;
  align-self: center;
}

.xy-solution-page .xy-solution-card p {
  grid-row: 2;
  align-self: start;
}

@media (max-width: 767px) {
  .xy-solution-page .xy-solution-card {
    grid-template-rows: 40px auto;
    row-gap: 9px;
  }
}

/* v116: let challenge-card copy use the full card width and scale icons to the title. */
.xy-solution-page .xy-solution-card {
  grid-template-columns: 38px minmax(0, 1fr);
  grid-template-rows: 38px auto;
  column-gap: 14px;
  row-gap: 12px;
}

.xy-solution-page .xy-solution-card .xy-solution-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
}

.xy-solution-page .xy-solution-card .xy-solution-icon::before {
  width: 20px;
  height: 20px;
}

.xy-solution-page .xy-solution-card h3 {
  line-height: 1.25;
}

.xy-solution-page .xy-solution-card p {
  grid-column: 1 / -1;
  max-width: none;
  line-height: 1.7;
}

@media (max-width: 767px) {
  .xy-solution-page .xy-solution-card {
    grid-template-columns: 36px minmax(0, 1fr);
    grid-template-rows: 36px auto;
    column-gap: 12px;
    row-gap: 10px;
  }

  .xy-solution-page .xy-solution-card .xy-solution-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
  }

  .xy-solution-page .xy-solution-card .xy-solution-icon::before {
    width: 19px;
    height: 19px;
  }
}

/* v117: make resource cards follow the same icon-title and full-width copy scheme. */
.xy-solution-page .xy-solution-resource-grid article {
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: 42px auto auto 1fr auto;
  column-gap: 18px;
  row-gap: 12px;
}

.xy-solution-page .xy-solution-resource-grid article::before {
  grid-row: 1;
  align-self: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
}

.xy-solution-page .xy-solution-resource-grid article::after {
  grid-row: 1;
  align-self: center;
  width: 21px;
  height: 21px;
  margin: 0 0 0 10.5px;
}

.xy-solution-page .xy-solution-resource-grid h3 {
  grid-row: 1;
  align-self: center;
  margin: 0;
  line-height: 1.25;
}

.xy-solution-page .xy-solution-resource-grid p {
  grid-column: 1 / -1;
  grid-row: 2;
  max-width: none;
  line-height: 1.7;
}

.xy-solution-page .xy-solution-resource-grid ul {
  grid-row: 3;
  margin-top: 12px;
}

@media (max-width: 767px) {
  .xy-solution-page .xy-solution-resource-grid article {
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-rows: 38px auto auto auto;
    column-gap: 14px;
    row-gap: 10px;
  }

  .xy-solution-page .xy-solution-resource-grid article::before {
    width: 38px;
    height: 38px;
    border-radius: 13px;
  }

  .xy-solution-page .xy-solution-resource-grid article::after {
    width: 20px;
    height: 20px;
    margin-left: 9px;
  }
}

/* v118: compact resource cards so short copy does not leave a large empty frame. */
.xy-solution-page .xy-solution-resource-grid article {
  min-height: 286px;
  grid-template-rows: 42px auto auto auto;
  align-content: start;
  padding: 24px 26px;
  row-gap: 11px;
}

.xy-solution-page .xy-solution-resource-grid p {
  line-height: 1.65;
}

.xy-solution-page .xy-solution-resource-grid ul {
  margin: 10px 0 14px;
}

.xy-solution-page .xy-solution-resource-grid a {
  min-height: 40px;
  margin-top: 4px;
}

@media (max-width: 767px) {
  .xy-solution-page .xy-solution-resource-grid article {
    min-height: 0;
    padding: 22px;
    grid-template-rows: 38px auto auto auto;
  }

  .xy-solution-page .xy-solution-resource-grid ul {
    margin: 8px 0 12px;
  }
}

/* v119: clean up the ecommerce hero visual block and prevent chart/card overlap. */
.xy-solution-ecommerce .xy-solution-mini-chart {
  display: none;
}

.xy-solution-ecommerce .xy-solution-visual-panel {
  min-height: 330px;
  padding: 26px;
}

.xy-solution-ecommerce .xy-solution-visual-head {
  margin-bottom: 18px;
}

.xy-solution-ecommerce .xy-solution-link-map {
  gap: 14px;
}

.xy-solution-ecommerce .xy-solution-link-map::before {
  display: none;
}

.xy-solution-ecommerce .xy-solution-node {
  min-height: 96px;
  padding: 16px;
  background: rgba(255, 255, 255, .09);
  border-color: rgba(191, 219, 254, .22);
}

@media (max-width: 767px) {
  .xy-solution-ecommerce .xy-solution-visual-panel {
    min-height: 0;
    padding: 20px;
  }

  .xy-solution-ecommerce .xy-solution-link-map {
    gap: 10px;
  }

  .xy-solution-ecommerce .xy-solution-node {
    min-height: 92px;
    padding: 12px;
  }
}

/* v120: keep enterprise launch flow to four equal small cards. */
.xy-solution-enterprise .xy-solution-launch-flow {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.xy-solution-enterprise .xy-solution-launch-flow article:last-child {
  grid-column: auto;
}

.xy-solution-enterprise .xy-solution-launch-flow article {
  min-height: 104px;
}

.xy-solution-enterprise .xy-solution-launch-flow article:nth-child(4) {
  --xy-scene-icon: var(--xy-icon-website);
}

/* v122: final solution page SEO polish visuals, scoped to the four detail pages. */
.xy-solution-page .xy-solution-hero {
  min-height: 500px;
  background:
    radial-gradient(circle at 78% 22%, var(--xy-solution-accent-soft), transparent 32%),
    radial-gradient(circle at 18% 24%, rgba(59, 130, 246, .18), transparent 28%),
    linear-gradient(rgba(255, 255, 255, .024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .024) 1px, transparent 1px),
    linear-gradient(112deg, #020817 0%, #07152e 50%, #0b2c5d 100%);
  background-size: auto, auto, 44px 44px, 44px 44px, auto;
}

.xy-solution-page .xy-solution-hero .container {
  min-height: 500px;
  padding-top: 50px;
  padding-bottom: 36px;
}

.xy-solution-page .xy-solution-eyebrow,
.xy-solution-page .xy-solution-title span,
.xy-solution-page .xy-solution-cta span,
.xy-solution-page .xy-solution-visual-head span {
  letter-spacing: 0;
}

.xy-solution-page .xy-solution-hero h1 {
  max-width: 760px;
  font-size: 46px;
  font-weight: 700;
}

.xy-solution-page .xy-solution-hero p {
  max-width: 660px;
  font-size: 16px;
  line-height: 1.7;
}

.xy-solution-page .xy-solution-visual-panel {
  min-height: 318px;
  padding: 24px;
  background:
    radial-gradient(circle at 90% 6%, rgba(56, 189, 248, .14), transparent 34%),
    linear-gradient(180deg, rgba(15, 23, 42, .76), rgba(15, 23, 42, .48));
}

.xy-solution-page .xy-solution-node,
.xy-solution-page .xy-solution-launch-flow article,
.xy-solution-page .xy-solution-defense-flow article {
  min-height: 96px;
  padding: 15px;
  background: rgba(255, 255, 255, .075);
}

.xy-solution-page .xy-solution-link-map,
.xy-solution-page .xy-solution-defense-flow,
.xy-solution-page .xy-solution-launch-flow {
  gap: 14px;
}

.xy-solution-page .xy-solution-section {
  padding: 72px 0;
}

.xy-solution-page .xy-solution-title {
  margin-bottom: 34px;
}

.xy-solution-page .xy-solution-card-grid {
  gap: 20px;
}

.xy-solution-page .xy-solution-card {
  min-height: 164px;
  padding: 22px;
  border-color: #e8eef7;
}

.xy-solution-page .xy-solution-card .xy-solution-icon {
  width: 40px;
  height: 40px;
  border-radius: 13px;
}

.xy-solution-page .xy-solution-card .xy-solution-icon::before {
  width: 21px;
  height: 21px;
}

.xy-solution-page .xy-solution-card h3 {
  font-size: 18px;
}

.xy-solution-page .xy-solution-card p {
  line-height: 1.62;
}

.xy-solution-page .xy-solution-flow {
  gap: 16px;
  padding: 22px;
  background: #f8fbff;
}

.xy-solution-page .xy-solution-flow article {
  --xy-flow-icon: var(--xy-icon-server);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px;
  grid-template-rows: auto auto auto;
  min-height: 176px;
  padding: 22px 20px;
  overflow: visible;
}

.xy-solution-page .xy-solution-flow article::before {
  content: "";
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  justify-self: end;
  width: 28px;
  height: 28px;
  background: linear-gradient(135deg, var(--xy-solution-accent), var(--xy-solution-accent-2));
  -webkit-mask: var(--xy-flow-icon) center / contain no-repeat;
  mask: var(--xy-flow-icon) center / contain no-repeat;
}

.xy-solution-page .xy-solution-flow span {
  grid-column: 1;
  grid-row: 1;
  font-size: 21px;
  line-height: 1.2;
}

.xy-solution-page .xy-solution-flow h3,
.xy-solution-page .xy-solution-flow p {
  grid-column: 1 / -1;
}

.xy-solution-page .xy-solution-flow h3 {
  margin: 14px 0 8px;
}

.xy-solution-page .xy-solution-flow article::after {
  top: 50%;
  right: -16px;
  width: 16px;
  height: 1px;
  background: linear-gradient(90deg, #cfe0f3, rgba(207, 224, 243, 0));
}

.xy-solution-game .xy-solution-flow article:nth-child(1) { --xy-flow-icon: var(--xy-icon-shield); }
.xy-solution-game .xy-solution-flow article:nth-child(2) { --xy-flow-icon: var(--xy-icon-game); }
.xy-solution-game .xy-solution-flow article:nth-child(3) { --xy-flow-icon: var(--xy-icon-database); }
.xy-solution-game .xy-solution-flow article:nth-child(4) { --xy-flow-icon: var(--xy-icon-support); }

.xy-solution-ecommerce .xy-solution-flow article:nth-child(1) { --xy-flow-icon: var(--xy-icon-shop); }
.xy-solution-ecommerce .xy-solution-flow article:nth-child(2) { --xy-flow-icon: var(--xy-icon-server); }
.xy-solution-ecommerce .xy-solution-flow article:nth-child(3) { --xy-flow-icon: var(--xy-icon-database); }
.xy-solution-ecommerce .xy-solution-flow article:nth-child(4) { --xy-flow-icon: var(--xy-icon-shield); }

.xy-solution-enterprise .xy-solution-flow article:nth-child(1) { --xy-flow-icon: var(--xy-icon-route); }
.xy-solution-enterprise .xy-solution-flow article:nth-child(2) { --xy-flow-icon: var(--xy-icon-cloud); }
.xy-solution-enterprise .xy-solution-flow article:nth-child(3) { --xy-flow-icon: var(--xy-icon-database); }
.xy-solution-enterprise .xy-solution-flow article:nth-child(4) { --xy-flow-icon: var(--xy-icon-support); }

.xy-solution-ddos .xy-solution-flow article:nth-child(1) { --xy-flow-icon: var(--xy-icon-shield); }
.xy-solution-ddos .xy-solution-flow article:nth-child(2) { --xy-flow-icon: var(--xy-icon-route); }
.xy-solution-ddos .xy-solution-flow article:nth-child(3) { --xy-flow-icon: var(--xy-icon-server); }
.xy-solution-ddos .xy-solution-flow article:nth-child(4) { --xy-flow-icon: var(--xy-icon-support); }

.xy-solution-page .xy-solution-resource-grid {
  gap: 24px;
}

.xy-solution-page .xy-solution-resource-grid article {
  min-height: 318px;
  grid-template-rows: 42px auto auto 1fr auto;
  padding: 24px 26px;
  border-color: #e8eef7;
  border-radius: 18px;
}

.xy-solution-page .xy-solution-resource-grid h3 {
  font-size: 22px;
}

.xy-solution-page .xy-solution-resource-grid p {
  line-height: 1.66;
}

.xy-solution-page .xy-solution-resource-grid ul {
  margin: 8px 0 12px;
}

.xy-solution-page .xy-solution-resource-grid li {
  min-height: 28px;
  background: color-mix(in srgb, var(--xy-solution-accent) 8%, #ffffff);
}

.xy-solution-page .xy-solution-resource-grid a {
  grid-row: 5;
  align-self: end;
  min-height: 38px;
  margin-top: 0;
}

.xy-solution-page .xy-solution-cta {
  padding-bottom: 68px;
}

.xy-solution-page .xy-solution-cta .container {
  min-height: 196px;
  padding: 36px 42px;
}

.xy-solution-page .xy-primary-btn:focus-visible,
.xy-solution-page .xy-outline-btn:focus-visible,
.xy-solution-page .xy-solution-resource-grid a:focus-visible {
  outline: 3px solid rgba(147, 197, 253, .72);
  outline-offset: 3px;
}

@media (max-width: 1199px) {
  .xy-solution-page .xy-solution-hero .container {
    min-height: 0;
    padding-top: 92px;
  }

  .xy-solution-page .xy-solution-card-grid,
  .xy-solution-page .xy-solution-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .xy-solution-page .xy-solution-hero h1 {
    font-size: 31px;
  }

  .xy-solution-page .xy-solution-section {
    padding: 54px 0;
  }

  .xy-solution-page .xy-solution-card,
  .xy-solution-page .xy-solution-flow article,
  .xy-solution-page .xy-solution-resource-grid article {
    min-height: 0;
  }

  .xy-solution-page .xy-solution-flow article {
    grid-template-columns: minmax(0, 1fr) 28px;
  }

  .xy-solution-page .xy-solution-flow article::before {
    width: 26px;
    height: 26px;
  }

  .xy-solution-page .xy-solution-resource-grid a {
    grid-row: auto;
  }

  .xy-solution-page .xy-solution-cta .container {
    min-height: 0;
    padding: 26px 22px;
  }
}
