/* Doctor Fix SEO V2 — isolated production system for the four batch-1 pages. */

.seo-v2-page {
  --seo-v2-ink: #0f172a;
  --seo-v2-text: #52657a;
  --seo-v2-blue: #0ea5e9;
  --seo-v2-cyan: #22d3ee;
  --seo-v2-deep: #0369a1;
  --seo-v2-line: rgba(14, 165, 233, 0.2);
  --seo-v2-shadow: 0 22px 60px rgba(15, 61, 115, 0.11);
  --seo-v2-soft-shadow: 0 14px 34px rgba(15, 61, 115, 0.08);
  background: #eef7ff;
  color: var(--seo-v2-ink);
}


/* Iteration 2 — one continuous light-blue canvas.
   The page-level glows live on a single decorative layer so no section can ever
   introduce a visible horizontal boundary. Sections stay transparent. */
.seo-v2-page #main-content {
  position: relative;
  overflow: clip;
  background: #eef7ff;
}

.seo-v2-page #main-content::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(58rem 40rem at 3% 1%, rgba(34, 211, 238, 0.15), transparent 68%),
    radial-gradient(54rem 38rem at 99% 9%, rgba(99, 102, 241, 0.075), transparent 68%),
    radial-gradient(50rem 34rem at 0% 27%, rgba(34, 211, 238, 0.085), transparent 68%),
    radial-gradient(52rem 36rem at 100% 44%, rgba(99, 102, 241, 0.06), transparent 68%),
    radial-gradient(48rem 33rem at 5% 62%, rgba(34, 211, 238, 0.08), transparent 68%),
    radial-gradient(52rem 35rem at 97% 79%, rgba(99, 102, 241, 0.055), transparent 68%),
    radial-gradient(46rem 32rem at 8% 95%, rgba(34, 211, 238, 0.075), transparent 68%);
}

.seo-v2-page .seo-v2-main > * {
  position: relative;
  z-index: 1;
}

.seo-v2-page .seo-v2-main,
.seo-v2-page .seo-v2-main * {
  box-sizing: border-box;
}

.seo-v2-page .seo-v2-container {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}

/* 920 rather than 880: "Частые вопросы о ремонте ноутбуков" needed ~19px more
   to stay on one line at 1440 (it already fitted at 1280, so the wrap was a
   container artefact, not a length problem). FAQ cards keep their narrow feel. */
.seo-v2-page .seo-v2-container--narrow {
  width: min(920px, calc(100% - 40px));
}

.seo-v2-page .seo-v2-breadcrumbs {
  position: relative;
  z-index: 3;
  padding: 18px 0 6px;
  background: transparent;
  border-bottom: 0;
}

.seo-v2-page .seo-v2-breadcrumbs ol {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  padding: 0;
  margin: 0;
  list-style: none;
  color: #607086;
  font-size: 15px;
  font-weight: 600;
}

.seo-v2-page .seo-v2-breadcrumbs li {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.seo-v2-page .seo-v2-breadcrumbs li:not(:last-child)::after {
  content: "/";
  color: #a7b5c5;
}

.seo-v2-page .seo-v2-breadcrumbs a {
  color: #52657a;
  text-decoration: none;
}

.seo-v2-page .seo-v2-breadcrumbs span[aria-current="page"] {
  color: #0f6da8;
}

.seo-v2-page .seo-v2-hero {
  position: relative;
  padding: 16px 0 44px;
  isolation: isolate;
  background: transparent;
}

.seo-v2-page .seo-v2-hero::before,
.seo-v2-page .seo-v2-hero::after {
  position: absolute;
  z-index: -1;
  content: "";
  border: 1px solid rgba(14, 165, 233, 0.12);
  border-radius: 999px;
  pointer-events: none;
}

.seo-v2-page .seo-v2-hero::before {
  width: 340px;
  height: 340px;
  top: -170px;
  right: -120px;
}

.seo-v2-page .seo-v2-hero::after {
  width: 220px;
  height: 220px;
  bottom: -130px;
  left: -90px;
}

.seo-v2-page .seo-v2-hero__shell {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(420px, 0.94fr);
  min-height: 560px;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 12%, rgba(34, 211, 238, 0.08), transparent 18rem),
    rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(14, 165, 233, 0.2);
  border-radius: 34px;
  box-shadow: var(--seo-v2-shadow);
}

.seo-v2-page .seo-v2-hero__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 56px 50px 48px;
}

.seo-v2-page .seo-v2-eyebrow {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 9px;
  max-width: 100%;
  margin: 0 0 24px;
  padding: 8px 13px;
  color: #076aa5;
  background: rgba(224, 244, 255, 0.92);
  border: 1px solid rgba(14, 165, 233, 0.16);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.seo-v2-page .seo-v2-eyebrow > span {
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  background: var(--seo-v2-blue);
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(34, 211, 238, 0.16);
}

.seo-v2-page .seo-v2-hero h1 {
  max-width: 700px;
  margin: 0;
  color: var(--seo-v2-ink);
  font-family: "Exo 2", "Exo2", system-ui, sans-serif;
  font-size: clamp(42px, 4vw, 57px);
  font-weight: 900;
  line-height: 1.03;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.seo-v2-page .seo-v2-hero--services h1 {
  font-size: clamp(38px, 3.45vw, 49px);
}

.seo-v2-page .seo-v2-hero__lead {
  max-width: 660px;
  margin: 24px 0 0;
  color: var(--seo-v2-text);
  font-size: 18px;
  line-height: 1.65;
}

.seo-v2-page .seo-v2-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 13px;
  margin-top: 30px;
}

.seo-v2-page .seo-v2-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 54px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 17px;
  font: inherit;
  font-size: 15px;
  font-weight: 850;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition:
    transform 0.28s ease,
    border-color 0.28s ease,
    box-shadow 0.28s ease,
    background-color 0.28s ease;
}

.seo-v2-page .seo-v2-button--primary {
  color: #fff;
  background: linear-gradient(118deg, #1688f7 0%, #15bfe2 100%);
  box-shadow: 0 14px 30px rgba(14, 165, 233, 0.25);
}

.seo-v2-page .seo-v2-button--secondary {
  color: #0874b7;
  background: rgba(255, 255, 255, 0.84);
  border-color: rgba(14, 165, 233, 0.28);
}

.seo-v2-page .seo-v2-arrow {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  transition: transform 0.25s ease;
}

.seo-v2-page .seo-v2-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  padding: 0;
  margin: 30px 0 0;
  list-style: none;
}

.seo-v2-page .seo-v2-hero__trust li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #26435f;
  font-size: 14px;
  font-weight: 750;
}

.seo-v2-page .seo-v2-hero__trust li > span {
  display: grid;
  width: 29px;
  height: 29px;
  flex: 0 0 29px;
  place-items: center;
  color: #078dd1;
  background: #effaff;
  border: 1px solid rgba(14, 165, 233, 0.25);
  border-radius: 50%;
}

.seo-v2-page .seo-v2-hero__trust svg {
  width: 16px;
  height: 16px;
}

.seo-v2-page .seo-v2-hero__media {
  position: relative;
  min-width: 0;
  margin: 12px;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 18%, rgba(34, 211, 238, 0.22), transparent 13rem),
    #dff2ff;
  border: 1px solid rgba(14, 165, 233, 0.16);
  border-radius: 27px;
}

.seo-v2-page .seo-v2-hero__media picture,
.seo-v2-page .seo-v2-hero__media > picture {
  display: block;
  width: 100%;
  height: 100%;
}

.seo-v2-page .seo-v2-hero__media picture > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.seo-v2-page .seo-v2-hero--sales .seo-v2-hero__media img {
  object-position: 51% center;
}

.seo-v2-page .seo-v2-sale-mark {
  position: absolute;
  top: 24px;
  right: 24px;
  display: grid;
  width: 124px;
  height: 124px;
  place-items: center;
  color: #fff;
  background:
    radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.88) 0 7%, transparent 8%),
    linear-gradient(145deg, #31d4ed, #1582ee);
  border: 7px solid rgba(255, 255, 255, 0.82);
  border-radius: 50%;
  box-shadow: 0 20px 45px rgba(0, 119, 191, 0.28);
  font-size: 31px;
  font-weight: 900;
  letter-spacing: -0.04em;
}

/* Iteration 2: the Services hero collage was replaced by a single approved
   <picture>; its styles are removed because nothing else uses them. */

/* Vertical rhythm: 46px top + 46px bottom = ~92px of air between two
   consecutive sections, which reads as related-but-separate. Anything much
   larger turned into an unexplained empty blue band. */
.seo-v2-page .seo-v2-section {
  position: relative;
  padding: 46px 0;
  scroll-margin-top: 96px;
}

/* Section modifiers no longer paint a full-width sheet — they only tune rhythm.
   Visual separation comes from spacing, layout and local white cards. */
.seo-v2-page .seo-v2-section--white,
.seo-v2-page .seo-v2-section--blue,
.seo-v2-page .seo-v2-section--consultation,
.seo-v2-page .seo-v2-section--final {
  background: transparent;
}

/* The closing sequence (related -> final CTA/form -> footer) is one
   composition: slightly tighter lead-in, controlled landing before the footer. */
.seo-v2-page .seo-v2-section--consultation,
.seo-v2-page .seo-v2-section--final {
  padding-top: 42px;
  padding-bottom: 64px;
}

/* 790px forced medium-length headings ("От заявки до исправного компьютера",
   "Частые вопросы о ремонте ноутбуков") onto two lines while the 1180px
   container still had room. Wide enough for those to sit on one line, still
   short of the full container so long headings wrap naturally. */
.seo-v2-page .seo-v2-section-head {
  max-width: 1040px;
  margin: 0 0 38px;
}

