:root {
  --wq-red: var(--wp--preset--color--brand-red, #e11d2e);
  --wq-red-dark: var(--wp--preset--color--brand-red-dark, #b91320);
  --wq-ink: var(--wp--preset--color--ink, #17171b);
  --wq-charcoal: var(--wp--preset--color--charcoal, #292930);
  --wq-muted: var(--wp--preset--color--muted, #6b6c76);
  --wq-paper: var(--wp--preset--color--paper, #faf8f6);
  --wq-line: var(--wp--preset--color--line, #e8e3df);
  --wq-white: #fff;
  --wq-radius: 24px;
  --wq-shadow: 0 24px 70px rgba(36, 22, 22, 0.09);
  --wq-shadow-sm: 0 14px 38px rgba(36, 22, 22, 0.07);
  --wq-wide: min(1240px, calc(100vw - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
img { max-width: 100%; height: auto; }
::selection { background: var(--wq-red); color: #fff; }

.wp-site-blocks { overflow: clip; }
.wqgeo-site-main { margin-top: 0 !important; }
.wqgeo-section { position: relative; padding: clamp(78px, 9vw, 132px) 0; }
.wqgeo-section-tight { padding: clamp(58px, 7vw, 96px) 0; }
.wqgeo-section > .wp-block-group__inner-container,
.wqgeo-section-inner { width: var(--wq-wide); margin-inline: auto; }
.wqgeo-anchor { scroll-margin-top: 100px; }

/* Shared typography */
.wqgeo-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  color: var(--wq-red);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.wqgeo-kicker::before { content: ""; width: 32px; height: 2px; background: currentColor; }
.wqgeo-section-title { margin: 0; font-size: clamp(34px, 4.5vw, 64px); line-height: 1.12; letter-spacing: -.045em; }
.wqgeo-section-lead { max-width: 720px; margin: 20px 0 0; color: var(--wq-muted); font-size: clamp(16px, 1.5vw, 19px); line-height: 1.85; }
.wqgeo-heading-center { text-align: center; }
.wqgeo-heading-center .wqgeo-kicker { justify-content: center; }
.wqgeo-heading-center .wqgeo-section-lead { margin-inline: auto; }
.wqgeo-red-text { color: var(--wq-red); }
.wqgeo-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 13px;
  border: 1px solid rgba(225,29,46,.18);
  border-radius: 999px;
  background: rgba(225,29,46,.06);
  color: var(--wq-red-dark);
  font-size: 12px;
  font-weight: 750;
}
.wqgeo-pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--wq-red); box-shadow: 0 0 0 5px rgba(225,29,46,.1); }

/* Header */
.wqgeo-site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  margin: 0 !important;
  border-bottom: 1px solid transparent;
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(160%) blur(16px);
  transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.wqgeo-site-header.is-scrolled { border-color: var(--wq-line); box-shadow: 0 10px 35px rgba(26,18,18,.06); background: rgba(255,255,255,.98); }
.wqgeo-header-inner { min-height: 78px; width: var(--wq-wide); margin-inline: auto; gap: 28px; }
.wqgeo-header-logo img { width: 178px !important; height: auto !important; border-radius: 0 !important; display: block; }
.wqgeo-site-header .wp-block-navigation { margin-left: auto; }
.wqgeo-site-header .wp-block-navigation-item__content { font-size: 14px; font-weight: 650; text-decoration: none; color: var(--wq-charcoal); }
.wqgeo-site-header .wp-block-navigation-item__content:hover { color: var(--wq-red); }
.wqgeo-header-cta .wp-block-button__link { padding: 12px 19px; font-size: 13px; box-shadow: 0 10px 24px rgba(225,29,46,.2); }
.wp-block-navigation__responsive-container.is-menu-open { padding: 26px; background: #fff !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 64px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 22px; padding: 10px 0; }

/* Hero */
.wqgeo-hero {
  min-height: 760px;
  padding: clamp(78px, 8vw, 112px) 0 clamp(72px, 8vw, 110px);
  background:
    radial-gradient(circle at 88% 12%, rgba(225,29,46,.12), transparent 34%),
    radial-gradient(circle at 9% 90%, rgba(225,29,46,.07), transparent 30%),
    linear-gradient(180deg, #fff 0%, #fbf8f6 100%);
  overflow: hidden;
  position: relative;
}
.wqgeo-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .28;
  pointer-events: none;
  background-image: radial-gradient(rgba(34,28,28,.18) 1px, transparent 1px);
  background-size: 30px 30px;
  mask-image: linear-gradient(to bottom, #000, transparent 80%);
}
.wqgeo-hero::after { content: "GEO"; position: absolute; right: -2vw; bottom: -10vw; font-size: min(35vw, 500px); font-weight: 900; line-height: 1; color: rgba(225,29,46,.028); letter-spacing: -.1em; pointer-events: none; }
.wqgeo-hero-grid { width: var(--wq-wide); margin-inline: auto; display: grid; grid-template-columns: minmax(500px, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(45px, 7vw, 90px); position: relative; z-index: 2; }
.wqgeo-hero-copy { max-width: 650px; }
.wqgeo-hero h1 { margin: 22px 0 26px; font-size: clamp(50px, 6.6vw, 94px); line-height: .99; letter-spacing: -.065em; }
.wqgeo-hero h1 strong { color: var(--wq-red); font-weight: inherit; }
.wqgeo-hero-lead { margin: 0; max-width: 610px; color: #595a63; font-size: clamp(17px, 1.5vw, 20px); line-height: 1.8; }
.wqgeo-hero-actions { margin-top: 34px; gap: 12px !important; }
.wqgeo-hero-actions .wp-block-button__link { min-width: 165px; text-align: center; padding: 15px 23px; }
.wqgeo-button-outline .wp-block-button__link { background: transparent !important; color: var(--wq-ink) !important; border: 1px solid #d8d1cd; box-shadow: none !important; }
.wqgeo-button-outline .wp-block-button__link:hover { border-color: var(--wq-red); color: var(--wq-red) !important; background: rgba(225,29,46,.04) !important; }
.wqgeo-hero-proof { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 34px; padding-top: 25px; border-top: 1px solid var(--wq-line); }
.wqgeo-proof-item { display: flex; align-items: center; gap: 10px; color: #55555e; font-size: 13px; font-weight: 650; }
.wqgeo-proof-item::before { content: "✓"; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; color: var(--wq-red); border: 1px solid rgba(225,29,46,.18); font-size: 11px; }
.wqgeo-hero-media { position: relative; margin: 0; }
.wqgeo-hero-media::before { content: ""; position: absolute; width: 68%; aspect-ratio: 1; border-radius: 50%; background: rgba(225,29,46,.16); filter: blur(90px); top: 6%; right: -4%; z-index: -1; }
.wqgeo-hero-media img { width: 100%; border-radius: 26px !important; box-shadow: 0 35px 90px rgba(48,28,28,.18); border: 1px solid rgba(255,255,255,.75); transform: rotate(1.2deg); }
.wqgeo-float-card { position: absolute; display: flex; align-items: center; gap: 11px; z-index: 3; padding: 13px 16px; border-radius: 15px; background: rgba(255,255,255,.92); border: 1px solid rgba(255,255,255,.9); box-shadow: 0 18px 48px rgba(37,22,22,.13); backdrop-filter: blur(12px); font-size: 12px; font-weight: 750; }
.wqgeo-float-card b { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 10px; background: var(--wq-red); color: #fff; }
.wqgeo-float-a { left: -25px; bottom: 17%; animation: wq-float 5s ease-in-out infinite; }
.wqgeo-float-b { right: -18px; top: 15%; animation: wq-float 5.6s ease-in-out infinite reverse; }
@keyframes wq-float { 50% { transform: translateY(-10px); } }

/* AI platform strip */
.wqgeo-platform-strip { padding: 0; background: #fff; border-top: 1px solid var(--wq-line); border-bottom: 1px solid var(--wq-line); }
.wqgeo-platform-inner { width: var(--wq-wide); margin-inline: auto; display: grid; grid-template-columns: 210px 1fr; align-items: center; min-height: 110px; gap: 28px; }
.wqgeo-platform-label { margin: 0; color: var(--wq-muted); font-size: 13px; font-weight: 700; }
.wqgeo-platforms { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 1px; background: var(--wq-line); border-left: 1px solid var(--wq-line); border-right: 1px solid var(--wq-line); }
.wqgeo-platforms span { min-height: 108px; display: grid; place-items: center; padding: 18px; background: #fff; color: #3d3d45; font-size: 13px; font-weight: 800; text-align: center; transition: color .25s, background .25s; }
.wqgeo-platforms span:hover { color: var(--wq-red); background: #fff9f9; }

/* Pain points */
.wqgeo-problem-section { background: var(--wq-ink); color: #fff; overflow: hidden; }
.wqgeo-problem-section::before { content: ""; 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: 52px 52px; }
.wqgeo-problem-section .wqgeo-section-title { color: #fff; }
.wqgeo-problem-section .wqgeo-section-lead { color: #b9b9c0; }
.wqgeo-problem-grid { width: var(--wq-wide); margin: 56px auto 0; display: grid; grid-template-columns: repeat(4,1fr); gap: 15px; position: relative; }
.wqgeo-problem-card { min-height: 315px; padding: 28px; border: 1px solid rgba(255,255,255,.1); border-radius: 20px; background: rgba(255,255,255,.035); display: flex; flex-direction: column; transition: .3s ease; }
.wqgeo-problem-card:hover { transform: translateY(-7px); border-color: rgba(255,80,90,.4); background: rgba(225,29,46,.09); }
.wqgeo-problem-no { color: #ff6670; font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.wqgeo-problem-card h3 { margin: auto 0 16px; color: #fff; font-size: 22px; }
.wqgeo-problem-card p { margin: 0; color: #ababB5; font-size: 14px; line-height: 1.8; }

/* About / strategy */
.wqgeo-about-grid { width: var(--wq-wide); margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(48px, 8vw, 100px); }
.wqgeo-about-media { position: relative; }
.wqgeo-about-media img { width: 100%; border-radius: 28px !important; box-shadow: var(--wq-shadow); }
.wqgeo-about-media::after { content: "顾问型 · 数据驱动 · 长期增长"; position: absolute; right: -20px; bottom: 30px; padding: 14px 18px; border-radius: 14px; background: var(--wq-red); color: #fff; box-shadow: 0 16px 40px rgba(225,29,46,.24); font-size: 13px; font-weight: 750; }
.wqgeo-check-list { list-style: none; padding: 0; margin: 30px 0 0; display: grid; gap: 13px; }
.wqgeo-check-list li { position: relative; padding-left: 35px; color: #484851; font-size: 15px; }
.wqgeo-check-list li::before { content: "✓"; position: absolute; left: 0; top: 1px; display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: rgba(225,29,46,.08); color: var(--wq-red); font-size: 11px; font-weight: 900; }
.wqgeo-number-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 34px; }
.wqgeo-number { padding: 18px; border: 1px solid var(--wq-line); border-radius: 16px; background: #fff; }
.wqgeo-number strong { display: block; color: var(--wq-red); font-size: 27px; line-height: 1; }
.wqgeo-number span { display: block; margin-top: 7px; color: var(--wq-muted); font-size: 12px; }

/* Services shortcode */
.wqgeo-services-wrap { width: var(--wq-wide); margin: 56px auto 0; }
.wqgeo-service-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 15px; }
.wqgeo-service-card { grid-column: span 2; position: relative; min-height: 360px; padding: 30px; border: 1px solid var(--wq-line); border-radius: 22px; background: #fff; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.wqgeo-service-card:nth-child(4), .wqgeo-service-card:nth-child(5) { grid-column: span 3; }
.wqgeo-service-card::after { content: attr(data-icon); position: absolute; right: -2px; bottom: -35px; color: rgba(225,29,46,.045); font-size: 150px; font-weight: 900; line-height: 1; pointer-events: none; }
.wqgeo-service-card:hover { transform: translateY(-7px); box-shadow: var(--wq-shadow); border-color: rgba(225,29,46,.22); }
.wqgeo-service-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.wqgeo-service-index { color: var(--wq-red); font-size: 12px; font-weight: 850; letter-spacing: .14em; }
.wqgeo-service-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: #fff3f4; color: var(--wq-red); font-size: 18px; font-weight: 900; }
.wqgeo-service-card h3 { margin: 44px 0 14px; font-size: 24px; }
.wqgeo-service-card h3 a { text-decoration: none; }
.wqgeo-service-card > p { margin: 0; color: var(--wq-muted); font-size: 14px; line-height: 1.78; }
.wqgeo-service-features { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 8px; }
.wqgeo-service-features li { color: #45454d; font-size: 13px; }
.wqgeo-service-features li::before { content: "—"; color: var(--wq-red); margin-right: 8px; }
.wqgeo-service-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 20px; color: var(--wq-red); font-size: 13px; font-weight: 750; text-decoration: none; }
.wqgeo-empty-state { width: var(--wq-wide); margin: 40px auto; padding: 30px; border: 1px dashed #d5ceca; border-radius: 18px; text-align: center; color: var(--wq-muted); }

/* Process */
.wqgeo-process-section { background: var(--wq-paper); }
.wqgeo-process-layout { width: var(--wq-wide); margin-inline: auto; display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(45px, 8vw, 105px); align-items: start; }
.wqgeo-process-copy { position: sticky; top: 120px; }
.wqgeo-process-list { counter-reset: step; border-top: 1px solid #dcd5d1; }
.wqgeo-process-step { counter-increment: step; display: grid; grid-template-columns: 75px 1fr 34px; gap: 20px; padding: 27px 0; border-bottom: 1px solid #dcd5d1; align-items: start; transition: padding .25s ease; }
.wqgeo-process-step:hover { padding-left: 10px; }
.wqgeo-process-step::before { content: "0" counter(step); color: var(--wq-red); font-size: 13px; font-weight: 850; letter-spacing: .1em; padding-top: 8px; }
.wqgeo-process-step h3 { margin: 0 0 7px; font-size: 23px; }
.wqgeo-process-step p { margin: 0; color: var(--wq-muted); font-size: 14px; line-height: 1.75; }
.wqgeo-process-step::after { content: "↗"; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid #d6cfcb; color: var(--wq-red); font-weight: 800; }

/* Deliverables */
.wqgeo-deliverables { width: var(--wq-wide); margin-inline: auto; padding: clamp(40px, 6vw, 72px); border-radius: 30px; background: linear-gradient(135deg,#17171b 0%,#2b1b1e 58%,#86111a 100%); color: #fff; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(38px, 7vw, 86px); box-shadow: 0 32px 85px rgba(54,18,22,.22); overflow: hidden; position: relative; }
.wqgeo-deliverables::after { content: ""; position: absolute; width: 450px; height: 450px; border-radius: 50%; border: 1px solid rgba(255,255,255,.08); right: -190px; top: -210px; }
.wqgeo-deliverables h2 { color: #fff; margin: 0; font-size: clamp(34px,4vw,58px); }
.wqgeo-deliverables p { color: #c8c5c7; }
.wqgeo-deliverable-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; position: relative; z-index: 2; }
.wqgeo-deliverable-item { padding: 16px; border: 1px solid rgba(255,255,255,.11); border-radius: 14px; background: rgba(255,255,255,.055); color: #f4f2f3; font-size: 13px; }
.wqgeo-deliverable-item b { color: #ff727a; margin-right: 8px; }

/* Cases shortcode */
.wqgeo-cases-wrap { width: var(--wq-wide); margin: 54px auto 0; }
.wqgeo-case-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.wqgeo-case-card { border: 1px solid var(--wq-line); border-radius: 22px; background: #fff; overflow: hidden; transition: .3s ease; }
.wqgeo-case-card:hover { transform: translateY(-7px); box-shadow: var(--wq-shadow); }
.wqgeo-case-image { display: block; aspect-ratio: 1.5; overflow: hidden; background: #222; }
.wqgeo-case-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; transition: transform .5s ease; }
.wqgeo-case-card:hover .wqgeo-case-image img { transform: scale(1.04); }
.wqgeo-case-body { padding: 24px; }
.wqgeo-case-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.wqgeo-case-meta span { padding: 5px 9px; border-radius: 999px; background: #fff1f2; color: var(--wq-red-dark); font-size: 10px; font-weight: 750; }
.wqgeo-case-card h3 { margin: 0 0 10px; font-size: 21px; }
.wqgeo-case-card h3 a { text-decoration: none; }
.wqgeo-case-card p { margin: 0; color: var(--wq-muted); font-size: 13px; line-height: 1.75; }
.wqgeo-case-result { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--wq-line); color: #45454d; font-size: 12px; font-weight: 700; }
.wqgeo-case-result b { color: var(--wq-red); }

/* Advantages */
.wqgeo-advantage-grid { width: var(--wq-wide); margin: 54px auto 0; display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.wqgeo-advantage-card { min-height: 325px; padding: 28px; border: 1px solid var(--wq-line); border-radius: 20px; background: #fff; display: flex; flex-direction: column; transition: .3s ease; }
.wqgeo-advantage-card:hover { transform: translateY(-7px); border-color: rgba(225,29,46,.24); box-shadow: var(--wq-shadow-sm); }
.wqgeo-advantage-icon { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 15px; background: var(--wq-ink); color: #fff; font-size: 18px; }
.wqgeo-advantage-card h3 { margin: auto 0 13px; font-size: 22px; }
.wqgeo-advantage-card p { margin: 0; color: var(--wq-muted); font-size: 14px; line-height: 1.78; }

/* Target clients */
.wqgeo-client-panel { width: var(--wq-wide); margin-inline: auto; display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; align-items: center; }
.wqgeo-client-cloud { display: flex; flex-wrap: wrap; gap: 11px; }
.wqgeo-client-cloud span { padding: 14px 18px; border: 1px solid var(--wq-line); border-radius: 13px; background: #fff; color: #44444d; font-size: 13px; font-weight: 700; box-shadow: 0 8px 26px rgba(36,22,22,.04); }
.wqgeo-client-cloud span:nth-child(3n+2) { transform: translateY(11px); }
.wqgeo-client-cloud span:hover { border-color: rgba(225,29,46,.3); color: var(--wq-red); }

/* Blog query */
.wqgeo-post-query { width: var(--wq-wide); margin: 50px auto 0; }
.wqgeo-post-query .wp-block-post-template { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.wqgeo-post-query .wp-block-post { padding: 0 0 24px; border: 1px solid var(--wq-line); border-radius: 20px; overflow: hidden; background: #fff; }
.wqgeo-post-query .wp-block-post-featured-image { margin: 0 0 23px !important; aspect-ratio: 1.6; overflow: hidden; background: var(--wq-paper); }
.wqgeo-post-query .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; }
.wqgeo-post-query .wp-block-post-title, .wqgeo-post-query .wp-block-post-excerpt, .wqgeo-post-query .wp-block-post-date { padding-inline: 24px; }
.wqgeo-post-query .wp-block-post-title { margin: 0 0 10px; font-size: 21px; }
.wqgeo-post-query .wp-block-post-title a { text-decoration: none; }
.wqgeo-post-query .wp-block-post-date { color: var(--wq-red); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.wqgeo-post-query .wp-block-post-excerpt { color: var(--wq-muted); font-size: 13px; }

/* FAQ shortcode */
.wqgeo-faq-layout { width: var(--wq-wide); margin-inline: auto; display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(45px,8vw,100px); align-items: start; }
.wqgeo-faq-list { border-top: 1px solid var(--wq-line); }
.wqgeo-faq-item { margin: 0; border-bottom: 1px solid var(--wq-line); }
.wqgeo-faq-item summary { list-style: none; cursor: pointer; position: relative; padding: 23px 52px 23px 0; color: var(--wq-ink); font-size: 17px; font-weight: 750; }
.wqgeo-faq-item summary::-webkit-details-marker { display: none; }
.wqgeo-faq-item summary::after { content: "+"; position: absolute; right: 0; top: 20px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #fff1f2; color: var(--wq-red); font-size: 21px; transition: transform .2s; }
.wqgeo-faq-item[open] summary::after { transform: rotate(45deg); }
.wqgeo-faq-answer { padding: 0 55px 24px 0; color: var(--wq-muted); font-size: 14px; line-height: 1.85; }
.wqgeo-faq-answer > :first-child { margin-top: 0; }
.wqgeo-faq-answer > :last-child { margin-bottom: 0; }

/* CTA + form */
.wqgeo-cta-section { padding-bottom: clamp(82px,9vw,130px); background: linear-gradient(180deg,#fff 0%,#faf6f4 100%); }
.wqgeo-cta-panel { width: var(--wq-wide); margin-inline: auto; padding: clamp(36px,6vw,70px); border-radius: 30px; background: linear-gradient(135deg,#17171b 0%,#2b1b1e 55%,#8f101b 100%); color: #fff; display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(42px,7vw,82px); position: relative; overflow: hidden; box-shadow: 0 32px 90px rgba(54,18,22,.25); }
.wqgeo-cta-panel::before { content: ""; position: absolute; width: 430px; height: 430px; border-radius: 50%; border: 1px solid rgba(255,255,255,.08); top: -210px; right: -170px; }
.wqgeo-cta-copy { position: relative; z-index: 2; }
.wqgeo-cta-copy h2 { margin: 0; color: #fff; font-size: clamp(36px,4.5vw,62px); }
.wqgeo-cta-copy p { color: #cac7c9; font-size: 16px; }
.wqgeo-cta-points { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.wqgeo-cta-points span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(255,255,255,.06); color: #eee; font-size: 11px; }
.wqgeo-contact-mini { margin-top: 35px; color: #bdb8ba; font-size: 13px; line-height: 1.9; }
.wqgeo-contact-mini b { color: #fff; }
.wqgeo-lead-form-wrap { position: relative; z-index: 2; }
.wqgeo-lead-form { padding: 28px; border-radius: 20px; background: #fff; color: var(--wq-ink); box-shadow: 0 22px 65px rgba(0,0,0,.22); }
.wqgeo-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.wqgeo-field { display: grid; gap: 6px; }
.wqgeo-field-full { grid-column: 1 / -1; }
.wqgeo-field label { color: #3f3f47; font-size: 12px; font-weight: 750; }
.wqgeo-field input, .wqgeo-field select, .wqgeo-field textarea { width: 100%; min-height: 45px; padding: 11px 12px; border: 1px solid #ded8d4; border-radius: 10px; background: #fbfaf9; color: var(--wq-ink); font: inherit; font-size: 14px; outline: none; }
.wqgeo-field textarea { min-height: 102px; resize: vertical; }
.wqgeo-field input:focus, .wqgeo-field select:focus, .wqgeo-field textarea:focus { border-color: var(--wq-red); box-shadow: 0 0 0 3px rgba(225,29,46,.09); background: #fff; }
.wqgeo-form-consent { grid-column: 1 / -1; display: flex; gap: 8px; align-items: flex-start; color: #777781; font-size: 11px; }
.wqgeo-form-consent input { margin-top: 3px; }
.wqgeo-form-submit { grid-column: 1 / -1; width: 100%; min-height: 50px; border: 0; border-radius: 999px; background: var(--wq-red); color: #fff; font-size: 14px; font-weight: 800; cursor: pointer; transition: .2s ease; box-shadow: 0 12px 28px rgba(225,29,46,.22); }
.wqgeo-form-submit:hover { background: var(--wq-red-dark); transform: translateY(-1px); }
.wqgeo-form-note { margin: 10px 0 0; color: #90909a; font-size: 10px; text-align: center; }
.wqgeo-form-message { margin-bottom: 14px; padding: 11px 13px; border-radius: 10px; font-size: 12px; }
.wqgeo-form-success { background: #eaf8ef; color: #1d6c38; }
.wqgeo-form-error { background: #fff0f1; color: #a91420; }
.wqgeo-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Footer */
.wqgeo-site-footer { margin: 0 !important; padding: 70px 0 25px; background: #111115; color: #fff; }
.wqgeo-footer-grid { width: var(--wq-wide); margin-inline: auto; display: grid; grid-template-columns: 1.3fr .7fr .7fr 1fr; gap: 48px; }
.wqgeo-footer-logo img { width: 190px !important; height: auto !important; border-radius: 0 !important; }
.wqgeo-footer-brand p { max-width: 340px; color: #95959e; font-size: 13px; }
.wqgeo-footer-title { margin: 0 0 18px; color: #fff; font-size: 14px; }
.wqgeo-footer-links { display: grid; gap: 9px; }
.wqgeo-footer-links a, .wqgeo-footer-links p { margin: 0; color: #9999a3; font-size: 12px; text-decoration: none; }
.wqgeo-footer-links a:hover { color: #ff6570; }
.wqgeo-footer-bottom { width: var(--wq-wide); margin: 50px auto 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.09); display: flex; justify-content: space-between; gap: 20px; color: #777781; font-size: 11px; }

/* Inner content templates */
.wqgeo-inner-hero { padding: 90px 0 55px; background: var(--wq-paper); border-bottom: 1px solid var(--wq-line); }
.wqgeo-inner-hero > * { width: min(900px, calc(100vw - 48px)); margin-inline: auto; }
.wqgeo-inner-hero .wp-block-post-title { font-size: clamp(38px,6vw,70px); }
.wqgeo-content-shell { width: min(820px, calc(100vw - 48px)); margin: 60px auto 90px; }
.wqgeo-content-shell :where(h2,h3,h4) { margin-top: 1.8em; }
.wqgeo-content-shell p, .wqgeo-content-shell li { color: #4e4e57; }
.wqgeo-archive-shell { width: var(--wq-wide); margin: 55px auto 100px; }
.wqgeo-archive-shell .wp-block-post-template { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.wqgeo-archive-shell .wp-block-post { padding: 24px; border: 1px solid var(--wq-line); border-radius: 18px; }

/* Reveal effect (front only, editor remains visible) */
.wqgeo-js body:not(.block-editor-page) .wqgeo-reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.wqgeo-js body:not(.block-editor-page) .wqgeo-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1180px) {
  .wqgeo-header-cta { display: none; }
  .wqgeo-header-inner { gap: 18px; }
  .wqgeo-site-header .wp-block-navigation-item__content { font-size: 13px; }
}



/* WordPress FSE constrained-layout compatibility.
   Keep custom full-width section wrappers from inheriting contentSize (760px). */
:where(
  .wqgeo-header-inner,
  .wqgeo-hero-grid,
  .wqgeo-platform-inner,
  .wqgeo-problem-grid,
  .wqgeo-about-grid,
  .wqgeo-services-wrap,
  .wqgeo-process-layout,
  .wqgeo-deliverables,
  .wqgeo-cases-wrap,
  .wqgeo-advantage-grid,
  .wqgeo-client-panel,
  .wqgeo-post-query,
  .wqgeo-faq-layout,
  .wqgeo-cta-panel,
  .wqgeo-footer-grid,
  .wqgeo-footer-bottom,
  .wqgeo-archive-shell,
  .wqgeo-section-inner
) { max-width: none !important; }

.wqgeo-hero-copy,
.wqgeo-hero-visual { min-width: 0; }
.wqgeo-hero h1 { white-space: nowrap; word-break: keep-all; overflow-wrap: normal; }
.wqgeo-hero-media {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 360px;
  background: url("../images/hero-dashboard.jpg") center / cover no-repeat;
  border-radius: 26px;
}
.wqgeo-hero-media img { display: block !important; opacity: 1 !important; visibility: visible !important; }
.wqgeo-main-nav { min-width: 0; flex: 1 1 auto; }
.wqgeo-main-nav .wp-block-navigation__container { flex-wrap: nowrap !important; column-gap: clamp(14px, 1.55vw, 28px) !important; }

@media (max-width: 1080px) {
  .wqgeo-hero-grid { grid-template-columns: 1fr; text-align: center; }
  .wqgeo-hero h1 { white-space: normal; }
  .wqgeo-hero-media { min-height: 0; }
  .wqgeo-hero-copy { margin-inline: auto; }
  .wqgeo-hero-lead { margin-inline: auto; }
  .wqgeo-hero-actions { justify-content: center; }
  .wqgeo-hero-proof { justify-content: center; }
  .wqgeo-hero-media { max-width: 820px; margin-inline: auto; }
  .wqgeo-platform-inner { grid-template-columns: 1fr; padding-top: 24px; gap: 10px; }
  .wqgeo-platform-label { text-align: center; }
  .wqgeo-problem-grid, .wqgeo-advantage-grid { grid-template-columns: repeat(2,1fr); }
  .wqgeo-service-grid { grid-template-columns: repeat(2,1fr); }
  .wqgeo-service-card, .wqgeo-service-card:nth-child(4), .wqgeo-service-card:nth-child(5) { grid-column: auto; }
  .wqgeo-about-grid, .wqgeo-process-layout, .wqgeo-faq-layout, .wqgeo-cta-panel { grid-template-columns: 1fr; }
  .wqgeo-process-copy { position: static; }
  .wqgeo-deliverables { grid-template-columns: 1fr; }
  .wqgeo-case-grid, .wqgeo-post-query .wp-block-post-template, .wqgeo-archive-shell .wp-block-post-template { grid-template-columns: repeat(2,1fr); }
  .wqgeo-client-panel { grid-template-columns: 1fr; }
  .wqgeo-footer-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .wqgeo-footer-brand { grid-column: 1/-1; }
}

@media (max-width: 780px) {
  :root { --wq-wide: min(100% - 30px, 1240px); }
  .wqgeo-header-inner { min-height: 68px; }
  .wqgeo-header-logo img { width: 145px !important; }
  .wqgeo-header-cta { display: none; }
  .wqgeo-hero { min-height: auto; padding-top: 65px; }
  .wqgeo-hero h1 { font-size: clamp(46px,13vw,70px); }
  .wqgeo-float-card { display: none; }
  .wqgeo-platforms { grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--wq-line); }
  .wqgeo-platforms span { min-height: 75px; }
  .wqgeo-platforms span:last-child { grid-column: 1/-1; }
  .wqgeo-problem-grid, .wqgeo-service-grid, .wqgeo-case-grid, .wqgeo-advantage-grid, .wqgeo-post-query .wp-block-post-template, .wqgeo-archive-shell .wp-block-post-template { grid-template-columns: 1fr; }
  .wqgeo-problem-card { min-height: 260px; }
  .wqgeo-about-media::after { right: 12px; bottom: 12px; }
  .wqgeo-number-row { grid-template-columns: 1fr; }
  .wqgeo-service-card { min-height: auto; }
  .wqgeo-process-step { grid-template-columns: 55px 1fr; }
  .wqgeo-process-step::after { display: none; }
  .wqgeo-deliverable-list { grid-template-columns: 1fr; }
  .wqgeo-client-cloud span:nth-child(3n+2) { transform: none; }
  .wqgeo-form-grid { grid-template-columns: 1fr; }
  .wqgeo-field-full, .wqgeo-form-consent, .wqgeo-form-submit { grid-column: auto; }
  .wqgeo-footer-grid { grid-template-columns: 1fr 1fr; }
  .wqgeo-footer-brand { grid-column: 1/-1; }
  .wqgeo-footer-bottom { display: block; }
}

@media (max-width: 520px) {
  .wqgeo-section { padding: 72px 0; }
  .wqgeo-section-title { font-size: 36px; }
  .wqgeo-hero-actions { display: grid !important; grid-template-columns: 1fr; }
  .wqgeo-hero-actions .wp-block-button, .wqgeo-hero-actions .wp-block-button__link { width: 100%; }
  .wqgeo-hero-proof { display: grid; justify-content: start; text-align: left; }
  .wqgeo-about-media::after { position: static; display: block; margin-top: 12px; text-align: center; }
  .wqgeo-deliverables, .wqgeo-cta-panel { padding: 30px 20px; border-radius: 22px; }
  .wqgeo-lead-form { padding: 20px 16px; }
  .wqgeo-footer-grid { grid-template-columns: 1fr; }
  .wqgeo-footer-brand { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .wqgeo-js body:not(.block-editor-page) .wqgeo-reveal { opacity: 1; transform: none; }
}
