.seo-page {
  background: #fff;
  color: #132033;
}

.seo-hero {
  min-height: 500px;
  display: flex;
  align-items: center;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 82% 24%, rgba(22, 170, 229, .2), transparent 28%),
    linear-gradient(126deg, #031426 0%, #082946 58%, #0b4d72 100%);
}

.seo-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 46px 46px;
  mask-image: linear-gradient(to left, #000, transparent 80%);
}

.seo-hero .page-hero-content {
  position: relative;
  z-index: 1;
  padding-top: 132px;
  padding-bottom: 78px;
  max-width: 950px;
}

.seo-hero h1 {
  max-width: 920px;
  margin-bottom: 20px;
  font-size: clamp(2.35rem, 5.2vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -.055em;
}

.seo-hero p {
  max-width: 790px;
  margin: 0;
  color: #d8e6f2;
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  line-height: 1.65;
}

.seo-hero-actions,
.seo-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.seo-trust-row span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: #eef8ff;
  background: rgba(255,255,255,.07);
  font-size: .9rem;
}

.seo-trust-row .icon { width: 17px; height: 17px; color: #43c6ff; }

.seo-breadcrumbs {
  padding-top: 20px;
  padding-bottom: 4px;
}

.seo-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #6a7889;
  font-size: .86rem;
}

.seo-breadcrumbs li:not(:last-child)::after {
  content: "/";
  margin-left: 7px;
  color: #9aa6b4;
}