.seo-v2-page .seo-v2-section-head h2,
.seo-v2-page .seo-v2-info-panel h2,
.seo-v2-page .seo-v2-local h2,
.seo-v2-page .seo-v2-final h2,
.seo-v2-page .seo-v2-consultation h2 {
  margin: 0;
  color: var(--seo-v2-ink);
  font-family: "Exo 2", "Exo2", system-ui, sans-serif;
  font-size: clamp(34px, 3.7vw, 49px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -0.032em;
  text-wrap: balance;
}

.seo-v2-page .seo-v2-section-head > p:last-child {
  max-width: 750px;
  margin: 18px 0 0;
  color: var(--seo-v2-text);
  font-size: 18px;
  line-height: 1.65;
}

/* Global styles.css centres every h2, which left the heading off the vertical
   axis that the kicker, lead and CTA already share. Section intro groups are
   editorial blocks — kicker, H2 and lead now start on one left axis.
   Listed per component rather than as a blanket h2 rule, so anything outside
   these intro groups keeps whatever alignment its own composition needs. */
.seo-v2-page .seo-v2-section-head h2,
.seo-v2-page .seo-v2-consultation h2,
.seo-v2-page .seo-v2-final h2,
.seo-v2-page .seo-v2-info-panel h2,
.seo-v2-page .seo-v2-local h2 {
  text-align: left;
}

.seo-v2-page .seo-v2-kicker {
  margin: 0 0 13px;
  color: #0876b8;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.25;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.seo-v2-page .seo-v2-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.seo-v2-page .seo-v2-card-grid--categories,
.seo-v2-page .seo-v2-card-grid--symptoms {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.seo-v2-page .seo-v2-card-grid--five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.seo-v2-page .seo-v2-card-grid--warnings {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}

.seo-v2-page .seo-v2-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
  padding: 24px 24px 62px;
  overflow: hidden;
  color: var(--seo-v2-ink);
  background:
    radial-gradient(circle at 100% 0, rgba(34, 211, 238, 0.13), transparent 8rem),
    rgba(255, 255, 255, 0.93);
  border: 1px solid var(--seo-v2-line);
  border-radius: 25px;
  box-shadow: var(--seo-v2-soft-shadow);
  text-decoration: none;
  transition:
    transform 0.32s ease,
    border-color 0.32s ease,
    box-shadow 0.32s ease;
}

.seo-v2-page .seo-v2-card--compact {
  min-height: 0;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
}

/* Quick-warning rows: a lighter weight than a standard info card. */
.seo-v2-page .seo-v2-card-grid--warnings .seo-v2-card {
  min-height: 0;
  gap: 13px;
  padding: 14px 17px;
  border-radius: 19px;
  box-shadow: 0 7px 18px rgba(15, 61, 115, 0.05);
}

.seo-v2-page .seo-v2-card-grid--warnings .seo-v2-card h3 {
  font-size: 15px;
  line-height: 1.35;
  letter-spacing: -0.005em;
}

.seo-v2-page .seo-v2-card-grid--warnings .seo-v2-icon {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
  border-radius: 13px;
  box-shadow: 0 6px 15px rgba(14, 165, 233, 0.12);
}

.seo-v2-page .seo-v2-card-grid--warnings .seo-v2-icon svg {
  width: 21px;
  height: 21px;
}

.seo-v2-page .seo-v2-card-grid--five .seo-v2-card {
  min-height: 0;
  padding: 22px;
}

.seo-v2-page .seo-v2-icon {
  display: grid;
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  place-items: center;
  color: #087cbe;
  background:
    radial-gradient(circle at 30% 25%, #fff, #e7f8ff);
  border: 1px solid rgba(14, 165, 233, 0.24);
  border-radius: 17px;
  box-shadow: 0 9px 22px rgba(14, 165, 233, 0.14);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.seo-v2-page .seo-v2-icon svg {
  width: 27px;
  height: 27px;
}

.seo-v2-page .seo-v2-card__body {
  min-width: 0;
}

.seo-v2-page .seo-v2-card h3,
.seo-v2-page .seo-v2-price-card h3,
.seo-v2-page .seo-v2-step h3,
.seo-v2-page .seo-v2-price-row h3 {
  margin: 0;
  color: var(--seo-v2-ink);
  font-size: 20px;
  font-weight: 850;
  line-height: 1.25;
  letter-spacing: -0.015em;
}

.seo-v2-page .seo-v2-card p,
.seo-v2-page .seo-v2-price-card p,
.seo-v2-page .seo-v2-step p,
.seo-v2-page .seo-v2-price-row p {
  margin: 10px 0 0;
  color: var(--seo-v2-text);
  font-size: 15px;
  line-height: 1.58;
}

.seo-v2-page .seo-v2-card__arrow {
  position: absolute;
  right: 21px;
  bottom: 20px;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: #0784c8;
  background: #eefaff;
  border-radius: 50%;
}

.seo-v2-page .seo-v2-card__arrow svg {
  width: 18px;
  height: 18px;
}

.seo-v2-page .seo-v2-card--compact .seo-v2-card__arrow {
  position: static;
  flex: 0 0 32px;
  margin-left: auto;
}

.seo-v2-page .seo-v2-card--compact h3 {
  font-size: 17px;
}

/* minmax(200px) dropped the 5th step onto its own row at 1024 — 170px keeps the
   five steps reading as one sequence down to ~900px. */
.seo-v2-page .seo-v2-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 14px;
  padding: 0;
  margin: 0;
  list-style: none;
  counter-reset: steps;
}

.seo-v2-page .seo-v2-step {
  position: relative;
  min-height: 0;
  padding: 21px 21px 22px;
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0, rgba(34, 211, 238, 0.15), transparent 9rem),
    rgba(255, 255, 255, 0.93);
  border: 1px solid var(--seo-v2-line);
  border-radius: 22px;
  box-shadow: var(--seo-v2-soft-shadow);
}

.seo-v2-page .seo-v2-step__number {
  display: inline-flex;
  margin-bottom: 13px;
  color: #0a7dbd;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.05em;
}

.seo-v2-page .seo-v2-step h3 {
  font-size: 18px;
}

.seo-v2-page .seo-v2-step p {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.55;
}

.seo-v2-page .seo-v2-step::after {
  position: absolute;
  top: 29px;
  right: 21px;
  width: 46px;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, rgba(14, 165, 233, 0.05), rgba(14, 165, 233, 0.55));
}

.seo-v2-page .seo-v2-price-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.seo-v2-page .seo-v2-price-card {
  display: flex;
  min-height: 0;
  flex-direction: column;
  padding: 20px 22px 18px;
  background:
    radial-gradient(circle at 98% 4%, rgba(34, 211, 238, 0.12), transparent 9rem),
    #fff;
  border: 1px solid var(--seo-v2-line);
  border-radius: 23px;
  box-shadow: var(--seo-v2-soft-shadow);
}

.seo-v2-page .seo-v2-price-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.seo-v2-page .seo-v2-price-card__top strong {
  flex: 0 0 auto;
  min-width: 0;
  color: #0878b8;
  font-size: 19px;
  font-weight: 900;
  white-space: normal;
  overflow-wrap: anywhere;
}

.seo-v2-page .seo-v2-price-card > a,
.seo-v2-page .seo-v2-price-row__side > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 12px;
  color: #0878b8;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.seo-v2-page .seo-v2-price-card > a svg,
.seo-v2-page .seo-v2-price-row__side > a svg {
  width: 16px;
  height: 16px;
}

.seo-v2-page .seo-v2-price-note {
  margin: 23px 0 0;
  padding: 17px 20px;
  color: #52657a;
  background: rgba(231, 246, 255, 0.72);
  border: 1px solid rgba(14, 165, 233, 0.16);
  border-radius: 17px;
  font-size: 14px;
  line-height: 1.55;
}

.seo-v2-page .seo-v2-full-price {
  margin: 50px 0 20px;
}

.seo-v2-page .seo-v2-full-price h3 {
  margin: 0;
  color: var(--seo-v2-ink);
  font-size: 27px;
  font-weight: 900;
}

.seo-v2-page .seo-v2-full-price p {
  margin: 8px 0 0;
  color: var(--seo-v2-text);
  line-height: 1.55;
}

.seo-v2-page .seo-v2-price-accordion {
  display: grid;
  gap: 12px;
}

.seo-v2-page .seo-v2-price-category {
  overflow: hidden;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--seo-v2-line);
  border-radius: 21px;
  box-shadow: 0 9px 24px rgba(15, 61, 115, 0.06);
}

.seo-v2-page .seo-v2-price-category > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 28px;
  align-items: center;
  gap: 14px;
  min-height: 58px;
  padding: 11px 19px;
  color: var(--seo-v2-ink);
  cursor: pointer;
  list-style: none;
  font-size: 17px;
  font-weight: 850;
}

.seo-v2-page .seo-v2-price-category > summary::-webkit-details-marker,
.seo-v2-page .seo-v2-faq__item > summary::-webkit-details-marker,
.seo-v2-page .seo-v2-more > summary::-webkit-details-marker {
  display: none;
}

.seo-v2-page .seo-v2-price-category > summary small {
  color: #6d7f93;
  font-size: 13px;
  font-weight: 700;
}

.seo-v2-page .seo-v2-price-category > summary i,
.seo-v2-page .seo-v2-more > summary i {
  position: relative;
  width: 28px;
  height: 28px;
  color: #0784c8;
  background: #eefaff;
  border-radius: 50%;
}

.seo-v2-page .seo-v2-price-category > summary i::before,
.seo-v2-page .seo-v2-price-category > summary i::after,
.seo-v2-page .seo-v2-more > summary i::before,
.seo-v2-page .seo-v2-more > summary i::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 11px;
  height: 2px;
  content: "";
  background: currentColor;
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease;
}

.seo-v2-page .seo-v2-price-category > summary i::after,
.seo-v2-page .seo-v2-more > summary i::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.seo-v2-page .seo-v2-price-category[open] > summary i::after,
.seo-v2-page .seo-v2-more[open] > summary i::after {
  transform: translate(-50%, -50%) rotate(0);
}

.seo-v2-page .seo-v2-price-category__body {
  display: grid;
  gap: 0;
  padding: 0 19px 12px;
}

.seo-v2-page .seo-v2-price-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  padding: 14px 3px;
  border-top: 1px solid rgba(14, 165, 233, 0.11);
}

.seo-v2-page .seo-v2-price-row p {
  margin-top: 6px;
}

.seo-v2-page .seo-v2-price-row h3 {
  font-size: 17px;
}

.seo-v2-page .seo-v2-price-row p {
  font-size: 14px;
}

.seo-v2-page .seo-v2-price-row__side {
  display: flex;
  min-width: 150px;
  flex-direction: column;
  align-items: flex-end;
}

.seo-v2-page .seo-v2-price-row__side strong {
  color: #0878b8;
  font-size: 17px;
  font-weight: 900;
  white-space: nowrap;
}

/* 0.66fr gave the heading column only ~356px, breaking the short
   "Условия скидки 35%" across two lines. */
.seo-v2-page .seo-v2-info-panel {
  display: grid;
  grid-template-columns: minmax(280px, 1.02fr) minmax(0, 1.22fr);
  gap: 34px;
  align-items: center;
  padding: 30px 32px;
  background:
    radial-gradient(circle at 92% 2%, rgba(34, 211, 238, 0.18), transparent 13rem),
    #fff;
  border: 1px solid var(--seo-v2-line);
  border-radius: 29px;
  box-shadow: var(--seo-v2-shadow);
}

