:root {
  --wm-ink: #091525;
  --wm-navy: #07111f;
  --wm-navy-light: #0d1d31;
  --wm-blue: #1665d8;
  --wm-cyan: #50d8f5;
  --wm-white: #ffffff;
  --wm-muted: #5b6c7f;
  --wm-light: #eef4f8;
  --wm-line: #d8e3eb;
  --wm-max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--wm-ink); background: var(--wm-white); font: 400 16px/1.65 "DM Sans", Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
.skip-link { position: absolute; left: -9999px; top: 1rem; z-index: 100; padding: .7rem 1rem; background: #fff; }
.skip-link:focus { left: 1rem; }

.site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(9,21,37,.08); background: rgba(255,255,255,.92); backdrop-filter: blur(16px); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; width: min(var(--wm-max), calc(100% - 56px)); min-height: 88px; margin: auto; }
.brand { display: flex; align-items: center; gap: 10px; font: 700 1.08rem/1.05 "Space Grotesk", Arial, sans-serif; }
.brand img { width: 62px; height: 62px; object-fit: contain; filter: drop-shadow(0 5px 8px rgba(8,45,105,.18)); }
.brand small { display: block; margin-top: 5px; color: #718094; font: 500 .64rem "DM Sans", Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.site-header nav { display: flex; align-items: center; gap: 30px; font-size: .9rem; font-weight: 600; }
.site-header nav a:hover { color: var(--wm-blue); }
.site-header .nav-button { padding: 12px 17px; border-radius: 9px; color: #fff; background: var(--wm-blue); }

.eyebrow { display: flex; align-items: center; gap: 11px; margin: 0 0 19px; color: var(--wm-blue); font-size: .76rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow::before { width: 27px; height: 2px; background: currentColor; content: ""; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 17px; padding: 15px 21px; border-radius: 10px; font-size: .94rem; font-weight: 700; transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px);  color: #464545; }
.button:focus-visible, .text-link:focus-visible, .site-header a:focus-visible { outline: 3px solid var(--wm-cyan); outline-offset: 4px; }
.button--primary { color: #fff; background: var(--wm-blue); }
.button--primary:hover { box-shadow: 0 14px 34px rgba(22,101,216,.3); }
.button--text { color: #dbe7f2; }

.wm-hero { position: relative; overflow: hidden; color: #fff; background: var(--wm-navy); }
.wm-hero::before { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size: 64px 64px; content: ""; }
.wm-hero__glow { position: absolute; top: -280px; right: -180px; width: 620px; height: 620px; border: 1px solid rgba(80,216,245,.18); border-radius: 50%; box-shadow: 0 0 0 90px rgba(80,216,245,.025),0 0 0 180px rgba(80,216,245,.014); }
.wm-hero__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr .95fr; gap: 72px; align-items: center; width: min(var(--wm-max), calc(100% - 56px)); min-height: 720px; margin: auto; padding: 82px 0; }
.wm-hero .eyebrow { color: var(--wm-cyan); }
.wm-hero h1 { max-width: 690px; margin: 0; font: 600 clamp(3.5rem,6vw,6rem)/.98 "Space Grotesk",Arial,sans-serif; letter-spacing: -.065em; }
.wm-hero h1 span { display: block; color: var(--wm-cyan); }
.wm-hero__lead { max-width: 620px; margin: 29px 0 34px; color: #bccadc; font-size: 1.18rem; }
.wm-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.wm-hero__points { display: flex; gap: 25px; flex-wrap: wrap; margin: 38px 0 0; padding: 0; color: #9cafc2; font-size: .82rem; list-style: none; }
.wm-hero__points li { position: relative; padding-left: 17px; }
.wm-hero__points li::before { position: absolute; top: .55em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--wm-cyan); content: ""; }
.wm-hero__visual { position: relative; margin: 0; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; overflow: hidden; box-shadow: 0 32px 85px rgba(0,0,0,.4); }
.wm-hero__visual::after { position: absolute; inset: 0; background: linear-gradient(180deg,transparent 55%,rgba(4,12,23,.9)); content: ""; pointer-events: none; }
.wm-hero__visual img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.wm-hero__visual figcaption { position: absolute; z-index: 1; right: 24px; bottom: 20px; left: 24px; display: flex; justify-content: space-between; color: #fff; font-size: .83rem; }
.wm-hero__visual figcaption span { color: #aab9ca; }

.section { padding: 110px 28px; }
.section-heading { display: grid; grid-template-columns: 1.08fr .92fr; gap: 80px; align-items: end; width: min(var(--wm-max),100%); margin: 0 auto 52px; }
.section-heading h2, .wm-capabilities h2, .wm-contact h2 { margin: 0; font: 600 clamp(2.65rem,4.5vw,4.5rem)/1.04 "Space Grotesk",Arial,sans-serif; letter-spacing: -.055em; }
.section-heading > p { max-width: 520px; margin: 0 0 7px; color: var(--wm-muted); font-size: 1.05rem; }
.section-heading--compact { grid-template-columns: 1fr; }

.wm-services__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; width: min(var(--wm-max),100%); margin: auto; }
.service-card { position: relative; min-height: 430px; padding: 36px; border: 1px solid var(--wm-line); border-radius: 16px; background: #fff; transition: transform .25s ease,box-shadow .25s ease; }
.service-card:hover { transform: translateY(-6px); box-shadow: 0 22px 55px rgba(22,49,79,.1); }
.service-card--accent { background: var(--wm-light); }
.service-card__number { position: absolute; top: 25px; right: 26px; color: #93a3b2; font: 600 .72rem "Space Grotesk",Arial,sans-serif; }
.service-card__icon { display: grid; width: 54px; height: 54px; margin-bottom: 26px; place-items: center; border: 1px solid #b8c9d8; border-radius: 13px; color: var(--wm-blue); }
.service-card__icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.service-card h3 { margin: 0 0 14px; font: 600 1.45rem "Space Grotesk",Arial,sans-serif; }
.service-card p { margin: 0 0 24px; color: var(--wm-muted); }
.service-card ul { margin: 0; padding: 0; list-style: none; }
.service-card li { position: relative; margin-top: 9px; padding-left: 20px; color: #35485b; font-size: .88rem; font-weight: 600; }
.service-card li::before { position: absolute; top: .52em; left: 0; width: 7px; height: 7px; border-radius: 2px; background: var(--wm-cyan); content: ""; }

.wm-capabilities { color: #fff; background: var(--wm-navy); }
.wm-capabilities__inner { display: grid; grid-template-columns: .85fr 1.15fr; gap: 100px; width: min(var(--wm-max),100%); margin: auto; }
.wm-capabilities .eyebrow { color: var(--wm-cyan); }
.wm-capabilities__copy > p:not(.eyebrow) { max-width: 500px; color: #aebed0; }
.text-link { display: inline-flex; gap: 12px; margin-top: 15px; color: var(--wm-cyan); font-weight: 700; }
.capability-list article { display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 26px 0; border-bottom: 1px solid rgba(255,255,255,.13); }
.capability-list article:first-child { padding-top: 0; }
.capability-list article > span { color: var(--wm-cyan); font: 600 .72rem "Space Grotesk",Arial,sans-serif; }
.capability-list h3 { margin: 0 0 6px; font: 600 1.15rem "Space Grotesk",Arial,sans-serif; }
.capability-list p { margin: 0; color: #9fb0c2; font-size: .92rem; }

.wm-process { background: var(--wm-light); }
.wm-process__steps { display: grid; grid-template-columns: repeat(4,1fr); width: min(var(--wm-max),100%); margin: 0 auto; padding: 0; list-style: none; border-top: 1px solid #bccbd7; }
.wm-process__steps li { min-height: 220px; padding: 30px; border-right: 1px solid #cbd8e1; }
.wm-process__steps li:first-child { padding-left: 0; }
.wm-process__steps li:last-child { border-right: 0; }
.wm-process__steps span { color: var(--wm-blue); font: 700 .72rem "Space Grotesk",Arial,sans-serif; }
.wm-process__steps h3 { margin: 25px 0 10px; font: 600 1.3rem "Space Grotesk",Arial,sans-serif; }
.wm-process__steps p { margin: 0; color: var(--wm-muted); font-size: .92rem; }

.wm-contact { padding: 100px 28px; color: #fff; background: var(--wm-blue); }
.wm-contact__inner { width: min(var(--wm-max),100%); margin: auto; }
.wm-contact .eyebrow { color: #c2f1fb; }
.wm-contact h2 { max-width: 880px; font-size: clamp(2.8rem,5vw,5rem); }
.wm-contact__inner > p:not(.eyebrow) { color: #d9e8fc; font-size: 1.15rem; }
.wm-contact__actions { display: flex; gap: 12px; margin-top: 30px; flex-wrap: wrap; }
.button--white { color: var(--wm-blue); background: #fff; }
.button--outline { border: 1px solid rgba(255,255,255,.55); color: #fff; }

.site-footer { padding: 35px 28px; color: #fff; background: #050c16; }
.site-footer__inner { display: flex; justify-content: space-between; align-items: center; gap: 25px; width: min(var(--wm-max),100%); margin: auto; }
.brand--footer img { width: 56px; height: 56px; }
.site-footer p, .site-footer__inner > a:last-child { color: #8999aa; font-size: .84rem; }

@media (max-width: 960px) {
  .site-header nav a:not(.nav-button) { display: none; }
  .wm-hero__inner { grid-template-columns: 1fr; padding: 70px 0 80px; }
  .wm-hero__visual { width: min(680px,100%); }
  .section-heading, .wm-capabilities__inner { grid-template-columns: 1fr; gap: 32px; }
  .wm-services__grid { grid-template-columns: 1fr 1fr; }
  .service-card:last-child { grid-column: 1 / -1; }
  .wm-process__steps { grid-template-columns: 1fr 1fr; }
  .wm-process__steps li { border-bottom: 1px solid #cbd8e1; }
}

@media (max-width: 600px) {
  .site-header__inner { width: calc(100% - 40px); min-height: 76px; }
  .brand img { width: 52px; height: 52px; }
  .brand > span { font-size: .98rem; }
  .site-header .nav-button { padding: 10px 12px; font-size: .78rem; }
  .wm-hero__inner { width: calc(100% - 40px); min-height: auto; padding: 58px 0 65px; }
  .wm-hero h1 { font-size: 3.15rem; }
  .wm-hero__actions .button { width: 100%; }
  .wm-hero__points { flex-direction: column; gap: 9px; }
  .section { padding: 76px 20px; }
  .wm-services__grid { grid-template-columns: 1fr; }
  .service-card:last-child { grid-column: auto; }
  .service-card { min-height: auto; }
  .wm-capabilities__inner { gap: 50px; }
  .wm-process__steps { grid-template-columns: 1fr; }
  .wm-process__steps li,.wm-process__steps li:first-child { min-height: auto; padding: 27px 0; border-right: 0; }
  .wm-contact { padding: 76px 20px; }
  .wm-contact__actions .button { width: 100%; }
  .site-footer__inner { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button, .service-card { transition: none; }
}
.site-header nav .active { color: var(--wm-blue); }
.footer-links { display: flex; gap: 22px; color: #a6b2bf; font-size: .84rem; }
.web-fit { background: #ffffff; }
.web-fit__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; width: min(var(--wm-max), 100%); margin: auto; border: 1px solid var(--wm-line); background: var(--wm-line); }
.web-fit__grid article { min-height: 250px; padding: 31px; background: #ffffff; }
.web-fit__grid span { color: var(--wm-blue); font: 700 .72rem "Space Grotesk", Arial, sans-serif; }
.web-fit__grid h3 { margin: 27px 0 11px; font: 600 1.23rem "Space Grotesk", Arial, sans-serif; }
.web-fit__grid p { margin: 0; color: var(--wm-muted); font-size: .91rem; }
@media (max-width: 900px) { .web-fit__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .web-fit__grid { grid-template-columns: 1fr; } .web-fit__grid article { min-height: auto; } .footer-links { flex-wrap: wrap; } }

.service-card__platform {
  display: grid;
  width: 56px;
  height: 56px;
  margin-bottom: 25px;
  place-items: center;
  border: 1px solid #b8c9d8;
  border-radius: 13px;
  color: var(--wm-blue);
  background: #ffffff;
  font: 700 1.2rem "Space Grotesk", Arial, sans-serif;
}

.service-card--wordpress .service-card__platform { color: #21759b; }
.service-card--joomla .service-card__platform { color: #e16729; }
.service-card--custom .service-card__platform { color: var(--wm-blue); font-size: .95rem; }

.existing-site {
  background: var(--wm-light);
}

.existing-site__inner {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 95px;
  width: min(var(--wm-max), 100%);
  margin: 0 auto;
}

.existing-site__copy h2 {
  margin: 0;
  font: 600 clamp(2.65rem,4.4vw,4.5rem)/1.04 "Space Grotesk", Arial, sans-serif;
  letter-spacing: -.055em;
}

.existing-site__copy > p:not(.eyebrow) {
  color: var(--wm-muted);
}

.existing-site__checklist article {
  display: grid;
  grid-template-columns: 45px 1fr;
  gap: 18px;
  padding: 25px 0;
  border-bottom: 1px solid #cddae3;
}

.existing-site__checklist article:first-child { padding-top: 0; }
.existing-site__checklist article > span { color: var(--wm-blue); font: 700 .72rem "Space Grotesk", Arial, sans-serif; }
.existing-site__checklist h3 { margin: 0 0 6px; font: 600 1.16rem "Space Grotesk", Arial, sans-serif; }
.existing-site__checklist p { margin: 0; color: var(--wm-muted); font-size: .91rem; }

@media (max-width: 900px) {
  .existing-site__inner { grid-template-columns: 1fr; gap: 50px; }
}