.seo-breadcrumbs a { color: #315c7b; text-decoration: none; }
.seo-breadcrumbs a:hover { text-decoration: underline; }

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

.seo-region-card,
.seo-district-card,
.seo-diagnosis-card,
.seo-fact-card {
  border: 1px solid #dce7ef;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(10, 34, 55, .07);
}

.seo-region-card { padding: 30px; }
.seo-region-card > span { color: #1377a8; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.seo-region-card h2 { margin: 10px 0 11px; font-size: clamp(1.35rem, 2.5vw, 1.75rem); }
.seo-region-card h2 a { color: #092139; text-decoration: none; }
.seo-region-card p { margin: 0 0 22px; color: #5c6d7e; line-height: 1.65; }

.seo-text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #087bab;
  font-weight: 800;
  text-decoration: none;
}
.seo-text-link .icon { width: 18px; height: 18px; }

.seo-soft-section {
  background: #f2f7fa;
  border-top: 1px solid #e0ebf1;
  border-bottom: 1px solid #e0ebf1;
}

.seo-split,
.seo-local-layout,
.seo-check-layout,
.seo-solution-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(330px, .92fr);
  gap: clamp(32px, 6vw, 78px);
  align-items: center;
}

.seo-split p,
.seo-local-copy > p,
.seo-solution-layout p { color: #566b7d; font-size: 1.05rem; line-height: 1.72; }

.seo-mini-list {
  display: grid;
  gap: 10px;
}

.seo-mini-list a {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 15px 18px;
  border: 1px solid #d9e6ed;
  border-radius: 14px;
  background: #fff;
  color: #122a40;
  text-decoration: none;
}
.seo-mini-list a:hover { border-color: #50b9e2; transform: translateY(-1px); }
.seo-mini-list span { color: #71808d; font-size: .82rem; text-align: right; }

.seo-district-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.seo-district-card { padding: 27px; }
.seo-district-card h2 { margin: 0 0 16px; color: #092139; font-size: 1.28rem; }
.seo-district-card ul { margin: 0; padding: 0; list-style: none; }
.seo-district-card li + li { border-top: 1px solid #e7eef3; }
.seo-district-card a { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 13px 0; color: #31546d; font-weight: 700; text-decoration: none; }
.seo-district-card a:hover { color: #0781b5; }
.seo-district-card .icon { width: 17px; height: 17px; flex: 0 0 auto; }

.seo-service-grid,
.seo-problem-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.seo-service-card,
.seo-problem-card {
  display: block;
  min-height: 190px;
  padding: 25px;
  border: 1px solid #dce6ed;
  border-radius: 20px;
  background: #fff;
  color: #172a3c;
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.seo-service-card:hover,
.seo-problem-card:hover { transform: translateY(-3px); border-color: #5fb9dc; box-shadow: 0 16px 34px rgba(8, 52, 82, .1); }
.seo-service-card h3,
.seo-problem-card h3 { margin: 0 0 9px; font-size: 1.18rem; line-height: 1.3; }
.seo-service-card p,
.seo-problem-card p { margin: 0 0 16px; color: #627283; line-height: 1.55; }
.seo-service-card span { color: #047fab; font-size: .86rem; font-weight: 800; }
.seo-problem-card > span { display: block; margin-bottom: 9px; color: #0783b2; font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }

.seo-area-note {
  padding: 30px;
  border: 1px solid #bfe0ed;
  border-radius: 24px;
  background: linear-gradient(145deg, #effaff, #fff);
  box-shadow: 0 18px 44px rgba(9, 64, 92, .08);
}
.seo-area-note > span { color: #087eaa; font-size: .75rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.seo-area-note h2 { margin: 9px 0 12px; color: #08223a; font-size: 1.45rem; }
.seo-area-note h3 { margin: 22px 0 10px; font-size: 1rem; }
.seo-area-note p { color: #53697b; line-height: 1.65; }

.seo-chip-list { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 19px; }
.seo-chip-list a { padding: 7px 11px; border: 1px solid #cfe2eb; border-radius: 999px; background: #fff; color: #315b73; font-size: .82rem; font-weight: 700; text-decoration: none; }
.seo-chip-list a:hover { border-color: #2ba5d1; color: #087aa6; }

.seo-steps { display: grid; gap: 18px; margin: 28px 0 0; padding: 0; list-style: none; counter-reset: steps; }
.seo-steps li { display: grid; grid-template-columns: 42px 1fr; column-gap: 13px; counter-increment: steps; }
.seo-steps li::before { content: counter(steps); grid-row: span 2; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #0a81ad; color: #fff; font-weight: 900; }
.seo-steps strong { color: #132b40; }
.seo-steps span { margin-top: 3px; color: #667787; line-height: 1.55; }

.seo-contact-section { background: #071d31; }
.seo-contact-card { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; padding: clamp(26px, 5vw, 54px); border: 1px solid rgba(255,255,255,.12); border-radius: 28px; background: linear-gradient(135deg, #0b2b46, #071b2e); box-shadow: 0 25px 70px rgba(0,0,0,.2); }
.seo-contact-copy h2 { margin: 9px 0 13px; color: #fff; font-size: clamp(1.8rem, 3vw, 2.5rem); }
.seo-contact-copy p { color: #c9d9e5; line-height: 1.7; }
.seo-phone-link { display: inline-block; margin-top: 16px; color: #57d1ff; font-size: 1.35rem; font-weight: 900; text-decoration: none; }
.seo-contact-form { padding: 26px; border-radius: 20px; background: #fff; }

.seo-category-stack { display: grid; gap: 28px; }
.seo-problem-category { display: grid; grid-template-columns: minmax(220px, .34fr) minmax(0, .66fr); gap: 30px; padding: 28px; border: 1px solid #dde8ee; border-radius: 24px; background: #fff; box-shadow: 0 14px 36px rgba(11, 42, 64, .06); }
.seo-problem-category h2 { margin: 7px 0 0; color: #0b263d; font-size: 1.45rem; }
.seo-problem-list { display: grid; gap: 7px; }
.seo-problem-list a { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 13px 15px; border-radius: 12px; color: #213c52; text-decoration: none; }
.seo-problem-list a:hover { background: #edf7fb; color: #087ba8; }
.seo-problem-list span { display: grid; gap: 2px; }
.seo-problem-list small { color: #758491; font-weight: 500; }
.seo-problem-list .icon { width: 18px; height: 18px; flex: 0 0 auto; }

.seo-fact-card { display: grid; gap: 9px; padding: 30px; }
.seo-fact-card strong { color: #0c283e; font-size: 1.45rem; }
.seo-fact-card span { color: #617385; line-height: 1.65; }
.seo-fact-card a { color: #087ea9; font-weight: 800; text-decoration: none; }

.seo-diagnosis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.seo-diagnosis-card { position: relative; padding: 32px; overflow: hidden; }
.seo-card-number { position: absolute; top: 18px; right: 22px; color: #d6eef7; font-size: 3.2rem; font-weight: 900; line-height: 1; }
.seo-diagnosis-card h2 { position: relative; margin: 0 0 18px; color: #102a40; font-size: 1.5rem; }
.seo-diagnosis-card ul { display: grid; gap: 12px; margin: 0; padding-left: 21px; color: #536879; line-height: 1.6; }

.seo-check-list { display: grid; gap: 16px; margin: 26px 0 0; padding: 0; list-style: none; counter-reset: checks; }
.seo-check-list li { position: relative; padding: 17px 18px 17px 58px; border: 1px solid #d7e5ec; border-radius: 15px; background: #fff; color: #40586b; line-height: 1.55; counter-increment: checks; }
.seo-check-list li::before { content: counter(checks); position: absolute; left: 16px; top: 14px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #0a82af; color: #fff; font-size: .82rem; font-weight: 900; }
.seo-warning { display: flex; gap: 17px; padding: 28px; border: 1px solid #f0ce82; border-radius: 22px; background: #fff8e7; }
.seo-warning .icon { width: 29px; height: 29px; flex: 0 0 auto; color: #bc7200; }
.seo-warning h2 { margin: 0 0 8px; color: #5e3b05; font-size: 1.25rem; }
.seo-warning p { margin: 0; color: #72551f; line-height: 1.65; }

.seo-solution-list { display: grid; gap: 11px; margin: 23px 0 0; padding: 0; list-style: none; }
.seo-solution-list li { display: flex; align-items: center; gap: 10px; color: #29475d; font-weight: 700; }
.seo-solution-list .icon { width: 19px; height: 19px; color: #0795bf; }
.seo-service-focus { display: grid; gap: 12px; padding: 34px; border-radius: 24px; background: linear-gradient(145deg, #063454, #097ba5); color: #fff; text-decoration: none; box-shadow: 0 22px 45px rgba(4, 61, 91, .2); }
.seo-service-focus span { color: #85ddff; font-size: .76rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.seo-service-focus strong { font-size: clamp(1.55rem, 3vw, 2.25rem); line-height: 1.15; }
.seo-service-focus small { color: #d8eff8; font-size: .92rem; }
.seo-problem-card-all { background: #0b2a43; color: #fff; }
.seo-problem-card-all h3 { color: #fff; }
.seo-problem-card-all p { color: #c7d8e3; }

@media (max-width: 960px) {
  .seo-region-grid,
  .seo-district-grid,
  .seo-service-grid,
  .seo-problem-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .seo-split,
  .seo-local-layout,
  .seo-check-layout,
  .seo-solution-layout,
  .seo-contact-card { grid-template-columns: 1fr; }
  .seo-problem-category { grid-template-columns: 1fr; gap: 17px; }
}

@media (max-width: 640px) {
  .seo-hero { min-height: auto; }
  .seo-hero .page-hero-content { padding-top: 112px; padding-bottom: 58px; }
  .seo-region-grid,
  .seo-district-grid,
  .seo-service-grid,
  .seo-problem-grid,
  .seo-diagnosis-grid { grid-template-columns: 1fr; }
  .seo-region-card,
  .seo-district-card,
  .seo-diagnosis-card,
  .seo-area-note { padding: 22px; border-radius: 19px; }
  .seo-service-card,
  .seo-problem-card { min-height: 0; padding: 21px; }
  .seo-contact-card { gap: 24px; padding: 21px; border-radius: 20px; }
  .seo-contact-form { padding: 18px; }
  .seo-problem-category { padding: 20px; }
  .seo-problem-list a { padding-inline: 4px; }
  .seo-problem-list small { display: none; }
}
