:root {
  --theme-name: "標準";
  --ink: #1f2933;
  --muted: #5f6d7b;
  --line: #d8e2ec;
  --panel: #ffffff;
  --paper: #f3f7fb;
  --navy: #0f2a44;
  --blue: #2563a8;
  --cta: #1d4ed8;
  --cyan: #0ea5e9;
  --green: #3f8b61;
  --amber: #f59e0b;
  --orange: #f97316;
  --red: #c24135;
  --shadow: 0 18px 46px rgba(15, 42, 68, 0.12);
}

body[data-theme="cyan"] {
  --theme-name: "先進";
  --ink: #172033;
  --muted: #526173;
  --line: #cde7f5;
  --paper: #f0f9ff;
  --navy: #0b1f33;
  --blue: #0ea5e9;
  --cta: #0284c7;
  --cyan: #38bdf8;
  --shadow: 0 18px 46px rgba(2, 132, 199, 0.14);
}

body[data-theme="orange"] {
  --theme-name: "CTA強調";
  --ink: #1e293b;
  --muted: #64748b;
  --line: #dbe3ec;
  --paper: #f8fafc;
  --navy: #102a43;
  --blue: #64748b;
  --cta: #f97316;
  --cyan: #38bdf8;
  --orange: #f97316;
  --shadow: 0 18px 46px rgba(16, 42, 67, 0.12);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 92px;
}

body {
  min-width: 320px;
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Hiragino Sans", "Yu Gothic", "Meiryo", system-ui, sans-serif;
  line-height: 1.7;
  overflow-x: hidden;
}

section,
article[id] {
  scroll-margin-top: 92px;
}

a {
  color: inherit;
  text-decoration: none;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  max-width: 760px;
  margin-bottom: 20px;
  font-size: clamp(31px, 3.7vw, 50px);
  line-height: 1.18;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

h2 {
  line-height: 1.25;
}

.hero-title span {
  display: block;
}

ul {
  padding-left: 1.25em;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.container,
.header-inner,
.hero-inner {
  width: min(100% - 32px, 1120px);
  margin-inline: auto;
}

.hero-inner {
  width: min(100% - 32px, 1200px);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding-block: 14px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 180px;
  line-height: 0;
}

.site-logo {
  display: block;
  max-width: 100%;
  height: auto;
}

.site-logo--header {
  width: auto;
  height: 80px;
}

.brand:focus-visible,
.footer-logo-link:focus-visible {
  outline: 3px solid rgba(37, 99, 168, 0.32);
  outline-offset: 4px;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 4px;
}

.site-nav a {
  padding: 10px 9px;
  color: #314050;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.site-nav a:hover,
.site-nav a:focus-visible {
  color: var(--blue);
}

.site-nav .nav-contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 10px 22px;
  color: #fff;
  background: linear-gradient(110deg, #1738dc 0%, #0878e8 55%, #19c8d5 100%);
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 999px;
  box-shadow:
    0 8px 20px rgba(14, 91, 210, 0.24),
    0 0 18px rgba(31, 186, 225, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
  font-weight: 800;
  line-height: 1;
  transition:
    transform 220ms ease,
    box-shadow 220ms ease,
    filter 220ms ease;
}

.nav-contact__icon,
.nav-contact__arrow {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
}

.nav-contact__icon {
  width: 18px;
  height: 18px;
}

.nav-contact__arrow {
  width: 15px;
  height: 15px;
  transition: transform 220ms ease;
}

.nav-contact__icon svg,
.nav-contact__arrow svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.site-nav .nav-contact:hover {
  color: #fff;
  filter: brightness(1.06);
  transform: translateY(-2px);
  box-shadow:
    0 11px 24px rgba(14, 91, 210, 0.3),
    0 0 22px rgba(31, 186, 225, 0.23),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

.site-nav .nav-contact:hover .nav-contact__arrow {
  transform: translateX(3px);
}

.site-nav .nav-contact:active {
  filter: brightness(1);
  transform: translateY(0);
  box-shadow:
    0 5px 14px rgba(14, 91, 210, 0.2),
    0 0 12px rgba(31, 186, 225, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.site-nav .nav-contact:focus-visible {
  color: #fff;
  outline: 3px solid #0b4c94;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .site-nav .nav-contact,
  .nav-contact__arrow {
    transition: none;
  }

  .site-nav .nav-contact:hover,
  .site-nav .nav-contact:hover .nav-contact__arrow {
    transform: none;
  }
}

.theme-switcher {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-inline: 6px;
  padding: 4px;
  background: #eef5fc;
  border: 1px solid var(--line);
  border-radius: 999px;
}

.theme-switcher span {
  padding-inline: 8px 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.theme-switcher button {
  min-height: 30px;
  padding: 4px 9px;
  color: var(--navy);
  background: transparent;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.theme-switcher button:hover,
.theme-switcher button:focus-visible,
.theme-switcher button.is-active {
  color: #fff;
  background: var(--cta);
}

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 9px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.nav-toggle span:not(.sr-only) {
  display: block;
  height: 2px;
  margin: 5px 0;
  background: var(--ink);
}

.hero {
  background:
    radial-gradient(circle at 82% 12%, rgba(37, 99, 168, 0.16), transparent 34%),
    linear-gradient(90deg, rgba(15, 42, 68, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(15, 42, 68, 0.08) 1px, transparent 1px),
    #eaf2f9;
  background-size: auto, 44px 44px, 44px 44px, auto;
  padding-block: clamp(24px, 4vw, 44px);
}

.hero-inner,
.page-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(460px, 1.05fr);
  gap: clamp(30px, 4.4vw, 58px);
  align-items: center;
}

.hero-inner > *,
.page-hero-inner > * {
  min-width: 0;
}

.hero-inner {
  position: relative;
  overflow: hidden;
  min-height: calc(100vh - 75px);
  padding: clamp(30px, 5vw, 58px);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.94) 46%, rgba(229, 241, 252, 0.5) 72%, rgba(37, 99, 168, 0.12) 100%),
    radial-gradient(circle at 78% 24%, rgba(14, 165, 233, 0.16), transparent 34%),
    rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(191, 213, 232, 0.86);
  border-radius: 18px;
  box-shadow: 0 24px 58px rgba(15, 42, 68, 0.13);
}

.hero-inner::before,
.hero-inner::after {
  position: absolute;
  pointer-events: none;
  content: "";
}

.hero-inner::before {
  inset: 0;
  background:
    linear-gradient(90deg, rgba(15, 42, 68, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(15, 42, 68, 0.045) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.16) 44%, rgba(0, 0, 0, 0.72) 100%);
}

.hero-inner::after {
  top: 10%;
  right: 2.5%;
  width: min(40vw, 500px);
  height: 78%;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.16) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.14) 1px, transparent 1px),
    radial-gradient(circle at 62% 28%, rgba(14, 165, 233, 0.18), transparent 34%),
    linear-gradient(180deg, rgba(229, 241, 252, 0.72), rgba(191, 213, 232, 0.36));
  background-size: 32px 32px, 32px 32px, auto, auto;
  border: 1px solid rgba(191, 213, 232, 0.72);
  border-radius: 28px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 22px 44px rgba(15, 42, 68, 0.08);
  transform: none;
}

.hero-copy {
  position: relative;
  z-index: 2;
  isolation: isolate;
}

.hero-copy::before {
  position: absolute;
  inset: -22px -24px -24px -18px;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.96) 74%, rgba(255, 255, 255, 0.76) 90%, transparent 100%);
  border-radius: 14px;
  content: "";
}

.eyebrow {
  margin: 0 0 10px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.lead {
  max-width: 680px;
  color: #405060;
  font-size: clamp(16px, 1.7vw, 19px);
}

.design-note,
.section-note,
.placeholder-note,
.calendar-note,
.legend-note {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.design-note {
  max-width: 680px;
  margin: -2px 0 20px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.hero-focus {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 22px 0;
}

.hero-focus a {
  min-height: 76px;
  padding: 15px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-left: 5px solid var(--blue);
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.08);
}

.hero-focus span,
.service-number,
.contact-card span {
  display: block;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
}

.hero-focus strong {
  display: block;
  margin-top: 3px;
  font-size: 17px;
  line-height: 1.35;
}

.hero-unified .hero-inner {
  grid-template-columns: minmax(360px, 0.78fr) minmax(560px, 1.22fr);
  grid-template-areas:
    "copy visual"
    "support visual";
  gap: clamp(12px, 2.6vw, 34px);
  padding: clamp(34px, 5.2vw, 68px);
  background:
    linear-gradient(105deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.94) 35%, rgba(229, 241, 252, 0.62) 60%, rgba(37, 99, 168, 0.2) 100%),
    radial-gradient(circle at 78% 50%, rgba(125, 211, 252, 0.22), transparent 36%),
    rgba(255, 255, 255, 0.9);
}

.hero-unified .hero-copy {
  grid-area: copy;
  align-self: end;
}

.hero-unified .hero-support {
  position: relative;
  z-index: 2;
  grid-area: support;
  align-self: start;
}

.hero-unified .hero-inner::before {
  background:
    linear-gradient(90deg, rgba(15, 42, 68, 0.055) 1px, transparent 1px),
    linear-gradient(rgba(15, 42, 68, 0.05) 1px, transparent 1px),
    linear-gradient(120deg, transparent 0 40%, rgba(37, 99, 168, 0.12) 40.2%, transparent 40.8% 100%);
  background-size: 38px 38px, 38px 38px, 100% 100%;
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.28) 43%, rgba(0, 0, 0, 0.78) 100%);
}

.hero-unified .hero-inner::after {
  top: 5%;
  right: -5%;
  width: min(58vw, 760px);
  height: 90%;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.16) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1px),
    radial-gradient(circle at 58% 42%, rgba(14, 165, 233, 0.24), transparent 32%),
    linear-gradient(180deg, rgba(229, 241, 252, 0.74), rgba(37, 99, 168, 0.14));
  background-size: 34px 34px, 34px 34px, auto, auto;
  border-color: rgba(191, 213, 232, 0.62);
  border-radius: 42px;
  transform: skewX(-4deg);
}

.hero-unified .hero-copy::before {
  inset: -26px -88px -26px -22px;
  background:
    linear-gradient(95deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.94) 66%, rgba(255, 255, 255, 0.58) 84%, transparent 100%);
}

.hero-unified .hero-copy::after {
  position: absolute;
  left: clamp(210px, 26vw, 360px);
  top: 48%;
  z-index: -1;
  width: clamp(110px, 15vw, 210px);
  height: 2px;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.3), rgba(125, 211, 252, 0.72), transparent);
  border-radius: 999px;
  content: "";
}

.hero-unified .hero-title {
  max-width: 720px;
}

.hero-unified .lead {
  max-width: 620px;
}

.hero-unified .design-note {
  max-width: 620px;
  padding: 0 0 0 14px;
  background: transparent;
  border: 0;
  border-left: 3px solid rgba(37, 99, 168, 0.35);
  border-radius: 0;
}

.hero-scope-line {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  max-width: 620px;
  margin: 22px 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(37, 99, 168, 0.17);
  border-radius: 8px;
}

.hero-scope-line a {
  position: relative;
  min-height: 64px;
  padding: 13px 14px;
}

.hero-scope-line a + a {
  border-left: 1px solid rgba(37, 99, 168, 0.13);
}

.hero-scope-line span {
  display: block;
  color: var(--blue);
  font-size: 11px;
  font-weight: 900;
}

.hero-scope-line strong {
  display: block;
  margin-top: 4px;
  color: var(--navy);
  font-size: 15px;
  line-height: 1.35;
}

.hero-scope-line a::after {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 9px;
  height: 2px;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.48), rgba(125, 211, 252, 0.5), transparent);
  border-radius: 999px;
  content: "";
}

.hero-unified .hero-visual-card {
  position: relative;
  z-index: 2;
  grid-area: visual;
  align-self: center;
  margin-left: clamp(-38px, -3vw, -18px);
  background: transparent;
  border: 0;
  box-shadow: none;
}

.hero-unified .hero-visual-art {
  padding: 0;
}

.hero-unified .main-visual-concept {
  min-height: clamp(600px, 72vh, 740px);
  background:
    radial-gradient(circle at 44% 44%, rgba(125, 211, 252, 0.22), transparent 31%),
    radial-gradient(circle at 76% 25%, rgba(255, 255, 255, 0.16), transparent 24%),
    linear-gradient(135deg, rgba(10, 30, 50, 0.99), rgba(31, 86, 145, 0.92));
  border-color: rgba(185, 215, 242, 0.64);
  border-radius: 28px;
  box-shadow:
    0 30px 70px rgba(15, 42, 68, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.hero-unified .main-visual-equipment {
  top: 52%;
  width: 76%;
  height: 56%;
  max-width: 610px;
}

.hero-unified .main-visual-cad {
  left: 6%;
  top: 14%;
}

.hero-unified .main-visual-control {
  right: 6%;
  top: 15%;
}

.hero-unified .main-visual-assembly {
  left: 6%;
  bottom: 15%;
}

.hero-unified .main-visual-service {
  right: 6%;
  bottom: 14%;
}

.hero-unified .hero-visual-caption {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 22px;
  z-index: 4;
  margin: 0;
  padding: 10px 14px;
  color: #12324f;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(147, 197, 253, 0.52);
  border-radius: 999px;
  backdrop-filter: blur(10px);
}

.hero-unified .hero-visual-caption .visual-note {
  color: #12324f;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.hero-actions,
.contact-grid,
.section-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.section-actions {
  margin-top: 20px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 11px 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-weight: 900;
  text-align: center;
}

.button.primary {
  color: #fff;
  background: var(--cta);
  border-color: var(--cta);
  box-shadow: 0 14px 28px rgba(29, 78, 216, 0.22);
}

.button.secondary {
  color: var(--navy);
  background: #fff;
}

.hero-visual-card,
.service-card,
.detail-card,
.quick-table article,
.reason-grid article,
.drawing-card,
.category-grid article,
.fit-grid article,
.related-grid a,
.work-field-grid article,
.recruit-detail-grid article,
.stack-list div,
.case-grid article,
.case-detail-card,
.recruit-paths article,
.news-list article,
.news-index-card,
.company-note-card,
.company-service-grid a,
.company-value-grid article,
.contact-card,
.legend,
.calendar-frame,
.skill-grid article,
.requirement-list div {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.service-card,
.detail-card,
.quick-table article,
.reason-grid article,
.category-grid article,
.work-field-grid article,
.recruit-detail-grid article,
.case-grid article,
.case-detail-card,
.recruit-paths article,
.calendar-frame,
.legend,
.scope-map div,
.skill-grid article {
  position: relative;
  overflow: hidden;
}

.hero-visual-card {
  min-width: 0;
  padding: clamp(18px, 3vw, 30px);
  box-shadow: var(--shadow);
}

.hero-visual-art {
  position: relative;
  z-index: 2;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.tech-illustration {
  position: relative;
  min-height: 330px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.2), transparent 22%),
    radial-gradient(circle at 82% 72%, rgba(103, 232, 249, 0.2), transparent 24%),
    linear-gradient(135deg, rgba(15, 42, 68, 0.94), rgba(37, 99, 168, 0.86)),
    #0f2a44;
  border: 1px solid rgba(255, 255, 255, 0.36);
  border-radius: 14px;
  box-shadow: 0 22px 42px rgba(15, 42, 68, 0.2);
}

.tech-illustration::before,
.tech-illustration::after {
  position: absolute;
  z-index: 1;
  content: "";
}

.tech-illustration::before {
  left: 8%;
  top: 12%;
  width: 78px;
  height: 46px;
  background:
    linear-gradient(90deg, transparent 0 18px, rgba(15, 42, 68, 0.2) 18px 22px, transparent 22px),
    #eef6ff;
  border: 4px solid rgba(147, 197, 253, 0.95);
  border-radius: 8px;
  box-shadow: 92px 26px 0 -18px rgba(234, 242, 249, 0.92);
}

.tech-illustration::after {
  right: 8%;
  top: 52%;
  width: 88px;
  height: 30px;
  border: 4px solid rgba(215, 231, 248, 0.9);
  border-left: 0;
  border-bottom: 0;
  border-radius: 0 14px 0 0;
  transform: rotate(-5deg);
}

.tech-illustration.page {
  min-height: 260px;
}

.hero-visual-art .tech-illustration.large {
  min-height: clamp(560px, 72vh, 700px);
  background:
    radial-gradient(circle at 22% 18%, rgba(255, 255, 255, 0.22), transparent 22%),
    radial-gradient(circle at 82% 76%, rgba(103, 232, 249, 0.18), transparent 24%),
    linear-gradient(135deg, rgba(15, 42, 68, 0.96), rgba(37, 99, 168, 0.9)),
    #0f2a44;
  box-shadow: 0 30px 58px rgba(15, 42, 68, 0.24);
}

.illust-grid,
.illust-conveyor,
.illust-arm,
.illust-panel,
.illust-cad,
.illust-tool,
.illust-cable,
.illust-model,
.illust-calendar,
.illust-flow,
.illust-status,
.illust-dot {
  position: absolute;
  display: block;
}

.illust-grid {
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px);
  background-size: 28px 28px;
  animation: grid-drift 18s linear infinite;
}

.illust-conveyor {
  left: 10%;
  right: 12%;
  bottom: 25%;
  height: 14px;
  background: #d7e5f4;
  border-radius: 999px;
  box-shadow:
    0 18px 0 rgba(215, 229, 244, 0.42),
    inset 0 0 0 3px rgba(15, 42, 68, 0.14);
}

.illust-conveyor {
  animation: hero-float 7s ease-in-out infinite;
}

.illust-conveyor::before,
.illust-conveyor::after {
  position: absolute;
  top: -34px;
  width: 64px;
  height: 48px;
  background: #fff;
  border: 4px solid #93c5fd;
  border-radius: 8px;
  content: "";
}

.illust-conveyor::before {
  left: 12%;
}

.illust-conveyor::after {
  left: 44%;
  border-color: #67e8f9;
}

.illust-arm {
  left: 15%;
  top: 26%;
  width: 112px;
  height: 112px;
  border-left: 12px solid #fbbf24;
  border-bottom: 12px solid #fbbf24;
  border-radius: 0 0 0 46px;
  transform: rotate(-9deg);
  transform-origin: left bottom;
  animation: arm-float 7s ease-in-out infinite;
}

.illust-arm::before,
.illust-arm::after {
  position: absolute;
  content: "";
}

.illust-arm::before {
  left: -24px;
  top: -18px;
  width: 34px;
  height: 34px;
  background: #fff;
  border: 7px solid #fbbf24;
  border-radius: 50%;
}

.illust-arm::after {
  right: -14px;
  bottom: -18px;
  width: 44px;
  height: 12px;
  background: #fbbf24;
  border-radius: 99px;
}

.illust-panel {
  right: 10%;
  bottom: 20%;
  width: 92px;
  height: 124px;
  background: #eaf2f9;
  border: 5px solid #93c5fd;
  border-radius: 8px;
  box-shadow: -18px 18px 0 rgba(15, 42, 68, 0.18);
  animation: hero-float-alt 6.5s ease-in-out infinite;
}

.illust-panel::before,
.illust-panel::after {
  position: absolute;
  left: 14px;
  right: 14px;
  height: 9px;
  background: var(--blue);
  border-radius: 99px;
  content: "";
}

.illust-panel::before {
  top: 24px;
}

.illust-panel::after {
  top: 48px;
  background: var(--orange);
}

.illust-cad {
  right: 22%;
  top: 16%;
  width: 128px;
  height: 92px;
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.12) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.12) 1px, transparent 1px),
    rgba(255, 255, 255, 0.94);
  background-size: 14px 14px;
  border-radius: 8px;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.18);
  animation: hero-float 8s ease-in-out infinite;
}

.illust-cad::before {
  position: absolute;
  inset: 14px;
  border: 2px solid var(--cyan);
  transform: skew(-6deg);
  content: "";
}

.illust-tool {
  left: 58%;
  bottom: 18%;
  width: 84px;
  height: 14px;
  background: #fbbf24;
  border-radius: 999px;
  transform: rotate(-8deg);
  box-shadow: 24px -10px 0 -3px rgba(255, 255, 255, 0.9);
  transform-origin: 20% 50%;
  animation: tool-check 7.2s ease-in-out infinite;
}

.illust-tool::before,
.illust-tool::after,
.illust-cable::before,
.illust-model::before {
  position: absolute;
  content: "";
}

.illust-tool::before {
  right: -16px;
  top: -8px;
  width: 24px;
  height: 30px;
  border: 6px solid #fbbf24;
  border-left: 0;
  border-radius: 0 16px 16px 0;
}

.illust-tool::after {
  left: -22px;
  top: 1px;
  width: 26px;
  height: 12px;
  background: #d7e5f4;
  border-radius: 99px;
}

.illust-cable {
  right: 5%;
  bottom: 34%;
  width: 74px;
  height: 54px;
  border: 5px solid #b9d7f2;
  border-left: 0;
  border-bottom: 0;
  border-radius: 0 22px 0 0;
}

.illust-cable::before {
  right: -8px;
  bottom: -4px;
  width: 10px;
  height: 28px;
  background: #b9d7f2;
  border-radius: 99px;
}

.illust-model {
  left: 48%;
  top: 43%;
  width: 72px;
  height: 54px;
  background: rgba(255, 255, 255, 0.92);
  border: 5px solid #67e8f9;
  border-radius: 10px;
  animation: hero-float-alt 7.4s ease-in-out infinite;
}

.illust-model::before {
  inset: 10px 16px;
  border: 3px solid rgba(15, 42, 68, 0.24);
  transform: skew(-6deg);
}

.illust-calendar {
  left: 7%;
  bottom: 12%;
  width: 84px;
  height: 58px;
  background:
    linear-gradient(var(--cyan), var(--cyan)) 12px 16px / 22px 6px no-repeat,
    linear-gradient(#fbbf24, #fbbf24) 12px 32px / 38px 6px no-repeat,
    rgba(255, 255, 255, 0.92);
  border: 4px solid rgba(147, 197, 253, 0.95);
  border-radius: 10px;
  box-shadow: 0 14px 24px rgba(0, 0, 0, 0.18);
  animation: hero-float-alt 8.4s ease-in-out infinite;
}

.illust-calendar::before,
.illust-calendar::after,
.illust-flow::before,
.illust-flow::after {
  position: absolute;
  content: "";
}

.illust-calendar::before {
  inset: 8px 10px auto;
  height: 1px;
  background: rgba(37, 99, 168, 0.22);
  box-shadow: 0 14px 0 rgba(37, 99, 168, 0.16), 0 28px 0 rgba(37, 99, 168, 0.16);
}

.illust-calendar::after {
  right: 12px;
  bottom: 13px;
  width: 12px;
  height: 12px;
  background: var(--green);
  border-radius: 50%;
}

.illust-flow {
  left: 14%;
  right: 16%;
  top: 54%;
  height: 2px;
  background: rgba(215, 231, 248, 0.62);
}

.illust-flow::before {
  left: 0;
  top: -4px;
  width: 10px;
  height: 10px;
  background: #67e8f9;
  border-radius: 50%;
  box-shadow: 110px 0 0 #fbbf24, 220px 0 0 #67e8f9;
  animation: flow-dot 5.8s ease-in-out infinite;
}

.illust-flow::after {
  inset: -16px 18% auto;
  height: 34px;
  border-top: 2px solid rgba(215, 231, 248, 0.22);
  border-bottom: 2px solid rgba(215, 231, 248, 0.18);
}

.illust-status {
  width: 10px;
  height: 10px;
  background: #67e8f9;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(103, 232, 249, 0.28);
  animation: status-pulse 3.4s ease-in-out infinite;
}

.status-a {
  right: 16%;
  top: 20%;
}

.status-b {
  right: 19%;
  top: 28%;
  background: #fbbf24;
  animation-delay: 0.8s;
}

.status-c {
  right: 16%;
  top: 36%;
  background: var(--green);
  animation-delay: 1.6s;
}

.illust-dot {
  width: 13px;
  height: 13px;
  background: #67e8f9;
  border-radius: 50%;
  animation: status-pulse 4.2s ease-in-out infinite;
}

@media (min-width: 1121px) {
  .hero-visual-art .tech-illustration.large::before {
    left: 7%;
    top: 9%;
    width: 110px;
    height: 64px;
    box-shadow:
      138px 42px 0 -24px rgba(234, 242, 249, 0.92),
      276px 210px 0 -24px rgba(234, 242, 249, 0.72);
  }

  .hero-visual-art .tech-illustration.large::after {
    right: 6%;
    top: 58%;
    width: 118px;
    height: 52px;
  }

  .hero-visual-art .large .illust-conveyor {
    left: 9%;
    right: 8%;
    bottom: 24%;
    height: 18px;
  }

  .hero-visual-art .large .illust-conveyor::before,
  .hero-visual-art .large .illust-conveyor::after {
    top: -48px;
    width: 84px;
    height: 66px;
  }

  .hero-visual-art .large .illust-conveyor::before {
    left: 14%;
  }

  .hero-visual-art .large .illust-conveyor::after {
    left: 48%;
  }

  .hero-visual-art .large .illust-arm {
    left: 13%;
    top: 22%;
    width: 150px;
    height: 150px;
    border-left-width: 15px;
    border-bottom-width: 15px;
  }

  .hero-visual-art .large .illust-panel {
    right: 8%;
    bottom: 18%;
    width: 116px;
    height: 160px;
  }

  .hero-visual-art .large .illust-cad {
    right: 18%;
    top: 12%;
    width: 174px;
    height: 126px;
  }

  .hero-visual-art .large .illust-tool {
    left: 55%;
    bottom: 16%;
    width: 116px;
    height: 16px;
  }

  .hero-visual-art .large .illust-cable {
    right: 4%;
    bottom: 34%;
    width: 94px;
    height: 74px;
  }

  .hero-visual-art .large .illust-model {
    left: 47%;
    top: 45%;
    width: 94px;
    height: 70px;
  }

  .hero-visual-art .large .illust-calendar {
    left: 7%;
    bottom: 9%;
    width: 108px;
    height: 74px;
  }

  .hero-visual-art .large .illust-flow {
    left: 13%;
    right: 14%;
    top: 54%;
    height: 3px;
  }

  .hero-visual-art .large .illust-flow::before {
    box-shadow: 150px 0 0 #fbbf24, 300px 0 0 #67e8f9;
  }
}

.dot-a {
  left: 42%;
  top: 18%;
}

.dot-b {
  right: 8%;
  top: 12%;
  background: #fbbf24;
  animation-delay: 1.2s;
}

.hero-visual-art .hero-tech-map {
  min-height: clamp(540px, 68vh, 660px);
  isolation: isolate;
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.18), transparent 24%),
    radial-gradient(circle at 78% 78%, rgba(125, 211, 252, 0.15), transparent 26%),
    linear-gradient(135deg, rgba(11, 31, 51, 0.98), rgba(30, 82, 138, 0.92)),
    #0f2a44;
  border-color: rgba(185, 215, 242, 0.52);
}

.hero-tech-map::before,
.hero-tech-map::after {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  content: "";
}

.hero-tech-map::before {
  left: 8%;
  top: 8%;
  width: 84%;
  height: 84%;
  background:
    linear-gradient(90deg, rgba(185, 215, 242, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(185, 215, 242, 0.08) 1px, transparent 1px);
  background-size: 34px 34px;
  border: 1px solid rgba(185, 215, 242, 0.16);
  border-radius: 18px;
  animation: tech-grid-drift 18s linear infinite;
}

.hero-tech-map::after {
  right: 9%;
  bottom: 10%;
  width: 22%;
  height: 22%;
  border: 1px solid rgba(185, 215, 242, 0.22);
  border-left: 0;
  border-bottom: 0;
  border-radius: 0 18px 0 0;
}

.hero-tech-grid,
.tech-flow-line,
.tech-node,
.tech-node span,
.tech-node i,
.tech-node b,
.tech-signal {
  position: absolute;
  display: block;
}

.hero-tech-grid {
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at 16% 20%, rgba(255, 255, 255, 0.12), transparent 18%),
    radial-gradient(circle at 78% 25%, rgba(125, 211, 252, 0.12), transparent 16%),
    radial-gradient(circle at 34% 82%, rgba(147, 197, 253, 0.1), transparent 18%);
}

.tech-node {
  z-index: 3;
  padding: 16px;
  overflow: hidden;
  color: var(--navy);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(238, 246, 255, 0.92));
  border: 1px solid rgba(185, 215, 242, 0.82);
  border-radius: 12px;
  box-shadow: 0 18px 34px rgba(3, 15, 28, 0.18);
  animation: tech-soft-float 5.8s ease-in-out infinite;
}

.tech-label {
  left: 14px;
  top: 12px;
  z-index: 4;
  padding: 5px 9px;
  color: #12324f;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(147, 197, 253, 0.62);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}

.cad-node {
  left: 7%;
  top: 9%;
  width: 42%;
  height: 31%;
}

.control-node {
  right: 7%;
  top: 14%;
  width: 36%;
  height: 34%;
  animation-delay: 0.7s;
}

.field-node {
  left: 11%;
  bottom: 11%;
  width: 35%;
  height: 27%;
  animation-delay: 1.2s;
}

.maintenance-node {
  right: 10%;
  bottom: 9%;
  width: 36%;
  height: 29%;
  animation-delay: 1.8s;
}

.cad-sheet {
  left: 18px;
  top: 56px;
  width: 45%;
  height: 48%;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.16) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.16) 1px, transparent 1px),
    #f8fbff;
  background-size: 13px 13px;
  border: 1px solid rgba(37, 99, 168, 0.28);
  border-radius: 8px;
}

.cad-sheet i {
  left: 18%;
  top: 36%;
  width: 62%;
  height: 24%;
  border: 2px solid rgba(37, 99, 168, 0.68);
  transform: skew(-7deg);
  animation: cad-line-draw-hero 4.2s ease-in-out infinite;
}

.cad-sheet b {
  right: 12%;
  bottom: 14%;
  width: 42%;
  height: 1px;
  background: rgba(37, 99, 168, 0.46);
  box-shadow: 0 -30px 0 rgba(37, 99, 168, 0.28);
}

.cad-model {
  right: 20px;
  bottom: 22px;
  width: 34%;
  height: 44%;
  background: rgba(147, 197, 253, 0.24);
  border: 2px solid rgba(37, 99, 168, 0.62);
  border-radius: 8px;
  transform: skewY(-7deg);
}

.cad-model i {
  inset: 18% 18%;
  border: 2px solid rgba(14, 116, 144, 0.56);
  transform: skewY(12deg);
}

.cad-model b {
  right: -13px;
  top: 28%;
  width: 16px;
  height: 48%;
  background: rgba(125, 211, 252, 0.34);
  border: 1px solid rgba(37, 99, 168, 0.38);
  transform: skewY(24deg);
}

.panel-screen {
  left: 16px;
  top: 54px;
  width: 36%;
  height: 34%;
  background:
    linear-gradient(90deg, rgba(15, 42, 68, 0.18) 1px, transparent 1px),
    linear-gradient(rgba(15, 42, 68, 0.18) 1px, transparent 1px),
    #dff3ff;
  background-size: 12px 12px;
  border: 2px solid rgba(37, 99, 168, 0.48);
  border-radius: 8px;
}

.panel-screen i {
  left: 14%;
  top: 24%;
  width: 70%;
  height: 3px;
  background: rgba(37, 99, 168, 0.72);
  box-shadow: 0 14px 0 rgba(37, 99, 168, 0.46), 0 28px 0 rgba(37, 99, 168, 0.34);
}

.panel-screen b {
  right: 14%;
  bottom: 16%;
  width: 10px;
  height: 10px;
  background: #22c55e;
  border-radius: 50%;
  animation: tech-lamp-pulse 3.8s ease-in-out infinite;
}

.plc-rack {
  right: 16px;
  top: 52px;
  width: 46%;
  height: 48%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}

.plc-rack i {
  position: relative;
  min-width: 0;
  background: #f8fbff;
  border: 1px solid rgba(37, 99, 168, 0.38);
  border-radius: 5px;
}

.plc-rack i::before,
.plc-rack i::after {
  position: absolute;
  left: 20%;
  right: 20%;
  height: 3px;
  background: rgba(37, 99, 168, 0.46);
  border-radius: 99px;
  content: "";
}

.plc-rack i::before {
  top: 22%;
}

.plc-rack i::after {
  bottom: 22%;
}

.wire-path {
  left: 23%;
  right: 18%;
  bottom: 18px;
  height: 3px;
  background:
    linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.9), transparent) -80px 0 / 80px 100% no-repeat,
    rgba(37, 99, 168, 0.24);
  border-radius: 999px;
  animation: wire-signal-run 3.6s ease-in-out infinite;
}

.assembly-base {
  left: 18px;
  right: 18px;
  bottom: 24px;
  height: 42%;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.18) 0 18%, transparent 18% 28%, rgba(37, 99, 168, 0.14) 28% 46%, transparent 46% 56%, rgba(37, 99, 168, 0.16) 56% 76%, transparent 76%),
    rgba(248, 251, 255, 0.88);
  border: 1px solid rgba(37, 99, 168, 0.32);
  border-radius: 8px;
}

.assembly-base i {
  left: 18%;
  top: 18%;
  width: 20%;
  height: 42%;
  border: 2px solid rgba(37, 99, 168, 0.5);
  border-radius: 5px;
}

.assembly-base b {
  right: 18%;
  top: 20%;
  width: 26%;
  height: 36%;
  border: 2px solid rgba(14, 116, 144, 0.48);
  border-radius: 50%;
}

.field-check {
  right: 18px;
  top: 52px;
  width: 34px;
  height: 18px;
  border-left: 4px solid #22c55e;
  border-bottom: 4px solid #22c55e;
  transform: rotate(-45deg);
  animation: field-check-soft 4.4s ease-in-out infinite;
}

.gear-mark {
  left: 22px;
  bottom: 30px;
  width: 58px;
  height: 58px;
  border: 8px solid rgba(37, 99, 168, 0.5);
  border-radius: 50%;
}

.gear-mark::before,
.gear-mark::after {
  position: absolute;
  left: 50%;
  top: -13px;
  width: 10px;
  height: 84px;
  margin-left: -5px;
  background: rgba(37, 99, 168, 0.22);
  border-radius: 999px;
  content: "";
}

.gear-mark::after {
  transform: rotate(90deg);
}

.gear-mark i {
  inset: 15px;
  background: rgba(37, 99, 168, 0.42);
  border-radius: 50%;
}

.service-line {
  left: 96px;
  right: 18px;
  bottom: 52px;
  height: 42px;
  border-top: 2px solid rgba(37, 99, 168, 0.32);
  border-bottom: 2px solid rgba(37, 99, 168, 0.18);
}

.service-line i,
.service-line b {
  top: 12px;
  width: 13px;
  height: 13px;
  background: #22c55e;
  border-radius: 50%;
  animation: tech-lamp-pulse 4s ease-in-out infinite;
}

.service-line i {
  left: 18%;
}

.service-line b {
  right: 22%;
  background: #38bdf8;
  animation-delay: 1.1s;
}

.tech-flow-line {
  z-index: 2;
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.95), transparent) -70px 0 / 70px 100% no-repeat,
    rgba(185, 215, 242, 0.4);
  border-radius: 999px;
  animation: wire-signal-run 4s ease-in-out infinite;
}

.tech-flow-line::after {
  position: absolute;
  right: -2px;
  top: -4px;
  width: 10px;
  height: 10px;
  border-top: 2px solid rgba(185, 215, 242, 0.72);
  border-right: 2px solid rgba(185, 215, 242, 0.72);
  transform: rotate(45deg);
  content: "";
}

.flow-design-control {
  left: 47%;
  top: 28%;
  width: 13%;
}

.flow-control-field {
  left: 57%;
  top: 53%;
  width: 18%;
  transform: rotate(92deg);
}

.flow-field-maintenance {
  left: 43%;
  bottom: 24%;
  width: 14%;
}

.tech-signal {
  z-index: 4;
  width: 10px;
  height: 10px;
  background: #7dd3fc;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(125, 211, 252, 0.22);
  animation: status-pulse 3.8s ease-in-out infinite;
}

.signal-a {
  left: 51%;
  top: 28%;
}

.signal-b {
  right: 18%;
  top: 51%;
  animation-delay: 0.9s;
}

.signal-c {
  left: 47%;
  bottom: 24%;
  background: #22c55e;
  animation-delay: 1.6s;
}

@keyframes cad-line-draw-hero {
  0%,
  100% {
    clip-path: inset(0 100% 0 0);
    opacity: 0.6;
  }
  45%,
  70% {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}

@keyframes wire-signal-run {
  0%,
  100% {
    background-position: -80px 0, 0 0;
  }
  55% {
    background-position: 120% 0, 0 0;
  }
}

@keyframes tech-soft-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -6px, 0);
  }
}

@keyframes tech-lamp-pulse {
  0%,
  100% {
    opacity: 0.58;
  }
  50% {
    opacity: 1;
  }
}

@keyframes field-check-soft {
  0%,
  100% {
    opacity: 0.62;
    transform: rotate(-45deg) scale(0.96);
  }
  50% {
    opacity: 1;
    transform: rotate(-45deg) scale(1);
  }
}

@keyframes tech-grid-drift {
  0% {
    background-position: 0 0, 0 0;
  }
  100% {
    background-position: 34px 34px, 34px 34px;
  }
}

.visual-caption {
  margin-top: 16px;
  padding: 16px;
  background: #f7fbff;
  border: 1px solid #d7e7f8;
  border-radius: 8px;
}

.hero-visual-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  align-items: center;
  padding-inline: 4px;
}

.visual-note {
  flex-basis: 100%;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.hero-visual-meta span {
  display: inline-flex;
  padding: 5px 9px;
  color: var(--navy);
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid #d7e7f8;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  backdrop-filter: blur(10px);
}

.hero-concept-stage {
  position: relative;
  min-width: 0;
}

.hero-concept[hidden] {
  display: none !important;
}

.hero-concept:not([hidden]) {
  display: block;
}

.concept-ribbon {
  position: absolute;
  left: 50%;
  top: 24px;
  z-index: 5;
  padding: 7px 12px;
  color: #12324f;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.58);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  transform: translateX(-50%);
}

.panel-node {
  border-color: rgba(147, 197, 253, 0.86);
}

.panel-node::after {
  position: absolute;
  right: 14px;
  top: 14px;
  width: 9px;
  height: 9px;
  background: var(--green);
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(52, 168, 83, 0.12);
  content: "";
  animation: hero-panel-lamp 4.8s ease-in-out infinite;
}

.panel-status {
  left: 14px;
  bottom: 12px;
  z-index: 4;
  padding: 4px 8px;
  color: #1e4f80;
  background: rgba(234, 242, 249, 0.88);
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
}

.panel-connector {
  position: absolute;
  z-index: 2;
  display: block;
  pointer-events: none;
  border-color: rgba(185, 215, 242, 0.34);
}

.connector-main {
  left: 18%;
  top: 51%;
  width: 64%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(185, 215, 242, 0.45), transparent);
}

.connector-vertical {
  left: 50%;
  top: 20%;
  width: 1px;
  height: 62%;
  background: linear-gradient(180deg, transparent, rgba(185, 215, 242, 0.4), transparent);
}

.hero-concept-placeholder {
  min-height: clamp(540px, 68vh, 660px);
  padding: clamp(28px, 5vw, 46px);
  overflow: hidden;
  color: #eaf2f9;
  background:
    linear-gradient(90deg, rgba(185, 215, 242, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(185, 215, 242, 0.08) 1px, transparent 1px),
    linear-gradient(135deg, rgba(11, 31, 51, 0.98), rgba(30, 82, 138, 0.92)),
    #0f2a44;
  background-size: 34px 34px, 34px 34px, auto, auto;
  border: 1px solid rgba(185, 215, 242, 0.52);
  border-radius: 18px;
}

.placeholder-label {
  display: inline-flex;
  margin-bottom: 12px;
  padding: 5px 10px;
  color: #12324f;
  background: rgba(255, 255, 255, 0.86);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.hero-concept-placeholder h3 {
  max-width: 360px;
  margin-bottom: 10px;
  color: #fff;
  font-size: clamp(24px, 3vw, 34px);
}

.hero-concept-placeholder p {
  max-width: 420px;
  margin: 0;
  color: #d9e8f5;
  line-height: 1.8;
}

.placeholder-diagram {
  position: absolute;
  right: 8%;
  bottom: 10%;
  width: 54%;
  height: 44%;
  min-width: 260px;
  border: 1px solid rgba(185, 215, 242, 0.32);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.08);
}

.placeholder-diagram span,
.placeholder-diagram i {
  position: absolute;
  display: block;
  border-radius: 8px;
}

.placeholder-diagram span {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.52);
}

.placeholder-diagram span:nth-child(1) {
  left: 12%;
  top: 18%;
  width: 38%;
  height: 28%;
}

.placeholder-diagram span:nth-child(2) {
  right: 12%;
  top: 28%;
  width: 30%;
  height: 34%;
}

.placeholder-diagram span:nth-child(3) {
  left: 20%;
  bottom: 16%;
  width: 54%;
  height: 14%;
  background: rgba(125, 211, 252, 0.78);
}

.placeholder-diagram i {
  left: 22%;
  top: 58%;
  width: 48%;
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.95), transparent) -70px 0 / 70px 100% no-repeat,
    rgba(185, 215, 242, 0.42);
  animation: wire-signal-run 4.4s ease-in-out infinite;
}

.machine-diagram span:nth-child(1) {
  left: 14%;
  top: 22%;
  width: 56%;
  height: 42%;
}

.machine-diagram span:nth-child(2) {
  right: 12%;
  top: 18%;
  width: 20%;
  height: 54%;
}

.machine-diagram span:nth-child(3) {
  left: 18%;
  bottom: 14%;
  width: 68%;
  height: 12%;
}

.hero-field-concept {
  position: relative;
  min-height: clamp(540px, 68vh, 660px);
  overflow: hidden;
  color: #eaf2f9;
  background:
    radial-gradient(circle at 16% 18%, rgba(255, 255, 255, 0.13), transparent 22%),
    radial-gradient(circle at 82% 74%, rgba(125, 211, 252, 0.12), transparent 24%),
    linear-gradient(135deg, rgba(12, 34, 56, 0.98), rgba(31, 78, 128, 0.9)),
    #0f2a44;
  border: 1px solid rgba(185, 215, 242, 0.52);
  border-radius: 18px;
  isolation: isolate;
}

.hero-field-concept span,
.hero-field-concept i,
.hero-field-concept b {
  position: absolute;
  display: block;
}

.field-depth-grid {
  inset: 7%;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(185, 215, 242, 0.07) 1px, transparent 1px),
    linear-gradient(rgba(185, 215, 242, 0.07) 1px, transparent 1px);
  background-size: 32px 32px;
  border: 1px solid rgba(185, 215, 242, 0.14);
  border-radius: 18px;
}

.field-silhouette {
  z-index: 1;
  border: 1px solid rgba(185, 215, 242, 0.2);
  background: rgba(255, 255, 255, 0.07);
}

.field-silhouette.bench {
  left: 11%;
  bottom: 16%;
  width: 74%;
  height: 11%;
  border-radius: 10px;
}

.field-silhouette.frame {
  left: 16%;
  top: 24%;
  width: 46%;
  height: 42%;
  border-radius: 14px;
}

.field-silhouette.frame::before,
.field-silhouette.frame::after,
.field-silhouette.pipe::before,
.field-silhouette.cabinet::before {
  position: absolute;
  display: block;
  content: "";
}

.field-silhouette.frame::before {
  left: 12%;
  right: 12%;
  top: 28%;
  height: 1px;
  background: rgba(185, 215, 242, 0.26);
}

.field-silhouette.frame::after {
  left: 50%;
  top: 10%;
  bottom: 10%;
  width: 1px;
  background: rgba(185, 215, 242, 0.24);
}

.field-silhouette.pipe {
  left: 8%;
  top: 18%;
  width: 76%;
  height: 2px;
  background: rgba(185, 215, 242, 0.18);
  border: 0;
}

.field-silhouette.pipe::before {
  right: 0;
  top: -1px;
  width: 24%;
  height: 42px;
  border-top: 2px solid rgba(185, 215, 242, 0.18);
  border-right: 2px solid rgba(185, 215, 242, 0.18);
  border-radius: 0 12px 0 0;
}

.field-silhouette.cabinet {
  right: 11%;
  top: 30%;
  width: 24%;
  height: 34%;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.1);
}

.field-silhouette.cabinet::before {
  left: 18%;
  right: 18%;
  top: 20%;
  height: 32%;
  border: 1px solid rgba(185, 215, 242, 0.24);
  border-radius: 8px;
}

.field-label {
  z-index: 5;
  padding: 5px 9px;
  color: #12324f;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(147, 197, 253, 0.58);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
}

.field-check-label {
  left: 12%;
  top: 12%;
}

.field-drawing-label {
  left: 17%;
  top: 31%;
}

.field-control-label {
  right: 14%;
  top: 24%;
}

.field-maintenance-label {
  right: 12%;
  bottom: 20%;
}

.field-cad-overlay {
  left: 14%;
  top: 39%;
  z-index: 3;
  width: 42%;
  height: 31%;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.12) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.12) 1px, transparent 1px),
    rgba(255, 255, 255, 0.9);
  background-size: 14px 14px;
  border: 1px solid rgba(147, 197, 253, 0.68);
  border-radius: 12px;
  box-shadow: 0 18px 32px rgba(3, 15, 28, 0.16);
}

.field-cad-overlay i {
  left: 15%;
  width: 62%;
  height: 2px;
  background: var(--blue);
  border-radius: 999px;
  transform-origin: left center;
  animation: cad-line-draw 5.4s ease-in-out infinite;
}

.field-cad-overlay i:nth-child(1) {
  top: 30%;
  width: 54%;
}

.field-cad-overlay i:nth-child(2) {
  top: 48%;
  width: 72%;
  animation-delay: 0.35s;
}

.field-cad-overlay i:nth-child(3) {
  top: 66%;
  width: 44%;
  animation-delay: 0.7s;
}

.field-cad-overlay b {
  right: 12%;
  bottom: 18%;
  width: 24%;
  height: 30%;
  border: 2px solid rgba(37, 99, 168, 0.55);
  border-top-width: 5px;
  border-radius: 8px;
  transform: skew(-10deg);
}

.field-control-panel {
  right: 12%;
  top: 34%;
  z-index: 4;
  width: 28%;
  height: 29%;
  background: rgba(255, 255, 255, 0.93);
  border: 1px solid rgba(147, 197, 253, 0.7);
  border-radius: 13px;
  box-shadow: 0 18px 32px rgba(3, 15, 28, 0.18);
}

.field-control-panel i {
  top: 22%;
  width: 10px;
  height: 10px;
  background: var(--green);
  border-radius: 50%;
  animation: field-check-pulse 4.6s ease-in-out infinite;
}

.field-control-panel i:nth-child(1) {
  left: 16%;
}

.field-control-panel i:nth-child(2) {
  left: 32%;
  animation-delay: 0.6s;
}

.field-control-panel i:nth-child(3) {
  left: 48%;
  background: var(--cyan);
  animation-delay: 1.1s;
}

.field-control-panel b {
  left: 16%;
  right: 16%;
  bottom: 20%;
  height: 36%;
  background:
    linear-gradient(rgba(37, 99, 168, 0.22) 2px, transparent 2px) 0 8px / 100% 12px repeat-y,
    #eaf2f9;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 8px;
}

.field-wire {
  z-index: 3;
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.95), transparent) -70px 0 / 70px 100% no-repeat,
    rgba(185, 215, 242, 0.45);
  border-radius: 999px;
  animation: wire-signal-run 4.8s ease-in-out infinite;
}

.field-wire-a {
  left: 51%;
  top: 51%;
  width: 24%;
}

.field-wire-b {
  right: 21%;
  bottom: 32%;
  width: 25%;
  transform: rotate(28deg);
  animation-delay: 0.8s;
}

.field-signal-dot {
  left: 58%;
  top: 50%;
  z-index: 5;
  width: 9px;
  height: 9px;
  background: var(--cyan);
  border-radius: 50%;
  box-shadow: 0 0 0 7px rgba(125, 211, 252, 0.12);
  animation: field-signal-travel 5s ease-in-out infinite;
}

.field-inspection-card {
  right: 13%;
  bottom: 18%;
  z-index: 4;
  width: 29%;
  height: 19%;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(147, 197, 253, 0.7);
  border-radius: 12px;
  box-shadow: 0 16px 28px rgba(3, 15, 28, 0.16);
}

.field-inspection-card i {
  left: 13%;
  top: 27%;
  width: 28px;
  height: 18px;
  border-left: 4px solid var(--green);
  border-bottom: 4px solid var(--green);
  transform: rotate(-45deg);
  animation: field-check-pulse 4.8s ease-in-out infinite;
}

.field-inspection-card b {
  right: 14%;
  height: 2px;
  background: rgba(37, 99, 168, 0.32);
  border-radius: 999px;
}

.field-inspection-card b:nth-of-type(1) {
  top: 34%;
  width: 42%;
}

.field-inspection-card b:nth-of-type(2) {
  top: 55%;
  width: 34%;
}

.field-check-mark {
  left: 62%;
  bottom: 21%;
  z-index: 5;
  width: 24px;
  height: 14px;
  border-left: 4px solid var(--green);
  border-bottom: 4px solid var(--green);
  transform: rotate(-45deg);
  opacity: 0.72;
  animation: field-check-pulse 5.2s ease-in-out infinite;
}

.field-status {
  left: 12%;
  bottom: 9%;
  z-index: 5;
  padding: 8px 12px;
  color: #12324f;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(147, 197, 253, 0.58);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.machine-concept {
  position: relative;
  min-height: clamp(540px, 68vh, 660px);
  overflow: hidden;
  color: #eaf2f9;
  background:
    radial-gradient(circle at 50% 46%, rgba(125, 211, 252, 0.15), transparent 28%),
    radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.12), transparent 20%),
    linear-gradient(135deg, rgba(12, 34, 56, 0.98), rgba(29, 74, 122, 0.9)),
    #0f2a44;
  border: 1px solid rgba(185, 215, 242, 0.52);
  border-radius: 18px;
  isolation: isolate;
}

.machine-concept span,
.machine-concept i,
.machine-concept b {
  position: absolute;
  display: block;
}

.machine-grid {
  inset: 7%;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(185, 215, 242, 0.07) 1px, transparent 1px),
    linear-gradient(rgba(185, 215, 242, 0.07) 1px, transparent 1px);
  background-size: 34px 34px;
  border: 1px solid rgba(185, 215, 242, 0.14);
  border-radius: 18px;
}

.machine-ribbon,
.machine-status {
  z-index: 8;
  color: #12324f;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.58);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.machine-ribbon {
  left: 50%;
  top: 22px;
  padding: 7px 12px;
  transform: translateX(-50%);
}

.machine-status {
  left: 50%;
  bottom: 9%;
  max-width: 76%;
  padding: 8px 13px;
  text-align: center;
  transform: translateX(-50%);
}

.machine-hub {
  left: 50%;
  top: 50%;
  z-index: 4;
  width: 42%;
  height: 38%;
  min-width: 245px;
  max-width: 330px;
  transform: translate(-50%, -48%);
  filter: drop-shadow(0 24px 32px rgba(3, 15, 28, 0.24));
  animation: machine-soft-focus 5.2s ease-in-out infinite;
}

.machine-frame {
  left: 8%;
  top: 11%;
  width: 67%;
  height: 53%;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.7);
  border-radius: 16px;
}

.machine-frame::before,
.machine-frame::after,
.machine-conveyor::before,
.machine-control-unit::after,
.machine-carriage::before,
.machine-base::before {
  position: absolute;
  display: block;
  content: "";
}

.machine-frame::before {
  left: 13%;
  right: 13%;
  top: 34%;
  height: 2px;
  background: rgba(37, 99, 168, 0.22);
  border-radius: 999px;
}

.machine-frame::after {
  left: 18%;
  bottom: 18%;
  width: 32%;
  height: 24%;
  border: 2px solid rgba(37, 99, 168, 0.44);
  border-top-width: 5px;
  border-radius: 8px;
  transform: skew(-10deg);
}

.machine-conveyor {
  left: 4%;
  bottom: 24%;
  width: 86%;
  height: 13%;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.16) 50%, transparent 50%) 0 0 / 30px 100% repeat-x,
    rgba(255, 255, 255, 0.74);
  border: 1px solid rgba(147, 197, 253, 0.6);
  border-radius: 999px;
  animation: conveyor-flow 5s linear infinite;
}

.machine-conveyor::before {
  left: 9%;
  right: 9%;
  top: 50%;
  height: 2px;
  background: rgba(37, 99, 168, 0.28);
  border-radius: 999px;
}

.machine-control-unit {
  right: 4%;
  top: 18%;
  width: 27%;
  height: 56%;
  background: rgba(234, 242, 249, 0.95);
  border: 1px solid rgba(147, 197, 253, 0.72);
  border-radius: 14px;
}

.machine-control-unit i {
  top: 17%;
  width: 10px;
  height: 10px;
  background: var(--green);
  border-radius: 50%;
  animation: machine-point-glow 4.8s ease-in-out infinite;
}

.machine-control-unit i:nth-child(1) {
  left: 22%;
}

.machine-control-unit i:nth-child(2) {
  left: 46%;
  background: var(--cyan);
  animation-delay: 0.8s;
}

.machine-control-unit b {
  left: 18%;
  right: 18%;
  bottom: 18%;
  height: 42%;
  background:
    linear-gradient(rgba(37, 99, 168, 0.22) 2px, transparent 2px) 0 8px / 100% 12px repeat-y,
    #fff;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 8px;
}

.machine-control-unit::after {
  left: 18%;
  right: 18%;
  top: 39%;
  height: 2px;
  background: rgba(37, 99, 168, 0.2);
}

.machine-carriage {
  left: 36%;
  bottom: 38%;
  width: 16%;
  height: 20%;
  background: rgba(125, 211, 252, 0.78);
  border: 1px solid rgba(37, 99, 168, 0.35);
  border-radius: 10px;
  animation: machine-carriage-settle 4.8s ease-in-out infinite;
}

.machine-carriage::before {
  left: 50%;
  top: -34%;
  width: 2px;
  height: 34%;
  background: rgba(37, 99, 168, 0.36);
}

.machine-lamp {
  left: 68%;
  top: 8%;
  width: 13px;
  height: 13px;
  background: var(--green);
  border-radius: 50%;
  box-shadow: 0 0 0 8px rgba(52, 168, 83, 0.12);
  animation: machine-point-glow 4.8s ease-in-out infinite;
}

.machine-base {
  left: 16%;
  bottom: 14%;
  width: 66%;
  height: 10%;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(147, 197, 253, 0.62);
  border-radius: 9px;
}

.machine-base::before {
  left: 12%;
  right: 12%;
  top: 50%;
  height: 2px;
  background: rgba(37, 99, 168, 0.22);
}

.machine-node {
  z-index: 5;
  width: 27%;
  min-width: 132px;
  height: 20%;
  min-height: 94px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.7);
  border-radius: 14px;
  box-shadow: 0 16px 28px rgba(3, 15, 28, 0.14);
}

.machine-node-label {
  left: 12px;
  top: 10px;
  z-index: 3;
  color: #12324f;
  font-size: 11px;
  font-weight: 900;
}

.machine-design {
  left: 10%;
  top: 15%;
}

.machine-control {
  right: 10%;
  top: 15%;
}

.machine-assembly {
  left: 10%;
  bottom: 16%;
}

.machine-maintenance {
  right: 10%;
  bottom: 16%;
}

.machine-cad-card,
.machine-plc-card,
.machine-adjust-card,
.machine-service-card {
  left: 12px;
  right: 12px;
  bottom: 12px;
  height: 48%;
}

.machine-cad-card {
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.12) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.12) 1px, transparent 1px),
    #eef6fd;
  background-size: 10px 10px;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 8px;
}

.machine-cad-card i {
  left: 13%;
  width: 58%;
  height: 2px;
  background: var(--blue);
  border-radius: 999px;
  transform-origin: left center;
  animation: cad-line-draw 5.4s ease-in-out infinite;
}

.machine-cad-card i:nth-child(1) {
  top: 34%;
}

.machine-cad-card i:nth-child(2) {
  top: 58%;
  width: 43%;
  animation-delay: 0.45s;
}

.machine-cad-card b {
  right: 12%;
  bottom: 18%;
  width: 20%;
  height: 46%;
  border: 2px solid rgba(37, 99, 168, 0.45);
  border-radius: 7px;
  transform: skew(-9deg);
}

.machine-plc-card i {
  top: 18%;
  width: 16%;
  height: 52%;
  background: #eaf2f9;
  border: 1px solid rgba(37, 99, 168, 0.2);
  border-radius: 6px;
}

.machine-plc-card i:nth-child(1) {
  left: 5%;
}

.machine-plc-card i:nth-child(2) {
  left: 25%;
}

.machine-plc-card i:nth-child(3) {
  left: 45%;
}

.machine-plc-card b {
  right: 6%;
  top: 20%;
  width: 31%;
  height: 46%;
  background:
    linear-gradient(rgba(37, 99, 168, 0.18) 2px, transparent 2px) 0 7px / 100% 10px repeat-y,
    #eef6fd;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 7px;
}

.machine-adjust-card i,
.machine-service-card i {
  left: 12%;
  top: 32%;
  width: 30px;
  height: 18px;
  border-left: 4px solid var(--green);
  border-bottom: 4px solid var(--green);
  transform: rotate(-45deg);
  animation: field-check-pulse 4.8s ease-in-out infinite;
}

.machine-adjust-card b {
  right: 10%;
  top: 34%;
  width: 46%;
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.95), transparent) -80px 0 / 70px 100% no-repeat,
    rgba(37, 99, 168, 0.28);
  border-radius: 999px;
  animation: wire-signal-run 4.7s ease-in-out infinite;
}

.machine-service-card b {
  right: 10%;
  top: 22%;
  width: 38%;
  height: 48%;
  border: 2px solid rgba(37, 99, 168, 0.32);
  border-radius: 50%;
}

.machine-service-card b::before,
.machine-service-card b::after {
  position: absolute;
  left: 50%;
  top: -6px;
  width: 2px;
  height: calc(100% + 12px);
  background: rgba(37, 99, 168, 0.24);
  content: "";
}

.machine-service-card b::after {
  transform: rotate(90deg);
}

.machine-link {
  z-index: 2;
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.95), transparent) -80px 0 / 70px 100% no-repeat,
    rgba(185, 215, 242, 0.34);
  border-radius: 999px;
  transform-origin: center;
  animation: wire-signal-run 5s ease-in-out infinite;
}

.machine-link-design {
  left: 31%;
  top: 34%;
  width: 22%;
  transform: rotate(24deg);
}

.machine-link-control {
  right: 31%;
  top: 34%;
  width: 22%;
  transform: rotate(-24deg);
  animation-delay: 0.6s;
}

.machine-link-assembly {
  left: 30%;
  bottom: 33%;
  width: 23%;
  transform: rotate(-22deg);
  animation-delay: 1.2s;
}

.machine-link-maintenance {
  right: 30%;
  bottom: 33%;
  width: 23%;
  transform: rotate(22deg);
  animation-delay: 1.8s;
}

.machine-signal {
  z-index: 6;
  width: 9px;
  height: 9px;
  background: var(--cyan);
  border-radius: 50%;
  box-shadow: 0 0 0 7px rgba(125, 211, 252, 0.12);
  animation: machine-point-glow 4.8s ease-in-out infinite;
}

.signal-design {
  left: 40%;
  top: 35%;
}

.signal-control {
  right: 40%;
  top: 35%;
  animation-delay: 0.7s;
}

.signal-assembly {
  left: 40%;
  bottom: 35%;
  background: var(--green);
  animation-delay: 1.4s;
}

.signal-maintenance {
  right: 40%;
  bottom: 35%;
  background: var(--green);
  animation-delay: 2.1s;
}

.main-visual-concept {
  position: relative;
  min-height: clamp(600px, 72vh, 700px);
  overflow: hidden;
  color: #eaf2f9;
  background:
    radial-gradient(circle at 42% 42%, rgba(125, 211, 252, 0.17), transparent 30%),
    radial-gradient(circle at 74% 26%, rgba(255, 255, 255, 0.13), transparent 22%),
    linear-gradient(135deg, rgba(12, 34, 56, 0.98), rgba(31, 86, 145, 0.9)),
    #0f2a44;
  border: 1px solid rgba(185, 215, 242, 0.52);
  border-radius: 18px;
  isolation: isolate;
}

.main-visual-concept span,
.main-visual-concept i,
.main-visual-concept b {
  position: absolute;
  display: block;
}

.main-visual-bg {
  inset: 5%;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(185, 215, 242, 0.07) 1px, transparent 1px),
    linear-gradient(rgba(185, 215, 242, 0.07) 1px, transparent 1px);
  background-size: 36px 36px;
  border: 1px solid rgba(185, 215, 242, 0.14);
  border-radius: 20px;
}

.main-visual-ribbon,
.main-visual-status {
  z-index: 8;
  color: #12324f;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(147, 197, 253, 0.58);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.main-visual-ribbon {
  left: 50%;
  top: 18px;
  padding: 7px 12px;
  transform: translateX(-50%);
}

.main-visual-status {
  left: 50%;
  bottom: 7%;
  max-width: 82%;
  padding: 8px 14px;
  text-align: center;
  transform: translateX(-50%);
}

.main-visual-equipment {
  left: 50%;
  top: 51%;
  z-index: 4;
  width: 70%;
  height: 52%;
  max-width: 520px;
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 28px 36px rgba(3, 15, 28, 0.24));
  animation: main-visual-breathe 5.8s ease-in-out infinite;
}

.mv-frame {
  left: 9%;
  top: 10%;
  width: 70%;
  height: 52%;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(147, 197, 253, 0.72);
  border-radius: 18px;
}

.mv-frame::before,
.mv-frame::after,
.mv-worktable::before,
.mv-conveyor::before,
.mv-unit::before,
.mv-control-box::after,
.mv-touch-panel::before,
.mv-carriage::before,
.mv-part::before {
  position: absolute;
  display: block;
  content: "";
}

.mv-frame::before {
  left: 9%;
  right: 10%;
  top: 26%;
  height: 2px;
  background: rgba(37, 99, 168, 0.22);
  border-radius: 999px;
}

.mv-frame::after {
  left: 17%;
  bottom: 18%;
  width: 31%;
  height: 27%;
  border: 2px solid rgba(37, 99, 168, 0.46);
  border-top-width: 6px;
  border-radius: 10px;
  transform: skew(-10deg);
}

.mv-worktable {
  left: 5%;
  bottom: 24%;
  width: 86%;
  height: 13%;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(147, 197, 253, 0.62);
  border-radius: 12px;
}

.mv-worktable::before {
  left: 10%;
  right: 10%;
  top: 50%;
  height: 2px;
  background: rgba(37, 99, 168, 0.24);
  border-radius: 999px;
}

.mv-conveyor {
  left: 4%;
  bottom: 16%;
  width: 72%;
  height: 11%;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.15) 50%, transparent 50%) 0 0 / 32px 100% repeat-x,
    rgba(234, 242, 249, 0.86);
  border: 1px solid rgba(147, 197, 253, 0.62);
  border-radius: 999px;
  animation: conveyor-flow 5.6s linear infinite;
}

.mv-conveyor::before {
  left: 10%;
  right: 10%;
  top: 50%;
  height: 2px;
  background: rgba(37, 99, 168, 0.25);
}

.mv-unit {
  right: 9%;
  top: 19%;
  width: 22%;
  height: 57%;
  background: rgba(234, 242, 249, 0.95);
  border: 1px solid rgba(147, 197, 253, 0.72);
  border-radius: 16px;
}

.mv-unit::before {
  left: 16%;
  right: 16%;
  top: 18%;
  height: 40%;
  background:
    linear-gradient(rgba(37, 99, 168, 0.2) 2px, transparent 2px) 0 8px / 100% 13px repeat-y,
    #fff;
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 9px;
}

.mv-control-box {
  right: 7%;
  top: 7%;
  width: 28%;
  height: 27%;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(147, 197, 253, 0.7);
  border-radius: 15px;
}

.mv-control-box i {
  top: 22%;
  width: 11px;
  height: 11px;
  background: var(--green);
  border-radius: 50%;
  animation: machine-point-glow 4.6s ease-in-out infinite;
}

.mv-control-box i:nth-child(1) {
  left: 17%;
}

.mv-control-box i:nth-child(2) {
  left: 36%;
  background: var(--cyan);
  animation-delay: 0.8s;
}

.mv-control-box b {
  left: 17%;
  right: 17%;
  bottom: 20%;
  height: 32%;
  background:
    linear-gradient(rgba(37, 99, 168, 0.2) 2px, transparent 2px) 0 7px / 100% 11px repeat-y,
    #eef6fd;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 8px;
}

.mv-control-box::after {
  right: 13%;
  top: 22%;
  width: 12%;
  height: 11px;
  background: var(--blue);
  border-radius: 999px;
  opacity: 0.36;
}

.mv-touch-panel {
  right: 20%;
  bottom: 23%;
  width: 20%;
  height: 21%;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.66);
  border-radius: 12px;
}

.mv-touch-panel::before {
  left: 16%;
  right: 16%;
  top: 24%;
  height: 45%;
  background:
    linear-gradient(rgba(37, 99, 168, 0.19) 2px, transparent 2px) 0 8px / 100% 12px repeat-y,
    #eef6fd;
  border-radius: 8px;
}

.mv-touch-panel i {
  left: 16%;
  bottom: 12%;
  width: 11px;
  height: 11px;
  background: var(--green);
  border-radius: 50%;
  animation: machine-point-glow 4.7s ease-in-out infinite;
}

.mv-touch-panel b {
  left: 38%;
  bottom: 16%;
  width: 11px;
  height: 11px;
  background: var(--cyan);
  border-radius: 50%;
  animation: machine-point-glow 4.7s ease-in-out infinite;
  animation-delay: 0.7s;
}

.mv-carriage {
  left: 45%;
  bottom: 35%;
  width: 16%;
  height: 23%;
  background: rgba(125, 211, 252, 0.78);
  border: 1px solid rgba(37, 99, 168, 0.36);
  border-radius: 13px;
  animation: main-visual-carriage 5.2s ease-in-out infinite;
}

.mv-carriage::before {
  left: 50%;
  top: -42%;
  width: 2px;
  height: 42%;
  background: rgba(37, 99, 168, 0.34);
}

.mv-part {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(147, 197, 253, 0.62);
  border-radius: 10px;
}

.mv-part::before {
  inset: 28%;
  border: 2px solid rgba(37, 99, 168, 0.42);
  border-radius: 50%;
}

.mv-part-a {
  left: 27%;
  bottom: 38%;
  width: 12%;
  height: 17%;
}

.mv-part-b {
  left: 60%;
  top: 34%;
  width: 10%;
  height: 15%;
}

.mv-lamp {
  left: 72%;
  top: 13%;
  width: 14px;
  height: 14px;
  background: var(--green);
  border-radius: 50%;
  box-shadow: 0 0 0 8px rgba(52, 168, 83, 0.12);
  animation: machine-point-glow 4.5s ease-in-out infinite;
}

.main-visual-cad,
.main-visual-control,
.main-visual-service,
.main-visual-assembly {
  z-index: 5;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(147, 197, 253, 0.68);
  border-radius: 14px;
  box-shadow: 0 16px 28px rgba(3, 15, 28, 0.12);
}

.mv-label {
  left: 12px;
  top: 10px;
  z-index: 4;
  color: #12324f;
  font-size: 11px;
  font-weight: 900;
}

.main-visual-cad {
  left: 8%;
  top: 16%;
  width: 31%;
  height: 22%;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.11) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.11) 1px, transparent 1px),
    rgba(255, 255, 255, 0.9);
  background-size: 11px 11px;
}

.main-visual-cad i {
  left: 13%;
  width: 58%;
  height: 2px;
  background: var(--blue);
  border-radius: 999px;
  transform-origin: left center;
  animation: cad-line-draw 5.4s ease-in-out infinite;
}

.main-visual-cad i:nth-of-type(1) {
  top: 43%;
}

.main-visual-cad i:nth-of-type(2) {
  top: 58%;
  width: 44%;
  animation-delay: 0.35s;
}

.main-visual-cad i:nth-of-type(3) {
  top: 73%;
  width: 65%;
  animation-delay: 0.7s;
}

.main-visual-cad b {
  right: 11%;
  bottom: 18%;
  width: 19%;
  height: 34%;
  border: 2px solid rgba(37, 99, 168, 0.46);
  border-radius: 8px;
  transform: skew(-9deg);
}

.main-visual-control {
  right: 8%;
  top: 17%;
  width: 27%;
  height: 22%;
}

.main-visual-control i {
  top: 42%;
  width: 15%;
  height: 34%;
  background: #eef6fd;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 7px;
}

.main-visual-control i:nth-of-type(1) {
  left: 12%;
}

.main-visual-control i:nth-of-type(2) {
  left: 30%;
}

.main-visual-control i:nth-of-type(3) {
  left: 48%;
}

.main-visual-control b {
  right: 9%;
  top: 45%;
  width: 26%;
  height: 30%;
  background:
    linear-gradient(rgba(37, 99, 168, 0.18) 2px, transparent 2px) 0 6px / 100% 10px repeat-y,
    #eef6fd;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 7px;
}

.main-visual-service {
  right: 7%;
  bottom: 16%;
  width: 30%;
  height: 20%;
}

.main-visual-service i {
  left: 12%;
  top: 42%;
  width: 30px;
  height: 18px;
  border-left: 4px solid var(--green);
  border-bottom: 4px solid var(--green);
  transform: rotate(-45deg);
  animation: field-check-pulse 4.8s ease-in-out infinite;
}

.main-visual-service b:nth-of-type(1) {
  right: 12%;
  top: 42%;
  width: 38%;
  height: 2px;
  background: rgba(37, 99, 168, 0.26);
  border-radius: 999px;
}

.main-visual-service b:nth-of-type(2) {
  right: 20%;
  bottom: 22%;
  width: 28%;
  height: 30%;
  border: 2px solid rgba(37, 99, 168, 0.32);
  border-radius: 50%;
}

.main-visual-assembly {
  left: 8%;
  bottom: 17%;
  width: 29%;
  height: 19%;
}

.main-visual-assembly i {
  left: 12%;
  top: 43%;
  width: 29px;
  height: 18px;
  border-left: 4px solid var(--green);
  border-bottom: 4px solid var(--green);
  transform: rotate(-45deg);
  animation: field-check-pulse 4.8s ease-in-out infinite;
}

.main-visual-assembly b {
  right: 12%;
  top: 48%;
  width: 45%;
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.95), transparent) -80px 0 / 70px 100% no-repeat,
    rgba(37, 99, 168, 0.28);
  border-radius: 999px;
  animation: wire-signal-run 4.8s ease-in-out infinite;
}

.mv-wire {
  z-index: 3;
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(125, 211, 252, 0.95), transparent) -80px 0 / 70px 100% no-repeat,
    rgba(185, 215, 242, 0.36);
  border-radius: 999px;
  transform-origin: center;
  animation: wire-signal-run 5s ease-in-out infinite;
}

.mv-wire-cad {
  left: 34%;
  top: 38%;
  width: 23%;
  transform: rotate(16deg);
}

.mv-wire-control {
  right: 29%;
  top: 38%;
  width: 22%;
  transform: rotate(-14deg);
  animation-delay: 0.7s;
}

.mv-wire-service {
  right: 30%;
  bottom: 32%;
  width: 21%;
  transform: rotate(17deg);
  animation-delay: 1.4s;
}

.mv-wire-assembly {
  left: 33%;
  bottom: 32%;
  width: 22%;
  transform: rotate(-16deg);
  animation-delay: 2.1s;
}

.mv-signal {
  z-index: 7;
  width: 9px;
  height: 9px;
  background: var(--cyan);
  border-radius: 50%;
  box-shadow: 0 0 0 7px rgba(125, 211, 252, 0.12);
  animation: machine-point-glow 4.8s ease-in-out infinite;
}

.mv-signal-a {
  left: 46%;
  top: 39%;
}

.mv-signal-b {
  right: 39%;
  top: 38%;
  animation-delay: 0.8s;
}

.mv-signal-c {
  right: 41%;
  bottom: 34%;
  background: var(--green);
  animation-delay: 1.6s;
}

@keyframes field-signal-travel {
  0%,
  100% {
    opacity: 0.42;
    transform: translate3d(-18px, 0, 0);
  }

  45%,
  60% {
    opacity: 1;
    transform: translate3d(54px, 0, 0);
  }
}

@keyframes machine-soft-focus {
  0%,
  100% {
    transform: translate(-50%, -48%) scale(1);
  }

  50% {
    transform: translate(-50%, -50%) scale(1.015);
  }
}

@keyframes main-visual-breathe {
  0%,
  100% {
    transform: translate(-50%, -50%) scale(1);
  }

  50% {
    transform: translate(-50%, -51.5%) scale(1.012);
  }
}

@keyframes main-visual-carriage {
  0%,
  100% {
    transform: translate3d(-5px, 0, 0);
  }

  50% {
    transform: translate3d(7px, 0, 0);
  }
}

@keyframes machine-point-glow {
  0%,
  100% {
    opacity: 0.55;
    transform: scale(0.9);
  }

  44%,
  62% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes machine-carriage-settle {
  0%,
  100% {
    transform: translate3d(-4px, 0, 0);
  }

  50% {
    transform: translate3d(6px, 0, 0);
  }
}

@keyframes field-check-pulse {
  0%,
  100% {
    opacity: 0.5;
  }

  45%,
  62% {
    opacity: 1;
  }
}

@keyframes hero-panel-lamp {
  0%,
  100% {
    opacity: 0.58;
    transform: scale(0.92);
  }

  45%,
  60% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes hero-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -8px, 0);
  }
}

@keyframes hero-float-alt {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, 7px, 0);
  }
}

@keyframes arm-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-9deg);
  }
  50% {
    transform: translate3d(0, -7px, 0) rotate(-7deg);
  }
}

@keyframes tool-check {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-8deg);
  }
  50% {
    transform: translate3d(4px, -5px, 0) rotate(-5deg);
  }
}

@keyframes flow-dot {
  0%,
  100% {
    transform: translateX(0);
    opacity: 0.7;
  }
  50% {
    transform: translateX(34px);
    opacity: 1;
  }
}

@keyframes status-pulse {
  0%,
  100% {
    opacity: 0.62;
    box-shadow: 0 0 0 0 rgba(103, 232, 249, 0.2);
  }
  50% {
    opacity: 1;
    box-shadow: 0 0 0 7px rgba(103, 232, 249, 0.08);
  }
}

@keyframes grid-drift {
  0% {
    background-position: 0 0, 0 0;
  }
  100% {
    background-position: 28px 28px, 28px 28px;
  }
}

@keyframes machine-status {
  0%,
  100% {
    opacity: 0.48;
    transform: translate3d(0, 0, 0);
  }
  50% {
    opacity: 1;
    transform: translate3d(0, -4px, 0);
  }
}

@keyframes circuit-line {
  0% {
    background-position: -72px 0;
    opacity: 0.44;
  }
  50% {
    opacity: 0.92;
  }
  100% {
    background-position: 72px 0;
    opacity: 0.44;
  }
}

@keyframes conveyor-flow {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 30px 0;
  }
}

@keyframes signal-sweep {
  0%,
  100% {
    opacity: 0.5;
    transform: translateX(0);
  }
  50% {
    opacity: 0.96;
    transform: translateX(-12px);
  }
}

@keyframes mini-grid-drift {
  0% {
    background-position: 0 0, 0 0, 0 0;
  }
  100% {
    background-position: 18px 18px, 18px 18px, 0 0;
  }
}

@keyframes mini-lift {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}

@keyframes maintenance-check {
  0%,
  100% {
    transform: translateY(0) rotate(45deg);
  }
  50% {
    transform: translateY(-5px) rotate(45deg);
  }
}

@keyframes cad-outline {
  0%,
  100% {
    opacity: 0.72;
    transform: skew(-12deg) translateY(0);
  }
  50% {
    opacity: 1;
    transform: skew(-12deg) translateY(-5px);
  }
}

@keyframes robot-wave {
  0%,
  100% {
    transform: rotate(12deg) translateY(0);
  }
  45% {
    transform: rotate(-16deg) translateY(-3px);
  }
  65% {
    transform: rotate(18deg) translateY(-2px);
  }
}

@keyframes robot-bob {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -9px, 0);
  }
}

@keyframes guide-spark {
  0%,
  100% {
    opacity: 0.35;
    transform: scale(0.86);
  }
  45% {
    opacity: 1;
    transform: scale(1.08);
  }
}

@keyframes path-run {
  0% {
    background-position: -90px 0;
    opacity: 0.38;
  }
  50% {
    opacity: 0.95;
  }
  100% {
    background-position: 90px 0;
    opacity: 0.38;
  }
}

@keyframes beginner-card-guide {
  0%,
  100% {
    background-position: 0 0, 0 0, -120px 0, 0 0;
    transform: translateY(0);
  }
  50% {
    background-position: 0 0, 0 0, 90px 0, 0 0;
    transform: translateY(-5px);
  }
}

@keyframes beginner-check-pop {
  0%,
  100% {
    opacity: 0.46;
    transform: scale(0.9);
  }
  42%,
  58% {
    opacity: 1;
    transform: scale(1.08);
  }
}

@keyframes beginner-growth-fill {
  0%,
  100% {
    opacity: 0.58;
    transform: translateY(0) scaleX(0.72);
    transform-origin: left center;
  }
  50% {
    opacity: 1;
    transform: translateY(-4px) scaleX(1);
    transform-origin: left center;
  }
}

@keyframes mentor-guide-beam {
  0%,
  100% {
    opacity: 0.34;
    transform: scaleX(0.65);
  }
  50% {
    opacity: 0.9;
    transform: scaleX(1);
  }
}

@keyframes beginner-step-flow {
  0% {
    background-position: 0 -84px, 0 0;
  }
  100% {
    background-position: 0 84px, 0 0;
  }
}

@keyframes expert-map-flow {
  0% {
    background-position: -120px 0, 0 0;
  }
  100% {
    background-position: 120px 0, 0 0;
  }
}

@keyframes expert-panel-float {
  0%,
  100% {
    opacity: 0.82;
    transform: translateY(0);
  }
  50% {
    opacity: 1;
    transform: translateY(-6px);
  }
}

@keyframes expert-signal-pulse {
  0%,
  100% {
    opacity: 0.44;
    transform: scale(0.9);
  }
  45%,
  58% {
    opacity: 1;
    transform: scale(1.08);
  }
}

@keyframes badge-pop {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-5px) scale(1.04);
  }
}

@keyframes cad-guide-robot {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  42% {
    transform: translate3d(0, -6px, 0);
  }
  64% {
    transform: translate3d(2px, -4px, 0);
  }
}

@keyframes design-guide-beam {
  0%,
  100% {
    opacity: 0.34;
    transform: rotate(-14deg) scaleX(0.74);
  }
  48% {
    opacity: 0.95;
    transform: rotate(-14deg) scaleX(1);
  }
}

@keyframes cad-line-draw {
  0%,
  100% {
    clip-path: inset(0 100% 0 0);
    opacity: 0.48;
  }
  40%,
  70% {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}

@keyframes model-orbit {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotateZ(6deg) skewY(-3deg);
  }
  50% {
    transform: translate3d(3px, -4px, 0) rotateZ(-4deg) skewY(4deg);
  }
}

@keyframes dimension-pulse {
  0%,
  100% {
    opacity: 0.58;
    transform: translateX(0);
  }
  50% {
    opacity: 1;
    transform: translateX(-6px);
  }
}

@keyframes cad-focus-dot {
  0%,
  100% {
    opacity: 0.5;
    transform: scale(0.88);
  }
  50% {
    opacity: 1;
    transform: scale(1.1);
  }
}

@keyframes draft-corner-glow {
  0%,
  100% {
    opacity: 0.48;
    transform: translate3d(0, 0, 0);
  }
  50% {
    opacity: 1;
    transform: translate3d(3px, -2px, 0);
  }
}

@keyframes wireframe-drift {
  0%,
  100% {
    transform: translate3d(0, 0, 0) skewY(-8deg);
  }
  50% {
    transform: translate3d(4px, -5px, 0) skewY(-5deg);
  }
}

@keyframes robot-point {
  0%,
  100% {
    transform: rotate(-17deg) translate3d(0, 0, 0);
  }
  45% {
    transform: rotate(-11deg) translate3d(4px, -4px, 0);
  }
}

@keyframes control-guide-robot {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  45% {
    transform: translate3d(0, -5px, 0);
  }
  64% {
    transform: translate3d(-2px, -3px, 0);
  }
}

@keyframes control-panel-lamps {
  0%,
  100% {
    opacity: 0.5;
    box-shadow:
      26px 0 0 -1px rgba(249, 115, 22, 0.45),
      52px 0 0 -1px rgba(14, 165, 233, 0.45),
      0 0 0 5px rgba(63, 139, 97, 0.1);
  }
  36% {
    opacity: 1;
    box-shadow:
      26px 0 0 -1px rgba(249, 115, 22, 0.75),
      52px 0 0 -1px rgba(14, 165, 233, 0.45),
      0 0 0 8px rgba(63, 139, 97, 0.08);
  }
  68% {
    opacity: 1;
    box-shadow:
      26px 0 0 -1px rgba(249, 115, 22, 0.45),
      52px 0 0 -1px rgba(14, 165, 233, 0.82),
      0 0 0 8px rgba(14, 165, 233, 0.08);
  }
}

@keyframes wire-current {
  0% {
    background-position: -120px 0, 0 0;
    opacity: 0.46;
  }
  50% {
    opacity: 1;
  }
  100% {
    background-position: 120px 0, 0 0;
    opacity: 0.46;
  }
}

@keyframes plc-module-pulse {
  0%,
  100% {
    opacity: 0.64;
    transform: translate3d(0, 0, 0);
  }
  50% {
    opacity: 1;
    transform: translate3d(0, -4px, 0);
  }
}

@keyframes touch-ui-react {
  0%,
  100% {
    opacity: 0.62;
    transform: scale(1);
  }
  45% {
    opacity: 1;
    transform: scale(1.05);
  }
}

@keyframes control-arm-guide {
  0%,
  100% {
    transform: rotate(14deg) translate3d(0, 0, 0);
  }
  48% {
    transform: rotate(6deg) translate3d(6px, -3px, 0);
  }
}

@keyframes assembly-guide-robot {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  46% {
    transform: translate3d(0, -5px, 0);
  }
  66% {
    transform: translate3d(3px, -3px, 0);
  }
}

@keyframes part-align {
  0%,
  100% {
    transform: translate3d(-5px, 0, 0);
  }
  50% {
    transform: translate3d(5px, -3px, 0);
  }
}

@keyframes tool-nudge {
  0%,
  100% {
    transform: rotate(-18deg) translate3d(0, 0, 0);
  }
  45% {
    transform: rotate(-8deg) translate3d(5px, -3px, 0);
  }
}

@keyframes adjustment-gauge {
  0%,
  100% {
    transform: rotate(-28deg);
  }
  50% {
    transform: rotate(30deg);
  }
}

@keyframes assembly-complete {
  0%,
  100% {
    opacity: 0.46;
    transform: scale(0.9);
  }
  52% {
    opacity: 1;
    transform: scale(1.08);
  }
}

@keyframes maintenance-guide-robot {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  44% {
    transform: translate3d(0, -5px, 0);
  }
  66% {
    transform: translate3d(-3px, -3px, 0);
  }
}

@keyframes check-sequence {
  0%,
  100% {
    opacity: 0.42;
    transform: translateY(0) scale(0.9);
  }
  34% {
    opacity: 1;
    transform: translateY(-2px) scale(1.05);
  }
  67% {
    opacity: 0.82;
    transform: translateY(0) scale(1);
  }
}

@keyframes warning-to-ok {
  0%,
  100% {
    background: var(--orange);
    box-shadow: 0 0 0 7px rgba(249, 115, 22, 0.13);
  }
  55% {
    background: var(--green);
    box-shadow: 0 0 0 8px rgba(63, 139, 97, 0.13);
  }
}

@keyframes improve-flow {
  0% {
    background-position: -120px 0, 0 0;
    opacity: 0.45;
  }
  50% {
    opacity: 1;
  }
  100% {
    background-position: 120px 0, 0 0;
    opacity: 0.45;
  }
}

@keyframes inspect-scan {
  0%,
  100% {
    transform: translateX(-26px);
    opacity: 0.42;
  }
  50% {
    transform: translateX(38px);
    opacity: 1;
  }
}

@keyframes ojt-guide-robot {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  45% {
    transform: translate3d(0, -5px, 0);
  }
  66% {
    transform: translate3d(3px, -3px, 0);
  }
}

@keyframes step-flow {
  0% {
    background-position: -120px 0, 0 0;
    opacity: 0.45;
  }
  50% {
    opacity: 1;
  }
  100% {
    background-position: 120px 0, 0 0;
    opacity: 0.45;
  }
}

@keyframes check-grow {
  0%,
  100% {
    opacity: 0.46;
    transform: scale(0.88);
  }
  36% {
    opacity: 1;
    transform: scale(1.08);
  }
  72% {
    opacity: 0.78;
    transform: scale(1);
  }
}

@keyframes growth-bar {
  0%,
  100% {
    clip-path: inset(0 62% 0 0);
    opacity: 0.58;
  }
  55% {
    clip-path: inset(0 12% 0 0);
    opacity: 1;
  }
}

@keyframes mentor-point {
  0%,
  100% {
    transform: rotate(-10deg) translate3d(0, 0, 0);
  }
  50% {
    transform: rotate(-2deg) translate3d(6px, -3px, 0);
  }
}

@keyframes cta-shine {
  0% {
    transform: translateX(-120%) skewX(-18deg);
  }
  100% {
    transform: translateX(220%) skewX(-18deg);
  }
}

.visual-caption span {
  display: block;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
}

.visual-caption strong {
  display: block;
  margin-top: 4px;
  color: var(--navy);
}

.visual-caption p,
.service-card p,
.detail-card p,
.case-grid p,
.case-detail-card dd,
.recruit-paths p,
.news-list p,
.news-index-card p,
.contact-card p,
.skill-grid p {
  color: var(--muted);
}

.section {
  padding-block: clamp(56px, 8vw, 94px);
}

.section-heading {
  max-width: 780px;
  margin-bottom: 28px;
}

.section-heading h2 {
  margin-bottom: 10px;
  font-size: clamp(28px, 3vw, 40px);
}

.quick-section,
.faq-section {
  background: #fff;
}

.faq-section {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, #fff 0%, #f4f9fd 100%);
  background-size: 38px 38px, 38px 38px, auto;
}

.faq-section::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 86% 16%, rgba(14, 165, 233, 0.12), transparent 28%),
    linear-gradient(135deg, transparent 0 58%, rgba(37, 99, 168, 0.07) 58.2%, transparent 58.6% 100%);
  content: "";
}

.faq-section .container {
  position: relative;
  z-index: 1;
}

.consultation-section {
  position: relative;
  overflow: hidden;
  color: var(--ink);
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, #f7fbff 0%, #eaf3fb 100%);
  background-size: 42px 42px, 42px 42px, auto;
}

.consultation-section::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background:
    radial-gradient(circle at 18% 18%, rgba(14, 165, 233, 0.12), transparent 30%),
    radial-gradient(circle at 82% 78%, rgba(37, 99, 168, 0.1), transparent 34%),
    linear-gradient(128deg, transparent 0 43%, rgba(37, 99, 168, 0.08) 43.2%, transparent 43.8%);
}

.quick-table,
.reason-grid,
.category-grid,
.work-field-grid,
.fit-grid,
.recruit-detail-grid {
  display: grid;
  gap: 16px;
}

.quick-table {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.quick-table article {
  display: grid;
  grid-template-columns: minmax(180px, 0.55fr) minmax(0, 1fr);
  gap: 14px;
  padding: 18px;
}

.entry-heading {
  max-width: 760px;
}

.entry-choice-grid {
  gap: clamp(16px, 2.4vw, 24px);
  align-items: stretch;
}

.entry-choice-grid .entry-choice {
  grid-template-columns: 1fr;
  align-content: start;
  gap: 12px;
  min-height: 100%;
  padding: clamp(20px, 2.5vw, 28px);
  border-left: 4px solid rgba(37, 99, 168, 0.9);
}

.entry-choice-grid .recruit-entry {
  border-left-color: rgba(14, 165, 233, 0.78);
}

.entry-choice .entry-label {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  padding: 5px 10px;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 999px;
  background: rgba(245, 249, 253, 0.86);
  font-size: 13px;
  line-height: 1.45;
}

.entry-choice h3 {
  margin: 2px 0 0;
  color: var(--navy);
  font-size: clamp(20px, 2vw, 25px);
  line-height: 1.45;
}

.entry-choice p {
  line-height: 1.82;
}

.entry-points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
  margin: 4px 0 0;
  list-style: none;
}

.entry-points li {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 8px;
  background: #f6f9fc;
  color: var(--navy);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}

.entry-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 6px;
}

.entry-actions .text-link {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  color: var(--blue);
  font-weight: 900;
  text-decoration: none;
}

.entry-actions .text-link::after {
  margin-left: 6px;
  content: ">";
}

.entry-actions .text-link:hover {
  color: var(--navy);
}

.quick-table article .button {
  grid-column: 1 / -1;
  justify-self: start;
  margin-top: 4px;
}

.entry-choice .button {
  margin-top: 0;
}

.quick-table span,
.scope-map span,
.work-field-grid span {
  color: var(--blue);
  font-weight: 900;
}

.quick-table p,
.reason-grid p,
.drawing-card p,
.scope-map p,
.work-field-grid p,
.stack-list p,
.faq-list p {
  margin: 0;
  color: var(--muted);
}

.quick-table article::after,
.reason-grid article::after,
.category-grid article::after,
.work-field-grid article::after,
.recruit-detail-grid article::after,
.recruit-paths article::after,
.skill-grid article::after {
  position: absolute;
  right: 14px;
  top: 14px;
  width: 11px;
  height: 11px;
  background: var(--cyan);
  border-radius: 50%;
  box-shadow:
    -18px 0 0 rgba(37, 99, 168, 0.3),
    0 0 0 7px rgba(14, 165, 233, 0.12);
  content: "";
  opacity: 0.82;
  animation: machine-status 6.6s ease-in-out infinite;
}

.quick-table article::before,
.reason-grid article::before,
.category-grid article::before,
.recruit-detail-grid article::before,
.recruit-paths article::before {
  position: absolute;
  right: 18px;
  bottom: 14px;
  left: auto;
  display: block;
  width: 72px;
  height: 3px;
  background:
    linear-gradient(90deg, transparent 0, rgba(37, 99, 168, 0.22) 22%, var(--cyan) 50%, rgba(37, 99, 168, 0.22) 78%, transparent 100%);
  border-radius: 999px;
  content: "";
  opacity: 0.68;
  animation: circuit-line 7.2s linear infinite;
}

.quick-table article:hover::before,
.reason-grid article:hover::before,
.category-grid article:hover::before,
.recruit-detail-grid article:hover::before,
.recruit-paths article:hover::before,
.case-grid article:hover::after,
.case-detail-card:hover::after {
  opacity: 0.95;
  animation-duration: 4.8s;
}

.quick-table article:hover::after,
.reason-grid article:hover::after,
.category-grid article:hover::after,
.work-field-grid article:hover::after,
.recruit-detail-grid article:hover::after,
.recruit-paths article:hover::after,
.skill-grid article:hover::after {
  box-shadow:
    -18px 0 0 rgba(37, 99, 168, 0.38),
    0 0 0 8px rgba(14, 165, 233, 0.16);
  animation-duration: 4.8s;
}

.reason-section {
  background: #eef5fc;
}

.reason-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.reason-grid article,
.drawing-card,
.category-grid article,
.fit-grid article,
.work-field-grid article,
.recruit-detail-grid article {
  padding: 22px;
}

.reason-grid span {
  display: inline-flex;
  margin-bottom: 12px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
}

.consultation-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 24px;
  align-items: start;
}

.check-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.check-grid span {
  position: relative;
  padding: 12px 14px;
  padding-left: 46px;
  color: var(--navy);
  background: #eef5fc;
  border: 1px solid #d7e7f8;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 900;
}

.check-grid span::before,
.check-grid span::after {
  position: absolute;
  content: "";
}

.check-grid span::before {
  left: 14px;
  top: 50%;
  width: 20px;
  height: 20px;
  background:
    radial-gradient(circle at 50% 38%, #cfe4f7 0 7px, transparent 8px),
    linear-gradient(var(--blue), var(--blue)) 50% 80% / 18px 7px no-repeat;
  border-radius: 7px;
  transform: translateY(-50%);
  animation: mini-lift 7.8s ease-in-out infinite;
}

.check-grid span::after {
  left: 33px;
  top: 50%;
  width: 8px;
  height: 8px;
  background: var(--green);
  border-radius: 50%;
  transform: translateY(-50%);
  animation: machine-status 7s ease-in-out infinite;
}

.drawing-card .case-figure {
  min-height: 150px;
}

.category-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.service-support-section,
.service-scene-section,
.service-flow-section,
.service-precheck-section {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(180deg, #fff 0%, #f5faff 100%);
  background-size: 36px 36px, 36px 36px, auto;
}

.service-scene-section,
.service-precheck-section {
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(180deg, #f7fbff 0%, #eef6fc 100%);
  background-size: 36px 36px, 36px 36px, auto;
}

.service-support-section::before,
.service-scene-section::before,
.service-flow-section::before,
.service-precheck-section::before {
  position: absolute;
  inset: auto -12% -34% 48%;
  height: 54%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(14, 165, 233, 0.1), transparent 66%);
  content: "";
}

.service-support-section .container,
.service-scene-section .container,
.service-flow-section .container,
.service-precheck-section .container {
  position: relative;
  z-index: 1;
}

.service-support-heading,
.service-scene-heading,
.service-flow-heading,
.service-precheck-heading {
  max-width: 840px;
}

.service-scene-card,
.service-precheck-grid article {
  min-width: 0;
  padding: clamp(18px, 2.2vw, 24px);
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(151, 177, 201, 0.36);
  border-radius: 10px;
  box-shadow: 0 14px 30px rgba(15, 42, 68, 0.06);
}

.service-flow-steps li span,
.service-precheck-grid span {
  display: inline-grid;
  place-items: center;
  width: fit-content;
  min-width: 34px;
  height: 28px;
  padding: 0 9px;
  color: var(--blue);
  background: rgba(219, 234, 254, 0.84);
  border: 1px solid rgba(147, 197, 253, 0.62);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
}

.service-scene-card h3,
.service-precheck-grid h3 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(18px, 1.7vw, 21px);
  line-height: 1.45;
}

.service-scene-card p,
.service-precheck-grid p,
.service-flow-steps li p {
  margin: 0;
  color: #40596d;
  line-height: 1.72;
}

.service-scene-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.service-scene-card {
  position: relative;
  display: grid;
  gap: 12px;
  min-height: 190px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(14, 165, 233, 0.055) 0%, transparent 42%),
    rgba(255, 255, 255, 0.94);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.service-scene-card::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.055) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.055) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: linear-gradient(135deg, black 0%, transparent 62%);
  opacity: 0.72;
  content: "";
}

.service-scene-card:hover {
  border-color: rgba(37, 99, 168, 0.28);
  box-shadow: 0 18px 36px rgba(15, 42, 68, 0.08);
  transform: translateY(-2px);
}

.service-scene-meta {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.service-scene-mark {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #0f5d91;
  background: rgba(224, 242, 254, 0.9);
  border: 1px solid rgba(56, 189, 248, 0.34);
  border-radius: 50%;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.service-scene-label {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  background: rgba(239, 246, 255, 0.88);
  border: 1px solid rgba(147, 197, 253, 0.52);
  border-radius: 999px;
}

.service-scene-card h3,
.service-scene-card p {
  position: relative;
  z-index: 1;
}

.service-scene-note {
  max-width: 880px;
  margin: 22px auto 0;
  padding: 16px 20px;
  color: #40596d;
  line-height: 1.8;
  text-align: center;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(151, 177, 201, 0.34);
  border-radius: 10px;
  box-shadow: 0 12px 26px rgba(15, 42, 68, 0.05);
}

.service-scene-board {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.034) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.034) 1px, transparent 1px),
    linear-gradient(180deg, #f7fbff 0%, #eaf5fc 100%);
  background-size: 38px 38px, 38px 38px, auto;
}

.service-scene-board::before {
  position: absolute;
  inset: 10% -16% auto auto;
  width: 46%;
  height: 62%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(14, 165, 233, 0.1), transparent 68%);
  content: "";
}

.service-scene-board .container {
  position: relative;
  z-index: 1;
}

.service-scene-board__inner {
  position: relative;
  max-width: 1120px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 48px);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(245, 250, 255, 0.94) 100%);
  background-size: 30px 30px, 30px 30px, auto;
  border: 1px solid rgba(151, 177, 201, 0.34);
  border-radius: 20px;
  box-shadow: 0 22px 48px rgba(15, 42, 68, 0.075);
}

.service-scene-board__inner::before,
.service-scene-board__inner::after {
  position: absolute;
  top: clamp(50px, 8vw, 82px);
  width: clamp(52px, 7vw, 88px);
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(37, 99, 168, 0.3), transparent);
  content: "";
}

.service-scene-board__inner::before {
  left: clamp(20px, 4vw, 54px);
}

.service-scene-board__inner::after {
  right: clamp(20px, 4vw, 54px);
}

.service-scene-board__header {
  max-width: 820px;
  margin: 0 auto clamp(24px, 3vw, 34px);
  text-align: center;
}

.service-scene-board__header h2 {
  margin-bottom: 12px;
}

.service-scene-board__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 22px);
}

.service-scene-board .service-scene-card {
  position: relative;
  display: flex;
  min-height: 156px;
  flex-direction: column;
  justify-content: flex-start;
  padding: clamp(20px, 2.2vw, 24px);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid rgba(151, 177, 201, 0.36);
  border-radius: 15px;
  box-shadow: 0 14px 30px rgba(15, 42, 68, 0.06);
}

.service-scene-board .service-scene-card::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px);
  background-size: 24px 24px;
  mask-image: linear-gradient(145deg, black 0%, transparent 58%);
  opacity: 0.72;
  content: "";
}

.service-scene-board .service-scene-card:hover {
  border-color: rgba(37, 99, 168, 0.28);
  box-shadow: 0 18px 36px rgba(15, 42, 68, 0.085);
  transform: translateY(-2px);
}

.service-scene-card__head {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.service-scene-card__icon {
  display: inline-flex;
  width: 54px;
  height: 54px;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  color: #1674c8;
  background:
    radial-gradient(circle at 30% 24%, rgba(255, 255, 255, 0.92), transparent 42%),
    rgba(232, 246, 255, 0.94);
  border: 1px solid rgba(25, 125, 210, 0.24);
  border-radius: 999px;
  box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.62);
}

.service-scene-card__icon svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.service-scene-board .service-scene-card h3,
.service-scene-board .service-scene-card p {
  position: relative;
  z-index: 1;
}

.service-scene-board .service-scene-card h3 {
  margin: 0;
  color: #061d3f;
  font-size: clamp(18px, 1.55vw, 20px);
  line-height: 1.45;
}

.service-scene-board .service-scene-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
}

.service-scene-board__note {
  max-width: 840px;
  margin: clamp(18px, 2.5vw, 28px) auto 0;
  padding: 15px 18px;
  color: #40596d;
  background: rgba(241, 248, 255, 0.86);
  border: 1px solid rgba(147, 197, 253, 0.34);
  border-radius: 12px;
  text-align: center;
  line-height: 1.75;
}

.service-support-range {
  position: relative;
  padding: clamp(22px, 3vw, 34px) clamp(22px, 3.5vw, 38px) clamp(26px, 3.8vw, 42px);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.82), rgba(242, 249, 255, 0.76)),
    repeating-linear-gradient(90deg, rgba(37, 99, 168, 0.055) 0 1px, transparent 1px 72px);
  border: 1px solid rgba(151, 177, 201, 0.42);
  border-radius: 22px;
  box-shadow: 0 18px 42px rgba(15, 42, 68, 0.065);
}

.service-support-range__label {
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 28px;
  color: #44627f;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.6;
}

.service-support-range__label span:first-child {
  color: #0f4f95;
}

.service-support-range__track {
  position: relative;
  height: 10px;
  margin: 0 32px;
}

.service-support-range__track-line,
.service-support-range__track-fill {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  height: 2px;
  border-radius: 999px;
  transform: translateY(-50%);
}

.service-support-range__track-line {
  background: #c9deee;
}

.service-support-range__track-fill {
  background: linear-gradient(90deg, #5eb2ee 0%, var(--blue) 52%, #0d4c91 100%);
  box-shadow: 0 0 0 6px rgba(37, 99, 168, 0.05);
}

.service-support-range__items {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 54px);
  margin-top: -30px;
}

.service-support-range__item {
  min-width: 0;
}

.service-support-range__node {
  display: grid;
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  place-items: center;
  background: linear-gradient(180deg, #fff, #e7f4ff);
  border: 1px solid rgba(37, 99, 168, 0.28);
  border-radius: 999px;
  box-shadow: 0 14px 30px rgba(26, 100, 166, 0.18);
}

.service-support-range__node svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: var(--blue);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.service-support-range__copy {
  padding-top: 2px;
  text-align: center;
}

.service-support-range__copy h3 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(18px, 1.7vw, 20px);
  font-weight: 900;
  line-height: 1.45;
}

.service-support-range__copy p {
  max-width: 300px;
  margin: 12px auto 0;
  color: #40596d;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.82;
}

.service-support-note {
  margin: 22px 0 0;
  padding: 15px 18px;
  color: #294b63;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(147, 197, 253, 0.34);
  border-radius: 14px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.service-flow-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: clamp(18px, 2.4vw, 28px);
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.04) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.04) 1px, transparent 1px),
    rgba(255, 255, 255, 0.92);
  background-size: 28px 28px, 28px 28px, auto;
  border: 1px solid rgba(151, 177, 201, 0.38);
  border-radius: 18px;
  box-shadow: 0 16px 34px rgba(15, 42, 68, 0.06);
  list-style: none;
}

.service-flow-steps::before {
  position: absolute;
  top: clamp(48px, 5.2vw, 58px);
  right: clamp(42px, 5vw, 64px);
  left: clamp(42px, 5vw, 64px);
  height: 2px;
  background: linear-gradient(90deg, rgba(37, 99, 168, 0.16), rgba(14, 165, 233, 0.34), rgba(37, 99, 168, 0.16));
  content: "";
}

.service-flow-steps li {
  position: relative;
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: 12px;
  min-width: 0;
  padding: clamp(16px, 2vw, 20px);
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(151, 177, 201, 0.34);
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(15, 42, 68, 0.05);
}

.service-flow-steps li strong {
  color: var(--navy);
  font-size: 17px;
  line-height: 1.45;
}

.service-flow-steps li span {
  position: relative;
  z-index: 1;
  width: 42px;
  min-width: 42px;
  height: 42px;
  color: #0f5d91;
  background: rgba(224, 242, 254, 0.96);
  border-color: rgba(56, 189, 248, 0.42);
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.92);
}

.service-workflow-sheet {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px, 0.86fr) minmax(420px, 1.14fr);
  gap: clamp(22px, 3vw, 34px);
  margin-top: clamp(28px, 4vw, 44px);
  padding: clamp(18px, 2.6vw, 28px);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.88), rgba(244, 250, 255, 0.9)),
    repeating-linear-gradient(0deg, rgba(37, 99, 168, 0.045) 0 1px, transparent 1px 36px);
  border: 1px solid rgba(151, 177, 201, 0.38);
  border-radius: 22px;
  box-shadow: 0 18px 42px rgba(15, 42, 68, 0.065);
}

.service-workflow-sheet::before {
  position: absolute;
  top: 20px;
  right: 20px;
  left: 20px;
  height: 1px;
  background: linear-gradient(90deg, rgba(37, 99, 168, 0.18), transparent 34%, rgba(37, 99, 168, 0.14));
  content: "";
}

.service-workflow-sheet__intro,
.service-workflow-sheet__checklist {
  position: relative;
  z-index: 1;
  min-width: 0;
  border: 1px solid rgba(151, 177, 201, 0.34);
  border-radius: 18px;
}

.service-workflow-sheet__intro {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: clamp(22px, 3vw, 34px) clamp(26px, 3.6vw, 40px) clamp(26px, 3.6vw, 40px);
  background:
    radial-gradient(circle at 16% 14%, rgba(37, 99, 168, 0.08), transparent 40%),
    rgba(255, 255, 255, 0.74);
}

.service-workflow-sheet__check svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.service-workflow-sheet__illustration {
  width: min(280px, 72%);
  margin: 0 auto 16px;
  color: var(--blue);
}

.service-workflow-sheet__illustration svg {
  display: block;
  width: 100%;
  height: auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3.4;
}

.service-workflow-sheet__paper,
.service-workflow-sheet__bubble {
  fill: rgba(239, 248, 255, 0.76);
  stroke: rgba(37, 99, 168, 0.58);
}

.service-workflow-sheet__check-line {
  stroke: #0f8ac9;
  stroke-width: 4.4;
}

.service-workflow-sheet__node {
  stroke: rgba(37, 99, 168, 0.26);
}

.service-workflow-sheet__intro h3 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 850;
  line-height: 1.35;
}

.service-workflow-sheet__intro p {
  margin: 16px 0 0;
  color: #40596d;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.9;
}

.service-workflow-sheet__checklist {
  padding: clamp(18px, 2.4vw, 24px);
  background: rgba(255, 255, 255, 0.95);
}

.service-workflow-sheet__checklist-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  color: #40596d;
  border-bottom: 1px solid rgba(151, 177, 201, 0.3);
  font-size: 13px;
  font-weight: 800;
}

.service-workflow-sheet__checklist-head span:first-child {
  color: #0f5d91;
}

.service-workflow-sheet__items {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.service-workflow-sheet__items li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 18px 0;
  border-bottom: 1px solid rgba(151, 177, 201, 0.22);
}

.service-workflow-sheet__items li:last-child {
  border-bottom: 0;
}

.service-workflow-sheet__check {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  color: var(--blue);
  background: rgba(232, 246, 255, 0.92);
  border: 1px solid rgba(37, 99, 168, 0.22);
  border-radius: 999px;
}

.service-workflow-sheet__check svg {
  width: 20px;
  height: 20px;
  stroke-width: 2.6;
}

.service-workflow-sheet__items h3 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(17px, 1.7vw, 20px);
  font-weight: 850;
  line-height: 1.45;
}

.service-workflow-sheet__items p {
  margin: 6px 0 0;
  color: #40596d;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.75;
}

.service-workflow-sheet__note {
  max-width: 760px;
  margin: clamp(22px, 3vw, 32px) auto 0;
  padding: 16px 20px;
  color: #31536f;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 16px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

@media (max-width: 780px) {
  .service-workflow-sheet {
    grid-template-columns: 1fr;
    margin-top: 28px;
    padding: 16px;
    border-radius: 18px;
  }

  .service-workflow-sheet__intro {
    padding: 20px 20px 24px;
    border-radius: 16px;
  }

  .service-workflow-sheet__illustration {
    width: min(180px, 68%);
    margin: 0 auto 14px;
  }

  .service-workflow-sheet__intro p {
    margin-top: 12px;
    font-size: 14px;
  }

  .service-workflow-sheet__checklist {
    padding: 16px;
    border-radius: 16px;
  }

  .service-workflow-sheet__checklist-head {
    display: grid;
    gap: 4px;
  }

  .service-workflow-sheet__items li {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    padding: 16px 0;
  }

  .service-workflow-sheet__check {
    width: 34px;
    height: 34px;
  }

  .service-workflow-sheet__items h3 {
    font-size: 17px;
  }

  .service-workflow-sheet__items p {
    font-size: 13.5px;
  }

  .service-workflow-sheet__note {
    margin-top: 22px;
    padding: 14px 16px;
    text-align: left;
  }
}

.service-precheck-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.service-precheck-grid article {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 12px;
  align-items: start;
  padding: clamp(18px, 2.2vw, 24px);
  background:
    linear-gradient(135deg, rgba(14, 165, 233, 0.055) 0%, transparent 48%),
    rgba(255, 255, 255, 0.96);
  border-color: rgba(151, 177, 201, 0.32);
  box-shadow: 0 12px 26px rgba(15, 42, 68, 0.055);
}

.service-precheck-grid .service-precheck-check {
  position: relative;
  width: 28px;
  min-width: 28px;
  height: 28px;
  padding: 0;
  color: #fff;
  background: linear-gradient(135deg, #2563a8, #0ea5e9);
  border: 0;
  border-radius: 50%;
  box-shadow: 0 8px 16px rgba(14, 116, 190, 0.18);
}

.service-precheck-grid .service-precheck-check::before {
  position: absolute;
  top: 8px;
  left: 7px;
  width: 11px;
  height: 6px;
  border-bottom: 2px solid currentColor;
  border-left: 2px solid currentColor;
  content: "";
  transform: rotate(-45deg);
}

.service-precheck-grid h3,
.service-precheck-grid p {
  grid-column: 2;
}

.service-precheck-note {
  max-width: 780px;
  margin: 20px auto 0;
  padding: 15px 18px;
  color: #40596d;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(151, 177, 201, 0.32);
  border-radius: 10px;
  text-align: center;
  line-height: 1.75;
}

.service-precheck-board {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: clamp(28px, 4vw, 42px);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.9), rgba(246, 251, 255, 0.92)),
    repeating-linear-gradient(0deg, rgba(37, 99, 168, 0.045) 0 1px, transparent 1px 34px);
  border: 1px solid rgba(151, 177, 201, 0.4);
  border-radius: 22px;
  box-shadow: 0 18px 42px rgba(15, 42, 68, 0.065);
}

.service-precheck-board::before {
  position: absolute;
  top: 22px;
  right: 24px;
  left: 24px;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, rgba(31, 120, 200, 0.2), transparent 38%, rgba(31, 120, 200, 0.15));
}

.service-precheck-tray {
  position: relative;
  min-width: 0;
  padding: clamp(22px, 3vw, 30px);
}

.service-precheck-tray + .service-precheck-tray {
  border-left: 1px solid rgba(151, 177, 201, 0.28);
}

.service-precheck-tray__head {
  display: flex;
  gap: 14px;
  align-items: center;
  min-height: 54px;
  margin-bottom: 18px;
}

.service-precheck-tray__icon {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  place-items: center;
  color: var(--blue);
  background: linear-gradient(180deg, #fff, #e7f4ff);
  border: 1px solid rgba(31, 120, 200, 0.22);
  border-radius: 16px;
}

.service-precheck-tray__icon svg {
  width: 29px;
  height: 29px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.1;
}

.service-precheck-tray h3 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 850;
  line-height: 1.35;
}

.service-precheck-tray__rows {
  display: grid;
  gap: 12px;
}

.service-precheck-tray__row {
  min-width: 0;
  padding: 14px 14px 15px;
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid rgba(151, 177, 201, 0.28);
  border-radius: 13px;
}

.service-precheck-tray__row span {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 7px;
  padding: 4px 9px;
  color: #0f5d91;
  background: rgba(232, 246, 255, 0.88);
  border: 1px solid rgba(31, 120, 200, 0.16);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
}

.service-precheck-tray__row p {
  margin: 0;
  color: #40596d;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.75;
}

.service-faq-heading {
  max-width: 760px;
}

.service-faq-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.service-faq-list details {
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(151, 177, 201, 0.34);
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.055);
}

.service-faq-list summary {
  min-height: 68px;
  padding: 18px 54px 18px 20px;
  line-height: 1.55;
}

.service-faq-list summary::after {
  right: 20px;
  width: 24px;
  height: 24px;
  color: #0f5d91;
  background: rgba(224, 242, 254, 0.78);
  border-color: rgba(56, 189, 248, 0.34);
  animation: none;
}

.service-faq-list summary:hover::after {
  animation: none;
}

.service-faq-list details[open] summary::before {
  content: none;
}

.service-faq-list details[open] summary::after {
  background: #2563a8;
  color: #fff;
}

.service-faq-list p {
  margin: 0;
  padding: 16px 20px 20px;
  color: #40596d;
  line-height: 1.76;
}

.service-page-cta {
  background:
    linear-gradient(90deg, rgba(15, 42, 68, 0.98) 0%, rgba(21, 67, 111, 0.95) 100%),
    var(--navy);
  overflow: hidden;
}

.service-page-cta .cta-inner {
  position: relative;
  align-items: center;
  padding-block: clamp(10px, 1.5vw, 18px);
}

.service-page-cta .cta-inner::before {
  position: absolute;
  inset: -32px -12%;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    radial-gradient(circle at 78% 42%, rgba(14, 165, 233, 0.18), transparent 34%);
  background-size: 34px 34px, 34px 34px, auto;
  content: "";
}

.service-cta-copy,
.service-page-cta .hero-actions {
  position: relative;
  z-index: 1;
}

.service-cta-copy {
  max-width: 780px;
}

.service-cta-copy h2 {
  max-width: 720px;
  line-height: 1.45;
}

.service-cta-copy p:not(.eyebrow) {
  max-width: 740px;
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.84);
  line-height: 1.8;
}

.service-page-cta .hero-actions {
  flex-shrink: 0;
}

.service-page-cta .button.primary {
  background: #fff;
  color: var(--navy);
  border-color: rgba(255, 255, 255, 0.72);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
}

.service-page-cta::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px);
  background-size: 34px 34px;
  content: "";
}

.service-page-cta .container {
  position: relative;
  z-index: 1;
}

.service-final-cta {
  background: linear-gradient(180deg, #f4f9fd 0%, #eaf4fb 100%);
}

.service-final-cta__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(26px, 4vw, 54px);
  align-items: center;
  overflow: hidden;
  padding: clamp(36px, 5.4vw, 66px);
  color: #fff;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    radial-gradient(circle at 82% 30%, rgba(14, 165, 233, 0.28), transparent 32%),
    linear-gradient(135deg, #061527 0%, #0b2038 48%, #123f6a 100%);
  background-size: 34px 34px, 34px 34px, auto, auto;
  border: 1px solid rgba(203, 223, 241, 0.18);
  border-radius: 24px;
  box-shadow: 0 28px 80px rgba(6, 21, 39, 0.26);
}

.service-final-cta__inner::before {
  position: absolute;
  inset: 18px;
  pointer-events: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  content: "";
}

.service-final-cta__inner::after {
  position: absolute;
  top: -28%;
  right: -9%;
  width: 34%;
  height: 70%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(56, 189, 248, 0.22), transparent 68%);
  content: "";
}

.service-final-cta__copy,
.service-final-cta__action {
  position: relative;
  z-index: 1;
}

.service-final-cta__eyebrow {
  width: fit-content;
  margin-bottom: 14px;
  padding: 6px 12px;
  color: #bdeaff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(203, 223, 241, 0.2);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
}

.service-final-cta h2 {
  max-width: 760px;
  margin-bottom: 18px;
  color: #fff;
  font-size: clamp(30px, 3.8vw, 46px);
  font-weight: 850;
  line-height: 1.28;
  letter-spacing: 0;
}

.service-final-cta__copy > p:not(.service-final-cta__eyebrow):not(.service-final-cta__note) {
  max-width: 720px;
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.84);
  font-size: clamp(15px, 1.6vw, 17px);
  font-weight: 500;
  line-height: 1.9;
}

.service-final-cta__note {
  display: inline-flex;
  width: fit-content;
  margin: 24px 0 0;
  padding: 9px 13px;
  color: #e9f7ff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(203, 223, 241, 0.18);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
}

.service-final-cta__action {
  display: grid;
  justify-items: end;
}

.service-final-cta__button {
  display: inline-flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  padding: 15px 24px;
  color: #0b2038;
  background: #fff;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 10px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.2);
  font-size: 16px;
  font-weight: 900;
  white-space: nowrap;
}

.service-final-cta__button::after {
  margin-left: 10px;
  color: var(--blue);
  content: "->";
}

@media (min-width: 641px) and (max-width: 1040px) {
  .service-scene-grid,
  .service-scene-board__grid,
  .service-support-grid,
  .service-precheck-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-scene-card {
    min-height: 0;
  }

  .service-flow-steps {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .service-flow-steps::before {
    top: 28px;
    bottom: 28px;
    left: 49px;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, rgba(37, 99, 168, 0.16), rgba(14, 165, 233, 0.34), rgba(37, 99, 168, 0.16));
  }

  .service-flow-steps li {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 14px;
  }

  .service-flow-steps li span {
    grid-row: 1 / span 2;
  }
}

@media (min-width: 641px) and (max-width: 1040px) {
  .service-flow-steps li p {
    grid-column: 2;
  }
}

@media (max-width: 860px) {
  .service-precheck-heading p br {
    display: none;
  }

  .service-precheck-board {
    grid-template-columns: 1fr;
    margin-top: 28px;
    border-radius: 18px;
  }

  .service-precheck-tray {
    padding: 20px;
  }

  .service-precheck-tray + .service-precheck-tray {
    border-top: 1px solid rgba(151, 177, 201, 0.28);
    border-left: 0;
  }

  .service-precheck-tray__head {
    min-height: 0;
    margin-bottom: 14px;
  }

  .service-precheck-tray__icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
  }

  .service-precheck-tray__icon svg {
    width: 27px;
    height: 27px;
  }

  .service-precheck-tray__rows {
    gap: 10px;
  }

  .service-precheck-tray__row {
    padding: 13px 13px 14px;
  }

  .service-precheck-tray__row p {
    font-size: 13.5px;
  }
}

@media (max-width: 640px) {
  .service-scene-grid,
  .service-scene-board__grid,
  .service-support-grid,
  .service-precheck-grid,
  .service-faq-list,
  .service-flow-steps {
    grid-template-columns: 1fr;
  }

  .service-support-panel {
    padding: 16px;
    border-radius: 14px;
  }

  .service-support-heading p br {
    display: none;
  }

  .service-support-range {
    padding: 20px 18px 24px;
    border-radius: 18px;
  }

  .service-support-range__label {
    display: grid;
    gap: 5px;
    margin-bottom: 22px;
  }

  .service-support-range__track {
    position: absolute;
    top: 100px;
    bottom: 34px;
    left: 42px;
    width: 10px;
    height: auto;
    margin: 0;
  }

  .service-support-range__track-line,
  .service-support-range__track-fill {
    top: 0;
    right: auto;
    bottom: 0;
    left: 50%;
    width: 2px;
    height: auto;
    transform: translateX(-50%);
  }

  .service-support-range__track-fill {
    background: linear-gradient(180deg, #5eb2ee 0%, var(--blue) 52%, #0d4c91 100%);
    box-shadow: 0 0 0 5px rgba(37, 99, 168, 0.05);
  }

  .service-support-range__items {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-top: 0;
  }

  .service-support-range__item {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }

  .service-support-range__node {
    width: 56px;
    height: 56px;
    margin: 0;
  }

  .service-support-range__node svg {
    width: 32px;
    height: 32px;
  }

  .service-support-range__copy {
    text-align: left;
  }

  .service-support-range__copy h3 {
    font-size: 18px;
  }

  .service-support-range__copy p {
    max-width: none;
    margin-top: 7px;
    font-size: 13.5px;
  }

  .service-support-note {
    margin-top: 18px;
    padding: 14px 16px;
    text-align: left;
  }

  .service-scene-card {
    min-height: 0;
    padding: 16px;
  }

  .service-scene-board__inner {
    padding: 22px 16px;
    border-radius: 16px;
  }

  .service-scene-board__inner::before,
  .service-scene-board__inner::after {
    display: none;
  }

  .service-scene-board__header {
    text-align: left;
  }

  .service-scene-board .service-scene-card {
    min-height: 0;
  }

  .service-scene-card__head {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
  }

  .service-scene-card__icon {
    width: 48px;
    height: 48px;
  }

  .service-scene-card__icon svg {
    width: 27px;
    height: 27px;
  }

  .service-scene-board .service-scene-card h3 {
    font-size: 17px;
    line-height: 1.55;
  }

  .service-scene-board__note {
    text-align: left;
  }

  .service-support-grid article {
    padding: 16px;
  }

  .service-flow-steps {
    gap: 12px;
    padding: 16px;
  }

  .service-flow-steps::before {
    top: 28px;
    bottom: 28px;
    left: 37px;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, rgba(37, 99, 168, 0.16), rgba(14, 165, 233, 0.34), rgba(37, 99, 168, 0.16));
  }

  .service-flow-steps li {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 12px;
    padding: 16px;
  }

  .service-flow-steps li span {
    grid-row: 1 / span 2;
    width: 38px;
    min-width: 38px;
    height: 38px;
  }

  .service-flow-steps li p {
    grid-column: 2;
  }

  .service-scene-note {
    margin-top: 18px;
    padding: 16px;
    text-align: left;
  }

  .service-page-cta .cta-inner {
    align-items: stretch;
  }

  .service-faq-list summary {
    min-height: 0;
    padding: 16px 50px 16px 18px;
  }

  .service-page-cta .hero-actions .button {
    width: 100%;
    justify-content: center;
  }

  .service-final-cta {
    padding-bottom: 104px;
  }

  .service-final-cta__inner {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 30px 20px;
    border-radius: 20px;
  }

  .service-final-cta__inner::before {
    inset: 12px;
    border-radius: 15px;
  }

  .service-final-cta h2 {
    margin-bottom: 14px;
    font-size: clamp(25px, 8vw, 32px);
    line-height: 1.34;
  }

  .service-final-cta__copy > p:not(.service-final-cta__eyebrow):not(.service-final-cta__note) br {
    display: none;
  }

  .service-final-cta__note {
    display: block;
    margin-top: 18px;
    border-radius: 12px;
  }

  .service-final-cta__action {
    justify-items: stretch;
  }

  .service-final-cta__button {
    width: 100%;
    min-height: 56px;
  }
}
.category-grid ul,
.fit-grid ul {
  margin-bottom: 0;
  color: #3d4c5b;
}

.scope-map {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.scope-map div {
  min-width: 0;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: 8px;
}

.fit-grid,
.recruit-detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.related-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.related-grid a {
  padding: 18px;
  color: var(--navy);
  font-weight: 900;
}

.related-grid a::after {
  display: block;
  margin-top: 8px;
  color: var(--blue);
  font-size: 13px;
  content: "対応事例ページへ";
}

.faq-list {
  display: grid;
  gap: 10px;
}

.top-faq-heading {
  max-width: 860px;
}

.top-faq-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.faq-guidance {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 8px 0 14px;
}

.faq-guidance-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 6px 12px;
  color: #1f4463;
  background: rgba(37, 99, 168, 0.1);
  border: 1px solid rgba(37, 99, 168, 0.24);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.top-faq-card {
  position: relative;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background:
    linear-gradient(180deg, #fff 0%, #f9fcff 100%);
  border: 1px solid rgba(37, 99, 168, 0.15);
  border-radius: 8px;
  box-shadow: 0 16px 38px rgba(15, 42, 68, 0.06);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.top-faq-card:hover {
  border-color: rgba(37, 99, 168, 0.26);
  box-shadow: 0 20px 46px rgba(15, 42, 68, 0.09);
  transform: translateY(-2px);
}

.top-faq-card summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  min-height: 86px;
  padding: 20px 58px 18px 20px;
  list-style: none;
}

.top-faq-card summary::-webkit-details-marker {
  display: none;
}

.top-faq-card summary::after {
  position: absolute;
  right: 18px;
  top: 50%;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  color: var(--blue);
  background: #eef6fd;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 50%;
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
  content: "+";
  transform: translateY(-50%);
}

.top-faq-card[open] summary::after {
  background: #e4f0fb;
  content: "-";
  transform: translateY(-50%) rotate(180deg);
}

.top-faq-card[open] summary::before {
  content: none;
}

.top-faq-card summary span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #fff;
  background: var(--blue);
  border-radius: 8px;
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(37, 99, 168, 0.16);
}

.top-faq-card h3 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.45;
}

.top-faq-card p {
  margin: 0;
  padding: 0 58px 20px 68px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
}

.top-faq-card:not([open]) p {
  display: none;
}

.top-faq-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 20px;
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(37, 99, 168, 0.14);
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(15, 42, 68, 0.05);
}

.top-faq-contact p {
  margin: 0;
  color: var(--navy);
  font-weight: 800;
}

.recruit-faq-guide {
  position: relative;
  width: min(100%, 320px);
  min-height: 86px;
  margin: -6px 0 18px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    #f8fbff;
  background-size: 18px 18px;
  border: 1px solid #d7e7f8;
  border-radius: 8px;
  animation: mini-grid-drift 18s linear infinite;
}

.recruit-faq-guide::before,
.recruit-faq-guide::after,
.recruit-faq-guide span {
  position: absolute;
  content: "";
}

.recruit-faq-guide::before {
  left: 22px;
  bottom: 18px;
  width: 46px;
  height: 36px;
  background:
    radial-gradient(circle at 34% 42%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 66% 42%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 75% / 18px 3px no-repeat,
    #dbeafe;
  border: 2px solid #93c5fd;
  border-radius: 12px;
  animation: robot-bob 7.4s ease-in-out infinite;
}

.recruit-faq-guide::after {
  left: 80px;
  top: 24px;
  width: 150px;
  height: 34px;
  background: #fff;
  border: 2px solid #bfd5e8;
  border-radius: 20px 20px 20px 4px;
  animation: machine-status 7s ease-in-out infinite;
}

.recruit-faq-guide span:nth-child(1) {
  right: 56px;
  top: 26px;
  width: 10px;
  height: 10px;
  background: var(--green);
  border-radius: 50%;
  box-shadow:
    18px 0 0 var(--cyan),
    36px 0 0 var(--orange);
  animation: guide-spark 6s ease-in-out infinite;
}

.recruit-faq-guide span:nth-child(2) {
  left: 112px;
  top: 39px;
  width: 80px;
  height: 4px;
  background: var(--blue);
  border-radius: 999px;
}

.recruit-faq-guide span:nth-child(3) {
  left: 112px;
  top: 49px;
  width: 58px;
  height: 4px;
  background: rgba(14, 165, 233, 0.42);
  border-radius: 999px;
}

.faq-list details {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 22px rgba(15, 42, 68, 0.06);
}

.top-faq-list details {
  background: linear-gradient(180deg, #fff 0%, #f8fbfe 100%);
}

.faq-list summary {
  position: relative;
  padding: 16px 18px;
  padding-right: 46px;
  color: var(--navy);
  cursor: pointer;
  font-weight: 900;
}

.top-faq-list summary {
  min-height: 64px;
  display: flex;
  align-items: center;
}

.faq-list summary::after {
  position: absolute;
  right: 18px;
  top: 50%;
  width: 18px;
  height: 18px;
  color: var(--blue);
  border: 1px solid rgba(37, 99, 168, 0.24);
  border-radius: 50%;
  content: "+";
  display: grid;
  font-size: 13px;
  line-height: 1;
  place-items: center;
  transform: translateY(-50%);
  transition: transform 0.25s ease, background-color 0.25s ease;
  animation: machine-status 8s ease-in-out infinite;
}

.faq-list summary:hover::after {
  background: #eef5fc;
  border-color: rgba(37, 99, 168, 0.42);
  animation-duration: 5s;
}

.faq-list details[open] summary {
  border-bottom: 1px solid var(--line);
}

.faq-list details[open] summary::after {
  background: #eef5fc;
  content: "-";
  transform: translateY(-50%) rotate(180deg);
}

.faq-list details[open] summary::before {
  position: absolute;
  right: 48px;
  top: 50%;
  width: 9px;
  height: 9px;
  background: var(--green);
  border-radius: 50%;
  content: "";
  transform: translateY(-50%);
  animation: guide-spark 5s ease-in-out infinite;
}

.faq-list p {
  padding: 16px 18px 18px;
}

.top-faq-list p {
  line-height: 1.75;
}

.work-field-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.stack-list {
  display: grid;
  gap: 12px;
}

.stack-list div {
  padding: 16px;
}

.recruit-scene {
  order: 2;
  position: relative;
  min-height: 156px;
  margin: 12px 0 16px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.07) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.07) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbff, #eaf2f9);
  background-size: 20px 20px, 20px 20px, auto;
  border: 1px solid #d7e7f8;
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.74);
  animation: mini-grid-drift 20s linear infinite;
}

.recruit-scene::before,
.recruit-scene::after,
.recruit-scene span {
  position: absolute;
  display: block;
  content: "";
}

.recruit-scene::before {
  left: 24px;
  bottom: 22px;
  width: 54px;
  height: 44px;
  background:
    radial-gradient(circle at 33% 42%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 67% 42%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(#93c5fd, #93c5fd) 50% 78% / 24px 4px no-repeat,
    #dbeafe;
  border: 3px solid #93c5fd;
  border-radius: 16px;
  box-shadow:
    0 48px 0 14px #eaf2f9,
    76px 6px 0 -6px #fbbf24,
    76px 48px 0 13px #93c5fd;
  animation: robot-bob 7.4s ease-in-out infinite;
}

.recruit-scene::after {
  right: 24px;
  top: 24px;
  width: 104px;
  height: 70px;
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.14) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.14) 1px, transparent 1px),
    #fff;
  background-size: 12px 12px;
  border: 4px solid #93c5fd;
  border-radius: 8px;
  animation: hero-float 7.4s ease-in-out infinite;
}

.recruit-scene span:nth-child(1) {
  left: 48px;
  top: 28px;
  width: 86px;
  height: 34px;
  background: #fff;
  border: 2px solid #bfd5e8;
  border-radius: 18px 18px 18px 4px;
  box-shadow: 18px 10px 0 -12px rgba(37, 99, 168, 0.24);
  animation: machine-status 7.2s ease-in-out infinite;
}

.recruit-scene span:nth-child(1)::before {
  position: absolute;
  left: 17px;
  top: 12px;
  width: 14px;
  height: 6px;
  background: var(--cyan);
  border-radius: 99px;
  box-shadow: 23px 0 0 rgba(14, 165, 233, 0.34);
  content: "";
}

.recruit-scene span:nth-child(2) {
  right: 44px;
  bottom: 30px;
  width: 76px;
  height: 12px;
  background: var(--blue);
  border-radius: 999px;
  box-shadow: 0 18px 0 var(--orange);
  animation: circuit-line 7.6s linear infinite;
}

.recruit-scene span:nth-child(3) {
  left: 46%;
  bottom: 28px;
  width: 58px;
  height: 44px;
  background: #fff;
  border: 4px solid var(--cyan);
  border-radius: 8px;
  animation: mini-lift 8s ease-in-out infinite 0.6s;
}

.recruit-scene span:nth-child(4) {
  left: 52%;
  top: 26px;
  width: 34px;
  height: 34px;
  background: var(--orange);
  border-radius: 8px;
  animation: maintenance-check 8.4s ease-in-out infinite;
}

.recruit-scene span:nth-child(5) {
  left: 42%;
  top: 50%;
  width: 82px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--cyan), transparent);
  border-radius: 999px;
  animation: circuit-line 6.8s linear infinite;
}

.mentor-scene span:nth-child(5) {
  width: 112px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), transparent),
    radial-gradient(circle, var(--green) 0 4px, transparent 5px);
  background-size: 112px 3px, 36px 10px;
  animation: path-run 6.4s linear infinite;
}

.expert-scene span:nth-child(5) {
  width: 126px;
  background:
    linear-gradient(90deg, transparent, var(--blue), transparent),
    radial-gradient(circle, var(--orange) 0 4px, transparent 5px);
  background-size: 126px 3px, 42px 10px;
  animation: path-run 6.2s linear infinite;
}

.expert-scene::before {
  box-shadow:
    0 46px 0 18px #d7e7f8,
    90px 2px 0 -2px #93c5fd,
    90px 50px 0 16px #eaf2f9;
}

.expert-scene::after {
  border-color: var(--cyan);
  box-shadow: -138px 44px 0 -28px rgba(15, 42, 68, 0.16);
}

.beginner-path-card {
  gap: 0;
  background:
    radial-gradient(circle at 88% 12%, rgba(14, 165, 233, 0.13), transparent 28%),
    linear-gradient(135deg, #fff, rgba(243, 247, 251, 0.94));
}

.beginner-growth-scene {
  order: 3;
  min-height: 180px;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.07) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.07) 1px, transparent 1px),
    radial-gradient(circle at 78% 28%, rgba(14, 165, 233, 0.16), transparent 30%),
    linear-gradient(135deg, #f9fcff, #eaf5fb);
  background-size: 20px 20px, 20px 20px, auto, auto;
}

.beginner-growth-scene::before {
  left: 24px;
  bottom: 24px;
  width: 58px;
  height: 48px;
  background:
    radial-gradient(circle at 34% 40%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 67% 40%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(#38bdf8, #38bdf8) 50% 76% / 26px 4px no-repeat,
    #e0f2fe;
  border-color: #7dd3fc;
  box-shadow:
    0 52px 0 16px #eff6ff,
    72px 4px 0 -7px #dbeafe,
    72px 50px 0 14px #bfdbfe;
  animation: robot-bob 6.4s ease-in-out infinite;
}

.beginner-growth-scene::after {
  right: 22px;
  top: 22px;
  width: 118px;
  height: 76px;
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.16) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.16) 1px, transparent 1px),
    linear-gradient(120deg, transparent 55%, rgba(34, 197, 94, 0.18) 56% 64%, transparent 65%),
    #fff;
  background-size: 12px 12px, 12px 12px, 170px 100%, auto;
  border-color: #7dd3fc;
  box-shadow: -46px 60px 0 -34px rgba(29, 78, 216, 0.28);
  animation: beginner-card-guide 7.6s ease-in-out infinite;
}

.beginner-growth-scene span:nth-child(1) {
  left: 82px;
  top: 34px;
  width: 84px;
  height: 34px;
  background:
    radial-gradient(circle at 18px 16px, var(--green) 0 4px, transparent 5px),
    linear-gradient(90deg, rgba(37, 99, 168, 0.14), transparent);
  border-color: rgba(37, 99, 168, 0.24);
  box-shadow: 18px 10px 0 -12px rgba(37, 99, 168, 0.28);
}

.beginner-growth-scene span:nth-child(1)::before {
  left: 36px;
  width: 34px;
  background: rgba(14, 165, 233, 0.62);
  box-shadow: 0 11px 0 rgba(34, 197, 94, 0.38);
}

.beginner-growth-scene span:nth-child(2) {
  right: 136px;
  bottom: 42px;
  width: 92px;
  height: 4px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), transparent),
    radial-gradient(circle, var(--green) 0 4px, transparent 5px);
  background-size: 92px 4px, 32px 10px;
  border-radius: 999px;
  box-shadow: none;
  animation: path-run 5.8s linear infinite;
}

.beginner-growth-scene span:nth-child(3) {
  left: 45%;
  bottom: 30px;
  width: 46px;
  height: 42px;
  background:
    linear-gradient(135deg, #fff 0 48%, #dbeafe 49%),
    #fff;
  border: 3px solid #93c5fd;
  border-radius: 12px;
  box-shadow: 0 10px 0 -7px rgba(15, 42, 68, 0.18);
  animation: mini-lift 6.8s ease-in-out infinite 0.3s;
}

.beginner-growth-scene span:nth-child(4) {
  left: 52%;
  top: 28px;
  width: 42px;
  height: 42px;
  background:
    linear-gradient(45deg, transparent 42%, var(--green) 43% 56%, transparent 57%),
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%),
    #ecfdf5;
  border: 2px solid rgba(34, 197, 94, 0.34);
  border-radius: 50%;
  animation: beginner-check-pop 6.8s ease-in-out infinite;
}

.beginner-growth-scene span:nth-child(5) {
  left: 38%;
  top: 55%;
  width: 120px;
  height: 4px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), transparent),
    radial-gradient(circle, var(--green) 0 4px, transparent 5px);
  background-size: 120px 4px, 36px 10px;
  animation: path-run 5.4s linear infinite;
}

.beginner-growth-scene span:nth-child(6) {
  right: 62px;
  bottom: 22px;
  width: 60px;
  height: 16px;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  border-radius: 999px;
  box-shadow:
    -18px -18px 0 -8px rgba(37, 99, 168, 0.22),
    18px -30px 0 -9px rgba(34, 197, 94, 0.28);
  animation: beginner-growth-fill 7s ease-in-out infinite;
}

.beginner-growth-scene span:nth-child(7) {
  left: 104px;
  bottom: 34px;
  width: 64px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--cyan), transparent);
  border-radius: 999px;
  transform-origin: left center;
  animation: mentor-guide-beam 5.8s ease-in-out infinite;
}

.beginner-lead {
  order: 2;
  margin: 0 0 14px;
  color: var(--muted);
  line-height: 1.85;
}

.growth-steps {
  position: relative;
  order: 4;
  display: grid;
  gap: 10px;
  margin: 2px 0 14px;
}

.growth-steps::before {
  position: absolute;
  left: 22px;
  top: 20px;
  bottom: 20px;
  width: 3px;
  background:
    linear-gradient(180deg, transparent, var(--cyan), transparent),
    linear-gradient(var(--line), var(--line));
  background-size: 3px 84px, 3px 100%;
  border-radius: 999px;
  content: "";
  animation: beginner-step-flow 5.8s linear infinite;
}

.growth-steps div {
  position: relative;
  display: grid;
  gap: 5px;
  min-height: 118px;
  padding: 14px 14px 14px 52px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(191, 213, 232, 0.9);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(15, 42, 68, 0.06);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.growth-steps div::before {
  position: absolute;
  left: 12px;
  top: 18px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, var(--green), var(--cyan));
  border: 0;
  border-radius: 50%;
  content: "✓";
  font-size: 13px;
  font-weight: 900;
  animation: beginner-check-pop 6s ease-in-out infinite;
}

.growth-steps div::after {
  position: absolute;
  right: 14px;
  top: 18px;
  width: 46px;
  height: 4px;
  background: linear-gradient(90deg, transparent, var(--cyan), transparent);
  border-radius: 999px;
  content: "";
  opacity: 0.54;
  animation: mentor-guide-beam 6.2s ease-in-out infinite;
}

.growth-steps div:nth-child(2)::before,
.growth-steps div:nth-child(2)::after {
  animation-delay: 0.9s;
}

.growth-steps div:nth-child(3)::before,
.growth-steps div:nth-child(3)::after {
  animation-delay: 1.8s;
}

.growth-steps div:hover {
  border-color: rgba(14, 165, 233, 0.42);
  box-shadow: 0 16px 32px rgba(15, 42, 68, 0.1);
  transform: translateY(-3px);
}

.growth-steps span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.growth-steps h3,
.beginner-assurance h3 {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
}

.growth-steps p,
.beginner-assurance p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.beginner-assurance {
  order: 5;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.beginner-assurance div {
  position: relative;
  min-height: 112px;
  padding: 14px;
  overflow: hidden;
  background: rgba(243, 247, 251, 0.78);
  border: 1px solid rgba(191, 213, 232, 0.82);
  border-radius: 8px;
}

.beginner-assurance div::after {
  position: absolute;
  right: 14px;
  bottom: 14px;
  width: 46px;
  height: 5px;
  background: linear-gradient(90deg, transparent, var(--green), transparent);
  border-radius: 999px;
  content: "";
  opacity: 0.34;
  animation: guide-spark 7s ease-in-out infinite;
}

.expert-range-card {
  gap: 0;
  background:
    radial-gradient(circle at 12% 14%, rgba(37, 99, 168, 0.12), transparent 30%),
    linear-gradient(135deg, rgba(248, 250, 252, 0.98), #fff);
}

.expert-range-scene {
  order: 3;
  min-height: 180px;
  background:
    linear-gradient(90deg, rgba(15, 42, 68, 0.07) 1px, transparent 1px),
    linear-gradient(rgba(15, 42, 68, 0.07) 1px, transparent 1px),
    radial-gradient(circle at 34% 40%, rgba(37, 99, 168, 0.16), transparent 32%),
    linear-gradient(135deg, #f8fbff, #eef5fc);
  background-size: 22px 22px, 22px 22px, auto, auto;
}

.expert-range-scene::before {
  left: 28px;
  bottom: 24px;
  width: 58px;
  height: 48px;
  background:
    radial-gradient(circle at 34% 40%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 67% 40%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--blue), var(--blue)) 50% 76% / 26px 4px no-repeat,
    #e5eef8;
  border-color: #93c5fd;
  box-shadow:
    0 52px 0 16px #dbeafe,
    82px 2px 0 -8px rgba(15, 42, 68, 0.2),
    82px 48px 0 14px #eaf2f9;
  animation: robot-bob 7s ease-in-out infinite;
}

.expert-range-scene::after {
  right: 24px;
  top: 22px;
  width: 122px;
  height: 78px;
  background:
    linear-gradient(90deg, transparent, rgba(37, 99, 168, 0.18), transparent),
    linear-gradient(90deg, rgba(37, 99, 168, 0.12) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.12) 1px, transparent 1px),
    #fff;
  background-size: 180px 100%, 14px 14px, 14px 14px, auto;
  border-color: var(--blue);
  box-shadow:
    -96px 64px 0 -42px rgba(14, 165, 233, 0.2),
    -156px 20px 0 -48px rgba(15, 42, 68, 0.12);
  animation: expert-panel-float 7.4s ease-in-out infinite;
}

.expert-range-scene span:nth-child(1) {
  left: 86px;
  top: 34px;
  width: 82px;
  height: 36px;
  background:
    linear-gradient(90deg, var(--blue), var(--cyan)) 16px 16px / 46px 4px no-repeat,
    #fff;
  border-color: rgba(37, 99, 168, 0.28);
  border-radius: 10px;
  box-shadow: 18px 46px 0 -14px rgba(37, 99, 168, 0.18);
  animation: expert-panel-float 6.8s ease-in-out infinite;
}

.expert-range-scene span:nth-child(1)::before {
  left: 14px;
  top: 12px;
  width: 8px;
  height: 8px;
  background: var(--green);
  border-radius: 50%;
  box-shadow:
    18px 0 0 rgba(14, 165, 233, 0.55),
    36px 0 0 rgba(249, 115, 22, 0.55);
}

.expert-range-scene span:nth-child(2) {
  right: 132px;
  bottom: 38px;
  width: 106px;
  height: 4px;
  background:
    linear-gradient(90deg, transparent, var(--blue), transparent),
    radial-gradient(circle, var(--cyan) 0 4px, transparent 5px);
  background-size: 106px 4px, 34px 10px;
  border-radius: 999px;
  box-shadow: none;
  animation: path-run 5.6s linear infinite;
}

.expert-range-scene span:nth-child(3) {
  left: 42%;
  bottom: 28px;
  width: 54px;
  height: 48px;
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.18), transparent),
    #fff;
  border-color: var(--cyan);
  border-radius: 10px;
  animation: expert-panel-float 7.2s ease-in-out infinite 0.4s;
}

.expert-range-scene span:nth-child(4) {
  left: 53%;
  top: 28px;
  width: 38px;
  height: 38px;
  background:
    radial-gradient(circle at 50% 50%, #fff 0 7px, transparent 8px),
    conic-gradient(from 180deg, var(--blue), var(--cyan), var(--green), var(--blue));
  border-radius: 50%;
  animation: expert-signal-pulse 6.4s ease-in-out infinite;
}

.expert-range-scene span:nth-child(5) {
  left: 37%;
  top: 52%;
  width: 126px;
  height: 4px;
  background:
    linear-gradient(90deg, transparent, var(--blue), transparent),
    radial-gradient(circle, var(--cyan) 0 4px, transparent 5px);
  background-size: 126px 4px, 42px 10px;
  animation: path-run 5.2s linear infinite;
}

.expert-range-scene span:nth-child(6) {
  right: 66px;
  bottom: 24px;
  width: 64px;
  height: 24px;
  background:
    radial-gradient(circle at 18% 50%, var(--green) 0 4px, transparent 5px),
    linear-gradient(90deg, rgba(37, 99, 168, 0.16), rgba(14, 165, 233, 0.18));
  border: 2px solid rgba(37, 99, 168, 0.22);
  border-radius: 999px;
  animation: expert-signal-pulse 6.8s ease-in-out infinite 0.8s;
}

.expert-range-scene span:nth-child(7) {
  left: 116px;
  bottom: 34px;
  width: 82px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--blue), transparent);
  border-radius: 999px;
  transform-origin: left center;
  animation: mentor-guide-beam 6s ease-in-out infinite;
}

.expert-lead {
  order: 2;
  margin: 0 0 14px;
  color: var(--muted);
  line-height: 1.85;
}

.expert-domain-grid {
  order: 4;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 2px 0 14px;
}

.expert-domain-grid div,
.expert-appeal-list div {
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(191, 213, 232, 0.9);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(15, 42, 68, 0.06);
}

.expert-domain-grid div {
  min-height: 132px;
  padding: 14px;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.expert-domain-grid div::after {
  position: absolute;
  right: 13px;
  top: 15px;
  width: 34px;
  height: 4px;
  background: linear-gradient(90deg, transparent, var(--blue), transparent);
  border-radius: 999px;
  content: "";
  opacity: 0.48;
  animation: mentor-guide-beam 6.6s ease-in-out infinite;
}

.expert-domain-grid div:hover {
  border-color: rgba(37, 99, 168, 0.42);
  box-shadow: 0 16px 32px rgba(15, 42, 68, 0.1);
  transform: translateY(-3px);
}

.expert-domain-grid div:last-child {
  grid-column: 1 / -1;
  min-height: 112px;
}

.expert-domain-grid span {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 22px;
  margin-bottom: 8px;
  color: #fff;
  background: var(--blue);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
}

.expert-domain-grid h3,
.expert-appeal-list h3 {
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.55;
}

.expert-domain-grid p,
.expert-appeal-list p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.expert-expansion-map {
  position: relative;
  order: 5;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
  padding: 12px;
  overflow: hidden;
  background:
    linear-gradient(90deg, transparent, rgba(14, 165, 233, 0.24), transparent),
    rgba(239, 246, 255, 0.72);
  background-size: 220px 100%, auto;
  border: 1px solid rgba(191, 213, 232, 0.9);
  border-radius: 8px;
  animation: expert-map-flow 6.8s linear infinite;
}

.expert-expansion-map::before,
.expert-expansion-map::after {
  position: absolute;
  top: 50%;
  width: 28px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--cyan), transparent);
  border-radius: 999px;
  content: "";
  transform: translateY(-50%);
  animation: mentor-guide-beam 6s ease-in-out infinite;
}

.expert-expansion-map::before {
  left: 33%;
}

.expert-expansion-map::after {
  right: 33%;
  animation-delay: 0.8s;
}

.expert-expansion-map div {
  position: relative;
  z-index: 1;
  min-height: 98px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(191, 213, 232, 0.84);
  border-radius: 8px;
}

.expert-expansion-map span {
  display: block;
  margin-bottom: 8px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.expert-expansion-map strong {
  display: block;
  color: var(--navy);
  font-size: 14px;
  line-height: 1.6;
}

.expert-appeal-list {
  order: 6;
  display: grid;
  gap: 10px;
}

.expert-appeal-list div {
  min-height: 104px;
  padding: 14px 44px 14px 14px;
}

.expert-appeal-list div::after {
  position: absolute;
  right: 15px;
  top: 18px;
  width: 34px;
  height: 5px;
  background: linear-gradient(90deg, transparent, var(--blue), var(--cyan));
  border-radius: 999px;
  content: "";
  opacity: 0.44;
  animation: expert-signal-pulse 7s ease-in-out infinite;
}

.stack-list div {
  position: relative;
  overflow: hidden;
}

.stack-list div::after {
  position: absolute;
  right: 16px;
  top: 16px;
  width: 18px;
  height: 18px;
  background:
    linear-gradient(45deg, transparent 44%, var(--green) 45% 58%, transparent 59%),
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%);
  border-radius: 50%;
  content: "";
  opacity: 0.38;
  animation: guide-spark 7.4s ease-in-out infinite;
}

.recruit-detail-grid article {
  display: flex;
  flex-direction: column;
}

.recruit-detail-grid article .eyebrow {
  order: 0;
}

.recruit-detail-grid article h2 {
  order: 1;
}

.recruit-detail-grid article .stack-list {
  order: 3;
}

.day-flow-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
  padding: 26px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(240, 249, 255, 0.9)),
    radial-gradient(circle at 12% 22%, rgba(14, 165, 233, 0.14), transparent 26%);
  border: 1px solid rgba(191, 213, 232, 0.96);
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(15, 42, 68, 0.08);
  overflow: hidden;
}

.day-flow-panel::before,
.day-flow-panel::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.day-flow-panel::before {
  inset: 18px;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.055) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.055) 1px, transparent 1px);
  background-size: 18px 18px;
  opacity: 0.76;
  animation: mini-grid-drift 20s linear infinite;
}

.day-flow-panel::after {
  display: none;
  left: 184px;
  top: 44px;
  bottom: 44px;
  width: 3px;
  background:
    linear-gradient(180deg, transparent, var(--cyan), transparent),
    linear-gradient(var(--line), var(--line));
  background-size: 3px 92px, 3px 100%;
  border-radius: 999px;
  opacity: 0.88;
  animation: path-run 6.8s linear infinite;
}

.timeline-guide-robot {
  position: sticky;
  top: 104px;
  z-index: 2;
  align-self: start;
  min-height: 240px;
  border: 1px solid rgba(147, 197, 253, 0.8);
  border-radius: 16px;
  background:
    radial-gradient(circle at 72% 16%, rgba(14, 165, 233, 0.2), transparent 20%),
    linear-gradient(180deg, #fff, #edf7ff);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.78);
  overflow: hidden;
}

.timeline-guide-robot::before,
.timeline-guide-robot::after,
.timeline-guide-robot span,
.timeline-guide-robot span::before,
.timeline-guide-robot span::after {
  position: absolute;
  display: block;
  content: "";
}

.timeline-guide-robot::before {
  left: 48px;
  top: 44px;
  width: 74px;
  height: 58px;
  background:
    radial-gradient(circle at 34% 42%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 66% 42%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 74% / 24px 4px no-repeat,
    #dbeafe;
  border: 3px solid #93c5fd;
  border-radius: 22px;
  box-shadow: 0 58px 0 18px #eaf2f9;
  animation: robot-bob 7.2s ease-in-out infinite;
}

.timeline-guide-robot::after {
  left: 72px;
  top: 130px;
  width: 30px;
  height: 42px;
  background:
    linear-gradient(var(--blue), var(--blue)) 50% 28% / 20px 4px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 50% 54% / 20px 4px no-repeat,
    #fff;
  border: 2px solid #b7d7f4;
  border-radius: 11px;
  animation: machine-status 7.5s ease-in-out infinite;
}

.timeline-guide-robot span:nth-child(1) {
  left: 24px;
  top: 122px;
  width: 44px;
  height: 6px;
  background: var(--cyan);
  border-radius: 999px;
  transform-origin: right center;
  transform: rotate(-20deg);
  animation: guide-point 6.8s ease-in-out infinite;
}

.timeline-guide-robot span:nth-child(2) {
  right: 22px;
  top: 36px;
  width: 42px;
  height: 56px;
  background:
    linear-gradient(var(--green), var(--green)) 12px 15px / 18px 4px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 12px 29px / 22px 4px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 12px 43px / 14px 4px no-repeat,
    #fff;
  border: 2px solid #b7d7f4;
  border-radius: 10px;
  animation: mini-lift 8s ease-in-out infinite;
}

.timeline-guide-robot span:nth-child(3) {
  left: 24px;
  right: 24px;
  bottom: 28px;
  height: 4px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), transparent),
    radial-gradient(circle, var(--green) 0 4px, transparent 5px);
  background-size: 90px 4px, 34px 10px;
  border-radius: 999px;
  animation: path-run 5.8s linear infinite;
}

.timeline-guide-robot span:nth-child(4) {
  right: 28px;
  bottom: 58px;
  width: 12px;
  height: 12px;
  background: var(--green);
  border-radius: 50%;
  box-shadow:
    -22px 0 0 rgba(37, 99, 168, 0.32),
    -44px 0 0 rgba(14, 165, 233, 0.28);
  animation: machine-status 6.6s ease-in-out infinite;
}

.timeline {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.timeline li {
  position: relative;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  min-height: 132px;
  padding: 18px 18px 18px 70px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.timeline li:hover {
  border-color: rgba(14, 165, 233, 0.46);
  transform: translateY(-4px);
  box-shadow: 0 16px 30px rgba(15, 42, 68, 0.11);
}

.timeline time {
  color: var(--blue);
  font-size: 18px;
  font-weight: 900;
  line-height: 1.1;
}

.timeline span {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.timeline strong {
  color: var(--navy);
  font-size: 15px;
}

.timeline small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.75;
}

.timeline li::before,
.timeline li::after {
  position: absolute;
  content: "";
}

.timeline li::before {
  left: 18px;
  top: 18px;
  width: 36px;
  height: 36px;
  background:
    radial-gradient(circle at 50% 38%, var(--blue) 0 7px, transparent 8px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 72% / 22px 4px no-repeat,
    #eef5fc;
  border: 1px solid #c9ddee;
  border-radius: 10px;
  opacity: 1;
  animation: robot-bob 7.5s ease-in-out infinite;
}

.timeline li::after {
  left: 28px;
  bottom: 18px;
  width: 50px;
  height: 5px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), transparent),
    radial-gradient(circle, var(--green) 0 4px, transparent 5px);
  background-size: 72px 5px, 24px 10px;
  border-radius: 999px;
  animation: path-run 6.4s linear infinite;
}

.timeline li:hover::after {
  animation-duration: 3.8s;
}

.timeline-design::before {
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.28) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.28) 1px, transparent 1px),
    linear-gradient(135deg, transparent 42%, var(--cyan) 43% 54%, transparent 55%),
    #eef8ff;
  background-size: 8px 8px, 8px 8px, auto, auto;
}

.timeline-meeting::before {
  background:
    linear-gradient(var(--blue), var(--blue)) 50% 32% / 18px 4px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 50% 54% / 24px 4px no-repeat,
    linear-gradient(var(--green), var(--green)) 50% 76% / 14px 4px no-repeat,
    #fff;
}

.timeline-field::before {
  background:
    radial-gradient(circle at 28% 36%, var(--green) 0 4px, transparent 5px),
    radial-gradient(circle at 52% 36%, var(--orange) 0 4px, transparent 5px),
    linear-gradient(var(--blue), var(--blue)) 50% 70% / 26px 5px no-repeat,
    #eef5fc;
}

.timeline-report::before {
  background:
    linear-gradient(45deg, transparent 42%, var(--green) 43% 56%, transparent 57%),
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%),
    linear-gradient(#fff, #fff) 50% 56% / 24px 20px no-repeat,
    #eef5fc;
}

.timeline-finish::before {
  background:
    radial-gradient(circle at 50% 50%, var(--green) 0 8px, transparent 9px),
    radial-gradient(circle at 50% 50%, rgba(34, 197, 94, 0.18) 0 16px, transparent 17px),
    #fff;
}

.timeline-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.fit-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
  margin-top: 18px;
  padding: 22px;
  background:
    radial-gradient(circle at 14% 18%, rgba(14, 165, 233, 0.14), transparent 26%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(240, 249, 255, 0.9));
  border: 1px solid rgba(191, 213, 232, 0.96);
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(15, 42, 68, 0.08);
  overflow: hidden;
}

.fit-panel::before {
  position: absolute;
  inset: 18px;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.05) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.05) 1px, transparent 1px);
  background-size: 18px 18px;
  content: "";
  opacity: 0.72;
  pointer-events: none;
  animation: mini-grid-drift 22s linear infinite;
}

.fit-guide-robot {
  display: none;
}

.fit-guide-robot {
  position: relative;
  z-index: 2;
  min-height: 228px;
  background:
    radial-gradient(circle at 72% 16%, rgba(34, 197, 94, 0.18), transparent 18%),
    linear-gradient(180deg, #fff, #edf7ff);
  border: 1px solid rgba(147, 197, 253, 0.8);
  border-radius: 16px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.78);
  overflow: hidden;
}

.fit-guide-robot::before,
.fit-guide-robot::after,
.fit-guide-robot span,
.fit-guide-robot span::before,
.fit-guide-robot span::after {
  position: absolute;
  display: block;
  content: "";
}

.fit-guide-robot::before {
  left: 46px;
  top: 38px;
  width: 72px;
  height: 58px;
  background:
    radial-gradient(circle at 34% 42%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 66% 42%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--green), var(--green)) 50% 76% / 26px 4px no-repeat,
    #dbeafe;
  border: 3px solid #93c5fd;
  border-radius: 22px;
  box-shadow: 0 58px 0 18px #eaf2f9;
  animation: robot-bob 7.4s ease-in-out infinite;
}

.fit-guide-robot::after {
  left: 72px;
  top: 122px;
  width: 28px;
  height: 38px;
  background:
    linear-gradient(var(--green), var(--green)) 50% 30% / 18px 4px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 50% 56% / 20px 4px no-repeat,
    #fff;
  border: 2px solid #b7d7f4;
  border-radius: 11px;
  animation: machine-status 7.2s ease-in-out infinite;
}

.fit-guide-robot span:nth-child(1) {
  right: 26px;
  top: 34px;
  width: 42px;
  height: 42px;
  background:
    linear-gradient(45deg, transparent 42%, var(--green) 43% 56%, transparent 57%),
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%),
    #fff;
  border: 2px solid #b7d7f4;
  border-radius: 12px;
  animation: check-grow 5.6s ease-in-out infinite;
}

.fit-guide-robot span:nth-child(2) {
  left: 30px;
  bottom: 38px;
  width: 104px;
  height: 4px;
  background:
    linear-gradient(90deg, transparent, var(--green), transparent),
    radial-gradient(circle, var(--cyan) 0 4px, transparent 5px);
  background-size: 80px 4px, 28px 10px;
  border-radius: 999px;
  animation: path-run 5.8s linear infinite;
}

.fit-guide-robot span:nth-child(3) {
  right: 28px;
  bottom: 68px;
  width: 12px;
  height: 12px;
  background: var(--green);
  border-radius: 50%;
  box-shadow:
    -22px 0 0 rgba(37, 99, 168, 0.32),
    -44px 0 0 rgba(14, 165, 233, 0.28);
  animation: machine-status 6.5s ease-in-out infinite;
}

.fit-check-grid {
  position: relative;
  z-index: 2;
  margin-top: 0;
}

.fit-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  padding: 18px;
  color: var(--text);
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.fit-card:hover {
  border-color: rgba(34, 197, 94, 0.42);
  transform: translateY(-4px);
  box-shadow: 0 16px 30px rgba(15, 42, 68, 0.1);
}

.fit-card::before,
.fit-card::after {
  position: absolute;
  content: "";
}

.fit-card::before {
  display: none;
  content: none;
}

.fit-card::after {
  left: 18px;
  right: 18px;
  bottom: 16px;
  height: 5px;
  background:
    linear-gradient(90deg, transparent, rgba(34, 197, 94, 0.7), transparent),
    radial-gradient(circle, rgba(14, 165, 233, 0.42) 0 3px, transparent 4px);
  background-size: 92px 5px, 28px 10px;
  border-radius: 999px;
  opacity: 0.7;
  animation: path-run 6.6s linear infinite;
}

.fit-card:hover::after {
  animation-duration: 3.8s;
}

.fit-card-heading {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 8px;
  align-items: flex-start;
  min-width: 0;
}

.fit-card span::before,
.fit-card span::after {
  display: none;
  content: none;
}

.fit-card-check {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin-top: 1px;
  padding: 0;
  color: #fff;
  font-size: 13px;
  line-height: 1;
  background: linear-gradient(135deg, var(--green), var(--cyan));
  border: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.12);
}

.fit-card-heading .fit-card-check {
  padding: 0;
  padding-left: 0;
  color: #fff;
  background: linear-gradient(135deg, var(--green), var(--cyan));
  border: 0;
  border-radius: 50%;
}

.fit-card-heading strong {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--navy);
  font-size: 16px;
  line-height: 1.5;
}

.fit-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.fit-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.pre-apply-grid,
.message-card,
.photo-cta-card {
  display: grid;
  gap: 18px;
}

.pre-apply-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pre-apply-grid article,
.message-card,
.photo-cta-card {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 16px 38px rgba(15, 42, 68, 0.08);
}

.pre-apply-grid article {
  display: grid;
  gap: 10px;
  padding: 20px;
}

.pre-apply-grid span {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: #fff;
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  border-radius: 50%;
  font-weight: 900;
}

.pre-apply-grid h3,
.message-card h2,
.photo-cta-card h2 {
  margin: 0;
  color: var(--navy);
}

.pre-apply-grid h3 {
  font-size: 18px;
  line-height: 1.55;
}

.pre-apply-grid p,
.message-card p,
.person-photo-frame p,
.photo-cta-card p,
.photo-cta-card small,
.message-card small {
  margin: 0;
  color: var(--muted);
}

.message-card {
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: center;
  padding: 28px;
}

.message-card > div:first-child,
.photo-cta-copy {
  display: grid;
  gap: 14px;
}

.person-photo-frame,
.photo-cta-visual {
  position: relative;
  display: grid;
  align-content: end;
  min-height: 220px;
  padding: 22px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(37, 99, 168, 0.14), rgba(14, 165, 233, 0.12)),
    linear-gradient(90deg, rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    #f8fbff;
  background-size: auto, 16px 16px, 16px 16px, auto;
  border: 1px dashed rgba(37, 99, 168, 0.34);
  border-radius: 14px;
}

.person-photo-frame::before,
.photo-cta-visual::before {
  position: absolute;
  left: 50%;
  top: 34px;
  width: 82px;
  height: 82px;
  background:
    radial-gradient(circle at 50% 42%, rgba(37, 99, 168, 0.22) 0 30px, transparent 31px),
    linear-gradient(#dbeafe, #dbeafe) 50% 100% / 118px 58px no-repeat;
  border-radius: 50%;
  content: "";
  transform: translateX(-50%);
}

.person-photo-frame span,
.photo-cta-visual span {
  position: relative;
  z-index: 1;
  width: fit-content;
  padding: 4px 10px;
  color: #fff;
  background: var(--blue);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.person-photo-frame strong,
.photo-cta-visual strong,
.person-photo-frame p,
.photo-cta-visual p {
  position: relative;
  z-index: 1;
}

.person-photo-frame strong,
.photo-cta-visual strong {
  color: var(--navy);
}

.person-photo-frame p,
.photo-cta-visual p {
  font-size: 12px;
  line-height: 1.7;
}

.photo-cta-card {
  grid-template-columns: 320px minmax(0, 1fr);
  align-items: center;
  padding: 28px;
  background:
    radial-gradient(circle at 88% 18%, rgba(14, 165, 233, 0.14), transparent 28%),
    #fff;
}

.photo-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.button.ghost {
  color: var(--blue);
  background: #fff;
  border: 1px solid rgba(37, 99, 168, 0.28);
}

.mobile-fixed-cta {
  display: none;
}

.recruit-cta-guide {
  position: relative;
  display: flex;
  gap: 18px;
  align-items: center;
}

.recruit-cta-guide .button {
  position: relative;
  overflow: hidden;
}

.recruit-cta-guide .button::after {
  position: absolute;
  inset: -40% auto -40% 0;
  width: 54px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.38), transparent);
  content: "";
  animation: cta-shine 5.8s ease-in-out infinite;
}

.recruit-cta-robot {
  position: relative;
  flex: 0 0 68px;
  width: 68px;
  height: 60px;
}

.recruit-cta-robot::before,
.recruit-cta-robot::after,
.recruit-cta-robot span {
  position: absolute;
  content: "";
}

.recruit-cta-robot::before {
  left: 12px;
  top: 6px;
  width: 42px;
  height: 34px;
  background:
    radial-gradient(circle at 34% 42%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 66% 42%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 76% / 18px 3px no-repeat,
    #dbeafe;
  border: 2px solid #93c5fd;
  border-radius: 12px;
  animation: robot-bob 6.8s ease-in-out infinite;
}

.recruit-cta-robot::after {
  left: 2px;
  top: 30px;
  width: 30px;
  height: 8px;
  background: #dbeafe;
  border-radius: 999px;
  transform-origin: right center;
  animation: robot-wave 3.8s ease-in-out infinite;
}

.recruit-cta-robot span:nth-child(1) {
  left: 18px;
  bottom: 4px;
  width: 32px;
  height: 20px;
  background: #f8fbff;
  border: 2px solid #bfdbfe;
  border-radius: 8px;
}

.recruit-cta-robot span:nth-child(2),
.recruit-cta-robot span:nth-child(3) {
  right: 4px;
  width: 8px;
  height: 8px;
  background: var(--green);
  border-radius: 50%;
  animation: guide-spark 6s ease-in-out infinite;
}

.recruit-cta-robot span:nth-child(2) {
  top: 8px;
}

.recruit-cta-robot span:nth-child(3) {
  top: 24px;
  background: var(--orange);
  animation-delay: 1.1s;
}

.recruit-section {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(249, 252, 255, 0.98), rgba(235, 246, 253, 0.9)),
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px);
  background-size: auto, 38px 38px, 38px 38px;
}

.recruit-section::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background:
    radial-gradient(circle at 12% 16%, rgba(14, 165, 233, 0.13), transparent 30%),
    radial-gradient(circle at 86% 82%, rgba(37, 99, 168, 0.12), transparent 32%),
    linear-gradient(132deg, transparent 0 58%, rgba(37, 99, 168, 0.075) 58.2%, transparent 58.7%);
}

.problem-section {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(248, 252, 255, 0.98), rgba(239, 247, 253, 0.88)),
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px);
  background-size: auto, 36px 36px, 36px 36px;
}

.problem-section::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background:
    linear-gradient(135deg, transparent 0 54%, rgba(37, 99, 168, 0.07) 54.2%, transparent 54.6%),
    radial-gradient(circle at 82% 12%, rgba(14, 165, 233, 0.16), transparent 34%),
    radial-gradient(circle at 8% 92%, rgba(37, 99, 168, 0.11), transparent 30%);
  opacity: 0.86;
}

.problem-section .container {
  position: relative;
  z-index: 1;
}

.problem-section .section-heading {
  max-width: 820px;
  margin-bottom: 30px;
}

.problem-section .section-heading .eyebrow {
  margin-bottom: 10px;
  color: var(--blue);
}

.problem-section .section-heading h2 {
  margin-bottom: 12px;
  line-height: 1.28;
}

.problem-section .section-heading p {
  max-width: 760px;
  color: #40596d;
  line-height: 1.9;
}

.problem-list,
.service-grid,
.case-grid,
.recruit-paths,
.news-list,
.news-index-list,
.skill-grid,
.service-detail-grid {
  display: grid;
  gap: 16px;
}

.problem-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.design-problems article {
  position: relative;
  display: grid;
  align-content: start;
  min-height: 248px;
  padding: 22px;
  overflow: hidden;
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(249, 252, 255, 0.94)),
    linear-gradient(90deg, rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.035) 1px, transparent 1px);
  background-size: auto, 22px 22px, 22px 22px;
  border: 1px solid rgba(151, 177, 201, 0.42);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(15, 42, 68, 0.06);
}

.design-problems article::before {
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  content: "";
  background: linear-gradient(90deg, rgba(37, 99, 168, 0.86), rgba(14, 165, 233, 0.52));
}

.design-problems article:hover {
  border-color: rgba(37, 99, 168, 0.28);
  box-shadow: 0 16px 32px rgba(15, 42, 68, 0.09);
  transform: translateY(-2px);
}

.problem-category {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 12px;
  padding: 4px 9px;
  border: 1px solid rgba(37, 99, 168, 0.14);
  border-radius: 999px;
  background: rgba(246, 250, 254, 0.86);
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.35;
}

.recruit-label {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.35;
}

.problem-list h3 {
  margin: 0 0 11px;
  color: #10263a;
  font-size: 17px;
  line-height: 1.52;
}

.problem-list p {
  margin: 0;
  color: #506678;
  font-size: 14px;
  line-height: 1.9;
}

.problem-bridge {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 20px;
  align-items: center;
  justify-content: space-between;
  margin-top: 26px;
  padding: 20px 22px;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 14px 34px rgba(15, 42, 68, 0.07);
  backdrop-filter: blur(6px);
}

.problem-bridge p {
  max-width: 680px;
  margin: 0;
  color: #40596d;
  line-height: 1.82;
}

.problem-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.problem-actions .text-link {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  color: var(--blue);
  font-weight: 900;
  text-decoration: none;
}

.problem-actions .text-link::after {
  margin-left: 6px;
  content: ">";
}

.problem-actions .text-link:hover {
  color: var(--navy);
}

.service-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.top-service-grid {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 18px;
}

.service-card,
.detail-card {
  min-width: 0;
  padding: 22px;
}

.design-service {
  display: flex;
  flex-direction: column;
}

.top-service-card {
  border-top: 4px solid rgba(37, 99, 168, 0.86);
}

.top-service-card:nth-child(2),
.top-service-card:nth-child(5) {
  border-top-color: rgba(14, 165, 233, 0.72);
}

@media (min-width: 1121px) {
  .top-service-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .top-service-card {
    grid-column: span 2;
  }

  .top-service-card:nth-child(4) {
    grid-column: 2 / span 2;
  }

  .top-service-card:nth-child(5) {
    grid-column: 4 / span 2;
  }
}

.top-service-card .service-card-visual {
  position: relative;
  aspect-ratio: 16 / 9;
  width: 100%;
  margin: 0 0 14px;
  padding: 12px;
  overflow: hidden;
  border: 1px solid rgba(147, 197, 253, 0.48);
  border-radius: 10px;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.055) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.055) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbfe, #edf7ff);
  background-size: 18px 18px, 18px 18px, auto;
  box-shadow: 0 10px 22px rgba(15, 42, 68, 0.075);
}

.top-service-card .service-card-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.service-context {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 8px;
  padding: 5px 9px;
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 999px;
  background: #f6f9fc;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.35;
}

.service-points {
  display: grid;
  gap: 6px;
  padding: 0;
  margin: 12px 0 16px;
  list-style: none;
}

.service-points li {
  position: relative;
  padding-left: 16px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
}

.service-points li::before {
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 6px;
  height: 6px;
  background: var(--cyan);
  border-radius: 50%;
  content: "";
}

.top-service-actions {
  margin-top: 22px;
}

.service-card h3,
.detail-card h2,
.case-grid h3,
.case-detail-card h2,
.recruit-paths h2,
.recruit-paths h3,
.news-list h3,
.contact-card h3 {
  margin-bottom: 8px;
  line-height: 1.35;
}

.service-card a:not(.button) {
  margin-top: auto;
  color: var(--blue);
  font-size: 14px;
  font-weight: 900;
}

.service-card,
.detail-card,
.case-grid article,
.case-detail-card,
.recruit-paths article,
.quick-table article,
.reason-grid article,
.category-grid article {
  transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}

.service-card:hover,
.detail-card:hover,
.case-grid article:hover,
.case-detail-card:hover,
.recruit-paths article:hover,
.quick-table article:hover,
.reason-grid article:hover,
.category-grid article:hover {
  border-color: rgba(37, 99, 168, 0.34);
  box-shadow: 0 16px 34px rgba(15, 42, 68, 0.12);
  transform: translateY(-3px);
}

.mini-visual {
  position: relative;
  min-height: 118px;
  margin-bottom: 16px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    #eaf2f9;
  background-size: 18px 18px;
  border: 1px solid #d7e7f8;
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.68);
  animation: mini-grid-drift 18s linear infinite;
}

.mini-visual::before,
.mini-visual::after {
  position: absolute;
  content: "";
}

.mini-visual::before {
  right: 12px;
  top: 12px;
  width: 34px;
  height: 8px;
  background: rgba(37, 99, 168, 0.18);
  border-radius: 99px;
  box-shadow: -44px 0 0 rgba(37, 99, 168, 0.18);
  animation: signal-sweep 7.2s ease-in-out infinite;
}

.mini-visual::after {
  left: 12px;
  bottom: 12px;
  width: calc(100% - 24px);
  height: 2px;
  background: rgba(15, 42, 68, 0.18);
  animation: circuit-line 7s linear infinite;
}

.mini-visual span {
  position: absolute;
  display: block;
  background: var(--blue);
  border-radius: 6px;
}

.service-card:hover .mini-visual::before,
.service-card:hover .mini-visual::after,
.detail-card:hover .mini-visual::before,
.detail-card:hover .mini-visual::after {
  opacity: 0.95;
  animation-duration: 4.6s;
}

.service-card:hover .mini-visual span,
.detail-card:hover .mini-visual span {
  animation-duration: 5.2s;
}

.visual-fa span:nth-child(1) { left: 18%; bottom: 24%; width: 60%; height: 10px; }
.visual-fa span:nth-child(2) { left: 22%; bottom: 34%; width: 34px; height: 34px; background: #fff; border: 3px solid var(--blue); box-shadow: 42px 8px 0 -12px rgba(15, 42, 68, 0.18); animation: mini-lift 8.4s ease-in-out infinite; }
.visual-fa span:nth-child(3) { right: 22%; bottom: 34%; width: 34px; height: 34px; background: #fff; border: 3px solid var(--cyan); animation: mini-lift 8.4s ease-in-out infinite 1.2s; }
.visual-control span:nth-child(1) { left: 26%; top: 20%; width: 48%; height: 62%; background: #fff; border: 4px solid var(--blue); box-shadow: 0 10px 0 rgba(15, 42, 68, 0.08); }
.visual-control span:nth-child(2) { left: 36%; top: 38%; width: 28%; height: 8px; animation: signal-sweep 7.8s ease-in-out infinite; }
.visual-control span:nth-child(3) { left: 36%; top: 54%; width: 20%; height: 8px; background: var(--orange); animation: signal-sweep 7.8s ease-in-out infinite 1.1s; }
.visual-maintenance span:nth-child(1) { left: 20%; top: 26%; width: 58px; height: 58px; border: 10px solid var(--blue); background: transparent; border-radius: 50%; }
.visual-maintenance span:nth-child(2) { right: 24%; top: 30%; width: 44px; height: 44px; background: var(--orange); transform: rotate(45deg); animation: maintenance-check 9s ease-in-out infinite; }
.visual-maintenance span:nth-child(3) { left: 30%; bottom: 18%; width: 44%; height: 8px; animation: circuit-line 9.2s linear infinite; }
.visual-repair span:nth-child(1) { left: 20%; top: 26%; width: 58%; height: 48%; background: #fff; border: 3px solid var(--blue); border-radius: 8px; box-shadow: inset 0 12px 0 rgba(37, 99, 168, 0.12); }
.visual-repair span:nth-child(2) { left: 30%; top: 46%; width: 18px; height: 18px; border: 5px solid var(--cyan); background: transparent; border-radius: 50%; animation: gear-spin 11s linear infinite; }
.visual-repair span:nth-child(3) { right: 22%; bottom: 24%; width: 48px; height: 4px; background: var(--orange); transform: rotate(-36deg); animation: machine-status 7.4s ease-in-out infinite; }
.visual-cad span:nth-child(1) { left: 20%; top: 24%; width: 62%; height: 54%; background: #fff; border: 4px solid var(--blue); box-shadow: inset 0 16px 0 rgba(37, 99, 168, 0.12); }
.visual-cad span:nth-child(2) { left: 34%; top: 40%; width: 28%; height: 28%; border: 3px solid var(--cyan); background: transparent; transform: skew(-12deg); animation: cad-outline 8.8s ease-in-out infinite; }
.visual-cad span:nth-child(3) { right: 16%; bottom: 16%; width: 28px; height: 28px; background: var(--orange); animation: machine-status 8s ease-in-out infinite; }

.process-flow {
  position: relative;
  z-index: 1;
  margin-top: 34px;
  padding: 30px;
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 251, 254, 0.96));
  border: 1px solid rgba(37, 99, 168, 0.14);
  border-radius: 12px;
  box-shadow: 0 18px 48px rgba(15, 42, 68, 0.08);
}

.process-flow .eyebrow,
.process-flow .section-heading p {
  color: var(--blue);
}

.process-heading {
  max-width: 860px;
  margin-bottom: 24px;
}

.process-heading h2 {
  color: var(--navy);
}

.process-heading p {
  line-height: 1.88;
}

.process-steps {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.top-flow-steps {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 12px;
  box-shadow: 0 16px 34px rgba(15, 42, 68, 0.08);
}

.process-steps li {
  position: relative;
  min-width: 0;
  min-height: 196px;
  padding: 18px 16px 20px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 249, 253, 0.96)),
    linear-gradient(90deg, rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.035) 1px, transparent 1px);
  background-size: auto, 22px 22px, 22px 22px;
  border: 0;
  border-right: 1px solid rgba(151, 177, 201, 0.3);
  border-radius: 0;
  box-shadow: none;
  transition: background-color 0.18s ease;
}

.process-steps li::before {
  position: absolute;
  inset: 0 0 auto;
  height: 68px;
  content: "";
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.22), transparent 48%),
    linear-gradient(90deg, #2f78ba, #5eb8e8);
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}

.process-steps li:not(:last-child)::after {
  position: absolute;
  top: 27px;
  right: 8px;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  content: "›";
  transform: none;
}

.process-steps li:hover {
  background-color: rgba(244, 249, 253, 0.98);
}

.process-steps li:last-child {
  border-right: 0;
}

.process-steps span {
  display: inline-grid;
  place-items: center;
  position: relative;
  z-index: 1;
  width: 38px;
  height: 30px;
  margin: 0 8px 22px 0;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 6px;
  box-shadow: none;
}

.process-steps strong {
  position: relative;
  z-index: 1;
  display: inline;
  margin-top: 0;
  color: #fff;
  font-size: 14px;
  line-height: 1.45;
}

.process-steps strong::after {
  content: none;
}

.process-steps p {
  position: relative;
  z-index: 1;
  margin: 18px 0 0;
  color: #506678;
  font-size: 13px;
  line-height: 1.72;
}

.top-flow-steps li {
  padding: 18px 16px 20px;
}

.top-flow-steps strong {
  font-size: 15px;
}

.top-flow-steps p {
  font-size: 13px;
  line-height: 1.72;
}

.process-support {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 22px;
  align-items: center;
  justify-content: space-between;
  margin-top: 26px;
  padding: 20px 22px;
  border: 1px solid rgba(37, 99, 168, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.05);
}

.process-support p {
  max-width: 660px;
  margin: 0;
  color: var(--muted);
  line-height: 1.82;
}

.process-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.process-actions .button.ghost {
  color: var(--blue);
  border-color: rgba(37, 99, 168, 0.2);
  background: #fff;
}

.process-actions .button.secondary {
  color: var(--navy);
  background: #fff;
  border-color: rgba(37, 99, 168, 0.16);
}

.standalone li {
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.08);
}

.calendar-section,
.tinted {
  background: #eaf2f9;
}

.calendar-heading {
  max-width: 900px;
}

.news-heading {
  max-width: 860px;
}

.calendar-required,
.news-admin-note {
  max-width: 980px;
  margin: -8px 0 22px;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid #c9ddee;
  border-left: 6px solid var(--blue);
  border-radius: 8px;
}

.calendar-required strong {
  display: block;
  margin-bottom: 4px;
  color: var(--navy);
}

.calendar-required p {
  margin: 0;
  color: var(--muted);
}

.calendar-policy {
  background: linear-gradient(180deg, #fff 0%, #f8fbfe 100%);
}

.calendar-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 18px;
}

.calendar-status-chips,
.news-status-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
  margin-bottom: 14px;
}

.calendar-chip,
.news-chip {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  color: #1e3a5c;
  background: rgba(37, 99, 168, 0.11);
  border: 1px solid rgba(37, 99, 168, 0.28);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.calendar-frame {
  min-width: 0;
  padding: 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 251, 254, 0.98) 100%);
}

.calendar-section .google-calendar-embed {
  width: 100%;
  height: 572px;
  overflow: hidden;
  background: #fff;
  border-radius: 6px;
}

.calendar-section .google-calendar-embed iframe {
  display: block;
  width: 100%;
  height: 640px;
  border: 0;
}

.dot.active {
  background: #AD1457;
}

.dot.meeting {
  background: #795548;
}

.dot.open {
  background: #039BE5;
}

.dot.off {
  background: #F6BF26;
}

.calendar-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 14px;
}

.calendar-note {
  margin: 0;
  max-width: 520px;
  color: var(--muted);
}

.legend {
  align-self: start;
  padding: 20px;
}

.legend p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 10px 0;
}

.legend-note {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  line-height: 1.7;
}

.dot {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  border-radius: 50%;
}

.case-grid-detailed {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.top-case-section {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, #fff 0%, #f3f8fd 100%);
  background-size: 38px 38px, 38px 38px, auto;
}

.top-case-section::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background:
    radial-gradient(circle at 10% 18%, rgba(14, 165, 233, 0.1), transparent 30%),
    radial-gradient(circle at 88% 72%, rgba(37, 99, 168, 0.1), transparent 34%),
    linear-gradient(128deg, transparent 0 42%, rgba(37, 99, 168, 0.08) 42.2%, transparent 42.8%);
}

.top-case-section .container {
  position: relative;
  z-index: 1;
}

.top-case-heading {
  max-width: 820px;
}

.top-case-grid {
  position: relative;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.top-case-grid .top-case-card {
  display: grid;
  grid-template-rows: auto auto auto 1fr auto;
  align-content: start;
  min-height: 100%;
  padding: 0 26px 24px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(249, 252, 255, 0.96) 100%);
  border: 1px solid rgba(151, 177, 201, 0.4);
  border-radius: 12px;
  box-shadow: 0 16px 36px rgba(15, 42, 68, 0.08);
}

.top-case-grid .top-case-card::before {
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  content: "";
  background: linear-gradient(90deg, rgba(37, 99, 168, 0.82), rgba(14, 165, 233, 0.52));
}

.top-case-visual {
  display: grid;
  place-items: center;
  height: 208px;
  margin: 0 -26px 22px;
  padding: 22px 26px 14px;
  background:
    radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.66) 54%, transparent 72%),
    linear-gradient(90deg, rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    #f7fbff;
  background-size: auto, 22px 22px, 22px 22px, auto;
  border-bottom: 1px solid rgba(37, 99, 168, 0.1);
}

.top-case-visual img {
  display: block;
  width: min(100%, 310px);
  height: 100%;
  object-fit: contain;
}

.top-case-card .case-tag {
  width: fit-content;
  margin-bottom: 14px;
}

.top-case-card h3 {
  margin-bottom: 12px;
  color: var(--navy);
  font-size: clamp(20px, 2vw, 24px);
}

.top-case-card p {
  margin: 0 0 20px;
  line-height: 1.86;
}

.top-case-card .case-tags {
  align-self: end;
  margin-top: auto;
}

.top-case-links {
  margin-top: 10px;
}

.top-case-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 24px;
  padding: 22px 26px;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 14px 34px rgba(15, 42, 68, 0.06);
}

.top-case-more p {
  margin: 0;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.78;
}

.top-case-more p + p {
  color: var(--muted);
  font-weight: 500;
}

.top-case-more-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
}

.top-case-more-actions .button.ghost {
  color: var(--blue);
  background: #fff;
  border-color: rgba(37, 99, 168, 0.22);
}

.top-case-actions {
  margin-top: 18px;
}

.case-summary {
  display: grid;
  gap: 10px;
  margin: 12px 0 0;
}

.case-summary div {
  padding-top: 10px;
  border-top: 1px solid rgba(37, 99, 168, 0.14);
}

.case-summary dt {
  margin-bottom: 4px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.4;
}

.case-summary dd {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}

.case-grid article {
  min-width: 0;
  padding: 18px;
}

.case-figure {
  position: relative;
  min-height: 112px;
  margin-bottom: 14px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    #eaf2f9;
  background-size: 18px 18px;
  border: 1px solid #d7e7f8;
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.7);
  animation: grid-drift 15s linear infinite;
}

.case-figure::before,
.case-figure::after {
  position: absolute;
  content: "";
}

.case-figure.repair::before { left: 20%; top: 24%; width: 58px; height: 58px; border: 10px solid var(--blue); border-radius: 50%; box-shadow: 42px 38px 0 -22px rgba(15, 42, 68, 0.22); }
.case-figure.repair::after { right: 20%; top: 30%; width: 44px; height: 44px; background: var(--orange); transform: rotate(45deg); border-radius: 6px; box-shadow: -42px 44px 0 -18px #fff; }
.case-figure.camera::before { left: 18%; top: 30%; width: 76px; height: 48px; background: var(--blue); border-radius: 8px; box-shadow: inset 0 -12px 0 rgba(15, 42, 68, 0.16); }
.case-figure.camera::after { right: 22%; top: 32%; width: 44px; height: 44px; border: 8px solid var(--cyan); border-radius: 50%; box-shadow: -58px 28px 0 -18px #fff; }
.case-figure.parts::before { left: 19%; top: 24%; width: 54px; height: 54px; background: #fff; border: 4px solid var(--blue); transform: rotate(12deg); box-shadow: 48px 26px 0 -18px rgba(37, 99, 168, 0.25); }
.case-figure.parts::after { right: 20%; top: 29%; width: 58px; height: 42px; border: 4px solid var(--orange); transform: skew(-12deg); background: rgba(255, 255, 255, 0.45); }
.case-figure.plc::before { left: 27%; top: 20%; width: 48%; height: 62%; background: #fff; border: 4px solid var(--blue); border-radius: 8px; box-shadow: inset 0 16px 0 rgba(37, 99, 168, 0.12); }
.case-figure.plc::after { left: 38%; top: 44%; width: 24%; height: 10px; background: var(--orange); border-radius: 99px; box-shadow: 0 18px 0 var(--cyan); }
.case-figure.cad::before { left: 20%; top: 24%; width: 60%; height: 54%; background: #fff; border: 4px solid var(--blue); border-radius: 8px; box-shadow: inset 0 16px 0 rgba(37, 99, 168, 0.12); }
.case-figure.cad::after { left: 36%; top: 41%; width: 30%; height: 26%; border: 3px solid var(--cyan); transform: skew(-12deg); background: rgba(14, 165, 233, 0.06); }

.case-tag {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 4px 9px;
  color: #fff;
  background: var(--blue);
  border-radius: 4px;
  font-size: 12px;
  font-weight: 900;
}

.case-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: -2px 0 12px;
}

.case-tags span {
  display: inline-flex;
  padding: 4px 8px;
  color: var(--navy);
  background: #f5f9fd;
  border: 1px solid #bfd5e8;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.3;
}

.case-grid article::after,
.case-detail-card::after {
  position: absolute;
  right: 14px;
  top: 14px;
  width: 60px;
  height: 3px;
  background:
    linear-gradient(90deg, transparent 0, rgba(37, 99, 168, 0.28) 24%, var(--cyan) 48%, rgba(37, 99, 168, 0.28) 72%, transparent 100%);
  border-radius: 999px;
  content: "";
  opacity: 0.72;
  animation: circuit-line 6.4s linear infinite;
}

.case-grid article:hover .case-figure,
.case-detail-card:hover .case-figure {
  animation-duration: 10s;
}

.recruit-home {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
  gap: 26px 30px;
  align-items: start;
}

.recruit-home h2 {
  margin-bottom: 12px;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.32;
}

.recruit-copy {
  position: sticky;
  top: 92px;
  padding: 26px 26px 28px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(151, 177, 201, 0.36);
  border-radius: 12px;
  box-shadow: 0 18px 42px rgba(15, 42, 68, 0.08);
  backdrop-filter: blur(5px);
}

.recruit-copy .eyebrow {
  margin-bottom: 10px;
  color: var(--blue);
}

.recruit-copy p:not(.eyebrow) {
  color: #40596d;
  line-height: 1.9;
}

.recruit-paths {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.top-recruit-grid {
  gap: 18px;
}

.recruit-paths article {
  position: relative;
  padding: 22px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.07);
}

.top-recruit-grid article {
  display: grid;
  align-content: start;
  gap: 11px;
  min-height: 250px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 252, 255, 0.96)),
    linear-gradient(90deg, rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.035) 1px, transparent 1px);
  background-size: auto, 24px 24px, 24px 24px;
  border: 1px solid rgba(151, 177, 201, 0.44);
  border-top: 4px solid rgba(37, 99, 168, 0.82);
  border-radius: 10px;
}

.top-recruit-grid article:nth-child(2),
.top-recruit-grid article:nth-child(4) {
  border-top-color: rgba(14, 165, 233, 0.7);
}

.top-recruit-grid article::before {
  width: 0;
  height: 0;
  background: none;
  border: 0;
  box-shadow: none;
  content: none;
  animation: none;
}

.top-recruit-grid article::after {
  content: none;
}

.top-recruit-grid article > * {
  position: relative;
  z-index: 1;
}

.top-recruit-grid h3 {
  margin-bottom: 0;
  color: #10263a;
  font-size: 18px;
  line-height: 1.48;
}

.top-recruit-grid p {
  color: #506678;
  line-height: 1.78;
}

.top-recruit-grid ul {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0;
  margin: 4px 0 0;
  list-style: none;
}

.top-recruit-grid li {
  padding: 5px 8px;
  color: #1b5f9f;
  background: rgba(232, 244, 253, 0.82);
  border: 1px solid rgba(37, 99, 168, 0.12);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
}

.recruit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 18px;
}

.top-recruit-support {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 16px 20px;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(151, 177, 201, 0.38);
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(15, 42, 68, 0.07);
}

.top-recruit-support p {
  max-width: 680px;
  margin: 0;
  color: #40596d;
  line-height: 1.8;
}

.top-recruit-support .recruit-actions {
  margin-top: 0;
}

.recruit-paths.wide article {
  padding: 26px;
}

.news-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news-list article {
  padding: 20px;
}

.top-news-list article {
  display: grid;
  align-content: start;
  gap: 8px;
  background: linear-gradient(180deg, #fff 0%, #f8fbfe 100%);
  border-top: 4px solid rgba(37, 99, 168, 0.28);
}

.top-news-list {
  grid-template-columns: 1fr;
}

.top-news-list .top-news-card {
  grid-template-columns: minmax(280px, 38%) minmax(0, 1fr);
  align-items: stretch;
  max-width: 1040px;
  min-height: 260px;
  margin-inline: auto;
  padding: 0;
  overflow: hidden;
}

.top-news-card__thumbnail {
  display: block;
  min-height: 260px;
  overflow: hidden;
}

.top-news-card__thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.top-news-card__body {
  align-self: center;
  padding: 28px 30px;
}

.top-news-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.top-news-card h3 a {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 640px) {
  .top-news-list .top-news-card {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .top-news-card__thumbnail {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .top-news-card__body {
    padding: 20px;
  }
}

.top-news-list h3,
.top-news-list p {
  margin-bottom: 0;
}

.news-note {
  max-width: 780px;
  margin: 16px 0 0;
  padding: 14px 16px;
  background: rgba(234, 242, 249, 0.72);
  border: 1px solid #c9ddee;
  border-radius: 8px;
  color: var(--muted);
}

.top-news-actions {
  margin-top: 18px;
}

.news-list time,
.news-index-card time {
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
}

.news-category,
.news-category-row span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  padding: 5px 10px;
  color: var(--blue);
  background: rgba(37, 99, 168, 0.09);
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.news-category-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}

.news-index-list {
  gap: 14px;
}

.news-index-card {
  display: grid;
  grid-template-columns: 118px 112px minmax(0, 1fr);
  align-items: start;
  gap: 16px;
  padding: 20px;
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.07);
}

.news-index-card h2 {
  margin: 0 0 8px;
  color: var(--navy);
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.45;
}

.news-index-card p {
  margin: 0;
}

.news-page-note {
  margin: 20px 0 0;
  padding: 14px 16px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.72);
  border: 1px dashed rgba(37, 99, 168, 0.28);
  border-radius: 8px;
  font-size: 13px;
}

.company-overview-grid,
.company-access-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: 24px;
  align-items: start;
}

.company-overview-grid {
  grid-template-columns: minmax(0, 1fr);
}

.company-profile-table {
  display: grid;
  width: 100%;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.07);
}

.company-profile-table div {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  border-bottom: 1px solid var(--line);
}

.company-profile-table div:last-child {
  border-bottom: 0;
}

.company-profile-table dt,
.company-profile-table dd {
  margin: 0;
  padding: 16px 18px;
}

.company-profile-table dt {
  color: var(--navy);
  background: rgba(37, 99, 168, 0.06);
  font-weight: 900;
}

.company-profile-table dd {
  color: var(--ink);
}

.company-note-card {
  padding: 24px;
  border-left: 5px solid var(--blue);
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.07);
}

.company-note-card h3,
.company-about h2,
.company-access-grid h2 {
  margin-bottom: 10px;
}

.company-about {
  max-width: 860px;
}

.company-about p:last-child,
.company-note-card p,
.company-value-grid p,
.company-service-grid p,
.company-access-grid p,
.company-check-list {
  color: var(--muted);
}

.company-service-grid,
.company-value-grid {
  display: grid;
  gap: 16px;
}

.company-service-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.company-value-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.company-service-grid a,
.company-value-grid article {
  min-width: 0;
  padding: 20px;
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.07);
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.company-service-grid a:hover,
.company-service-grid a:focus-visible,
.company-value-grid article:hover {
  border-color: rgba(37, 99, 168, 0.34);
  box-shadow: 0 16px 34px rgba(15, 42, 68, 0.12);
  transform: translateY(-3px);
}

.company-service-grid span,
.company-value-grid span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 28px;
  margin-bottom: 12px;
  padding-inline: 9px;
  color: var(--blue);
  background: rgba(37, 99, 168, 0.09);
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.company-service-grid h3,
.company-value-grid h3 {
  margin-bottom: 8px;
  color: var(--navy);
  font-size: 18px;
  line-height: 1.4;
}

.company-service-grid p,
.company-value-grid p {
  margin: 0;
  font-size: 14px;
}

.company-check-list {
  display: grid;
  gap: 10px;
  margin-bottom: 0;
  padding-left: 1.2em;
}

.company-map {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.company-map iframe {
  display: block;
  width: 100%;
  height: 320px;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(15, 42, 68, 0.12);
}

.company-map-link {
  justify-self: start;
  color: var(--blue);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.22em;
}

@media (max-width: 640px) {
  .company-map iframe {
    height: 260px;
  }
}

.company-related-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.contact-section {
  color: #fff;
  background: var(--navy);
}

.final-cta-section {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(116, 186, 232, 0.045) 1px, transparent 1px),
    radial-gradient(circle at 82% 18%, rgba(14, 165, 233, 0.2), transparent 28%),
    linear-gradient(135deg, rgba(16, 88, 161, 0.34), transparent 34%),
    linear-gradient(180deg, #061e36 0%, #0a2d4f 100%);
  background-size: 42px 42px, 42px 42px, auto, auto, auto;
}

.final-cta-section::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(132deg, transparent 0 48%, rgba(255, 255, 255, 0.08) 48.2%, transparent 48.8% 100%);
  content: "";
}

.final-cta-section .container {
  position: relative;
  z-index: 1;
}

.contact-section .eyebrow,
.contact-section .section-heading p,
.contact-section .placeholder-note {
  color: #cbdff1;
}

.final-cta-heading {
  max-width: 860px;
}

.final-cta-note {
  margin-top: 10px;
  margin-bottom: 6px;
  color: #d4e8fa;
  line-height: 1.8;
}

.final-cta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.contact-card {
  flex: 1 1 250px;
  min-width: 0;
  padding: 22px;
  color: var(--ink);
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.top-final-cta .contact-card {
  flex-basis: 360px;
}

.final-cta-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 246px;
  overflow: hidden;
  background:
    linear-gradient(180deg, #fff 0%, #f7fbff 100%);
  border: 1px solid rgba(191, 213, 232, 0.82);
  box-shadow: 0 24px 58px rgba(0, 0, 0, 0.18);
}

.final-cta-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--blue);
  content: "";
}

.final-cta-card > span {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 6px 12px;
  color: var(--blue);
  background: rgba(37, 99, 168, 0.09);
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.final-cta-card h3 {
  color: var(--navy);
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.35;
}

.final-cta-card p {
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.75;
}

.final-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: auto;
}

.final-cta-actions .button {
  min-height: 44px;
}

.final-cta-actions .button.primary {
  box-shadow: 0 14px 28px rgba(29, 78, 216, 0.22);
}

.final-cta-actions .button.ghost {
  color: var(--blue);
  background: #fff;
  border-color: rgba(37, 99, 168, 0.24);
}

.final-cta-actions .text-link {
  color: var(--blue);
  font-weight: 900;
  text-decoration: none;
}

.final-cta-actions .text-link::after {
  margin-left: 6px;
  color: var(--cyan);
  content: ">";
}

.final-cta-section .placeholder-note {
  margin-top: 18px;
  padding: 16px 18px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(203, 223, 241, 0.18);
  border-radius: 8px;
}

@media (max-width: 760px) {
  .top-faq-list,
  .final-cta-grid {
    grid-template-columns: 1fr;
  }

  .faq-guidance {
    gap: 8px;
  }

  .top-faq-list summary {
    min-height: 0;
  }

  .top-faq-card {
    min-height: 0;
    padding: 0;
  }

  .top-faq-card summary {
    min-height: 72px;
    padding: 18px 52px 18px 16px;
  }

  .top-faq-card p {
    padding: 0 48px 18px 16px;
  }

  .top-faq-contact {
    display: block;
  }

  .top-faq-contact .button {
    width: 100%;
    margin-top: 14px;
  }

  .final-cta-card {
    min-height: 0;
  }

  .final-cta-actions {
    align-items: stretch;
  }

  .final-cta-actions .button {
    width: 100%;
  }
}

.contact-card strong {
  display: inline-block;
  margin-top: 12px;
  color: var(--blue);
  font-size: 14px;
}

.contact-card-primary {
  flex-basis: 340px;
  border-color: #9cc5ee;
  border-top: 6px solid var(--cta);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.2);
}

.contact-card:hover,
.contact-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
}

.placeholder-note {
  margin: 18px 0 0;
}

.site-footer {
  color: #cbd6df;
  background: #101923;
  font-size: 13px;
}

.footer-inner {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-block: 24px;
}

.site-footer p {
  margin: 0;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px 14px;
}

.footer-links a {
  color: #e8f1f8;
  text-decoration: none;
}

.footer-links a:hover,
.footer-links a:focus-visible {
  color: #fff;
  text-decoration: underline;
}

.page-hero {
  padding-block: clamp(54px, 8vw, 90px);
  color: #fff;
  background:
    radial-gradient(circle at 78% 8%, rgba(14, 165, 233, 0.32), transparent 34%),
    linear-gradient(135deg, var(--navy), #173d62 58%, var(--blue));
}

.page-hero .eyebrow,
.page-hero .lead {
  color: #cfe4f7;
}

.service-hero {
  position: relative;
  overflow: hidden;
  color: var(--navy);
  background:
    linear-gradient(90deg, rgba(247, 251, 255, 0.98) 0%, rgba(236, 247, 255, 0.88) 36%, rgba(57, 118, 177, 0.34) 62%, rgba(7, 27, 51, 0.1) 100%),
    radial-gradient(circle at 20% 48%, rgba(255, 255, 255, 0.72), transparent 34%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(15, 42, 68, 0.1)),
    url("../images/hero/service-hero-tech-bg.webp") right center / cover no-repeat,
    #eef6fc;
}

.service-hero .page-hero-inner {
  position: relative;
  z-index: 1;
}

.service-hero .page-hero-inner > div:first-child {
  max-width: 780px;
  padding-block: clamp(18px, 2.8vw, 32px);
  padding-left: clamp(0px, 1vw, 10px);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.62);
}

.service-hero h1 {
  max-width: 780px;
  color: var(--navy);
  font-size: clamp(42px, 5.1vw, 66px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: 0;
}

.service-hero-title-line,
.service-hero .lead span {
  display: block;
}

.service-hero-title-line {
  word-break: keep-all;
  overflow-wrap: normal;
  white-space: nowrap;
}

.service-hero .lead {
  max-width: 640px;
  margin-top: 24px;
  font-size: clamp(17px, 1.55vw, 20px);
  font-weight: 800;
  line-height: 1.95;
}

.service-hero .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.service-hero .eyebrow::before {
  width: 34px;
  height: 2px;
  flex: 0 0 auto;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  border-radius: 999px;
  content: "";
}

.service-hero .lead {
  color: #213e59;
}

.service-hero .tech-illustration.page {
  opacity: 0;
}

.compact-hero {
  padding-block: clamp(52px, 7vw, 78px);
}

.case-hero {
  position: relative;
  min-height: clamp(560px, 40vw, 590px);
  padding-block: 0;
  color: var(--navy);
  isolation: isolate;
  overflow: hidden;
  background: var(--navy);
}

.case-hero__media,
.case-hero__shade,
.case-hero__grid {
  position: absolute;
  inset: 0;
}

.case-hero__media {
  z-index: -4;
  background: url("../images/hero/case-hero-blueprint-background.png") right center / cover no-repeat;
  background-image: image-set(
    url("../images/hero/case-hero-blueprint-background.webp") type("image/webp"),
    url("../images/hero/case-hero-blueprint-background.png") type("image/png")
  );
  transform: scale(1.01);
}

main.news-list-page .news-hero .case-hero__media {
  background: url("../images/news/news-hero-approved-test.png") right center / cover no-repeat;
  background-image: image-set(
    url("../images/news/news-hero-approved-test.webp") type("image/webp"),
    url("../images/news/news-hero-approved-test.png") type("image/png")
  );
}

.case-hero__shade {
  z-index: -3;
  background:
    linear-gradient(90deg, rgba(247, 251, 255, 0.96) 0%, rgba(235, 246, 255, 0.82) 31%, rgba(37, 99, 168, 0.34) 55%, rgba(5, 24, 47, 0.1) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(6, 28, 54, 0.12));
}

.case-hero__grid {
  z-index: -2;
  opacity: 0.42;
  background-image:
    linear-gradient(rgba(37, 99, 168, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37, 99, 168, 0.16) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(90deg, #000 0%, #000 42%, transparent 78%);
}

.case-hero__inner {
  display: grid;
  align-items: center;
  min-height: inherit;
  padding-block: clamp(44px, 7.5vw, 76px);
}

.case-hero__copy {
  width: min(620px, 100%);
  padding-block: clamp(18px, 2.8vw, 32px);
}

.case-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.case-hero__eyebrow::before {
  width: 34px;
  height: 2px;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  border-radius: 999px;
  content: "";
}

.case-hero h1 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(42px, 5.5vw, 72px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.08;
}

.case-hero__lead {
  max-width: 560px;
  margin: 24px 0 0;
  color: #213e59;
  font-size: clamp(17px, 1.7vw, 21px);
  font-weight: 800;
  line-height: 1.95;
}

.case-hero__note {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  margin: 22px 0 0;
  padding: 9px 14px;
  color: #17476f;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(80, 147, 203, 0.26);
  border-radius: 999px;
  box-shadow: 0 12px 34px rgba(21, 74, 119, 0.08);
  font-size: 14px;
  font-weight: 900;
}

.case-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.case-hero__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 13px 24px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 900;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.case-hero__button:hover {
  transform: translateY(-2px);
}

.case-hero__button--primary {
  color: #09213d;
  background: linear-gradient(135deg, #ffd66e, #f4b844);
  box-shadow: 0 18px 36px rgba(180, 116, 11, 0.22);
}

.case-hero__button--secondary {
  color: var(--navy);
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid rgba(24, 83, 134, 0.22);
  box-shadow: 0 14px 30px rgba(16, 58, 97, 0.1);
}

.case-category-policy {
  position: relative;
  overflow: hidden;
  padding: clamp(76px, 9vw, 116px) 0;
  background:
    radial-gradient(circle at 84% 16%, rgba(86, 179, 227, 0.18), transparent 34%),
    linear-gradient(180deg, #f7fbff 0%, #eef7ff 100%);
}

.case-category-policy::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(39, 100, 164, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(39, 100, 164, 0.08) 1px, transparent 1px);
  background-size: 44px 44px;
  content: "";
}

.case-category-policy::after {
  position: absolute;
  right: 5vw;
  bottom: 8%;
  z-index: 0;
  width: min(420px, 42vw);
  height: min(420px, 42vw);
  border: 1px solid rgba(36, 111, 178, 0.12);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74, 169, 219, 0.16), transparent 68%);
  content: "";
}

.case-category-policy__shell {
  position: relative;
  z-index: 1;
  width: min(100% - 56px, 1120px);
  margin: 0 auto;
}

.case-category-policy__header {
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
}

.case-category-policy__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 16px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.case-category-policy__eyebrow::before,
.case-category-policy__eyebrow::after {
  width: 28px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--blue));
  content: "";
}

.case-category-policy__eyebrow::after {
  background: linear-gradient(90deg, var(--blue), transparent);
}

.case-category-policy h2 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(34px, 4.2vw, 56px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.case-category-policy h2 span,
.case-category-policy__lead span,
.case-category-policy__card p span {
  display: inline;
}

.case-category-policy__header::after {
  display: block;
  width: 92px;
  height: 5px;
  margin: 28px auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, #d39b31, #b67812);
  content: "";
}

.case-category-policy__lead {
  margin: 30px auto 0;
  color: #263c56;
  font-size: clamp(17px, 1.8vw, 22px);
  font-weight: 800;
  line-height: 1.9;
}

.case-category-policy__board {
  position: relative;
  margin-top: clamp(42px, 5.8vw, 72px);
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(46, 102, 160, 0.18);
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(232, 244, 255, 0.68)),
    linear-gradient(90deg, rgba(255, 255, 255, 0.76), transparent);
  box-shadow: 0 22px 70px rgba(20, 56, 96, 0.14);
}

.case-category-policy__board::before {
  position: absolute;
  top: 18px;
  left: 24px;
  width: 58px;
  height: 8px;
  border-top: 2px solid rgba(30, 104, 173, 0.3);
  border-bottom: 2px solid rgba(30, 104, 173, 0.16);
  content: "";
}

.case-category-policy__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px 20px;
  margin: 0;
  padding: 8px 0 0;
  list-style: none;
}

.case-category-policy__chip {
  display: inline-flex;
  align-items: center;
  min-width: 210px;
  min-height: 76px;
  gap: 14px;
  padding: 18px 22px;
  border: 1px solid rgba(14, 56, 104, 0.32);
  border-radius: 18px;
  color: var(--navy);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(243, 249, 255, 0.88));
  box-shadow: 0 14px 34px rgba(22, 68, 112, 0.09);
  font-size: 21px;
  font-weight: 900;
  line-height: 1.2;
}

.case-category-policy__chip-icon {
  position: relative;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  color: var(--navy);
}

.case-category-policy__chip-icon::before,
.case-category-policy__chip-icon::after {
  position: absolute;
  content: "";
}

.case-category-policy__chip-icon--building::before {
  inset: 8px 6px 4px;
  border: 3px solid currentColor;
  border-top-width: 7px;
}

.case-category-policy__chip-icon--building::after {
  inset: 2px 12px auto;
  height: 12px;
  border: 3px solid currentColor;
  border-bottom: 0;
}

.case-category-policy__chip-icon--drawing::before {
  inset: 5px;
  border: 3px dashed currentColor;
}

.case-category-policy__chip-icon--drawing::after {
  inset: 13px;
  border-top: 3px solid currentColor;
  border-left: 3px solid currentColor;
}

.case-category-policy__chip-icon--plc::before,
.case-category-policy__chip-icon--panel::before {
  inset: 4px 7px;
  border: 3px solid currentColor;
}

.case-category-policy__chip-icon--plc::after,
.case-category-policy__chip-icon--panel::after {
  inset: 10px 14px;
  border-left: 3px solid currentColor;
  border-right: 3px solid currentColor;
}

.case-category-policy__chip-icon--camera::before {
  inset: 10px 3px 5px;
  border: 3px solid currentColor;
  border-radius: 4px;
}

.case-category-policy__chip-icon--camera::after {
  inset: 14px 12px 9px;
  border: 3px solid currentColor;
  border-radius: 50%;
}

.case-category-policy__chip-icon--cube::before {
  inset: 5px;
  border: 3px solid currentColor;
  transform: rotate(30deg) skewY(-16deg);
}

.case-category-policy__chip-icon--cube::after {
  inset: 11px 10px;
  border-left: 3px solid currentColor;
  transform: rotate(30deg);
}

.case-category-policy__chip-icon--robot::before {
  inset: 5px 13px;
  border-left: 4px solid currentColor;
  border-bottom: 4px solid currentColor;
  transform: rotate(34deg);
}

.case-category-policy__chip-icon--robot::after {
  right: 2px;
  bottom: 5px;
  width: 12px;
  height: 12px;
  border: 3px solid currentColor;
  border-radius: 50%;
}

.case-category-policy__chip-icon--gear::before {
  inset: 6px;
  border: 5px solid currentColor;
  border-radius: 50%;
}

.case-category-policy__chip-icon--gear::after {
  inset: 1px 15px;
  border-top: 7px solid currentColor;
  border-bottom: 7px solid currentColor;
}

.case-category-policy__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: clamp(34px, 4.8vw, 58px);
}

.case-category-policy__card {
  position: relative;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 26px;
  min-height: 226px;
  padding: clamp(28px, 4vw, 44px);
  overflow: hidden;
  border: 1px solid rgba(35, 99, 160, 0.14);
  border-radius: 26px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(239, 247, 255, 0.78)),
    radial-gradient(circle at 100% 0%, rgba(60, 153, 214, 0.16), transparent 42%);
  box-shadow: 0 22px 70px rgba(20, 56, 96, 0.14);
}

.case-category-policy__card::after {
  position: absolute;
  right: 22px;
  bottom: 18px;
  width: 88px;
  height: 88px;
  border-right: 1px solid rgba(30, 104, 173, 0.18);
  border-bottom: 1px solid rgba(30, 104, 173, 0.18);
  content: "";
}

.case-category-policy__card-icon {
  display: grid;
  place-items: center;
  width: 132px;
  height: 132px;
  border-radius: 32px;
  background: rgba(255, 255, 255, 0.7);
  box-shadow: inset 0 0 0 1px rgba(32, 87, 143, 0.12);
}

.case-category-policy__card-icon img {
  display: block;
  width: 90px;
  height: 90px;
  object-fit: contain;
}

.case-category-policy__card-icon picture {
  display: contents;
}

.case-category-policy__card-label {
  margin: 0 0 10px;
  color: #bf8721;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.case-category-policy__card-copy,
.case-category-policy__card h3,
.case-category-policy__card p {
  min-width: 0;
  overflow-wrap: anywhere;
}

.case-category-policy__card h3 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(26px, 2.8vw, 36px);
  font-weight: 900;
  line-height: 1.25;
}

.case-category-policy__card p:last-child {
  margin: 16px 0 0;
  color: #24384f;
  font-size: clamp(16px, 1.5vw, 19px);
  font-weight: 700;
  line-height: 1.9;
}

@media (max-width: 900px) {
  .case-category-policy {
    padding: 56px 0 44px;
  }

  .case-category-policy__shell {
    width: min(100% - 32px, 720px);
  }

  .case-category-policy__board {
    padding: 20px;
    border-radius: 22px;
  }

  .case-category-policy__chips {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .case-category-policy__chip {
    min-width: 0;
    min-height: 64px;
    gap: 10px;
    padding: 14px 12px;
    border-radius: 14px;
    font-size: 16px;
  }

  .case-category-policy__chip-icon {
    flex-basis: 28px;
    width: 28px;
    height: 28px;
  }

  .case-category-policy__cards {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 24px;
  }

  .case-category-policy__card {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 18px;
    min-height: 0;
    padding: 20px;
    border-radius: 22px;
  }

  .case-category-policy__card-icon {
    width: 82px;
    height: 82px;
    border-radius: 22px;
  }

  .case-category-policy__card-icon img {
    width: 58px;
    height: 58px;
  }
}

@media (max-width: 520px) {
  .case-category-policy {
    padding: 44px 0 30px;
  }

  .case-category-policy__shell {
    width: min(100% - 20px, 390px);
  }

  .case-category-policy h2 {
    font-size: 28px;
    line-height: 1.28;
  }

  .case-category-policy h2 span,
  .case-category-policy__lead span,
  .case-category-policy__card p span {
    display: block;
  }

  .case-category-policy__lead,
  .case-category-policy__card p,
  .case-category-policy__card h3 {
    word-break: break-all;
  }

  .case-category-policy__lead {
    margin-top: 22px;
    font-size: 15px;
    line-height: 1.85;
  }

  .case-category-policy__header::after {
    width: 64px;
    height: 4px;
    margin-top: 20px;
  }

  .case-category-policy__board {
    margin-top: 30px;
    padding: 16px;
  }

  .case-category-policy__chips {
    gap: 10px;
  }

  .case-category-policy__chip {
    min-height: 58px;
    padding: 12px 10px;
    font-size: 14px;
  }

  .case-category-policy__chip-icon {
    flex-basis: 24px;
    width: 24px;
    height: 24px;
  }

  .case-category-policy__card {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 14px;
    padding: 18px 20px;
    text-align: left;
  }

  .case-category-policy__card-icon {
    width: 76px;
    height: 76px;
  }

  .case-category-policy__card h3 {
    font-size: 25px;
  }
}

.service-detail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-detail-heading {
  max-width: 860px;
}

.service-detail-card {
  display: grid;
  align-content: start;
  grid-template-rows: auto auto auto auto 1fr;
  padding: 0 24px 24px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 254, 0.96));
  border: 1px solid rgba(151, 177, 201, 0.42);
  border-top: 4px solid rgba(37, 99, 168, 0.86);
  border-radius: 12px;
  box-shadow: 0 16px 36px rgba(15, 42, 68, 0.08);
}

.service-detail-card:nth-child(2),
.service-detail-card:nth-child(5) {
  border-top-color: rgba(14, 165, 233, 0.72);
}

.service-detail-card:nth-child(3) {
  border-top-color: rgba(37, 99, 168, 0.62);
}

.service-detail-visual {
  position: relative;
  aspect-ratio: 16 / 9;
  width: 100%;
  margin: 0 0 18px;
  padding: 14px 20px;
  overflow: hidden;
  background:
    radial-gradient(circle at 52% 46%, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.68) 58%, transparent 76%),
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    #f7fbff;
  background-size: auto, 24px 24px, 24px 24px, auto;
  border-bottom: 1px solid rgba(37, 99, 168, 0.12);
  border-radius: 10px;
}

.service-detail-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.service-detail-label {
  width: fit-content;
  margin-bottom: 10px;
  padding: 6px 10px;
  color: #1f5e98;
  background: rgba(37, 99, 168, 0.1);
  border: 1px solid rgba(37, 99, 168, 0.2);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.service-detail-card h2 {
  color: var(--navy);
}

.service-detail-card p {
  line-height: 1.86;
}

@media (min-width: 1041px) {
  .service-detail-card:nth-child(4),
  .service-detail-card:last-child {
    justify-self: center;
    transform: translateX(calc(50% + 8px));
  }
}

@media (min-width: 641px) and (max-width: 1040px) {
  .service-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.service-detail-points {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding: 0;
  list-style: none;
}

.service-detail-points li {
  position: relative;
  padding-left: 18px;
  line-height: 1.72;
}

.service-detail-points li::before {
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 7px;
  height: 7px;
  content: "";
  background: var(--blue);
  border-radius: 999px;
}

.detail-card ul,
.recruit-paths ul {
  margin-bottom: 0;
  color: #3d4c5b;
}

.cta-band {
  color: #fff;
  background: var(--navy);
}

.service-page-cta {
  background:
    linear-gradient(90deg, rgba(15, 42, 68, 0.98) 0%, rgba(15, 42, 68, 0.94) 100%),
    var(--navy);
}

.cta-band .eyebrow {
  color: #cfe4f7;
}

.cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.cta-inner h2 {
  margin-bottom: 0;
}

.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.case-category-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 22px;
}

.case-category-row span {
  padding: 8px 12px;
  color: var(--navy);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
}

.case-category-row-expanded {
  margin-bottom: 28px;
}

.case-category-row-expanded span {
  border-color: rgba(37, 99, 168, 0.24);
  background: rgba(255, 255, 255, 0.86);
}

.case-policy-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 24px;
  padding: 26px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(243, 247, 251, 0.92)),
    #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 16px 36px rgba(15, 42, 68, 0.08);
}

.case-policy-card h3,
.case-example-card h3,
.case-process-flow strong {
  margin: 0;
  color: var(--navy);
}

.case-policy-card p {
  margin: 10px 0 0;
  color: var(--muted);
}

.case-policy-card ul {
  display: grid;
  gap: 10px;
  align-content: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.case-policy-card li {
  position: relative;
  padding-left: 26px;
  color: var(--ink);
  font-weight: 800;
}

.case-policy-card li::before {
  position: absolute;
  left: 0;
  top: 0.1em;
  color: var(--blue);
  content: "✓";
  font-weight: 900;
}

.case-example-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.case-example-card {
  position: relative;
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 22px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 16px 34px rgba(15, 42, 68, 0.08);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.case-example-card::after {
  position: absolute;
  right: 18px;
  top: 18px;
  width: 72px;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--cyan), transparent);
  border-radius: 999px;
  content: "";
  opacity: 0.58;
  animation: circuit-line 7s linear infinite;
}

.case-example-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 42px rgba(15, 42, 68, 0.12);
}

.case-example-card > a {
  justify-self: start;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
}

.case-card-heading {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.case-example-card dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

.case-example-card dl div {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 12px;
}

.case-example-card dt {
  align-self: start;
  padding: 4px 8px;
  color: var(--navy);
  background: #eef5fc;
  border: 1px solid #c9dce9;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.45;
}

.case-example-card dd {
  margin: 0;
  color: var(--ink);
  line-height: 1.75;
}

.case-example-visual {
  position: relative;
  width: 58px;
  height: 58px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(37, 99, 168, 0.12), rgba(14, 165, 233, 0.08)),
    #f5f9fd;
  border: 1px solid #d7e7f8;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.74);
}

.case-example-visual::before,
.case-example-visual::after,
.case-example-visual span {
  position: absolute;
  content: "";
}

.case-example-visual::before {
  left: 13px;
  top: 28px;
  width: 32px;
  height: 2px;
  background: linear-gradient(90deg, rgba(37, 99, 168, 0.12), var(--blue), rgba(14, 165, 233, 0.2));
  border-radius: 999px;
  animation: case-flow-line 7.5s linear infinite;
}

.case-example-visual::after {
  right: 10px;
  top: 14px;
  width: 14px;
  height: 14px;
  background: #fff;
  border: 3px solid var(--cyan);
  border-radius: 4px;
  box-shadow: 0 21px 0 -5px rgba(37, 99, 168, 0.22);
}

.case-example-visual span:nth-child(1) {
  left: 9px;
  top: 15px;
  width: 16px;
  height: 16px;
  background: #fff;
  border: 3px solid var(--blue);
  border-radius: 5px;
}

.case-example-visual span:nth-child(2) {
  left: 24px;
  top: 21px;
  width: 14px;
  height: 14px;
  background: rgba(255, 255, 255, 0.82);
  border: 3px solid rgba(37, 99, 168, 0.34);
  border-radius: 50%;
  animation: status-pulse 7.5s ease-in-out infinite;
}

.case-example-visual span:nth-child(3) {
  right: 9px;
  bottom: 12px;
  width: 24px;
  height: 5px;
  background: var(--cyan);
  border-radius: 999px;
  box-shadow: 0 9px 0 var(--blue);
}

.case-part-redesign .case-example-visual span:nth-child(1) {
  transform: rotate(10deg);
}

.case-part-redesign .case-example-visual::after {
  border-radius: 50%;
}

.case-old-equipment .case-example-visual span:nth-child(2) {
  background: rgba(249, 115, 22, 0.22);
  border-color: var(--orange);
}

.case-old-equipment:hover .case-example-visual span:nth-child(2) {
  background: rgba(14, 165, 233, 0.22);
  border-color: var(--cyan);
}

.case-plc-update .case-example-visual span:nth-child(1) {
  width: 20px;
  height: 26px;
  border-radius: 6px;
  box-shadow: inset 0 7px 0 rgba(37, 99, 168, 0.12);
}

.case-plc-update .case-example-visual span:nth-child(3) {
  height: 4px;
  box-shadow: 0 8px 0 var(--blue), 0 16px 0 rgba(14, 165, 233, 0.68);
}

.case-vision .case-example-visual span:nth-child(1) {
  width: 24px;
  height: 16px;
  border-radius: 6px;
}

.case-vision .case-example-visual::after {
  border-radius: 50%;
}

.case-labor-saving .case-example-visual span:nth-child(1) {
  border-radius: 50%;
}

.case-labor-saving .case-example-visual span:nth-child(3) {
  width: 28px;
}

.case-cad-support .case-example-visual span:nth-child(1) {
  width: 24px;
  height: 17px;
  box-shadow: inset 0 6px 0 rgba(37, 99, 168, 0.14);
}

.case-cad-support .case-example-visual::after {
  transform: skew(-12deg);
}

.case-process-flow {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.case-process-flow li {
  position: relative;
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 12px 26px rgba(15, 42, 68, 0.07);
}

.case-process-flow li:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -13px;
  z-index: 1;
  width: 14px;
  height: 3px;
  background: var(--cyan);
  border-radius: 999px;
  content: "";
}

.case-process-flow span {
  width: fit-content;
  padding: 3px 8px;
  color: #fff;
  background: var(--blue);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.case-process-flow p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

@keyframes case-flow-line {
  0% { background-position: -80px 0; opacity: 0.48; }
  50% { opacity: 0.95; }
  100% { background-position: 80px 0; opacity: 0.48; }
}

.case-list {
  display: grid;
  gap: 18px;
}

.case-detail-card {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 22px;
  padding: 22px;
  box-shadow: 0 14px 32px rgba(15, 42, 68, 0.08);
}

.case-detail-card .case-figure {
  min-height: 100%;
  margin: 0;
}

.case-detail-card dl {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 12px 14px;
  margin: 12px 0 0;
}

.case-detail-card dt {
  align-self: start;
  padding: 4px 8px;
  color: var(--navy);
  background: #eef5fc;
  border: 1px solid #c9dce9;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.45;
}

.case-detail-card dd {
  margin: 0;
}

.recruit-hero .page-hero-inner {
  grid-template-columns: minmax(0, 1fr) 360px;
}

.people-illustration {
  position: relative;
  width: 100%;
  min-height: 280px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    rgba(255, 255, 255, 0.12);
  background-size: 22px 22px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  animation: grid-drift 16s linear infinite;
}

.people-illustration::before,
.people-illustration::after {
  position: absolute;
  content: "";
}

.people-illustration::before {
  left: 28px;
  right: 28px;
  bottom: 36px;
  height: 20px;
  background: rgba(215, 231, 248, 0.92);
  border-radius: 999px;
}

.people-illustration::after {
  right: 36px;
  top: 34px;
  width: 88px;
  height: 64px;
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.18) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.18) 1px, transparent 1px),
    #f7fbff;
  background-size: 12px 12px;
  border: 4px solid #93c5fd;
  border-radius: 8px;
  box-shadow: -170px 88px 0 -32px rgba(251, 191, 36, 0.9);
  animation: hero-float 6.8s ease-in-out infinite;
}

.people-illustration span {
  position: absolute;
  display: block;
}

.people-illustration span::before,
.people-illustration span::after {
  position: absolute;
  content: "";
}

.people-illustration span:nth-child(1),
.people-illustration span:nth-child(2) {
  top: 52px;
  width: 54px;
  height: 54px;
  background: #cfe4f7;
  border-radius: 50%;
}

.people-illustration span:nth-child(1) { left: 78px; }
.people-illustration span:nth-child(2) { right: 84px; background: #fbbf24; animation: machine-status 6.8s ease-in-out infinite; }
.people-illustration span:nth-child(3) { left: 56px; bottom: 48px; width: 110px; height: 132px; background: #eaf2f9; border-radius: 24px 24px 8px 8px; box-shadow: inset 0 -22px 0 rgba(37, 99, 168, 0.18); animation: hero-float-alt 7s ease-in-out infinite; }
.people-illustration span:nth-child(4) { right: 58px; bottom: 48px; width: 124px; height: 132px; background: #93c5fd; border-radius: 24px 24px 8px 8px; box-shadow: inset 0 -22px 0 rgba(15, 42, 68, 0.16); }

.people-illustration span:nth-child(1)::before,
.people-illustration span:nth-child(2)::before {
  left: 16px;
  top: 22px;
  width: 6px;
  height: 6px;
  background: var(--navy);
  border-radius: 50%;
  box-shadow: 16px 0 0 var(--navy);
}

.people-illustration span:nth-child(1)::after,
.people-illustration span:nth-child(2)::after {
  left: 18px;
  bottom: 12px;
  width: 18px;
  height: 5px;
  border-bottom: 2px solid var(--navy);
  border-radius: 0 0 16px 16px;
}

.people-illustration span:nth-child(3)::before,
.people-illustration span:nth-child(4)::before {
  top: 30px;
  width: 62px;
  height: 34px;
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.18) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.18) 1px, transparent 1px),
    #fff;
  background-size: 10px 10px;
  border: 3px solid #bfd5e8;
  border-radius: 6px;
}

.people-illustration span:nth-child(3)::before {
  left: 24px;
}

.people-illustration span:nth-child(4)::before {
  right: 24px;
}

.robot-hero {
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.3),
    0 24px 60px rgba(15, 42, 68, 0.18);
}

.robot-hero::before {
  background:
    linear-gradient(90deg, rgba(215, 231, 248, 0.9), rgba(147, 197, 253, 0.72)),
    linear-gradient(90deg, transparent, rgba(103, 232, 249, 0.58), transparent);
  background-size: auto, 120px 100%;
  animation: path-run 8s linear infinite;
}

.robot-hero span:nth-child(1) {
  top: 70px;
  left: 112px;
  width: 74px;
  height: 58px;
  background: #dbeafe;
  border: 4px solid #93c5fd;
  border-radius: 18px;
  box-shadow:
    inset 0 -8px 0 rgba(37, 99, 168, 0.12),
    0 -14px 0 -8px var(--cyan);
  animation: robot-bob 7.2s ease-in-out infinite;
}

.robot-hero span:nth-child(1)::before {
  left: 18px;
  top: 21px;
  width: 8px;
  height: 8px;
  background: var(--navy);
  border-radius: 50%;
  box-shadow: 28px 0 0 var(--navy);
}

.robot-hero span:nth-child(1)::after {
  left: 23px;
  bottom: 12px;
  width: 28px;
  height: 8px;
  border-bottom: 3px solid var(--blue);
  border-radius: 0 0 22px 22px;
}

.robot-hero span:nth-child(2) {
  top: 88px;
  left: 76px;
  width: 34px;
  height: 10px;
  background: #dbeafe;
  border-radius: 999px;
  transform-origin: right center;
  animation: robot-wave 3.4s ease-in-out infinite;
}

.robot-hero span:nth-child(2)::after {
  left: -15px;
  top: -7px;
  width: 18px;
  height: 18px;
  background: #fff;
  border: 3px solid #93c5fd;
  border-radius: 50%;
}

.robot-hero span:nth-child(3) {
  left: 104px;
  bottom: 52px;
  width: 92px;
  height: 96px;
  background:
    linear-gradient(var(--cyan), var(--cyan)) 50% 36% / 46px 7px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 50% 54% / 52px 7px no-repeat,
    #f8fbff;
  border: 4px solid #bfdbfe;
  border-radius: 18px 18px 10px 10px;
  box-shadow: inset 0 -18px 0 rgba(37, 99, 168, 0.1);
  animation: robot-bob 7.2s ease-in-out infinite;
}

.robot-hero span:nth-child(4) {
  right: 42px;
  bottom: 48px;
  width: 128px;
  height: 118px;
  background:
    radial-gradient(circle at 24% 28%, var(--green) 0 5px, transparent 6px),
    radial-gradient(circle at 46% 28%, var(--orange) 0 5px, transparent 6px),
    radial-gradient(circle at 68% 28%, var(--cyan) 0 5px, transparent 6px),
    linear-gradient(var(--blue), var(--blue)) 50% 64% / 74px 8px no-repeat,
    #93c5fd;
  border-radius: 18px 18px 8px 8px;
  animation: hero-float-alt 8s ease-in-out infinite;
}

.robot-hero span:nth-child(5),
.robot-hero span:nth-child(6),
.robot-hero span:nth-child(7),
.robot-hero span:nth-child(8) {
  width: 18px;
  height: 18px;
  background: rgba(103, 232, 249, 0.8);
  border: 3px solid rgba(255, 255, 255, 0.78);
  border-radius: 50%;
  animation: guide-spark 6s ease-in-out infinite;
}

.robot-hero span:nth-child(5) { left: 42px; top: 48px; }
.robot-hero span:nth-child(6) { left: 220px; top: 36px; animation-delay: 1.2s; }
.robot-hero span:nth-child(7) { right: 182px; bottom: 80px; animation-delay: 2s; }
.robot-hero span:nth-child(8) { right: 28px; top: 132px; animation-delay: 3s; }

.skill-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.skill-grid article {
  position: relative;
  min-height: 230px;
  padding: 122px 20px 20px;
  overflow: hidden;
}

.skill-grid article::before {
  position: absolute;
  left: 20px;
  top: 20px;
  display: block;
  width: calc(100% - 40px);
  height: 78px;
  margin: 0;
  background:
    radial-gradient(circle at 22% 34%, #cfe4f7 0 12px, transparent 13px),
    linear-gradient(#eaf2f9, #eaf2f9) 16% 80% / 40px 30px no-repeat,
    linear-gradient(90deg, rgba(14, 165, 233, 0.16) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.16) 1px, transparent 1px),
    #f8fbff;
  background-size: auto, auto, 14px 14px, 14px 14px, auto;
  border: 1px solid #d7e7f8;
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72);
  content: "";
  animation: mini-grid-drift 18s linear infinite;
}

.skill-grid article::after {
  right: 24px;
  top: 36px;
  width: 34px;
  height: 28px;
  background:
    radial-gradient(circle at 34% 42%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 66% 42%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 75% / 14px 3px no-repeat,
    #dbeafe;
  border: 2px solid #93c5fd;
  border-radius: 9px;
  box-shadow:
    0 -8px 0 -5px var(--cyan),
    -20px 14px 0 -11px rgba(14, 165, 233, 0.6);
  opacity: 1;
  animation: badge-pop 7.2s ease-in-out infinite;
}

.skill-grid article:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 34px rgba(15, 42, 68, 0.12);
}

.skill-grid article:hover::before {
  animation-duration: 9s;
}

.skill-grid article:hover::after {
  animation-duration: 3.8s;
}

.skill-grid article:nth-child(2)::before {
  background:
    radial-gradient(circle at 22% 34%, #cfe4f7 0 12px, transparent 13px),
    linear-gradient(#eaf2f9, #eaf2f9) 16% 80% / 40px 30px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 62% 62% / 62px 8px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 58% 42% / 86px 8px no-repeat,
    #f8fbff;
}

.skill-grid article:nth-child(3)::before {
  background:
    radial-gradient(circle at 22% 34%, #cfe4f7 0 12px, transparent 13px),
    linear-gradient(#eaf2f9, #eaf2f9) 16% 80% / 40px 30px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 58% 70% / 92px 8px no-repeat,
    linear-gradient(#fff, #fff) 62% 42% / 54px 40px no-repeat,
    #f8fbff;
}

.skill-grid article:nth-child(4)::before,
.skill-grid article:nth-child(5)::before {
  background:
    radial-gradient(circle at 22% 34%, #cfe4f7 0 12px, transparent 13px),
    linear-gradient(#eaf2f9, #eaf2f9) 16% 80% / 40px 30px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 62% 60% / 76px 8px no-repeat,
    linear-gradient(#fff, #fff) 60% 38% / 66px 42px no-repeat,
    #f8fbff;
}

.skill-grid article:nth-child(6)::before {
  background:
    radial-gradient(circle at 22% 34%, #cfe4f7 0 12px, transparent 13px),
    linear-gradient(#eaf2f9, #eaf2f9) 16% 80% / 40px 30px no-repeat,
    linear-gradient(var(--green), var(--green)) 64% 40% / 14px 14px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 58% 70% / 96px 8px no-repeat,
    #f8fbff;
}

.skill-badge-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.skill-badge-card {
  position: relative;
  display: grid;
  grid-template-rows: 136px auto;
  gap: 18px;
  min-height: 0;
  padding: 18px;
  background:
    radial-gradient(circle at 88% 14%, rgba(14, 165, 233, 0.11), transparent 28%),
    #fff;
  border-color: rgba(191, 213, 232, 0.95);
}

.skill-grid .skill-badge-card {
  min-height: 0;
  padding: 18px;
}

.skill-badge-card::before {
  left: 16px;
  right: 16px;
  top: 16px;
  width: auto;
  height: 136px;
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.07) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.07) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbff, #eaf5fc);
  background-size: 14px 14px, 14px 14px, auto;
  border-color: rgba(147, 197, 253, 0.76);
  border-radius: 12px;
  animation: mini-grid-drift 18s linear infinite;
}

.skill-badge-card::after {
  display: none;
}

.skill-badge-content {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.skill-badge-content strong {
  display: block;
  margin: 0 0 8px;
}

.skill-badge-content p {
  margin: 0;
}

.skill-badge-visual,
.skill-badge-visual span,
.skill-badge-visual::before,
.skill-badge-visual::after {
  position: absolute;
  display: block;
  content: "";
}

.skill-badge-visual {
  position: relative;
  z-index: 1;
  min-height: 136px;
  overflow: hidden;
  border-radius: 10px;
  pointer-events: none;
}

.skill-badge-visual::before {
  left: 8px;
  top: 12px;
  width: 54px;
  height: 42px;
  background:
    linear-gradient(135deg, transparent 0 45%, rgba(14, 165, 233, 0.2) 46% 58%, transparent 59%),
    linear-gradient(90deg, var(--blue), var(--cyan)) 50% 32% / 34px 5px no-repeat,
    linear-gradient(90deg, rgba(37, 99, 168, 0.24), rgba(14, 165, 233, 0.2)) 50% 64% / 34px 5px no-repeat,
    #eff6ff;
  border: 3px solid #93c5fd;
  border-radius: 14px;
  box-shadow:
    0 38px 0 11px rgba(239, 246, 255, 0.92),
    inset 0 -8px 0 rgba(37, 99, 168, 0.08);
  animation: mini-lift 7.2s ease-in-out infinite;
}

.skill-badge-visual::after {
  left: 72px;
  right: 8px;
  top: 28px;
  height: 4px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), transparent),
    radial-gradient(circle, var(--green) 0 4px, transparent 5px);
  background-size: 120px 4px, 34px 10px;
  border-radius: 999px;
  animation: path-run 6s linear infinite;
}

.skill-badge-visual span:nth-child(1) {
  right: 8px;
  top: 8px;
  width: 74px;
  height: 54px;
  background: #fff;
  border: 3px solid #93c5fd;
  border-radius: 8px;
  animation: expert-panel-float 7.2s ease-in-out infinite;
}

.skill-badge-visual span:nth-child(2) {
  right: 20px;
  bottom: 10px;
  width: 52px;
  height: 8px;
  background: var(--blue);
  border-radius: 999px;
  box-shadow: 0 15px 0 var(--cyan);
  animation: circuit-line 7s linear infinite;
}

.skill-badge-visual span:nth-child(3) {
  left: 74px;
  top: 60px;
  width: 20px;
  height: 20px;
  background: var(--green);
  border-radius: 50%;
  animation: expert-signal-pulse 6.4s ease-in-out infinite;
}

.skill-cad .skill-badge-visual span:nth-child(1) {
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.14) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.14) 1px, transparent 1px),
    linear-gradient(135deg, transparent 43%, var(--cyan) 44% 50%, transparent 51%),
    #fff;
  background-size: 10px 10px, 10px 10px, auto, auto;
}

.skill-cad .skill-badge-visual span:nth-child(2) {
  width: 44px;
  height: 34px;
  background:
    linear-gradient(45deg, transparent 45%, var(--blue) 46% 55%, transparent 56%),
    linear-gradient(-45deg, transparent 45%, var(--cyan) 46% 55%, transparent 56%);
  box-shadow: none;
  animation: mini-lift 7s ease-in-out infinite;
}

.skill-assembly .skill-badge-visual span:nth-child(1) {
  background:
    linear-gradient(#dbeafe, #dbeafe) 16px 16px / 34px 22px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 42px 38px / 34px 8px no-repeat,
    #fff;
}

.skill-assembly .skill-badge-visual span:nth-child(2) {
  right: 22px;
  top: 54px;
  width: 56px;
  height: 10px;
  background: var(--orange);
  box-shadow: 0 16px 0 var(--green);
  animation: beginner-growth-fill 7s ease-in-out infinite;
}

.skill-wiring .skill-badge-visual span:nth-child(1) {
  background:
    radial-gradient(circle at 24% 26%, var(--green) 0 4px, transparent 5px),
    radial-gradient(circle at 48% 26%, var(--orange) 0 4px, transparent 5px),
    radial-gradient(circle at 72% 26%, var(--cyan) 0 4px, transparent 5px),
    linear-gradient(var(--blue), var(--blue)) 50% 64% / 54px 6px no-repeat,
    #fff;
}

.skill-wiring .skill-badge-visual span:nth-child(2) {
  background:
    linear-gradient(90deg, transparent, var(--orange), transparent),
    radial-gradient(circle, var(--cyan) 0 4px, transparent 5px);
  background-size: 74px 8px, 28px 12px;
  box-shadow: 0 15px 0 var(--blue);
}

.skill-plc .skill-badge-visual span:nth-child(1) {
  background:
    linear-gradient(var(--cyan), var(--cyan)) 14px 14px / 42px 6px no-repeat,
    linear-gradient(var(--green), var(--green)) 14px 30px / 24px 6px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 14px 46px / 50px 6px no-repeat,
    #fff;
}

.skill-plc .skill-badge-visual span:nth-child(3) {
  background: var(--orange);
  box-shadow:
    18px 0 0 var(--green),
    36px 0 0 var(--cyan);
}

.skill-field .skill-badge-visual span:nth-child(1) {
  background:
    linear-gradient(45deg, transparent 42%, var(--green) 43% 56%, transparent 57%),
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%),
    linear-gradient(#fff, #fff) 50% 55% / 54px 36px no-repeat,
    #eaf2f9;
}

.skill-field .skill-badge-visual span:nth-child(2) {
  background:
    linear-gradient(90deg, transparent, var(--green), transparent),
    radial-gradient(circle, var(--green) 0 4px, transparent 5px);
  background-size: 74px 8px, 28px 12px;
  box-shadow: 0 15px 0 var(--blue);
}

.skill-badge-card:hover .skill-badge-visual::after,
.skill-badge-card:hover .skill-badge-visual span:nth-child(2),
.skill-badge-card:hover .skill-badge-visual span:nth-child(3) {
  opacity: 1;
  animation-duration: 3.6s;
}

.work-field-grid article::before,
.stack-list div::before {
  display: block;
  width: 32px;
  height: 6px;
  margin-bottom: 12px;
  background: var(--blue);
  border-radius: 99px;
  box-shadow: 38px 0 0 rgba(14, 165, 233, 0.35);
  content: "";
}

/* Recruit work-field cards: role-specific moving diagrams for each job. */
.work-field-grid article {
  min-height: 276px;
  padding-top: 132px;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.work-field-grid article:hover {
  border-color: rgba(14, 165, 233, 0.44);
  box-shadow: 0 18px 34px rgba(15, 42, 68, 0.12);
  transform: translateY(-4px);
}

.work-field-grid article::before {
  position: absolute;
  top: 20px;
  right: 20px;
  left: 20px;
  display: block;
  width: auto;
  height: 88px;
  margin: 0;
  background:
    radial-gradient(circle at 22% 38%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 31% 38%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--green), var(--green)) 26% 57% / 18px 3px no-repeat,
    linear-gradient(#dbeafe, #dbeafe) 25% 48% / 54px 42px no-repeat,
    linear-gradient(90deg, rgba(14, 165, 233, 0.16) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.16) 1px, transparent 1px),
    #f8fbff;
  background-size: auto, auto, auto, auto, 14px 14px, 14px 14px, auto;
  border: 1px solid #d7e7f8;
  border-radius: 10px;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.72),
    0 10px 22px rgba(15, 42, 68, 0.07);
  content: "";
  animation: mini-grid-drift 15s linear infinite;
}

.work-field-grid article::after {
  right: 36px;
  top: 42px;
  width: 36px;
  height: 30px;
  background:
    radial-gradient(circle at 35% 43%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 66% 43%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 74% / 15px 3px no-repeat,
    #dbeafe;
  border: 2px solid #93c5fd;
  border-radius: 10px;
  box-shadow:
    0 -8px 0 -5px var(--cyan),
    -20px 14px 0 -11px rgba(14, 165, 233, 0.6),
    0 0 0 6px rgba(14, 165, 233, 0.08);
  opacity: 1;
  animation: badge-pop 6.8s ease-in-out infinite;
}

.work-field-grid article:hover::before {
  animation-duration: 8s;
}

.work-field-grid article:hover::after {
  box-shadow:
    0 -8px 0 -5px var(--cyan),
    -22px 15px 0 -10px rgba(14, 165, 233, 0.72),
    0 0 0 8px rgba(14, 165, 233, 0.14);
  animation-duration: 3.6s;
}

.work-field-grid article:nth-child(1)::before {
  background:
    radial-gradient(circle at 22% 38%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 31% 38%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--green), var(--green)) 26% 57% / 18px 3px no-repeat,
    linear-gradient(#dbeafe, #dbeafe) 25% 48% / 54px 42px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 66% 30% / 74px 6px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 68% 54% / 96px 5px no-repeat,
    linear-gradient(90deg, transparent 43%, rgba(14, 165, 233, 0.36) 44% 47%, transparent 48%),
    #f8fbff;
}

.work-field-grid article:nth-child(2)::before {
  background:
    radial-gradient(circle at 22% 38%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 31% 38%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--green), var(--green)) 26% 57% / 18px 3px no-repeat,
    linear-gradient(#dbeafe, #dbeafe) 25% 48% / 54px 42px no-repeat,
    radial-gradient(circle at 66% 32%, var(--green) 0 5px, transparent 6px),
    radial-gradient(circle at 78% 32%, var(--orange) 0 5px, transparent 6px),
    radial-gradient(circle at 90% 32%, var(--cyan) 0 5px, transparent 6px),
    linear-gradient(var(--blue), var(--blue)) 74% 63% / 96px 6px no-repeat,
    linear-gradient(rgba(14, 165, 233, 0.35), rgba(14, 165, 233, 0.35)) 74% 76% / 72px 5px no-repeat,
    #f8fbff;
}

.work-field-grid article:nth-child(3)::before {
  background:
    radial-gradient(circle at 22% 38%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 31% 38%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--green), var(--green)) 26% 57% / 18px 3px no-repeat,
    linear-gradient(#dbeafe, #dbeafe) 25% 48% / 54px 42px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 67% 50% / 92px 7px no-repeat,
    linear-gradient(#dbeafe, #dbeafe) 63% 66% / 42px 22px no-repeat,
    radial-gradient(circle at 83% 66%, var(--green) 0 8px, transparent 9px),
    linear-gradient(90deg, transparent, rgba(103, 232, 249, 0.7), transparent) 70% 82% / 120px 4px no-repeat,
    #f8fbff;
}

.work-field-grid article:nth-child(4)::before {
  background:
    radial-gradient(circle at 22% 38%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 31% 38%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--green), var(--green)) 26% 57% / 18px 3px no-repeat,
    linear-gradient(#dbeafe, #dbeafe) 25% 48% / 54px 42px no-repeat,
    linear-gradient(45deg, transparent 44%, var(--green) 45% 58%, transparent 59%) 70% 35% / 44px 44px no-repeat,
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%) 70% 35% / 44px 44px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 76% 73% / 96px 6px no-repeat,
    radial-gradient(circle at 61% 74%, var(--orange) 0 7px, transparent 8px),
    #f8fbff;
}

.work-field-grid article:nth-child(5)::before {
  background:
    radial-gradient(circle at 22% 38%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 31% 38%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--green), var(--green)) 26% 57% / 18px 3px no-repeat,
    linear-gradient(#dbeafe, #dbeafe) 25% 48% / 54px 42px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 60% 32% / 62px 6px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 60% 49% / 88px 5px no-repeat,
    radial-gradient(circle at 66% 76%, var(--green) 0 8px, transparent 9px),
    radial-gradient(circle at 78% 76%, var(--cyan) 0 8px, transparent 9px),
    radial-gradient(circle at 90% 76%, var(--orange) 0 8px, transparent 9px),
    #f8fbff;
}

.work-field-grid article:nth-child(2)::after,
.work-field-grid article:nth-child(4)::after {
  box-shadow:
    0 -8px 0 -5px var(--cyan),
    -20px 14px 0 -11px rgba(249, 115, 22, 0.44),
    0 0 0 6px rgba(249, 115, 22, 0.08);
}

.work-field-grid article:nth-child(5)::after {
  box-shadow:
    0 -8px 0 -5px var(--green),
    -20px 14px 0 -11px rgba(14, 165, 233, 0.62),
    0 0 0 6px rgba(63, 139, 97, 0.08);
}

.recruit-job-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.recruit-job-grid .recruit-job-card {
  grid-column: span 2;
}

.recruit-job-grid .recruit-job-card:nth-child(4) {
  grid-column: 2 / span 2;
}

.recruit-job-grid .recruit-job-card:nth-child(5) {
  grid-column: 4 / span 2;
}

.recruit-job-grid .recruit-job-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  padding: 20px;
}

.recruit-job-grid .recruit-job-card::before,
.recruit-job-grid .recruit-job-card::after {
  display: none;
  content: none;
}

.job-card-heading {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  min-width: 0;
}

.job-card-number {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  margin-top: 2px;
  padding: 3px 10px;
  color: #fff;
  background: var(--blue);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.job-card-heading h3 {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: 21px;
  line-height: 1.45;
}

.recruit-job-grid dl {
  display: grid;
  gap: 8px;
  margin: 0;
}

.recruit-job-grid dl div {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 12px;
  background: rgba(243, 247, 251, 0.88);
  border: 1px solid rgba(216, 226, 236, 0.9);
  border-radius: 8px;
}

.recruit-job-grid dt {
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
}

.recruit-job-grid dd {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.recruit-job-grid small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.job-card-visual {
  position: relative;
  min-height: 156px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 22%, rgba(103, 232, 249, 0.18), transparent 22%),
    linear-gradient(90deg, rgba(14, 165, 233, 0.14) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.14) 1px, transparent 1px),
    #f8fbff;
  background-size: auto, 16px 16px, 16px 16px, auto;
  border: 1px solid #d7e7f8;
  border-radius: 10px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72);
  animation: mini-grid-drift 18s linear infinite;
}

.job-card-visual::before,
.job-card-visual::after,
.job-card-visual i,
.job-card-visual i::before,
.job-card-visual i::after,
.job-card-visual b,
.job-card-visual b::before,
.job-card-visual b::after {
  position: absolute;
  display: block;
  content: "";
}

.job-card-visual::before {
  left: 24px;
  bottom: 24px;
  z-index: 2;
  width: 52px;
  height: 42px;
  background:
    radial-gradient(circle at 34% 42%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 66% 42%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--green), var(--green)) 50% 72% / 20px 4px no-repeat,
    #dbeafe;
  border: 3px solid #93c5fd;
  border-radius: 14px;
  box-shadow:
    0 -10px 0 -6px var(--cyan),
    0 14px 0 6px #eef5fc;
  animation: badge-pop 7s ease-in-out infinite;
}

.job-card-visual::after {
  left: 66px;
  bottom: 54px;
  z-index: 1;
  width: 54px;
  height: 5px;
  background: linear-gradient(90deg, transparent, var(--cyan), transparent);
  border-radius: 999px;
  animation: path-run 6s linear infinite;
}

.job-card-visual i:nth-child(1) {
  right: 24px;
  top: 22px;
  width: 168px;
  height: 88px;
  background: rgba(255, 255, 255, 0.94);
  border: 3px solid #bfdbfe;
  border-radius: 12px;
  box-shadow: 0 12px 24px rgba(15, 42, 68, 0.08);
  animation: hero-float 8s ease-in-out infinite;
}

.job-card-visual i:nth-child(2) {
  right: 56px;
  bottom: 26px;
  width: 96px;
  height: 7px;
  background: linear-gradient(90deg, transparent, var(--cyan), var(--cta), transparent);
  border-radius: 999px;
  animation: path-run 5.8s linear infinite;
}

.job-card-visual i:nth-child(3) {
  right: 34px;
  bottom: 34px;
  width: 18px;
  height: 18px;
  background: var(--green);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 7px rgba(63, 139, 97, 0.12);
  animation: guide-spark 6.4s ease-in-out infinite;
}

.job-card-visual i:nth-child(4) {
  left: 34px;
  top: 28px;
  width: 44px;
  height: 22px;
  background: rgba(255, 255, 255, 0.92);
  border: 2px solid #bfdbfe;
  border-radius: 999px;
  animation: hero-float-alt 8.4s ease-in-out infinite;
}

.recruit-job-card:hover .job-card-visual {
  animation-duration: 9s;
}

.recruit-job-card:hover .job-card-visual::before {
  animation-duration: 4.4s;
}

.recruit-job-card:hover .job-card-visual::after,
.recruit-job-card:hover .job-card-visual i:nth-child(2) {
  opacity: 1;
  animation-duration: 3.8s;
}

.job-design .job-card-visual i:nth-child(1) {
  background:
    linear-gradient(var(--blue), var(--blue)) 24px 22px / 64px 6px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.2), rgba(37, 99, 168, 0.2)) 24px 44px / 98px 5px no-repeat,
    linear-gradient(90deg, transparent 52%, var(--cyan) 53% 56%, transparent 57%),
    linear-gradient(45deg, transparent 44%, rgba(14, 165, 233, 0.38) 45% 53%, transparent 54%),
    #fff;
}

.job-design .job-card-visual i:nth-child(2) {
  right: 66px;
  width: 112px;
  background:
    radial-gradient(circle, #fff 0 4px, transparent 5px) 0 50% / 28px 10px repeat-x,
    linear-gradient(90deg, transparent, var(--cyan), transparent);
}

.job-design .job-card-visual i:nth-child(4)::before {
  inset: 5px 8px;
  border-top: 3px solid var(--blue);
  border-right: 3px solid var(--cyan);
  transform: skewX(-12deg);
}

.design-focus-visual {
  min-height: 190px;
  background:
    radial-gradient(circle at 77% 20%, rgba(103, 232, 249, 0.2), transparent 23%),
    radial-gradient(circle at 18% 80%, rgba(37, 99, 168, 0.14), transparent 26%),
    linear-gradient(90deg, rgba(37, 99, 168, 0.12) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.12) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbff 0%, #eef7ff 100%);
  background-size: auto, auto, 18px 18px, 18px 18px, auto;
}

.design-focus-visual::before {
  left: 22px;
  bottom: 28px;
  width: 58px;
  height: 50px;
  background:
    radial-gradient(circle at 34% 38%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 66% 38%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 69% / 24px 4px no-repeat,
    linear-gradient(#eff6ff, #dbeafe);
  border-color: #7dd3fc;
  border-radius: 18px 18px 15px 15px;
  box-shadow:
    0 -13px 0 -7px var(--cyan),
    0 17px 0 7px rgba(219, 234, 254, 0.94),
    38px 8px 0 -17px #bfdbfe,
    50px -3px 0 -22px var(--cyan);
  animation: cad-guide-robot 7.2s ease-in-out infinite;
}

.design-focus-visual::after {
  left: 70px;
  bottom: 70px;
  width: 96px;
  height: 5px;
  background: linear-gradient(90deg, transparent, var(--cyan), var(--cta), transparent);
  transform-origin: left center;
  transform: rotate(-14deg);
  opacity: 0.72;
  animation: design-guide-beam 5.6s ease-in-out infinite;
}

.design-focus-visual i:nth-child(1) {
  right: 22px;
  top: 22px;
  width: 205px;
  height: 116px;
  overflow: hidden;
  background:
    linear-gradient(var(--navy), var(--navy)) 0 0 / 100% 24px no-repeat,
    radial-gradient(circle at 24px 12px, #ef4444 0 4px, transparent 5px),
    radial-gradient(circle at 40px 12px, #f59e0b 0 4px, transparent 5px),
    radial-gradient(circle at 56px 12px, var(--green) 0 4px, transparent 5px),
    linear-gradient(90deg, rgba(37, 99, 168, 0.16) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.16) 1px, transparent 1px),
    #fff;
  background-size: 100% 24px, auto, auto, auto, 17px 17px, 17px 17px, auto;
  border-color: #93c5fd;
  box-shadow:
    0 15px 30px rgba(15, 42, 68, 0.11),
    inset 0 0 0 1px rgba(255, 255, 255, 0.8);
}

.design-focus-visual i:nth-child(1)::before {
  left: 42px;
  top: 44px;
  width: 92px;
  height: 48px;
  background:
    linear-gradient(28deg, transparent 44%, var(--blue) 45% 48%, transparent 49%),
    linear-gradient(-28deg, transparent 47%, var(--cyan) 48% 51%, transparent 52%),
    linear-gradient(90deg, transparent 48%, rgba(37, 99, 168, 0.36) 49% 51%, transparent 52%),
    linear-gradient(rgba(14, 165, 233, 0.38), rgba(14, 165, 233, 0.38)) 0 50% / 100% 3px no-repeat;
  border: 2px solid rgba(37, 99, 168, 0.34);
  border-radius: 8px;
  clip-path: inset(0 0 0 0);
  animation: cad-line-draw 6.8s ease-in-out infinite;
}

.design-focus-visual i:nth-child(1)::after {
  right: 22px;
  bottom: 18px;
  width: 42px;
  height: 42px;
  background:
    linear-gradient(45deg, transparent 44%, var(--cyan) 45% 50%, transparent 51%),
    linear-gradient(-45deg, transparent 44%, var(--blue) 45% 50%, transparent 51%),
    linear-gradient(var(--blue), var(--blue)) 50% 0 / 3px 100% no-repeat,
    linear-gradient(90deg, var(--cyan), var(--cyan)) 0 50% / 100% 3px no-repeat,
    rgba(219, 234, 254, 0.72);
  border: 2px solid rgba(37, 99, 168, 0.34);
  border-radius: 10px;
  transform: rotateX(0deg) rotateZ(6deg);
  animation: model-orbit 8s ease-in-out infinite;
}

.design-focus-visual i:nth-child(2) {
  right: 56px;
  bottom: 25px;
  width: 152px;
  height: 20px;
  background:
    linear-gradient(90deg, var(--blue), var(--blue)) 0 50% / 100% 3px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 0 50% / 3px 16px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 100% 50% / 3px 16px no-repeat,
    radial-gradient(circle, #fff 0 4px, transparent 5px) 0 50% / 34px 12px repeat-x;
  border-radius: 999px;
  animation: dimension-pulse 5.8s ease-in-out infinite;
}

.design-focus-visual i:nth-child(3) {
  right: 80px;
  bottom: 52px;
  width: 16px;
  height: 16px;
  background: var(--cyan);
  box-shadow:
    0 0 0 7px rgba(14, 165, 233, 0.15),
    -34px 24px 0 -3px var(--blue),
    54px -42px 0 -4px var(--green);
  animation: cad-focus-dot 4.8s ease-in-out infinite;
}

.design-focus-visual i:nth-child(4) {
  left: 28px;
  top: 22px;
  width: 78px;
  height: 42px;
  background:
    linear-gradient(var(--blue), var(--blue)) 14px 13px / 40px 4px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 14px 26px / 52px 4px no-repeat,
    rgba(255, 255, 255, 0.94);
  border: 2px solid #bfdbfe;
  border-radius: 10px;
}

.design-focus-visual i:nth-child(4)::before {
  inset: auto 10px 8px auto;
  width: 18px;
  height: 18px;
  border-top: 3px solid var(--cyan);
  border-right: 3px solid var(--blue);
  transform: rotate(0deg);
  animation: draft-corner-glow 6.2s ease-in-out infinite;
}

.design-focus-visual b {
  position: absolute;
  display: block;
  content: "";
}

.design-focus-visual b:nth-of-type(1) {
  right: 96px;
  top: 57px;
  z-index: 3;
  width: 58px;
  height: 44px;
  background:
    linear-gradient(28deg, transparent 47%, rgba(14, 165, 233, 0.72) 48% 52%, transparent 53%),
    linear-gradient(-24deg, transparent 47%, rgba(37, 99, 168, 0.72) 48% 52%, transparent 53%),
    linear-gradient(90deg, rgba(37, 99, 168, 0.72), rgba(37, 99, 168, 0.72)) 50% 50% / 100% 3px no-repeat;
  border: 2px solid rgba(37, 99, 168, 0.48);
  transform: skewY(-8deg);
  animation: wireframe-drift 7.4s ease-in-out infinite;
}

.design-focus-visual b:nth-of-type(1)::before {
  inset: 9px 10px;
  border: 2px solid rgba(14, 165, 233, 0.52);
  transform: translate(8px, -6px);
}

.design-focus-visual b:nth-of-type(1)::after {
  inset: 9px 10px;
  border-top: 2px solid rgba(14, 165, 233, 0.52);
  border-right: 2px solid rgba(37, 99, 168, 0.46);
  transform: translate(8px, -6px) skewY(-8deg);
}

.design-focus-visual b:nth-of-type(2) {
  left: 72px;
  bottom: 42px;
  z-index: 2;
  width: 44px;
  height: 28px;
  border-top: 4px solid var(--cyan);
  border-right: 4px solid var(--cyan);
  border-radius: 0 12px 0 0;
  transform: rotate(-17deg);
  animation: robot-point 5.6s ease-in-out infinite;
}

.design-focus-visual b:nth-of-type(3) {
  right: 28px;
  top: 32px;
  z-index: 4;
  width: 30px;
  height: 16px;
  background:
    linear-gradient(var(--green), var(--green)) 8px 6px / 14px 4px no-repeat,
    rgba(239, 246, 255, 0.92);
  border: 2px solid rgba(147, 197, 253, 0.9);
  border-radius: 999px;
  animation: guide-spark 6s ease-in-out infinite;
}

.recruit-job-card.job-design:hover .design-focus-visual i:nth-child(1) {
  transform: translateY(-4px);
}

.recruit-job-card.job-design:hover .design-focus-visual::after,
.recruit-job-card.job-design:hover .design-focus-visual i:nth-child(2) {
  opacity: 1;
  animation-duration: 3.6s;
}

.job-control .job-card-visual i:nth-child(1) {
  background:
    radial-gradient(circle at 28px 28px, var(--green) 0 6px, transparent 7px),
    radial-gradient(circle at 56px 28px, var(--orange) 0 6px, transparent 7px),
    radial-gradient(circle at 84px 28px, var(--cyan) 0 6px, transparent 7px),
    linear-gradient(var(--blue), var(--blue)) 28px 56px / 104px 6px no-repeat,
    linear-gradient(rgba(14, 165, 233, 0.28), rgba(14, 165, 233, 0.28)) 28px 70px / 82px 5px no-repeat,
    #fff;
}

.job-control .job-card-visual i:nth-child(2) {
  height: 6px;
  background:
    linear-gradient(90deg, transparent, var(--cta), var(--cyan), transparent),
    radial-gradient(circle, #fff 0 4px, transparent 5px);
  background-size: 96px 6px, 24px 10px;
}

.job-control .job-card-visual i:nth-child(3) {
  box-shadow:
    -30px 0 0 -2px var(--orange),
    -60px 0 0 -2px var(--green),
    0 0 0 7px rgba(14, 165, 233, 0.12);
}

.control-focus-visual {
  min-height: 190px;
  background:
    radial-gradient(circle at 24% 26%, rgba(103, 232, 249, 0.2), transparent 23%),
    radial-gradient(circle at 72% 72%, rgba(37, 99, 168, 0.14), transparent 25%),
    linear-gradient(90deg, rgba(37, 99, 168, 0.1) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.1) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbff 0%, #eef7ff 100%);
  background-size: auto, auto, 18px 18px, 18px 18px, auto;
}

.control-focus-visual::before {
  left: 26px;
  bottom: 27px;
  width: 56px;
  height: 48px;
  background:
    radial-gradient(circle at 35% 38%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 65% 38%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--green), var(--green)) 50% 70% / 22px 4px no-repeat,
    linear-gradient(#eff6ff, #dbeafe);
  border-color: #7dd3fc;
  border-radius: 16px;
  box-shadow:
    0 -12px 0 -7px var(--cyan),
    0 16px 0 7px rgba(219, 234, 254, 0.94),
    35px 2px 0 -16px #bfdbfe,
    48px -6px 0 -22px var(--cyan);
  animation: control-guide-robot 7.4s ease-in-out infinite;
}

.control-focus-visual::after {
  left: 73px;
  bottom: 70px;
  z-index: 2;
  width: 76px;
  height: 5px;
  background: linear-gradient(90deg, transparent, var(--cyan), var(--green), transparent);
  transform-origin: left center;
  transform: rotate(-8deg);
  animation: wire-current 5.5s linear infinite;
}

.control-focus-visual i:nth-child(1) {
  right: 22px;
  top: 20px;
  width: 184px;
  height: 126px;
  overflow: hidden;
  background:
    radial-gradient(circle at 28px 30px, var(--green) 0 7px, transparent 8px),
    radial-gradient(circle at 56px 30px, var(--orange) 0 7px, transparent 8px),
    radial-gradient(circle at 84px 30px, var(--cyan) 0 7px, transparent 8px),
    linear-gradient(var(--blue), var(--blue)) 28px 58px / 116px 7px no-repeat,
    linear-gradient(rgba(14, 165, 233, 0.26), rgba(14, 165, 233, 0.26)) 28px 76px / 96px 5px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.16), rgba(37, 99, 168, 0.16)) 28px 92px / 128px 5px no-repeat,
    linear-gradient(90deg, rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    #fff;
  background-size: auto, auto, auto, auto, auto, auto, 18px 18px, 18px 18px, auto;
  border-color: #93c5fd;
  border-radius: 14px;
  box-shadow:
    0 15px 30px rgba(15, 42, 68, 0.11),
    inset 0 0 0 1px rgba(255, 255, 255, 0.8);
}

.control-focus-visual i:nth-child(1)::before {
  left: 22px;
  bottom: 16px;
  width: 136px;
  height: 28px;
  background:
    linear-gradient(90deg, var(--cyan), transparent 30%, var(--blue), transparent 68%, var(--green)) 0 50% / 100% 3px no-repeat,
    radial-gradient(circle, var(--cyan) 0 4px, transparent 5px) 0 50% / 34px 12px repeat-x;
  border-radius: 999px;
  animation: wire-current 5.2s linear infinite;
}

.control-focus-visual i:nth-child(1)::after {
  right: 18px;
  top: 19px;
  width: 16px;
  height: 16px;
  background: var(--green);
  border-radius: 50%;
  animation: control-panel-lamps 5.8s ease-in-out infinite;
}

.control-focus-visual i:nth-child(2) {
  left: 112px;
  bottom: 22px;
  z-index: 3;
  width: 92px;
  height: 44px;
  background:
    repeating-linear-gradient(90deg, rgba(15, 42, 68, 0.18) 0 2px, transparent 2px 12px),
    linear-gradient(var(--navy), var(--navy)) 12px 11px / 62px 5px no-repeat,
    linear-gradient(rgba(14, 165, 233, 0.32), rgba(14, 165, 233, 0.32)) 12px 27px / 48px 5px no-repeat,
    rgba(255, 255, 255, 0.94);
  border: 2px solid #93c5fd;
  border-radius: 10px;
  animation: plc-module-pulse 6.6s ease-in-out infinite;
}

.control-focus-visual i:nth-child(2)::before {
  right: 10px;
  top: 9px;
  width: 8px;
  height: 8px;
  background: var(--green);
  border-radius: 50%;
  box-shadow:
    0 13px 0 0 var(--cyan),
    0 26px 0 0 var(--orange);
  animation: control-panel-lamps 5.4s ease-in-out infinite;
}

.control-focus-visual i:nth-child(3) {
  right: 30px;
  bottom: 30px;
  z-index: 4;
  width: 72px;
  height: 44px;
  background:
    linear-gradient(var(--cyan), var(--cyan)) 13px 12px / 34px 5px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.22), rgba(37, 99, 168, 0.22)) 13px 26px / 45px 5px no-repeat,
    linear-gradient(90deg, rgba(14, 165, 233, 0.14), rgba(37, 99, 168, 0.08)),
    #fff;
  border: 2px solid #bfdbfe;
  border-radius: 10px;
  box-shadow: 0 8px 18px rgba(15, 42, 68, 0.08);
  animation: touch-ui-react 6.2s ease-in-out infinite;
}

.control-focus-visual i:nth-child(4) {
  left: 28px;
  top: 24px;
  width: 66px;
  height: 36px;
  background:
    linear-gradient(var(--blue), var(--blue)) 14px 13px / 38px 5px no-repeat,
    linear-gradient(rgba(14, 165, 233, 0.28), rgba(14, 165, 233, 0.28)) 14px 25px / 28px 4px no-repeat,
    rgba(255, 255, 255, 0.94);
  border: 2px solid #bfdbfe;
  border-radius: 10px;
}

.control-focus-visual i:nth-child(4)::before {
  inset: auto 9px 8px auto;
  width: 10px;
  height: 10px;
  background: var(--green);
  border: 2px solid #fff;
  border-radius: 50%;
  transform: none;
  animation: plc-module-pulse 4.8s ease-in-out infinite;
}

.control-focus-visual b:nth-of-type(1) {
  left: 82px;
  bottom: 46px;
  z-index: 3;
  width: 42px;
  height: 26px;
  border-top: 4px solid var(--cyan);
  border-right: 4px solid var(--cyan);
  border-radius: 0 12px 0 0;
  transform: rotate(14deg);
  animation: control-arm-guide 5.8s ease-in-out infinite;
}

.control-focus-visual b:nth-of-type(2) {
  right: 132px;
  top: 82px;
  z-index: 3;
  width: 92px;
  height: 28px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), transparent) 0 50% / 70px 4px repeat-x,
    linear-gradient(90deg, rgba(37, 99, 168, 0.22), rgba(14, 165, 233, 0.2));
  border-radius: 999px;
  animation: wire-current 4.8s linear infinite;
}

.control-focus-visual b:nth-of-type(3) {
  right: 66px;
  top: 44px;
  z-index: 4;
  width: 22px;
  height: 22px;
  background:
    radial-gradient(circle at 50% 50%, #fff 0 4px, transparent 5px),
    var(--orange);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 7px rgba(249, 115, 22, 0.12);
  animation: control-panel-lamps 5.2s ease-in-out infinite;
}

.recruit-job-card.job-control:hover .control-focus-visual i:nth-child(1),
.recruit-job-card.job-control:hover .control-focus-visual i:nth-child(3) {
  transform: translateY(-4px);
}

.recruit-job-card.job-control:hover .control-focus-visual::after,
.recruit-job-card.job-control:hover .control-focus-visual i:nth-child(1)::before,
.recruit-job-card.job-control:hover .control-focus-visual b:nth-of-type(2) {
  opacity: 1;
  animation-duration: 3.4s;
}

.job-assembly .job-card-visual i:nth-child(1) {
  background:
    linear-gradient(#dbeafe, #dbeafe) 24px 46px / 48px 30px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 84px 54px / 60px 8px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 58px 26px / 76px 6px no-repeat,
    radial-gradient(circle at 136px 70px, var(--green) 0 8px, transparent 9px),
    #fff;
}

.job-assembly .job-card-visual i:nth-child(2) {
  right: 88px;
  bottom: 34px;
  width: 64px;
  height: 18px;
  background: rgba(14, 165, 233, 0.28);
  border: 3px solid #93c5fd;
  animation: hero-float-alt 6.8s ease-in-out infinite;
}

.job-assembly .job-card-visual i:nth-child(4) {
  background:
    linear-gradient(45deg, transparent 44%, var(--orange) 45% 57%, transparent 58%),
    #fff;
}

.assembly-focus-visual {
  min-height: 190px;
  background:
    radial-gradient(circle at 75% 26%, rgba(63, 139, 97, 0.14), transparent 24%),
    radial-gradient(circle at 20% 75%, rgba(249, 115, 22, 0.12), transparent 25%),
    linear-gradient(90deg, rgba(37, 99, 168, 0.1) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.1) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbff 0%, #eef7ff 100%);
  background-size: auto, auto, 18px 18px, 18px 18px, auto;
}

.assembly-focus-visual::before {
  left: 24px;
  bottom: 28px;
  width: 56px;
  height: 48px;
  background:
    radial-gradient(circle at 34% 38%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 66% 38%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--green), var(--green)) 50% 70% / 22px 4px no-repeat,
    linear-gradient(#eff6ff, #dbeafe);
  border-color: #7dd3fc;
  border-radius: 16px;
  box-shadow:
    0 -12px 0 -7px var(--cyan),
    0 16px 0 7px rgba(219, 234, 254, 0.94),
    34px 6px 0 -15px #bfdbfe,
    48px -6px 0 -22px var(--orange);
  animation: assembly-guide-robot 7.2s ease-in-out infinite;
}

.assembly-focus-visual::after {
  left: 73px;
  bottom: 69px;
  z-index: 2;
  width: 72px;
  height: 5px;
  background: linear-gradient(90deg, transparent, var(--orange), var(--green), transparent);
  transform-origin: left center;
  transform: rotate(-10deg);
  animation: wire-current 5.6s linear infinite;
}

.assembly-focus-visual i:nth-child(1) {
  right: 24px;
  top: 32px;
  width: 184px;
  height: 94px;
  overflow: visible;
  background:
    linear-gradient(#dbeafe, #dbeafe) 22px 44px / 54px 34px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 86px 52px / 62px 10px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 58px 24px / 78px 7px no-repeat,
    radial-gradient(circle at 146px 70px, var(--green) 0 8px, transparent 9px),
    linear-gradient(90deg, rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    #fff;
  background-size: auto, auto, auto, auto, 16px 16px, 16px 16px, auto;
  border-color: #93c5fd;
  border-radius: 14px;
  box-shadow:
    0 15px 30px rgba(15, 42, 68, 0.1),
    inset 0 0 0 1px rgba(255, 255, 255, 0.8);
  animation: part-align 7s ease-in-out infinite;
}

.assembly-focus-visual i:nth-child(1)::before {
  left: 28px;
  bottom: 13px;
  width: 128px;
  height: 18px;
  background:
    linear-gradient(90deg, var(--cyan), transparent 32%, var(--orange), transparent 70%, var(--green)) 0 50% / 100% 3px no-repeat,
    radial-gradient(circle, #fff 0 4px, transparent 5px) 0 50% / 32px 12px repeat-x;
  border-radius: 999px;
  animation: wire-current 5.4s linear infinite;
}

.assembly-focus-visual i:nth-child(1)::after {
  right: 20px;
  top: 18px;
  width: 34px;
  height: 34px;
  background:
    linear-gradient(45deg, transparent 43%, var(--blue) 44% 51%, transparent 52%),
    linear-gradient(-45deg, transparent 43%, var(--cyan) 44% 51%, transparent 52%),
    rgba(219, 234, 254, 0.8);
  border: 2px solid rgba(37, 99, 168, 0.34);
  border-radius: 8px;
  animation: part-align 6.6s ease-in-out infinite reverse;
}

.assembly-focus-visual i:nth-child(2) {
  right: 100px;
  bottom: 26px;
  z-index: 3;
  width: 82px;
  height: 22px;
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.22), rgba(14, 165, 233, 0.22)) 0 50% / 100% 4px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 12px 2px / 4px 18px no-repeat,
    linear-gradient(var(--blue), var(--blue)) 58px 2px / 4px 18px no-repeat,
    rgba(255, 255, 255, 0.88);
  border: 2px solid #93c5fd;
  border-radius: 999px;
  animation: wire-current 5.8s linear infinite;
}

.assembly-focus-visual i:nth-child(3) {
  right: 32px;
  bottom: 34px;
  z-index: 4;
  width: 48px;
  height: 48px;
  background:
    conic-gradient(from 220deg, rgba(37, 99, 168, 0.12), rgba(37, 99, 168, 0.12) 68%, transparent 68%),
    radial-gradient(circle at 50% 50%, #fff 0 18px, transparent 19px),
    rgba(219, 234, 254, 0.9);
  border: 2px solid #93c5fd;
  border-radius: 50%;
  box-shadow: 0 8px 18px rgba(15, 42, 68, 0.08);
}

.assembly-focus-visual i:nth-child(3)::before {
  left: 22px;
  bottom: 22px;
  width: 4px;
  height: 22px;
  background: var(--orange);
  border-radius: 999px;
  transform-origin: 50% 100%;
  animation: adjustment-gauge 6.4s ease-in-out infinite;
}

.assembly-focus-visual i:nth-child(4) {
  left: 30px;
  top: 24px;
  width: 72px;
  height: 36px;
  background:
    linear-gradient(45deg, transparent 44%, var(--orange) 45% 57%, transparent 58%),
    linear-gradient(var(--navy), var(--navy)) 12px 12px / 38px 5px no-repeat,
    rgba(255, 255, 255, 0.94);
  border: 2px solid #bfdbfe;
  border-radius: 10px;
}

.assembly-focus-visual i:nth-child(4)::before {
  inset: auto 9px 7px auto;
  width: 20px;
  height: 6px;
  background: var(--orange);
  border: 0;
  border-radius: 999px;
  transform: rotate(-18deg);
  animation: tool-nudge 5.8s ease-in-out infinite;
}

.assembly-focus-visual b:nth-of-type(1) {
  left: 82px;
  bottom: 45px;
  z-index: 3;
  width: 42px;
  height: 28px;
  border-top: 4px solid var(--orange);
  border-right: 4px solid var(--orange);
  border-radius: 0 13px 0 0;
  transform: rotate(12deg);
  animation: control-arm-guide 5.8s ease-in-out infinite;
}

.assembly-focus-visual b:nth-of-type(2) {
  right: 150px;
  top: 84px;
  z-index: 3;
  width: 54px;
  height: 32px;
  background:
    linear-gradient(var(--cyan), var(--cyan)) 50% 50% / 34px 5px no-repeat,
    rgba(219, 234, 254, 0.86);
  border: 2px solid #93c5fd;
  border-radius: 9px;
  animation: part-align 6.2s ease-in-out infinite reverse;
}

.assembly-focus-visual b:nth-of-type(3) {
  right: 78px;
  top: 42px;
  z-index: 4;
  width: 22px;
  height: 22px;
  background:
    linear-gradient(45deg, transparent 44%, #fff 45% 57%, transparent 58%),
    var(--green);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 7px rgba(63, 139, 97, 0.12);
  animation: assembly-complete 5.2s ease-in-out infinite;
}

.recruit-job-card.job-assembly:hover .assembly-focus-visual i:nth-child(1),
.recruit-job-card.job-assembly:hover .assembly-focus-visual b:nth-of-type(2) {
  transform: translateY(-4px);
}

.recruit-job-card.job-assembly:hover .assembly-focus-visual::after,
.recruit-job-card.job-assembly:hover .assembly-focus-visual i:nth-child(1)::before,
.recruit-job-card.job-assembly:hover .assembly-focus-visual i:nth-child(2) {
  opacity: 1;
  animation-duration: 3.5s;
}

.job-maintenance .job-card-visual i:nth-child(1) {
  background:
    linear-gradient(var(--orange), var(--orange)) 24px 24px / 42px 7px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 24px 44px / 82px 5px no-repeat,
    linear-gradient(var(--green), var(--green)) 28px 66px / 20px 20px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 60px 73px / 74px 5px no-repeat,
    #fff;
}

.job-maintenance .job-card-visual i:nth-child(2) {
  background: linear-gradient(90deg, var(--orange), var(--green), var(--cyan));
}

.job-maintenance .job-card-visual i:nth-child(3) {
  background:
    linear-gradient(45deg, transparent 44%, #fff 45% 57%, transparent 58%),
    var(--green);
}

.maintenance-focus-visual {
  min-height: 190px;
  background:
    radial-gradient(circle at 24% 26%, rgba(249, 115, 22, 0.11), transparent 23%),
    radial-gradient(circle at 76% 72%, rgba(63, 139, 97, 0.14), transparent 25%),
    linear-gradient(90deg, rgba(37, 99, 168, 0.1) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.1) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbff 0%, #eef7ff 100%);
  background-size: auto, auto, 18px 18px, 18px 18px, auto;
}

.maintenance-focus-visual::before {
  left: 24px;
  bottom: 28px;
  width: 56px;
  height: 48px;
  background:
    radial-gradient(circle at 34% 38%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 66% 38%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--green), var(--green)) 50% 70% / 22px 4px no-repeat,
    linear-gradient(#eff6ff, #dbeafe);
  border-color: #7dd3fc;
  border-radius: 16px;
  box-shadow:
    0 -12px 0 -7px var(--cyan),
    0 16px 0 7px rgba(219, 234, 254, 0.94),
    34px 5px 0 -15px #bfdbfe,
    48px -5px 0 -22px var(--green);
  animation: maintenance-guide-robot 7.2s ease-in-out infinite;
}

.maintenance-focus-visual::after {
  left: 72px;
  bottom: 70px;
  z-index: 2;
  width: 82px;
  height: 5px;
  background:
    linear-gradient(90deg, transparent, var(--orange), var(--green), transparent) 0 50% / 82px 5px repeat-x,
    linear-gradient(90deg, rgba(249, 115, 22, 0.12), rgba(63, 139, 97, 0.12));
  transform-origin: left center;
  transform: rotate(-9deg);
  animation: improve-flow 5.4s linear infinite;
}

.maintenance-focus-visual i:nth-child(1) {
  right: 24px;
  top: 26px;
  width: 178px;
  height: 112px;
  overflow: hidden;
  background:
    linear-gradient(var(--orange), var(--orange)) 24px 22px / 44px 8px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 24px 44px / 82px 5px no-repeat,
    linear-gradient(var(--green), var(--green)) 28px 66px / 20px 20px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 60px 73px / 74px 5px no-repeat,
    linear-gradient(90deg, rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    #fff;
  background-size: auto, auto, auto, auto, 17px 17px, 17px 17px, auto;
  border-color: #93c5fd;
  border-radius: 14px;
  box-shadow:
    0 15px 30px rgba(15, 42, 68, 0.1),
    inset 0 0 0 1px rgba(255, 255, 255, 0.8);
}

.maintenance-focus-visual i:nth-child(1)::before {
  left: 20px;
  bottom: 16px;
  width: 132px;
  height: 22px;
  background:
    linear-gradient(90deg, var(--orange), transparent 28%, var(--green), transparent 72%, var(--cyan)) 0 50% / 100% 4px no-repeat,
    radial-gradient(circle, #fff 0 4px, transparent 5px) 0 50% / 34px 12px repeat-x;
  border-radius: 999px;
  animation: improve-flow 5.3s linear infinite;
}

.maintenance-focus-visual i:nth-child(1)::after {
  right: 20px;
  top: 18px;
  width: 18px;
  height: 18px;
  background: var(--orange);
  border: 3px solid #fff;
  border-radius: 50%;
  animation: warning-to-ok 6.2s ease-in-out infinite;
}

.maintenance-focus-visual i:nth-child(2) {
  left: 116px;
  bottom: 24px;
  z-index: 3;
  width: 84px;
  height: 58px;
  background:
    linear-gradient(var(--blue), var(--blue)) 14px 13px / 42px 5px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 14px 28px / 52px 4px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 14px 42px / 38px 4px no-repeat,
    rgba(255, 255, 255, 0.94);
  border: 2px solid #93c5fd;
  border-radius: 10px;
  animation: plc-module-pulse 6.8s ease-in-out infinite;
}

.maintenance-focus-visual i:nth-child(2)::before {
  right: 12px;
  top: 13px;
  width: 11px;
  height: 18px;
  border-right: 4px solid var(--green);
  border-bottom: 4px solid var(--green);
  transform: rotate(40deg);
  animation: check-sequence 5.4s ease-in-out infinite;
}

.maintenance-focus-visual i:nth-child(3) {
  right: 34px;
  bottom: 34px;
  z-index: 4;
  width: 22px;
  height: 22px;
  background:
    linear-gradient(45deg, transparent 44%, #fff 45% 57%, transparent 58%),
    var(--green);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow:
    -34px -10px 0 -3px var(--orange),
    -66px 10px 0 -4px var(--green),
    0 0 0 7px rgba(63, 139, 97, 0.12);
  animation: check-sequence 5.6s ease-in-out infinite;
}

.maintenance-focus-visual i:nth-child(4) {
  left: 28px;
  top: 24px;
  width: 76px;
  height: 40px;
  background:
    linear-gradient(var(--orange), var(--orange)) 14px 13px / 34px 5px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.2), rgba(37, 99, 168, 0.2)) 14px 27px / 48px 4px no-repeat,
    rgba(255, 255, 255, 0.94);
  border: 2px solid #bfdbfe;
  border-radius: 10px;
}

.maintenance-focus-visual i:nth-child(4)::before {
  inset: auto 10px 8px auto;
  width: 11px;
  height: 18px;
  border-right: 4px solid var(--green);
  border-bottom: 4px solid var(--green);
  transform: rotate(40deg);
  animation: check-sequence 5.2s ease-in-out infinite;
}

.maintenance-focus-visual b:nth-of-type(1) {
  left: 82px;
  bottom: 47px;
  z-index: 3;
  width: 42px;
  height: 28px;
  border-top: 4px solid var(--green);
  border-right: 4px solid var(--green);
  border-radius: 0 13px 0 0;
  transform: rotate(12deg);
  animation: control-arm-guide 5.8s ease-in-out infinite;
}

.maintenance-focus-visual b:nth-of-type(2) {
  right: 62px;
  top: 72px;
  z-index: 4;
  width: 54px;
  height: 5px;
  background: linear-gradient(90deg, transparent, var(--cyan), #fff, var(--cyan), transparent);
  border-radius: 999px;
  animation: inspect-scan 5.6s ease-in-out infinite;
}

.maintenance-focus-visual b:nth-of-type(3) {
  right: 80px;
  bottom: 26px;
  z-index: 4;
  width: 88px;
  height: 22px;
  background:
    linear-gradient(90deg, var(--orange), transparent 42%, var(--green)) 0 50% / 100% 4px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 0 50% / 4px 16px no-repeat,
    linear-gradient(var(--green), var(--green)) 100% 50% / 4px 16px no-repeat;
  border-radius: 999px;
  animation: improve-flow 5s linear infinite;
}

.recruit-job-card.job-maintenance:hover .maintenance-focus-visual i:nth-child(1),
.recruit-job-card.job-maintenance:hover .maintenance-focus-visual i:nth-child(2) {
  transform: translateY(-4px);
}

.recruit-job-card.job-maintenance:hover .maintenance-focus-visual::after,
.recruit-job-card.job-maintenance:hover .maintenance-focus-visual i:nth-child(1)::before,
.recruit-job-card.job-maintenance:hover .maintenance-focus-visual b:nth-of-type(3) {
  opacity: 1;
  animation-duration: 3.4s;
}

.job-ojt .job-card-visual i:nth-child(1) {
  background:
    linear-gradient(var(--cyan), var(--cyan)) 24px 24px / 64px 6px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.2), rgba(37, 99, 168, 0.2)) 24px 43px / 96px 5px no-repeat,
    radial-gradient(circle at 38px 70px, var(--green) 0 8px, transparent 9px),
    radial-gradient(circle at 78px 70px, var(--cyan) 0 8px, transparent 9px),
    radial-gradient(circle at 118px 70px, var(--orange) 0 8px, transparent 9px),
    #fff;
}

.job-ojt .job-card-visual i:nth-child(2) {
  right: 56px;
  width: 128px;
  background:
    radial-gradient(circle, #fff 0 4px, transparent 5px) 0 50% / 40px 10px repeat-x,
    linear-gradient(90deg, transparent, var(--green), var(--cyan), transparent);
}

.job-ojt .job-card-visual i:nth-child(4) {
  width: 62px;
  background:
    radial-gradient(circle at 20px 50%, var(--cyan) 0 8px, transparent 9px),
    radial-gradient(circle at 42px 50%, var(--green) 0 8px, transparent 9px),
    rgba(255, 255, 255, 0.92);
}

.ojt-focus-visual {
  min-height: 190px;
  background:
    radial-gradient(circle at 76% 24%, rgba(103, 232, 249, 0.18), transparent 23%),
    radial-gradient(circle at 20% 78%, rgba(63, 139, 97, 0.12), transparent 26%),
    linear-gradient(90deg, rgba(37, 99, 168, 0.1) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.1) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbff 0%, #eef7ff 100%);
  background-size: auto, auto, 18px 18px, 18px 18px, auto;
}

.ojt-focus-visual::before {
  left: 24px;
  bottom: 28px;
  width: 56px;
  height: 48px;
  background:
    radial-gradient(circle at 34% 38%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 66% 38%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--green), var(--green)) 50% 70% / 22px 4px no-repeat,
    linear-gradient(#eff6ff, #dbeafe);
  border-color: #7dd3fc;
  border-radius: 16px;
  box-shadow:
    0 -12px 0 -7px var(--cyan),
    0 16px 0 7px rgba(219, 234, 254, 0.94),
    36px 2px 0 -16px #bfdbfe,
    52px -7px 0 -22px var(--green);
  animation: ojt-guide-robot 7.2s ease-in-out infinite;
}

.ojt-focus-visual::after {
  left: 72px;
  bottom: 70px;
  z-index: 2;
  width: 92px;
  height: 5px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), var(--green), transparent) 0 50% / 92px 5px repeat-x,
    linear-gradient(90deg, rgba(14, 165, 233, 0.12), rgba(63, 139, 97, 0.12));
  transform-origin: left center;
  transform: rotate(-9deg);
  animation: step-flow 5.4s linear infinite;
}

.ojt-focus-visual i:nth-child(1) {
  right: 24px;
  top: 26px;
  width: 178px;
  height: 104px;
  overflow: hidden;
  background:
    linear-gradient(var(--navy), var(--navy)) 0 0 / 100% 22px no-repeat,
    radial-gradient(circle at 24px 11px, var(--green) 0 4px, transparent 5px),
    radial-gradient(circle at 40px 11px, var(--cyan) 0 4px, transparent 5px),
    linear-gradient(var(--cyan), var(--cyan)) 24px 40px / 58px 6px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 24px 58px / 92px 5px no-repeat,
    radial-gradient(circle at 42px 82px, var(--green) 0 8px, transparent 9px),
    radial-gradient(circle at 86px 82px, var(--cyan) 0 8px, transparent 9px),
    radial-gradient(circle at 130px 82px, var(--orange) 0 8px, transparent 9px),
    linear-gradient(90deg, rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.08) 1px, transparent 1px),
    #fff;
  background-size: 100% 22px, auto, auto, auto, auto, auto, auto, auto, 17px 17px, 17px 17px, auto;
  border-color: #93c5fd;
  border-radius: 14px;
  box-shadow:
    0 15px 30px rgba(15, 42, 68, 0.1),
    inset 0 0 0 1px rgba(255, 255, 255, 0.8);
  animation: hero-float 8s ease-in-out infinite;
}

.ojt-focus-visual i:nth-child(1)::before {
  left: 24px;
  bottom: 18px;
  width: 132px;
  height: 18px;
  background:
    linear-gradient(90deg, var(--green), transparent 30%, var(--cyan), transparent 68%, var(--orange)) 0 50% / 100% 4px no-repeat,
    radial-gradient(circle, #fff 0 4px, transparent 5px) 0 50% / 44px 12px repeat-x;
  border-radius: 999px;
  animation: step-flow 5.4s linear infinite;
}

.ojt-focus-visual i:nth-child(1)::after {
  right: 22px;
  top: 36px;
  width: 38px;
  height: 30px;
  background:
    linear-gradient(45deg, transparent 43%, var(--cyan) 44% 51%, transparent 52%),
    linear-gradient(-45deg, transparent 43%, var(--blue) 44% 51%, transparent 52%),
    rgba(219, 234, 254, 0.75);
  border: 2px solid rgba(37, 99, 168, 0.3);
  border-radius: 8px;
  animation: hero-float-alt 7.4s ease-in-out infinite;
}

.ojt-focus-visual i:nth-child(2) {
  right: 72px;
  bottom: 24px;
  z-index: 3;
  width: 132px;
  height: 32px;
  background:
    radial-gradient(circle at 16px 50%, #fff 0 5px, transparent 6px),
    radial-gradient(circle at 66px 50%, #fff 0 5px, transparent 6px),
    radial-gradient(circle at 116px 50%, #fff 0 5px, transparent 6px),
    linear-gradient(90deg, var(--green), var(--cyan), var(--orange)) 0 50% / 100% 4px no-repeat;
  border-radius: 999px;
  animation: step-flow 5.8s linear infinite;
}

.ojt-focus-visual i:nth-child(3) {
  right: 32px;
  bottom: 34px;
  z-index: 4;
  width: 22px;
  height: 22px;
  background:
    linear-gradient(45deg, transparent 44%, #fff 45% 57%, transparent 58%),
    var(--green);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow:
    -34px 0 0 -3px var(--cyan),
    -68px 0 0 -4px var(--green),
    0 0 0 7px rgba(63, 139, 97, 0.12);
  animation: check-grow 5.4s ease-in-out infinite;
}

.ojt-focus-visual i:nth-child(4) {
  left: 30px;
  top: 24px;
  width: 80px;
  height: 44px;
  background:
    radial-gradient(circle at 22px 52%, var(--cyan) 0 9px, transparent 10px),
    radial-gradient(circle at 54px 52%, var(--green) 0 9px, transparent 10px),
    linear-gradient(var(--blue), var(--blue)) 18px 12px / 44px 5px no-repeat,
    rgba(255, 255, 255, 0.94);
  border: 2px solid #bfdbfe;
  border-radius: 12px;
}

.ojt-focus-visual i:nth-child(4)::before {
  inset: auto 10px 8px auto;
  width: 12px;
  height: 18px;
  border-right: 4px solid var(--green);
  border-bottom: 4px solid var(--green);
  transform: rotate(40deg);
  animation: check-grow 5.2s ease-in-out infinite;
}

.ojt-focus-visual b:nth-of-type(1) {
  left: 82px;
  bottom: 48px;
  z-index: 3;
  width: 46px;
  height: 28px;
  border-top: 4px solid var(--cyan);
  border-right: 4px solid var(--cyan);
  border-radius: 0 13px 0 0;
  transform: rotate(-10deg);
  animation: mentor-point 5.8s ease-in-out infinite;
}

.ojt-focus-visual b:nth-of-type(2) {
  right: 130px;
  top: 78px;
  z-index: 4;
  width: 74px;
  height: 20px;
  background:
    linear-gradient(90deg, var(--green), var(--cyan), var(--orange));
  border: 2px solid #fff;
  border-radius: 999px;
  clip-path: inset(0 62% 0 0);
  animation: growth-bar 6.2s ease-in-out infinite;
}

.ojt-focus-visual b:nth-of-type(3) {
  right: 26px;
  top: 28px;
  z-index: 4;
  width: 50px;
  height: 24px;
  background:
    linear-gradient(var(--green), var(--green)) 10px 9px / 26px 5px no-repeat,
    rgba(239, 246, 255, 0.94);
  border: 2px solid #93c5fd;
  border-radius: 999px;
  animation: check-grow 5.7s ease-in-out infinite;
}

.recruit-job-card.job-ojt:hover .ojt-focus-visual i:nth-child(1),
.recruit-job-card.job-ojt:hover .ojt-focus-visual b:nth-of-type(2) {
  transform: translateY(-4px);
}

.recruit-job-card.job-ojt:hover .ojt-focus-visual::after,
.recruit-job-card.job-ojt:hover .ojt-focus-visual i:nth-child(1)::before,
.recruit-job-card.job-ojt:hover .ojt-focus-visual i:nth-child(2) {
  opacity: 1;
  animation-duration: 3.4s;
}

.skill-grid strong {
  color: var(--navy);
}

.requirement-list {
  display: grid;
  gap: 10px;
}

.requirement-list div {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 14px;
  padding: 16px 18px;
}

/* Recruit robot: same character, different guide roles. */
.robot-hero {
  min-height: 300px;
}

.robot-hero span:nth-child(1) {
  left: 118px;
  top: 58px;
  width: 82px;
  height: 66px;
  background:
    radial-gradient(circle at 33% 48%, var(--navy) 0 4px, transparent 5px),
    radial-gradient(circle at 67% 48%, var(--navy) 0 4px, transparent 5px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 76% / 28px 4px no-repeat,
    #dbeafe;
  border: 5px solid #93c5fd;
  border-radius: 22px;
  box-shadow:
    inset 0 -8px 0 rgba(37, 99, 168, 0.12),
    0 -16px 0 -9px var(--cyan);
  animation: robot-bob 7.2s ease-in-out infinite;
}

.robot-hero span:nth-child(1)::before,
.robot-hero span:nth-child(1)::after {
  content: none;
}

.robot-hero span:nth-child(2) {
  left: 72px;
  top: 102px;
  width: 48px;
  height: 12px;
  background: #dbeafe;
  border: 3px solid #93c5fd;
  border-right: 0;
  border-radius: 999px 0 0 999px;
  transform-origin: right center;
  animation: robot-wave 3.2s ease-in-out infinite;
}

.robot-hero span:nth-child(2)::after {
  left: -18px;
  top: -7px;
  width: 20px;
  height: 20px;
  border: 3px solid #93c5fd;
  border-radius: 50%;
  background: #fff;
}

.robot-hero span:nth-child(3) {
  left: 104px;
  bottom: 52px;
  width: 112px;
  height: 118px;
  background:
    linear-gradient(var(--cyan), var(--cyan)) 50% 34% / 50px 7px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 50% 54% / 58px 7px no-repeat,
    linear-gradient(#dbeafe, #dbeafe) 50% 100% / 86px 24px no-repeat,
    #f8fbff;
  border: 5px solid #bfdbfe;
  border-radius: 22px 22px 12px 12px;
  box-shadow: inset 0 -18px 0 rgba(37, 99, 168, 0.1);
  animation: robot-bob 7.2s ease-in-out infinite;
}

.robot-hero span:nth-child(3)::before {
  left: 12px;
  bottom: -18px;
  width: 34px;
  height: 16px;
  background: #dbeafe;
  border-radius: 0 0 8px 8px;
  box-shadow: 52px 0 0 #dbeafe;
}

.robot-hero span:nth-child(3)::after {
  right: -34px;
  top: 38px;
  width: 42px;
  height: 12px;
  background: #dbeafe;
  border: 3px solid #93c5fd;
  border-left: 0;
  border-radius: 0 999px 999px 0;
}

.robot-hero span:nth-child(4) {
  right: 44px;
  bottom: 50px;
  width: 130px;
  height: 122px;
  background:
    radial-gradient(circle at 24% 28%, var(--green) 0 5px, transparent 6px),
    radial-gradient(circle at 46% 28%, var(--orange) 0 5px, transparent 6px),
    radial-gradient(circle at 68% 28%, var(--cyan) 0 5px, transparent 6px),
    linear-gradient(var(--blue), var(--blue)) 50% 64% / 78px 8px no-repeat,
    linear-gradient(#fff, #fff) 50% 42% / 68px 40px no-repeat,
    #93c5fd;
  border-radius: 18px 18px 8px 8px;
  box-shadow: inset 0 -18px 0 rgba(15, 42, 68, 0.12);
  animation: hero-float-alt 8s ease-in-out infinite;
}

.mentor-scene::before,
.expert-scene::before,
.recruit-faq-guide::before,
.recruit-cta-robot::before,
.skill-grid article::after,
.check-grid span::before,
.timeline li::before {
  background:
    radial-gradient(circle at 34% 42%, var(--navy) 0 3px, transparent 4px),
    radial-gradient(circle at 66% 42%, var(--navy) 0 3px, transparent 4px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 76% / 18px 3px no-repeat,
    #dbeafe;
  border-color: #93c5fd;
}

.mentor-scene::after {
  border-color: #93c5fd;
  box-shadow: -106px 54px 0 -34px rgba(251, 191, 36, 0.72);
}

.expert-scene::after {
  border-color: var(--cyan);
  box-shadow:
    -118px 36px 0 -30px rgba(37, 99, 168, 0.28),
    -156px 62px 0 -34px rgba(14, 165, 233, 0.24);
}

.skill-grid article:nth-child(1)::after { box-shadow: 0 -8px 0 -5px var(--cyan), -22px 14px 0 -11px rgba(14, 165, 233, 0.6); }
.skill-grid article:nth-child(2)::after { box-shadow: 0 -8px 0 -5px var(--blue), -22px 14px 0 -11px rgba(37, 99, 168, 0.5); }
.skill-grid article:nth-child(3)::after { box-shadow: 0 -8px 0 -5px var(--cyan), -22px 14px 0 -11px rgba(14, 165, 233, 0.6); }
.skill-grid article:nth-child(4)::after,
.skill-grid article:nth-child(5)::after { box-shadow: 0 -8px 0 -5px var(--orange), -22px 14px 0 -11px rgba(249, 115, 22, 0.42); }
.skill-grid article:nth-child(6)::after { box-shadow: 0 -8px 0 -5px var(--green), -22px 14px 0 -11px rgba(34, 197, 94, 0.36); }

.skill-grid .skill-badge-card::after {
  display: none;
  content: none;
}

.skill-grid .skill-badge-card:nth-child(3)::after {
  background:
    radial-gradient(circle at 50% 50%, var(--green) 0 4px, transparent 5px),
    radial-gradient(circle at 28% 50%, var(--orange) 0 4px, transparent 5px),
    radial-gradient(circle at 72% 50%, var(--cyan) 0 4px, transparent 5px),
    #fff;
}

.skill-grid .skill-badge-card:nth-child(4)::after {
  background:
    linear-gradient(var(--cyan), var(--cyan)) 50% 34% / 18px 4px no-repeat,
    linear-gradient(var(--green), var(--green)) 50% 62% / 22px 4px no-repeat,
    #fff;
}

.skill-grid .skill-badge-card:nth-child(5)::after {
  background:
    linear-gradient(45deg, transparent 42%, var(--green) 43% 56%, transparent 57%),
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%),
    #fff;
}

.day-flow .timeline-design::before {
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.28) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.28) 1px, transparent 1px),
    linear-gradient(135deg, transparent 42%, var(--cyan) 43% 54%, transparent 55%),
    #eef8ff;
  background-size: 8px 8px, 8px 8px, auto, auto;
}

.day-flow .timeline-meeting::before {
  background:
    linear-gradient(var(--blue), var(--blue)) 50% 32% / 18px 4px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 50% 54% / 24px 4px no-repeat,
    linear-gradient(var(--green), var(--green)) 50% 76% / 14px 4px no-repeat,
    #fff;
}

.day-flow .timeline-field::before {
  background:
    radial-gradient(circle at 28% 36%, var(--green) 0 4px, transparent 5px),
    radial-gradient(circle at 52% 36%, var(--orange) 0 4px, transparent 5px),
    linear-gradient(var(--blue), var(--blue)) 50% 70% / 26px 5px no-repeat,
    #eef5fc;
}

.day-flow .timeline-report::before {
  background:
    linear-gradient(45deg, transparent 42%, var(--green) 43% 56%, transparent 57%),
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%),
    linear-gradient(#fff, #fff) 50% 56% / 24px 20px no-repeat,
    #eef5fc;
}

.day-flow .timeline-finish::before {
  background:
    radial-gradient(circle at 50% 50%, var(--green) 0 8px, transparent 9px),
    radial-gradient(circle at 50% 50%, rgba(34, 197, 94, 0.18) 0 16px, transparent 17px),
    #fff;
}

.check-grid span::before {
  width: 24px;
  height: 22px;
  border: 2px solid #93c5fd;
  border-radius: 8px;
}

.check-grid span::after {
  background: var(--green);
  box-shadow: 0 0 0 5px rgba(34, 197, 94, 0.08);
}

.fit-check-grid .fit-card span::before,
.fit-check-grid .fit-card span::after {
  display: none;
  content: none;
}

.faq-list summary::after {
  color: var(--navy);
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.9) 0 45%, transparent 46%),
    var(--cyan);
}

.faq-list details[open] summary::after {
  color: var(--navy);
  background:
    linear-gradient(var(--green), var(--green)) 50% 50% / 10px 3px no-repeat,
    #eef5fc;
}

.top-faq-list .top-faq-card summary::after,
.top-faq-list .top-faq-card[open] summary::after {
  top: 50%;
  right: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0 0 1px;
  color: var(--blue);
  background: #eef6fd;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 50%;
  box-sizing: border-box;
  font-family: Arial, sans-serif;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  animation: none;
  transform: translateY(-50%);
}

.top-faq-list .top-faq-card[open] summary::after {
  padding-bottom: 2px;
  background: #e4f0fb;
  content: "-";
}

.recruit-cta-robot::after {
  width: 38px;
  transform-origin: right center;
}

/* Recruit hero focus: make the robot the main welcoming character. */
.recruit-hero .page-hero-inner {
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.72fr);
  gap: clamp(36px, 5vw, 72px);
  align-items: center;
}

.recruit-hero .page-hero-inner > div:first-child {
  max-width: 690px;
}

.robot-hero {
  min-height: 380px;
  overflow: hidden;
  background:
    radial-gradient(circle at 28% 34%, rgba(103, 232, 249, 0.18), transparent 20%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    rgba(255, 255, 255, 0.12);
  background-size: auto, 22px 22px, 22px 22px, auto;
  border-color: rgba(255, 255, 255, 0.32);
}

.robot-hero::before {
  left: 34px;
  right: 28px;
  bottom: 42px;
  height: 24px;
  background:
    linear-gradient(90deg, transparent, rgba(103, 232, 249, 0.72), transparent),
    rgba(215, 231, 248, 0.82);
  background-size: 140px 100%, auto;
  border-radius: 999px;
  animation: path-run 7.6s linear infinite;
}

.robot-hero::after {
  right: 28px;
  top: 38px;
  width: 128px;
  height: 92px;
  background:
    linear-gradient(90deg, rgba(14, 165, 233, 0.18) 1px, transparent 1px),
    linear-gradient(rgba(14, 165, 233, 0.18) 1px, transparent 1px),
    linear-gradient(var(--green), var(--green)) 16px 66px / 42px 7px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 70px 66px / 34px 7px no-repeat,
    #f7fbff;
  background-size: 13px 13px, 13px 13px, auto, auto, auto;
  border: 5px solid #bfdbfe;
  border-radius: 12px;
  box-shadow:
    -66px 128px 0 -46px rgba(249, 115, 22, 0.72),
    -244px 82px 0 -48px rgba(103, 232, 249, 0.75);
  animation: hero-float 7.2s ease-in-out infinite;
}

.robot-hero span:nth-child(1) {
  left: 112px;
  top: 70px;
  z-index: 3;
  width: 116px;
  height: 92px;
  background:
    radial-gradient(circle at 33% 47%, var(--navy) 0 7px, transparent 8px),
    radial-gradient(circle at 67% 47%, var(--navy) 0 7px, transparent 8px),
    radial-gradient(circle at 33% 47%, rgba(103, 232, 249, 0.9) 0 12px, transparent 13px),
    radial-gradient(circle at 67% 47%, rgba(103, 232, 249, 0.9) 0 12px, transparent 13px),
    linear-gradient(var(--cyan), var(--cyan)) 50% 75% / 44px 5px no-repeat,
    #dbeafe;
  border: 6px solid #93c5fd;
  border-radius: 30px;
  box-shadow:
    inset 0 -10px 0 rgba(37, 99, 168, 0.12),
    0 -18px 0 -10px var(--cyan),
    0 18px 34px rgba(15, 42, 68, 0.18);
  animation: robot-bob 7.2s ease-in-out infinite;
}

.robot-hero span:nth-child(2) {
  left: 64px;
  top: 132px;
  z-index: 2;
  width: 58px;
  height: 14px;
  background: #dbeafe;
  border: 4px solid #93c5fd;
  border-right: 0;
  border-radius: 999px 0 0 999px;
  transform-origin: right center;
  animation: robot-wave 3.2s ease-in-out infinite;
}

.robot-hero span:nth-child(2)::after {
  left: -22px;
  top: -10px;
  width: 24px;
  height: 24px;
  background: #fff;
  border: 4px solid #93c5fd;
  border-radius: 50%;
}

.robot-hero span:nth-child(3) {
  left: 98px;
  bottom: 62px;
  z-index: 2;
  width: 142px;
  height: 150px;
  background:
    linear-gradient(var(--cyan), var(--cyan)) 50% 30% / 62px 9px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 50% 50% / 68px 9px no-repeat,
    radial-gradient(circle at 50% 70%, rgba(103, 232, 249, 0.9) 0 9px, transparent 10px),
    linear-gradient(#dbeafe, #dbeafe) 50% 100% / 108px 28px no-repeat,
    #f8fbff;
  border: 6px solid #bfdbfe;
  border-radius: 28px 28px 14px 14px;
  box-shadow:
    inset 0 -22px 0 rgba(37, 99, 168, 0.1),
    0 18px 34px rgba(15, 42, 68, 0.14);
  animation: robot-bob 7.2s ease-in-out infinite;
}

.robot-hero span:nth-child(3)::before {
  left: 18px;
  bottom: -22px;
  width: 42px;
  height: 18px;
  background: #dbeafe;
  border-radius: 0 0 10px 10px;
  box-shadow: 64px 0 0 #dbeafe;
}

.robot-hero span:nth-child(3)::after {
  right: -52px;
  top: 48px;
  width: 58px;
  height: 14px;
  background: #dbeafe;
  border: 4px solid #93c5fd;
  border-left: 0;
  border-radius: 0 999px 999px 0;
  box-shadow: 42px -18px 0 -12px rgba(103, 232, 249, 0.9);
}

.robot-hero span:nth-child(4) {
  right: 38px;
  bottom: 66px;
  width: 150px;
  height: 142px;
  background:
    radial-gradient(circle at 24% 26%, var(--green) 0 6px, transparent 7px),
    radial-gradient(circle at 46% 26%, var(--orange) 0 6px, transparent 7px),
    radial-gradient(circle at 68% 26%, var(--cyan) 0 6px, transparent 7px),
    linear-gradient(var(--blue), var(--blue)) 50% 68% / 92px 9px no-repeat,
    linear-gradient(#fff, #fff) 50% 45% / 82px 52px no-repeat,
    #93c5fd;
  border-radius: 22px 22px 10px 10px;
  box-shadow:
    inset 0 -22px 0 rgba(15, 42, 68, 0.12),
    0 16px 30px rgba(15, 42, 68, 0.13);
  animation: hero-float-alt 8s ease-in-out infinite;
}

.robot-hero span:nth-child(5) {
  left: 34px;
  top: 54px;
  width: 96px;
  height: 34px;
  background:
    linear-gradient(var(--cyan), var(--cyan)) 18px 15px / 42px 5px no-repeat,
    linear-gradient(rgba(14, 165, 233, 0.34), rgba(14, 165, 233, 0.34)) 18px 24px / 58px 4px no-repeat,
    rgba(255, 255, 255, 0.9);
  border: 2px solid #bfdbfe;
  border-radius: 18px 18px 18px 4px;
  animation: hero-float-alt 8.4s ease-in-out infinite;
}

.robot-hero span:nth-child(6) {
  left: 272px;
  top: 150px;
  width: 92px;
  height: 54px;
  background:
    linear-gradient(45deg, transparent 44%, var(--green) 45% 58%, transparent 59%),
    linear-gradient(-45deg, transparent 40%, var(--green) 41% 54%, transparent 55%),
    linear-gradient(var(--blue), var(--blue)) 50% 76% / 48px 5px no-repeat,
    rgba(255, 255, 255, 0.9);
  border: 2px solid #bfdbfe;
  border-radius: 10px;
  animation: guide-spark 7s ease-in-out infinite 0.4s;
}

.robot-hero span:nth-child(7) {
  left: 244px;
  bottom: 72px;
  width: 112px;
  height: 5px;
  background:
    linear-gradient(90deg, transparent, var(--cyan), transparent),
    radial-gradient(circle, #fff 0 4px, transparent 5px);
  background-size: 112px 5px, 28px 10px;
  border: 0;
  border-radius: 999px;
  animation: path-run 5.8s linear infinite;
}

.robot-hero span:nth-child(8) {
  right: 22px;
  top: 152px;
  width: 22px;
  height: 22px;
  background: rgba(103, 232, 249, 0.9);
  border: 4px solid rgba(255, 255, 255, 0.78);
  border-radius: 50%;
  animation: guide-spark 6s ease-in-out infinite 1s;
}

/* Recruit hero navigator: make the robot read as a hiring guide, not a work robot. */
.robot-hero {
  background:
    radial-gradient(circle at 27% 36%, rgba(103, 232, 249, 0.16), transparent 22%),
    radial-gradient(circle at 86% 18%, rgba(63, 139, 97, 0.1), transparent 19%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    rgba(255, 255, 255, 0.12);
  background-size: auto, auto, 22px 22px, 22px 22px, auto;
}

.robot-hero::before {
  left: 52px;
  right: 34px;
  bottom: 36px;
  height: 32px;
  background:
    radial-gradient(circle, #fff 0 4px, transparent 5px) 24px 50% / 32px 10px repeat-x,
    linear-gradient(90deg, transparent, rgba(103, 232, 249, 0.86), transparent),
    rgba(215, 231, 248, 0.88);
  border: 1px solid rgba(147, 197, 253, 0.7);
  box-shadow: 0 0 28px rgba(14, 165, 233, 0.18);
}

.robot-hero::after {
  right: 22px;
  top: 36px;
  width: 154px;
  height: 116px;
  background:
    linear-gradient(var(--cyan), var(--cyan)) 22px 22px / 54px 7px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.22), rgba(37, 99, 168, 0.22)) 22px 44px / 96px 5px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.16), rgba(37, 99, 168, 0.16)) 22px 60px / 78px 5px no-repeat,
    radial-gradient(circle at 82% 29%, var(--green) 0 8px, transparent 9px),
    radial-gradient(circle at 82% 29%, rgba(63, 139, 97, 0.16) 0 17px, transparent 18px),
    #f8fbff;
  border: 4px solid #bfdbfe;
  border-radius: 16px;
  box-shadow:
    -78px 118px 0 -52px rgba(249, 115, 22, 0.5),
    -250px 82px 0 -52px rgba(103, 232, 249, 0.62),
    0 18px 34px rgba(15, 42, 68, 0.12);
}

.robot-hero span:nth-child(1) {
  background:
    radial-gradient(circle at 33% 47%, var(--navy) 0 7px, transparent 8px),
    radial-gradient(circle at 67% 47%, var(--navy) 0 7px, transparent 8px),
    radial-gradient(circle at 33% 47%, rgba(103, 232, 249, 0.96) 0 14px, transparent 15px),
    radial-gradient(circle at 67% 47%, rgba(103, 232, 249, 0.96) 0 14px, transparent 15px),
    linear-gradient(var(--green), var(--green)) 50% 75% / 36px 5px no-repeat,
    #eaf6ff;
}

.robot-hero span:nth-child(2) {
  transform-origin: right center;
}

.robot-hero span:nth-child(3) {
  background:
    linear-gradient(var(--cyan), var(--cyan)) 50% 28% / 66px 9px no-repeat,
    linear-gradient(var(--green), var(--green)) 50% 47% / 46px 8px no-repeat,
    radial-gradient(circle at 50% 69%, rgba(103, 232, 249, 0.92) 0 9px, transparent 10px),
    linear-gradient(#dbeafe, #dbeafe) 50% 100% / 108px 28px no-repeat,
    #f8fbff;
}

.robot-hero span:nth-child(3)::after {
  width: 74px;
  background:
    linear-gradient(90deg, transparent, rgba(103, 232, 249, 0.6), transparent) 0 50% / 74px 100% no-repeat,
    #dbeafe;
  box-shadow:
    54px -24px 0 -17px rgba(255, 255, 255, 0.96),
    58px -24px 0 -14px rgba(63, 139, 97, 0.55);
}

.robot-hero span:nth-child(4) {
  right: 44px;
  bottom: 70px;
  width: 166px;
  height: 134px;
  background:
    radial-gradient(circle at 22px 26px, #fff 0 12px, transparent 13px),
    radial-gradient(circle at 22px 26px, var(--cyan) 0 18px, transparent 19px),
    linear-gradient(var(--blue), var(--blue)) 52px 22px / 70px 7px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.2), rgba(37, 99, 168, 0.2)) 52px 39px / 86px 5px no-repeat,
    linear-gradient(var(--green), var(--green)) 28px 72px / 18px 18px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 58px 78px / 78px 5px no-repeat,
    linear-gradient(var(--orange), var(--orange)) 28px 102px / 18px 18px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 58px 108px / 64px 5px no-repeat,
    #f8fbff;
  border: 4px solid #93c5fd;
  border-radius: 18px;
  box-shadow:
    inset 0 -14px 0 rgba(37, 99, 168, 0.08),
    0 18px 34px rgba(15, 42, 68, 0.13);
}

.robot-hero span:nth-child(4)::before,
.robot-hero span:nth-child(4)::after {
  right: 16px;
  width: 48px;
  height: 22px;
  color: #fff;
  background: var(--cta);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
  line-height: 22px;
  text-align: center;
  letter-spacing: 0.04em;
}

.robot-hero span:nth-child(4)::before {
  top: 60px;
  content: "ENTRY";
}

.robot-hero span:nth-child(4)::after {
  top: 90px;
  content: "VISIT";
  background: var(--green);
}

.robot-hero span:nth-child(5) {
  left: 30px;
  top: 52px;
  width: 116px;
  height: 56px;
  background:
    radial-gradient(circle at 21px 23px, #fff 0 9px, transparent 10px),
    radial-gradient(circle at 21px 23px, var(--cyan) 0 15px, transparent 16px),
    linear-gradient(var(--blue), var(--blue)) 46px 18px / 50px 6px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 46px 33px / 56px 5px no-repeat,
    rgba(255, 255, 255, 0.94);
  border-radius: 18px 18px 18px 6px;
  box-shadow: 0 12px 24px rgba(15, 42, 68, 0.1);
}

.robot-hero span:nth-child(5)::before {
  left: 13px;
  top: 35px;
  width: 18px;
  height: 7px;
  background: var(--green);
  border-radius: 999px 999px 4px 4px;
}

.robot-hero span:nth-child(5)::after {
  right: -11px;
  top: 20px;
  width: 17px;
  height: 17px;
  background: var(--green);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(63, 139, 97, 0.12);
}

.robot-hero span:nth-child(6) {
  left: 276px;
  top: 156px;
  width: 110px;
  height: 66px;
  background:
    linear-gradient(var(--green), var(--green)) 20px 18px / 18px 18px no-repeat,
    linear-gradient(var(--green), var(--green)) 24px 25px / 30px 5px no-repeat,
    linear-gradient(var(--cyan), var(--cyan)) 20px 43px / 52px 6px no-repeat,
    linear-gradient(rgba(37, 99, 168, 0.18), rgba(37, 99, 168, 0.18)) 20px 54px / 70px 5px no-repeat,
    rgba(255, 255, 255, 0.94);
  border: 2px solid #bfdbfe;
  border-radius: 14px;
  box-shadow: 0 12px 24px rgba(15, 42, 68, 0.1);
}

.robot-hero span:nth-child(6)::before,
.robot-hero span:nth-child(6)::after {
  top: -14px;
  width: 44px;
  height: 22px;
  color: #fff;
  background: var(--cta);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
  line-height: 22px;
  text-align: center;
  letter-spacing: 0.03em;
}

.robot-hero span:nth-child(6)::before {
  right: 10px;
  content: "STEP";
}

.robot-hero span:nth-child(6)::after {
  right: 58px;
  content: "OK";
  background: var(--green);
}

.robot-hero span:nth-child(7) {
  left: 236px;
  bottom: 62px;
  width: 142px;
  height: 8px;
  background:
    linear-gradient(90deg, transparent, var(--cta), var(--cyan), transparent),
    radial-gradient(circle, #fff 0 4px, transparent 5px);
  background-size: 142px 8px, 30px 12px;
  box-shadow: 0 0 24px rgba(29, 78, 216, 0.24);
}

.robot-hero span:nth-child(8) {
  right: 18px;
  top: 168px;
  width: 24px;
  height: 24px;
  background:
    linear-gradient(45deg, transparent 44%, #fff 45% 57%, transparent 58%),
    var(--green);
  box-shadow:
    0 0 0 8px rgba(63, 139, 97, 0.12),
    -34px -112px 0 -7px rgba(103, 232, 249, 0.82);
}

.requirement-list span {
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
}

@media (max-width: 1120px) {
  .site-nav a {
    padding-inline: 8px;
    font-size: 13px;
  }

  .site-nav .nav-contact {
    padding-inline: 18px;
  }

  .hero-inner,
  .page-hero-inner,
  .calendar-wrap,
  .recruit-home,
  .recruit-hero .page-hero-inner {
    grid-template-columns: 1fr;
  }

  .hero-inner {
    min-height: auto;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.94) 64%, rgba(229, 241, 252, 0.58) 100%),
      rgba(255, 255, 255, 0.9);
  }

  .service-hero {
    background:
      linear-gradient(180deg, rgba(248, 252, 255, 0.99) 0%, rgba(240, 249, 255, 0.96) 48%, rgba(160, 204, 236, 0.66) 76%, rgba(38, 105, 163, 0.26) 100%),
      url("../images/hero/service-hero-tech-bg.webp") 62% center / cover no-repeat,
      #eef6fc;
  }

  .service-hero .page-hero-inner > div:first-child {
    max-width: 100%;
    padding-left: 0;
    padding-block: 0;
  }

  .service-hero .lead span {
    display: inline;
  }

  .service-hero h1 {
    max-width: 100%;
    font-size: clamp(28px, 7.4vw, 40px);
    line-height: 1.1;
  }

  .service-hero-title-line {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .service-hero .lead {
    max-width: 100%;
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.85;
    overflow-wrap: anywhere;
  }

  .hero-visual-card,
  .tech-illustration.page,
  .people-illustration {
    max-width: 720px;
  }

  .recruit-copy {
    position: relative;
    top: auto;
  }

  .problem-list,
  .service-grid,
  .company-service-grid,
  .company-value-grid,
  .process-steps,
  .case-grid-detailed,
  .skill-grid,
  .reason-grid,
  .category-grid,
  .scope-map,
  .work-field-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .top-service-card,
  .top-service-card:nth-child(4),
  .top-service-card:nth-child(5) {
    grid-column: auto;
  }

  .consultation-grid {
    grid-template-columns: 1fr;
  }

  .company-overview-grid,
  .company-access-grid {
    grid-template-columns: 1fr;
  }

  .message-card,
  .photo-cta-card {
    grid-template-columns: 1fr;
  }

  .photo-cta-visual {
    order: -1;
  }

  .related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .process-steps li:nth-child(even)::after {
    display: none;
  }
}

@media (min-width: 760px) and (max-width: 1120px) {
  .recruit-job-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .recruit-job-grid .recruit-job-card {
    grid-column: span 2;
  }

  .recruit-job-grid .recruit-job-card:nth-child(4) {
    grid-column: span 2;
  }

  .recruit-job-grid .recruit-job-card:nth-child(5) {
    grid-column: 2 / span 2;
  }

  .hero-inner {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.62fr);
    gap: 24px;
    padding: 42px 36px;
  }

  .hero-inner::after {
    top: 15%;
    right: 3%;
    width: min(35vw, 360px);
    height: 70%;
  }

  .hero-visual-art .tech-illustration {
    min-height: 260px;
  }

  .hero-visual-art .tech-illustration.large {
    min-height: 300px;
  }

  .hero-visual-art .hero-tech-map {
    min-height: 340px;
  }

  .hero-tech-map .tech-label {
    font-size: 11px;
  }

  .hero-tech-map .cad-node {
    left: 5%;
    top: 8%;
    width: 43%;
    height: 34%;
  }

  .hero-tech-map .control-node {
    right: 5%;
    top: 13%;
    width: 39%;
    height: 36%;
  }

  .hero-tech-map .field-node {
    left: 7%;
    bottom: 10%;
    width: 38%;
    height: 30%;
  }

  .hero-tech-map .maintenance-node {
    right: 6%;
    bottom: 9%;
    width: 40%;
    height: 31%;
  }

  .recruit-hero .page-hero-inner {
    grid-template-columns: 1fr;
  }

  .robot-hero {
    min-height: 300px;
    max-width: 560px;
  }

  .robot-hero span:nth-child(1) {
    left: 112px;
    width: 102px;
    height: 82px;
  }

  .robot-hero span:nth-child(3) {
    width: 124px;
    height: 132px;
  }

  .hero-visual-meta span {
    font-size: 11px;
  }
}

@media (max-width: 1040px) {
  .nav-toggle {
    display: block;
    flex: 0 0 auto;
  }

  .site-nav {
    position: absolute;
    top: 109px;
    left: 16px;
    right: 16px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 10px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow);
  }

  .site-nav.is-open {
    display: flex;
  }

  .site-nav a {
    padding: 12px;
    font-size: 14px;
  }

  .site-nav .nav-contact {
    width: 100%;
    min-height: 52px;
    padding: 12px 20px;
    box-shadow:
      0 6px 16px rgba(14, 91, 210, 0.2),
      0 0 12px rgba(31, 186, 225, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.24);
  }

  .theme-switcher {
    display: grid;
    grid-template-columns: 1fr repeat(3, auto);
    width: 100%;
    margin: 4px 0;
    border-radius: 8px;
  }

  .theme-switcher span {
    padding-left: 8px;
  }

  .calendar-bottom,
  .footer-inner,
  .cta-inner {
    display: block;
  }

  .footer-links {
    justify-content: flex-start;
    margin-top: 12px;
  }

  .calendar-bottom .button,
  .cta-inner .hero-actions {
    margin-top: 14px;
  }

  .case-detail-card {
    grid-template-columns: 1fr;
  }

  .case-policy-card,
  .case-example-grid {
    grid-template-columns: 1fr;
  }

  .case-process-flow {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .case-process-flow li:nth-child(3)::after {
    display: none;
  }

  .case-detail-card .case-figure {
    min-height: 160px;
  }

  .case-detail-card dl,
  .requirement-list div {
    grid-template-columns: 1fr;
  }

  .day-flow-panel {
    grid-template-columns: 1fr;
  }

  .fit-panel {
    grid-template-columns: 1fr;
  }

  .day-flow-panel::after {
    left: 50%;
    top: 236px;
  }

  .timeline-guide-robot {
    position: relative;
    top: auto;
    min-height: 188px;
  }

  .timeline-guide-robot::before {
    left: 56px;
    top: 36px;
  }

  .timeline-guide-robot::after {
    left: 80px;
    top: 120px;
  }

  .fit-guide-robot {
    min-height: 172px;
  }

  .fit-guide-robot::before {
    left: 56px;
    top: 32px;
  }

  .fit-guide-robot::after {
    left: 82px;
    top: 116px;
  }
}

@media (max-width: 640px) {
  body {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }

  .container,
  .header-inner {
    width: calc(100% - 20px);
  }

  .case-hero {
    min-height: 650px;
  }

  .service-hero {
    padding-bottom: 128px;
  }

  .case-hero__media {
    background-position: 68% bottom;
    transform: scale(1.06);
  }

  .case-hero__shade {
    background: linear-gradient(
      90deg,
      rgba(3, 24, 49, 0.84) 0%,
      rgba(3, 24, 49, 0.64) 54%,
      rgba(3, 24, 49, 0.24) 100%
    );
  }

  .case-hero .case-hero__eyebrow {
    color: #d7eaff;
  }

  .case-hero h1 {
    color: #fff;
  }

  .case-hero .case-hero__lead {
    color: rgba(255, 255, 255, 0.9);
  }

  /* Keep the approved News Hero independent from later Case adjustments. */
  main.news-list-page .news-hero .case-hero__media {
    background-size: cover;
    background-position: 100% 50%;
    transform: scale(1.06);
  }

  main.news-list-page .news-hero .case-hero__shade {
    background: linear-gradient(
      90deg,
      rgba(3, 24, 49, 0.84) 0%,
      rgba(3, 24, 49, 0.64) 54%,
      rgba(3, 24, 49, 0.24) 100%
    );
  }

  main.news-list-page .news-hero .case-hero__eyebrow {
    color: #d7eaff;
  }

  main.news-list-page .news-hero h1 {
    color: #fff;
  }

  main.news-list-page .news-hero .case-hero__lead {
    color: rgba(255, 255, 255, 0.9);
  }

  /* Keep the approved Company Hero independent from later Case adjustments. */
  main.company-page .company-hero .case-hero__media {
    background-size: cover;
    background-position: 68% 100%;
    transform: scale(1.06);
  }

  main.company-page .company-hero .case-hero__shade {
    background: linear-gradient(
      90deg,
      rgba(3, 24, 49, 0.84) 0%,
      rgba(3, 24, 49, 0.64) 54%,
      rgba(3, 24, 49, 0.24) 100%
    );
  }

  main.company-page .company-hero .case-hero__eyebrow {
    color: #d7eaff;
  }

  main.company-page .company-hero h1 {
    color: #fff;
  }

  main.company-page .company-hero .case-hero__lead {
    color: rgba(255, 255, 255, 0.9);
  }

  /* Keep the approved Contact Hero independent from later Case adjustments. */
  main.contact-page .case-hero .case-hero__media {
    background-size: cover;
    background-position: 68% 100%;
    transform: scale(1.06);
  }

  main.contact-page .case-hero .case-hero__shade {
    background: linear-gradient(
      90deg,
      rgba(3, 24, 49, 0.84) 0%,
      rgba(3, 24, 49, 0.64) 54%,
      rgba(3, 24, 49, 0.24) 100%
    );
  }

  main.contact-page .case-hero .case-hero__eyebrow {
    color: #d7eaff;
  }

  main.contact-page .case-hero h1 {
    color: #fff;
  }

  main.contact-page .case-hero .case-hero__lead {
    color: rgba(255, 255, 255, 0.9);
  }

  .case-hero__grid {
    opacity: 0.32;
    background-size: 32px 32px;
    mask-image: linear-gradient(180deg, #000 0%, #000 48%, transparent 82%);
  }

  .case-hero__inner {
    align-items: start;
    padding-block: 34px 190px;
  }

  .case-hero__copy {
    padding-block: 0;
  }

  .case-hero h1 {
    font-size: clamp(38px, 11vw, 52px);
    line-height: 1.08;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .case-hero__lead {
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.85;
  }

  .case-hero__note {
    align-items: flex-start;
    border-radius: 16px;
    font-size: 13px;
    line-height: 1.65;
  }

  .case-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 26px;
  }

  .case-hero__button {
    width: 100%;
  }

  .hero-inner {
    width: calc(100% - 20px);
    max-width: 1200px;
    padding: 34px 16px 38px;
    border-radius: 14px;
  }

  .hero-inner::after {
    top: 58%;
    right: 5%;
    width: 78%;
    height: 34%;
    opacity: 0.28;
  }

  .hero-copy::before {
    inset: -16px -10px -18px;
    background: rgba(255, 255, 255, 0.96);
  }

  h1 {
    font-size: 26px;
    line-height: 1.25;
    word-break: break-all;
  }

  .hero-focus,
  .problem-list,
  .pre-apply-grid,
  .service-grid,
  .service-detail-grid,
  .quick-table,
  .quick-table article,
  .reason-grid,
  .category-grid,
  .scope-map,
  .fit-grid,
  .related-grid,
  .work-field-grid,
  .recruit-detail-grid,
  .check-grid,
  .process-steps,
  .case-grid-detailed,
  .recruit-paths,
  .news-list,
  .company-service-grid,
  .company-value-grid,
  .company-related-grid,
  .skill-grid {
    grid-template-columns: 1fr;
  }

  .news-index-card {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .entry-choice-grid {
    gap: 14px;
  }

  .entry-choice-grid .entry-choice {
    padding: 20px;
  }

  .entry-points {
    grid-template-columns: 1fr;
  }

  .entry-actions {
    display: grid;
    gap: 9px;
  }

  .entry-actions .button,
  .entry-actions .text-link {
    justify-content: center;
    width: 100%;
  }

  .design-problems article {
    min-height: 0;
  }

  .problem-bridge {
    display: grid;
    padding: 18px;
  }

  .problem-actions {
    display: grid;
    gap: 9px;
  }

  .problem-actions .button,
  .problem-actions .text-link {
    justify-content: center;
    width: 100%;
  }

  .process-support {
    display: grid;
    padding: 16px;
  }

  .process-flow {
    margin-top: 22px;
    padding: 22px 16px;
    border-radius: 10px;
  }

  .process-heading {
    margin-bottom: 20px;
  }

  .top-flow-steps {
    gap: 34px;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .process-steps li {
    min-height: 0;
    padding: 16px 16px 18px;
    overflow: visible;
    border: 1px solid rgba(37, 99, 168, 0.16);
    border-radius: 10px;
  }

  .process-steps li:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: -23px;
    left: 50%;
    width: 24px;
    height: 24px;
    color: #fff;
    font-size: 15px;
    background: rgba(94, 184, 232, 0.92);
    border: 1px solid rgba(37, 99, 168, 0.14);
    border-radius: 999px;
    box-shadow: 0 8px 14px rgba(15, 42, 68, 0.12);
    content: "↓";
    transform: translateX(-50%);
  }

  .top-flow-steps li:not(:last-child)::after {
    bottom: -30px;
  }

  .process-actions {
    display: grid;
    gap: 9px;
  }

  .process-actions .button {
    justify-content: center;
    width: 100%;
  }

  .top-recruit-support {
    display: grid;
    padding: 18px;
  }

  .top-recruit-support .recruit-actions {
    display: grid;
    gap: 9px;
  }

  .top-recruit-support .button {
    justify-content: center;
    width: 100%;
  }

  .company-profile-table div {
    grid-template-columns: 1fr;
  }

  .company-profile-table dt,
  .company-profile-table dd {
    padding: 13px 14px;
  }

  .hero-focus {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 18px 0;
  }

  .hero-focus a {
    min-height: 62px;
    padding: 12px;
  }

  .hero-focus strong {
    font-size: 14px;
  }

  .recruit-job-grid .recruit-job-card,
  .recruit-job-grid .recruit-job-card:nth-child(4),
  .recruit-job-grid .recruit-job-card:nth-child(5) {
    grid-column: auto;
  }

  .message-card,
  .photo-cta-card {
    padding: 16px;
  }

  .person-photo-frame,
  .photo-cta-visual {
    min-height: 160px;
    padding: 18px;
  }

  .photo-cta-actions {
    display: grid;
  }

  .pre-apply-grid article {
    padding: 18px;
  }

  .hero-visual-card {
    padding: 12px;
  }

  .hero-visual-art {
    padding: 0;
  }

  .hero-visual-card .tech-illustration {
    min-height: 188px;
    opacity: 0.9;
  }

  .visual-caption {
    padding: 12px;
  }

  .process-steps li::after {
    display: none;
  }

  .top-flow-steps li:not(:last-child)::after {
    display: grid;
  }

  .tech-illustration {
    min-height: 220px;
  }

  .hero-visual-art .tech-illustration {
    min-height: 196px;
  }

  .hero-visual-art .tech-illustration.large {
    min-height: 196px;
  }

  .hero-visual-art .hero-tech-map {
    min-height: 250px;
  }

  .hero-tech-map::before {
    left: 5%;
    top: 6%;
    width: 90%;
    height: 88%;
    background-size: 24px 24px;
  }

  .hero-tech-map .tech-node {
    padding: 10px;
    border-radius: 9px;
    box-shadow: 0 12px 22px rgba(3, 15, 28, 0.14);
  }

  .hero-tech-map .tech-label {
    left: 8px;
    top: 8px;
    padding: 4px 6px;
    font-size: 10px;
  }

  .hero-tech-map .cad-node {
    left: 5%;
    top: 8%;
    width: 43%;
    height: 34%;
  }

  .hero-tech-map .control-node {
    right: 5%;
    top: 10%;
    width: 42%;
    height: 36%;
  }

  .hero-tech-map .field-node {
    left: 6%;
    bottom: 9%;
    width: 40%;
    height: 32%;
  }

  .hero-tech-map .maintenance-node {
    right: 5%;
    bottom: 8%;
    width: 43%;
    height: 33%;
  }

  .hero-tech-map .cad-sheet,
  .hero-tech-map .panel-screen {
    left: 10px;
    top: 42px;
  }

  .hero-tech-map .cad-model,
  .hero-tech-map .plc-rack {
    right: 10px;
  }

  .hero-tech-map .plc-rack {
    top: 42px;
    gap: 3px;
  }

  .hero-tech-map .field-check {
    right: 12px;
    top: 40px;
    transform: rotate(-45deg) scale(0.78);
  }

  .hero-tech-map .gear-mark {
    left: 12px;
    bottom: 20px;
    width: 42px;
    height: 42px;
    border-width: 6px;
  }

  .hero-tech-map .service-line {
    left: 70px;
    right: 12px;
    bottom: 38px;
  }

  .hero-tech-map .tech-flow-line,
  .hero-tech-map .tech-signal {
    opacity: 0.72;
  }

  .illust-cad {
    right: 13%;
    width: 104px;
  }

  .illust-panel {
    width: 76px;
  }

  .illust-tool {
    left: 52%;
    bottom: 16%;
    width: 62px;
  }

  .illust-model {
    left: 45%;
    width: 58px;
    height: 44px;
  }

  .hero-visual-meta {
    margin-top: 10px;
  }

  .illust-grid,
  .illust-conveyor,
  .illust-arm,
  .illust-panel,
  .illust-cad,
  .illust-tool,
  .illust-model,
  .illust-calendar {
    animation-duration: 12s;
  }

  .quick-table article::before,
  .reason-grid article::before,
  .category-grid article::before,
  .recruit-detail-grid article::before,
  .recruit-paths article::before,
  .case-grid article::after,
  .case-detail-card::after {
  opacity: 0.42;
  animation-duration: 13s;
  }

  .quick-table article::after,
  .reason-grid article::after,
  .category-grid article::after,
  .work-field-grid article::after,
  .recruit-detail-grid article::after,
  .recruit-paths article::after,
  .skill-grid article::after,
  .process-steps li::before {
    animation-duration: 13s;
  }

  .mini-visual,
  .mini-visual::before,
  .mini-visual::after,
  .mini-visual span,
  .case-figure,
  .people-illustration,
  .people-illustration::after,
  .people-illustration span,
  .faq-list summary::after {
    animation-duration: 13s;
  }

  .illust-flow::before,
  .illust-status,
  .illust-dot {
    animation-duration: 7s;
  }

  .calendar-section .google-calendar-embed iframe {
    height: 620px;
  }

  .calendar-section .google-calendar-embed {
    height: 576px;
  }

  .case-grid article,
  .case-detail-card {
    padding: 16px;
  }

  .case-policy-card,
  .case-example-card {
    padding: 16px;
  }

  .case-policy-card,
  .case-example-grid,
  .case-process-flow {
    grid-template-columns: 1fr;
  }

  .case-example-visual {
    width: 52px;
    height: 52px;
    min-height: 0;
  }

  .case-example-card dl div {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .case-process-flow li:not(:last-child)::after {
    display: none;
  }

  .case-figure {
    min-height: 94px;
    margin-bottom: 10px;
  }

  .case-detail-card .case-figure {
    min-height: 132px;
  }

  .case-tags {
    gap: 4px;
    margin-bottom: 8px;
  }

  .case-tags span {
    padding: 3px 7px;
  }

  .top-case-visual {
    height: 176px;
    margin-right: -16px;
    margin-left: -16px;
    padding: 18px 18px 12px;
  }

  .top-case-visual img {
    width: min(100%, 280px);
  }

  .top-case-more {
    display: grid;
    padding: 18px;
  }

  .top-case-more-actions {
    display: grid;
    justify-content: stretch;
  }

  .top-case-more-actions .button {
    width: 100%;
  }

  .service-detail-card {
    padding: 0 18px 20px;
  }

  .service-detail-visual {
    width: 100%;
    margin: 0 0 16px;
    padding: 12px 16px;
  }

  .case-detail-card dl {
    gap: 8px;
  }

  .case-detail-card dt {
    padding: 3px 7px;
  }

  .hero-actions .button,
  .button {
    width: 100%;
  }

  .site-logo--header {
    height: 80px;
  }

  .timeline li {
    grid-template-columns: 1fr;
    padding: 14px 18px 14px 64px;
  }

  .day-flow-panel {
    gap: 18px;
    padding: 18px;
    border-radius: 12px;
  }

  .fit-panel {
    gap: 16px;
    padding: 18px;
    border-radius: 12px;
  }

  .fit-panel::before {
    inset: 12px;
  }

  .fit-guide-robot {
    min-height: 130px;
  }

  .fit-guide-robot::before {
    left: 24px;
    top: 24px;
    width: 54px;
    height: 44px;
    box-shadow: 0 46px 0 14px #eaf2f9;
  }

  .fit-guide-robot::after {
    left: 42px;
    top: 100px;
    width: 24px;
    height: 28px;
  }

  .fit-guide-robot span:nth-child(1) {
    right: 24px;
    top: 24px;
  }

  .fit-guide-robot span:nth-child(2) {
    left: 88px;
    right: 24px;
    bottom: 34px;
    width: auto;
  }

  .fit-check-grid {
    grid-template-columns: 1fr;
  }

  .fit-card {
    min-height: 0;
    padding: 16px;
  }

  .day-flow-panel::before {
    inset: 12px;
  }

  .day-flow-panel::after {
    left: 38px;
    top: 176px;
    bottom: 36px;
  }

  .timeline-guide-robot {
    min-height: 142px;
  }

  .timeline-guide-robot::before {
    left: 24px;
    top: 26px;
    width: 54px;
    height: 44px;
    box-shadow: 0 46px 0 14px #eaf2f9;
  }

  .timeline-guide-robot::after {
    left: 42px;
    top: 104px;
    width: 24px;
    height: 30px;
  }

  .timeline-guide-robot span:nth-child(1) {
    left: 86px;
    top: 76px;
    width: 64px;
    transform: rotate(0deg);
  }

  .timeline-guide-robot span:nth-child(2) {
    right: 24px;
    top: 24px;
  }

  .timeline {
    grid-template-columns: 1fr;
    gap: 12px;
    padding-left: 0;
  }

  .timeline::before {
    display: none;
    content: none;
  }

  .timeline li {
    min-height: 0;
    padding: 16px;
    border-left: 4px solid rgba(37, 99, 168, 0.2);
    overflow: visible;
  }

  .timeline li::before {
    display: none;
    content: none;
  }

  .timeline li::after {
    display: none;
    content: none;
  }

  .timeline time {
    font-size: 16px;
  }

  .recruit-scene {
    min-height: 132px;
    margin: 10px 0 14px;
  }

  .beginner-growth-scene {
    min-height: 150px;
  }

  .recruit-scene::before {
    left: 18px;
    bottom: 20px;
    width: 42px;
    height: 34px;
    box-shadow:
      0 38px 0 12px #eaf2f9,
      68px 4px 0 -5px #fbbf24,
      68px 42px 0 12px #93c5fd;
  }

  .expert-scene::before {
    box-shadow:
      0 38px 0 14px #d7e7f8,
      72px 2px 0 -5px #93c5fd,
      72px 42px 0 12px #eaf2f9;
  }

  .recruit-scene::after {
    right: 16px;
    top: 22px;
    width: 86px;
    height: 58px;
  }

  .recruit-scene span:nth-child(1) {
    left: 36px;
    width: 72px;
  }

  .recruit-scene span:nth-child(2) {
    right: 32px;
    width: 62px;
  }

  .recruit-scene span:nth-child(3) {
    left: 42%;
    width: 48px;
  }

  .recruit-scene span:nth-child(4) {
    left: 52%;
    width: 28px;
    height: 28px;
  }

  .beginner-growth-scene::after {
    right: 14px;
    width: 94px;
    height: 62px;
  }

  .beginner-growth-scene span:nth-child(2) {
    right: 104px;
    width: 64px;
  }

  .beginner-growth-scene span:nth-child(5) {
    left: 34%;
    width: 84px;
  }

  .growth-steps div {
    min-height: auto;
    padding: 13px 12px 13px 48px;
  }

  .growth-steps div::after {
    width: 34px;
  }

  .beginner-assurance {
    grid-template-columns: 1fr;
  }

  .beginner-assurance div {
    min-height: auto;
  }

  .expert-range-scene {
    min-height: 150px;
  }

  .expert-range-scene::after {
    right: 14px;
    width: 96px;
    height: 62px;
  }

  .expert-range-scene span:nth-child(2) {
    right: 102px;
    width: 68px;
  }

  .expert-range-scene span:nth-child(5) {
    left: 34%;
    width: 92px;
  }

  .expert-domain-grid,
  .expert-expansion-map {
    grid-template-columns: 1fr;
  }

  .expert-domain-grid div,
  .expert-appeal-list div {
    min-height: auto;
  }

  .expert-expansion-map::before,
  .expert-expansion-map::after {
    left: 22px;
    right: auto;
    width: 3px;
    height: 28px;
    background: linear-gradient(180deg, transparent, var(--cyan), transparent);
  }

  .expert-expansion-map::before {
    top: 34%;
  }

  .expert-expansion-map::after {
    top: 66%;
  }

  .skill-grid article {
    min-height: 210px;
    padding-top: 112px;
  }

  .skill-grid article::before {
    height: 70px;
  }

  .work-field-grid article {
    min-height: 238px;
    padding-top: 112px;
  }

  .work-field-grid article::before {
    top: 16px;
    right: 16px;
    left: 16px;
    height: 74px;
    animation-duration: 18s;
  }

  .work-field-grid article::after {
    right: 28px;
    top: 35px;
    width: 30px;
    height: 25px;
    animation-duration: 9s;
  }

  .recruit-job-grid .recruit-job-card {
    gap: 10px;
    min-height: 0;
    padding: 16px;
  }

  .recruit-job-grid dl div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .job-card-visual {
    min-height: 132px;
  }

  .job-card-visual::before {
    left: 18px;
    bottom: 22px;
    width: 44px;
    height: 36px;
  }

  .job-card-visual i:nth-child(1) {
    right: 14px;
    width: 142px;
    height: 76px;
  }

  .design-focus-visual {
    min-height: 150px;
  }

  .design-focus-visual::before {
    left: 16px;
    bottom: 24px;
    width: 48px;
    height: 40px;
  }

  .design-focus-visual::after {
    left: 58px;
    bottom: 62px;
    width: 72px;
  }

  .design-focus-visual i:nth-child(1) {
    right: 10px;
    top: 20px;
    width: min(178px, 56vw);
    height: 94px;
  }

  .design-focus-visual i:nth-child(1)::before {
    left: 30px;
    top: 40px;
    width: 74px;
    height: 38px;
  }

  .design-focus-visual i:nth-child(1)::after {
    right: 15px;
    bottom: 14px;
    width: 34px;
    height: 34px;
  }

  .design-focus-visual i:nth-child(2) {
    right: 22px;
    bottom: 20px;
    width: min(130px, 42vw);
  }

  .design-focus-visual i:nth-child(3) {
    right: 54px;
    bottom: 45px;
  }

  .design-focus-visual i:nth-child(4) {
    left: 18px;
    top: 18px;
    width: 60px;
    height: 34px;
  }

  .design-focus-visual b:nth-of-type(1) {
    right: 64px;
    top: 55px;
    width: 44px;
    height: 34px;
  }

  .design-focus-visual b:nth-of-type(2) {
    left: 58px;
    bottom: 40px;
    width: 32px;
    height: 22px;
  }

  .design-focus-visual b:nth-of-type(3) {
    right: 18px;
    top: 28px;
  }

  .control-focus-visual {
    min-height: 150px;
  }

  .control-focus-visual::before {
    left: 16px;
    bottom: 23px;
    width: 46px;
    height: 39px;
  }

  .control-focus-visual::after {
    left: 58px;
    bottom: 60px;
    width: 58px;
  }

  .control-focus-visual i:nth-child(1) {
    right: 10px;
    top: 18px;
    width: min(164px, 53vw);
    height: 98px;
  }

  .control-focus-visual i:nth-child(1)::before {
    left: 17px;
    bottom: 12px;
    width: 112px;
  }

  .control-focus-visual i:nth-child(2) {
    left: 78px;
    bottom: 18px;
    width: 74px;
    height: 36px;
  }

  .control-focus-visual i:nth-child(3) {
    right: 18px;
    bottom: 24px;
    width: 58px;
    height: 36px;
  }

  .control-focus-visual i:nth-child(4) {
    left: 18px;
    top: 18px;
    width: 56px;
    height: 32px;
  }

  .control-focus-visual b:nth-of-type(1) {
    left: 55px;
    bottom: 39px;
    width: 31px;
    height: 21px;
  }

  .control-focus-visual b:nth-of-type(2) {
    right: 80px;
    top: 75px;
    width: 66px;
  }

  .control-focus-visual b:nth-of-type(3) {
    right: 52px;
    top: 38px;
    width: 18px;
    height: 18px;
  }

  .assembly-focus-visual {
    min-height: 150px;
  }

  .assembly-focus-visual::before {
    left: 16px;
    bottom: 23px;
    width: 46px;
    height: 39px;
  }

  .assembly-focus-visual::after {
    left: 58px;
    bottom: 60px;
    width: 58px;
  }

  .assembly-focus-visual i:nth-child(1) {
    right: 10px;
    top: 24px;
    width: min(164px, 53vw);
    height: 82px;
  }

  .assembly-focus-visual i:nth-child(1)::before {
    left: 18px;
    bottom: 10px;
    width: 112px;
  }

  .assembly-focus-visual i:nth-child(1)::after {
    right: 14px;
    top: 14px;
    width: 28px;
    height: 28px;
  }

  .assembly-focus-visual i:nth-child(2) {
    right: 78px;
    bottom: 20px;
    width: 70px;
  }

  .assembly-focus-visual i:nth-child(3) {
    right: 20px;
    bottom: 27px;
    width: 40px;
    height: 40px;
  }

  .assembly-focus-visual i:nth-child(4) {
    left: 18px;
    top: 18px;
    width: 58px;
    height: 32px;
  }

  .assembly-focus-visual b:nth-of-type(1) {
    left: 56px;
    bottom: 39px;
    width: 31px;
    height: 22px;
  }

  .assembly-focus-visual b:nth-of-type(2) {
    right: 105px;
    top: 75px;
    width: 44px;
    height: 28px;
  }

  .assembly-focus-visual b:nth-of-type(3) {
    right: 60px;
    top: 40px;
    width: 18px;
    height: 18px;
  }

  .maintenance-focus-visual {
    min-height: 150px;
  }

  .maintenance-focus-visual::before {
    left: 16px;
    bottom: 23px;
    width: 46px;
    height: 39px;
  }

  .maintenance-focus-visual::after {
    left: 58px;
    bottom: 60px;
    width: 62px;
  }

  .maintenance-focus-visual i:nth-child(1) {
    right: 10px;
    top: 22px;
    width: min(162px, 52vw);
    height: 88px;
  }

  .maintenance-focus-visual i:nth-child(1)::before {
    left: 16px;
    bottom: 12px;
    width: 110px;
  }

  .maintenance-focus-visual i:nth-child(2) {
    left: 76px;
    bottom: 20px;
    width: 72px;
    height: 48px;
  }

  .maintenance-focus-visual i:nth-child(3) {
    right: 22px;
    bottom: 28px;
    width: 18px;
    height: 18px;
  }

  .maintenance-focus-visual i:nth-child(4) {
    left: 18px;
    top: 18px;
    width: 60px;
    height: 34px;
  }

  .maintenance-focus-visual b:nth-of-type(1) {
    left: 56px;
    bottom: 40px;
    width: 31px;
    height: 22px;
  }

  .maintenance-focus-visual b:nth-of-type(2) {
    right: 42px;
    top: 68px;
    width: 44px;
  }

  .maintenance-focus-visual b:nth-of-type(3) {
    right: 66px;
    bottom: 22px;
    width: 72px;
  }

  .ojt-focus-visual {
    min-height: 150px;
  }

  .ojt-focus-visual::before {
    left: 16px;
    bottom: 23px;
    width: 46px;
    height: 39px;
  }

  .ojt-focus-visual::after {
    left: 58px;
    bottom: 60px;
    width: 68px;
  }

  .ojt-focus-visual i:nth-child(1) {
    right: 10px;
    top: 22px;
    width: min(162px, 52vw);
    height: 88px;
  }

  .ojt-focus-visual i:nth-child(1)::before {
    left: 16px;
    bottom: 12px;
    width: 112px;
  }

  .ojt-focus-visual i:nth-child(1)::after {
    right: 14px;
    top: 34px;
    width: 30px;
    height: 24px;
  }

  .ojt-focus-visual i:nth-child(2) {
    right: 62px;
    bottom: 20px;
    width: 108px;
  }

  .ojt-focus-visual i:nth-child(3) {
    right: 22px;
    bottom: 28px;
    width: 18px;
    height: 18px;
  }

  .ojt-focus-visual i:nth-child(4) {
    left: 18px;
    top: 18px;
    width: 64px;
    height: 36px;
  }

  .ojt-focus-visual b:nth-of-type(1) {
    left: 56px;
    bottom: 40px;
    width: 34px;
    height: 22px;
  }

  .ojt-focus-visual b:nth-of-type(2) {
    right: 94px;
    top: 72px;
    width: 58px;
    height: 18px;
  }

  .ojt-focus-visual b:nth-of-type(3) {
    right: 18px;
    top: 28px;
    width: 42px;
    height: 22px;
  }

  .timeline li::before {
    display: none;
    content: none;
  }

  .timeline::before {
    display: none;
    content: none;
  }

  .robot-hero {
    min-height: 260px;
  }

  .robot-hero span:nth-child(1) {
    left: 78px;
    top: 42px;
    width: 78px;
    height: 62px;
    border-width: 5px;
  }

  .robot-hero span:nth-child(2) {
    left: 42px;
    top: 82px;
    width: 38px;
    border-width: 3px;
  }

  .robot-hero span:nth-child(3) {
    left: 64px;
    top: 108px;
    bottom: auto;
    width: 96px;
    height: 94px;
    border-width: 5px;
  }

  .robot-hero span:nth-child(4) {
    right: 28px;
    top: 86px;
    bottom: auto;
    width: 100px;
    height: 88px;
  }

  .robot-hero span:nth-child(5) {
    left: 20px;
    top: 28px;
    width: 82px;
    height: 42px;
  }

  .robot-hero span:nth-child(6) {
    left: 188px;
    top: 46px;
    width: 80px;
    height: 48px;
    opacity: 0.78;
  }

  .robot-hero span:nth-child(6)::before,
  .robot-hero span:nth-child(6)::after {
    top: -10px;
    width: 32px;
    height: 17px;
    font-size: 8px;
    line-height: 17px;
  }

  .robot-hero span:nth-child(7) {
    left: 162px;
    bottom: 38px;
    width: 96px;
    height: 6px;
  }

  .robot-hero span:nth-child(8) {
    right: 18px;
    top: 110px;
    opacity: 0.7;
  }

  .recruit-faq-guide {
    min-height: 72px;
  }

  .recruit-cta-guide {
    flex-direction: column;
    align-items: stretch;
  }

  .recruit-cta-robot {
    align-self: center;
    transform: scale(0.9);
  }

  .mobile-fixed-cta {
    position: fixed;
    right: 10px;
    bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    left: 10px;
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 8px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: 0 14px 32px rgba(15, 42, 68, 0.18);
    backdrop-filter: blur(12px);
  }

  .mobile-fixed-cta a {
    display: grid;
    place-items: center;
    min-height: 44px;
    color: #fff;
    background: var(--cta);
    border-radius: 8px;
    font-size: 12px;
    font-weight: 900;
    text-align: center;
  }
}

@media (max-width: 1100px) {
  .skill-badge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .skill-badge-card:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .skill-badge-grid {
    grid-template-columns: 1fr;
  }

  .skill-badge-card,
  .skill-grid .skill-badge-card {
    grid-template-rows: 118px auto;
    min-height: 0;
    padding: 18px;
  }

  .skill-badge-card::before,
  .skill-grid .skill-badge-card::before {
    height: 118px;
  }

  .skill-badge-card:last-child {
    grid-column: auto;
  }

  .skill-badge-visual {
    min-height: 118px;
  }

  .skill-badge-visual span:nth-child(1) {
    width: 64px;
    height: 46px;
  }
}

@media (max-width: 1120px) {
  .hero-concept-placeholder {
    min-height: 340px;
  }

  .hero-field-concept {
    min-height: 340px;
  }

  .machine-concept {
    min-height: 340px;
  }

  .main-visual-concept {
    min-height: 380px;
  }

  .main-visual-equipment {
    width: 68%;
    height: 48%;
  }

  .main-visual-cad,
  .main-visual-control,
  .main-visual-service,
  .main-visual-assembly {
    min-height: 78px;
  }

  .machine-hub {
    width: 38%;
    min-width: 210px;
  }

  .machine-node {
    width: 29%;
    min-width: 118px;
    min-height: 86px;
  }

  .machine-status {
    max-width: 86%;
  }

  .placeholder-diagram {
    right: 6%;
    bottom: 8%;
    width: 46%;
    height: 44%;
    min-width: 220px;
  }

  .field-cad-overlay {
    width: 40%;
  }

  .field-status {
    max-width: 72%;
  }
}

@media (max-width: 640px) {
  .concept-ribbon {
    top: 10px;
    font-size: 10px;
  }

  .panel-status {
    display: none;
  }

  .hero-concept-placeholder {
    min-height: 250px;
    padding: 22px;
  }

  .hero-field-concept {
    min-height: 250px;
  }

  .machine-concept {
    min-height: 300px;
  }

  .main-visual-concept {
    min-height: 330px;
  }

  .main-visual-bg {
    inset: 5%;
    background-size: 25px 25px;
  }

  .main-visual-ribbon {
    top: 9px;
    padding: 5px 9px;
    font-size: 10px;
  }

  .main-visual-equipment {
    top: 52%;
    width: 74%;
    height: 45%;
  }

  .main-visual-cad,
  .main-visual-control,
  .main-visual-service,
  .main-visual-assembly {
    border-radius: 10px;
    min-height: 58px;
  }

  .main-visual-cad {
    left: 7%;
    top: 16%;
    width: 34%;
    height: 19%;
  }

  .main-visual-control {
    right: 7%;
    top: 16%;
    width: 31%;
    height: 19%;
  }

  .main-visual-assembly {
    left: 7%;
    bottom: 18%;
    width: 32%;
    height: 18%;
  }

  .main-visual-service {
    right: 7%;
    bottom: 18%;
    width: 33%;
    height: 18%;
  }

  .mv-label {
    left: 8px;
    top: 7px;
    font-size: 9px;
  }

  .mv-frame {
    left: 8%;
    top: 12%;
    width: 68%;
    height: 50%;
  }

  .mv-control-box {
    width: 28%;
    height: 25%;
  }

  .mv-touch-panel {
    right: 17%;
    bottom: 24%;
    width: 22%;
  }

  .mv-worktable {
    bottom: 24%;
  }

  .mv-conveyor {
    bottom: 16%;
    height: 10%;
  }

  .main-visual-status {
    left: 7%;
    right: 7%;
    bottom: 6%;
    max-width: none;
    padding: 6px 9px;
    font-size: 10px;
    transform: none;
  }

  .main-visual-service i,
  .main-visual-assembly i {
    width: 20px;
    height: 12px;
    border-left-width: 3px;
    border-bottom-width: 3px;
  }

  .mv-wire,
  .mv-signal {
    opacity: 0.72;
  }

  .hero-concept-placeholder h3 {
    font-size: 22px;
  }

  .hero-concept-placeholder p {
    max-width: 100%;
    font-size: 13px;
    line-height: 1.7;
  }

  .placeholder-diagram {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    min-width: 0;
    height: 118px;
    margin-top: 16px;
  }

  .field-depth-grid {
    inset: 6%;
    background-size: 24px 24px;
  }

  .field-label {
    padding: 4px 6px;
    font-size: 10px;
  }

  .field-check-label {
    left: 9%;
    top: 8%;
  }

  .field-drawing-label {
    left: 12%;
    top: 29%;
  }

  .field-control-label {
    right: 9%;
    top: 20%;
  }

  .field-maintenance-label {
    right: 9%;
    bottom: 18%;
  }

  .field-silhouette.frame {
    left: 10%;
    top: 25%;
    width: 50%;
    height: 42%;
  }

  .field-silhouette.cabinet {
    right: 8%;
    top: 30%;
    width: 25%;
    height: 34%;
  }

  .field-cad-overlay {
    left: 10%;
    top: 42%;
    width: 45%;
    height: 30%;
  }

  .field-control-panel {
    right: 8%;
    top: 36%;
    width: 30%;
    height: 29%;
  }

  .field-inspection-card {
    right: 9%;
    bottom: 18%;
    width: 34%;
    height: 20%;
  }

  .field-status {
    left: 8%;
    right: 8%;
    bottom: 7%;
    font-size: 10px;
    text-align: center;
  }

  .field-signal-dot {
    transform: scale(0.8);
  }

  .field-check-mark {
    transform: rotate(-45deg) scale(0.8);
  }

  .machine-grid {
    inset: 6%;
    background-size: 24px 24px;
  }

  .machine-ribbon {
    top: 10px;
    padding: 5px 9px;
    font-size: 10px;
  }

  .machine-hub {
    top: 50%;
    width: 46%;
    min-width: 150px;
    height: 34%;
  }

  .machine-node {
    width: 31%;
    min-width: 0;
    min-height: 62px;
    height: 18%;
    border-radius: 10px;
  }

  .machine-node-label {
    left: 8px;
    top: 7px;
    font-size: 9px;
  }

  .machine-design,
  .machine-assembly {
    left: 6%;
  }

  .machine-control,
  .machine-maintenance {
    right: 6%;
  }

  .machine-design,
  .machine-control {
    top: 18%;
  }

  .machine-assembly,
  .machine-maintenance {
    bottom: 18%;
  }

  .machine-cad-card,
  .machine-plc-card,
  .machine-adjust-card,
  .machine-service-card {
    left: 8px;
    right: 8px;
    bottom: 8px;
    height: 42%;
  }

  .machine-adjust-card i,
  .machine-service-card i {
    width: 20px;
    height: 12px;
    border-left-width: 3px;
    border-bottom-width: 3px;
  }

  .machine-link {
    opacity: 0.72;
  }

  .machine-status {
    left: 7%;
    right: 7%;
    bottom: 7%;
    max-width: none;
    padding: 6px 9px;
    font-size: 10px;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .illust-grid,
  .illust-conveyor,
  .illust-arm,
  .illust-panel,
  .illust-cad,
  .illust-tool,
  .illust-model,
  .illust-calendar,
  .illust-flow::before,
  .illust-status,
  .illust-dot,
  .hero-tech-map::before,
  .tech-node,
  .panel-node::after,
  .placeholder-diagram i,
  .field-cad-overlay i,
  .field-control-panel i,
  .field-wire,
  .field-signal-dot,
  .field-inspection-card i,
  .field-check-mark,
  .machine-hub,
  .machine-conveyor,
  .machine-control-unit i,
  .machine-carriage,
  .machine-lamp,
  .machine-cad-card i,
  .machine-adjust-card i,
  .machine-adjust-card b,
  .machine-service-card i,
  .machine-link,
  .machine-signal,
  .main-visual-equipment,
  .mv-conveyor,
  .mv-control-box i,
  .mv-touch-panel i,
  .mv-touch-panel b,
  .mv-carriage,
  .mv-lamp,
  .main-visual-cad i,
  .main-visual-service i,
  .main-visual-assembly i,
  .main-visual-assembly b,
  .mv-wire,
  .mv-signal,
  .cad-sheet i,
  .panel-screen b,
  .wire-path,
  .field-check,
  .service-line i,
  .service-line b,
  .tech-flow-line,
  .tech-signal,
  .job-card-visual,
  .job-card-visual::before,
  .job-card-visual::after,
  .job-card-visual i,
  .job-card-visual i::before,
  .job-card-visual i::after,
  .job-card-visual b,
  .job-card-visual b::before,
  .job-card-visual b::after,
  .quick-table article::before,
  .quick-table article::after,
  .reason-grid article::before,
  .reason-grid article::after,
  .category-grid article::before,
  .category-grid article::after,
  .work-field-grid article::before,
  .work-field-grid article::after,
  .recruit-detail-grid article::before,
  .recruit-detail-grid article::after,
  .recruit-paths article::before,
  .recruit-paths article::after,
  .stack-list div::after,
  .skill-grid article::before,
  .skill-grid article::after,
  .skill-badge-visual,
  .skill-badge-visual::before,
  .skill-badge-visual::after,
  .skill-badge-visual span,
  .day-flow-panel::before,
  .day-flow-panel::after,
  .timeline-guide-robot,
  .timeline-guide-robot::before,
  .timeline-guide-robot::after,
  .timeline-guide-robot span,
  .timeline-guide-robot span::before,
  .timeline-guide-robot span::after,
  .fit-panel::before,
  .fit-guide-robot,
  .fit-guide-robot::before,
  .fit-guide-robot::after,
  .fit-guide-robot span,
  .fit-guide-robot span::before,
  .fit-guide-robot span::after,
  .fit-card::before,
  .fit-card::after,
  .timeline::before,
  .recruit-scene,
  .recruit-scene::before,
  .recruit-scene::after,
  .recruit-scene span,
  .recruit-scene span::before,
  .recruit-scene span::after,
  .growth-steps::before,
  .growth-steps div::before,
  .growth-steps div::after,
  .beginner-assurance div::after,
  .expert-domain-grid div::after,
  .expert-expansion-map,
  .expert-expansion-map::before,
  .expert-expansion-map::after,
  .expert-appeal-list div::after,
  .recruit-faq-guide,
  .recruit-faq-guide::before,
  .recruit-faq-guide::after,
  .recruit-faq-guide span,
  .recruit-cta-guide .button::after,
  .recruit-cta-robot,
  .recruit-cta-robot::before,
  .recruit-cta-robot::after,
  .recruit-cta-robot span,
  .timeline li::before,
  .timeline li::after,
  .check-grid span::before,
  .check-grid span::after,
  .process-steps li::before,
  .process-steps li::after,
  .mini-visual,
  .mini-visual::before,
  .mini-visual::after,
  .mini-visual span,
  .case-figure,
  .case-grid article::after,
  .case-detail-card::after,
  .case-example-card::after,
  .case-example-visual,
  .case-example-visual::before,
  .case-example-visual::after,
  .case-example-visual span,
  .people-illustration,
  .people-illustration::before,
  .people-illustration::after,
  .people-illustration span,
  .people-illustration span::before,
  .people-illustration span::after,
  .faq-list details[open] summary::before,
  .faq-list summary::after {
    animation: none !important;
  }

  .faq-list summary::after {
    transition: none !important;
  }
}

@media (max-width: 1120px) {
  .hero-unified .hero-inner {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "copy"
      "visual"
      "support";
    gap: 26px;
  }

  .hero-unified .hero-inner::after {
    top: auto;
    right: -8%;
    bottom: 5%;
    width: 74%;
    height: 46%;
  }

  .hero-unified .hero-copy::before {
    inset: -22px -24px -20px -18px;
    background: rgba(255, 255, 255, 0.94);
  }

  .hero-unified .hero-copy::after {
    display: none;
  }

  .hero-unified .hero-visual-card {
    margin-left: 0;
  }

  .hero-unified .main-visual-concept {
    min-height: 440px;
  }
}

@media (max-width: 640px) {
  .hero-unified {
    padding-block: 16px 24px;
  }

  .hero-unified .hero-inner {
    padding: 24px 18px 28px;
    gap: 18px;
    border-radius: 14px;
  }

  .hero-unified .hero-title span {
    display: inline;
  }

  .hero-unified .hero-title span::after {
    content: "";
  }

  .hero-unified .lead {
    font-size: 15px;
  }

  .hero-unified .design-note {
    margin-bottom: 16px;
  }

  .hero-scope-line {
    grid-template-columns: 1fr;
    margin: 18px 0;
  }

  .hero-scope-line a {
    min-height: auto;
    padding: 11px 12px 12px;
  }

  .hero-scope-line a + a {
    border-top: 1px solid rgba(37, 99, 168, 0.13);
    border-left: 0;
  }

  .hero-scope-line a::after {
    left: 12px;
    right: 12px;
    bottom: 7px;
  }

  .hero-unified .main-visual-concept {
    min-height: 350px;
    border-radius: 20px;
  }

  .hero-unified .main-visual-equipment {
    top: 52%;
    width: 78%;
    height: 46%;
  }

  .hero-unified .hero-visual-caption {
    left: 12px;
    right: 12px;
    bottom: 12px;
    padding: 8px 10px;
    border-radius: 12px;
  }

  .hero-unified .hero-visual-caption .visual-note {
    font-size: 11px;
    line-height: 1.45;
  }
}

/* Client proposal hero switch: scoped to the local top preview only. */
.top-hero-switch {
  position: relative;
  min-height: calc(100vh - 75px);
  overflow: hidden;
  isolation: isolate;
  background-image:
    linear-gradient(90deg, rgba(244, 249, 252, 0.98) 0%, rgba(244, 249, 252, 0.92) 36%, rgba(244, 249, 252, 0.34) 67%, rgba(244, 249, 252, 0.08) 100%),
    radial-gradient(circle at 18% 30%, rgba(44, 135, 199, 0.18), transparent 34%),
    url("../images/hero/hero-blueprint-pc.webp");
  background-position: center right;
  background-size: cover;
  background-repeat: no-repeat;
}

.top-hero-switch::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  content: "";
  background-image:
    linear-gradient(rgba(15, 47, 77, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 47, 77, 0.16) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.28), transparent 58%);
}

.cutaway-preview .top-hero-switch,
.machine-dark-preview .top-hero-switch {
  color: #fff;
  background-image:
    linear-gradient(90deg, rgba(7, 24, 42, 0.92) 0%, rgba(10, 38, 64, 0.82) 42%, rgba(10, 38, 64, 0.32) 68%, rgba(10, 38, 64, 0.08) 100%),
    radial-gradient(circle at 22% 32%, rgba(57, 147, 214, 0.26), transparent 34%),
    url("../images/hero/hero-cutaway-pc.webp");
}

.machine-light-preview .top-hero-switch {
  background-image:
    linear-gradient(90deg, rgba(244, 249, 252, 0.98) 0%, rgba(244, 249, 252, 0.92) 36%, rgba(244, 249, 252, 0.34) 67%, rgba(244, 249, 252, 0.08) 100%),
    radial-gradient(circle at 18% 30%, rgba(44, 135, 199, 0.18), transparent 34%),
    url("../images/hero/hero-blueprint-machine-pc.webp");
}

.machine-dark-preview .top-hero-switch {
  background-image:
    linear-gradient(90deg, rgba(7, 24, 42, 0.92) 0%, rgba(10, 38, 64, 0.82) 42%, rgba(10, 38, 64, 0.32) 68%, rgba(10, 38, 64, 0.08) 100%),
    radial-gradient(circle at 22% 32%, rgba(57, 147, 214, 0.26), transparent 34%),
    url("../images/hero/hero-cutaway-machine-pc.webp");
}

.top-hero-switch .hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "copy"
    "support";
  align-content: center;
  gap: 24px;
  min-height: calc(100vh - 75px);
  padding: clamp(120px, 14vh, 152px) 0 clamp(78px, 10vh, 112px);
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.top-hero-switch .hero-inner::before,
.top-hero-switch .hero-inner::after,
.top-hero-switch .hero-copy::before,
.top-hero-switch .hero-copy::after {
  display: none;
}

.top-hero-switch .hero-copy,
.top-hero-switch .hero-support {
  max-width: min(52vw, 640px);
}

.top-hero-switch .hero-copy {
  grid-area: copy;
  align-self: end;
}

.top-hero-switch .hero-support {
  grid-area: support;
}

.top-hero-switch .hero-visual-card,
.top-hero-switch .design-note,
.top-hero-switch .hero-scope-line {
  display: none;
}

.top-hero-switch .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.top-hero-switch .eyebrow::before {
  width: 34px;
  height: 2px;
  flex: 0 0 auto;
  content: "";
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  border-radius: 999px;
}

.top-hero-switch .hero-title {
  max-width: 720px;
  color: var(--navy);
  font-size: clamp(42px, 5vw, 66px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: 0;
  word-break: keep-all;
  overflow-wrap: normal;
}

.top-hero-switch .hero-title-line {
  display: block;
  white-space: nowrap;
}

.top-hero-switch .lead {
  max-width: 560px;
  margin-top: 0;
  color: #213e59;
  font-size: clamp(17px, 1.55vw, 20px);
  font-weight: 800;
  line-height: 1.95;
}

.top-hero-switch .hero-actions {
  margin-top: 34px;
}

.top-hero-switch .button {
  min-height: 52px;
  padding: 13px 24px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(12, 45, 74, 0.12);
}

.top-hero-switch .button.primary {
  color: #09213d;
  background: linear-gradient(135deg, #ffd66e, #f4b844);
  border-color: transparent;
  box-shadow: 0 18px 36px rgba(180, 116, 11, 0.22);
}

.top-hero-switch .button.secondary {
  color: var(--navy);
  background: rgba(255, 255, 255, 0.74);
  border-color: rgba(24, 83, 134, 0.22);
  box-shadow: 0 14px 30px rgba(16, 58, 97, 0.1);
}

.top-hero-switch .cta-text-mobile {
  display: none;
}

.cutaway-preview .top-hero-switch .eyebrow,
.cutaway-preview .top-hero-switch .hero-title,
.cutaway-preview .top-hero-switch .lead,
.machine-dark-preview .top-hero-switch .eyebrow,
.machine-dark-preview .top-hero-switch .hero-title,
.machine-dark-preview .top-hero-switch .lead {
  color: #fff;
}

.cutaway-preview .top-hero-switch .lead,
.machine-dark-preview .top-hero-switch .lead {
  color: rgba(255, 255, 255, 0.86);
}

.cutaway-preview .top-hero-switch .button.primary,
.machine-dark-preview .top-hero-switch .button.primary {
  border-color: transparent;
  background: #fff;
  color: #123653;
}

.cutaway-preview .top-hero-switch .button.secondary,
.machine-dark-preview .top-hero-switch .button.secondary {
  border-color: rgba(255, 255, 255, 0.38);
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  backdrop-filter: blur(10px);
}

.top-hero-switcher {
  position: absolute;
  top: 22px;
  left: 50%;
  z-index: 3;
  display: inline-flex;
  gap: 6px;
  padding: 6px;
  border: 1px solid rgba(15, 47, 77, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 30px rgba(12, 45, 74, 0.1);
  transform: translateX(-50%);
  backdrop-filter: blur(14px);
}

.top-hero-switcher button {
  min-height: 38px;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #31546e;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.top-hero-switcher button[aria-pressed="true"] {
  background: #123653;
  color: #fff;
  box-shadow: 0 10px 22px rgba(18, 54, 83, 0.18);
}

.cutaway-preview .top-hero-switcher,
.machine-dark-preview .top-hero-switcher {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(8, 29, 49, 0.5);
}

.cutaway-preview .top-hero-switcher button,
.machine-dark-preview .top-hero-switcher button {
  color: rgba(255, 255, 255, 0.84);
}

.cutaway-preview .top-hero-switcher button[aria-pressed="true"],
.machine-dark-preview .top-hero-switcher button[aria-pressed="true"] {
  background: #fff;
  color: #123653;
}

@media (max-width: 760px) {
  .top-hero-switch {
    min-height: calc(100vh - 70px);
    background-image:
      linear-gradient(180deg, rgba(244, 249, 252, 0.98) 0%, rgba(244, 249, 252, 0.92) 39%, rgba(244, 249, 252, 0.38) 62%, rgba(244, 249, 252, 0.1) 100%),
      url("../images/hero/hero-blueprint-sp.webp");
    background-position: center bottom;
  }

  .cutaway-preview .top-hero-switch {
    background-image:
      linear-gradient(180deg, rgba(7, 24, 42, 0.94) 0%, rgba(10, 38, 64, 0.84) 44%, rgba(10, 38, 64, 0.3) 66%, rgba(10, 38, 64, 0.08) 100%),
      url("../images/hero/hero-cutaway-sp.webp");
  }

  .machine-light-preview .top-hero-switch {
    background-image:
      linear-gradient(180deg, rgba(244, 249, 252, 0.98) 0%, rgba(244, 249, 252, 0.92) 39%, rgba(244, 249, 252, 0.38) 62%, rgba(244, 249, 252, 0.1) 100%),
      url("../images/hero/hero-blueprint-machine-sp.webp");
  }

  .top-hero-switch::before {
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.22), transparent 52%);
  }

  .top-hero-switch .hero-inner {
    min-height: calc(100vh - 70px);
    width: min(100% - 28px, 560px);
    padding: 132px 0 56vh;
  }

  .top-hero-switch .hero-title {
    max-width: none;
    font-size: clamp(27px, 7.8vw, 37px);
    line-height: 1.22;
  }

  .top-hero-switch .hero-title-line {
    white-space: normal;
  }

  .top-hero-switch .lead {
    font-size: 15px;
    line-height: 1.75;
  }

  .top-hero-switch .hero-actions {
    display: grid;
    gap: 10px;
    margin-top: 24px;
  }

  .top-hero-switch .button {
    width: 100%;
    white-space: nowrap;
  }

  .top-hero-switch .cta-text-full {
    display: none;
  }

  .top-hero-switch .cta-text-mobile {
    display: inline;
  }

  .top-hero-switcher {
    top: 18px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: min(100% - 28px, 560px);
    border-radius: 18px;
  }

  .top-hero-switcher button {
    min-height: 44px;
    padding: 0 10px;
    font-size: 12px;
    white-space: normal;
  }
}

.case-example-cards {
  position: relative;
  overflow: hidden;
  padding: clamp(78px, 8vw, 118px) 0 clamp(72px, 7vw, 104px);
  background:
    radial-gradient(circle at 12% 6%, rgba(63, 160, 222, 0.13), transparent 28%),
    linear-gradient(180deg, #f7fbff 0%, #edf6ff 100%);
}

.case-example-cards::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(43, 104, 161, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(43, 104, 161, 0.07) 1px, transparent 1px);
  background-size: 44px 44px;
  content: "";
}

.case-example-cards::after {
  position: absolute;
  right: -160px;
  bottom: 11%;
  z-index: 0;
  width: min(540px, 52vw);
  height: min(540px, 52vw);
  border: 1px solid rgba(22, 104, 180, 0.12);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(80, 179, 229, 0.15), transparent 66%);
  content: "";
}

.case-example-cards__inner {
  position: relative;
  z-index: 1;
}

.case-example-cards__header {
  max-width: 840px;
  margin: 0 auto clamp(40px, 5vw, 62px);
  text-align: center;
}

.case-example-cards__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 18px;
  color: #1269b0;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.case-example-cards__eyebrow::before,
.case-example-cards__eyebrow::after {
  width: 34px;
  height: 1px;
  background: linear-gradient(90deg, transparent, currentColor);
  content: "";
}

.case-example-cards__eyebrow::after {
  background: linear-gradient(90deg, currentColor, transparent);
}

.case-example-cards__header h2 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(38px, 4.5vw, 58px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.2;
}

.case-example-cards__header h2::after {
  display: block;
  width: 88px;
  height: 5px;
  margin: 26px auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, #d5a23a, #ae7414);
  content: "";
}

.case-example-cards__lead {
  margin: 28px auto 0;
  color: #294158;
  font-size: clamp(16px, 1.6vw, 19px);
  font-weight: 700;
  line-height: 1.9;
}

.case-example-cards__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}

.case-example-card-v2 {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(34, 91, 146, 0.16);
  border-radius: 20px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(245, 250, 255, 0.88)),
    radial-gradient(circle at 100% 0%, rgba(67, 172, 226, 0.12), transparent 42%);
  box-shadow: 0 22px 62px rgba(12, 48, 86, 0.12);
}

.case-example-card-v2::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 66px;
  height: 66px;
  border-radius: 0 0 28px;
  background: linear-gradient(135deg, #063663, #0f66ad);
  content: "";
}

.case-example-card-v2::after {
  position: absolute;
  top: 20px;
  right: 22px;
  z-index: 0;
  width: 76px;
  height: 10px;
  border-top: 2px solid rgba(43, 168, 218, 0.28);
  border-bottom: 2px solid rgba(43, 168, 218, 0.14);
  content: "";
}

.case-example-card-v2__top {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 76px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px 0;
}

.case-example-card-v2__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
}

.case-example-card-v2__tags {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
  max-width: calc(100% - 58px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.case-example-card-v2__tags li {
  min-width: 0;
  border: 1px solid rgba(12, 65, 118, 0.28);
  border-radius: 999px;
  padding: 5px 10px;
  color: #153b5d;
  background: rgba(242, 248, 255, 0.9);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.case-example-card-v2__figure {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 178px;
  margin: 0 24px;
  padding: 6px 10px 12px;
}

.case-example-card-v2__figure::before {
  position: absolute;
  inset: 16px 0 0;
  border-radius: 18px;
  background:
    linear-gradient(rgba(32, 105, 170, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(32, 105, 170, 0.05) 1px, transparent 1px);
  background-size: 22px 22px;
  content: "";
}

.case-example-card-v2__figure img {
  position: relative;
  z-index: 1;
  display: block;
  width: min(100%, 250px);
  max-height: 170px;
  object-fit: contain;
  filter: saturate(0.85) contrast(1.05);
}

.case-example-card-v2__figure picture {
  display: contents;
}

.case-example-card-v2 h3 {
  margin: 0;
  padding: 0 28px;
  color: var(--navy);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-align: center;
  word-break: keep-all;
}

.case-example-card-v2__details {
  display: grid;
  gap: 0;
  margin: 26px 28px 0;
}

.case-example-card-v2__details div {
  display: grid;
  grid-template-columns: 106px minmax(0, 1fr);
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid rgba(30, 88, 143, 0.12);
}

.case-example-card-v2__details dt {
  align-self: start;
  border-radius: 5px;
  padding: 8px 9px;
  color: #123455;
  background: #eef5fb;
  box-shadow: inset 0 0 0 1px rgba(26, 80, 138, 0.08);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.25;
  text-align: center;
}

.case-example-card-v2__details dd {
  min-width: 0;
  margin: 0;
  color: #263f58;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.85;
  overflow-wrap: anywhere;
}

.case-example-card-v2__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin: auto 28px 28px;
  padding-top: 20px;
  color: #0b5f9d;
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
}

.case-example-card-v2__link::after {
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: "";
  transform: rotate(45deg);
}

.case-example-cards__note {
  margin: clamp(34px, 4vw, 48px) 0 0;
  color: var(--muted);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}

@media (max-width: 760px) {
  .case-example-cards {
    padding: 50px 0;
  }

  .case-example-cards__inner {
    width: min(100% - 24px, 360px);
  }

  .case-example-cards__header {
    margin-bottom: 26px;
  }

  .case-example-cards__eyebrow {
    margin-bottom: 14px;
    font-size: 12px;
  }

  .case-example-cards__eyebrow::before,
  .case-example-cards__eyebrow::after {
    width: 24px;
  }

  .case-example-cards__header h2 {
    font-size: 32px;
  }

  .case-example-cards__header h2::after {
    width: 64px;
    height: 4px;
    margin-top: 20px;
  }

  .case-example-cards__lead {
    margin-top: 18px;
    font-size: 15px;
    line-height: 1.75;
  }

  .case-example-cards__grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .case-example-card-v2 {
    width: 100%;
    border-radius: 18px;
  }

  .case-example-card-v2__top {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    min-height: 62px;
    padding: 14px 16px 0;
  }

  .case-example-card-v2__tags {
    gap: 5px;
    max-width: none;
  }

  .case-example-card-v2__tags li {
    padding: 4px 7px;
    font-size: 11px;
  }

  .case-example-card-v2__figure {
    min-height: 118px;
    margin: 0 16px;
    padding: 2px 8px 8px;
  }

  .case-example-card-v2__figure::before {
    inset: 10px 0 0;
  }

  .case-example-card-v2__figure img {
    width: min(100%, 184px);
    max-height: 108px;
  }

  .case-example-card-v2 h3 {
    max-width: 100%;
    padding: 0 18px;
    font-size: 20px;
    line-height: 1.35;
    line-break: anywhere;
    overflow-wrap: anywhere;
    word-break: break-all;
  }

  .case-example-card-v2__details {
    min-width: 0;
    margin: 16px 18px 0;
  }

  .case-example-card-v2__details div {
    min-width: 0;
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 9px 0;
  }

  .case-example-card-v2__details dt {
    width: fit-content;
    min-width: 76px;
    padding: 6px;
    font-size: 11px;
  }

  .case-example-card-v2__details dd {
    max-width: 100%;
    font-size: 13px;
    line-height: 1.65;
    line-break: anywhere;
    overflow-wrap: anywhere;
    word-break: break-all;
  }

  .case-example-card-v2__link {
    margin: auto 18px 18px;
    padding-top: 12px;
    font-size: 13px;
  }

  .case-example-cards__note {
    margin-top: 24px;
    font-size: 13px;
    text-align: left;
  }
}

@media (max-width: 420px) {
  .case-example-cards,
  .case-example-cards__inner,
  .case-example-cards__grid,
  .case-example-card-v2,
  .case-example-card-v2 * {
    max-width: 100%;
  }

  .case-example-cards__header {
    padding: 0 4px;
  }

  .case-example-cards__header h2 {
    font-size: 30px;
  }

  .case-example-cards__lead {
    font-size: 14px;
  }

  .case-example-card-v2::after {
    width: 48px;
  }

  .case-example-card-v2__top {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    overflow: hidden;
  }

  .case-example-card-v2__number {
    width: 34px;
    height: 34px;
    font-size: 20px;
  }

  .case-example-card-v2__tags li {
    padding: 5px 7px;
    font-size: 10px;
  }

  .case-example-card-v2__figure {
    margin-right: 14px;
    margin-left: 14px;
  }
}
/* Case page process flow section */
.case-process-flow-section {
  position: relative;
  overflow: hidden;
  padding: clamp(78px, 8vw, 112px) 0 clamp(72px, 7vw, 100px);
  background:
    linear-gradient(90deg, rgba(12, 100, 168, 0.05) 1px, transparent 1px),
    linear-gradient(180deg, rgba(12, 100, 168, 0.05) 1px, transparent 1px),
    radial-gradient(circle at 14% 16%, rgba(218, 238, 255, 0.82), transparent 34%),
    radial-gradient(circle at 88% 84%, rgba(205, 229, 247, 0.78), transparent 38%),
    linear-gradient(135deg, #fafdff 0%, #edf6fe 56%, #e5f1fb 100%);
  background-size: 44px 44px, 44px 44px, auto, auto, auto;
}

.case-process-flow-section::before,
.case-process-flow-section::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.case-process-flow-section::before {
  inset: 54px auto auto 7%;
  width: 42%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(12, 100, 168, 0.34), transparent);
}

.case-process-flow-section::after {
  right: -110px;
  bottom: 72px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(12, 100, 168, 0.12);
  border-radius: 50%;
}

.case-process-flow-section__inner {
  position: relative;
  z-index: 1;
}

.case-process-flow-section__heading {
  max-width: 760px;
  margin: 0 auto 54px;
  text-align: center;
}

.case-process-flow-section__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  color: #0c64a8;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.case-process-flow-section__eyebrow::before,
.case-process-flow-section__eyebrow::after {
  display: block;
  width: 42px;
  height: 1px;
  content: "";
  background: rgba(12, 100, 168, 0.38);
}

.case-process-flow-section__heading h2 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 900;
  line-height: 1.34;
  letter-spacing: 0;
}

.case-process-flow-section__heading h2 span {
  display: inline;
}

.case-process-flow-section__heading h2::after {
  display: block;
  width: 66px;
  height: 4px;
  margin: 22px auto 0;
  content: "";
  border-radius: 999px;
  background: #c89b38;
}

.case-process-flow-section__lead {
  margin: 28px auto 0;
  color: #5a728b;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.95;
}

.case-process-flow-section__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px 22px;
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}

.case-process-flow-section__steps::before {
  position: absolute;
  top: 48px;
  right: 8%;
  left: 8%;
  height: 2px;
  content: "";
  background: repeating-linear-gradient(
    90deg,
    rgba(12, 100, 168, 0.26) 0 14px,
    transparent 14px 22px
  );
}

.case-process-flow-section__step {
  position: relative;
  min-height: 224px;
  padding: 24px 24px 26px;
  border: 1px solid rgba(12, 100, 168, 0.16);
  border-radius: 20px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(246, 251, 255, 0.88)),
    rgba(255, 255, 255, 0.82);
  box-shadow: 0 22px 56px rgba(16, 54, 92, 0.1);
}

.case-process-flow-section__step::before {
  position: absolute;
  inset: 0;
  content: "";
  border-radius: inherit;
  background:
    linear-gradient(90deg, rgba(12, 100, 168, 0.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(12, 100, 168, 0.035) 1px, transparent 1px);
  background-size: 24px 24px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.66), transparent 76%);
}

.case-process-flow-section__number {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 42px;
  margin: 0 0 20px;
  border-radius: 16px 16px 16px 4px;
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  background: linear-gradient(135deg, #0c64a8, #084c83);
}

.case-process-flow-section__icon {
  position: absolute;
  z-index: 1;
  top: 28px;
  right: 24px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(12, 100, 168, 0.22);
  border-radius: 14px;
  background: rgba(240, 248, 255, 0.9);
}

.case-process-flow-section__icon::before,
.case-process-flow-section__icon::after {
  position: absolute;
  content: "";
  border-radius: 999px;
}

.case-process-flow-section__icon::before {
  inset: 12px 10px;
  border: 2px solid rgba(12, 100, 168, 0.5);
}

.case-process-flow-section__icon::after {
  right: 9px;
  bottom: 8px;
  width: 10px;
  height: 2px;
  transform: rotate(38deg);
  background: rgba(200, 155, 56, 0.9);
}

.case-process-flow-section__content {
  position: relative;
  z-index: 1;
}

.case-process-flow-section__content h3 {
  margin: 0 0 14px;
  color: var(--navy);
  font-size: 22px;
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: 0;
}

.case-process-flow-section__content p {
  margin: 0;
  color: #5a728b;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.86;
}

@media (max-width: 900px) {
  .case-process-flow-section {
    padding: 76px 0;
  }

  .case-process-flow-section__heading {
    margin-bottom: 42px;
    text-align: left;
  }

  .case-process-flow-section__eyebrow::before {
    width: 30px;
  }

  .case-process-flow-section__eyebrow::after {
    display: none;
  }

  .case-process-flow-section__heading h2::after {
    margin-left: 0;
  }

  .case-process-flow-section__lead {
    font-size: 15px;
    line-height: 1.85;
  }

  .case-process-flow-section__steps {
    display: block;
    padding-left: 20px;
  }

  .case-process-flow-section__steps::before {
    top: 6px;
    bottom: 6px;
    left: 0;
    width: 2px;
    height: auto;
    background: repeating-linear-gradient(
      180deg,
      rgba(12, 100, 168, 0.28) 0 13px,
      transparent 13px 21px
    );
  }

  .case-process-flow-section__step {
    min-height: 0;
    margin: 0 0 16px;
    padding: 20px 18px;
    border-radius: 18px;
  }

  .case-process-flow-section__step:last-child {
    margin-bottom: 0;
  }

  .case-process-flow-section__number {
    width: 52px;
    height: 38px;
    margin-bottom: 15px;
    font-size: 16px;
  }

  .case-process-flow-section__icon {
    top: 20px;
    right: 18px;
    width: 38px;
    height: 38px;
  }

  .case-process-flow-section__content h3 {
    margin-bottom: 10px;
    padding-right: 44px;
    font-size: 19px;
  }

  .case-process-flow-section__content p {
    font-size: 14px;
    line-height: 1.78;
  }
}

@media (max-width: 600px) {
  .case-process-flow-section {
    padding: 58px 0 62px;
  }

  .case-process-flow-section__inner {
    width: min(100% - 28px, 362px);
  }

  .case-process-flow-section__heading h2 {
    font-size: 27px;
    line-height: 1.38;
  }

  .case-process-flow-section__heading h2 span {
    display: block;
  }

  .case-process-flow-section__lead,
  .case-process-flow-section__content h3,
  .case-process-flow-section__content p {
    word-break: break-all;
    line-break: anywhere;
  }

  .case-process-flow-section__steps,
  .case-process-flow-section__step {
    width: 100%;
  }
}

/* Case page FAQ and final CTA */
.case-faq-cta-section {
  position: relative;
  overflow: hidden;
  padding: clamp(58px, 7vw, 88px) 0 clamp(62px, 7vw, 92px);
  background:
    linear-gradient(90deg, rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(37, 99, 168, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, #fff 0%, #f4f9fd 100%);
  background-size: 38px 38px, 38px 38px, auto;
}

.case-faq-cta-section::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background:
    radial-gradient(circle at 86% 16%, rgba(14, 165, 233, 0.12), transparent 28%),
    linear-gradient(135deg, transparent 0 58%, rgba(37, 99, 168, 0.07) 58.2%, transparent 58.6% 100%);
}

.case-faq-cta-section__inner {
  position: relative;
  z-index: 1;
}

.case-faq-cta-section__heading {
  max-width: 860px;
  margin-bottom: 24px;
}

.case-faq-cta-section__eyebrow {
  margin: 0 0 10px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.case-faq-cta-section__heading h2 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: 0;
}

.case-faq-cta-section__heading p:not(.case-faq-cta-section__eyebrow) {
  max-width: 720px;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}

.case-faq-cta-section__guidance {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 8px 0 14px;
}

.case-faq-cta-section__guidance span {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 6px 12px;
  color: #1f4463;
  background: rgba(37, 99, 168, 0.1);
  border: 1px solid rgba(37, 99, 168, 0.24);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.case-faq-cta-section__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.case-faq-cta-section__item {
  overflow: hidden;
  background: linear-gradient(180deg, #fff 0%, #f9fcff 100%);
  border: 1px solid rgba(37, 99, 168, 0.15);
  border-radius: 8px;
  box-shadow: 0 16px 38px rgba(15, 42, 68, 0.06);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.case-faq-cta-section__item:hover {
  border-color: rgba(37, 99, 168, 0.26);
  box-shadow: 0 20px 46px rgba(15, 42, 68, 0.09);
  transform: translateY(-2px);
}

.case-faq-cta-section__item summary {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  min-height: 86px;
  padding: 20px 58px 18px 20px;
  color: var(--navy);
  cursor: pointer;
  list-style: none;
}

.case-faq-cta-section__item summary::-webkit-details-marker {
  display: none;
}

.case-faq-cta-section__item summary::after {
  position: absolute;
  top: 50%;
  right: 18px;
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  padding: 0 0 1px;
  color: var(--blue);
  background: #eef6fd;
  border: 1px solid rgba(37, 99, 168, 0.18);
  border-radius: 50%;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  content: "+";
  transform: translateY(-50%);
}

.case-faq-cta-section__item[open] summary::after {
  padding-bottom: 2px;
  color: #fff;
  background: #2563a8;
  content: "-";
}

.case-faq-cta-section__q {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: #fff;
  background: var(--blue);
  border-radius: 8px;
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(37, 99, 168, 0.16);
}

.case-faq-cta-section__item h3 {
  min-width: 0;
  margin: 0;
  color: var(--navy);
  font-size: clamp(17px, 1.45vw, 20px);
  font-weight: 900;
  line-height: 1.45;
}

.case-faq-cta-section__item p {
  margin: 0;
  padding: 0 58px 20px 68px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
}

.case-faq-cta-section__contact-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 20px;
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(37, 99, 168, 0.14);
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(15, 42, 68, 0.05);
}

.case-faq-cta-section__contact-strip p {
  margin: 0;
  color: var(--navy);
  font-weight: 800;
  line-height: 1.6;
}

.case-faq-cta-section__contact-strip a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  color: var(--navy);
  background: #fff;
  border: 1px solid rgba(37, 99, 168, 0.2);
  border-radius: 8px;
  font-weight: 900;
  white-space: nowrap;
}

.case-final-cta {
  padding: clamp(56px, 8vw, 94px) 0;
  background: linear-gradient(180deg, #f4f9fd 0%, #eaf4fb 100%);
}

.case-final-cta__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(26px, 4vw, 54px);
  align-items: center;
  overflow: hidden;
  padding: clamp(36px, 5.4vw, 66px);
  color: #fff;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    radial-gradient(circle at 82% 30%, rgba(14, 165, 233, 0.28), transparent 32%),
    linear-gradient(135deg, #061527 0%, #0b2038 48%, #123f6a 100%);
  background-size: 34px 34px, 34px 34px, auto, auto;
  border: 1px solid rgba(203, 223, 241, 0.18);
  border-radius: 24px;
  box-shadow: 0 28px 80px rgba(6, 21, 39, 0.26);
}

.case-final-cta__inner::before {
  position: absolute;
  inset: 18px;
  pointer-events: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  content: "";
}

.case-final-cta__inner::after {
  position: absolute;
  top: -28%;
  right: -9%;
  width: 34%;
  height: 70%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(56, 189, 248, 0.22), transparent 68%);
  content: "";
}

.case-final-cta__copy,
.case-final-cta__actions {
  position: relative;
  z-index: 1;
}

.case-final-cta__eyebrow {
  width: fit-content;
  margin: 0 0 14px;
  padding: 6px 12px;
  color: #bdeaff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(203, 223, 241, 0.2);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.case-final-cta h2 {
  max-width: 760px;
  margin: 0 0 18px;
  color: #fff;
  font-size: clamp(30px, 3.8vw, 46px);
  font-weight: 850;
  line-height: 1.28;
  letter-spacing: 0;
}

.case-final-cta__copy > p:not(.case-final-cta__eyebrow) {
  max-width: 720px;
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font-size: clamp(15px, 1.6vw, 17px);
  font-weight: 500;
  line-height: 1.9;
}

.case-final-cta__actions {
  display: grid;
  gap: 12px;
  justify-items: end;
}

.case-final-cta__button {
  display: inline-flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  padding: 15px 24px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 10px;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  white-space: nowrap;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.case-final-cta__button:hover,
.case-final-cta__button:focus-visible {
  transform: translateY(-2px);
}

.case-final-cta__button--primary {
  color: #0b2038;
  background: #fff;
  border-color: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.2);
}

.case-final-cta__button--primary::after {
  margin-left: 10px;
  color: var(--blue);
  content: "->";
}

.case-final-cta__button--secondary {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

@media (max-width: 820px) {
  .case-faq-cta-section {
    padding: 48px 0 54px;
  }

  .case-faq-cta-section__heading {
    margin-bottom: 20px;
  }

  .case-faq-cta-section__heading h2 {
    font-size: clamp(27px, 8vw, 34px);
  }

  .case-faq-cta-section__heading p:not(.case-faq-cta-section__eyebrow) {
    font-size: 14px;
    line-height: 1.75;
  }

  .case-faq-cta-section__list {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .case-faq-cta-section__item summary {
    min-height: 0;
    padding: 16px 50px 16px 18px;
  }

  .case-faq-cta-section__item p {
    padding: 16px 18px 18px;
    line-height: 1.75;
  }

  .case-faq-cta-section__contact-strip {
    display: block;
  }

  .case-faq-cta-section__contact-strip a {
    width: 100%;
    margin-top: 14px;
  }

  .case-final-cta {
    padding: 42px 0 calc(142px + env(safe-area-inset-bottom));
  }

  .case-final-cta__inner {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 30px 20px;
    border-radius: 20px;
  }

  .case-final-cta__inner::before {
    inset: 12px;
    border-radius: 15px;
  }

  .case-final-cta h2 {
    margin-bottom: 14px;
    font-size: clamp(25px, 8vw, 32px);
    line-height: 1.34;
  }

  .case-final-cta__actions {
    justify-items: stretch;
  }

  .case-final-cta__button {
    width: 100%;
    min-height: 56px;
    white-space: normal;
  }
}

/* Recruit approved prototype integration (local XAMPP only, 2026-07-18). */
main.recruit-integrated-page { min-width: 0; overflow: clip; }
main.recruit-integrated-page img { display: block; max-width: 100%; }
/* Use the same 390px inner-container width as the current /case/ Hero. */
@media (max-width: 640px) {
  .integrated-scope--hero .case-hero__inner {
    width: calc(100% - 20px);
    margin-inline: auto;
  }
}

/* integrated-scope--hero: imported from its verified review prototype */
.integrated-scope--hero {
--navy: #062244;
  --blue: #1f6fb8;
  --cyan: #38bdf8;
  --ink: #183653;
  --muted: #496278;
  --line: rgba(63, 124, 179, 0.16);
  --shadow: 0 24px 60px rgba(18, 69, 111, 0.14);
}
@scope (.integrated-scope--hero) {
*,
*::before,
*::after {
  box-sizing: border-box;
}
.container {
  width: min(100% - 32px, 1120px);
  margin-inline: auto;
}

.page-hero {
  position: relative;
}

.case-hero {
  position: relative;
  min-height: clamp(560px, 40vw, 590px);
  padding-block: 0;
  color: var(--navy);
  isolation: isolate;
  overflow: hidden;
  background: var(--navy);
}

.case-hero__media,
.case-hero__shade,
.case-hero__grid {
  position: absolute;
  inset: 0;
}

.case-hero__media {
  z-index: -4;
  background: url("../images/hero/recruit-hero-team-photo-test.png") right center / cover no-repeat;
  background-image: image-set(
    url("../images/hero/recruit-hero-team-photo-test.webp") type("image/webp"),
    url("../images/hero/recruit-hero-team-photo-test.png") type("image/png")
  );
  transform: scale(1.01);
}

.case-hero__shade {
  z-index: -3;
  background:
    linear-gradient(90deg, rgba(247, 251, 255, 0.96) 0%, rgba(235, 246, 255, 0.82) 31%, rgba(37, 99, 168, 0.34) 55%, rgba(5, 24, 47, 0.1) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(6, 28, 54, 0.12));
}

.case-hero__grid {
  z-index: -2;
  opacity: 0.42;
  background-image:
    linear-gradient(rgba(33, 98, 158, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(33, 98, 158, 0.16) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(90deg, #000 0%, #000 58%, transparent 88%);
}

.case-hero__inner {
  display: grid;
  align-items: center;
  min-height: inherit;
  padding-block: clamp(44px, 7.5vw, 76px);
}

.case-hero__copy {
  width: min(620px, 100%);
  padding-block: clamp(18px, 2.8vw, 32px);
}

.case-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.case-hero__eyebrow::before {
  width: 34px;
  height: 2px;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  border-radius: 999px;
  content: "";
}

.case-hero h1 {
  max-width: 620px;
  margin: 0;
  color: var(--navy);
  font-size: clamp(42px, 5.5vw, 72px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.08;
}

.case-hero__lead {
  max-width: 560px;
  margin: 24px 0 0;
  color: #213e59;
  font-size: clamp(17px, 1.7vw, 21px);
  font-weight: 800;
  line-height: 1.95;
}

.case-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.case-hero__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 14px 28px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 900;
  text-decoration: none;
}

.case-hero__button:focus-visible {
  outline: 3px solid rgba(31, 111, 184, 0.45);
  outline-offset: 3px;
}

.case-hero__button--primary {
  color: #09213d;
  background: linear-gradient(135deg, #ffd66e, #f4b844);
  box-shadow: 0 18px 36px rgba(180, 116, 11, 0.2);
}

.case-hero__button--primary:hover {
  transform: translateY(-1px);
}

.case-hero__button--secondary {
  color: var(--navy);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(31, 111, 184, 0.18);
  box-shadow: 0 12px 28px rgba(15, 57, 95, 0.12);
}
}

@media (max-width: 640px) {
.integrated-scope--hero .container {
    width: calc(100% - 20px);
  }.integrated-scope--hero .case-hero {
    min-height: 650px;
  }.integrated-scope--hero .case-hero__media {
    background-position: 68% bottom;
    transform: scale(1.06);
  }.integrated-scope--hero .case-hero__shade {
    background:
      linear-gradient(180deg, rgba(247, 251, 255, 0.97) 0%, rgba(238, 247, 255, 0.92) 48%, rgba(238, 247, 255, 0.5) 70%, rgba(4, 18, 37, 0.08) 100%),
      linear-gradient(90deg, rgba(247, 251, 255, 0.95), rgba(247, 251, 255, 0.54) 74%, rgba(247, 251, 255, 0.2));
  }.integrated-scope--hero .case-hero__grid {
    opacity: 0.32;
    background-size: 32px 32px;
    mask-image: linear-gradient(180deg, #000 0%, #000 58%, transparent 88%);
  }.integrated-scope--hero .case-hero__inner {
    align-items: start;
    padding-block: 34px 190px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }.integrated-scope--hero .case-hero__copy {
    padding-block: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }.integrated-scope--hero .case-hero h1 {
    font-size: clamp(38px, 11vw, 52px);
    line-height: 1.08;
    max-width: 100%;
    min-width: 0;
    word-break: normal;
    overflow-wrap: anywhere;
  }.integrated-scope--hero .case-hero__lead {
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.85;
    max-width: 100%;
    min-width: 0;
    word-break: normal;
    overflow-wrap: anywhere;
  }.integrated-scope--hero .case-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 26px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }.integrated-scope--hero .case-hero__button {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-inline: 20px;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
  }
}

/* integrated-scope--work: imported from its verified review prototype */
.integrated-scope--work {
--navy: #062244;
  --blue: #1f6fb8;
  --blue-deep: #0b4f9c;
  --ink: #183653;
  --muted: #496278;
  --soft: #f4f9ff;
  --line: rgba(34, 94, 154, 0.16);
  --shadow: 0 18px 38px rgba(15, 57, 95, 0.12);
}
@scope (.integrated-scope--work) {
*,
*::before,
*::after {
  box-sizing: border-box;
}
img {
  display: block;
  max-width: 100%;
}

.recruit-work-section {
  padding: clamp(54px, 6vw, 82px) 0;
}

.recruit-work-container {
  width: min(1200px, calc(100% - 56px));
  margin-inline: auto;
}

.recruit-work-heading {
  max-width: 720px;
  margin: 0 auto clamp(32px, 3.6vw, 44px);
  text-align: center;
}

.recruit-work-label {
  margin: 0 0 12px;
  color: #2a83e6;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.recruit-work-heading h1 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(31px, 3vw, 44px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.18;
}

.recruit-work-heading p:last-child {
  margin: 18px 0 0;
  color: #243f5d;
  font-size: clamp(14px, 1.08vw, 16px);
  font-weight: 800;
  line-height: 1.9;
}

.recruit-work-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 18px;
}

.recruit-work-card {
  grid-column: span 2;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow);
}

.recruit-work-card:nth-child(4) {
  grid-column: 2 / span 2;
}

.recruit-work-card:nth-child(5) {
  grid-column: 4 / span 2;
}

.recruit-work-photo {
  margin: 0;
  aspect-ratio: 1.48 / 1;
  overflow: hidden;
  background: #eaf4fb;
}

.recruit-work-photo picture {
  display: block;
  width: 100%;
  height: 100%;
}

.recruit-work-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.recruit-work-card-body {
  display: grid;
  gap: 15px;
  flex: 1;
  padding: 20px 18px 22px;
}

.recruit-work-card-title {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.recruit-work-card-title picture {
  display: block;
  width: 30px;
  height: 30px;
}

.recruit-work-card-title img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.recruit-work-card-title h2 {
  min-width: 0;
  margin: 0;
  color: var(--navy);
  font-size: clamp(17px, 1.25vw, 21px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.35;
}

.recruit-work-card-body > p {
  margin: 0;
  color: #28496a;
  font-size: clamp(13.5px, 1vw, 15px);
  font-weight: 700;
  line-height: 1.85;
}

.recruit-work-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.recruit-work-tags li {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-height: 28px;
  padding: 4px 10px;
  color: var(--navy);
  background: #eef5fc;
  border: 1px solid rgba(34, 94, 154, 0.08);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 900;
  line-height: 1.35;
}

.recruit-work-banner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr);
  align-items: center;
  min-height: 250px;
  margin-top: clamp(28px, 3.2vw, 38px);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(247, 252, 255, 0.98) 0%, rgba(239, 248, 255, 0.88) 43%, rgba(239, 248, 255, 0.28) 62%, rgba(255, 255, 255, 0.08) 100%),
    #f0f8ff;
  border: 1px solid rgba(34, 94, 154, 0.12);
  border-radius: 14px;
  box-shadow: 0 22px 48px rgba(15, 57, 95, 0.1);
}

.recruit-work-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(240, 248, 255, 0.98) 0%, rgba(240, 248, 255, 0.86) 36%, rgba(240, 248, 255, 0.44) 48%, rgba(240, 248, 255, 0.08) 64%, rgba(240, 248, 255, 0) 100%);
}

.recruit-work-banner-copy {
  position: relative;
  z-index: 2;
  padding: clamp(28px, 3.2vw, 42px) clamp(24px, 4vw, 54px);
}

.recruit-work-banner-copy h2 {
  margin: 0;
  color: var(--navy);
  max-width: 100%;
  font-size: clamp(22px, 1.95vw, 29px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.35;
}

.recruit-work-banner-copy p {
  margin: 18px 0 0;
  color: #173d66;
  font-size: clamp(14px, 1.05vw, 16px);
  font-weight: 800;
  line-height: 1.8;
}

.recruit-work-banner-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-width: min(310px, 100%);
  min-height: 50px;
  margin-top: 26px;
  padding: 11px 18px 11px 24px;
  color: var(--navy);
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid rgba(11, 79, 156, 0.32);
  border-radius: 999px;
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
}

.recruit-work-banner-button span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: #ffffff;
  background: var(--blue-deep);
  border-radius: 50%;
  line-height: 1;
}

.recruit-work-banner-photo {
  position: absolute;
  inset: 0 0 0 20%;
  z-index: 0;
  margin: 0;
}

.recruit-work-banner-photo picture {
  display: block;
  width: 100%;
  height: 100%;
}

.recruit-work-banner-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% center;
}
}

@media (max-width: 1180px) {
.integrated-scope--work .recruit-work-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }.integrated-scope--work .recruit-work-card,
.integrated-scope--work .recruit-work-card:nth-child(4),
.integrated-scope--work .recruit-work-card:nth-child(5) {
    grid-column: auto;
  }
}

@media (max-width: 760px) {
.integrated-scope--work .recruit-work-section {
    padding: 44px 0 52px;
  }.integrated-scope--work .recruit-work-container {
    width: calc(100% - 32px);
  }.integrated-scope--work .recruit-work-heading {
    margin-bottom: 26px;
  }.integrated-scope--work .recruit-work-heading h1 {
    font-size: clamp(28px, 7.8vw, 34px);
  }.integrated-scope--work .recruit-work-heading p:last-child {
    margin-top: 14px;
    font-size: 15px;
  }.integrated-scope--work .recruit-work-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }.integrated-scope--work .recruit-work-card,
.integrated-scope--work .recruit-work-card:nth-child(4),
.integrated-scope--work .recruit-work-card:nth-child(5) {
    grid-column: auto;
  }.integrated-scope--work .recruit-work-card-title {
    grid-template-columns: 32px minmax(0, 1fr);
  }.integrated-scope--work .recruit-work-card-title h2,
.integrated-scope--work .recruit-work-card-body > p,
.integrated-scope--work .recruit-work-tags li {
    overflow-wrap: anywhere;
  }.integrated-scope--work .recruit-work-card-body {
    gap: 14px;
    padding: 18px 17px 20px;
  }.integrated-scope--work .recruit-work-banner {
    grid-template-columns: 1fr;
    min-height: 0;
  }.integrated-scope--work .recruit-work-banner::after {
    display: none;
  }.integrated-scope--work .recruit-work-banner-copy {
    padding: 24px 18px 22px;
  }.integrated-scope--work .recruit-work-banner-copy h2 {
    font-size: 21px;
  }.integrated-scope--work .recruit-work-banner-button {
    width: 100%;
    min-width: 0;
    min-height: 50px;
    margin-top: 22px;
    padding-inline: 18px;
  }.integrated-scope--work .recruit-work-banner-photo {
    position: static;
    min-height: 180px;
    aspect-ratio: 1.75 / 1;
  }
}

@media (max-width: 640px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page
    .integrated-scope--work .recruit-work-banner-photo img {
    object-position: 42% 50%;
  }
}

/* integrated-scope--paths: imported from its verified review prototype */
.integrated-scope--paths {
color: #102f63;
  font-family: "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  background: #ffffff;
}
@scope (.integrated-scope--paths) {
* { box-sizing: border-box; }
.recruit-paths {
  padding: 62px 32px;
  background: #ffffff;
}

.recruit-paths__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  max-width: 1360px;
  margin: 0 auto;
}

.recruit-paths__card {
  position: relative;
  isolation: isolate;
  min-width: 0;
  min-height: 830px;
  overflow: hidden;
  border: 1px solid rgba(31, 75, 137, .08);
  border-radius: 30px;
  box-shadow: 0 16px 36px rgba(20, 51, 92, .09);
}

.recruit-paths__background {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
}

.recruit-paths__background img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.recruit-paths__card::after {
  position: absolute;
  inset: 0;
  z-index: -2;
  content: "";
  pointer-events: none;
}

.recruit-paths__card--beginner::after {
  background: linear-gradient(135deg, rgba(245, 250, 255, .93), rgba(231, 243, 255, .7));
}

.recruit-paths__card--experienced::after {
  background: linear-gradient(135deg, rgba(255, 250, 240, .93), rgba(255, 241, 215, .7));
}

.recruit-paths__content {
  position: relative;
  z-index: 2;
  width: 100%;
  min-width: 0;
  padding: 58px 52px 24px;
}

.recruit-paths__header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.recruit-paths__mark {
  width: 62px;
  height: 62px;
  object-fit: contain;
}

.recruit-paths__eyebrow {
  margin: 0 0 4px;
  color: #326ec3;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.recruit-paths__card--experienced .recruit-paths__eyebrow { color: #bd7721; }

.recruit-paths h1,
.recruit-paths h2,
.recruit-paths p { margin-top: 0; }

.recruit-paths h1 {
  margin-bottom: 0;
  color: #123876;
  font-size: 36px;
  line-height: 1.2;
  letter-spacing: 0;
}

.recruit-paths__rule {
  width: 38px;
  height: 2px;
  margin: 0 0 28px 78px;
  background: #173f83;
}

.recruit-paths__card--experienced .recruit-paths__rule { background: #c78325; }

.recruit-paths__lead {
  max-width: 540px;
  margin-bottom: 30px;
  color: #173967;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.9;
}

.recruit-paths__points {
  display: grid;
  gap: 13px;
  width: 306px;
  max-width: 100%;
  margin: 0;
  padding: 26px 28px;
  list-style: none;
  background: rgba(255, 255, 255, .91);
  border: 1px solid rgba(255, 255, 255, .92);
  border-radius: 19px;
  box-shadow: 0 12px 28px rgba(41, 77, 124, .09);
}

.recruit-paths__points li {
  position: relative;
  min-width: 0;
  padding: 0 0 12px 35px;
  border-bottom: 1px solid rgba(27, 64, 115, .12);
}

.recruit-paths__points li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.recruit-paths__points li::before {
  position: absolute;
  top: 3px;
  left: 0;
  display: grid;
  width: 22px;
  height: 22px;
  color: #ffffff;
  background: #16468d;
  border-radius: 50%;
  content: "✓";
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  place-items: center;
}

.recruit-paths__card--experienced .recruit-paths__points li::before { background: #e3a126; }

.recruit-paths h2 {
  margin-bottom: 4px;
  color: #153b77;
  font-size: 16px;
  line-height: 1.5;
}

.recruit-paths__points p {
  margin-bottom: 0;
  color: #284568;
  font-size: 13px;
  line-height: 1.68;
}

.recruit-paths__photo {
  position: absolute;
  top: auto;
  right: -4px;
  bottom: 15px;
  left: auto;
  z-index: 1;
  width: 360px;
  height: 520px;
  overflow: visible;
}

.recruit-paths__photo::before,
.recruit-paths__photo::after {
  content: none;
}

.recruit-paths__photo::before {
  background: linear-gradient(90deg, rgba(239, 247, 255, .98) 0%, rgba(239, 247, 255, .4) 24%, rgba(239, 247, 255, 0) 49%);
}

.recruit-paths__photo::after {
  background: linear-gradient(180deg, rgba(239, 247, 255, .82) 0%, rgba(239, 247, 255, 0) 38%);
}

.recruit-paths__card--experienced .recruit-paths__photo::before {
  background: linear-gradient(90deg, rgba(255, 246, 229, .98) 0%, rgba(255, 246, 229, .4) 24%, rgba(255, 246, 229, 0) 49%);
}

.recruit-paths__card--experienced .recruit-paths__photo::after {
  background: linear-gradient(180deg, rgba(255, 246, 229, .76) 0%, rgba(255, 246, 229, 0) 38%);
}

.recruit-paths__photo picture {
  display: block;
  width: 100%;
  height: 100%;
}

.recruit-paths__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

.recruit-paths__card--experienced .recruit-paths__photo img { object-position: center bottom; }
}

@media (min-width: 521px) {
.integrated-scope--paths .recruit-paths__header,
.integrated-scope--paths .recruit-paths__rule,
.integrated-scope--paths .recruit-paths__lead,
.integrated-scope--paths .recruit-paths__points {
    position: relative;
    z-index: 2;
  }.integrated-scope--paths .recruit-paths__points {
    margin: 0;
  }.integrated-scope--paths .recruit-paths__card--beginner .recruit-paths__photo { bottom: -75px; }
}

@media (max-width: 900px) {
.integrated-scope--paths .recruit-paths { padding: 36px 18px; }.integrated-scope--paths .recruit-paths__grid { grid-template-columns: 1fr; gap: 20px; max-width: 650px; }.integrated-scope--paths .recruit-paths__card { min-height: 860px; border-radius: 25px; }.integrated-scope--paths .recruit-paths__content { padding: 46px 46px 24px; }
}

@media (max-width: 520px) {
.integrated-scope--paths .recruit-paths { padding: 18px 14px; }.integrated-scope--paths .recruit-paths__grid { gap: 16px; }.integrated-scope--paths .recruit-paths__card { min-height: 0; border-radius: 21px; }.integrated-scope--paths .recruit-paths__content { padding: 31px 20px 28px; }.integrated-scope--paths .recruit-paths__header { gap: 12px; margin-bottom: 16px; }.integrated-scope--paths .recruit-paths__mark { width: 45px; height: 45px; }.integrated-scope--paths .recruit-paths__eyebrow { font-size: 11px; }.integrated-scope--paths .recruit-paths h1 { font-size: 27px; }.integrated-scope--paths .recruit-paths__rule { width: 32px; margin: 0 0 21px 57px; }.integrated-scope--paths .recruit-paths__lead { margin-bottom: 20px; font-size: 14px; line-height: 1.8; }.integrated-scope--paths .recruit-paths__points { gap: 10px; width: 100%; padding: 18px; border-radius: 16px; }.integrated-scope--paths .recruit-paths__points li { padding-left: 29px; }.integrated-scope--paths .recruit-paths__points li::before { width: 19px; height: 19px; font-size: 12px; }.integrated-scope--paths .recruit-paths h2 { font-size: 14px; }.integrated-scope--paths .recruit-paths__points p { font-size: 12px; line-height: 1.65; }.integrated-scope--paths .recruit-paths__photo {
    display: none;
  }
}

/* integrated-scope--skills: imported from its verified review prototype */
.integrated-scope--skills {
--navy: #0b3470;
  --blue: #1564de;
  --line: #d9e8fc;
  --pale: #f5f9ff;
  --text: #173c71;
}
@scope (.integrated-scope--skills) {
* { box-sizing: border-box; }
img { display: block; max-width: 100%; }

.recruit-skills,
.day-flow {
  position: relative;
  isolation: isolate;
}

.recruit-skills {
  overflow: clip;
  padding: 54px 0 56px;
  background:
    linear-gradient(128deg, rgba(230, 241, 255, 0.84) 0 18%, transparent 18.1%),
    radial-gradient(circle at 0 0, rgba(42, 128, 238, 0.16) 1px, transparent 1.5px) 0 0 / 9px 9px,
    #fff;
}

.recruit-skills::after,
.day-flow::after {
  position: absolute;
  z-index: -1;
  content: "";
  pointer-events: none;
}

.recruit-skills::after {
  top: 45%;
  right: -132px;
  width: 310px;
  height: 215px;
  background: linear-gradient(142deg, transparent 45%, rgba(225, 238, 255, 0.82) 45.2%);
}

.recruit-skills__inner,
.day-flow__inner {
  width: min(100% - 80px, 1276px);
  margin-inline: auto;
}

.section-heading {
  max-width: 820px;
  margin: 0 auto 32px;
  text-align: center;
}

.section-heading__eyebrow {
  margin: 0 0 8px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.section-heading h1,
.section-heading h2 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(29px, 3vw, 38px);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: 0;
}

.section-heading p:not(.section-heading__eyebrow) {
  margin: 20px auto 0;
  font-size: 15px;
  line-height: 1.9;
}

.section-heading__rule {
  display: block;
  width: 52px;
  height: 2px;
  margin: 18px auto 0;
  background: var(--blue);
}

.skills-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.skill-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-width: 0;
  min-height: 288px;
  padding: 26px 20px;
  text-align: center;
  background: rgba(255, 255, 255, .96);
  border: 1px solid var(--line);
  border-radius: 14px;
}

.skill-card > picture {
  display: block;
  width: 58px;
  height: 58px;
  margin-bottom: 20px;
}

.skill-card > picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.skill-card h2 {
  margin: 0;
  color: var(--navy);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.65;
}

.skill-card p {
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 1.9;
}

.day-flow {
  overflow: clip;
  padding: 38px 0 56px;
  background:
    radial-gradient(circle at 100% 4%, rgba(225, 238, 255, .8), transparent 18%),
    #fff;
}

.section-heading--compact { margin-bottom: 36px; }
.section-heading--compact h2 span { font-size: .66em; }

.day-flow__timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.day-flow__timeline::before {
  position: absolute;
  top: 35px;
  right: 4%;
  left: 4%;
  height: 1px;
  content: "";
  background: #8bb5f4;
}

.day-flow__timeline li {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  text-align: center;
}

.day-flow__timeline time {
  position: relative;
  z-index: 1;
  display: block;
  min-height: 46px;
  color: #115ed4;
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
}

.day-flow__point {
  position: relative;
  z-index: 1;
  display: block;
  width: 12px;
  height: 12px;
  margin-top: -18px;
  background: #0c60d8;
  border-radius: 50%;
  box-shadow: 0 0 0 5px #fff;
}

.day-flow__timeline .day-flow__picture {
  display: block;
  width: 122px;
  height: 122px;
  margin-top: 20px;
}

.day-flow__timeline .day-flow__picture img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 2px solid #e2edfc;
  border-radius: 50%;
}

.day-flow__timeline h3 {
  margin: 18px 0 0;
  color: var(--navy);
  font-size: 15px;
  line-height: 1.55;
}

.day-flow__timeline p {
  margin: 10px 0 0;
  font-size: 12.5px;
  line-height: 1.85;
}



.work-style-banner {
  display: grid;
  grid-template-columns: 38px max-content 1px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  width: min(100% - 210px, 956px);
  margin: 34px auto 0;
  padding: 22px 34px;
  background: linear-gradient(110deg, #eff5ff, #f6f9ff);
  border-radius: 14px;
}

.work-style-banner > picture {
  display: block;
  width: 32px;
  height: 32px;
}

.work-style-banner > picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.work-style-banner h2 {
  margin: 0;
  color: #0d5ed6;
  font-size: 17px;
  white-space: nowrap;
}

.work-style-banner__divider { display: block; height: 35px; background: #b7cdee; }
.work-style-banner p { margin: 0; font-size: 14px; line-height: 1.75; }
}

@media (min-width: 1121px) {
.integrated-scope--skills .day-flow__timeline {
    grid-template-columns: repeat(6, 178px);
    justify-content: center;
    gap: 28px;
  }.integrated-scope--skills .day-flow__timeline::before {
    right: 5.5%;
    left: 5.5%;
  }.integrated-scope--skills .day-flow__timeline p {
    width: 100%;
    max-width: 164px;
  }
}

@media (max-width: 1120px) {
.integrated-scope--skills .skills-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.integrated-scope--skills .skills-grid .skill-card:nth-child(4) { grid-column: 1 / span 1; }.integrated-scope--skills .skills-grid .skill-card:nth-child(5) { grid-column: 2 / span 1; }.integrated-scope--skills .day-flow__timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 38px; }.integrated-scope--skills .day-flow__timeline::before { display: none; }
}

@media (max-width: 640px) {
.integrated-scope--skills .recruit-skills { padding: 42px 0 46px; }.integrated-scope--skills .day-flow { padding: 34px 0 44px; }.integrated-scope--skills .recruit-skills__inner,
.integrated-scope--skills .day-flow__inner { width: min(100% - 32px, 390px); }.integrated-scope--skills .section-heading { margin-bottom: 26px; text-align: center; }.integrated-scope--skills .section-heading h1,
.integrated-scope--skills .section-heading h2 { font-size: 26px; }.integrated-scope--skills .section-heading p:not(.section-heading__eyebrow) { margin-top: 16px; font-size: 14px; }.integrated-scope--skills .skills-grid { grid-template-columns: 1fr; gap: 12px; }.integrated-scope--skills .skills-grid .skill-card:nth-child(4),
.integrated-scope--skills .skills-grid .skill-card:nth-child(5) { grid-column: auto; }.integrated-scope--skills .skill-card { min-height: 196px; padding: 22px; }.integrated-scope--skills .skill-card > img { width: 52px; height: 52px; margin-bottom: 14px; }.integrated-scope--skills .skill-card h2 { font-size: 17px; }.integrated-scope--skills .skill-card p { margin-top: 10px; }.integrated-scope--skills .section-heading--compact h2 span { display: block; margin-top: 5px; }.integrated-scope--skills .day-flow__timeline { display: block; margin-left: 15px; padding-left: 30px; border-left: 1px solid #8bb5f4; }.integrated-scope--skills .day-flow__timeline li { display: grid; grid-template-columns: 70px 88px minmax(0, 1fr); column-gap: 14px; align-items: start; margin-bottom: 28px; text-align: left; }.integrated-scope--skills .day-flow__timeline li:last-child { margin-bottom: 0; }.integrated-scope--skills .day-flow__timeline time { grid-column: 1; min-height: 0; padding-top: 8px; font-size: 16px; }.integrated-scope--skills .day-flow__point { position: absolute; top: 12px; left: -37px; width: 12px; height: 12px; margin: 0; }.integrated-scope--skills .day-flow__timeline .day-flow__picture { grid-column: 2; grid-row: 1 / span 3; width: 88px; height: 88px; margin: 0; }.integrated-scope--skills .day-flow__timeline h3 { grid-column: 3; margin: 3px 0 0; font-size: 15px; }.integrated-scope--skills .day-flow__timeline p { grid-column: 3; margin: 7px 0 0; font-size: 13px; }.integrated-scope--skills .work-style-banner { grid-template-columns: 34px minmax(0, 1fr); gap: 12px 16px; width: 100%; margin-top: 30px; padding: 20px; border-radius: 12px; }.integrated-scope--skills .work-style-banner img { width: 30px; height: 30px; }.integrated-scope--skills .work-style-banner h2 { align-self: center; font-size: 16px; }.integrated-scope--skills .work-style-banner__divider { display: none; }.integrated-scope--skills .work-style-banner p { grid-column: 1 / -1; font-size: 13px; }
}

@media (max-width: 640px) {
  .integrated-scope--skills .skill-card > picture {
    width: 52px;
    height: 52px;
    margin-bottom: 14px;
  }

  .integrated-scope--skills .work-style-banner > picture {
    width: 30px;
    height: 30px;
  }
}

/* integrated-scope--personality: imported from its verified review prototype */
.integrated-scope--personality {
--navy: #092f76;
  --blue: #075dd8;
  --line: #d6e4fa;
  --paper: #ffffff;
  --soft-blue: #f1f7ff;
}
@scope (.integrated-scope--personality) {
* { box-sizing: border-box; }
.recruit-personality-prototype {
  overflow: clip;
}

.section-inner {
  width: min(100% - 64px, 1360px);
  margin: 0 auto;
}

.personality-section,
.anxiety-section {
  padding: 16px 0 22px;
}

.personality-section .section-inner {
  padding: 30px 32px 28px;
  border-radius: 14px;
  background: linear-gradient(135deg, #f5faff 0%, #ffffff 54%, #f8fbff 100%);
}

.personality-heading {
  max-width: 820px;
  margin: 0 auto 32px;
  text-align: center;
}

.personality-heading__eyebrow {
  margin: 0 0 8px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.personality-heading h1 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(29px, 3vw, 38px);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: 0;
}

.anxiety-heading h2 {
  margin: 0;
  color: #0754c7;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.3;
}

.personality-heading__rule {
  display: block;
  width: 52px;
  height: 2px;
  margin: 18px auto 0;
  background: var(--blue);
}

.personality-heading > p:not(.personality-heading__eyebrow) {
  margin: 20px auto 0;
  font-size: 15px;
  line-height: 1.9;
}

.personality-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 26px;
  margin-top: 0;
}

.personality-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 310px;
  padding: 31px 24px 26px;
  border: 1px solid #dce8f8;
  border-radius: 12px;
  background: rgba(255, 255, 255, .92);
  text-align: center;
}

.personality-card > picture {
  display: block;
  width: 72px;
  height: 72px;
}

.personality-card > picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.personality-card h2 {
  margin: 22px 0 0;
  font-size: 18px;
  line-height: 1.55;
}

.card-rule {
  width: 38px;
  height: 2px;
  margin-top: 15px;
  background: var(--blue);
}

.personality-card p {
  margin: 18px 0 0;
  font-size: 14px;
  line-height: 1.85;
}

.anxiety-section .section-inner {
  padding: 22px 34px 20px;
  border-radius: 14px;
  background: linear-gradient(112deg, #eff7ff 0%, #f7fbff 58%, #edf6ff 100%);
}

.anxiety-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(430px, .98fr);
  gap: 40px;
  align-items: start;
}

.anxiety-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 16px 0 6px;
}

.anxiety-heading {
  display: flex;
  align-items: center;
  gap: 14px;
}

.anxiety-heading > picture {
  display: block;
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
}

.anxiety-heading > picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.anxiety-heading h2 { font-size: 28px; }

.anxiety-heading p {
  margin: 6px 0 0;
  font-size: 15px;
  font-weight: 700;
}

.faq-list {
  display: grid;
  gap: 12px;
  margin-top: 24px;
}

.faq-item {
  min-height: 56px;
  border: 1px solid #e1ebf8;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 5px 12px rgba(32, 82, 157, .05);
}

.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  gap: 16px;
  padding: 12px 20px 12px 28px;
  cursor: pointer;
  list-style: none;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary:focus-visible {
  outline: 2px solid #7fa9e5;
  outline-offset: -2px;
  border-radius: 11px;
}

.faq-question {
  min-width: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.faq-item summary::after {
  flex: 0 0 auto;
  color: var(--blue);
  content: "+";
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
}

.faq-item[open] summary {
  border-bottom: 1px solid #e5edf8;
}

.faq-item[open] summary::after { content: "-"; }

.faq-answer {
  margin: 0;
  padding: 15px 28px 18px;
  font-size: 15px;
  line-height: 1.5;
}

.faq-item strong { color: var(--blue); }
.faq-item strong { margin-right: 9px; }

.anxiety-note {
  margin: auto 0 0;
  padding: 20px 10px 0;
  font-size: 14px;
  line-height: 1.8;
}

.anxiety-visual {
  align-self: stretch;
  position: relative;
  width: 100%;
  min-height: 0;
  margin: 10px 0;
  overflow: hidden;
  border-radius: 14px;
  background: #eef5fc;
  box-shadow: inset 0 0 0 1px rgba(203, 221, 243, .8);
}

.anxiety-photo {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.anxiety-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.consultation-card {
  position: absolute;
  right: 18px;
  bottom: 0;
  left: 18px;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  padding: 18px 22px;
  border: 1px solid #dbe8f8;
  border-radius: 12px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 18px rgba(31, 70, 128, .16);
}

.consultation-card > picture {
  display: block;
  width: 76px;
  height: 76px;
}

.consultation-card > picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.consultation-card h3 {
  margin: 0;
  color: #0754c7;
  font-size: 17px;
  line-height: 1.55;
}

.consultation-card p {
  margin: 8px 0 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
}
}

@media (max-width: 1120px) {
.integrated-scope--personality .personality-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.integrated-scope--personality .personality-grid > :nth-child(4) { grid-column: 1 / span 1; }.integrated-scope--personality .personality-grid > :nth-child(5) { grid-column: 2 / span 1; }.integrated-scope--personality .anxiety-layout { grid-template-columns: 1fr; }.integrated-scope--personality .anxiety-visual { align-self: auto; height: 340px; min-height: 340px; margin: 0; }.integrated-scope--personality .anxiety-photo { position: static; min-height: 340px; }
}

@media (max-width: 640px) {
.integrated-scope--personality .section-inner { width: min(100% - 32px, 390px); }.integrated-scope--personality .personality-section,
.integrated-scope--personality .anxiety-section { padding: 8px 0 14px; }.integrated-scope--personality .personality-section .section-inner,
.integrated-scope--personality .anxiety-section .section-inner { padding: 28px 16px; border-radius: 12px; }.integrated-scope--personality .personality-heading h1 { font-size: 26px; }.integrated-scope--personality .anxiety-heading h2 { font-size: 25px; }.integrated-scope--personality .personality-heading { margin-bottom: 26px; }.integrated-scope--personality .personality-heading__eyebrow { margin-bottom: 6px; font-size: 12px; }.integrated-scope--personality .personality-heading__rule { width: 52px; margin-top: 18px; }.integrated-scope--personality .personality-heading > p:not(.personality-heading__eyebrow) { margin-top: 16px; font-size: 14px; }.integrated-scope--personality .personality-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 22px; }.integrated-scope--personality .personality-grid > :nth-child(4),
.integrated-scope--personality .personality-grid > :nth-child(5) { grid-column: auto; }.integrated-scope--personality .personality-card { min-height: 0; padding: 24px 22px; }.integrated-scope--personality .personality-card > img { width: 62px; height: 62px; }.integrated-scope--personality .personality-card h2 { margin-top: 14px; font-size: 18px; }.integrated-scope--personality .personality-card p { margin-top: 14px; }.integrated-scope--personality .anxiety-layout { gap: 28px; }.integrated-scope--personality .anxiety-copy { padding: 0; }.integrated-scope--personality .anxiety-heading { align-items: flex-start; gap: 10px; }.integrated-scope--personality .anxiety-heading > img { width: 38px; height: 38px; }.integrated-scope--personality .anxiety-heading h2 { font-size: 24px; }.integrated-scope--personality .anxiety-heading p { font-size: 14px; }.integrated-scope--personality .faq-list { gap: 10px; margin-top: 20px; }.integrated-scope--personality .faq-item { min-height: 0; }.integrated-scope--personality .faq-item summary { align-items: flex-start; min-height: 0; padding: 14px 15px; gap: 10px; }.integrated-scope--personality .faq-question { font-size: 14px; }.integrated-scope--personality .faq-answer { padding: 13px 15px 16px; font-size: 14px; line-height: 1.7; }.integrated-scope--personality .faq-item strong { margin-right: 5px; }.integrated-scope--personality .faq-item summary::after { font-size: 22px; line-height: 1.1; }.integrated-scope--personality .anxiety-note { margin-top: 0; padding: 18px 4px 0; font-size: 13px; }.integrated-scope--personality .anxiety-visual { height: auto; min-height: 0; overflow: hidden; border-radius: 12px; padding-bottom: 0; }.integrated-scope--personality .anxiety-photo { min-height: 250px; height: 250px; border-radius: 0; object-position: center center; }.integrated-scope--personality .consultation-card { position: relative; right: auto; bottom: auto; left: auto; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; margin: -14px 10px 0; padding: 15px; border-radius: 10px; }.integrated-scope--personality .consultation-card > img { width: 52px; height: 52px; }.integrated-scope--personality .consultation-card h3 { font-size: 15px; }.integrated-scope--personality .consultation-card p { margin-top: 5px; font-size: 12px; }
}

@media (max-width: 640px) {
  .integrated-scope--personality .personality-card > picture {
    width: 62px;
    height: 62px;
  }

  .integrated-scope--personality .anxiety-heading > picture {
    width: 38px;
    height: 38px;
  }

  .integrated-scope--personality .consultation-card > picture {
    width: 52px;
    height: 52px;
  }
}

/* integrated-scope--cta: imported from its verified review prototype */
.integrated-scope--cta {
color: #071f3a;
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  line-height: 1.7;
}
@scope (.integrated-scope--cta) {
* {
  box-sizing: border-box;
}
a {
  color: inherit;
  text-decoration: none;
}

.recruit-cta {
  position: relative;
  overflow: hidden;
  padding: clamp(56px, 8vw, 94px) 24px;
  color: #fff;
  background: linear-gradient(180deg, #f4f9fd 0%, #eaf4fb 100%);
}

.recruit-cta__inner {
  position: relative;
  display: grid;
  width: min(100%, 1080px);
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(28px, 4vw, 54px);
  align-items: center;
  margin-inline: auto;
  padding: clamp(38px, 5.4vw, 66px);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
    radial-gradient(circle at 82% 30%, rgba(14, 165, 233, .28), transparent 32%),
    linear-gradient(135deg, #061527 0%, #0b2038 48%, #123f6a 100%);
  background-size: 34px 34px, 34px 34px, auto, auto;
  border: 1px solid rgba(203, 223, 241, .18);
  border-radius: 24px;
  box-shadow: 0 28px 80px rgba(6, 21, 39, .26);
}

.recruit-cta__inner::before {
  position: absolute;
  inset: 18px;
  pointer-events: none;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 18px;
  content: "";
}

.recruit-cta__inner::after {
  position: absolute;
  top: -28%;
  right: -9%;
  width: 34%;
  height: 70%;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(56, 189, 248, .22), transparent 68%);
  content: "";
}

.recruit-cta__copy,
.recruit-cta__action {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.recruit-cta__eyebrow {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 14px;
  padding: 6px 12px;
  color: #bdeaff;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(203, 223, 241, .2);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.2;
}

.recruit-cta h1 {
  max-width: 760px;
  margin: 0 0 18px;
  color: #fff;
  font-size: clamp(30px, 3.3vw, 42px);
  font-weight: 850;
  letter-spacing: 0;
  line-height: 1.28;
}

.recruit-cta__copy > p:not(.recruit-cta__eyebrow) {
  max-width: 680px;
  margin: 0;
  color: rgba(255, 255, 255, .84);
  font-size: clamp(15px, 1.6vw, 17px);
  font-weight: 500;
  line-height: 1.9;
}

.recruit-cta__action {
  display: grid;
  justify-items: end;
}

.company-recruit-cta__actions {
  gap: 12px;
}

.recruit-cta__button {
  display: inline-flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 24px;
  color: #0b2038;
  background: #fff;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 10px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, .2);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  white-space: nowrap;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.recruit-cta__button span {
  color: #195f9f;
  font-size: 20px;
  line-height: 1;
}

.recruit-cta__button:hover {
  background: #eef8ff;
  box-shadow: 0 22px 42px rgba(0, 0, 0, .26);
  transform: translateY(-2px);
}

.recruit-cta__button:focus-visible {
  outline: 3px solid #9cddff;
  outline-offset: 4px;
  box-shadow: 0 22px 42px rgba(0, 0, 0, .26);
  transform: translateY(-2px);
}
}

@media (max-width: 820px) {
.integrated-scope--cta .recruit-cta {
    padding: 42px 16px 48px;
  }.integrated-scope--cta .recruit-cta__inner {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 30px 20px;
    border-radius: 20px;
  }.integrated-scope--cta .recruit-cta__inner::before {
    inset: 12px;
    border-radius: 15px;
  }.integrated-scope--cta .recruit-cta h1 {
    margin-bottom: 14px;
    font-size: clamp(25px, 8vw, 32px);
    line-height: 1.34;
  }.integrated-scope--cta .recruit-cta__copy > p:not(.recruit-cta__eyebrow) {
    font-size: 14px;
    line-height: 1.8;
  }.integrated-scope--cta .recruit-cta__action {
    justify-items: stretch;
  }.integrated-scope--cta .recruit-cta__button {
    width: 100%;
    min-height: 56px;
    white-space: normal;
  }
}
@media (max-width: 640px) {
  main.recruit-integrated-page .integrated-scope--hero .case-hero__inner {
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
    margin-inline: auto !important;
  }
}
/* recruit-local-hero-cta-safe-space-20260718: start */
@media (min-width: 821px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero {
    min-height: 700px;
    overflow: hidden;
  }

  @supports (overflow: clip) {
    body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero {
      overflow: clip;
    }
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__media {
    transform: none;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__inner {
    min-height: inherit;
    align-items: center;
    padding-block: 56px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__copy {
    width: min(760px, 100%);
    max-width: 760px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero h1 {
    max-width: 760px;
    font-size: clamp(46px, 4.1vw, 58px);
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__lead {
    max-width: 640px;
    margin-top: 18px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__actions {
    margin-top: 24px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--cta .recruit-cta,
  main.company-page .company-recruit-cta .recruit-cta {
    padding-block: 44px 42px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--cta .recruit-cta__inner,
  main.company-page .company-recruit-cta .recruit-cta__inner {
    padding: clamp(34px, 4vw, 52px);
  }
}

@media (max-width: 820px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--cta .recruit-cta,
  main.company-page .company-recruit-cta .recruit-cta {
    padding: 30px 16px 34px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--cta .recruit-cta__inner,
  main.company-page .company-recruit-cta .recruit-cta__inner {
    padding: 28px 20px;
  }
}

@media (max-width: 640px) {
  body:has(main.recruit-integrated-page) {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page {
    padding-bottom: 24px;
  }

  body:has(main.recruit-integrated-page) .site-footer .footer-inner {
    padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px));
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero {
    min-height: 590px;
    overflow: hidden;
  }

  @supports (overflow: clip) {
    body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero {
      overflow: clip;
    }
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__media {
    transform: none;
    background-position: 68% bottom;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__inner {
    padding-block: 28px 150px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero h1 {
    font-size: clamp(29px, 8vw, 32px);
    line-height: 1.18;
    letter-spacing: 0;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__lead {
    margin-top: 14px;
    font-size: 15px;
    line-height: 1.75;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__actions {
    margin-top: 18px;
  }
}
/* recruit-local-hero-cta-safe-space-20260718: end */
/* recruit-local-layout-faq-consultation-adjust-20260718: start */
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--paths .recruit-paths {
  display: block;
  grid-template-columns: none;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--paths .recruit-paths__grid {
  width: min(100%, 1360px);
  max-width: 1360px;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--paths .recruit-paths__card {
  padding: 0;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--paths .recruit-paths__card::before {
  content: none;
}

@media (min-width: 521px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--paths .recruit-paths__card--beginner .recruit-paths__photo {
    bottom: 15px;
  }
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item summary {
  position: relative;
  padding-right: 68px;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item summary::after {
  position: absolute;
  top: 50%;
  right: 22px;
  display: grid;
  width: 28px;
  height: 28px;
  line-height: 1;
  place-items: center;
  transform: translateY(-50%);
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .consultation-card {
  bottom: 18px;
}

@media (max-width: 900px) and (min-width: 521px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--paths .recruit-paths__grid {
    width: min(100%, 650px);
    max-width: 650px;
  }
}

@media (max-width: 640px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item summary {
    padding-right: 56px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item summary::after {
    right: 14px;
    width: 28px;
    height: 28px;
    font-size: 22px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .consultation-card {
    bottom: auto;
    margin: 12px 10px 0;
  }
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--paths .recruit-paths__card::after {
  content: none;
}

/* recruit-local-layout-faq-consultation-adjust-20260718: end */
/* recruit-local-heading-faq-adjust-20260718: start */
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work .recruit-work-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 820px;
  margin-inline: auto;
  margin-bottom: 42px;
  text-align: center;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work .recruit-work-label {
  margin: 0 0 12px;
  color: #0f6ee8;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work #recruit-work-title {
  margin: 0;
  color: #062244;
  font-size: clamp(32px, 2.65vw, 38px);
  line-height: 1.25;
  letter-spacing: 0;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work #recruit-work-title::after {
  display: block;
  width: 52px;
  height: 2px;
  margin: 20px auto 0;
  background: #0f6ee8;
  content: "";
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work .recruit-work-heading > p:last-child {
  width: 100%;
  max-width: 760px;
  margin: 22px auto 0;
  color: #15335f;
  font-size: 15.5px;
  font-weight: 500;
  line-height: 1.9;
  text-align: center;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .personality-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .personality-heading > p:not(.personality-heading__eyebrow) {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item summary {
  align-items: center;
  padding-right: 70px;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item summary::after {
  position: absolute;
  top: 50%;
  right: 22px;
  display: block;
  width: 30px;
  height: 30px;
  box-sizing: border-box;
  border: 2px solid rgba(79, 181, 236, .82);
  border-radius: 999px;
  background:
    linear-gradient(#0f6ee8, #0f6ee8) center / 14px 2px no-repeat,
    linear-gradient(#0f6ee8, #0f6ee8) center / 2px 14px no-repeat,
    #eff8ff;
  box-shadow: 0 2px 8px rgba(15, 110, 232, .12);
  color: transparent;
  content: "";
  font-size: 0;
  line-height: 0;
  transform: translateY(-50%);
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item[open] summary::after {
  background:
    linear-gradient(#0f6ee8, #0f6ee8) center / 14px 2px no-repeat,
    #eff8ff;
}

@media (max-width: 640px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work .recruit-work-heading {
    max-width: 326px;
    margin-bottom: 26px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work .recruit-work-label {
    margin-bottom: 9px;
    font-size: 12px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work #recruit-work-title {
    font-size: 26px;
    line-height: 1.32;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work #recruit-work-title::after {
    width: 52px;
    margin-top: 16px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work .recruit-work-heading > p:last-child {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.75;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item summary {
    align-items: center;
    padding-right: 58px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item summary::after {
    right: 14px;
    width: 30px;
    height: 30px;
    background:
      linear-gradient(#0f6ee8, #0f6ee8) center / 14px 2px no-repeat,
      linear-gradient(#0f6ee8, #0f6ee8) center / 2px 14px no-repeat,
      #eff8ff;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item[open] summary::after {
    background:
      linear-gradient(#0f6ee8, #0f6ee8) center / 14px 2px no-repeat,
      #eff8ff;
  }
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-item[open] summary::before {
  content: none;
}

/* recruit-local-heading-faq-adjust-20260718: end */
/* recruit-local-faq-icon-stabilize-20260718: start */
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item summary {
  position: relative;
  align-items: center;
  list-style: none !important;
  padding-right: 70px;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item summary::marker {
  content: "" !important;
  font-size: 0 !important;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item summary::-webkit-details-marker {
  display: none !important;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item summary::before,
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item[open] summary::before,
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list details[open] summary::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item summary::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  right: 22px !important;
  display: block !important;
  width: 30px !important;
  height: 30px !important;
  box-sizing: border-box !important;
  flex: 0 0 30px !important;
  border: 2px solid rgba(79, 181, 236, 0.82) !important;
  border-radius: 999px !important;
  background:
    linear-gradient(#0f6ee8, #0f6ee8) center / 14px 2px no-repeat,
    linear-gradient(#0f6ee8, #0f6ee8) center / 2px 14px no-repeat,
    #eff8ff !important;
  box-shadow: 0 2px 8px rgba(15, 110, 232, 0.12) !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-align: center !important;
  transform: translateY(-50%) !important;
  opacity: 1 !important;
  animation: none !important;
  transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease !important;
  pointer-events: none !important;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item[open] summary::after,
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list details[open] summary::after {
  content: "" !important;
  background:
    linear-gradient(#0f6ee8, #0f6ee8) center / 14px 2px no-repeat,
    #eff8ff !important;
}

@media (max-width: 640px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item summary {
    padding-right: 58px;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .faq-list .faq-item summary::after {
    right: 14px !important;
    width: 30px !important;
    height: 30px !important;
    flex-basis: 30px !important;
  }
}
/* recruit-local-faq-icon-stabilize-20260718: end */
/* recruit-local-anxiety-visual-fixed-size-20260718: start */
@media (min-width: 1121px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .anxiety-visual {
    align-self: center;
    height: 477px;
    min-height: 477px;
    max-height: 477px;
    margin: 10px 0;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .anxiety-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
  }
}
/* recruit-local-anxiety-visual-fixed-size-20260718: end */
/* recruit-local-anxiety-visual-fixed-position-20260718: start */
@media (min-width: 1121px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .anxiety-visual {
    align-self: start;
    margin-top: 10px;
  }
}
/* recruit-local-anxiety-visual-fixed-position-20260718: end */
/* recruit-local-personality-outer-panel-remove-20260718: start */
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .personality-section > .section-inner {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
/* recruit-local-personality-outer-panel-remove-20260718: end */
/* recruit-local-anxiety-outer-panel-remove-20260718: start */
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .anxiety-section > .section-inner {
  background: transparent;
  background-image: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--personality .anxiety-visual {
  background: transparent;
  background-image: none;
  border: 0;
  box-shadow: none;
}
/* recruit-local-anxiety-outer-panel-remove-20260718: end */

/* local-all-page-hero-height-unify-20260720: start */
@media (min-width: 641px) {
  .hero-unified.top-hero-switch,
  .service-hero,
  .case-hero,
  .page-hero.company-hero {
    height: 500px !important;
    min-height: 500px !important;
    max-height: 500px !important;
    padding-block: 0 !important;
    overflow: hidden !important;
  }

  .top-hero-switch .proposal-switch,
  .top-hero-switch .top-hero-switcher {
    position: absolute !important;
    top: 14px !important;
    left: 50% !important;
    z-index: 8 !important;
    width: min(760px, calc(100% - 48px)) !important;
    transform: translateX(-50%) !important;
  }

  .hero-unified .hero-inner {
    height: 500px !important;
    min-height: 500px !important;
    padding: 64px 48px 38px !important;
    grid-template-columns: minmax(360px, 0.82fr) minmax(480px, 1.18fr) !important;
  }

  .hero-unified .hero-copy {
    align-self: end !important;
  }

  .hero-unified .hero-support {
    align-self: start !important;
  }

  .hero-unified .hero-title {
    font-size: 56px !important;
    line-height: 1.2 !important;
  }

  .hero-unified .lead {
    font-size: 18px !important;
    line-height: 1.8 !important;
  }

  .hero-unified .main-visual-concept,
  .hero-unified .hero-visual-card {
    min-height: 390px !important;
  }

  .service-hero .page-hero-inner,
  .case-hero .case-hero__inner {
    height: 500px !important;
    min-height: 500px !important;
    padding-block: 44px !important;
    align-items: center !important;
  }

  .service-hero .page-hero-inner {
    grid-template-columns: minmax(0, 0.98fr) minmax(360px, 0.8fr) !important;
  }

  .service-hero .service-hero-copy,
  .service-hero .page-hero-inner > div:first-child,
  .case-hero .case-hero__copy {
    padding-block: 0 !important;
  }

  .service-hero h1 {
    font-size: 56px !important;
    line-height: 1.2 !important;
  }

  .service-hero .lead {
    margin-top: 18px !important;
    font-size: 18px !important;
    line-height: 1.8 !important;
  }

  .service-hero .tech-illustration.page {
    min-height: 230px !important;
  }

  .case-hero h1 {
    font-size: 56px !important;
    line-height: 1.2 !important;
  }

  .case-hero .case-hero__lead {
    margin-top: 18px !important;
    font-size: 18px !important;
    line-height: 1.8 !important;
  }

  .case-hero .case-hero__note {
    margin-top: 16px !important;
    padding-block: 10px !important;
  }

  .case-hero .case-hero__actions {
    margin-top: 20px !important;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero h1 {
    font-size: 56px !important;
    line-height: 1.2 !important;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__lead {
    font-size: 18px !important;
    line-height: 1.8 !important;
  }

  .page-hero.company-hero {
    display: grid !important;
    align-items: center !important;
  }

  .page-hero.company-hero > .container {
    padding-block: 0 !important;
  }
}

@media (max-width: 640px) {
  .hero-unified.top-hero-switch,
  .service-hero,
  .case-hero,
  .page-hero.company-hero {
    height: 250px !important;
    min-height: 250px !important;
    max-height: 250px !important;
    padding-block: 0 !important;
    overflow: hidden !important;
  }

  .top-hero-switch .proposal-switch,
  .top-hero-switch .top-hero-switcher {
    position: absolute !important;
    top: 7px !important;
    left: 50% !important;
    z-index: 8 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4px !important;
    width: min(286px, calc(100% - 28px)) !important;
    padding: 5px !important;
    transform: translateX(-50%) !important;
  }

  .top-hero-switch .proposal-switch button,
  .top-hero-switch .top-hero-switcher button {
    min-height: 24px !important;
    padding: 3px 5px !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
  }

  .hero-unified .hero-inner {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    height: 250px !important;
    min-height: 250px !important;
    gap: 0 !important;
    padding: 0 12px !important;
  }

  .hero-unified .hero-copy,
  .hero-unified .hero-support {
    width: 100% !important;
    max-width: 100% !important;
    align-self: stretch !important;
  }

  .hero-unified .eyebrow {
    margin-bottom: 4px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  .hero-unified .hero-title {
    font-size: 24px !important;
    line-height: 1.3 !important;
    margin-bottom: 0 !important;
  }

  .hero-unified .hero-title-line {
    display: inline !important;
  }

  .hero-unified .hero-support {
    margin-top: 5px !important;
  }

  .hero-unified .lead {
    margin-top: 0 !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
  }

  .hero-unified .hero-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin-top: 6px !important;
  }

  .hero-unified .button {
    min-height: 30px !important;
    padding: 4px 6px !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
  }

  .hero-unified.top-hero-switch .hero-inner {
    padding: 15px 12px !important;
  }

  .hero-unified.top-hero-switch .hero-copy,
  .hero-unified.top-hero-switch .hero-support {
    transform: translateY(-5px);
  }

  .hero-unified.top-hero-switch .hero-title,
  .hero-unified.top-hero-switch .hero-title-line {
    line-height: 1.25 !important;
  }

  .hero-unified.top-hero-switch .lead {
    margin-bottom: 8px !important;
    line-height: 1.6 !important;
  }

  .hero-unified .hero-visual-card {
    position: absolute !important;
    right: -24px !important;
    bottom: -34px !important;
    z-index: 1 !important;
    width: 54% !important;
    min-height: 150px !important;
    opacity: 0.16 !important;
    pointer-events: none !important;
  }

  .service-hero .page-hero-inner,
  .case-hero .case-hero__inner {
    height: 250px !important;
    min-height: 250px !important;
    padding-block: 14px !important;
    align-items: center !important;
  }

  .service-hero .page-hero-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    padding-block: 0 !important;
  }

  .service-hero {
    background:
      linear-gradient(90deg, rgba(3, 24, 49, 0.84) 0%, rgba(3, 24, 49, 0.64) 58%, rgba(3, 24, 49, 0.28) 100%),
      url("../images/hero/service-hero-tech-bg.webp") 62% center / cover no-repeat,
      #eef6fc;
  }

  .service-hero .eyebrow {
    color: #d7eaff;
  }

  .service-hero h1 {
    color: #fff;
  }

  .service-hero .lead {
    color: rgba(255, 255, 255, 0.9);
  }

  .service-hero .service-hero-copy,
  .service-hero .page-hero-inner > div:first-child,
  .case-hero .case-hero__copy {
    width: 100% !important;
    max-width: 100% !important;
    padding-block: 0 !important;
  }

  .service-hero .eyebrow,
  .case-hero .case-hero__eyebrow {
    gap: 6px !important;
    margin-bottom: 6px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  .service-hero .eyebrow::before,
  .case-hero .case-hero__eyebrow::before {
    width: 24px !important;
  }

  .service-hero h1,
  .case-hero h1 {
    font-size: 24px !important;
    line-height: 1.3 !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
  }

  .service-hero h1 {
    margin-bottom: 0 !important;
  }

  .service-hero-title-line,
  .service-hero .lead span {
    display: inline !important;
  }

  .service-hero .lead,
  .case-hero .case-hero__lead {
    margin-top: 8px !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
  }

  .service-hero .lead {
    margin-bottom: 0 !important;
  }

  .service-hero .tech-illustration.page {
    position: absolute !important;
    right: 10px !important;
    bottom: 8px !important;
    width: 42% !important;
    min-height: 112px !important;
    opacity: 0.14 !important;
    pointer-events: none !important;
  }

  .case-hero .case-hero__note {
    margin-top: 7px !important;
    padding: 5px 8px !important;
    border-radius: 10px !important;
    font-size: 10.5px !important;
    line-height: 1.35 !important;
  }

  .case-hero .case-hero__actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin-top: 8px !important;
  }

  .case-hero .case-hero__button {
    width: auto !important;
    min-height: 31px !important;
    padding: 4px 6px !important;
    font-size: 10.5px !important;
    line-height: 1.2 !important;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero h1 {
    font-size: 24px !important;
    line-height: 1.3 !important;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__lead {
    font-size: 14px !important;
    line-height: 1.7 !important;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__actions {
    grid-template-columns: 1fr !important;
    max-width: 220px !important;
  }

  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__inner {
    padding-block: 0 !important;
  }

  .page-hero.company-hero {
    display: grid !important;
    align-items: center !important;
  }

  .page-hero.company-hero > .container {
    padding-block: 0 !important;
  }

  .page-hero.company-hero .eyebrow {
    margin-bottom: 6px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  .page-hero.company-hero h1 {
    font-size: 24px !important;
    line-height: 1.3 !important;
  }

  .page-hero.company-hero .lead {
    margin-top: 10px !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
  }
}
/* local-all-page-hero-height-unify-20260720: end */

/* WordPress route parity: Contact, News sample detail, and 404. */
.contact-form-frame {
  padding-block: clamp(64px, 8vw, 112px);
  background: #f6f9fc;
}

.contact-placeholder {
  width: min(100%, 860px);
  margin-inline: auto;
  padding: clamp(28px, 4vw, 48px);
  color: #183653;
  background: #fff;
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(18, 69, 111, 0.08);
}

.contact-placeholder p {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
}

.mseem-contact-form-shell {
  width: min(100%, 860px);
  margin-inline: auto;
  padding: clamp(28px, 4vw, 48px);
  color: #183653;
  background: #fff;
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(18, 69, 111, 0.08);
}

.mseem-contact-form-heading {
  padding-bottom: 28px;
  margin-bottom: 30px;
  border-bottom: 1px solid rgba(37, 99, 168, 0.16);
}

.mseem-contact-form-kicker {
  margin: 0 0 10px;
  color: #c88318;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.mseem-contact-form-heading h2 {
  margin: 0;
  color: #062244;
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.35;
}

.mseem-contact-form-heading > p:last-child {
  margin: 14px 0 0;
  font-size: 16px;
  line-height: 1.8;
}

.contact-page .wpcf7 form {
  margin: 0;
}

.mseem-cf7-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 28px;
}

.mseem-cf7-field {
  min-width: 0;
}

.mseem-cf7-field--full,
.mseem-cf7-consent,
.mseem-cf7-actions {
  grid-column: 1 / -1;
}

.mseem-cf7-field > label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 9px;
  color: #062244;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.mseem-cf7-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
}

.mseem-cf7-badge--required {
  color: #b3261e;
  background: #fff0ef;
}

.mseem-cf7-badge--optional {
  color: #486173;
  background: #edf3f8;
}

.contact-page .wpcf7-form-control-wrap {
  display: block;
}

.contact-page .mseem-cf7-control {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  color: #183653;
  font: inherit;
  font-size: 16px;
  line-height: 1.45;
  background: #fff;
  border: 1px solid #b9c9d8;
  border-radius: 4px;
  box-shadow: none;
}

.contact-page select.mseem-cf7-control {
  appearance: auto;
}

.contact-page textarea.mseem-cf7-textarea {
  min-height: 180px;
  resize: vertical;
}

.contact-page .mseem-cf7-control:focus-visible,
.contact-page .mseem-cf7-consent input:focus-visible,
.contact-page .mseem-cf7-submit:focus-visible {
  outline: 3px solid rgba(35, 114, 187, 0.35);
  outline-offset: 2px;
  border-color: #1763ac;
}

.contact-page .wpcf7-not-valid-tip {
  margin-top: 7px;
  color: #b3261e;
  font-size: 13px;
  line-height: 1.5;
}

.contact-page .mseem-cf7-control.wpcf7-not-valid {
  border-color: #b3261e;
}

.mseem-cf7-consent {
  padding-top: 3px;
  font-size: 15px;
  line-height: 1.7;
}

.mseem-cf7-consent .wpcf7-list-item {
  margin: 0;
}

.mseem-cf7-consent input {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  vertical-align: -3px;
}

.mseem-cf7-consent a {
  color: #0c5da8;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact-page .mseem-cf7-sales-notice {
  margin: 0 0 12px;
  color: #183653;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.contact-page .mseem-cf7-honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.mseem-cf7-actions {
  margin-top: 4px;
  text-align: center;
}

.contact-page .mseem-cf7-actions > p {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
}

.contact-page .mseem-cf7-actions .wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: min(calc(50% + 172px), calc(100% - 24px));
  margin: 0;
  transform: translateY(-50%);
}

.contact-page .mseem-cf7-submit {
  min-width: min(100%, 320px);
  min-height: 52px;
  padding: 13px 26px;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  background: #062b59;
  border: 1px solid #062b59;
  border-radius: 4px;
  transition: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.contact-page .mseem-cf7-submit:hover {
  background: #0c5da8;
  border-color: #0c5da8;
}

.contact-page .mseem-cf7-submit:disabled,
.contact-page .wpcf7 form.submitting .mseem-cf7-submit {
  cursor: wait;
  opacity: 0.6;
}

.contact-page .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 13px 15px;
  font-size: 14px;
  line-height: 1.6;
  border-radius: 4px;
}

main.news-single-page .news-single-section {
  padding-block: clamp(64px, 7vw, 104px);
  background-color: #f4f8fc;
  background-image:
    linear-gradient(rgba(37, 99, 168, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37, 99, 168, 0.035) 1px, transparent 1px);
  background-size: 44px 44px;
}

main.news-single-page .news-single-hero__label {
  max-width: 620px;
  margin: 0;
  color: #0f2a44;
  font-size: 56px;
  font-weight: 700;
  line-height: 1.2;
}

main.news-single-page .news-single-shell {
  width: min(100%, 1104px);
  padding-inline: 32px;
}

main.news-single-page .news-single-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin: 0 0 24px;
  color: #63788d;
  font-size: 13px;
  line-height: 1.6;
}

main.news-single-page .news-single-breadcrumb a {
  color: #325b82;
  text-decoration: none;
}

main.news-single-page .news-single-breadcrumb a:hover,
main.news-single-page .news-single-breadcrumb a:focus-visible {
  color: #0e64b7;
  text-decoration: underline;
  text-underline-offset: 3px;
}

main.news-single-page .news-single-breadcrumb [aria-current="page"] {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

main.news-single-page .news-single-article {
  width: 100%;
  margin-inline: auto;
  padding: clamp(40px, 5vw, 72px);
  color: #183653;
  background: #fff;
  border: 1px solid rgba(37, 99, 168, 0.16);
  border-top: 3px solid #2563a8;
  border-radius: 6px;
  box-shadow: 0 20px 48px rgba(18, 69, 111, 0.09);
}

main.news-single-page .news-single-article__header {
  padding-bottom: clamp(28px, 4vw, 40px);
  margin-bottom: clamp(32px, 4vw, 44px);
  border-bottom: 1px solid rgba(37, 99, 168, 0.18);
}

main.news-single-page .news-single-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
  margin-bottom: 18px;
}

main.news-single-page .news-single-meta time {
  color: #476884;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

main.news-single-page .news-single-meta time::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 2px;
  margin-right: 11px;
  vertical-align: middle;
  background: #1686c5;
}

main.news-single-page .news-single-category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  min-height: 28px;
  padding: 4px 12px;
  color: #315f8f;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  background: #f4f8fd;
  border: 1px solid #a9c4e0;
  border-radius: 3px;
}

main.news-single-page .news-single-category--green {
  color: #2f7650;
  background: #f1faf5;
  border-color: #9fcfb4;
}

main.news-single-page .news-single-category--amber {
  color: #9b6114;
  background: #fff9ed;
  border-color: #e7c88b;
}

main.news-single-page .news-single-article__header h1 {
  max-width: 760px;
  margin: 0;
  color: #062244;
  font-size: clamp(30px, 3.4vw, 44px);
  font-weight: 700;
  line-height: 1.45;
}

main.news-single-page .news-single-thumbnail {
  margin: 0 0 clamp(32px, 4vw, 44px);
  overflow: hidden;
  border-radius: 6px;
}

main.news-single-page .news-single-thumbnail img {
  display: block;
  width: 100%;
  height: auto;
}

main.news-single-page .news-single-content {
  width: min(100%, 760px);
  margin-inline: auto;
  color: #294965;
  font-size: 16px;
  line-height: 2;
}

main.news-single-page .news-single-content > * {
  max-width: 100%;
}

main.news-single-page .news-single-content > *:first-child {
  margin-top: 0;
}

main.news-single-page .news-single-content > *:last-child {
  margin-bottom: 0;
}

main.news-single-page .news-single-content p {
  margin: 0 0 1.6em;
}

main.news-single-page .news-single-content h2,
main.news-single-page .news-single-content h3,
main.news-single-page .news-single-content h4 {
  color: #062244;
  font-weight: 700;
}

main.news-single-page .news-single-content h2 {
  padding-left: 16px;
  margin: 2.3em 0 0.9em;
  font-size: 28px;
  line-height: 1.55;
  border-left: 4px solid #c88318;
}

main.news-single-page .news-single-content h3 {
  padding-bottom: 10px;
  margin: 2em 0 0.8em;
  font-size: 22px;
  line-height: 1.55;
  border-bottom: 1px solid rgba(37, 99, 168, 0.2);
}

main.news-single-page .news-single-content h4 {
  margin: 1.8em 0 0.7em;
  font-size: 18px;
  line-height: 1.6;
}

main.news-single-page .news-single-content ul,
main.news-single-page .news-single-content ol {
  margin: 1.5em 0;
  padding-left: 1.6em;
}

main.news-single-page .news-single-content li + li {
  margin-top: 0.55em;
}

main.news-single-page .news-single-content a {
  color: #0e64b7;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

main.news-single-page .news-single-content blockquote {
  margin: 2em 0;
  padding: 20px 24px;
  color: #31536f;
  background: #f2f7fb;
  border-left: 4px solid #2563a8;
}

main.news-single-page .news-single-content blockquote > *:last-child {
  margin-bottom: 0;
}

main.news-single-page .news-single-content .wp-block-table,
main.news-single-page .news-single-content > table {
  display: block;
  max-width: 100%;
  margin: 2em 0;
  overflow-x: auto;
}

main.news-single-page .news-single-content table {
  width: 100%;
  min-width: 540px;
  border-spacing: 0;
  border-collapse: collapse;
}

main.news-single-page .news-single-content th,
main.news-single-page .news-single-content td {
  padding: 13px 15px;
  text-align: left;
  border: 1px solid #d8e3ed;
}

main.news-single-page .news-single-content th {
  color: #163d62;
  background: #edf4fa;
}

main.news-single-page .news-single-content figure {
  margin: 2em 0;
}

main.news-single-page .news-single-content img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

main.news-single-page .news-single-article__footer {
  margin-top: clamp(40px, 6vw, 64px);
  padding-top: clamp(28px, 4vw, 40px);
  border-top: 1px solid rgba(37, 99, 168, 0.18);
}

main.news-single-page .news-single-post-navigation {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 32px;
}

main.news-single-page .news-single-post-navigation__item {
  min-width: 0;
}

main.news-single-page .news-single-post-navigation__item--next {
  text-align: right;
}

main.news-single-page .news-single-post-navigation__item span {
  display: block;
  margin-bottom: 6px;
  color: #72879a;
  font-size: 12px;
  font-weight: 700;
}

main.news-single-page .news-single-post-navigation__item a {
  color: #173f66;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: none;
}

main.news-single-page .news-single-post-navigation__item a:hover,
main.news-single-page .news-single-post-navigation__item a:focus-visible {
  color: #0e64b7;
  text-decoration: underline;
  text-underline-offset: 3px;
}

main.news-single-page .news-single-back-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 240px;
  min-height: 52px;
  padding: 12px 24px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  background: #082e5b;
  border: 1px solid #082e5b;
  border-radius: 4px;
  transition: color 0.2s ease, background-color 0.2s ease;
}

main.news-single-page .news-single-back-link:hover,
main.news-single-page .news-single-back-link:focus-visible {
  color: #082e5b;
  background: #fff;
}

main.news-single-page .news-single-back-link:focus-visible {
  outline: 3px solid rgba(37, 99, 168, 0.3);
  outline-offset: 3px;
}

.error-404 .case-hero {
  min-height: 500px;
}

.error-404 .case-hero .container {
  display: grid;
  align-content: center;
  min-height: inherit;
  padding-block: 48px;
}

@media (max-width: 640px) {
  .contact-form-frame {
    padding: 46px 0 calc(116px + env(safe-area-inset-bottom, 0px));
  }

  .contact-placeholder {
    padding: 26px 20px;
  }

  .contact-placeholder p {
    font-size: 15px;
    line-height: 1.8;
  }

  main.news-single-page .news-single-section {
    padding: 38px 0 58px;
    background-size: 32px 32px;
  }

  main.news-single-page .news-single-hero__label {
    color: #fff;
    font-size: 24px;
    line-height: 1.3;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  main.news-single-page .news-single-shell {
    padding-inline: 16px;
  }

  main.news-single-page .news-single-breadcrumb {
    gap: 7px;
    margin-bottom: 18px;
    font-size: 12px;
  }

  main.news-single-page .news-single-article {
    padding: 28px 20px 32px;
  }

  main.news-single-page .news-single-article__header {
    padding-bottom: 24px;
    margin-bottom: 28px;
  }

  main.news-single-page .news-single-meta {
    gap: 10px 12px;
    margin-bottom: 14px;
  }

  main.news-single-page .news-single-meta time {
    font-size: 13px;
  }

  main.news-single-page .news-single-meta time::before {
    width: 22px;
    margin-right: 8px;
  }

  main.news-single-page .news-single-category {
    min-width: 76px;
    min-height: 26px;
    padding-inline: 10px;
    font-size: 11px;
  }

  main.news-single-page .news-single-article__header h1 {
    font-size: 27px;
    line-height: 1.5;
  }

  main.news-single-page .news-single-content {
    font-size: 15px;
    line-height: 1.9;
  }

  main.news-single-page .news-single-content h2 {
    padding-left: 12px;
    font-size: 22px;
  }

  main.news-single-page .news-single-content h3 {
    font-size: 19px;
  }

  main.news-single-page .news-single-content h4 {
    font-size: 17px;
  }

  main.news-single-page .news-single-content blockquote {
    padding: 17px 18px;
  }

  main.news-single-page .news-single-content > table {
    display: table;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    table-layout: fixed;
    overflow-x: visible;
  }

  main.news-single-page .news-single-content > table th,
  main.news-single-page .news-single-content > table td {
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
  }

  main.news-single-page .news-single-post-navigation {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-bottom: 26px;
  }

  main.news-single-page .news-single-post-navigation__item--next {
    text-align: left;
  }

  main.news-single-page .news-single-back-link {
    width: 100%;
    min-width: 0;
  }

  .mseem-contact-form-shell {
    padding: 26px 20px;
  }

  .mseem-contact-form-heading {
    padding-bottom: 22px;
    margin-bottom: 24px;
  }

  .mseem-contact-form-heading > p:last-child {
    font-size: 15px;
  }

  .mseem-cf7-form {
    grid-template-columns: 1fr;
    gap: 21px;
  }

  .mseem-cf7-field--full,
  .mseem-cf7-consent,
  .mseem-cf7-actions {
    grid-column: auto;
  }

  .contact-page .mseem-cf7-control {
    font-size: 16px;
  }

  .contact-page textarea.mseem-cf7-textarea {
    min-height: 160px;
  }

  .mseem-cf7-actions {
    text-align: stretch;
  }

  .contact-page .mseem-cf7-submit {
    width: 100%;
  }

  .error-404 .case-hero {
    min-height: 250px;
  }

  .error-404 .case-hero .container {
    padding-block: 28px;
  }
}

/* Approved common footer redesign (local-only integration, 2026-07-20) */
.site-footer {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin: 0;
  padding: 82px max(32px, calc((100vw - 1120px) / 2)) 30px;
  color: #ffffff;
  background-color: #03142d;
  background-image:
    linear-gradient(90deg, rgba(3, 18, 40, 0.92) 0%, rgba(5, 25, 54, 0.82) 48%, rgba(4, 20, 44, 0.72) 100%),
    url("../images/footer/footer-bg-pc.png");
  background-image:
    linear-gradient(90deg, rgba(3, 18, 40, 0.92) 0%, rgba(5, 25, 54, 0.82) 48%, rgba(4, 20, 44, 0.72) 100%),
    image-set(
      url("../images/footer/footer-bg-pc.webp") type("image/webp"),
      url("../images/footer/footer-bg-pc.png") type("image/png")
    );
  background-size: cover;
  background-position: center center;
  isolation: isolate;
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 14% 54%, rgba(47, 133, 255, 0.2), transparent 34%),
    linear-gradient(180deg, rgba(1, 8, 22, 0.08), rgba(1, 8, 22, 0.42));
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(240px, 0.92fr) minmax(360px, 1.24fr) minmax(260px, 0.84fr);
  gap: clamp(42px, 5vw, 72px);
  align-items: start;
  width: min(1120px, 100%);
  margin: 0 auto;
}

.footer-brand,
.footer-contact,
.footer-nav {
  min-width: 0;
}

.footer-catch,
.footer-about,
.footer-contact-title,
.footer-contact-text,
.footer-copyright {
  margin: 0;
}

.footer-logo-link {
  display: inline-block;
  line-height: 0;
}

.site-logo--footer {
  width: 220px;
  max-width: 100%;
  height: auto;
}

.footer-accent {
  display: block;
  width: 46px;
  height: 3px;
  margin: 23px 0 22px;
  border-radius: 999px;
  background: linear-gradient(90deg, #d9a441, rgba(240, 197, 104, 0.2));
}

.footer-catch {
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.65;
}

.footer-about {
  margin-top: 18px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 14px;
  font-weight: 500;
  line-height: 2;
  overflow-wrap: anywhere;
}

.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(92px, 1fr));
  gap: 18px 30px;
  padding: 4px 0;
}

.footer-nav a {
  position: relative;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: rgba(255, 255, 255, 0.9);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}

.footer-nav a::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-right: 12px;
  border-top: 2px solid #d9a441;
  border-right: 2px solid #d9a441;
  transform: rotate(45deg);
  opacity: 0.9;
}

.footer-nav a:hover {
  color: #ffffff;
  transform: translateX(4px);
}

.footer-contact {
  justify-self: end;
  width: min(100%, 292px);
}

.footer-contact-title {
  color: #ffffff;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.55;
}

.footer-contact-text {
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.footer-button {
  display: inline-flex;
  min-height: 48px;
  width: 100%;
  margin-top: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: linear-gradient(135deg, #f0c568, #d9a441);
  color: #061b3a;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.footer-button::after {
  content: "";
  width: 8px;
  height: 8px;
  margin-left: 14px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

.footer-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 42px rgba(0, 0, 0, 0.34);
}

.footer-bottom {
  display: flex;
  gap: 28px;
  align-items: center;
  justify-content: space-between;
  width: min(1120px, 100%);
  margin: 74px auto 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.66);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.6;
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 26px;
  align-items: center;
  justify-content: flex-end;
}

.footer-legal span,
.footer-legal a {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
}

.footer-legal a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-legal a:hover {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.footer-legal a:focus-visible {
  outline: 3px solid rgba(240, 197, 104, 0.95);
  outline-offset: 4px;
}

.footer-nav a:focus-visible,
.footer-button:focus-visible,
.footer-legal a:focus-visible {
  outline: 3px solid rgba(240, 197, 104, 0.95);
  outline-offset: 4px;
}

@media (max-width: 900px) {
  .site-footer {
    padding: 70px 20px 28px;
  }

  .footer-main {
    grid-template-columns: 1fr;
    gap: 42px;
    width: min(680px, 100%);
  }

  .footer-contact {
    justify-self: stretch;
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 640px) {
  .site-footer {
    min-height: 0;
    padding: 58px 20px 32px;
    background-image:
      linear-gradient(180deg, rgba(3, 18, 40, 0.88) 0%, rgba(4, 20, 44, 0.76) 52%, rgba(2, 12, 30, 0.9) 100%),
      url("../images/footer/footer-bg-sp.png");
    background-image:
      linear-gradient(180deg, rgba(3, 18, 40, 0.88) 0%, rgba(4, 20, 44, 0.76) 52%, rgba(2, 12, 30, 0.9) 100%),
      image-set(
        url("../images/footer/footer-bg-sp.webp") type("image/webp"),
        url("../images/footer/footer-bg-sp.png") type("image/png")
      );
    background-position: center center;
  }

  .site-logo--footer {
    width: 190px;
  }

  .footer-accent {
    margin: 20px 0 20px;
  }

  .footer-catch {
    font-size: 17px;
    overflow-wrap: anywhere;
  }

  .footer-about {
    font-size: 14px;
    line-height: 1.9;
  }

  .footer-about br {
    display: none;
  }

  .footer-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
  }

  .footer-nav a {
    min-height: 46px;
    padding: 0 2px;
    font-size: 14px;
  }

  .footer-contact-title {
    font-size: 19px;
  }

  .footer-button {
    min-height: 52px;
  }

  .footer-bottom {
    display: grid;
    gap: 12px;
    justify-items: start;
    margin-top: 46px;
    padding-top: 22px;
  }

  .footer-legal {
    justify-content: flex-start;
    gap: 8px 20px;
  }
}
/* End approved common footer redesign */
/* local-typography-normalization-20260721: start */
.hero-unified.top-hero-switch,
.service-hero,
.case-hero,
.page-hero.company-hero {
  min-height: 500px;
}

.hero-unified.top-hero-switch .eyebrow,
.service-hero .eyebrow,
.case-hero .case-hero__eyebrow,
.page-hero.company-hero .case-hero__eyebrow {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.hero-unified.top-hero-switch .hero-title,
.service-hero h1,
.case-hero h1,
.page-hero.company-hero h1,
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero h1 {
  font-size: 56px;
  font-weight: 700;
  line-height: 1.2;
}

.hero-unified.top-hero-switch .lead,
.service-hero .lead,
.case-hero .case-hero__lead,
.page-hero.company-hero .case-hero__lead,
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__lead {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

main:not(.news-list-page):not(.privacy-page) .section-heading > .eyebrow,
main:not(.news-list-page):not(.privacy-page) .section-heading__eyebrow,
main:not(.news-list-page):not(.privacy-page) .case-category-policy__eyebrow,
main:not(.news-list-page):not(.privacy-page) .case-example-cards__eyebrow,
main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__eyebrow,
main:not(.news-list-page):not(.privacy-page) .case-faq-cta-section__eyebrow,
main:not(.news-list-page):not(.privacy-page) .company-section .eyebrow,
main:not(.news-list-page):not(.privacy-page) .sitemap-section .eyebrow {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

main:not(.news-list-page):not(.privacy-page) .section-heading h2,
main:not(.news-list-page):not(.privacy-page) .section-heading h1,
main:not(.news-list-page):not(.privacy-page) .case-category-policy__heading h2,
main:not(.news-list-page):not(.privacy-page) .case-example-cards__heading h2,
main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__heading h2,
main:not(.news-list-page):not(.privacy-page) .case-faq-cta-section__heading h2,
main:not(.news-list-page):not(.privacy-page) .company-section h2,
main:not(.news-list-page):not(.privacy-page) .sitemap-section h2 {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.35;
}

main:not(.news-list-page):not(.privacy-page) .section-heading p:not(.section-heading__eyebrow):not(.eyebrow),
main:not(.news-list-page):not(.privacy-page) .case-category-policy__lead,
main:not(.news-list-page):not(.privacy-page) .case-example-cards__lead,
main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__lead,
main:not(.news-list-page):not(.privacy-page) .case-faq-cta-section__lead,
main:not(.news-list-page):not(.privacy-page) .company-section__lead,
main:not(.news-list-page):not(.privacy-page) .sitemap-lead {
  font-size: 17px;
  line-height: 1.8;
}

main:not(.news-list-page):not(.privacy-page) .top-faq-card h3,
main:not(.news-list-page):not(.privacy-page) .service-situation-card h3,
main:not(.news-list-page):not(.privacy-page) .support-style-card h3,
main:not(.news-list-page):not(.privacy-page) .case-category-policy__card h3,
main:not(.news-list-page):not(.privacy-page) .case-example-card h3,
main:not(.news-list-page):not(.privacy-page) .case-process-flow-step h3,
main:not(.news-list-page):not(.privacy-page) .personality-card h2,
main:not(.news-list-page):not(.privacy-page) .work-card h2,
main:not(.news-list-page):not(.privacy-page) .sitemap-card h3 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.45;
}

@media (max-width: 640px) {
  .hero-unified.top-hero-switch,
  .service-hero,
  .case-hero,
  .page-hero.company-hero {
    min-height: 250px;
  }

  .hero-unified.top-hero-switch .eyebrow,
  .service-hero .eyebrow,
  .case-hero .case-hero__eyebrow,
  .page-hero.company-hero .case-hero__eyebrow {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.12em;
  }

  .hero-unified.top-hero-switch .hero-title,
  .service-hero h1,
  .case-hero h1,
  .page-hero.company-hero h1,
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero h1 {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
  }

  .hero-unified.top-hero-switch .lead,
  .service-hero .lead,
  .case-hero .case-hero__lead,
  .page-hero.company-hero .case-hero__lead,
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__lead {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.7;
  }

  main:not(.news-list-page):not(.privacy-page) .section-heading > .eyebrow,
  main:not(.news-list-page):not(.privacy-page) .section-heading__eyebrow,
  main:not(.news-list-page):not(.privacy-page) .case-category-policy__eyebrow,
  main:not(.news-list-page):not(.privacy-page) .case-example-cards__eyebrow,
  main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__eyebrow,
  main:not(.news-list-page):not(.privacy-page) .case-faq-cta-section__eyebrow,
  main:not(.news-list-page):not(.privacy-page) .company-section .eyebrow,
  main:not(.news-list-page):not(.privacy-page) .sitemap-section .eyebrow {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
  }

  main:not(.news-list-page):not(.privacy-page) .section-heading h2,
  main:not(.news-list-page):not(.privacy-page) .section-heading h1,
  main:not(.news-list-page):not(.privacy-page) .case-category-policy__heading h2,
  main:not(.news-list-page):not(.privacy-page) .case-example-cards__heading h2,
  main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__heading h2,
  main:not(.news-list-page):not(.privacy-page) .case-faq-cta-section__heading h2,
  main:not(.news-list-page):not(.privacy-page) .company-section h2,
  main:not(.news-list-page):not(.privacy-page) .sitemap-section h2 {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.4;
  }

  main:not(.news-list-page):not(.privacy-page) .section-heading p:not(.section-heading__eyebrow):not(.eyebrow),
  main:not(.news-list-page):not(.privacy-page) .case-category-policy__lead,
  main:not(.news-list-page):not(.privacy-page) .case-example-cards__lead,
  main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__lead,
  main:not(.news-list-page):not(.privacy-page) .case-faq-cta-section__lead,
  main:not(.news-list-page):not(.privacy-page) .company-section__lead,
  main:not(.news-list-page):not(.privacy-page) .sitemap-lead {
    font-size: 15px;
    line-height: 1.8;
  }

  main:not(.news-list-page):not(.privacy-page) .top-faq-card h3,
  main:not(.news-list-page):not(.privacy-page) .service-situation-card h3,
  main:not(.news-list-page):not(.privacy-page) .support-style-card h3,
  main:not(.news-list-page):not(.privacy-page) .case-category-policy__card h3,
  main:not(.news-list-page):not(.privacy-page) .case-example-card h3,
  main:not(.news-list-page):not(.privacy-page) .case-process-flow-step h3,
  main:not(.news-list-page):not(.privacy-page) .personality-card h2,
  main:not(.news-list-page):not(.privacy-page) .work-card h2,
  main:not(.news-list-page):not(.privacy-page) .sitemap-card h3 {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
  }

}
/* local-typography-normalization-20260721: end */
/* local-typography-normalization-20260721-specificity: start */
.hero-unified.top-hero-switch .eyebrow,
main.home-page .hero-unified.top-hero-switch .eyebrow {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.hero-unified.top-hero-switch .hero-title,
.hero-unified.top-hero-switch .hero-title-line,
main.home-page .hero-unified.top-hero-switch .hero-title,
main.home-page .hero-unified.top-hero-switch .hero-title-line {
  font-size: 56px;
  font-weight: 700;
  line-height: 1.2;
}

.hero-unified.top-hero-switch .lead,
main.home-page .hero-unified.top-hero-switch .lead {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

.service-hero .eyebrow,
body .service-hero .eyebrow {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.service-hero h1,
.service-hero .service-hero-title-line,
body .service-hero h1,
body .service-hero .service-hero-title-line {
  font-size: 56px;
  font-weight: 700;
  line-height: 1.2;
}

.service-hero .lead,
.service-hero .lead span,
body .service-hero .lead,
body .service-hero .lead span {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

.case-hero .case-hero__eyebrow,
body .case-hero .case-hero__eyebrow,
main.news-list-page .news-hero .case-hero__eyebrow,
body:has(main.news-list-page) main.news-list-page .news-hero .case-hero__eyebrow,
.page-hero.company-hero .case-hero__eyebrow {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.case-hero h1,
body .case-hero h1,
main.news-list-page .news-hero.case-hero h1,
body:has(main.news-list-page) main.news-list-page .news-hero.case-hero h1,
.page-hero.company-hero h1,
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero h1 {
  font-size: 56px;
  font-weight: 700;
  line-height: 1.2;
}

.case-hero .case-hero__lead,
body .case-hero .case-hero__lead,
main.news-list-page .news-hero .case-hero__lead,
body:has(main.news-list-page) main.news-list-page .news-hero .case-hero__lead,
.page-hero.company-hero .case-hero__lead,
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__lead {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

@media (max-width: 640px) {
  .hero-unified.top-hero-switch .eyebrow,
  main.home-page .hero-unified.top-hero-switch .eyebrow,
  .service-hero .eyebrow,
  body .service-hero .eyebrow,
  .case-hero .case-hero__eyebrow,
  body .case-hero .case-hero__eyebrow,
  main.news-list-page .news-hero .case-hero__eyebrow,
  body:has(main.news-list-page) main.news-list-page .news-hero .case-hero__eyebrow,
  .page-hero.company-hero .case-hero__eyebrow {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.12em;
  }

  .hero-unified.top-hero-switch .hero-title,
  .hero-unified.top-hero-switch .hero-title-line,
  main.home-page .hero-unified.top-hero-switch .hero-title,
  main.home-page .hero-unified.top-hero-switch .hero-title-line,
  .service-hero h1,
  .service-hero .service-hero-title-line,
  body .service-hero h1,
  body .service-hero .service-hero-title-line,
  .case-hero h1,
  body .case-hero h1,
  main.news-list-page .news-hero.case-hero h1,
  body:has(main.news-list-page) main.news-list-page .news-hero.case-hero h1,
  .page-hero.company-hero h1,
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero h1 {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
  }

  .hero-unified.top-hero-switch .lead,
  main.home-page .hero-unified.top-hero-switch .lead,
  .service-hero .lead,
  .service-hero .lead span,
  body .service-hero .lead,
  body .service-hero .lead span,
  .case-hero .case-hero__lead,
  body .case-hero .case-hero__lead,
  main.news-list-page .news-hero .case-hero__lead,
  body:has(main.news-list-page) main.news-list-page .news-hero .case-hero__lead,
  .page-hero.company-hero .case-hero__lead,
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--hero .case-hero__lead {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.7;
  }
}
/* local-typography-normalization-20260721-specificity: end */
/* local-typography-normalization-20260721-section-specific: start */
main:not(.news-list-page):not(.privacy-page) #case-category-policy-title,
main:not(.news-list-page):not(.privacy-page) .case-example-cards__header h2,
main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__heading h2,
main:not(.news-list-page):not(.privacy-page) #case-faq-cta-title,
main.recruit-integrated-page #recruit-work-title,
main.recruit-integrated-page #skills-title,
main.recruit-integrated-page #day-flow-title,
main.recruit-integrated-page #personality-title,
main.recruit-integrated-page #anxiety-title,
main:not(.news-list-page):not(.privacy-page) .company-section .section-heading h2,
main:not(.news-list-page):not(.privacy-page) .company-access-section h2,
main:not(.news-list-page):not(.privacy-page) .company-related-section .section-heading h2,
main:not(.news-list-page):not(.privacy-page) .sitemap-content-section .section-heading h2 {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

main.recruit-integrated-page .recruit-work-card-title h3,
main.recruit-integrated-page .recruit-card-points h3,
main.recruit-integrated-page .skill-card h3,
main.recruit-integrated-page .personality-card h3,
main.recruit-integrated-page .recruit-work-banner-copy h3,
main.recruit-integrated-page .work-style-banner h3,
main:not(.news-list-page):not(.privacy-page) .case-policy-card h3,
main:not(.news-list-page):not(.privacy-page) .case-example-card h3,
main:not(.news-list-page):not(.privacy-page) .case-example-card-v2 h3,
main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__content h3,
main:not(.news-list-page):not(.privacy-page) .sitemap-card h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0;
}

main.recruit-integrated-page .recruit-work-card-title h3,
main.recruit-integrated-page .recruit-card-points h3,
main.recruit-integrated-page .skill-card h3,
main.recruit-integrated-page .personality-card h3,
main.recruit-integrated-page .recruit-work-banner-copy h3,
main.recruit-integrated-page .work-style-banner h3 {
  color: inherit;
}

@media (max-width: 640px) {
  main:not(.news-list-page):not(.privacy-page) #case-category-policy-title,
  main:not(.news-list-page):not(.privacy-page) .case-example-cards__header h2,
  main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__heading h2,
  main:not(.news-list-page):not(.privacy-page) #case-faq-cta-title,
  main.recruit-integrated-page #recruit-work-title,
  main.recruit-integrated-page #skills-title,
  main.recruit-integrated-page #day-flow-title,
  main.recruit-integrated-page #personality-title,
  main.recruit-integrated-page #anxiety-title,
  main:not(.news-list-page):not(.privacy-page) .company-section .section-heading h2,
  main:not(.news-list-page):not(.privacy-page) .company-access-section h2,
  main:not(.news-list-page):not(.privacy-page) .company-related-section .section-heading h2,
  main:not(.news-list-page):not(.privacy-page) .sitemap-content-section .section-heading h2 {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
  }

  main.recruit-integrated-page .recruit-work-card-title h3,
  main.recruit-integrated-page .recruit-card-points h3,
  main.recruit-integrated-page .skill-card h3,
  main.recruit-integrated-page .personality-card h3,
  main.recruit-integrated-page .recruit-work-banner-copy h3,
  main.recruit-integrated-page .work-style-banner h3,
  main:not(.news-list-page):not(.privacy-page) .case-policy-card h3,
  main:not(.news-list-page):not(.privacy-page) .case-example-card h3,
  main:not(.news-list-page):not(.privacy-page) .case-example-card-v2 h3,
  main:not(.news-list-page):not(.privacy-page) .case-process-flow-section__content h3,
  main:not(.news-list-page):not(.privacy-page) .sitemap-card h3 {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
  }
}
/* local-typography-normalization-20260721-section-specific: end */
/* local-typography-normalization-20260721-recruit-specificity: start */
body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work #recruit-work-title {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

@media (max-width: 640px) {
  body:has(main.recruit-integrated-page) main.recruit-integrated-page .integrated-scope--work #recruit-work-title {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
  }
}
/* local-typography-normalization-20260721-recruit-specificity: end */

/* Case example card number alignment */
.case-example-card-v2__number {
  display: grid;
  place-items: center;
  padding: 0;
  text-align: center;
  transform: translate(-8px, -4px);
}

@media (max-width: 760px) {
  .case-example-card-v2__number {
    line-height: 1;
    transform: none;
  }
}

@media (max-width: 520px) {
  body.home .top-case-more {
    justify-content: center;
  }

  body.home .top-case-more > div:first-child {
    text-align: center;
  }
}

/* News list restoration from the pre-WordPress static layout */
main.news-list-page .news-index-section {
  padding-block: 34px;
}

main.news-list-page .news-filter {
  margin-bottom: 24px;
}

main.news-list-page .news-filter__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}

main.news-list-page .news-filter-button {
  min-width: 92px;
  min-height: 40px;
  padding: 8px 22px;
  color: #123d6f;
  font-family: "Hiragino Sans", "Yu Gothic", "Meiryo", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  white-space: nowrap;
  background: #fff;
  border: 1px solid #d8e2ec;
  border-radius: 999px;
  cursor: pointer;
}

main.news-list-page .news-filter-button.is-active,
main.news-list-page .news-filter-button:hover,
main.news-list-page .news-filter-button:focus-visible {
  color: #fff;
  background: #002b5c;
  border-color: #002b5c;
}

main.news-list-page .news-filter-button:focus-visible {
  outline: 2px solid rgba(0, 85, 170, 0.28);
  outline-offset: 3px;
}

main.news-list-page .news-filter__select-label {
  display: none;
}

main.news-list-page .news-index-list {
  display: block;
  max-width: 1040px;
  margin-inline: auto;
  background: rgba(255, 255, 255, 0.54);
  border-top: 1px solid var(--line);
}

main.news-list-page .news-index-row {
  display: grid;
  grid-template-columns: 132px 72px 128px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 14px;
  padding: 18px 24px;
  background: transparent;
  border-bottom: 1px solid var(--line);
  box-shadow: none;
}

main.news-list-page .news-index-row[hidden] {
  display: none;
}

main.news-list-page .news-thumbnail {
  width: 120px;
  height: 80px;
  margin: 0;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.86), rgba(232, 241, 250, 0.92));
  border: 1px solid var(--line);
  border-radius: 6px;
}

main.news-list-page .news-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

main.news-list-page .news-index-row[data-category="休業案内"] .news-thumbnail img {
  padding: 20px;
  object-fit: contain;
}

main.news-list-page .news-index-row time {
  color: #2f3f50;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

main.news-list-page .news-category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 86px;
  min-height: 24px;
  padding: 3px 12px;
  color: var(--blue);
  background: #f7fbff;
  border: 1px solid #aecaec;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
}

main.news-list-page .news-category--green {
  color: #168158;
  background: #f6fffb;
  border-color: #9fdcc3;
}

main.news-list-page .news-category--amber {
  color: #ba7415;
  background: #fffaf1;
  border-color: #e8bd7a;
}

main.news-list-page .news-index-row__body h3 {
  margin: 0 0 3px;
  color: #002b5c;
  font-size: 17px;
  line-height: 1.45;
}

main.news-list-page .news-index-row__body p {
  margin: 0;
  color: #536276;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
}

main.news-list-page .news-index-arrow {
  position: relative;
  display: block;
  width: 22px;
  height: 22px;
  justify-self: end;
}

main.news-list-page .news-index-arrow::before {
  position: absolute;
  top: 50%;
  left: 9px;
  width: 9px;
  height: 9px;
  border-top: 2px solid #002b5c;
  border-right: 2px solid #002b5c;
  transform: translateY(-50%) rotate(45deg);
  content: "";
}

@media (max-width: 640px) {
  main.news-list-page .news-index-section {
    padding-block: 24px 26px;
  }

  main.news-list-page .news-filter {
    margin-bottom: 22px;
  }

  main.news-list-page .news-filter__buttons {
    gap: 10px;
    justify-content: center;
  }

  main.news-list-page .news-filter-button {
    flex: 1 1 calc(50% - 10px);
    max-width: 150px;
    min-width: 0;
    min-height: 40px;
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.01em;
  }

  main.news-list-page .news-filter__select-label {
    display: none;
  }

  main.news-list-page .news-index-list {
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
  }

  main.news-list-page .news-index-row {
    grid-template-columns: auto auto minmax(0, 1fr) 24px;
    gap: 8px 12px;
    padding: 16px;
    background: rgba(255, 255, 255, 0.9);
  }

  main.news-list-page .news-thumbnail {
    grid-column: 1 / -1;
    width: 100%;
    height: 118px;
  }

  main.news-list-page .news-index-row[data-category="休業案内"] .news-thumbnail img {
    padding: 26px;
  }

  main.news-list-page .news-index-row time {
    grid-column: 1;
    grid-row: 2;
    font-size: 12px;
  }

  main.news-list-page .news-category {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    min-width: 74px;
    min-height: 22px;
    padding: 2px 10px;
    font-size: 11px;
  }

  main.news-list-page .news-index-row__body {
    grid-column: 1 / 4;
  }

  main.news-list-page .news-index-row__body h3 {
    font-size: 14px;
  }

  main.news-list-page .news-index-row__body p {
    font-size: 12px;
  }

  main.news-list-page .news-index-arrow {
    grid-row: 2 / span 2;
    grid-column: 4;
    align-self: center;
    width: 20px;
    height: 20px;
  }
}

/* Recruit mobile Hero contrast and spacing refinement. */
@media (max-width: 640px) {
  body:has(main.recruit-integrated-page)
    main.recruit-integrated-page
    .integrated-scope--hero
    .case-hero__shade {
    background: linear-gradient(
      90deg,
      rgba(3, 24, 49, 0.88) 0%,
      rgba(3, 24, 49, 0.68) 56%,
      rgba(3, 24, 49, 0.26) 100%
    );
  }

  body:has(main.recruit-integrated-page)
    main.recruit-integrated-page
    .integrated-scope--hero
    .case-hero__eyebrow {
    margin-bottom: 4px !important;
    color: #d7eaff;
  }

  body:has(main.recruit-integrated-page)
    main.recruit-integrated-page
    .integrated-scope--hero
    .case-hero h1 {
    color: #fff;
    line-height: 29px !important;
  }

  body:has(main.recruit-integrated-page)
    main.recruit-integrated-page
    .integrated-scope--hero
    .case-hero__lead {
    margin-top: 6px !important;
    color: rgba(255, 255, 255, 0.9);
    line-height: 21px !important;
  }

  body:has(main.recruit-integrated-page)
    main.recruit-integrated-page
    .integrated-scope--hero
    .case-hero__actions {
    margin-top: 6px !important;
  }
}

/* Privacy and Sitemap light readability refinement. */
.privacy-page .privacy-content-section,
.sitemap-page .sitemap-content-section {
  padding-block: clamp(64px, 7vw, 96px);
}

.privacy-page .privacy-layout {
  width: min(calc(100% - 32px), 960px);
  margin-inline: auto;
}

.privacy-page .privacy-toc {
  margin-bottom: 48px;
  padding: 26px 28px 28px;
  border: 1px solid #d7e4ef;
  border-radius: 12px;
  background: #f7fbff;
}

.privacy-page .privacy-toc .eyebrow {
  margin-bottom: 5px;
  color: #2470ad;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.privacy-page .privacy-toc h2 {
  margin: 0 0 18px;
  color: #003568;
  font-size: 24px;
  line-height: 1.45;
}

.privacy-page .privacy-toc nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 24px;
}

.privacy-page .privacy-toc a {
  position: relative;
  padding: 4px 0 4px 16px;
  color: #40566c;
  font-size: 14px;
  line-height: 1.65;
  text-decoration: none;
}

.privacy-page .privacy-toc a::before {
  position: absolute;
  top: 0.92em;
  left: 1px;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid #1688c5;
  border-bottom: 1.5px solid #1688c5;
  transform: rotate(45deg);
  content: "";
}

.privacy-page .privacy-toc a:hover {
  color: #0068a8;
}

.privacy-page .privacy-toc a:focus-visible {
  border-radius: 4px;
  outline: 3px solid rgba(0, 137, 203, 0.3);
  outline-offset: 3px;
}

.privacy-page .privacy-policy {
  color: #34495e;
  font-size: 16px;
  line-height: 1.9;
}

.privacy-page .policy-lead {
  margin-bottom: 54px;
  padding: 24px 28px;
  border-left: 4px solid #1688c5;
  background: #f2f8fc;
}

.privacy-page .policy-lead p {
  margin: 0;
}

.privacy-page .policy-section {
  scroll-margin-top: 104px;
  padding-bottom: 48px;
  border-bottom: 1px solid #dbe5ed;
}

.privacy-page .policy-section + .policy-section {
  margin-top: 50px;
}

.privacy-page .policy-number {
  margin: 0 0 6px;
  color: #1688c5;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.privacy-page .policy-section h2 {
  position: relative;
  margin: 0 0 24px;
  padding: 0 0 13px 18px;
  color: #003568;
  font-size: 28px;
  line-height: 1.45;
}

.privacy-page .policy-section h2::before {
  position: absolute;
  top: 0.17em;
  bottom: calc(0.17em + 13px);
  left: 0;
  width: 3px;
  border-radius: 2px;
  background: #1688c5;
  content: "";
}

.privacy-page .policy-section h2::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: #d7e4ef;
  content: "";
}

.privacy-page .policy-section p {
  margin: 0;
}

.privacy-page .policy-section p + p,
.privacy-page .policy-section ul + p,
.privacy-page .policy-section .external-links + p {
  margin-top: 14px;
}

.privacy-page .policy-section ul {
  margin: 18px 0 0;
  padding-left: 1.35em;
}

.privacy-page .policy-section li {
  padding-left: 0.25em;
}

.privacy-page .policy-section li + li {
  margin-top: 7px;
}

.privacy-page .policy-section li::marker {
  color: #1688c5;
}

.privacy-page .external-links {
  display: grid;
  gap: 8px;
  margin-top: 20px;
  padding: 18px 20px;
  border: 1px solid #d7e4ef;
  border-radius: 10px;
  background: #fbfdff;
}

.privacy-page .external-links a {
  color: #0068a8;
  overflow-wrap: anywhere;
  text-underline-offset: 3px;
}

.privacy-page .external-links a:focus-visible {
  border-radius: 3px;
  outline: 3px solid rgba(0, 137, 203, 0.3);
  outline-offset: 3px;
}

.privacy-page .pending-list {
  margin: 22px 0 0;
  border-top: 1px solid #d7e4ef;
}

.privacy-page .pending-list > div {
  display: grid;
  grid-template-columns: minmax(120px, 0.28fr) minmax(0, 1fr);
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid #d7e4ef;
}

.privacy-page .pending-list dt {
  color: #003568;
  font-weight: 700;
}

.privacy-page .pending-list dd {
  margin: 0;
}

.sitemap-page .sitemap-content-section .container {
  width: min(calc(100% - 40px), 1080px);
}

.sitemap-page .sitemap-content-section .section-heading {
  max-width: 720px;
  margin-bottom: 42px;
}

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

.sitemap-page .sitemap-card {
  position: relative;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 16px;
  gap: 16px;
  align-items: center;
  min-height: 120px;
  padding: 20px 22px;
  border: 1px solid #d5e2ec;
  border-radius: 12px;
  color: #34495e;
  background: #fff;
  text-decoration: none;
  transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.sitemap-page .sitemap-card::after {
  width: 8px;
  height: 8px;
  border-top: 2px solid #1688c5;
  border-right: 2px solid #1688c5;
  transform: rotate(45deg);
  transition: transform 180ms ease;
  content: "";
}

.sitemap-page .sitemap-card__number {
  color: #1688c5;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}

.sitemap-page .sitemap-card__body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.sitemap-page .sitemap-card__body strong {
  color: #003568;
  font-size: 20px;
  line-height: 1.45;
}

.sitemap-page .sitemap-card__body small {
  color: #6b7d8f;
  font-size: 12px;
  line-height: 1.45;
}

.sitemap-page .sitemap-card__body > span {
  color: #526579;
  font-size: 14px;
  line-height: 1.7;
}

.sitemap-page .sitemap-card:hover {
  border-color: #79b8dc;
  background: #f3f9fd;
  box-shadow: 0 10px 24px rgba(15, 72, 115, 0.08);
  transform: translateY(-1px);
}

.sitemap-page .sitemap-card:hover::after {
  transform: translateX(2px) rotate(45deg);
}

.sitemap-page .sitemap-card:focus-visible {
  border-color: #1688c5;
  outline: 3px solid rgba(0, 137, 203, 0.3);
  outline-offset: 3px;
}

@media (max-width: 760px) {
  .privacy-page .privacy-content-section,
  .sitemap-page .sitemap-content-section {
    padding-block: 52px 64px;
  }

  .privacy-page .privacy-toc {
    margin-bottom: 40px;
    padding: 22px 20px 24px;
  }

  .privacy-page .privacy-toc nav {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .privacy-page .privacy-policy {
    font-size: 15px;
  }

  .privacy-page .policy-lead {
    margin-bottom: 44px;
    padding: 20px;
  }

  .privacy-page .policy-section {
    padding-bottom: 40px;
  }

  .privacy-page .policy-section + .policy-section {
    margin-top: 42px;
  }

  .privacy-page .policy-section h2 {
    margin-bottom: 20px;
    padding: 0 0 11px 14px;
    font-size: 22px;
  }

  .privacy-page .policy-section h2::before {
    bottom: calc(0.17em + 11px);
  }

  .privacy-page .pending-list > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .sitemap-page .sitemap-content-section .container {
    width: min(calc(100% - 32px), 1080px);
  }

  .sitemap-page .sitemap-content-section .section-heading {
    margin-bottom: 30px;
  }

  .sitemap-page .sitemap-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .sitemap-page .sitemap-card {
    grid-template-columns: 38px minmax(0, 1fr) 14px;
    gap: 12px;
    min-height: 100px;
    padding: 17px 18px;
  }

  .sitemap-page .sitemap-card__body strong {
    font-size: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sitemap-page .sitemap-card,
  .sitemap-page .sitemap-card::after {
    transition: none;
  }
}
