/* Shared service-page foundations come from hosting.css; these rules are scoped. */
.virtual-servers-page .hosting-hero-copy { padding-top: 38px; padding-bottom: 34px; max-width: 545px; }
.virtual-servers-page .hosting-hero-copy > p:not(.hosting-eyebrow) { max-width: 475px; }
.virtual-servers-page .hosting-strengths-grid { padding-top: 32px; padding-bottom: 32px; }
.virtual-servers-page .hosting-solutions { padding-top: 30px; padding-bottom: 26px; }
.virtual-servers-page .hosting-section-heading { margin-bottom: 28px; }
.virtual-feature { display: flex; align-items: flex-start; gap: 30px; padding: 24px 30px; border: 1px solid #e1ebfa; box-shadow: 0 1px 6px #17438508; border-radius: 6px; }
.virtual-feature > i { color: #0065ff; font-size: 36px; width: 38px; flex-shrink: 0; text-align: center; }
.virtual-feature p { margin: 0; }
.virtual-servers-page .hosting-foundation > img { max-height: none; }
.virtual-servers-page .hosting-foundation h2 { font-size: clamp(25px,2.2vw,32px); }
.virtual-process { padding: 26px 0 30px; }
.virtual-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; padding: 0; margin: 0; }
.virtual-steps > li { display: flex; align-items: flex-start; gap: 25px; position: relative; padding: 0 40px; border-right: 1px solid #e0eafb; }
.virtual-steps > li:first-child { padding-left: 20px; }
.virtual-steps > li:last-child { border: 0; padding-right: 15px; }
.virtual-step-number { display: grid; place-items: center; width: 60px; height: 60px; flex-shrink: 0; border-radius: 50%; background: #0065ff; color: white; font-size: 22px; font-weight: 600; }
.virtual-steps h3 { margin: 14px 0 8px; font-size: 16px; }
.virtual-steps p { margin: 0; font-size: 15px; line-height: 1.5; }
.virtual-step-arrow { position: absolute; right: -9px; top: 30px; color: #1753b8; background: #fff; padding: 2px 0; }
.virtual-cta { position: relative; overflow: hidden; background: #02132f; color: white; }
.virtual-cta::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 32%; background-image: radial-gradient(#247da84d 1px,transparent 1px); background-size: 10px 10px; mask-image: linear-gradient(90deg,#000,transparent); }
.virtual-cta::after { content: ""; position: absolute; right: 16%; bottom: -145px; width: 270px; height: 270px; border: 44px solid #0750ae1c; border-radius: 50%; pointer-events: none; }
.virtual-cta-inner { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 28px 3.2%; }
.virtual-cta h2 { color: #fff; font-size: 34px; }
.virtual-servers-page .virtual-cta .hosting-eyebrow { color: #39d4ff; }
.virtual-servers-page .virtual-values { flex-shrink: 0; margin: 0 20px 0 0; padding: 8px 0 8px 26px; border-left: 3px solid #0087ff; text-transform: uppercase; font-size: 14px; line-height: 1.7; letter-spacing: .17em; }
@media (max-width:1100px) {
    .virtual-feature { gap: 24px; padding: 22px; }
    .virtual-steps > li { padding: 0 25px; gap: 20px; }
    .virtual-step-number { width: 54px; height: 54px; }
}
@media (max-width:800px) {
    .virtual-steps { grid-template-columns: 1fr; gap: 26px; }
    .virtual-steps > li { padding: 0 15px !important; border: 0; gap: 22px; }
    .virtual-steps h3 { margin-top: 4px; }
    .virtual-step-arrow { display: none; }
    .virtual-servers-page .virtual-values { font-size: 12px; padding-left: 20px; margin-right: 0; }
}
@media (max-width:600px) {
    .virtual-servers-page .hosting-hero-copy { padding: 36px 0; }
    .virtual-feature { gap: 20px; padding: 22px; }
    .virtual-process { padding: 30px 0; }
    .virtual-cta-inner { padding: 30px 0; }
    .virtual-cta h2 { font-size: 29px; }
    .virtual-values { display: none; }
}