.seo-v2-page .seo-v2-info-panel > p {
  margin: 0;
  color: var(--seo-v2-text);
  font-size: 18px;
  line-height: 1.72;
}

.seo-v2-page .seo-v2-faq {
  display: grid;
  gap: 13px;
}

.seo-v2-page .seo-v2-faq__item {
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--seo-v2-line);
  border-radius: 21px;
  box-shadow: 0 9px 24px rgba(15, 61, 115, 0.06);
}

.seo-v2-page .seo-v2-faq__item > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  gap: 18px;
  align-items: center;
  min-height: 72px;
  padding: 16px 20px;
  color: var(--seo-v2-ink);
  cursor: pointer;
  list-style: none;
  font-size: 18px;
  font-weight: 820;
}

.seo-v2-page .seo-v2-faq__item > summary i {
  position: relative;
  width: 34px;
  height: 34px;
  color: #0784c8;
  background: #eaf8ff;
  border: 1px solid rgba(14, 165, 233, 0.18);
  border-radius: 50%;
}

.seo-v2-page .seo-v2-faq__item > summary i::before,
.seo-v2-page .seo-v2-faq__item > summary i::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13px;
  height: 2px;
  content: "";
  background: currentColor;
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition: transform 0.28s ease;
}

.seo-v2-page .seo-v2-faq__item > summary i::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.seo-v2-page .seo-v2-faq__item[open] > summary i {
  transform: rotate(45deg);
}

.seo-v2-page .seo-v2-faq__item > div {
  padding: 0 72px 20px 20px;
}

.seo-v2-page .seo-v2-faq__item p {
  margin: 0;
  color: var(--seo-v2-text);
  font-size: 16px;
  line-height: 1.65;
}

.seo-v2-page .seo-v2-more {
  margin-top: 22px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid var(--seo-v2-line);
  border-radius: 19px;
}

.seo-v2-page .seo-v2-more > summary {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 18px;
  color: #0878b8;
  cursor: pointer;
  list-style: none;
  font-weight: 850;
}

.seo-v2-page .seo-v2-more__links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0 16px 16px;
}

.seo-v2-page .seo-v2-more__links a {
  min-width: 0;
  padding: 13px 15px;
  color: #28455f;
  background: #f4fbff;
  border-radius: 13px;
  font-size: 14px;
  font-weight: 720;
  text-decoration: none;
}

.seo-v2-page .seo-v2-local {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  gap: 32px;
  align-items: center;
  padding: 28px 32px;
  background:
    radial-gradient(circle at 100% 0, rgba(34, 211, 238, 0.13), transparent 15rem),
    #fff;
  border: 1px solid var(--seo-v2-line);
  border-radius: 28px;
  box-shadow: var(--seo-v2-soft-shadow);
}

.seo-v2-page .seo-v2-local > div > p:last-child {
  margin: 14px 0 0;
  color: var(--seo-v2-text);
  font-size: 17px;
  line-height: 1.6;
}

.seo-v2-page .seo-v2-brands {
  margin: 0;
  color: #0a6da8;
  font-size: 18px;
  font-weight: 850;
  line-height: 1.8;
  text-align: center;
}

.seo-v2-page .seo-v2-brands span {
  color: #43c7ea;
}

/* Copy column and form card must start on the same horizontal line.
   align-items:center used to push the (shorter) copy column ~230-270px down,
   leaving a large empty band above it. */
.seo-v2-page .seo-v2-consultation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.72fr);
  gap: 42px;
  align-items: start;
}

.seo-v2-page .seo-v2-consultation__copy > p:not(.seo-v2-kicker) {
  max-width: 660px;
  margin: 20px 0 0;
  color: var(--seo-v2-text);
  font-size: 18px;
  line-height: 1.68;
}

.seo-v2-page .seo-v2-consultation__copy > ul {
  display: grid;
  gap: 11px;
  padding: 0;
  margin: 27px 0 0;
  list-style: none;
  color: #28455f;
  font-weight: 750;
}

.seo-v2-page .seo-v2-consultation__copy > ul li {
  display: flex;
  align-items: center;
  gap: 9px;
}

.seo-v2-page .seo-v2-consultation__copy > ul svg {
  width: 21px;
  height: 21px;
  color: #078acb;
}

.seo-v2-page .seo-v2-consultation__copy > .seo-v2-button {
  margin-top: 28px;
}

.seo-v2-page .seo-v2-form {
  padding: 29px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(14, 165, 233, 0.22);
  border-radius: 27px;
  box-shadow: var(--seo-v2-shadow);
}

.seo-v2-page .seo-v2-form h3 {
  margin: 0;
  color: var(--seo-v2-ink);
  font-size: 28px;
  font-weight: 900;
}

.seo-v2-page .seo-v2-form__lead {
  margin: 8px 0 22px;
  color: var(--seo-v2-text);
  line-height: 1.5;
}

.seo-v2-page .seo-v2-form__field {
  display: grid;
  gap: 7px;
  margin-top: 13px;
  color: #26435f;
  font-size: 13px;
  font-weight: 800;
}

.seo-v2-page .seo-v2-form__field input,
.seo-v2-page .seo-v2-form__field textarea {
  width: 100%;
  min-height: 49px;
  padding: 13px 14px;
  color: var(--seo-v2-ink);
  background: #f7fbff;
  border: 1px solid rgba(14, 165, 233, 0.19);
  border-radius: 13px;
  outline: 0;
  font: inherit;
  font-size: 15px;
  resize: vertical;
}

.seo-v2-page .seo-v2-form__field textarea {
  min-height: 92px;
}

.seo-v2-page .seo-v2-form > .seo-v2-button {
  width: 100%;
  margin-top: 17px;
  border: 0;
}

.seo-v2-page .seo-v2-form__note {
  margin: 13px 0 0;
  color: #52657a;
  font-size: 13px;
  line-height: 1.45;
}

.seo-v2-page .seo-v2-form__policy {
  margin: 8px 0 0;
  color: #718196;
  font-size: 11px;
  line-height: 1.45;
}

.seo-v2-page .seo-v2-form__policy a {
  color: #0878b8;
}

.seo-v2-page .seo-v2-related {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}

/* Related navigation: light rows, not another heavy card grid. */
.seo-v2-page .seo-v2-related a {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 13px;
  padding: 12px 16px;
  color: #23435f;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--seo-v2-line);
  border-radius: 15px;
  box-shadow: 0 5px 14px rgba(15, 61, 115, 0.045);
  font-size: 15px;
  font-weight: 790;
  line-height: 1.35;
  text-decoration: none;
  transition:
    color 0.28s ease,
    border-color 0.28s ease,
    box-shadow 0.28s ease;
}

.seo-v2-page .seo-v2-related svg,
.seo-v2-page .seo-v2-crosslink svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  color: #0784c8;
}

.seo-v2-page .seo-v2-crosslink {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 23px;
  color: #52657a;
  font-size: 16px;
  text-decoration: none;
}

.seo-v2-page .seo-v2-crosslink strong {
  color: #0878b8;
}

/* Compact parts grid — line icon + label, never a wall of oversized tiles. */
.seo-v2-page .seo-v2-parts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px;
}

.seo-v2-page .seo-v2-parts > span {
  display: flex;
  min-height: 54px;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  color: #26435f;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--seo-v2-line);
  border-radius: 15px;
  box-shadow: 0 5px 14px rgba(15, 61, 115, 0.045);
  font-size: 14px;
  font-weight: 780;
  line-height: 1.3;
}

.seo-v2-page .seo-v2-parts > span svg {
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  color: #0784c8;
}

.seo-v2-page .seo-v2-parts-note {
  margin: 21px 0 0;
  color: var(--seo-v2-text);
  font-size: 15px;
  line-height: 1.55;
}

.seo-v2-page .seo-v2-final {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 36px;
  align-items: center;
  padding: 43px;
  color: #fff;
  background:
    radial-gradient(circle at 10% 0, rgba(34, 211, 238, 0.35), transparent 20rem),
    linear-gradient(125deg, #0f3d73 0%, #067bad 72%, #0aa7c8 100%);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 30px;
  box-shadow: 0 24px 58px rgba(15, 61, 115, 0.2);
}

.seo-v2-page .seo-v2-final h2,
.seo-v2-page .seo-v2-final .seo-v2-kicker {
  color: #fff;
}

.seo-v2-page .seo-v2-final > div > p:last-child {
  max-width: 700px;
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 17px;
  line-height: 1.6;
}

.seo-v2-page .seo-v2-final > .seo-v2-button {
  background: #fff;
  color: #0874b7;
  box-shadow: 0 14px 30px rgba(0, 31, 74, 0.2);
}

.seo-v2-page .seo-v2-button:focus-visible,
.seo-v2-page .seo-v2-card:focus-visible,
.seo-v2-page .seo-v2-related a:focus-visible,
.seo-v2-page .seo-v2-crosslink:focus-visible,
.seo-v2-page .seo-v2-breadcrumbs a:focus-visible,
.seo-v2-page .seo-v2-more__links a:focus-visible,
.seo-v2-page summary:focus-visible,
.seo-v2-page input:focus-visible,
.seo-v2-page textarea:focus-visible {
  outline: 3px solid rgba(34, 211, 238, 0.68);
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .seo-v2-page .seo-v2-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 38px rgba(14, 165, 233, 0.3);
  }

  .seo-v2-page .seo-v2-button:hover .seo-v2-arrow {
    transform: translateX(3px);
  }

  .seo-v2-page .seo-v2-card:hover {
    transform: translateY(-5px);
    border-color: rgba(14, 165, 233, 0.43);
    box-shadow: 0 20px 42px rgba(14, 165, 233, 0.14);
  }

  .seo-v2-page .seo-v2-card:hover .seo-v2-icon {
    transform: scale(1.06) rotate(2deg);
    box-shadow: 0 12px 28px rgba(14, 165, 233, 0.22);
  }

  .seo-v2-page .seo-v2-related a:hover,
  .seo-v2-page .seo-v2-more__links a:hover {
    color: #0878b8;
    border-color: rgba(14, 165, 233, 0.36);
  }
}

@media (max-width: 1100px) {
  .seo-v2-page .seo-v2-hero__shell {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
  }

  .seo-v2-page .seo-v2-hero__content {
    padding-inline: 40px;
  }

  .seo-v2-page .seo-v2-card-grid--categories,
  .seo-v2-page .seo-v2-card-grid--symptoms {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .seo-v2-page .seo-v2-card-grid--five {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .seo-v2-page .seo-v2-related {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .seo-v2-page .seo-v2-hero__shell {
    grid-template-columns: minmax(0, 1fr) minmax(315px, 0.78fr);
    min-height: 530px;
  }

  .seo-v2-page .seo-v2-hero__content {
    padding: 40px 32px;
  }

  .seo-v2-page .seo-v2-hero h1 {
    font-size: 40px;
  }

  .seo-v2-page .seo-v2-hero--services h1 {
    font-size: 36px;
  }

  .seo-v2-page .seo-v2-hero__lead {
    font-size: 16px;
  }

  .seo-v2-page .seo-v2-card-grid,
  .seo-v2-page .seo-v2-price-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .seo-v2-page .seo-v2-card-grid--warnings {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .seo-v2-page .seo-v2-steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .seo-v2-page .seo-v2-consultation {
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.8fr);
    gap: 28px;
  }

  .seo-v2-page .seo-v2-parts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .seo-v2-page .seo-v2-container,
  .seo-v2-page .seo-v2-container--narrow {
    width: min(100% - 28px, 560px);
  }

  .seo-v2-page .seo-v2-breadcrumbs {
    padding: 12px 0 2px;
  }

  .seo-v2-page .seo-v2-breadcrumbs ol {
    gap: 7px;
    font-size: 13px;
  }

  .seo-v2-page .seo-v2-breadcrumbs li {
    gap: 7px;
  }

  .seo-v2-page .seo-v2-hero {
    padding: 8px 0 26px;
    background: transparent;
  }

  .seo-v2-page .seo-v2-hero__shell {
    display: flex;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
    border-radius: 28px;
  }

  .seo-v2-page .seo-v2-hero__media {
    order: -1;
    width: auto;
    height: 248px;
    flex: 0 0 248px;
    margin: 9px 9px 0;
    border-radius: 21px;
  }

  .seo-v2-page .seo-v2-hero--sales .seo-v2-hero__media img {
    object-position: 50% 32%;
  }

  .seo-v2-page .seo-v2-hero__content {
    padding: 27px 23px 28px;
  }

  .seo-v2-page .seo-v2-eyebrow {
    margin-bottom: 18px;
    padding: 7px 10px;
    font-size: 11px;
  }

  .seo-v2-page .seo-v2-hero h1,
  .seo-v2-page .seo-v2-hero--services h1 {
    max-width: none;
    font-size: clamp(30px, 8.8vw, 38px);
    line-height: 1.06;
  }

  .seo-v2-page .seo-v2-hero__lead {
    margin-top: 17px;
    font-size: 15px;
    line-height: 1.58;
  }

  .seo-v2-page .seo-v2-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 23px;
  }

  .seo-v2-page .seo-v2-button {
    width: 100%;
    min-height: 53px;
    padding-inline: 17px;
    font-size: 14px;
  }

  .seo-v2-page .seo-v2-hero__trust {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 21px;
  }

  .seo-v2-page .seo-v2-hero__trust li {
    min-width: 0;
    font-size: 12px;
    line-height: 1.3;
  }

  .seo-v2-page .seo-v2-hero__trust li:nth-child(3) {
    grid-column: 1 / -1;
  }

  .seo-v2-page .seo-v2-hero__trust li > span {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
  }

  .seo-v2-page .seo-v2-sale-mark {
    top: 18px;
    right: 16px;
    width: 88px;
    height: 88px;
    border-width: 5px;
    font-size: 23px;
  }

  /* ~56px between big sections, ~40px into the closing CTA — a page that keeps
     moving down instead of a stack of independent template blocks. */
  .seo-v2-page .seo-v2-section {
    padding: 28px 0;
    scroll-margin-top: 82px;
  }

  .seo-v2-page .seo-v2-section--consultation,
  .seo-v2-page .seo-v2-section--final {
    padding-top: 26px;
    padding-bottom: 40px;
  }

  .seo-v2-page .seo-v2-section-head {
    margin-bottom: 20px;
  }

  .seo-v2-page .seo-v2-section-head h2,
  .seo-v2-page .seo-v2-info-panel h2,
  .seo-v2-page .seo-v2-local h2,
  .seo-v2-page .seo-v2-final h2,
  .seo-v2-page .seo-v2-consultation h2 {
    font-size: 31px;
    line-height: 1.1;
  }

  .seo-v2-page .seo-v2-section-head > p:last-child {
    margin-top: 13px;
    font-size: 16px;
    line-height: 1.58;
  }

  .seo-v2-page .seo-v2-card-grid,
  .seo-v2-page .seo-v2-card-grid--categories,
  .seo-v2-page .seo-v2-card-grid--symptoms,
  .seo-v2-page .seo-v2-card-grid--five,
  .seo-v2-page .seo-v2-card-grid--warnings,
  .seo-v2-page .seo-v2-price-grid {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  .seo-v2-page .seo-v2-card {
    min-height: 0;
    flex-direction: row;
    gap: 13px;
    padding: 16px 17px;
    border-radius: 19px;
  }

  .seo-v2-page .seo-v2-card--compact,
  .seo-v2-page .seo-v2-card-grid--five .seo-v2-card {
    min-height: 0;
    padding: 14px 16px;
  }

  .seo-v2-page .seo-v2-card-grid--warnings .seo-v2-card {
    min-height: 0;
    padding: 12px 15px;
    border-radius: 16px;
  }

  .seo-v2-page .seo-v2-icon {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
    border-radius: 14px;
  }

  .seo-v2-page .seo-v2-icon svg {
    width: 23px;
    height: 23px;
  }

  .seo-v2-page .seo-v2-card-grid--warnings .seo-v2-icon {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
    border-radius: 12px;
  }

  .seo-v2-page .seo-v2-card-grid--warnings .seo-v2-icon svg {
    width: 20px;
    height: 20px;
  }

  .seo-v2-page .seo-v2-card h3 {
    padding-right: 28px;
    font-size: 17px;
  }

  .seo-v2-page .seo-v2-card--compact h3,
  .seo-v2-page .seo-v2-card-grid--warnings .seo-v2-card h3 {
    padding-right: 0;
  }

  .seo-v2-page .seo-v2-card p {
    margin-top: 6px;
    font-size: 14px;
  }

  .seo-v2-page .seo-v2-card__arrow {
    top: 15px;
    right: 15px;
    bottom: auto;
    width: 30px;
    height: 30px;
  }

  .seo-v2-page .seo-v2-card--compact .seo-v2-card__arrow {
    position: static;
    margin-left: auto;
  }

  .seo-v2-page .seo-v2-steps {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .seo-v2-page .seo-v2-step {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 11px;
    min-height: 0;
    padding: 16px 17px;
    border-radius: 18px;
  }

  .seo-v2-page .seo-v2-step__number {
    margin: 1px 0 0;
    font-size: 16px;
  }

  .seo-v2-page .seo-v2-step h3 {
    font-size: 17px;
  }

  .seo-v2-page .seo-v2-step::after {
    display: none;
  }

  .seo-v2-page .seo-v2-price-card {
    min-height: 0;
    padding: 17px 18px;
    border-radius: 19px;
  }

  .seo-v2-page .seo-v2-price-card__top {
    gap: 12px;
  }

  .seo-v2-page .seo-v2-price-card h3 {
    font-size: 17px;
  }

  .seo-v2-page .seo-v2-price-card__top strong {
    font-size: 17px;
  }

  .seo-v2-page .seo-v2-full-price {
    margin-top: 38px;
  }

  .seo-v2-page .seo-v2-full-price h3 {
    font-size: 24px;
  }

  .seo-v2-page .seo-v2-price-category {
    border-radius: 18px;
  }

  .seo-v2-page .seo-v2-price-category > summary {
    grid-template-columns: minmax(0, 1fr) 27px;
    min-height: 52px;
    gap: 10px;
    padding: 10px 14px;
    font-size: 15px;
  }

  .seo-v2-page .seo-v2-price-category > summary small {
    display: none;
  }

  .seo-v2-page .seo-v2-price-category__body {
    padding: 0 14px 8px;
  }

  .seo-v2-page .seo-v2-price-row {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 13px 2px;
  }

  .seo-v2-page .seo-v2-price-row__side {
    min-width: 0;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .seo-v2-page .seo-v2-price-row__side > a {
    margin-top: 0;
    padding-top: 0;
  }

  .seo-v2-page .seo-v2-info-panel,
  .seo-v2-page .seo-v2-local {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 21px 20px;
    border-radius: 21px;
  }

  .seo-v2-page .seo-v2-info-panel > p {
    font-size: 16px;
    line-height: 1.62;
  }

  .seo-v2-page .seo-v2-faq {
    gap: 10px;
  }

  .seo-v2-page .seo-v2-faq__item > summary {
    min-height: 58px;
    padding: 12px 14px;
    font-size: 16px;
  }

  .seo-v2-page .seo-v2-faq__item > div {
    padding: 0 14px 15px;
  }

  .seo-v2-page .seo-v2-faq__item p {
    font-size: 15px;
  }

  .seo-v2-page .seo-v2-more__links {
    grid-template-columns: 1fr;
  }

  .seo-v2-page .seo-v2-local {
    text-align: left;
  }

  .seo-v2-page .seo-v2-brands {
    text-align: left;
  }

  .seo-v2-page .seo-v2-consultation {
    grid-template-columns: 1fr;
    gap: 27px;
  }

  .seo-v2-page .seo-v2-consultation__copy > p:not(.seo-v2-kicker) {
    margin-top: 15px;
    font-size: 16px;
    line-height: 1.6;
  }

  .seo-v2-page .seo-v2-form {
    padding: 21px 20px;
    border-radius: 22px;
  }

  .seo-v2-page .seo-v2-form h3 {
    font-size: 25px;
  }

  .seo-v2-page .seo-v2-related {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .seo-v2-page .seo-v2-related a {
    min-height: 50px;
    padding: 11px 14px;
    font-size: 14px;
  }

  /* inline-flex split the sentence into two ragged columns on narrow screens */
  .seo-v2-page .seo-v2-crosslink {
    display: block;
    margin-top: 14px;
    font-size: 15px;
    line-height: 1.45;
  }

  .seo-v2-page .seo-v2-crosslink svg {
    display: inline-block;
    margin-left: 5px;
    vertical-align: -4px;
  }

  .seo-v2-page .seo-v2-parts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }

  .seo-v2-page .seo-v2-parts > span {
    min-height: 52px;
    padding: 9px 11px;
    gap: 8px;
    font-size: 13px;
  }

  .seo-v2-page .seo-v2-parts > span svg {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
  }

  .seo-v2-page .seo-v2-final {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 24px 23px;
    border-radius: 23px;
  }
}

@media (max-width: 390px) {
  .seo-v2-page .seo-v2-container,
  .seo-v2-page .seo-v2-container--narrow {
    width: calc(100% - 24px);
  }

  .seo-v2-page .seo-v2-hero__media {
    height: 226px;
    flex-basis: 226px;
  }

  .seo-v2-page .seo-v2-hero__content {
    padding: 20px 18px 22px;
  }

  .seo-v2-page .seo-v2-hero__lead {
    margin-top: 14px;
  }

  .seo-v2-page .seo-v2-hero__actions {
    gap: 9px;
    margin-top: 19px;
  }

  .seo-v2-page .seo-v2-hero__trust {
    margin-top: 17px;
  }

  .seo-v2-page .seo-v2-hero h1,
  .seo-v2-page .seo-v2-hero--services h1 {
    font-size: 29px;
  }

  .seo-v2-page .seo-v2-eyebrow {
    font-size: 10px;
  }

  .seo-v2-page .seo-v2-hero__trust {
    grid-template-columns: 1fr;
  }

  .seo-v2-page .seo-v2-hero__trust li:nth-child(3) {
    grid-column: auto;
  }

  .seo-v2-page .seo-v2-section-head h2,
  .seo-v2-page .seo-v2-info-panel h2,
  .seo-v2-page .seo-v2-local h2,
  .seo-v2-page .seo-v2-final h2,
  .seo-v2-page .seo-v2-consultation h2 {
    font-size: 28px;
  }

  .seo-v2-page .seo-v2-card {
    padding: 15px 15px;
  }

  .seo-v2-page .seo-v2-card h3 {
    padding-right: 24px;
    font-size: 16px;
  }

  .seo-v2-page .seo-v2-card__arrow {
    right: 13px;
  }

  .seo-v2-page .seo-v2-price-card__top {
    display: grid;
    gap: 2px;
  }

  /* Iteration 2: keep two tidy columns at 360/390 instead of one long list. */
  .seo-v2-page .seo-v2-parts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .seo-v2-page .seo-v2-parts > span {
    min-height: 50px;
    padding: 8px 10px;
    gap: 7px;
    font-size: 12.5px;
  }
}

/* Reveal is opt-in, never opt-out. The hiding rule is scoped to
   html.js-advantages-reveal-ready, which script.js sets only after the shared
   observer exists, every section is registered and everything already inside
   the first viewport has been revealed. Without JS, without
   IntersectionObserver, on an init exception or under reduced motion the class
   is absent and the content simply stays visible — no !important workaround,
   no second reveal system. */
@media (prefers-reduced-motion: no-preference) {
  html.js-advantages-reveal-ready .seo-v2-page .js-advantages-reveal .js-advantages-reveal-item {
    opacity: 0;
    transform: translateY(30px);
    transition:
      opacity 0.9s ease var(--advantages-delay, 0s),
      transform 0.9s ease var(--advantages-delay, 0s);
  }

  html.js-advantages-reveal-ready .seo-v2-page .js-advantages-reveal.is-advantages-visible .js-advantages-reveal-item {
    opacity: 1;
    visibility: visible;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .seo-v2-page .seo-v2-main *,
  .seo-v2-page .seo-v2-main *::before,
  .seo-v2-page .seo-v2-main *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .seo-v2-page .js-advantages-reveal .js-advantages-reveal-item {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ==================================================================
   ITERATION 2 — approved hero assets, page-specific crops,
   scoped floating widget behaviour.
   ================================================================== */

/* --- Hero media: each approved asset gets its own frame proportions --- */

.seo-v2-page .seo-v2-hero__media picture > img {
  object-position: center center;
}

/* Services — desktop scene must read as a whole: PC + laptop + working hand. */
.seo-v2-page .seo-v2-hero--services .seo-v2-hero__media img {
  object-position: 50% 62%;
}

/* Repair PC — a tight crop cut the forearm off and made the hand read as if it
   were buried inside the case. Show more of the original frame instead of
   zooming: the master, his shoulder, the arm and the open case stay connected. */
.seo-v2-page .seo-v2-hero--repair-pc .seo-v2-hero__media img {
  object-position: 55% 44%;
}

/* Repair laptop — the disassembled laptop and the working hand stay centred. */
.seo-v2-page .seo-v2-hero--repair-laptop .seo-v2-hero__media img {
  object-position: 52% 58%;
}

@media (min-width: 769px) {
  .seo-v2-page .seo-v2-hero--services .seo-v2-hero__shell {
    grid-template-columns: minmax(0, 1fr) minmax(430px, 1fr);
  }

  .seo-v2-page .seo-v2-hero--repair-pc .seo-v2-hero__shell,
  .seo-v2-page .seo-v2-hero--repair-laptop .seo-v2-hero__shell {
    grid-template-columns: minmax(0, 1.04fr) minmax(430px, 0.96fr);
  }
}

@media (max-width: 768px) {
  /* Mobile assets are separate compositions — controlled crop, never a giant
     first screen. */
  .seo-v2-page .seo-v2-hero--services .seo-v2-hero__media {
    height: 250px;
    flex-basis: 250px;
  }

  .seo-v2-page .seo-v2-hero--services .seo-v2-hero__media img {
    object-position: 46% 52%;
  }

  .seo-v2-page .seo-v2-hero--repair-pc .seo-v2-hero__media {
    height: 215px;
    flex-basis: 215px;
  }

  .seo-v2-page .seo-v2-hero--repair-pc .seo-v2-hero__media img {
    object-position: 46% 50%;
  }

  .seo-v2-page .seo-v2-hero--repair-laptop .seo-v2-hero__media {
    height: 250px;
    flex-basis: 250px;
  }

  .seo-v2-page .seo-v2-hero--repair-laptop .seo-v2-hero__media img {
    object-position: 50% 55%;
  }
}

@media (max-width: 390px) {
  .seo-v2-page .seo-v2-eyebrow {
    margin-bottom: 14px;
  }

  .seo-v2-page .seo-v2-hero--services .seo-v2-hero__media {
    height: 192px;
    flex-basis: 192px;
  }

  .seo-v2-page .seo-v2-hero--repair-laptop .seo-v2-hero__media {
    height: 178px;
    flex-basis: 178px;
  }

  .seo-v2-page .seo-v2-hero--repair-pc .seo-v2-hero__media {
    height: 172px;
    flex-basis: 172px;
  }
}

/* --- Floating Telegram / MAX: unobtrusive on the SEO V2 pages only --- */

/* ONE placement rule for every SEO V2 page (Batch 1/2/3/5, services, sales).
   Above 1320px the pair keeps floating. At or below 1320px the fixed pair
   overlaps hero copy — H1, CTA and the trust list — because the hero card
   correctly spans the full container, so the same single widget moves into
   normal flow after the footer instead. Nothing about the widget itself
   changes: same markup, same two links, same Telegram SVG and MAX icon, no
   second widget, and it is never hidden. Previously this fix existed only for
   [data-card-polish="early-pages"]; the Batch 3 pages instead carried
   .seo-v2-social-widget--clear, which hid the widget outright — that class has
   been dropped from those pages so a single rule now governs all of them.

   `.social-widget.social-widget` is deliberate: the Batch 3 block in style.css
   sets flex-direction:column at (0,3,1); repeating the class lifts this rule to
   (0,3,2) so one placement wins everywhere without editing that file. */
@media (max-width: 1320px) {
  html body.seo-v2-page .social-widget.social-widget {
    position: static !important;
    inset: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: max-content;
    margin: 18px max(12px, env(safe-area-inset-right)) 20px auto !important;
    flex-direction: row !important;
    align-items: center !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

@media (max-width: 768px) {
  body.seo-v2-page .social-widget {
    right: max(10px, env(safe-area-inset-right)) !important;
    bottom: calc(20px + env(safe-area-inset-bottom)) !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 7px !important;
    z-index: 60 !important;
  }

  body.seo-v2-page .social-widget__button,
  body.seo-v2-page .social-widget__button--max {
    width: 46px !important;
    height: 46px !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16) !important;
  }

  body.seo-v2-page .social-widget__button svg,
  body.seo-v2-page .social-widget__button img,
  body.seo-v2-page .social-widget__button--max svg,
  body.seo-v2-page .social-widget__button--max img {
    width: 25px !important;
    height: 25px !important;
    max-width: 25px !important;
  }
}

@media (max-width: 430px) {
  body.seo-v2-page .social-widget {
    right: 8px !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    gap: 6px !important;
  }

  body.seo-v2-page .social-widget__button,
  body.seo-v2-page .social-widget__button--max {
    width: 44px !important;
    height: 44px !important;
  }

  body.seo-v2-page .social-widget__button svg,
  body.seo-v2-page .social-widget__button img,
  body.seo-v2-page .social-widget__button--max svg,
  body.seo-v2-page .social-widget__button--max img {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
  }
}

/* ==================================================================
   BATCH 2 — problem-led SEO pages.
   Extends the approved SEO V2 system without changing Batch 1 markup.
   ================================================================== */

.page-batch2-v2 .seo-v2-hero__shell {
  grid-template-columns: minmax(0, 1.08fr) minmax(410px, 0.92fr);
}

.page-batch2-v2 .seo-v2-hero h1 {
  font-size: clamp(40px, 3.65vw, 53px);
}

.page-batch2-v2 .seo-v2-hero__lead {
  font-size: 17px;
}

.page-batch2-v2 .seo-v2-hero__trust {
  gap: 11px 16px;
}

.page-batch2-v2 .seo-v2-card-grid--four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-batch2-v2 .seo-v2-card-grid--symptom-detail {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-batch2-v2 .seo-v2-card-grid--four .seo-v2-card,
.page-batch2-v2 .seo-v2-card-grid--symptom-detail .seo-v2-card {
  padding: 22px 22px 24px;
}

.page-batch2-v2 .seo-v2-card-grid--four .seo-v2-card h3,
.page-batch2-v2 .seo-v2-card-grid--symptom-detail .seo-v2-card h3 {
  font-size: 18px;
}

.page-batch2-v2 .seo-v2-inline-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  color: #0878b8;
  font-size: 14px;
  font-weight: 820;
  line-height: 1.35;
  text-decoration: none;
}

.page-batch2-v2 .seo-v2-inline-link .seo-v2-arrow {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
}

.page-batch2-v2 .seo-v2-alert {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 18px;
  padding: 18px 21px;
  color: #71321e;
  background:
    radial-gradient(circle at 100% 0, rgba(251, 146, 60, 0.16), transparent 13rem),
    rgba(255, 250, 245, 0.95);
  border: 1px solid rgba(234, 88, 12, 0.2);
  border-radius: 20px;
  box-shadow: 0 9px 24px rgba(124, 45, 18, 0.06);
}

.page-batch2-v2 .seo-v2-alert .seo-v2-icon {
  color: #c2410c;
  background: #fff7ed;
  border-color: rgba(234, 88, 12, 0.22);
}

.page-batch2-v2 .seo-v2-alert h3,
.page-batch2-v2 .seo-v2-context-row h3,
.page-batch2-v2 .seo-v2-scenario h3,
.page-batch2-v2 .seo-v2-subheading {
  margin: 0;
  color: var(--seo-v2-ink);
  font-size: 19px;
  font-weight: 850;
  line-height: 1.3;
}

.page-batch2-v2 .seo-v2-alert p,
.page-batch2-v2 .seo-v2-context-row p,
.page-batch2-v2 .seo-v2-scenario p {
  margin: 6px 0 0;
  color: var(--seo-v2-text);
  font-size: 14px;
  line-height: 1.55;
}

.page-batch2-v2 .seo-v2-step__micro {
  display: inline-flex;
  margin-top: 12px;
  padding: 5px 8px;
  color: #0878b8;
  background: #edf9ff;
  border: 1px solid rgba(14, 165, 233, 0.13);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.page-batch2-v2 .seo-v2-info-panel--routes {
  align-items: start;
}

.page-batch2-v2 .seo-v2-info-panel--routes h2 {
  font-size: clamp(31px, 2.65vw, 36px);
  line-height: 1.12;
  letter-spacing: -0.026em;
}

.page-batch2-v2 .seo-v2-info-panel__body > p {
  margin: 0;
  color: var(--seo-v2-text);
  font-size: 17px;
  line-height: 1.65;
}

.page-batch2-v2 .seo-v2-route-grid {
  display: grid;
  gap: 9px;
  margin-top: 18px;
}

.page-batch2-v2 .seo-v2-route-grid a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2px 12px;
  min-height: 54px;
  padding: 10px 13px;
  color: #23435f;
  background: #f1faff;
  border: 1px solid rgba(14, 165, 233, 0.16);
  border-radius: 14px;
  text-decoration: none;
}

.page-batch2-v2 .seo-v2-route-grid small {
  display: block;
  color: #6b7d91;
  font-size: 12px;
  font-weight: 700;
}

.page-batch2-v2 .seo-v2-route-grid strong {
  font-size: 15px;
  font-weight: 850;
}

.page-batch2-v2 .seo-v2-route-grid .seo-v2-arrow {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.page-batch2-v2 .seo-v2-scenario-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
}

.page-batch2-v2 .seo-v2-scenario {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: 13px;
  padding: 19px;
  color: var(--seo-v2-ink);
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--seo-v2-line);
  border-radius: 21px;
  box-shadow: var(--seo-v2-soft-shadow);
  text-decoration: none;
}

.page-batch2-v2 .seo-v2-scenario--current {
  background:
    radial-gradient(circle at 100% 0, rgba(34, 211, 238, 0.18), transparent 11rem),
    rgba(255, 255, 255, 0.96);
  border-color: rgba(14, 165, 233, 0.44);
}

.page-batch2-v2 .seo-v2-scenario__body {
  min-width: 0;
}

.page-batch2-v2 .seo-v2-scenario__badge {
  display: inline-flex;
  margin-top: 12px;
  padding: 6px 9px;
  color: #0876b8;
  background: #e9f8ff;
  border: 1px solid rgba(14, 165, 233, 0.18);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.055em;
}

.page-batch2-v2 .seo-v2-scenario__arrow {
  align-self: center;
  margin-left: auto;
  color: #0784c8;
}

.page-batch2-v2 .seo-v2-price-grid--balanced > :last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.page-batch2-v2 .seo-v2-subheading {
  margin-top: 28px;
}

.page-batch2-v2 .seo-v2-context-rows {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.page-batch2-v2 .seo-v2-context-row {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 17px;
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid var(--seo-v2-line);
  border-radius: 18px;
}

.page-batch2-v2 .seo-v2-context-row .seo-v2-icon {
  width: 44px;
  height: 44px;
  flex-basis: 44px;
  border-radius: 13px;
}

.page-batch2-v2 .seo-v2-related a > span {
  min-width: 0;
}

.page-batch2-v2 .seo-v2-related strong {
  display: block;
  color: inherit;
}

.page-batch2-v2 .seo-v2-related small {
  display: block;
  margin-top: 4px;
  color: #6b7d91;
  font-size: 12px;
  font-weight: 620;
  line-height: 1.4;
}

.page-batch2-v2 .seo-v2-consultation__copy strong {
  color: var(--seo-v2-ink);
}

.page-batch2-v2 .seo-v2-button:focus-visible,
.page-batch2-v2 .seo-v2-scenario:focus-visible,
.page-batch2-v2 .seo-v2-route-grid a:focus-visible,
.page-batch2-v2 .seo-v2-inline-link:focus-visible {
  outline: 3px solid rgba(34, 211, 238, 0.68);
  outline-offset: 3px;
}

/* Approved Batch 2 hero crops: keep the device and diagnostic context together. */
.page-batch2-v2 .seo-v2-hero--pc-no-start .seo-v2-hero__media img {
  object-position: 53% 50%;
}

.page-batch2-v2 .seo-v2-hero--pc-slow .seo-v2-hero__media img {
  object-position: 52% 52%;
}

.page-batch2-v2 .seo-v2-hero--laptop-no-start .seo-v2-hero__media img {
  object-position: 50% 52%;
}

.page-batch2-v2 .seo-v2-hero--laptop-charge .seo-v2-hero__media img {
  object-position: 50% 54%;
}

@media (hover: hover) and (pointer: fine) {
  .page-batch2-v2 .seo-v2-scenario:hover,
  .page-batch2-v2 .seo-v2-route-grid a:hover {
    transform: translateY(-4px);
    border-color: rgba(14, 165, 233, 0.4);
    box-shadow: 0 17px 36px rgba(14, 165, 233, 0.12);
  }
}

@media (max-width: 1100px) {
  .page-batch2-v2 .seo-v2-hero__shell {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
  }

  .page-batch2-v2 .seo-v2-card-grid--four {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 769px) and (max-width: 900px) {
  .page-batch2-v2 .seo-v2-card-grid--warnings > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  .page-batch2-v2 .seo-v2-card-grid--four,
  .page-batch2-v2 .seo-v2-card-grid--symptom-detail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-batch2-v2 .seo-v2-scenario-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

@media (max-width: 768px) {
  .page-batch2-v2 .seo-v2-hero__shell {
    display: flex;
  }

  .page-batch2-v2 .seo-v2-hero__lead {
    font-size: 15px;
  }

  .page-batch2-v2 .seo-v2-hero__trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-batch2-v2 .seo-v2-hero__trust li:nth-child(3) {
    grid-column: auto;
  }

  .page-batch2-v2 .seo-v2-hero--pc-no-start .seo-v2-hero__media,
  .page-batch2-v2 .seo-v2-hero--laptop-no-start .seo-v2-hero__media,
  .page-batch2-v2 .seo-v2-hero--laptop-charge .seo-v2-hero__media {
    height: 236px;
    flex-basis: 236px;
  }

  .page-batch2-v2 .seo-v2-hero--pc-slow .seo-v2-hero__media {
    height: 240px;
    flex-basis: 240px;
  }

  .page-batch2-v2 .seo-v2-hero--pc-no-start .seo-v2-hero__media img {
    object-position: 51% 49%;
  }

  .page-batch2-v2 .seo-v2-hero--pc-slow .seo-v2-hero__media img {
    object-position: 50% 49%;
  }

  .page-batch2-v2 .seo-v2-hero--laptop-no-start .seo-v2-hero__media img {
    object-position: 50% 49%;
  }

  .page-batch2-v2 .seo-v2-hero--laptop-charge .seo-v2-hero__media img {
    object-position: 50% 50%;
  }

  .page-batch2-v2 .seo-v2-card-grid--four,
  .page-batch2-v2 .seo-v2-card-grid--symptom-detail {
    grid-template-columns: 1fr;
  }

  .page-batch2-v2 .seo-v2-card-grid--four .seo-v2-card,
  .page-batch2-v2 .seo-v2-card-grid--symptom-detail .seo-v2-card {
    padding: 15px 16px;
  }

  .page-batch2-v2 .seo-v2-card-grid--four .seo-v2-card h3,
  .page-batch2-v2 .seo-v2-card-grid--symptom-detail .seo-v2-card h3 {
    font-size: 16px;
  }

  .page-batch2-v2 .seo-v2-alert {
    align-items: flex-start;
    padding: 15px 16px;
    border-radius: 17px;
  }

  .page-batch2-v2 .seo-v2-step__micro {
    grid-column: 2;
    justify-self: start;
    margin-top: 9px;
  }

  .page-batch2-v2 .seo-v2-info-panel--routes {
    grid-template-columns: 1fr;
  }

  .page-batch2-v2 .seo-v2-info-panel--routes h2 {
    font-size: 28px;
    line-height: 1.1;
  }

  .page-batch2-v2 .seo-v2-info-panel__body > p {
    font-size: 15px;
    line-height: 1.58;
  }

  .page-batch2-v2 .seo-v2-scenario {
    align-items: flex-start;
    padding: 15px;
    border-radius: 17px;
  }

  .page-batch2-v2 .seo-v2-scenario h3 {
    font-size: 16px;
  }

  .page-batch2-v2 .seo-v2-scenario p {
    font-size: 13px;
  }

  .page-batch2-v2 .seo-v2-price-grid--balanced > :last-child:nth-child(odd) {
    grid-column: auto;
  }

  .page-batch2-v2 .seo-v2-context-rows {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .page-batch2-v2 .seo-v2-context-row {
    padding: 14px;
  }

  .page-batch2-v2 .seo-v2-related a {
    align-items: flex-start;
  }

  .page-batch2-v2 .seo-v2-related small {
    font-size: 11.5px;
  }

  .page-batch2-v2 .seo-v2-inline-link {
    display: inline;
    font-size: 13px;
    line-height: 1.45;
  }

  .page-batch2-v2 .seo-v2-inline-link .seo-v2-arrow {
    display: inline-block;
    margin-left: 4px;
    vertical-align: -4px;
  }
}

@media (max-width: 390px) {
  .page-batch2-v2 .seo-v2-hero h1 {
    font-size: 29px;
  }

  .page-batch2-v2 .seo-v2-hero__trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-batch2-v2 .seo-v2-hero__trust li {
    align-items: flex-start;
  }

  .page-batch2-v2 .seo-v2-hero--pc-no-start .seo-v2-hero__media,
  .page-batch2-v2 .seo-v2-hero--pc-slow .seo-v2-hero__media {
    height: 202px;
    flex-basis: 202px;
  }

  .page-batch2-v2 .seo-v2-hero--laptop-no-start .seo-v2-hero__media,
  .page-batch2-v2 .seo-v2-hero--laptop-charge .seo-v2-hero__media {
    height: 210px;
    flex-basis: 210px;
  }

  .page-batch2-v2 .seo-v2-scenario .seo-v2-icon {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  .page-batch2-v2 .seo-v2-route-grid a {
    padding-inline: 11px;
  }
}

/* ==================================================================
   BATCH 5 — service pages (Windows, data recovery, PC upgrade,
   internet, computer setup).
   Shared components only: no per-page stylesheet, no page-level
   <style> blocks, no duplicated Batch 1/2 rules. Everything below
   extends the approved SEO V2 system inside .page-batch5-v2.
   ================================================================== */

.page-batch5-v2 .seo-v2-hero__shell {
  grid-template-columns: minmax(0, 1.04fr) minmax(430px, 0.96fr);
  min-height: 545px;
}

.page-batch5-v2 .seo-v2-hero h1 {
  font-size: clamp(38px, 3.5vw, 51px);
}

.page-batch5-v2 .seo-v2-hero__lead {
  font-size: 17px;
}

.page-batch5-v2 .seo-v2-hero__trust {
  gap: 11px 16px;
}

/* --- Balanced card grids -------------------------------------------------
   Card counts are fixed by the approved copy, so each count gets an explicit
   layout instead of auto-fit, which used to produce five narrow columns or a
   lone orphan card on the last row. Every row is full width. */

.page-batch5-v2 .seo-v2-card-grid--b5-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 5 cards = 3 + 2 (never 5 narrow columns, never 4+1) */
.page-batch5-v2 .seo-v2-card-grid--b5-5 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.page-batch5-v2 .seo-v2-card-grid--b5-5 > * {
  grid-column: span 2;
}

.page-batch5-v2 .seo-v2-card-grid--b5-5 > :nth-child(4),
.page-batch5-v2 .seo-v2-card-grid--b5-5 > :nth-child(5) {
  grid-column: span 3;
}

/* 6 cards = 3 + 3 */
.page-batch5-v2 .seo-v2-card-grid--b5-6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* 7 cards = 4 + 3 */
.page-batch5-v2 .seo-v2-card-grid--b5-7 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.page-batch5-v2 .seo-v2-card-grid--b5-7 > * {
  grid-column: span 3;
}

.page-batch5-v2 .seo-v2-card-grid--b5-7 > :nth-child(5),
.page-batch5-v2 .seo-v2-card-grid--b5-7 > :nth-child(6),
.page-batch5-v2 .seo-v2-card-grid--b5-7 > :nth-child(7) {
  grid-column: span 4;
}

/* 8 cards = 4 + 4 */
.page-batch5-v2 .seo-v2-card-grid--b5-8 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-batch5-v2 .seo-v2-card-grid--b5-7 .seo-v2-card,
.page-batch5-v2 .seo-v2-card-grid--b5-8 .seo-v2-card {
  padding: 22px 22px 24px;
}

.page-batch5-v2 .seo-v2-card-grid--b5-7 .seo-v2-card h3,
.page-batch5-v2 .seo-v2-card-grid--b5-8 .seo-v2-card h3 {
  font-size: 18px;
}

/* Cards on these pages are informational, not links — no arrow slot to keep
   free, so the tall bottom padding of the Batch 1 card is not needed. */
.page-batch5-v2 .seo-v2-card-grid[class*="--b5-"] .seo-v2-card {
  padding-bottom: 24px;
}

/* --- Two-way split: "this or that" decision blocks ----------------------- */

.page-batch5-v2 .seo-v2-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.page-batch5-v2 .seo-v2-split__card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
  padding: 26px 26px 28px;
  background:
    radial-gradient(circle at 100% 0, rgba(34, 211, 238, 0.13), transparent 9rem),
    rgba(255, 255, 255, 0.94);
  border: 1px solid var(--seo-v2-line);
  border-radius: 25px;
  box-shadow: var(--seo-v2-soft-shadow);
}

.page-batch5-v2 .seo-v2-split__card > div {
  min-width: 0;
}

.page-batch5-v2 .seo-v2-split__card h3 {
  margin: 0;
  color: var(--seo-v2-ink);
  font-size: 21px;
  font-weight: 850;
  line-height: 1.25;
  letter-spacing: -0.015em;
}

.page-batch5-v2 .seo-v2-split__card > div > p {
  margin: 10px 0 0;
  color: var(--seo-v2-text);
  font-size: 15px;
  line-height: 1.58;
}

.page-batch5-v2 .seo-v2-split__lead {
  font-weight: 800;
  color: #0a6da8 !important;
}

/* --- Check lists inside cards, panels and split columns ------------------ */

.page-batch5-v2 .seo-v2-checklist {
  display: grid;
  gap: 9px;
  padding: 0;
  margin: 16px 0 0;
  list-style: none;
}

.page-batch5-v2 .seo-v2-checklist li {
  position: relative;
  padding-left: 27px;
  color: #26435f;
  font-size: 15px;
  font-weight: 720;
  line-height: 1.45;
}

.page-batch5-v2 .seo-v2-checklist li::before {
  position: absolute;
  top: 0.42em;
  left: 0;
  width: 15px;
  height: 15px;
  content: "";
  background: #e7f6ff;
  border: 1px solid rgba(14, 165, 233, 0.35);
  border-radius: 50%;
  box-shadow: inset 0 0 0 3px #fff;
}

.page-batch5-v2 .seo-v2-checklist--dual {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 22px;
}

/* --- Notices: warnings (amber) and accents (blue) ------------------------ */

.page-batch5-v2 .seo-v2-alert {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-top: 18px;
  padding: 18px 21px;
  color: #71321e;
  background:
    radial-gradient(circle at 100% 0, rgba(251, 146, 60, 0.16), transparent 13rem),
    rgba(255, 250, 245, 0.95);
  border: 1px solid rgba(234, 88, 12, 0.2);
  border-radius: 20px;
  box-shadow: 0 9px 24px rgba(124, 45, 18, 0.06);
}

.page-batch5-v2 .seo-v2-alert .seo-v2-icon {
  color: #c2410c;
  background: #fff7ed;
  border-color: rgba(234, 88, 12, 0.22);
}

.page-batch5-v2 .seo-v2-alert--info {
  color: #1d4a68;
  background:
    radial-gradient(circle at 100% 0, rgba(34, 211, 238, 0.16), transparent 13rem),
    rgba(240, 250, 255, 0.95);
  border-color: rgba(14, 165, 233, 0.22);
  box-shadow: 0 9px 24px rgba(15, 61, 115, 0.06);
}

.page-batch5-v2 .seo-v2-alert--info .seo-v2-icon {
  color: #087cbe;
  background: #eefaff;
  border-color: rgba(14, 165, 233, 0.24);
}

.page-batch5-v2 .seo-v2-alert > div {
  min-width: 0;
}

.page-batch5-v2 .seo-v2-alert h3,
.page-batch5-v2 .seo-v2-subheading {
  margin: 0;
  color: var(--seo-v2-ink);
  font-size: 19px;
  font-weight: 850;
  line-height: 1.3;
}

.page-batch5-v2 .seo-v2-alert p {
  margin: 6px 0 0;
  color: inherit;
  font-size: 15px;
  line-height: 1.55;
}

.page-batch5-v2 .seo-v2-alert--info p {
  color: #33566f;
}

/* Sub-heading inside a merged section: the approved copy groups two related
   blocks under one H2, and the second block keeps its own H3 lead-in. */
.page-batch5-v2 .seo-v2-subheading {
  margin: 34px 0 16px;
  font-size: 27px;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.page-batch5-v2 .seo-v2-subheading + p {
  margin: -6px 0 18px;
  max-width: 750px;
  color: var(--seo-v2-text);
  font-size: 16px;
  line-height: 1.62;
}

.page-batch5-v2 .seo-v2-body-text {
  max-width: 820px;
  margin: 0 0 18px;
  color: var(--seo-v2-text);
  font-size: 17px;
  line-height: 1.68;
}

.page-batch5-v2 .seo-v2-inline-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  color: #0878b8;
  font-size: 14px;
  font-weight: 820;
  line-height: 1.35;
  text-decoration: none;
}

.page-batch5-v2 .seo-v2-inline-link .seo-v2-arrow {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
}

/* --- Process steps: explicit layouts for 5, 6 and 7 approved steps ------- */

.page-batch5-v2 .seo-v2-steps[data-step-count="6"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-batch5-v2 .seo-v2-steps[data-step-count="7"] {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.page-batch5-v2 .seo-v2-steps[data-step-count="7"] > * {
  grid-column: span 3;
}

.page-batch5-v2 .seo-v2-steps[data-step-count="7"] > :nth-child(5),
.page-batch5-v2 .seo-v2-steps[data-step-count="7"] > :nth-child(6),
.page-batch5-v2 .seo-v2-steps[data-step-count="7"] > :nth-child(7) {
  grid-column: span 4;
}

/* --- Price list ---------------------------------------------------------- */

.page-batch5-v2 .seo-v2-price-grid--balanced > :last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.page-batch5-v2 .seo-v2-price-card__top strong {
  white-space: nowrap;
  overflow-wrap: normal;
}

/* --- Related services: title above description, never one run-on line ----- */

.page-batch5-v2 .seo-v2-related a {
  align-items: flex-start;
}

.page-batch5-v2 .seo-v2-related a > span {
  min-width: 0;
}

.page-batch5-v2 .seo-v2-related strong {
  display: block;
  color: inherit;
}

.page-batch5-v2 .seo-v2-related small {
  display: block;
  margin-top: 4px;
  color: #6b7d91;
  font-size: 12px;
  font-weight: 620;
  line-height: 1.4;
}

.page-batch5-v2 .seo-v2-related .seo-v2-arrow {
  margin-top: 3px;
}

/* --- Final CTA: approved simple block (heading, copy, button, micro line).
   No new consultation form, so the copy column can never be pushed down by a
   taller form card. --------------------------------------------------------- */

.page-batch5-v2 .seo-v2-final > div > p.seo-v2-final__lead {
  max-width: 700px;
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.85);
  font-size: 17px;
  line-height: 1.62;
}

.page-batch5-v2 .seo-v2-final > div > p.seo-v2-final__note {
  max-width: 700px;
  margin: 15px 0 0;
  color: rgba(255, 255, 255, 0.74);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.5;
}

/* --- Approved Batch 5 hero crops -----------------------------------------
   Separate desktop and mobile compositions; object-position only, no scale,
   no blur, no filter, no background-image fallback. */

.page-batch5-v2 .seo-v2-hero--install-windows .seo-v2-hero__media img {
  object-position: 56% 50%;
}

.page-batch5-v2 .seo-v2-hero--data-recovery .seo-v2-hero__media img {
  object-position: 53% 52%;
}

.page-batch5-v2 .seo-v2-hero--pc-upgrade .seo-v2-hero__media img {
  object-position: 55% 48%;
}

.page-batch5-v2 .seo-v2-hero--internet .seo-v2-hero__media img {
  object-position: 54% 50%;
}

.page-batch5-v2 .seo-v2-hero--pc-setup .seo-v2-hero__media img {
  object-position: 51% 46%;
}

@media (hover: hover) and (pointer: fine) {
  .page-batch5-v2 .seo-v2-split__card:hover {
    border-color: rgba(14, 165, 233, 0.36);
    box-shadow: 0 17px 36px rgba(14, 165, 233, 0.1);
  }
}

@media (max-width: 1100px) {
  .page-batch5-v2 .seo-v2-hero__shell {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.84fr);
  }

  /* 8 -> 3+3+2 */
  .page-batch5-v2 .seo-v2-card-grid--b5-8 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  /* 7 -> 3+2+2 (no lone narrow card) */
  .page-batch5-v2 .seo-v2-card-grid--b5-7 > * {
    grid-column: span 4;
  }

  .page-batch5-v2 .seo-v2-card-grid--b5-7 > :nth-child(5),
  .page-batch5-v2 .seo-v2-card-grid--b5-7 > :nth-child(6) {
    grid-column: span 6;
  }

  .page-batch5-v2 .seo-v2-card-grid--b5-7 > :nth-child(7) {
    grid-column: span 12;
  }

  .page-batch5-v2 .seo-v2-steps[data-step-count="7"] > * {
    grid-column: span 4;
  }

  .page-batch5-v2 .seo-v2-steps[data-step-count="7"] > :nth-child(7) {
    grid-column: span 12;
  }
}

@media (max-width: 900px) {
  /* Two even columns everywhere, and a trailing odd card takes the full row
     instead of sitting alone in a half-width slot. */
  .page-batch5-v2 .seo-v2-card-grid--b5-5,
  .page-batch5-v2 .seo-v2-card-grid--b5-6,
  .page-batch5-v2 .seo-v2-card-grid--b5-7,
  .page-batch5-v2 .seo-v2-card-grid--b5-8 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-batch5-v2 .seo-v2-card-grid--b5-5 > *,
  .page-batch5-v2 .seo-v2-card-grid--b5-7 > * {
    grid-column: auto;
  }

  .page-batch5-v2 .seo-v2-card-grid[class*="--b5-"] > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .page-batch5-v2 .seo-v2-split {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .page-batch5-v2 .seo-v2-steps[data-step-count="6"],
  .page-batch5-v2 .seo-v2-steps[data-step-count="7"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .page-batch5-v2 .seo-v2-steps[data-step-count="7"] > *,
  .page-batch5-v2 .seo-v2-steps[data-step-count="7"] > :nth-child(5),
  .page-batch5-v2 .seo-v2-steps[data-step-count="7"] > :nth-child(6),
  .page-batch5-v2 .seo-v2-steps[data-step-count="7"] > :nth-child(7) {
    grid-column: auto;
  }
}

@media (max-width: 768px) {
  .page-batch5-v2 .seo-v2-hero__shell {
    display: flex;
    min-height: 0;
  }

  .page-batch5-v2 .seo-v2-hero__lead {
    font-size: 15px;
  }

  .page-batch5-v2 .seo-v2-hero__trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-batch5-v2 .seo-v2-hero__trust li:nth-child(3) {
    grid-column: auto;
  }

  /* One column on phones; span overrides from the wide layouts are cleared. */
  .page-batch5-v2 .seo-v2-card-grid--b5-2,
  .page-batch5-v2 .seo-v2-card-grid--b5-5,
  .page-batch5-v2 .seo-v2-card-grid--b5-6,
  .page-batch5-v2 .seo-v2-card-grid--b5-7,
  .page-batch5-v2 .seo-v2-card-grid--b5-8 {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  .page-batch5-v2 .seo-v2-card-grid[class*="--b5-"] > *,
  .page-batch5-v2 .seo-v2-card-grid[class*="--b5-"] > :last-child:nth-child(odd) {
    grid-column: auto;
  }

  .page-batch5-v2 .seo-v2-card-grid[class*="--b5-"] .seo-v2-card {
    padding: 16px 17px;
  }

  .page-batch5-v2 .seo-v2-card-grid--b5-7 .seo-v2-card h3,
  .page-batch5-v2 .seo-v2-card-grid--b5-8 .seo-v2-card h3 {
    font-size: 17px;
  }

  .page-batch5-v2 .seo-v2-split__card {
    padding: 20px 19px 22px;
    border-radius: 20px;
  }

  .page-batch5-v2 .seo-v2-split__card h3 {
    font-size: 19px;
  }

  .page-batch5-v2 .seo-v2-checklist li,
  .page-batch5-v2 .seo-v2-checklist--dual li {
    font-size: 14px;
  }

  .page-batch5-v2 .seo-v2-checklist--dual {
    grid-template-columns: 1fr;
  }

  .page-batch5-v2 .seo-v2-alert {
    padding: 15px 16px;
    gap: 13px;
    border-radius: 17px;
  }

  .page-batch5-v2 .seo-v2-alert h3 {
    font-size: 17px;
  }

  .page-batch5-v2 .seo-v2-alert p {
    font-size: 14px;
  }

  .page-batch5-v2 .seo-v2-subheading {
    margin: 26px 0 12px;
    font-size: 23px;
  }

  .page-batch5-v2 .seo-v2-body-text {
    font-size: 15.5px;
    line-height: 1.6;
  }

  .page-batch5-v2 .seo-v2-steps[data-step-count="6"],
  .page-batch5-v2 .seo-v2-steps[data-step-count="7"] {
    grid-template-columns: 1fr;
  }

  .page-batch5-v2 .seo-v2-price-grid--balanced > :last-child:nth-child(odd) {
    grid-column: auto;
  }

  /* The whole CTA becomes one column; the button must not shrink-wrap into a
     narrow pill next to the copy. */
  .page-batch5-v2 .seo-v2-final > .seo-v2-button {
    width: 100%;
  }

  .page-batch5-v2 .seo-v2-final > div > p.seo-v2-final__lead {
    font-size: 15.5px;
  }

  .page-batch5-v2 .seo-v2-final > div > p.seo-v2-final__note {
    font-size: 13px;
  }

  /* Separate mobile compositions, sized so the hero never eats the first
     screen and never becomes a random fragment. */
  .page-batch5-v2 .seo-v2-hero--install-windows .seo-v2-hero__media,
  .page-batch5-v2 .seo-v2-hero--internet .seo-v2-hero__media {
    height: 234px;
    flex-basis: 234px;
  }

  .page-batch5-v2 .seo-v2-hero--data-recovery .seo-v2-hero__media,
  .page-batch5-v2 .seo-v2-hero--pc-setup .seo-v2-hero__media {
    height: 238px;
    flex-basis: 238px;
  }

  .page-batch5-v2 .seo-v2-hero--pc-upgrade .seo-v2-hero__media {
    height: 242px;
    flex-basis: 242px;
  }

  /* Vertical crops picked from the rendered frame, not guessed: the mobile
     window shows ~43% of the source height, so each page is anchored on the
     screen its copy is about — the Windows setup dialog, the recovery scan,
     the open case, the network panel. */
  .page-batch5-v2 .seo-v2-hero--install-windows .seo-v2-hero__media img {
    object-position: 50% 36%;
  }

  .page-batch5-v2 .seo-v2-hero--data-recovery .seo-v2-hero__media img {
    object-position: 50% 14%;
  }

  .page-batch5-v2 .seo-v2-hero--pc-upgrade .seo-v2-hero__media img {
    object-position: 50% 33%;
  }

  .page-batch5-v2 .seo-v2-hero--internet .seo-v2-hero__media img {
    object-position: 50% 30%;
  }

  .page-batch5-v2 .seo-v2-hero--pc-setup .seo-v2-hero__media img {
    object-position: 50% 40%;
  }

  .page-batch5-v2 .seo-v2-inline-link {
    display: inline;
    font-size: 13px;
    line-height: 1.45;
  }

  .page-batch5-v2 .seo-v2-inline-link .seo-v2-arrow {
    display: inline-block;
    margin-left: 4px;
    vertical-align: -4px;
  }
}

@media (max-width: 390px) {
  .page-batch5-v2 .seo-v2-hero h1 {
    font-size: 28px;
  }

  /* Two even trust chips; a single-column list pushed the CTA far below the
     fold on 360, and one-word lines looked broken. */
  .page-batch5-v2 .seo-v2-hero__trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-batch5-v2 .seo-v2-hero__trust li {
    align-items: flex-start;
    font-size: 11.5px;
  }

  .page-batch5-v2 .seo-v2-hero--install-windows .seo-v2-hero__media,
  .page-batch5-v2 .seo-v2-hero--internet .seo-v2-hero__media,
  .page-batch5-v2 .seo-v2-hero--data-recovery .seo-v2-hero__media,
  .page-batch5-v2 .seo-v2-hero--pc-setup .seo-v2-hero__media {
    height: 200px;
    flex-basis: 200px;
  }

  .page-batch5-v2 .seo-v2-hero--pc-upgrade .seo-v2-hero__media {
    height: 206px;
    flex-basis: 206px;
  }

  .page-batch5-v2 .seo-v2-split__card {
    padding: 17px 16px 19px;
  }

  .page-batch5-v2 .seo-v2-subheading {
    font-size: 21px;
  }
}

/* Смысловые строки внутри hero-H1: полное название услуги сохраняется,
   перенос управляемый. Класс используется только в <h1> hero-блока. */
.seo-v2-page .seo-v2-hero h1 .seo-v2-hero__title-line {
  display: block;
}
