:root {
  --ink: #172033;
  --muted: #53657d;
  --blue: #005fca;
  --blue-deep: #004da8;
  --blue-soft: #dff2ff;
  --cyan: #19c3c8;
  --mint: #66d2c4;
  --green: #a7c84d;
  --pink: #ffedf5;
  --orange: #ff781c;
  --card: rgba(255, 255, 255, 0.9);
  --line: #bde4ff;
  --shadow: 0 18px 42px rgba(54, 123, 188, 0.14);
  --container: 1180px;
  --section-space: clamp(88px, 7.2vw, 112px);
  --section-space-deep: clamp(96px, 7.8vw, 124px);
  --section-space-tight: clamp(66px, 5.6vw, 86px);
  --sans: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", "MS Mincho", serif;
  /* Rounded gothic used by the official mock for the issues headings
     ("でも、こんな壁ありませんか？" / "そんな時こそ、CMOドクター。"). */
  --rounded: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Noto Sans JP", sans-serif;
  /* Typography rhythm tokens.
     Keep site-wide density consistent by starting from these values.
     Section-specific overrides may widen tracking/line-height for mock fidelity,
     but do not shrink text merely to make a layout fit. */
  --tracking-body: 0.022em;
  --tracking-ui: 0.028em;
  --tracking-strong: 0.038em;
  --tracking-display: 0.056em;
  --tracking-eyebrow: 0.14em;
}

/* Strengths SP final reconstruction: DOM cards, component assets only. */
@media (max-width: 760px) {
  body main .strengths-section {
    position: relative !important;
    min-height: auto !important;
    padding: 66px 0 42px !important;
    overflow: hidden !important;
    background:
      #f7fcff url("../img/strength-bg-sp-composed-2x.png") center top / 100% 100% no-repeat !important;
  }

  body main .strengths-section::before,
  body main .strengths-section::after {
    display: none !important;
  }

  body main .strengths-section > .strength-bg.strength-bg {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    pointer-events: none !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .strength-wave,
  body main .strengths-section .strength-dot,
  body main .strengths-section .strength-orbit,
  body main .strengths-section .strength-halo {
    display: none !important;
  }

  body main .strengths-section .strength-spark {
    position: absolute !important;
    z-index: 1 !important;
    display: block !important;
    width: 18px !important;
    height: 22px !important;
    opacity: 0.72 !important;
    background: linear-gradient(180deg, #62cae5 0%, #0b76d9 100%) !important;
    clip-path: polygon(50% 0, 61% 38%, 100% 50%, 61% 62%, 50% 100%, 39% 62%, 0 50%, 39% 38%) !important;
  }

  body main .strengths-section .strength-spark.spark-one {
    top: 130px !important;
    left: 22px !important;
    transform: rotate(-6deg) scale(1.06) !important;
  }

  body main .strengths-section .strength-spark.spark-two {
    top: 148px !important;
    right: 35px !important;
    width: 16px !important;
    height: 20px !important;
    opacity: 0.74 !important;
    background: linear-gradient(180deg, #c5d96d 0%, #99bd42 100%) !important;
    transform: rotate(10deg) scale(0.9) !important;
  }

  body main .strengths-section .strength-spark.spark-three {
    top: 78px !important;
    left: calc(50% - 82px) !important;
    width: 10px !important;
    height: 13px !important;
    opacity: 0.58 !important;
    transform: rotate(4deg) !important;
  }

  body main .strengths-section > .container.container {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 auto !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading {
    position: relative !important;
    display: grid !important;
    justify-items: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 18px !important;
    margin: 0 auto 40px !important;
    overflow: visible !important;
    text-align: center !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading::before {
    position: absolute !important;
    top: 28px !important;
    left: 50% !important;
    display: block !important;
    width: 156px !important;
    height: 0 !important;
    content: "" !important;
    border-bottom: 2px dotted rgba(62, 176, 224, 0.58) !important;
    transform: translateX(-50%) !important;
  }

  body main .strengths-section .section-heading .section-eyebrow,
  body main .strengths-section .section-heading h2 {
    position: relative !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading .section-eyebrow {
    margin-bottom: 18px !important;
    color: #0064c9 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::before,
  body main .strengths-section .section-heading .section-eyebrow::after {
    position: absolute !important;
    top: 50% !important;
    display: block !important;
    width: 12px !important;
    height: 15px !important;
    content: "" !important;
    background: linear-gradient(135deg, #54c7e1 0%, #9fc553 100%) !important;
    clip-path: polygon(50% 0, 61% 38%, 100% 50%, 61% 62%, 50% 100%, 39% 62%, 0 50%, 39% 38%) !important;
    transform: translateY(-50%) !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::before {
    left: -28px !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::after {
    right: -28px !important;
  }

  body main .strengths-section .section-heading h2 {
    display: grid !important;
    gap: 1px !important;
    color: #006bd7 !important;
    font-family: var(--serif) !important;
    font-size: 40px !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
    background: linear-gradient(98deg, #0057bd 0%, #0068cf 65%, #18b7bd 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    text-shadow: 0 8px 16px rgba(18, 113, 197, 0.08) !important;
  }

  body main .strengths-section .section-heading h2 .line {
    position: relative !important;
    display: block !important;
    width: auto !important;
    transform: none !important;
  }

  body main .strengths-section .section-heading h2::before {
    position: absolute !important;
    left: 50% !important;
    bottom: -42px !important;
    display: block !important;
    width: min(356px, 94vw) !important;
    height: 46px !important;
    content: "" !important;
    opacity: 0.98 !important;
    background: url("data:image/svg+xml,%3Csvg width='356' height='46' viewBox='0 0 356 46' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 21C31 38 76 36 117 29C153 23 177 19 216 27C261 36 314 37 344 15' stroke='%231C94E3' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='M12 21C31 38 76 36 117 29C153 23 177 19 216 27C261 36 314 37 344 15' stroke='%2325C5B9' stroke-width='2.1' stroke-linecap='round' stroke-dasharray='178 178'/%3E%3Cpath d='M13 20C4 12 5 6 15 4' stroke='%231C94E3' stroke-width='1.6' stroke-linecap='round' opacity='.72'/%3E%3Cpath d='M344 15C354 7 354 2 344 1' stroke='%2325C5B9' stroke-width='1.6' stroke-linecap='round' opacity='.72'/%3E%3Ccircle cx='178' cy='31' r='4' fill='%23F8FCFF' stroke='%2325C5B9' stroke-width='1.8'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
    transform: translateX(-50%) !important;
  }

  body main .strengths-section .section-heading h2::after {
    display: none !important;
  }

  body main .strengths-section .strength-stack {
    position: relative !important;
    display: grid !important;
    gap: 16px !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body main .strengths-section .strength-stack::before,
  body main .strengths-section .strength-stack::after {
    display: none !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: grid !important;
    grid-template-columns: 82px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 4px 10px !important;
    width: min(382px, calc(100% - 30px)) !important;
    max-width: none !important;
    min-height: 160px !important;
    aspect-ratio: auto !important;
    padding: 26px 13px 22px 22px !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    background:
      radial-gradient(ellipse at 86% 30%, rgba(196, 229, 250, 0.74) 0 39px, transparent 82px),
      radial-gradient(ellipse at 92% 76%, rgba(221, 246, 222, 0.50) 0 24px, transparent 58px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 254, 242, 0.96) 100%) !important;
    border: 1px solid rgba(177, 224, 250, 0.78) !important;
    border-radius: 22px !important;
    box-shadow:
      0 18px 30px rgba(50, 133, 194, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.92) !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body main .strengths-section .strength-card.strength-two {
    background:
      radial-gradient(ellipse at 86% 75%, rgba(202, 235, 216, 0.74) 0 36px, transparent 78px),
      radial-gradient(ellipse at 92% 28%, rgba(205, 232, 250, 0.46) 0 28px, transparent 62px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 253, 236, 0.96) 100%) !important;
  }

  body main .strengths-section .strength-card.strength-three {
    background:
      radial-gradient(ellipse at 90% 78%, rgba(205, 230, 252, 0.72) 0 40px, transparent 82px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 239, 247, 0.96) 100%) !important;
  }

  body main .strengths-section .strength-card::before,
  body main .strengths-section .strength-card::after {
    display: none !important;
  }

  body main .strengths-section .strength-card .strength-num,
  body main .strengths-section .strength-card > div,
  body main .strengths-section .strength-card .strength-art {
    position: relative !important;
    z-index: 3 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body main .strengths-section .strength-card .strength-num {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
    color: #006bd7 !important;
    font-family: var(--serif) !important;
    font-size: 58px !important;
    font-weight: 900 !important;
    line-height: 0.9 !important;
    letter-spacing: 0 !important;
    background: linear-gradient(145deg, #0061c9 0%, #26bdba 88%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    text-shadow: 0 5px 8px rgba(19, 118, 199, 0.06) !important;
  }

  body main .strengths-section .strength-card > div {
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
    align-self: start !important;
    width: 156px !important;
    padding-top: 1px !important;
  }

  body main .strengths-section .strength-card h3 {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    margin: 0 !important;
    color: #0063ca !important;
    font-size: 13.8px !important;
    font-weight: 900 !important;
    line-height: 1.58 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
  }

  body main .strengths-section .strength-card h3::after {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    display: block !important;
    width: 172px !important;
    height: 0 !important;
    margin: 9px 0 13px !important;
    content: "" !important;
    border-bottom: 2px dotted rgba(92, 188, 220, 0.68) !important;
  }

  body main .strengths-section .strength-card p {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 172px !important;
    margin: 0 !important;
    color: #1d2737 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.74 !important;
    letter-spacing: 0 !important;
  }

  body main .strengths-section .strength-card .strength-art {
    position: absolute !important;
    z-index: 2 !important;
    display: block !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    filter: saturate(1.03) drop-shadow(0 8px 11px rgba(61, 143, 206, 0.08)) !important;
    pointer-events: none !important;
  }

  body main .strengths-section .strength-one .strength-art {
    top: 18px !important;
    right: 17px !important;
    width: 142px !important;
  }

  body main .strengths-section .strength-two .strength-art {
    top: 16px !important;
    right: 14px !important;
    width: 142px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    top: 13px !important;
    right: 11px !important;
    width: 154px !important;
    transform: none !important;
  }

  body main .strengths-section .speech-bubble {
    display: none !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section .section-heading h2 {
    font-size: 38px !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    width: min(360px, calc(100% - 28px)) !important;
    min-height: 156px !important;
    padding-left: 20px !important;
  }

  body main .strengths-section .strength-card > div {
    width: 148px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 13px !important;
  }

  body main .strengths-section .strength-card h3::after,
  body main .strengths-section .strength-card p {
    width: 160px !important;
  }

  body main .strengths-section .strength-card p {
    font-size: 10.6px !important;
  }

  body main .strengths-section .strength-one .strength-art {
    width: 132px !important;
  }

  body main .strengths-section .strength-two .strength-art {
    width: 132px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    width: 144px !important;
  }
}

@media (max-width: 760px) {
  body main .strengths-section .section-heading h2 {
    color: #0061c9 !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
  }

  body main .strengths-section .section-heading h2 .line {
    color: transparent !important;
    background: linear-gradient(98deg, #0057bd 0%, #0068cf 65%, #18b7bd 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    padding-top: 21px !important;
    padding-bottom: 18px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 13.2px !important;
    line-height: 1.48 !important;
  }

  body main .strengths-section .strength-card h3::after {
    margin: 7px 0 10px !important;
  }

  body main .strengths-section .strength-card p {
    font-size: 10.4px !important;
    line-height: 1.68 !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section .strength-card h3 {
    font-size: 12.8px !important;
  }

  body main .strengths-section .strength-card p {
    font-size: 10.2px !important;
  }
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 600;
  line-height: 1.84;
  letter-spacing: var(--tracking-body);
  background:
    linear-gradient(180deg, #f5fbff 0%, #ffffff 22%, #eff9ff 62%, #ffffff 100%);
  overflow-x: hidden;
  font-feature-settings: "palt" 0;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

button {
  color: inherit;
  font: inherit;
}

.container {
  width: min(calc(100% - 48px), var(--container));
  margin-inline: auto;
}

.site-header {
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  right: 0;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  min-height: 84px;
  padding: 0 clamp(22px, 4%, 58px);
  background: rgba(245, 251, 255, 0.82);
  border-bottom: 1px solid rgba(168, 221, 255, 0.32);
  backdrop-filter: blur(18px);
}

.site-brand {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #101728;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: 0;
  white-space: nowrap;
}

.site-brand img {
  display: block;
  max-width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}

.site-brand .brand-logo-pc {
  width: 134px;
}

.site-brand .brand-logo-sp {
  display: none;
  width: 74px;
}

.brand-blue {
  color: var(--blue);
  position: relative;
  display: inline-block;
}

.brand-blue::after {
  position: absolute;
  top: -5px;
  right: -7px;
  width: 13px;
  height: 16px;
  content: "";
  background: linear-gradient(135deg, #00a9e8, #3bd3bf 56%, #a5c94d);
  clip-path: polygon(50% 0, 61% 36%, 100% 50%, 61% 64%, 50% 100%, 39% 64%, 0 50%, 39% 36%);
  filter: drop-shadow(0 2px 3px rgba(0, 122, 190, 0.18));
}

.site-nav {
  display: flex;
  justify-content: center;
  gap: clamp(22px, 3vw, 48px);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: var(--tracking-ui);
}

.site-nav a {
  position: relative;
  padding: 8px 0;
}

.site-nav a::after {
  position: absolute;
  left: 0;
  bottom: 1px;
  width: 100%;
  height: 2px;
  content: "";
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.site-nav a:hover::after,
.site-nav a:focus-visible::after {
  transform: scaleX(1);
}

.header-cta,
.primary-cta,
.orange-cta,
.outline-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 0;
  font-weight: 800;
  letter-spacing: var(--tracking-ui);
  white-space: nowrap;
}

.header-cta {
  min-height: 56px;
  position: relative;
  overflow: hidden;
  padding: 0 31px;
  color: #fff;
  background: linear-gradient(135deg, #0072dc 0%, #004aa8 100%);
  border-radius: 999px;
  box-shadow: 0 15px 28px rgba(0, 87, 185, 0.24), 0 0 0 8px rgba(0, 111, 210, 0.05);
  animation: cta-float 4.2s ease-in-out infinite;
}

.header-cta::after {
  position: absolute;
  inset: -40% auto -40% -30%;
  width: 46%;
  content: "";
  background: linear-gradient(110deg, transparent, rgba(255, 255, 255, 0.44), transparent);
  transform: skewX(-22deg);
  animation: cta-sheen 4.8s ease-in-out infinite;
}

.header-cta > * {
  position: relative;
  z-index: 1;
}

.header-cta svg,
.primary-cta svg,
.orange-cta svg,
.outline-cta svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@keyframes cta-float {
  0%, 100% {
    transform: translateY(0);
    box-shadow: 0 15px 28px rgba(0, 87, 185, 0.24), 0 0 0 8px rgba(0, 111, 210, 0.05);
  }

  50% {
    transform: translateY(-3px);
    box-shadow: 0 20px 36px rgba(0, 87, 185, 0.3), 0 0 0 10px rgba(0, 111, 210, 0.08);
  }
}

@keyframes cta-sheen {
  0%, 48% {
    left: -44%;
  }

  68%, 100% {
    left: 118%;
  }
}

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
}

.nav-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  margin: 4px auto;
  background: var(--blue);
  border-radius: 999px;
}

.hero {
  position: relative;
  padding: 132px 0 48px;
  background:
    radial-gradient(circle at 88% 12%, rgba(18, 174, 204, 0.16), transparent 22%),
    radial-gradient(circle at 76% 30%, rgba(182, 232, 255, 0.34), transparent 34%),
    linear-gradient(170deg, #f7fcff 0%, #eef9ff 52%, #ffffff 100%);
  overflow: hidden;
}

.hero .container {
  width: min(calc(100% - 176px), 1480px);
}

.hero::after,
.section::after,
.site-footer::before {
  position: absolute;
  pointer-events: none;
  content: "";
}

.hero::after {
  left: -5%;
  right: -5%;
  bottom: -70px;
  height: 150px;
  background: linear-gradient(100deg, rgba(111, 204, 236, 0.35), rgba(130, 217, 206, 0.22));
  clip-path: ellipse(58% 46% at 55% 0%);
}

.hero-bg-line {
  position: absolute;
  top: 105px;
  left: 0;
  width: 100%;
  height: 260px;
  border-top: 1px solid rgba(94, 183, 230, 0.25);
  border-radius: 50%;
  transform: rotate(-7deg) scaleX(1.2);
  opacity: 0.75;
}

.hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(560px, 0.92fr) minmax(650px, 1.08fr);
  align-items: start;
  gap: clamp(30px, 3.4vw, 58px);
}

.hero-copy,
.hero-visual {
  min-width: 0;
}

.hero-kicker {
  margin: 18px 0 16px;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: var(--tracking-strong);
}

.hero-title {
  position: relative;
  display: inline-block;
  margin: 0 0 -30px;
  line-height: 1;
  transform: translateY(-10px);
}

.hero-title img {
  width: min(620px, 100%);
  filter: drop-shadow(0 5px 8px rgba(0, 111, 210, 0.08));
}

.hero-lead {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 10px 0 22px;
  font-size: 29px;
  font-weight: 900;
  line-height: 1.58;
  letter-spacing: var(--tracking-display);
}

.hero-text {
  margin: 0 0 30px;
  font-size: 18px;
  font-weight: 650;
  line-height: 2.02;
  letter-spacing: var(--tracking-body);
}

.hero-text-line {
  display: inline;
}

.hero-text-line:first-child::after {
  content: "\A";
  white-space: pre;
}

.hero-brand-nowrap {
  white-space: nowrap;
}

.sp-break {
  display: none;
}

/* Generic SP-only / PC-only line breaks. */
.br-sp {
  display: none;
}

@media (max-width: 760px) {
  .br-sp {
    display: inline;
  }

  .br-pc {
    display: none;
  }
}

.sp-inline {
  display: none;
}

.hero-text strong,
.free-note strong,
.section-heading strong,
.issue-bottom strong,
.faq-note strong,
.flow-note strong {
  color: var(--blue);
}

.primary-cta {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) 34px;
  width: min(100%, 606px);
  max-width: 100%;
  min-height: 114px;
  padding: 18px 36px 18px 56px;
  color: #fff;
  background: linear-gradient(120deg, #0062d3 0%, #17c4bd 100%);
  border-radius: 999px;
  box-shadow: 0 18px 38px rgba(1, 117, 191, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.primary-cta:hover,
.orange-cta:hover,
.outline-cta:hover,
.header-cta:hover {
  transform: translateY(-2px);
}

.primary-cta small {
  display: block;
  margin-bottom: 5px;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.42;
  letter-spacing: var(--tracking-ui);
}

.primary-cta span:not(.cta-icon) {
  font-size: 32px;
  line-height: 1.32;
  letter-spacing: var(--tracking-strong);
  text-align: left;
}

.cta-icon {
  display: grid;
  flex: 0 0 auto;
  width: 54px;
  height: 54px;
  place-items: center;
}

/* Filled mail glyph matching the mock (white envelope on gradient / orange envelope in white circle on SP). */
.primary-cta .cta-mail {
  fill: none;
  stroke: none;
}

.primary-cta .cta-mail .cta-mail-body {
  fill: currentColor;
  stroke: none;
}

.primary-cta .cta-mail .cta-mail-flap {
  fill: none;
  stroke: var(--cta-flap, #0d6fd1);
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cta-arrow {
  margin-left: auto;
  justify-self: end;
}

@media (min-width: 761px) {
  .primary-cta .cta-icon svg {
    width: 31px;
    height: 31px;
    stroke-width: 2.35;
  }
}

.free-note {
  position: relative;
  margin: 12px 0 0 160px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: var(--tracking-ui);
}

.free-note::before {
  display: inline-grid;
  width: 17px;
  height: 17px;
  margin-right: 8px;
  color: var(--blue);
  font-size: 10px;
  font-weight: 900;
  content: "✓";
  background: transparent;
  border: 1.7px solid var(--blue);
  border-radius: 50%;
  place-items: center;
}

.hero-visual {
  position: relative;
  min-height: clamp(650px, 45vw, 704px);
  isolation: isolate;
  overflow: visible;
}

.hero-visual::before {
  position: absolute;
  z-index: -1;
  content: "";
  inset: 28px 2px 34px 8px;
  background:
    radial-gradient(circle at 15% 10%, rgba(255, 255, 255, 0.96) 0 24px, transparent 26px),
    radial-gradient(circle at 56% 70%, rgba(65, 192, 229, 0.18) 0 76px, transparent 78px),
    rgba(226, 244, 255, 0.54);
  border: 1px solid rgba(105, 193, 232, 0.28);
  border-radius: 50% 45% 48% 42%;
}

.hero-visual::after {
  position: absolute;
  right: -24px;
  bottom: 88px;
  width: 205px;
  height: 205px;
  content: "";
  background:
    radial-gradient(circle, rgba(0, 112, 216, 0.18) 1.5px, transparent 2px);
  background-size: 12px 12px;
  border: 0;
  border-radius: 50%;
  opacity: 0.55;
}

.hero-photo {
  position: absolute;
  z-index: 2;
  margin: 0;
  overflow: hidden;
  background: #fff;
  border: 9px solid rgba(255, 255, 255, 0.94);
  box-shadow:
    0 18px 34px rgba(52, 132, 190, 0.14),
    inset 0 0 0 1px rgba(255, 255, 255, 0.72);
  animation: photo-float 7.2s ease-in-out infinite;
}

.hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.018);
}

.photo-phone {
  z-index: 4;
  top: -6px;
  left: 4%;
  width: clamp(292px, 39%, 336px);
  height: clamp(292px, 39%, 336px);
  border-radius: 50% 48% 45% 52%;
}

.photo-friends {
  z-index: 4;
  top: 132px;
  right: 28px;
  width: clamp(386px, 53%, 446px);
  height: clamp(260px, 36%, 314px);
  border-radius: 28% 34% 30% 36%;
  animation-delay: -1.3s;
}

.photo-live {
  z-index: 2;
  left: 7.5%;
  bottom: 86px;
  width: clamp(356px, 48%, 408px);
  height: clamp(228px, 34%, 270px);
  border-radius: 34% 25% 30% 26%;
  animation-delay: -2.1s;
}

.photo-product {
  z-index: 4;
  right: 12%;
  bottom: 8px;
  width: clamp(274px, 38%, 318px);
  height: clamp(214px, 30%, 246px);
  border-radius: 38% 45% 44% 42%;
  animation-delay: -3s;
}

.hero-handcopy {
  position: absolute;
  z-index: 4;
  top: 14px;
  right: 11.5%;
  margin: 0;
  color: var(--blue);
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 900;
  line-height: 1.58;
  letter-spacing: var(--tracking-strong);
  transform: rotate(-7deg);
}

.hero-handcopy::after {
  display: block;
  width: 150px;
  height: 18px;
  margin: -2px auto 0;
  content: "";
  border-bottom: 4px solid #afd45c;
  border-radius: 50%;
  transform: rotate(-4deg);
}

.hero-heart {
  position: absolute;
  z-index: 3;
  right: 8%;
  top: 76px;
  width: 48px;
  height: 42px;
  background: linear-gradient(135deg, #8bdcd9, #19c6c4);
  transform: rotate(-12deg);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 46 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M23 39C7 27 0 20 0 11 0 4 5 0 11 0c5 0 9 3 12 8 3-5 7-8 13-8s10 5 10 11c0 9-7 16-23 28Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 46 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M23 39C7 27 0 20 0 11 0 4 5 0 11 0c5 0 9 3 12 8 3-5 7-8 13-8s10 5 10 11c0 9-7 16-23 28Z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  animation: soft-pulse 4.8s ease-in-out infinite;
}

.hero-orbit {
  position: absolute;
  z-index: 3;
  left: 7.2%;
  top: 288px;
  width: 52%;
  height: 224px;
  border-top: 4px solid #1da8e5;
  border-radius: 50%;
  transform: rotate(8deg);
  pointer-events: none;
}

.hero-orbit::before {
  position: absolute;
  top: -12px;
  left: 52px;
  width: 18px;
  height: 18px;
  content: "";
  background: #20c4c8;
  border-radius: 50%;
  animation: soft-pulse 4.2s ease-in-out infinite;
}

.hero-orbit::after {
  position: absolute;
  right: 32px;
  bottom: -100px;
  width: 78px;
  height: 64px;
  content: "";
  background: linear-gradient(135deg, #6bcaf3, #2caee7);
  border-radius: 65% 45% 60% 48%;
  transform: rotate(-18deg);
}

@keyframes photo-float {
  0%, 100% {
    transform: translate3d(0, 0, 0);
  }

  50% {
    transform: translate3d(0, -8px, 0);
  }
}

@keyframes soft-pulse {
  0%, 100% {
    transform: scale(1) rotate(-12deg);
  }

  50% {
    transform: scale(1.06) rotate(-10deg);
  }
}

.hero .hero-features {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 252px auto 256px auto 256px;
  gap: 24px;
  align-items: center;
  justify-content: start;
  width: min(calc(100% - 96px), 986px);
  max-width: none;
  margin: -64px auto 0 max(88px, calc((100% - 1480px) / 2));
}

.feature-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 15px;
  align-items: center;
  align-content: center;
  min-height: 98px;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(190, 231, 255, 0.65);
  border-radius: 14px;
  box-shadow:
    0 14px 32px rgba(54, 123, 188, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.feature-card h2 {
  margin: 0 0 2px;
  color: var(--blue);
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: var(--tracking-strong);
  white-space: nowrap;
}

.feature-card p {
  grid-column: 2;
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
  letter-spacing: var(--tracking-body);
}

.feature-cross {
  position: relative;
  display: block;
  width: 20px;
  height: 20px;
  color: #9ecdec;
  font-size: 0;
}

.feature-cross::before,
.feature-cross::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 19px;
  height: 1.8px;
  content: "";
  background: currentColor;
  border-radius: 999px;
}

.feature-cross::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.feature-cross::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.feature-icon,
.people-icon,
.big-line-icon,
.service-illustration,
.mini-illustration,
.flow-icon,
.sketch {
  display: inline-block;
  background: linear-gradient(135deg, #006bd7, #18c4bf);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.feature-icon {
  position: relative;
  grid-row: 1 / span 2;
  width: 56px;
  height: 56px;
  background: #fff;
  border: 1.5px solid #bfe3fa;
  border-radius: 50%;
  box-shadow: 0 7px 14px rgba(30, 147, 215, 0.1);
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

.feature-icon::before {
  position: absolute;
  inset: 22%;
  content: "";
  background: linear-gradient(135deg, #006bd7, #18c4bf);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.feature-icon::after {
  content: none;
}

.bulb-icon::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M32 8c-9.4 0-16.6 7-16.6 15.9 0 5.5 2.6 9.7 6.2 12.8 2.3 2 3.6 4.1 3.6 7h13.6c0-2.9 1.3-5 3.6-7 3.6-3.1 6.2-7.3 6.2-12.8C48.6 15 41.4 8 32 8Z'/%3E%3Crect x='26' y='47.5' width='12' height='3.4' rx='1.7'/%3E%3Crect x='27' y='53.5' width='10' height='3.4' rx='1.7'/%3E%3Cg fill='none' stroke='black' stroke-width='3.6' stroke-linecap='round'%3E%3Cpath d='M32 1v3.4'/%3E%3Cpath d='M13.5 8.5 16 11'/%3E%3Cpath d='M50.5 8.5 48 11'/%3E%3Cpath d='M7 24h3.6'/%3E%3Cpath d='M53.4 24H57'/%3E%3C/g%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M32 8c-9.4 0-16.6 7-16.6 15.9 0 5.5 2.6 9.7 6.2 12.8 2.3 2 3.6 4.1 3.6 7h13.6c0-2.9 1.3-5 3.6-7 3.6-3.1 6.2-7.3 6.2-12.8C48.6 15 41.4 8 32 8Z'/%3E%3Crect x='26' y='47.5' width='12' height='3.4' rx='1.7'/%3E%3Crect x='27' y='53.5' width='10' height='3.4' rx='1.7'/%3E%3Cg fill='none' stroke='black' stroke-width='3.6' stroke-linecap='round'%3E%3Cpath d='M32 1v3.4'/%3E%3Cpath d='M13.5 8.5 16 11'/%3E%3Cpath d='M50.5 8.5 48 11'/%3E%3Cpath d='M7 24h3.6'/%3E%3Cpath d='M53.4 24H57'/%3E%3C/g%3E%3C/svg%3E"); }
.people-icon,
.feature-icon.people-icon::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M23 29a11 11 0 1 0 0-22 11 11 0 0 0 0 22Zm18 0a9 9 0 1 0 0-18 9 9 0 0 0 0 18ZM5 58c2-13 9-21 18-21s16 8 18 21H5Zm29-2c2-9 8-15 15-15s12 6 14 15H34Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M23 29a11 11 0 1 0 0-22 11 11 0 0 0 0 22Zm18 0a9 9 0 1 0 0-18 9 9 0 0 0 0 18ZM5 58c2-13 9-21 18-21s16 8 18 21H5Zm29-2c2-9 8-15 15-15s12 6 14 15H34Z'/%3E%3C/svg%3E"); }
.feature-icon.people-icon::before {
  background: url("data:image/svg+xml,%3Csvg%20width%3D%2264%22%20height%3D%2264%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3ClinearGradient%20id%3D%22pfLeft%22%20x1%3D%2218%22%20y1%3D%2243%22%20x2%3D%2218%22%20y2%3D%2261%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%230163c7%22%2F%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%230356b4%22%2F%3E%0A%20%20%20%20%3C%2FlinearGradient%3E%0A%20%20%20%20%3ClinearGradient%20id%3D%22pfRight%22%20x1%3D%2245%22%20y1%3D%2243%22%20x2%3D%2245%22%20y2%3D%2261%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%20%20%20%20%20%20%3Cstop%20stop-color%3D%22%2323c2ce%22%2F%3E%0A%20%20%20%20%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2317b0ba%22%2F%3E%0A%20%20%20%20%3C%2FlinearGradient%3E%0A%20%20%3C%2Fdefs%3E%0A%20%20%3C%21--%20%E5%BE%8C%E5%88%97%E4%B8%AD%E5%A4%AE%20--%3E%0A%20%20%3Ccircle%20cx%3D%2232%22%20cy%3D%2211.5%22%20r%3D%2210.2%22%20fill%3D%22%230161c8%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M32%2025.5C26.5%2025.5%2023.8%2029.5%2023.2%2035.5L22.6%2047H41.4L40.8%2035.5C40.2%2029.5%2037.5%2025.5%2032%2025.5Z%22%20fill%3D%22%230f66be%22%2F%3E%0A%20%20%3C%21--%20%E5%89%8D%E5%88%97%E5%B7%A6%20--%3E%0A%20%20%3Ccircle%20cx%3D%2220%22%20cy%3D%2234.5%22%20r%3D%229.5%22%20fill%3D%22%230163c7%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222.6%22%20paint-order%3D%22stroke%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M3.5%2061V55.5Q3.5%2043.5%2018.5%2043.5Q33.5%2043.5%2033.5%2055.5V61Z%22%20fill%3D%22url%28%23pfLeft%29%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222.6%22%20paint-order%3D%22stroke%22%2F%3E%0A%20%20%3C%21--%20%E5%89%8D%E5%88%97%E5%8F%B3%20--%3E%0A%20%20%3Ccircle%20cx%3D%2244%22%20cy%3D%2234.5%22%20r%3D%229.5%22%20fill%3D%22%2321c0cc%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222.6%22%20paint-order%3D%22stroke%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M30.5%2061V55.5Q30.5%2043.5%2045.5%2043.5Q60.5%2043.5%2060.5%2055.5V61Z%22%20fill%3D%22url%28%23pfRight%29%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222.6%22%20paint-order%3D%22stroke%22%2F%3E%0A%3C%2Fsvg%3E%0A") center / contain no-repeat;
  -webkit-mask-image: none;
  mask-image: none;
}
.rocket-icon::before, .launch-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M51.5 7c-9.8 1-18.6 5-25.4 11.8l-7.6 7.6c-1.9 1.9-1.9 5 0 6.9l12.2 12.2c1.9 1.9 5 1.9 6.9 0l7.6-7.6C52 31.1 56 22.3 57 12.5c.3-3.1-2.4-5.8-5.5-5.5ZM40.5 18a5.4 5.4 0 1 1 0 10.8 5.4 5.4 0 0 1 0-10.8Z'/%3E%3Cpath d='M17.5 38.5c-3.4.8-6.3 3.4-8 7.8 4.4-1.7 7-4.6 7.8-8l.2.2Z'/%3E%3Cg fill='none' stroke='black' stroke-width='4' stroke-linecap='round'%3E%3Cpath d='M14.5 46 7 53.5'/%3E%3Cpath d='M22 52.5l-5 7'/%3E%3Cpath d='M11.5 42l-7 5'/%3E%3C/g%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M51.5 7c-9.8 1-18.6 5-25.4 11.8l-7.6 7.6c-1.9 1.9-1.9 5 0 6.9l12.2 12.2c1.9 1.9 5 1.9 6.9 0l7.6-7.6C52 31.1 56 22.3 57 12.5c.3-3.1-2.4-5.8-5.5-5.5ZM40.5 18a5.4 5.4 0 1 1 0 10.8 5.4 5.4 0 0 1 0-10.8Z'/%3E%3Cpath d='M17.5 38.5c-3.4.8-6.3 3.4-8 7.8 4.4-1.7 7-4.6 7.8-8l.2.2Z'/%3E%3Cg fill='none' stroke='black' stroke-width='4' stroke-linecap='round'%3E%3Cpath d='M14.5 46 7 53.5'/%3E%3Cpath d='M22 52.5l-5 7'/%3E%3Cpath d='M11.5 42l-7 5'/%3E%3C/g%3E%3C/svg%3E"); }

.section {
  position: relative;
  padding: var(--section-space) 0;
  overflow: hidden;
  scroll-margin-top: 92px;
}

.clients,
.contact-section,
.site-footer {
  scroll-margin-top: 92px;
}

.section-wave {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(165deg, rgba(221, 244, 255, 0.7), rgba(255, 255, 255, 0.4) 46%, rgba(230, 250, 244, 0.42)),
    radial-gradient(circle at 8% 28%, rgba(151, 216, 247, 0.2), transparent 26%);
  clip-path: ellipse(92% 48% at 52% 50%);
}

.section-heading {
  position: relative;
  z-index: 1;
  max-width: 920px;
  margin: 0 auto 48px;
  text-align: center;
}

.section-eyebrow,
.heading-small {
  margin: 0 0 10px;
  color: var(--blue);
  font-size: 15px;
  font-weight: 900;
  letter-spacing: var(--tracking-eyebrow);
}

.heading-small {
  font-size: 34px;
  font-family: var(--serif);
  letter-spacing: var(--tracking-display);
}

.section-heading h2 {
  position: relative;
  display: inline-block;
  margin: 0;
  color: var(--blue-deep);
  font-family: var(--serif);
  font-size: 46px;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: var(--tracking-display);
}

.section-heading h2 .line {
  display: inline-block;
}

.section-heading h2::after {
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: -10px;
  height: 14px;
  content: "";
  border-bottom: 3px solid transparent;
  border-image: linear-gradient(90deg, var(--blue), var(--cyan)) 1;
  border-radius: 50%;
}

.section-heading h2 span {
  color: #14aebc;
}

.section-heading p:not(.section-eyebrow):not(.heading-small) {
  margin: 26px auto 0;
  font-size: 17px;
}

.clients {
  position: relative;
  padding: clamp(30px, 2.8vw, 38px) 0 clamp(36px, 3.4vw, 46px);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(ellipse at 50% 28%, rgba(255, 255, 255, 0.98) 0 36%, rgba(255, 255, 255, 0) 70%),
    linear-gradient(180deg, #f4fbff 0%, #ffffff 54%, #eef9ff 100%);
}

.clients::before,
.clients::after {
  position: absolute;
  pointer-events: none;
  content: "";
}

.clients::before {
  z-index: -2;
  left: 50%;
  top: -80px;
  width: min(1180px, calc(100vw - 36px));
  height: 210px;
  background:
    linear-gradient(110deg, rgba(214, 239, 255, 0.58), rgba(255, 255, 255, 0.82) 44%, rgba(217, 248, 239, 0.46));
  border-radius: 50%;
  transform: translateX(-50%) rotate(-1.5deg);
  opacity: 0.82;
}

.clients::after {
  z-index: -1;
  right: clamp(16px, 8vw, 116px);
  bottom: 18px;
  width: 140px;
  height: 140px;
  background-image: radial-gradient(circle, rgba(79, 184, 241, 0.38) 1.4px, transparent 1.7px);
  background-size: 10px 10px;
  border-radius: 50%;
  mask-image: radial-gradient(circle, #000 0 58%, transparent 70%);
  opacity: 0.54;
}

.clients .container {
  position: relative;
  z-index: 1;
}

.clients-heading {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 7px;
  margin-bottom: 16px;
  text-align: center;
}

.clients-heading::before,
.clients-heading::after {
  position: absolute;
  top: 10px;
  width: min(15vw, 152px);
  height: 0;
  content: "";
  border-top: 2px dotted rgba(96, 140, 200, 0.55);
}

.clients-heading::before {
  right: calc(50% + 104px);
}

.clients-heading::after {
  left: calc(50% + 104px);
}

.clients-kicker {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 0;
  margin: 0;
  padding: 0;
  color: #2f4f8f;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.14em;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.clients-kicker::before,
.clients-kicker::after {
  width: 9px;
  height: 9px;
  content: "";
  background: linear-gradient(135deg, #8fb4e2, #7fd0da);
  transform: rotate(45deg);
}

.clients-kicker span {
  display: inline-block;
}

.clients-copy {
  display: none;
}

.logo-strip {
  position: relative;
  width: min(calc(100vw - 106px), 1334px);
  margin-inline: calc((100% - min(calc(100vw - 106px), 1334px)) / 2);
  overflow: hidden;
  padding: 2px 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(250, 253, 255, 0.97));
  border: 1px solid rgba(210, 230, 246, 0.8);
  border-radius: 26px;
  box-shadow:
    0 16px 38px rgba(54, 123, 188, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
}

.logo-strip::before {
  left: 0;
  background:
    linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 100%),
    radial-gradient(circle at 18% 50%, rgba(79, 184, 241, 0.14), transparent 38%);
}

.logo-strip::after {
  right: 0;
  background:
    linear-gradient(270deg, #fff 0%, rgba(255, 255, 255, 0) 100%),
    radial-gradient(circle at 82% 50%, rgba(102, 210, 196, 0.14), transparent 38%);
}

.logo-strip::before,
.logo-strip::after {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  width: 72px;
  pointer-events: none;
  content: "";
}

.logo-track {
  /* client-logos-tile.jpg (1292×130) を 1244/1340 スケールで表示 */
  --logo-w: 1199px;
  display: flex;
  width: max-content;
  gap: 0;
  animation: logo-scroll 30s linear infinite;
  will-change: transform;
}

.logo-marquee:hover .logo-track {
  animation-play-state: paused;
}

.logo-track img {
  flex: 0 0 auto;
  width: var(--logo-w);
  max-width: none;
  border-radius: 0;
  filter: saturate(1.04) contrast(1.02);
}

@keyframes logo-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(calc(-1 * var(--logo-w, 1260px)));
  }
}

.issues-section {
  padding: clamp(40px, 3.6vw, 52px) 0 clamp(46px, 4.2vw, 58px);
  background:
    radial-gradient(ellipse at 50% -18%, rgba(210, 242, 255, 0.42) 0 34%, rgba(246, 252, 255, 0.32) 35%, transparent 62%),
    radial-gradient(ellipse at 8% 93%, rgba(173, 225, 255, 0.28) 0 18%, transparent 38%),
    radial-gradient(ellipse at 86% 91%, rgba(199, 241, 232, 0.22) 0 22%, transparent 44%),
    linear-gradient(180deg, #ffffff 0%, #f8fdff 58%, #fdfffe 100%);
}

.issues-section::before,
.issues-section::after {
  position: absolute;
  z-index: 0;
  width: 340px;
  height: 118px;
  pointer-events: none;
  content: "";
  border-top: 3px dotted rgba(66, 186, 245, 0.56);
  border-radius: 50%;
}

.issues-section::before {
  top: 80px;
  left: -48px;
  transform: rotate(8deg);
}

.issues-section::after {
  right: 56px;
  bottom: 118px;
  transform: rotate(6deg);
}

.issues-section .section-wave {
  background:
    linear-gradient(145deg, rgba(219, 245, 255, 0.42), rgba(255, 255, 255, 0.34) 45%, rgba(229, 249, 243, 0.38)),
    radial-gradient(circle at 92% 14%, rgba(151, 216, 247, 0.2), transparent 26%);
  clip-path: ellipse(86% 48% at 54% 48%);
  opacity: 0.72;
}

.issues-section .container {
  width: min(calc(100% - 104px), 1432px);
}

.issues-section .section-heading {
  max-width: 1040px;
  margin-bottom: 34px;
}

.issues-section .section-heading::before,
.issues-section .section-heading::after {
  position: absolute;
  width: 38px;
  height: 52px;
  pointer-events: none;
  content: "";
  background: linear-gradient(180deg, #7bd4fb, #1181d9);
  clip-path: polygon(50% 0, 60% 38%, 100% 50%, 60% 62%, 50% 100%, 40% 62%, 0 50%, 40% 38%);
  opacity: 0.62;
}

.issues-section .section-heading::before {
  top: 12px;
  right: 170px;
  transform: scale(0.62) rotate(8deg);
}

.issues-section .section-heading::after {
  top: 2px;
  right: 132px;
  transform: scale(0.42) rotate(-4deg);
}

.issues-section .heading-small {
  margin-bottom: 6px;
  color: #0066d6;
  font-family: var(--rounded);
  font-size: clamp(24px, 2.2vw, 31px);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.08em;
}

.issues-section .section-heading h2 {
  color: #1b2b47;
  font-family: var(--rounded);
  font-size: clamp(44px, 4.2vw, 61px);
  font-weight: 900;
  line-height: 1.22;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.issues-section .section-heading h2::after {
  display: none;
}

.issues-section .section-heading h2 span {
  color: inherit;
}

.issues-section .section-heading h2 .wall-word {
  position: relative;
  display: inline-block;
  margin-inline: 0.015em 0.01em;
  color: #29b3e8;
  font-family: var(--rounded);
  font-size: 1.06em;
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: 0.018em;
  transform: translateY(-0.015em);
}

.issues-section .section-heading h2 .wall-word::after {
  content: none;
}

.issues-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
  margin-top: 16px;
  color: #172033;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.95;
  letter-spacing: var(--tracking-body);
}

.issue-title-bottom {
  white-space: nowrap;
}

.issue-lead-line {
  display: block;
}

.issue-sp-line,
.issue-structure-line {
  display: inline;
}

.issue-lead-sign {
  white-space: nowrap;
}

.issue-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 24px;
}

.issue-card {
  position: relative;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  min-height: 224px;
  padding: 22px 20px 20px 16px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(183, 225, 255, 0.78);
  border-radius: 20px;
  box-shadow:
    0 18px 42px rgba(54, 123, 188, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.issue-card::after {
  position: absolute;
  inset: 1px;
  pointer-events: none;
  content: "";
  border-radius: inherit;
  box-shadow: inset 0 0 34px rgba(196, 229, 249, 0.22);
}

.number,
.flow-num,
.case-index {
  display: grid;
  width: 58px;
  height: 58px;
  color: #fff;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 900;
  background: linear-gradient(135deg, #79d7e4, #115bd0);
  border-radius: 50%;
  box-shadow: 0 8px 16px rgba(0, 95, 202, 0.18);
  place-items: center;
}

.issue-card .number {
  position: absolute;
  z-index: 2;
  top: 14px;
  left: 14px;
  width: 46px;
  height: 46px;
  font-family: var(--sans);
  font-size: 19px;
  font-weight: 800;
  line-height: 1;
}

.issue-card h3 {
  margin: 0 0 10px;
  color: var(--blue);
  font-size: clamp(18px, 1.4vw, 20px);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: var(--tracking-strong);
  min-width: 0;
}

.issue-card h3::after {
  display: block;
  width: 100%;
  margin-top: 8px;
  content: "";
  border-bottom: 2px dotted #76c5f6;
}

.issue-card p {
  margin: 0;
  color: #172033;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: var(--tracking-body);
  min-width: 0;
}

.sketch-img {
  width: 150px;
  height: 140px;
  max-width: none;
  max-height: none;
  object-fit: contain;
  justify-self: center;
  align-self: end;
  margin-top: 22px;
  filter: saturate(1.06) contrast(1.06) drop-shadow(0 8px 13px rgba(30, 116, 186, 0.08));
}

.analysis-icon, .verify-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 78h68M24 66V44m18 22V28m18 38V36m18 30V18M18 20h22l12 12 20-22' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 78h68M24 66V44m18 22V28m18 38V36m18 30V18M18 20h22l12 12 20-22' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.heart-people-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M48 82S16 62 16 35c0-10 8-18 18-18 6 0 11 3 14 8 3-5 8-8 14-8 10 0 18 8 18 18 0 27-32 47-32 47Z' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M48 82S16 62 16 35c0-10 8-18 18-18 6 0 11 3 14 8 3-5 8-8 14-8 10 0 18 8 18 18 0 27-32 47-32 47Z' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.meeting-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 62h66M22 62V30h28v32M54 62V42h20v20M29 40h4m8 0h4m-16 12h4m8 0h4M20 78h56M62 50h4' fill='none' stroke='black' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 62h66M22 62V30h28v32M54 62V42h20v20M29 40h4m8 0h4m-16 12h4m8 0h4M20 78h56M62 50h4' fill='none' stroke='black' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

.issue-bottom {
  position: relative;
  z-index: 1;
  width: min(100%, 1240px);
  margin: 24px auto 0;
  padding: 10px 28px 18px;
  overflow: visible;
  isolation: isolate;
  text-align: center;
}

.issue-bottom::before,
.issue-bottom::after {
  position: absolute;
  left: 50%;
  width: min(1280px, calc(100vw - 16px));
  pointer-events: none;
  content: "";
  transform: translateX(-50%);
}

.issue-bottom::before {
  z-index: -2;
  top: 8px;
  height: 210px;
  background:
    radial-gradient(ellipse at 50% 22%, rgba(255, 255, 255, 0.8) 0 38%, rgba(255, 255, 255, 0) 72%),
    radial-gradient(ellipse at 9% 66%, rgba(156, 219, 250, 0.18) 0 20%, rgba(156, 219, 250, 0) 46%),
    radial-gradient(ellipse at 88% 67%, rgba(126, 218, 200, 0.14) 0 20%, rgba(126, 218, 200, 0) 47%),
    linear-gradient(102deg, rgba(196, 232, 252, 0.26), rgba(255, 255, 255, 0.6) 42%, rgba(215, 246, 238, 0.28));
  border-radius: 48% 52% 50% 50% / 24% 28% 34% 36%;
  clip-path: ellipse(58% 48% at 50% 58%);
}

.issue-bottom::after {
  z-index: -1;
  top: -2px;
  height: 142px;
  background: url("data:image/svg+xml,%3Csvg width='1280' height='142' viewBox='0 0 1280 142' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M62 38C142 77 230 72 312 43' stroke='%2359C3F4' stroke-width='3' stroke-linecap='round' stroke-dasharray='2 10'/%3E%3Cpath d='M968 46C1050 78 1160 76 1236 42' stroke='%2359C3F4' stroke-width='3' stroke-linecap='round' stroke-dasharray='2 10'/%3E%3Cpath d='M274 22L280 36L294 42L280 48L274 62L268 48L254 42L268 36L274 22Z' fill='%236ECDF2'/%3E%3Cpath d='M1050 18L1056 31L1069 37L1056 43L1050 56L1044 43L1031 37L1044 31L1050 18Z' fill='%236ECDF2'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

.issue-bottom p {
  position: relative;
  margin: 0 0 54px;
  color: #1b2b47;
  font-size: clamp(20px, 1.7vw, 25px);
  font-family: var(--rounded);
  font-weight: 900;
  line-height: 1.85;
  letter-spacing: 0.04em;
}

.issue-bottom p::before,
.issue-bottom p::after {
  position: absolute;
  width: 19px;
  height: 19px;
  pointer-events: none;
  content: "";
  background: linear-gradient(135deg, #71d6e7, #9fc253);
  clip-path: polygon(50% 0, 62% 36%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0 50%, 38% 36%);
  opacity: 0.82;
}

.issue-bottom p::before {
  top: 0.4em;
  left: max(8px, calc(50% - 378px));
  transform: scale(0.72) rotate(-10deg);
}

.issue-bottom p::after {
  top: 1.1em;
  right: max(8px, calc(50% - 404px));
  transform: scale(0.54) rotate(8deg);
}

.issue-bottom p strong {
  position: relative;
  z-index: 1;
  display: inline-block;
}

.issue-bottom-tail {
  display: inline-block;
  white-space: nowrap;
}

.issue-bottom p strong::after {
  position: absolute;
  z-index: -1;
  left: -0.42em;
  right: -0.38em;
  bottom: -0.08em;
  height: 0.72em;
  content: "";
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.72) 44%, rgba(255, 255, 255, 0) 45%),
    linear-gradient(90deg, rgba(255, 243, 116, 0), rgba(255, 243, 116, 0.74) 16%, rgba(255, 243, 116, 0.56) 74%, rgba(255, 243, 116, 0));
  border-radius: 55% 42% 50% 46% / 45% 55% 48% 50%;
  transform: rotate(-1.4deg);
}

.issue-bottom h3 {
  position: relative;
  margin: 0;
  color: #1b3f74;
  font-family: var(--rounded);
  font-size: clamp(34px, 2.9vw, 42px);
  font-weight: 900;
  line-height: 1.24;
  letter-spacing: 0.04em;
}

.issue-bottom h3 span {
  background: linear-gradient(100deg, #0e6ad1 0%, #2fa6de 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 1.16em;
}

.issue-bottom h3::before {
  position: absolute;
  top: -52px;
  left: 50%;
  width: 15px;
  height: 15px;
  content: "";
  border-right: 3px solid #4ecbd3;
  border-bottom: 3px solid #4ecbd3;
  border-radius: 3px;
  transform: translateX(-50%) rotate(45deg);
  opacity: 0.82;
}

.issue-bottom h3 span::after {
  position: absolute;
  top: 0.06em;
  right: -76px;
  width: 70px;
  height: 48px;
  pointer-events: none;
  content: "";
  background: url("data:image/svg+xml,%3Csvg width='70' height='48' viewBox='0 0 70 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 28L22 14' stroke='%232798EA' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M31 36L48 22' stroke='%232798EA' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M24 44L35 34' stroke='%232798EA' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 0.72;
}

.issue-bottom h3 span {
  position: relative;
  white-space: nowrap;
}

.issue-section-sp-art,
.issue-heading-sp-art,
.issue-bottom-sp-art,
.issue-sp-only,
.issue-lead-br {
  display: none;
}

.sp-section-art,
.sp-art-link {
  display: none;
}

.strengths-section {
  position: relative;
  padding: clamp(52px, 4.4vw, 62px) 0 clamp(56px, 4.8vw, 68px);
  overflow: hidden;
  background:
    radial-gradient(ellipse at 16% 24%, rgba(189, 230, 253, 0.4) 0 10%, transparent 31%),
    radial-gradient(ellipse at 78% 43%, rgba(255, 244, 210, 0.3) 0 12%, transparent 34%),
    radial-gradient(ellipse at 86% 80%, rgba(176, 229, 247, 0.32) 0 17%, transparent 39%),
    linear-gradient(150deg, #eef9ff 0%, #ffffff 28%, #fcfeff 56%, #f0faff 100%);
}

.strengths-section::before,
.strengths-section::after {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  content: "";
}

.strengths-section::before {
  top: -205px;
  left: -10%;
  width: 76%;
  height: 430px;
  background: linear-gradient(145deg, rgba(190, 229, 252, 0.58), rgba(255, 255, 255, 0.2));
  border-radius: 0 0 62% 50%;
  transform: rotate(-8.5deg);
}

.strengths-section::after {
  right: -9%;
  bottom: -190px;
  width: 72%;
  height: 430px;
  background: linear-gradient(140deg, rgba(214, 241, 255, 0.62), rgba(184, 232, 246, 0.2));
  border-radius: 60% 42% 0 0;
  transform: rotate(-12deg);
}

.strength-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.strength-wave,
.strength-dot,
.strength-spark,
.strength-orbit,
.strength-halo {
  position: absolute;
  display: block;
}

.strength-wave {
  width: 430px;
  height: 130px;
  border-top: 3px solid transparent;
  border-image: linear-gradient(90deg, #1f9ee8, #21c9bf) 1;
  border-radius: 50%;
  opacity: 0.88;
}

.wave-one {
  display: none;
}

.wave-two {
  top: 420px;
  left: 63%;
  width: 260px;
  height: 205px;
  border-top-style: dotted;
  border-image: none;
  border-color: rgba(11, 182, 204, 0.78);
  transform: rotate(72deg);
}

.wave-three {
  left: 23%;
  bottom: 250px;
  width: 260px;
  height: 170px;
  border-top-style: dotted;
  border-image: none;
  border-color: rgba(11, 182, 204, 0.7);
  transform: rotate(-64deg);
}

.strength-dot {
  width: 190px;
  height: 190px;
  background: radial-gradient(circle, rgba(0, 112, 216, 0.2) 1.7px, transparent 2px);
  background-size: 12px 12px;
  border-radius: 50%;
}

.dot-one {
  top: 62px;
  right: 1.6%;
  width: 160px;
  height: 160px;
  opacity: 0.5;
  transform: rotate(9deg);
}

.dot-two {
  left: -34px;
  bottom: 255px;
  width: 180px;
  height: 180px;
  opacity: 0.75;
}

.dot-three {
  right: 12%;
  bottom: 34px;
  width: 110px;
  height: 110px;
  opacity: 0.22;
}

.strength-spark {
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #35c9d1, #006fd3);
  clip-path: polygon(50% 0, 60% 38%, 100% 50%, 60% 62%, 50% 100%, 40% 62%, 0 50%, 40% 38%);
  opacity: 0.7;
}

.spark-one {
  top: 60px;
  left: 39%;
  transform: scale(0.55) rotate(8deg);
}

.spark-two {
  top: 164px;
  right: 17%;
  background: linear-gradient(180deg, #b2ca56, #9abf42);
  transform: scale(0.72) rotate(16deg);
}

.spark-three {
  left: 15%;
  bottom: 208px;
  transform: scale(0.82) rotate(-3deg);
}

.strength-orbit {
  width: 110px;
  height: 110px;
  border: 2px solid rgba(97, 198, 238, 0.36);
  border-radius: 50%;
  background: rgba(90, 200, 231, 0.16);
}

.orbit-one {
  top: 216px;
  left: 6%;
}

.orbit-two {
  right: 7%;
  bottom: 296px;
  width: 120px;
  height: 120px;
  background: rgba(52, 184, 225, 0.18);
}

.strength-halo {
  width: 210px;
  height: 110px;
  background: rgba(170, 223, 246, 0.28);
  border-radius: 50%;
  filter: blur(0.2px);
}

.halo-one {
  top: 268px;
  left: 44%;
  transform: rotate(-22deg);
}

.halo-two {
  right: 0;
  bottom: 138px;
  transform: rotate(-18deg);
}

.strengths-section .container {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 96px), 1250px);
}

.strengths-section .section-heading {
  margin-bottom: 30px;
}

.strengths-section .section-eyebrow {
  position: relative;
  display: inline-block;
  color: #0062c9;
  font-size: 14px;
  font-weight: 900;
}

.strengths-section .section-eyebrow::after {
  display: block;
  width: 260px;
  margin: 12px auto 0;
  content: "";
  border-bottom: 3px dotted rgba(31, 168, 232, 0.72);
}

.strengths-section .section-heading h2 {
  color: transparent;
  font-size: clamp(50px, 4.3vw, 62px);
  line-height: 1.24;
  letter-spacing: var(--tracking-display);
  white-space: nowrap;
  background: linear-gradient(100deg, #0054bd 0%, #0063c9 68%, #14b7bd 100%);
  -webkit-background-clip: text;
  background-clip: text;
  text-shadow: none;
}

.strengths-section .section-heading h2 span {
  color: inherit;
}

.strengths-section .section-heading h2::after {
  display: none;
}

.strengths-section .section-heading h2::before {
  position: absolute;
  left: -54px;
  right: -54px;
  bottom: -44px;
  height: 70px;
  content: "";
  opacity: 0.92;
  background: url("data:image/svg+xml,%3Csvg width='1040' height='78' viewBox='0 0 1040 78' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M63 26C22 44 19 67 76 65C169 62 248 43 354 44C470 45 492 65 609 45C730 24 852 51 974 27C1005 21 1017 10 1012 5' stroke='%231a95e4' stroke-width='3.1' stroke-linecap='round'/%3E%3Cpath d='M63 26C22 44 19 67 76 65C169 62 248 43 354 44C470 45 492 65 609 45C730 24 852 51 974 27C1005 21 1017 10 1012 5' stroke='%2323c5bb' stroke-width='3.1' stroke-linecap='round' stroke-dasharray='520 520'/%3E%3Ccircle cx='520' cy='54' r='5' fill='%23fff' stroke='%2323c5bb' stroke-width='2.5'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

.strength-stack {
  position: relative;
  min-height: 812px;
  margin-top: 14px;
}

.strength-stack::before,
.strength-stack::after {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  content: "";
}

.strength-stack::before {
  top: 106px;
  right: 145px;
  width: 295px;
  height: 292px;
  border-top: 3px dotted rgba(20, 183, 210, 0.7);
  border-right: 3px dotted rgba(20, 183, 210, 0.7);
  border-radius: 0 74% 0 0;
  transform: rotate(4deg);
}

.strength-stack::after {
  left: 245px;
  bottom: 178px;
  width: 260px;
  height: 180px;
  border-top: 3px dotted rgba(20, 183, 210, 0.66);
  border-left: 3px dotted rgba(20, 183, 210, 0.66);
  border-radius: 70% 0 0 0;
  transform: rotate(-7deg);
}

.strength-card {
  position: absolute;
  display: grid;
  grid-template-columns: 150px minmax(300px, 1fr) 336px;
  gap: 12px;
  align-items: center;
  width: min(870px, 78%);
  min-height: 258px;
  padding: 16px 14px 16px 30px;
  transform: var(--reveal-transform, none);
  transform-origin: center center;
  background:
    radial-gradient(circle at 82% 18%, rgba(178, 229, 255, 0.36), transparent 24%),
    #fffbed;
  border: 5px solid rgba(255, 255, 255, 0.9);
  border-radius: 25px;
  box-shadow:
    0 22px 44px rgba(58, 130, 188, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.strength-one {
  top: 0;
  left: 0.9%;
  z-index: 3;
  --reveal-transform: rotate(-3.1deg);
}

.strength-two {
  top: 275px;
  right: 3.9%;
  z-index: 4;
  background:
    radial-gradient(circle at 88% 60%, rgba(156, 218, 235, 0.34), transparent 22%),
    #fff2dc;
  --reveal-transform: rotate(2.1deg);
}

.strength-three {
  top: 530px;
  left: 0.9%;
  z-index: 3;
  background:
    radial-gradient(circle at 80% 72%, rgba(175, 219, 247, 0.32), transparent 26%),
    #ffedf6;
  --reveal-transform: rotate(-1.6deg);
}

.strength-card::after {
  display: none;
}

.strength-card > * {
  position: relative;
  z-index: 2;
}

.strength-one::after {
  left: 128px;
  bottom: 66px;
  transform: scale(0.8) rotate(-6deg);
}

.strength-two::after {
  left: 116px;
  bottom: 88px;
  transform: scale(0.78) rotate(12deg);
}

.strength-three::after {
  left: 116px;
  bottom: 88px;
  transform: scale(0.78) rotate(-4deg);
}

.strength-num {
  color: transparent;
  font-family: var(--serif);
  font-size: 96px;
  font-weight: 900;
  line-height: 1;
  background: linear-gradient(150deg, var(--blue), var(--cyan));
  -webkit-background-clip: text;
  background-clip: text;
}

.strength-card h3 {
  margin: 0 0 14px;
  color: var(--blue);
  font-size: 26px;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: var(--tracking-strong);
}

.strength-card h3::after {
  display: block;
  width: 88%;
  margin-top: 9px;
  content: "";
  border-bottom: 2px dotted #7dcdf7;
}

.strength-card p {
  margin: 0;
  font-size: 15.5px;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: var(--tracking-body);
}

.line-art,
.strength-art,
.service-illustration-img,
.mini-illustration-img {
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 10px 16px rgba(38, 129, 196, 0.08));
}

.strength-art {
  width: 336px;
  max-height: 240px;
  justify-self: end;
  margin: 0;
}

/* PC uses illustrations extracted 1:1 from the official mock (component-level assets). */
@media (min-width: 761px) {
  .strength-one .strength-art {
    width: 330px;
    max-height: 230px;
    content: url("../img/strength-illust-mock-01.png");
  }

  .strength-two .strength-art {
    width: 272px;
    max-height: 212px;
    content: url("../img/strength-illust-mock-02.png");
  }

  .strength-three .strength-art {
    width: 340px;
    max-height: 226px;
    margin-right: 6px;
    content: url("../img/strength-illust-mock-03.png");
  }
}

.target-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 85h90M25 76V50m20 26V36m20 40V56M90 34a23 23 0 1 1-8-17M90 34l20-20m-8 0h8v8M76 34a9 9 0 1 1-3-7' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 85h90M25 76V50m20 26V36m20 40V56M90 34a23 23 0 1 1-8-17M90 34l20-20m-8 0h8v8M76 34a9 9 0 1 1-3-7' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.growth-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 82c28-3 54-20 82-58m0 0h-22m22 0v22M20 80c0-14 8-24 20-24s20 10 20 24M40 50a12 12 0 1 0 0-24 12 12 0 0 0 0 24Z' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 82c28-3 54-20 82-58m0 0h-22m22 0v22M20 80c0-14 8-24 20-24s20 10 20 24M40 50a12 12 0 1 0 0-24 12 12 0 0 0 0 24Z' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

.speech-bubble {
  position: absolute;
  right: 1.2%;
  bottom: 35px;
  width: 306px;
  min-height: 156px;
  margin: 0;
  padding: 30px 34px;
  color: var(--blue);
  font-size: 19px;
  font-weight: 800;
  line-height: 1.65;
  text-align: center;
  background: #fff;
  border: 2px solid #a9dcff;
  border-radius: 49% 51% 48% 52%;
  box-shadow: 0 20px 40px rgba(54, 123, 188, 0.14);
  --reveal-transform: rotate(-1.5deg);
  transform: var(--reveal-transform, none);
}

.speech-bubble::before {
  position: absolute;
  left: 20px;
  bottom: 4px;
  width: 56px;
  height: 36px;
  content: "";
  background: #fff;
  border-bottom: 2px solid #a9dcff;
  border-left: 2px solid #a9dcff;
  border-radius: 0 0 0 70%;
  transform: rotate(-20deg);
}

.speech-bubble strong {
  color: #13b6bd;
  font-weight: 900;
}

.cases-section {
  position: relative;
  padding: clamp(48px, 4.2vw, 58px) 0 clamp(64px, 5.6vw, 80px);
  overflow: hidden;
  background:
    linear-gradient(150deg, rgba(236, 248, 255, 0.92) 0%, rgba(255, 255, 255, 0.94) 26%, #ffffff 48%, rgba(238, 250, 255, 0.88) 100%);
}

.cases-section::before,
.cases-section::after {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  content: "";
}

.cases-section::before {
  top: -205px;
  left: -11%;
  width: 74%;
  height: 430px;
  background: linear-gradient(145deg, rgba(191, 228, 251, 0.5), rgba(255, 255, 255, 0.14));
  border-radius: 0 0 62% 45%;
  transform: rotate(-8deg);
}

.cases-section::after {
  left: -5%;
  right: -5%;
  bottom: -118px;
  height: 285px;
  background:
    linear-gradient(150deg, rgba(186, 225, 248, 0.5), rgba(224, 244, 255, 0.22));
  clip-path: ellipse(58% 42% at 54% 100%);
}

.cases-section .container {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 110px), 1320px);
}

.cases-section .container::before,
.cases-section .container::after {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  content: "";
}

.cases-section .container::before {
  top: 20px;
  right: -6px;
  width: 178px;
  height: 178px;
  background: radial-gradient(circle, rgba(0, 112, 216, 0.2) 1.7px, transparent 2px);
  background-size: 10px 10px;
  border-radius: 50%;
  transform: rotate(12deg);
}

.cases-section .container::after {
  left: -92px;
  bottom: 28px;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(0, 112, 216, 0.18) 1.6px, transparent 2px);
  background-size: 10px 10px;
  border-radius: 50%;
  opacity: 0.72;
}

.cases-section .section-heading {
  position: relative;
  z-index: 1;
  margin-bottom: 36px;
}

.cases-section .section-heading::before,
.cases-section .section-heading::after {
  position: absolute;
  top: -10px;
  width: 24px;
  height: 32px;
  content: "";
  background: linear-gradient(180deg, #57cbd1, #a9c75d);
  clip-path: polygon(50% 0, 60% 38%, 100% 50%, 60% 62%, 50% 100%, 40% 62%, 0 50%, 40% 38%);
  opacity: 0.72;
}

.cases-section .section-heading::before {
  left: calc(50% - 250px);
  transform: scale(0.62) rotate(-8deg);
}

.cases-section .section-heading::after {
  right: calc(50% - 250px);
  transform: scale(0.62) rotate(12deg);
}

.cases-section .section-eyebrow {
  position: relative;
  display: inline-block;
  color: #0062c9;
  font-size: 16px;
  font-weight: 900;
}

.cases-section .section-eyebrow::after {
  display: block;
  width: 260px;
  margin: 12px auto 0;
  content: "";
  border-bottom: 3px dotted rgba(31, 168, 232, 0.72);
}

.cases-section .section-heading h2 {
  color: transparent;
  font-size: clamp(42px, 3.9vw, 56px);
  line-height: 1.22;
  letter-spacing: var(--tracking-display);
  white-space: nowrap;
  background: linear-gradient(100deg, #0054bd 0%, #0063c9 70%, #14b7bd 100%);
  -webkit-background-clip: text;
  background-clip: text;
  text-shadow: 0 10px 22px rgba(34, 116, 195, 0.08);
}

.cases-section .section-heading h2 span {
  color: inherit;
}

.cases-section .section-heading h2 .case-fan-word {
  display: inline-block;
  margin-right: 0.04em;
  color: transparent;
  font-size: 1.12em;
  background: linear-gradient(105deg, #009fb9 0%, #17bfc4 42%, #0062c9 100%);
  -webkit-background-clip: text;
  background-clip: text;
  text-shadow: 0 11px 20px rgba(20, 180, 198, 0.13);
  transform: rotate(-4deg) translateY(-0.03em);
  transform-origin: 50% 70%;
}

.cases-section .section-heading h2::after {
  display: none;
}

.cases-section .section-heading h2::before {
  position: absolute;
  left: -58px;
  right: -58px;
  bottom: -62px;
  height: 78px;
  content: "";
  background: url("data:image/svg+xml,%3Csvg width='980' height='78' viewBox='0 0 980 78' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M58 24C20 42 18 64 72 62C158 59 236 42 336 43C448 44 466 63 578 43C694 22 806 50 924 27C954 21 966 10 962 5' stroke='%231a95e4' stroke-width='3.1' stroke-linecap='round'/%3E%3Cpath d='M58 24C20 42 18 64 72 62C158 59 236 42 336 43C448 44 466 63 578 43C694 22 806 50 924 27C954 21 966 10 962 5' stroke='%2323c5bb' stroke-width='3.1' stroke-linecap='round' stroke-dasharray='490 490'/%3E%3Ccircle cx='490' cy='53' r='5' fill='%23fff' stroke='%2323c5bb' stroke-width='2.5'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

.cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
  margin-top: 34px;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.75;
  letter-spacing: var(--tracking-body);
}

.case-shell {
  position: relative;
  z-index: 1;
  overflow: visible;
  padding-top: 22px;
}

.case-track {
  --case-card-size: 419px;
  display: grid;
  grid-auto-columns: var(--case-card-size);
  grid-auto-flow: column;
  gap: 25px;
  overflow-x: auto;
  padding: 4px max(0px, calc(100% - var(--case-card-size))) 56px 0;
  scroll-padding-inline: 0;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

/* Let the 4th card peek at the viewport edge like the mock. */
@media (min-width: 761px) {
  .case-track {
    margin-right: calc((100% - 100vw) / 2);
  }
}

.case-track::-webkit-scrollbar {
  display: none;
}

.case-card {
  position: relative;
  min-width: 0;
  min-height: 570px;
  padding: 26px 22px 30px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.93));
  border: 1px solid rgba(161, 218, 255, 0.86);
  border-radius: 24px;
  box-shadow:
    0 24px 42px rgba(43, 128, 194, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
  scroll-snap-align: center;
}

.case-clone {
  display: none;
  pointer-events: none;
}

.case-card::before,
.case-card::after {
  position: absolute;
  z-index: 1;
  content: "";
  background: linear-gradient(180deg, #4ed0d2, #006fd3);
  clip-path: polygon(50% 0, 60% 38%, 100% 50%, 60% 62%, 50% 100%, 40% 62%, 0 50%, 40% 38%);
  opacity: 0.6;
}

.case-card::before {
  top: 22px;
  left: 100px;
  width: 14px;
  height: 18px;
  transform: rotate(8deg);
}

.case-card::after {
  top: 112px;
  left: 24px;
  width: 18px;
  height: 24px;
  transform: rotate(-10deg);
}

.case-card .case-index {
  position: absolute;
  top: 23px;
  left: 23px;
  z-index: 2;
  width: 78px;
  height: 78px;
  margin: 0;
  color: #0062c9;
  font-size: 31px;
  line-height: 1;
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.95), rgba(235, 250, 255, 0.78) 62%, rgba(217, 243, 255, 0.94) 100%);
  border: 2px solid #99dcff;
  border-radius: 50%;
  box-shadow:
    0 11px 20px rgba(0, 95, 202, 0.14),
    inset 0 0 0 5px rgba(255, 255, 255, 0.72);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.85);
}

.case-card .case-index::after {
  position: absolute;
  inset: 8px;
  pointer-events: none;
  content: "";
  border: 1px solid rgba(126, 211, 255, 0.42);
  border-radius: 50%;
}

.case-card h3 {
  margin: 8px 0 0 112px;
  color: #0d1730;
  font-family: var(--serif);
  font-size: 38px;
  font-weight: 900;
  line-height: 1.22;
  letter-spacing: var(--tracking-strong);
}

.case-card h3 span {
  margin-left: 3px;
  font-size: 18px;
  font-family: var(--sans);
  font-weight: 900;
}

.case-type {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 9px 0 24px 112px;
  color: var(--blue);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: var(--tracking-ui);
}

.case-type::before {
  display: inline-block;
  width: 24px;
  height: 24px;
  content: "";
  background: linear-gradient(135deg, #0074df, #22c5c3);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.type-movie::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 5h16v14H4V5Zm4 0v14M16 5v14M4 9h4m8 0h4M4 15h4m8 0h4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 5h16v14H4V5Zm4 0v14M16 5v14M4 9h4m8 0h4M4 15h4m8 0h4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.type-pr::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm-7 9c0-4 3-7 7-7s7 3 7 7M18 7l7-3v13l-7-3V7Zm0 7h-4V7h4' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm-7 9c0-4 3-7 7-7s7 3 7 7M18 7l7-3v13l-7-3V7Zm0 7h-4V7h4' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.type-product::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 9h10l1 11H6L7 9Zm3 0V7a2 2 0 0 1 4 0v2' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 9h10l1 11H6L7 9Zm3 0V7a2 2 0 0 1 4 0v2' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.case-card img {
  width: 100%;
  aspect-ratio: 1.39;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 12px 20px rgba(16, 53, 86, 0.08);
}

.case-card p:not(.case-index):not(.case-type) {
  margin: 22px 4px 16px;
  color: #142035;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.9;
  letter-spacing: 0.012em;
}

.tag-row,
.pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tag-row {
  justify-content: center;
}

.tag-row span,
.pill-row span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  min-width: 98px;
  padding: 6px 18px;
  color: var(--blue);
  font-weight: 800;
  background: #dbf2ff;
  border-radius: 999px;
}

.tag-row.pink span {
  color: #c84c68;
  background: #ffe6ee;
}

.tag-row.green span {
  color: #159478;
  background: #e1f5ed;
}

.case-arrow {
  position: absolute;
  z-index: 2;
  top: calc(50% - 8px);
  display: grid;
  width: 70px;
  height: 70px;
  color: var(--blue);
  background: #fff;
  border: 0;
  border-radius: 50%;
  box-shadow: 0 16px 32px rgba(43, 128, 194, 0.18);
  cursor: pointer;
  place-items: center;
}

.case-arrow svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.case-prev {
  left: calc((100% - 100vw) / 2 + 6px);
}

.case-next {
  right: calc((100% - 100vw) / 2 + 28px);
}

.case-pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: -18px;
}

.case-pagination button {
  position: relative;
  width: 34px;
  height: 34px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.case-pagination button::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  content: "";
  background: #b9dcfb;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease;
}

.case-pagination button.is-active {
  transform: scale(1.16);
}

.case-pagination button.is-active::before {
  width: 16px;
  height: 16px;
  background: #0062c9;
}

.service-section,
.flow-section,
.faq-section {
  background:
    linear-gradient(160deg, rgba(226, 245, 255, 0.9), rgba(255, 255, 255, 0.72) 46%, rgba(237, 250, 246, 0.56));
}

.service-section {
  position: relative;
  overflow: hidden;
  padding-top: clamp(48px, 4.2vw, 58px);
  padding-bottom: clamp(40px, 3.6vw, 48px);
  isolation: isolate;
  background:
    radial-gradient(ellipse at 52% 6%, rgba(255, 255, 255, 0.98) 0 27%, rgba(255, 255, 255, 0) 62%),
    radial-gradient(ellipse at 8% 25%, rgba(202, 235, 255, 0.56), transparent 32%),
    radial-gradient(ellipse at 90% 74%, rgba(205, 244, 239, 0.48), transparent 36%),
    linear-gradient(154deg, rgba(229, 246, 255, 0.96), rgba(255, 255, 255, 0.84) 42%, rgba(236, 251, 248, 0.78));
}

.service-section::before,
.service-section::after {
  position: absolute;
  z-index: -2;
  content: "";
  pointer-events: none;
}

.service-section::before {
  top: -58px;
  left: 9%;
  width: 82%;
  height: 245px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 0 0 50% 50%;
  transform: rotate(-3deg);
}

.service-section::after {
  right: -8%;
  bottom: -128px;
  width: 76%;
  height: 288px;
  background: rgba(209, 237, 255, 0.36);
  border-radius: 50% 0 0 0;
  transform: rotate(-6deg);
}

.service-section .container {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 92px), 1320px);
}

.service-bg {
  position: absolute;
  z-index: -1;
  display: block;
  pointer-events: none;
}

.service-bg-wave-a {
  top: 92px;
  left: -7%;
  width: 52%;
  height: 126px;
  background: rgba(197, 231, 252, 0.34);
  border-radius: 55% 45% 52% 48%;
  transform: rotate(-9deg);
}

.service-bg-wave-b {
  right: -9%;
  bottom: 46px;
  width: 68%;
  height: 132px;
  background: rgba(213, 246, 241, 0.44);
  border-radius: 48% 52% 0 0;
  transform: rotate(-4deg);
}

.service-bg-dots-a,
.service-bg-dots-b {
  width: 156px;
  height: 156px;
  opacity: 0.46;
  background-image: radial-gradient(circle, rgba(62, 171, 238, 0.58) 1.6px, transparent 1.8px);
  background-size: 10px 10px;
  mask-image: radial-gradient(circle, #000 0 58%, transparent 72%);
}

.service-bg-dots-a {
  top: 170px;
  left: 3%;
}

.service-bg-dots-b {
  top: 58px;
  right: 4%;
}

.service-bg-orbit-a {
  top: 238px;
  right: 8%;
  width: 180px;
  height: 92px;
  border: 2px solid rgba(90, 188, 236, 0.22);
  border-top-color: transparent;
  border-left-color: transparent;
  border-radius: 50%;
  transform: rotate(-18deg);
}

.floating-logo {
  position: absolute;
  z-index: 1;
  top: 42px;
  left: max(26px, calc((100vw - var(--container)) / 2));
  width: 136px;
  mix-blend-mode: multiply;
}

.service-section > .floating-logo,
.faq-section > .floating-logo {
  position: absolute;
  top: 16px;
  left: 30px;
  z-index: 2;
  display: block;
  width: 142px;
  height: auto;
}

@media (max-width: 760px) {
  .service-section > .floating-logo,
  .faq-section > .floating-logo {
    display: none;
  }
}

.service-section .section-heading {
  position: relative;
  max-width: 1240px;
  margin: 0 auto 42px;
}

.service-section .section-heading::before,
.service-section .section-heading::after {
  position: absolute;
  color: #75d1e9;
  font-size: 26px;
  line-height: 1;
  content: "✦";
}

.service-section .section-heading::before {
  top: -6px;
  left: 20%;
  color: #a4c857;
}

.service-section .section-heading::after {
  top: 0;
  right: 20%;
}

.service-section .section-heading h2 {
  color: transparent;
  font-size: clamp(42px, 3.9vw, 56px);
  line-height: 1.32;
  letter-spacing: var(--tracking-display);
  white-space: nowrap;
  background: linear-gradient(100deg, #0059c6 0%, #0070d8 46%, #18bfc4 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.service-section .section-heading h2::after {
  display: none;
}

.service-section .section-heading h2 .line {
  display: inline;
}

.service-section .section-heading h2 span span {
  display: inline-block;
  margin-inline: 2px 5px;
  color: transparent;
  font-size: 1.72em;
  line-height: 0.7;
  background: linear-gradient(105deg, #004fb8 0%, #006bd7 45%, #17bfc4 100%);
  -webkit-background-clip: text;
  background-clip: text;
  transform: translate(-4px, 0.02em);
}

.service-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
  margin-top: 14px;
  color: #202a3d;
  font-size: 16px;
  font-weight: 850;
  letter-spacing: var(--tracking-body);
}

.service-section .container {
  width: min(calc(100% - 126px), 1322px);
}

.service-tabs {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  gap: 30px;
  width: min(100%, 1245px);
  margin: 0 auto -1px;
}

.service-tabs::before {
  position: absolute;
  right: 24px;
  bottom: 0;
  left: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(113, 204, 249, 0.72), transparent);
  content: "";
}

.service-tab {
  position: relative;
  display: grid;
  grid-template-columns: auto auto;
  column-gap: 13px;
  align-content: center;
  align-items: center;
  justify-content: center;
  min-height: 116px;
  padding: 16px 20px 14px;
  color: #111a2d;
  text-align: center;
  appearance: none;
  cursor: pointer;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.78)),
    radial-gradient(circle at 50% 22%, rgba(210, 242, 255, 0.55), transparent 48%);
  border: 1px solid rgba(176, 222, 252, 0.95);
  border-bottom: 0;
  border-radius: 28px 28px 0 0;
  box-shadow: 0 18px 36px rgba(45, 115, 179, 0.1);
  transition: color 0.24s ease, transform 0.24s ease, box-shadow 0.24s ease, background 0.24s ease, border-color 0.24s ease;
}

.service-tab::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.34), transparent 24%),
    linear-gradient(130deg, rgba(255, 255, 255, 0.38), transparent 55%);
  border-radius: inherit;
  content: "";
  opacity: 0;
  transition: opacity 0.24s ease;
}

.service-tab::after {
  position: absolute;
  right: 0;
  top: calc(100% - 1px);
  bottom: auto;
  left: 0;
  width: 32px;
  height: 22px;
  margin: auto;
  background: linear-gradient(180deg, #17bdbe 0%, #0aa8c4 100%);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  content: "";
  opacity: 0;
  filter: drop-shadow(0 9px 10px rgba(3, 93, 180, 0.18));
  transition: opacity 0.2s ease, transform 0.24s ease;
}

.service-tab:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 42px rgba(45, 115, 179, 0.15);
}

.service-tab:focus-visible {
  outline: 3px solid rgba(0, 98, 201, 0.28);
  outline-offset: 4px;
}

.service-tab.is-active {
  min-height: 142px;
  color: #fff;
  background:
    radial-gradient(circle at 24% 20%, rgba(255, 255, 255, 0.28), transparent 28%),
    linear-gradient(135deg, #0069d3 0%, #098bd3 42%, #1bc5bc 100%);
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 24px 54px rgba(0, 95, 202, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.42);
  transform: translateY(1px);
}

.service-tab.is-active::before,
.service-tab.is-active::after {
  opacity: 1;
}

.service-tab.is-active:hover {
  transform: translateY(1px);
}

.service-tab-num {
  position: relative;
  display: inline-grid;
  width: 52px;
  height: 52px;
  margin: 0;
  color: var(--blue);
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
  background: #fff;
  border: 1px solid rgba(162, 222, 255, 0.9);
  border-radius: 50%;
  box-shadow: 0 8px 18px rgba(13, 117, 209, 0.16);
  place-items: center;
}

.service-tab.is-active .service-tab-num {
  width: 54px;
  height: 54px;
  color: #0062c9;
  font-size: 23px;
  box-shadow: 0 10px 22px rgba(0, 78, 166, 0.24);
}

.service-tab h3 {
  position: relative;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(24px, 2vw, 31px);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: var(--tracking-strong);
}

.service-tab p {
  position: relative;
  grid-column: 1 / -1;
  margin: 7px 0 0;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.5;
  letter-spacing: var(--tracking-ui);
  text-align: center;
}

.service-main {
  --service-accent: #15c0bf;
  --service-accent-deep: #005fca;
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(400px, 500px);
  gap: clamp(22px, 3.5vw, 44px);
  align-items: center;
  min-height: 365px;
  margin-top: -1px;
  padding: clamp(44px, 4vw, 58px) clamp(34px, 3.8vw, 50px);
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 28%, rgba(215, 247, 246, 0.5), transparent 30%),
    radial-gradient(circle at 4% 10%, rgba(225, 248, 255, 0.7), transparent 24%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 254, 255, 0.92));
  border: 1px solid #98d9ff;
  border-radius: 28px;
  box-shadow: 0 28px 70px rgba(54, 123, 188, 0.14);
}

.service-main::before,
.service-main::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.service-main::before {
  inset: 10px;
  border: 1px solid rgba(255, 255, 255, 0.76);
  border-radius: 22px;
}

.service-main::after {
  right: -70px;
  bottom: -84px;
  width: 380px;
  height: 210px;
  background: rgba(207, 242, 255, 0.42);
  border-radius: 50% 0 0 0;
  transform: rotate(-8deg);
}

.service-main[data-service-tone="green"] {
  --service-accent: #19bfae;
  --service-accent-deep: #0073bf;
}

.service-main[data-service-tone="purple"] {
  --service-accent: #6b90f1;
  --service-accent-deep: #005fca;
}

.service-main.is-switching .service-copy,
.service-main.is-switching .service-visual,
.service-main.is-switching + .service-subgrid .service-mini {
  opacity: 0;
  transform: translateY(8px);
}

.service-copy,
.service-visual,
.service-mini {
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.service-copy {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  column-gap: 24px;
  align-items: center;
}

.service-section .large-num {
  display: inline-grid;
  width: 102px;
  height: 102px;
  color: var(--service-accent-deep);
  font-family: var(--serif);
  font-size: 46px;
  font-weight: 900;
  line-height: 1;
  background:
    radial-gradient(circle at 35% 28%, #fff 0 38%, rgba(235, 249, 255, 0.94) 68%, rgba(255, 255, 255, 0.82) 100%);
  border: 1px solid rgba(158, 222, 255, 0.78);
  border-radius: 50%;
  box-shadow: 0 16px 28px rgba(0, 93, 190, 0.12), inset 0 0 0 8px rgba(255, 255, 255, 0.58);
  place-items: center;
}

.service-copy .large-num {
  grid-row: 1 / span 3;
  align-self: start;
  margin-top: 4px;
}

.service-copy h3,
.service-mini h3 {
  margin: 0 0 18px;
  color: #142035;
  font-family: var(--serif);
  font-size: clamp(32px, 2.8vw, 42px);
  font-weight: 900;
  line-height: 1.46;
  letter-spacing: var(--tracking-strong);
}

.service-copy h3 span {
  color: var(--service-accent);
}

.service-copy h3 .service-title-break {
  color: inherit;
}

@media (min-width: 761px) {
  .service-copy h3 {
    font-size: clamp(32px, 2.9vw, 42px);
    white-space: nowrap;
  }

  .service-mini h3 {
    font-size: 28px;
  }
}

.service-copy h3::after,
.service-mini h3::after {
  display: block;
  width: min(560px, 100%);
  margin-top: 14px;
  content: "";
  border-bottom: 3px dotted rgba(76, 201, 232, 0.82);
}

.service-copy p {
  margin: 0 0 32px;
  color: #172033;
  font-size: 16px;
  font-weight: 850;
  line-height: 1.95;
  letter-spacing: var(--tracking-body);
}

.service-copy h3,
.service-copy p,
.service-copy .pill-row {
  grid-column: 2;
}

.service-section .pill-row {
  gap: 12px;
}

.service-section .pill-row span {
  min-height: 48px;
  min-width: 112px;
  padding: 8px 20px;
  color: var(--service-accent-deep);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: var(--tracking-ui);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(221, 243, 255, 0.82));
  border: 1px solid rgba(146, 213, 249, 0.7);
  border-radius: 999px;
  box-shadow: 0 10px 20px rgba(42, 121, 188, 0.08);
}

.service-visual {
  position: relative;
  z-index: 1;
  min-height: 292px;
  margin: 0;
}

.service-visual::before {
  position: absolute;
  top: 52%;
  right: 2%;
  width: 84%;
  height: 50%;
  background: linear-gradient(90deg, rgba(226, 250, 249, 0.78), rgba(220, 243, 255, 0.36));
  border-radius: 52% 48% 42% 58%;
  content: "";
  transform: translateY(-50%) rotate(-5deg);
}

.service-illustration-img {
  position: relative;
  width: 100%;
  max-height: 352px;
  object-fit: contain;
  filter: drop-shadow(0 10px 18px rgba(0, 91, 188, 0.08));
}

.service-subgrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  margin-top: 34px;
}

.service-mini {
  --service-accent: #19bfae;
  --service-accent-deep: #008dba;
  position: relative;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  min-height: 205px;
  padding: 28px 190px 28px 30px;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 26%, rgba(217, 244, 255, 0.56), transparent 34%),
    rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(173, 225, 255, 0.9);
  border-radius: 24px;
  box-shadow: 0 24px 56px rgba(54, 123, 188, 0.11);
}

.service-mini:nth-child(2) {
  --service-accent: #6b90f1;
  --service-accent-deep: #005fca;
}

.service-mini::before {
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 18px;
  content: "";
  pointer-events: none;
}

.service-mini .large-num {
  width: 78px;
  height: 78px;
  color: var(--service-accent);
  font-size: 37px;
  box-shadow: 0 12px 24px rgba(0, 129, 194, 0.1), inset 0 0 0 7px rgba(255, 255, 255, 0.6);
}

.service-mini-copy {
  position: relative;
  z-index: 1;
}

.service-mini h3 {
  margin-bottom: 12px;
  font-size: clamp(24px, 2.1vw, 30px);
}

.service-mini h3::after {
  width: min(330px, 100%);
  margin-top: 10px;
  border-bottom-color: rgba(76, 201, 232, 0.8);
}

.service-mini .pill-row span {
  min-width: 92px;
  min-height: 42px;
  padding-inline: 14px;
  color: var(--service-accent-deep);
  font-size: 15px;
  white-space: nowrap;
}

.service-mini .pill-row {
  flex-wrap: nowrap;
  gap: 10px;
}

.mini-illustration-img {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 32px;
  width: 150px;
  max-height: 132px;
  object-fit: contain;
  filter: drop-shadow(0 8px 14px rgba(0, 91, 188, 0.07));
  transform: translateY(-50%);
}

.flow-section {
  position: relative;
  overflow: hidden;
  padding-top: clamp(48px, 4.2vw, 58px);
  padding-bottom: clamp(56px, 5vw, 66px);
  isolation: isolate;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(255, 255, 255, 0.96) 0 42%, rgba(255, 255, 255, 0) 71%),
    linear-gradient(148deg, rgba(225, 243, 255, 0.96), rgba(255, 255, 255, 0.82) 47%, rgba(232, 250, 247, 0.78));
}

.flow-section::before,
.flow-section::after {
  position: absolute;
  z-index: -2;
  content: "";
  pointer-events: none;
}

.flow-section::before {
  top: -74px;
  left: 7%;
  width: 84%;
  height: 278px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 0 0 55% 45%;
  transform: rotate(3deg);
}

.flow-section::after {
  right: -9%;
  bottom: -98px;
  width: 74%;
  height: 260px;
  background: rgba(209, 235, 255, 0.38);
  border-radius: 52% 0 0 0;
  transform: rotate(-7deg);
}

.flow-section .container {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 90px), 1360px);
}

.flow-bg {
  position: absolute;
  z-index: -1;
  display: block;
  pointer-events: none;
}

.flow-bg-wave-a {
  top: 48px;
  left: -6%;
  width: 70%;
  height: 210px;
  background: rgba(211, 235, 251, 0.46);
  border-radius: 0 0 48% 52%;
  transform: rotate(-5deg);
}

.flow-bg-wave-b {
  right: -9%;
  bottom: 24px;
  width: 78%;
  height: 160px;
  background: rgba(220, 249, 245, 0.5);
  border-radius: 48% 52% 0 0;
  transform: rotate(4deg);
}

.flow-bg-dots-a,
.flow-bg-dots-b {
  width: 150px;
  height: 150px;
  opacity: 0.48;
  background-image: radial-gradient(circle, rgba(74, 171, 235, 0.58) 1.6px, transparent 1.9px);
  background-size: 10px 10px;
  mask-image: radial-gradient(circle, #000 0 58%, transparent 73%);
}

.flow-bg-dots-a {
  top: 250px;
  left: 3.5%;
}

.flow-bg-dots-b {
  top: 52px;
  right: 4%;
  width: 176px;
  height: 176px;
}

.flow-bg-spark-a,
.flow-bg-spark-b {
  color: #9fc253;
  font-size: 28px;
  line-height: 1;
}

.flow-bg-spark-a {
  top: 228px;
  right: 18%;
}

.flow-bg-spark-b {
  bottom: 220px;
  left: 9%;
  color: #63cfe5;
}

.flow-bg-spark-a::before,
.flow-bg-spark-b::before {
  content: "✦";
}

.flow-section .section-heading {
  position: relative;
  max-width: 820px;
  margin: 0 auto 76px;
}

.flow-section .section-heading::before,
.flow-section .section-heading::after {
  position: absolute;
  top: -4px;
  color: #7bd1e7;
  font-size: 28px;
  line-height: 1;
  content: "✦";
}

.flow-section .section-heading::before {
  left: 22%;
  color: #9fc253;
}

.flow-section .section-heading::after {
  right: 22%;
}

.flow-section .section-heading h2 {
  position: relative;
  color: transparent;
  font-size: clamp(54px, 5.5vw, 82px);
  line-height: 1.2;
  letter-spacing: var(--tracking-display);
  background: linear-gradient(100deg, #004fb8 0%, #006dd7 54%, #19bfc4 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.flow-section .section-heading h2::before {
  position: absolute;
  bottom: -25px;
  left: 8%;
  width: 43%;
  height: 30px;
  border-bottom: 3px solid #197fe2;
  border-radius: 0 0 50% 50%;
  content: "";
  transform: rotate(3deg);
}

.flow-section .section-heading h2::after {
  position: absolute;
  right: 8%;
  bottom: -25px;
  display: block;
  width: 43%;
  height: 30px;
  margin: 0;
  background: none;
  border-bottom: 3px solid #16bfbf;
  border-radius: 0 0 50% 50%;
  content: "";
  transform: rotate(-3deg);
}

.flow-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
  margin-top: 42px;
  color: #1f2b40;
  font-size: 21px;
  font-weight: 850;
  letter-spacing: var(--tracking-body);
}

.flow-list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 42px;
  align-items: stretch;
  margin-top: 4px;
  padding-bottom: 92px;
}

.flow-list::before {
  display: none;
}

.flow-curve {
  position: absolute;
  z-index: 0;
  right: 7.4%;
  bottom: 24px;
  left: 7.2%;
  width: 85.4%;
  height: 148px;
  overflow: visible;
  pointer-events: none;
}

.flow-curve path {
  fill: none;
  stroke: url("#flow-curve-gradient");
  stroke-linecap: round;
  stroke-width: 5;
}

.flow-curve circle {
  fill: url("#flow-dot-gradient");
}

.flow-card {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: center;
  min-height: 392px;
  padding: 60px 18px 42px;
  text-align: center;
  background:
    radial-gradient(circle at 50% 0, rgba(226, 247, 255, 0.4), transparent 38%),
    rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(170, 222, 255, 0.9);
  border-radius: 28px;
  box-shadow: 0 28px 58px rgba(54, 123, 188, 0.13);
}

.flow-card::before {
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 22px;
  content: "";
  pointer-events: none;
}

.flow-card:not(:last-child)::after {
  position: absolute;
  top: 49%;
  right: -34px;
  width: 42px;
  height: 28px;
  background: linear-gradient(90deg, rgba(92, 145, 238, 0.7), rgba(61, 195, 215, 0.78));
  clip-path: polygon(0 38%, 70% 38%, 70% 0, 100% 50%, 70% 100%, 70% 62%, 0 62%);
  content: "";
  filter: drop-shadow(0 8px 10px rgba(15, 99, 198, 0.1));
  transform: translateY(-50%);
}

.flow-num {
  position: absolute;
  top: -42px;
  left: 50%;
  width: 86px;
  height: 86px;
  margin: 0;
  color: var(--blue);
  background:
    radial-gradient(circle at 35% 25%, #fff 0 42%, rgba(238, 250, 255, 0.96) 70%, rgba(255, 255, 255, 0.84) 100%);
  border: 1px solid rgba(188, 233, 255, 0.9);
  box-shadow: 0 16px 24px rgba(31, 134, 202, 0.14), inset 0 0 0 8px rgba(255, 255, 255, 0.5);
  transform: translateX(-50%);
}

.flow-card:nth-child(3) .flow-num,
.flow-card:nth-child(5) .flow-num {
  color: #13aaa9;
}

.flow-icon {
  width: 86px;
  height: 86px;
  margin: 0 auto 22px;
  opacity: 0.72;
}

.flow-illust {
  display: block;
  width: 142px;
  height: 142px;
  object-fit: contain;
  margin: 0 auto 24px;
  filter: drop-shadow(0 9px 12px rgba(31, 134, 202, 0.08));
}

.chat-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 42c0-17 15-30 34-30s34 13 34 30-15 30-34 30c-5 0-10-1-14-3L12 82l5-22c-5-5-7-11-7-18Zm24-4h1m13 0h1m13 0h1' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 42c0-17 15-30 34-30s34 13 34 30-15 30-34 30c-5 0-10-1-14-3L12 82l5-22c-5-5-7-11-7-18Zm24-4h1m13 0h1m13 0h1' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.checklist-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 14h36v14H30zM22 22h52v62H22zM34 44l6 6 12-14M34 65l6 6 12-14' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 14h36v14H30zM22 22h52v62H22zM34 44l6 6 12-14M34 65l6 6 12-14' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.idea-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M38 72h20M40 84h16M32 56c-6-5-10-12-10-22 0-15 11-25 26-25s26 10 26 25c0 10-4 17-10 22-4 3-6 7-6 12H38c0-5-2-9-6-12Z' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M38 72h20M40 84h16M32 56c-6-5-10-12-10-22 0-15 11-25 26-25s26 10 26 25c0 10-4 17-10 22-4 3-6 7-6 12H38c0-5-2-9-6-12Z' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.execute-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M25 70h46M31 70V42m17 28V26m17 44V50M29 26h38m-4-10 12 10-12 10' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M25 70h46M31 70V42m17 28V26m17 44V50M29 26h38m-4-10 12 10-12 10' fill='none' stroke='black' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

.flow-card h3 {
  margin: 0 0 12px;
  color: var(--blue);
  font-size: 24px;
  font-weight: 900;
  line-height: 1.54;
  letter-spacing: var(--tracking-strong);
  white-space: nowrap;
}

.flow-card:nth-child(3) h3,
.flow-card:nth-child(5) h3 {
  color: #0daca6;
}

.flow-card p {
  margin: 0;
  color: #1d293c;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.86;
  letter-spacing: var(--tracking-body);
}

/* PC shows the short mock copy, SP shows the long mock copy. */
.flow-desc-sp {
  display: none;
}

@media (max-width: 760px) {
  .flow-desc-pc {
    display: none;
  }

  .flow-desc-sp {
    display: inline;
  }
}

@media (min-width: 761px) {
  .flow-note .note-copy small {
    display: none;
  }
}

.flow-note,
.faq-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  width: min(720px, 100%);
  min-height: 86px;
  margin: 0 auto;
  padding: 18px 34px;
  font-size: 24px;
  font-family: var(--serif);
  letter-spacing: var(--tracking-strong);
  text-align: center;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid #9bdbf3;
  border-radius: 22px;
  box-shadow: 0 20px 44px rgba(54, 123, 188, 0.1);
}

.flow-note {
  position: relative;
  margin-top: 26px;
  overflow: hidden;
}

.flow-note::before,
.flow-note::after {
  position: absolute;
  color: #70d4e7;
  font-size: 22px;
  content: "✦";
}

.flow-note::before {
  top: 22px;
  left: 9%;
}

.flow-note::after {
  right: 11%;
  bottom: 26px;
  color: #9fc253;
}

.faq-section {
  position: relative;
  overflow: hidden;
  padding-top: clamp(48px, 4.2vw, 58px);
  padding-bottom: clamp(52px, 4.6vw, 62px);
  isolation: isolate;
  background:
    radial-gradient(ellipse at 50% 44%, rgba(255, 255, 255, 0.96) 0 44%, rgba(255, 255, 255, 0) 73%),
    linear-gradient(150deg, rgba(224, 243, 255, 0.97), rgba(255, 255, 255, 0.82) 48%, rgba(232, 250, 247, 0.78));
}

.faq-section::before,
.faq-section::after {
  position: absolute;
  z-index: -2;
  content: "";
  pointer-events: none;
}

.faq-section::before {
  top: -72px;
  left: 8%;
  width: 84%;
  height: 280px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 0 0 55% 45%;
  transform: rotate(4deg);
}

.faq-section::after {
  right: -10%;
  bottom: -94px;
  width: 74%;
  height: 260px;
  background: rgba(210, 236, 255, 0.4);
  border-radius: 52% 0 0 0;
  transform: rotate(-7deg);
}

.faq-section .container {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 96px), 1320px);
}

.faq-bg {
  position: absolute;
  z-index: -1;
  display: block;
  pointer-events: none;
}

.faq-bg-wave-a {
  top: 46px;
  left: -7%;
  width: 72%;
  height: 210px;
  background: rgba(211, 235, 251, 0.46);
  border-radius: 0 0 49% 51%;
  transform: rotate(-5deg);
}

.faq-bg-wave-b {
  right: -9%;
  bottom: 22px;
  width: 78%;
  height: 160px;
  background: rgba(220, 249, 245, 0.5);
  border-radius: 48% 52% 0 0;
  transform: rotate(4deg);
}

.faq-bg-dots-a,
.faq-bg-dots-b {
  width: 156px;
  height: 156px;
  opacity: 0.48;
  background-image: radial-gradient(circle, rgba(74, 171, 235, 0.58) 1.6px, transparent 1.9px);
  background-size: 10px 10px;
  mask-image: radial-gradient(circle, #000 0 58%, transparent 73%);
}

.faq-bg-dots-a {
  top: 244px;
  left: 3.5%;
}

.faq-bg-dots-b {
  top: 48px;
  right: 4%;
  width: 176px;
  height: 176px;
}

.faq-bg-spark-a,
.faq-bg-spark-b {
  color: #9fc253;
  font-size: 28px;
  line-height: 1;
}

.faq-bg-spark-a {
  top: 215px;
  left: 17%;
}

.faq-bg-spark-b {
  top: 246px;
  right: 18%;
  color: #67cfe5;
}

.faq-bg-spark-a::before,
.faq-bg-spark-b::before {
  content: "✦";
}

.faq-bg-dot-a,
.faq-bg-dot-b {
  width: 22px;
  height: 22px;
  background: rgba(91, 175, 237, 0.42);
  border-radius: 50%;
}

.faq-bg-dot-a {
  top: 240px;
  left: 13%;
}

.faq-bg-dot-b {
  top: 274px;
  right: 14%;
}

.faq-section .section-heading {
  position: relative;
  max-width: 860px;
  margin: 0 auto 58px;
}

.faq-section .section-heading::before,
.faq-section .section-heading::after {
  position: absolute;
  top: -4px;
  color: #7bd1e7;
  font-size: 28px;
  line-height: 1;
  content: "✦";
}

.faq-section .section-heading::before {
  left: 23%;
  color: #9fc253;
}

.faq-section .section-heading::after {
  right: 23%;
}

.faq-section .section-heading h2 {
  position: relative;
  color: transparent;
  font-size: clamp(58px, 5.6vw, 84px);
  line-height: 1.2;
  letter-spacing: var(--tracking-display);
  background: linear-gradient(100deg, #004fb8 0%, #006dd7 66%, #18bfbf 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.faq-section .section-heading h2::before {
  position: absolute;
  bottom: -18px;
  left: 9%;
  width: 40%;
  height: 30px;
  border-bottom: 3px solid #197fe2;
  border-radius: 0 0 50% 50%;
  content: "";
  transform: rotate(3deg);
}

.faq-section .section-heading h2::after {
  position: absolute;
  right: 9%;
  bottom: -18px;
  display: block;
  width: 40%;
  height: 30px;
  margin: 0;
  background: none;
  border-bottom: 3px solid #16bfbf;
  border-radius: 0 0 50% 50%;
  content: "";
  transform: rotate(-3deg);
}

.faq-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
  margin-top: 30px;
  color: #1f2b40;
  font-size: 21px;
  font-weight: 850;
  letter-spacing: var(--tracking-body);
}

.flow-note .people-icon,
.faq-note .people-icon,
.contact-panel .people-icon {
  width: 58px;
  height: 58px;
}

.flow-note .people-icon,
.faq-note .people-icon,
.contact-panel .people-icon.large {
  position: relative;
  overflow: visible;
  background: url("../img/icon-people-group.svg") center / contain no-repeat;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  filter: drop-shadow(0 12px 18px rgba(0, 112, 210, 0.14));
}

.flow-note .people-icon::before,
.faq-note .people-icon::before,
.contact-panel .people-icon.large::before {
  position: absolute;
  top: 5%;
  right: -16%;
  width: 17%;
  height: 17%;
  content: "";
  background: linear-gradient(135deg, #77d9e6, #9fc253);
  clip-path: polygon(50% 0, 62% 36%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0 50%, 38% 36%);
  filter: drop-shadow(0 3px 5px rgba(54, 123, 188, 0.12));
}

.faq-list {
  display: grid;
  gap: 18px;
  max-width: 1120px;
  margin: 0 auto;
}

.faq-item {
  overflow: hidden;
  background:
    radial-gradient(circle at 10% 0, rgba(225, 246, 255, 0.4), transparent 30%),
    rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(184, 226, 255, 0.86);
  border-radius: 20px;
  box-shadow: 0 24px 56px rgba(54, 123, 188, 0.12);
}

.faq-item button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: 18px 22px;
  align-items: center;
  width: 100%;
  padding: 30px 34px 18px;
  color: var(--blue);
  font-size: 25px;
  font-weight: 900;
  line-height: 1.55;
  letter-spacing: var(--tracking-strong);
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.faq-item button > span:first-child {
  display: grid;
  width: 54px;
  height: 54px;
  padding-bottom: 0.3em;
  color: #fff;
  font-size: 30px;
  font-family: var(--serif);
  line-height: 1;
  background:
    radial-gradient(circle at 32% 22%, rgba(255, 255, 255, 0.34), transparent 34%),
    linear-gradient(135deg, #61d4df, #0b5bd2);
  border-radius: 50%;
  box-shadow: 0 12px 20px rgba(0, 95, 202, 0.18);
  place-items: center;
}

.faq-question-text {
  min-width: 0;
}

.faq-item button i {
  position: relative;
  display: block;
  width: 42px;
  height: 42px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.faq-item button i::before,
.faq-item button i::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  content: "";
  background: currentColor;
  transform: translate(-50%, -50%);
}

.faq-item button i::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.faq-item.is-open button i::after {
  opacity: 0;
}

.faq-item button::after {
  display: block;
  width: 16px;
  height: 16px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: "";
  transform: rotate(-45deg);
  transition: transform 0.2s ease;
}

.faq-item:not(.is-open) button::after {
  transform: rotate(135deg);
}

.faq-item p {
  display: none;
  margin: 0 38px 24px 96px;
  padding-top: 14px;
  color: #1d293c;
  border-top: 2px dotted rgba(142, 202, 242, 0.9);
  font-size: 19px;
  font-weight: 800;
  line-height: 1.85;
  letter-spacing: var(--tracking-body);
}

.faq-item.is-open p {
  display: block;
}

.faq-note {
  position: relative;
  width: min(860px, 100%);
  min-height: 118px;
  margin-top: 38px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 22%, rgba(229, 249, 255, 0.74), transparent 26%),
    rgba(255, 255, 255, 0.84);
}

.faq-note::before,
.faq-note::after {
  position: absolute;
  color: #66d1e4;
  font-size: 22px;
  content: "✦";
}

.faq-note::before {
  top: 24px;
  left: 8%;
}

.faq-note::after {
  right: 10%;
  bottom: 28px;
  color: #9fc253;
}

.faq-note .people-icon {
  width: 68px;
  height: 68px;
  filter: drop-shadow(0 10px 14px rgba(0, 96, 202, 0.12));
}

.faq-note .note-copy {
  position: relative;
  z-index: 1;
}

.flow-note .note-copy {
  position: relative;
  z-index: 1;
  display: inline;
}

.flow-note small {
  display: block;
  margin-top: 2px;
  color: #22324a;
  font-family: var(--sans);
  font-size: 0.58em;
  font-weight: 850;
  letter-spacing: var(--tracking-body);
}

.flow-note .note-phrase,
.faq-note .note-phrase {
  display: inline-block;
  white-space: nowrap;
}

.contact-section {
  position: relative;
  z-index: 1;
  padding: clamp(68px, 5.6vw, 88px) 0 clamp(50px, 4.2vw, 66px);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(ellipse at 50% 35%, rgba(255, 255, 255, 0.98) 0 34%, rgba(255, 255, 255, 0) 68%),
    linear-gradient(152deg, #e7f6ff 0%, #fbfeff 48%, #eafbf7 100%);
}

.contact-section::before,
.contact-section::after {
  position: absolute;
  z-index: -2;
  content: "";
  pointer-events: none;
}

.contact-section::before {
  top: -88px;
  left: -4%;
  width: 110%;
  height: 265px;
  background: rgba(255, 255, 255, 0.58);
  border-radius: 0 0 48% 54%;
  transform: rotate(-2deg);
}

.contact-section::after {
  right: -16%;
  bottom: -95px;
  width: 82%;
  height: 252px;
  background: rgba(207, 235, 255, 0.42);
  border-radius: 55% 0 0 0;
  transform: rotate(-5deg);
}

.contact-bg,
.footer-bg {
  position: absolute;
  display: block;
  pointer-events: none;
}

.contact-bg-wave-a {
  z-index: -1;
  left: -7%;
  top: 72px;
  width: 70%;
  height: 170px;
  border: 2px solid rgba(50, 167, 227, 0.34);
  border-top: 0;
  border-right: 0;
  border-radius: 0 0 0 82%;
  transform: rotate(-6deg);
}

.contact-bg-wave-b {
  z-index: -1;
  right: -12%;
  bottom: 26px;
  width: 48%;
  height: 126px;
  border: 2px solid rgba(43, 197, 189, 0.46);
  border-top: 0;
  border-left: 0;
  border-radius: 0 0 70% 0;
  transform: rotate(4deg);
}

.contact-bg-dots,
.footer-bg-dots-a,
.footer-bg-dots-b {
  background-image: radial-gradient(circle, rgba(0, 112, 210, 0.34) 1.6px, transparent 1.8px);
  background-size: 10px 10px;
  opacity: 0.72;
  -webkit-mask-image: radial-gradient(circle, #000 0 56%, transparent 72%);
  mask-image: radial-gradient(circle, #000 0 56%, transparent 72%);
}

.contact-bg-dots {
  top: 96px;
  right: 4.5%;
  width: 112px;
  height: 112px;
}

.contact-bg-spark-a,
.contact-bg-spark-b,
.footer-bg-spark-a,
.footer-bg-spark-b {
  width: 18px;
  height: 18px;
  background: linear-gradient(135deg, #0d7adf, #47d5ce 58%, #afd45c);
  clip-path: polygon(50% 0, 62% 36%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0 50%, 38% 36%);
  filter: drop-shadow(0 4px 9px rgba(26, 149, 214, 0.18));
}

.contact-bg-spark-a {
  top: 122px;
  left: 7.5%;
}

.contact-bg-spark-b {
  right: 8%;
  bottom: 108px;
  width: 13px;
  height: 13px;
  background: linear-gradient(135deg, #73d8e6, #9fc253);
}

.contact-panel {
  position: relative;
  display: grid;
  grid-template-columns: 136px minmax(0, 1fr);
  grid-template-areas:
    "icon copy"
    "icon actions";
  column-gap: clamp(26px, 4vw, 58px);
  row-gap: 24px;
  align-items: center;
  width: min(calc(100% - 48px), 1010px);
  min-height: 314px;
  padding: 48px clamp(58px, 6vw, 88px) 52px;
  overflow: hidden;
  background:
    radial-gradient(circle at 91% 27%, rgba(205, 239, 255, 0.64), transparent 18%),
    radial-gradient(circle at 14% 76%, rgba(227, 250, 245, 0.72), transparent 24%),
    rgba(255, 255, 255, 0.88);
  border: 1.5px solid rgba(107, 203, 244, 0.75);
  border-radius: 98px 82px 78px 104px / 60px 86px 84px 72px;
  box-shadow:
    0 30px 68px rgba(58, 131, 196, 0.16),
    inset 0 0 0 1px rgba(255, 255, 255, 0.82);
}

.contact-panel::before,
.contact-panel::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.contact-panel::before {
  inset: 22px 24px;
  border-radius: 86px 70px 66px 92px / 54px 74px 72px 62px;
  background:
    radial-gradient(circle at 18% 18%, rgba(121, 217, 226, 0.14), transparent 17%),
    radial-gradient(circle at 82% 74%, rgba(0, 112, 210, 0.11), transparent 18%);
}

.contact-panel::after {
  right: 44px;
  top: 56px;
  width: 15px;
  height: 15px;
  background: #9fc253;
  clip-path: polygon(50% 0, 62% 36%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0 50%, 38% 36%);
  opacity: 0.9;
}

.contact-panel-line {
  position: absolute;
  left: -38px;
  right: -28px;
  bottom: 10px;
  height: 86px;
  border-bottom: 2px solid rgba(39, 187, 190, 0.52);
  border-radius: 0 0 58% 44%;
  transform: rotate(-1.6deg);
  opacity: 0.88;
  pointer-events: none;
}

.contact-panel .people-icon.large {
  z-index: 1;
  grid-area: icon;
  align-self: start;
  justify-self: center;
  width: 92px;
  height: 92px;
  margin-top: 34px;
  filter: drop-shadow(0 16px 22px rgba(0, 112, 210, 0.15));
}

.contact-copy {
  position: relative;
  z-index: 1;
  grid-area: copy;
  text-align: center;
}

.contact-copy h2 {
  margin: 0 0 10px;
  font-family: var(--serif);
  font-size: clamp(34px, 3.35vw, 46px);
  font-weight: 900;
  line-height: 1.36;
  letter-spacing: var(--tracking-strong);
  white-space: nowrap;
}

.contact-copy h2 .contact-leading,
.contact-copy h2 .contact-phrase {
  display: inline-block;
  color: inherit;
  white-space: nowrap;
}

.contact-copy h2 .contact-phrase {
  margin-left: 0.12em;
}

.contact-copy h2 .contact-accent {
  color: transparent;
  background: linear-gradient(90deg, #0065cc 0%, #18bfc3 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.contact-copy p {
  margin: 0;
  color: #233047;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: var(--tracking-body);
}

.contact-actions {
  position: relative;
  z-index: 1;
  grid-area: actions;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px;
}

.orange-cta,
.outline-cta {
  min-width: 298px;
  min-height: 72px;
  padding: 0 34px;
  border-radius: 999px;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: var(--tracking-ui);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.orange-cta {
  color: #fff;
  background: linear-gradient(135deg, #ff9418 0%, #ff6900 56%, #f45a00 100%);
  box-shadow:
    0 18px 28px rgba(255, 104, 0, 0.28),
    inset 0 2px 0 rgba(255, 255, 255, 0.3);
}

.outline-cta {
  color: #004da8;
  background: rgba(255, 255, 255, 0.92);
  border: 2px solid #005fca;
  box-shadow:
    0 14px 24px rgba(0, 95, 202, 0.12),
    inset 0 0 0 3px rgba(229, 247, 255, 0.65);
}

.site-footer {
  position: relative;
  padding: 86px 0 24px;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(255, 255, 255, 0.98) 0 44%, rgba(255, 255, 255, 0) 74%),
    linear-gradient(148deg, #eaf7ff 0%, #ffffff 48%, #e9fbf7 100%);
}

.site-footer::before,
.site-footer::after {
  position: absolute;
  z-index: -2;
  content: "";
  pointer-events: none;
}

.site-footer::before {
  top: -54px;
  left: -8%;
  width: 116%;
  height: 222px;
  background: rgba(255, 255, 255, 0.62);
  border-radius: 0 0 52% 48%;
  transform: rotate(3deg);
}

.site-footer::after {
  left: -7%;
  bottom: -128px;
  width: 48%;
  height: 230px;
  background: rgba(210, 236, 255, 0.46);
  border-radius: 0 62% 0 0;
  transform: rotate(8deg);
}

.footer-bg-shape {
  z-index: -1;
  left: 3%;
  right: 3%;
  top: 32px;
  bottom: 42px;
  background: rgba(255, 255, 255, 0.78);
  border-radius: 44% 56% 48% 52% / 18% 20% 24% 22%;
  box-shadow: inset 0 0 0 1px rgba(196, 232, 252, 0.42);
}

.footer-bg-dots-a {
  top: 38px;
  right: 4.5%;
  width: 104px;
  height: 104px;
}

.footer-bg-dots-b {
  left: 1.4%;
  bottom: 26px;
  width: 86px;
  height: 86px;
  opacity: 0.45;
}

.footer-bg-spark-a {
  left: 3.2%;
  top: 54%;
  width: 15px;
  height: 15px;
  background: linear-gradient(135deg, #54cce6, #9bc65c);
}

.footer-bg-spark-b {
  right: 6.4%;
  top: 38%;
  width: 13px;
  height: 13px;
  background: linear-gradient(135deg, #0d7adf, #56d0e2);
}

.footer-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 332px 1fr;
  gap: 58px;
  align-items: start;
  width: min(calc(100% - 96px), 1040px);
  padding: 0 0 34px;
  border-bottom: 1px solid rgba(127, 196, 232, 0.72);
}

.footer-brand img {
  width: 180px;
  margin-bottom: 18px;
  mix-blend-mode: multiply;
  filter: drop-shadow(0 8px 14px rgba(0, 107, 199, 0.08));
}

.footer-brand p {
  margin: 0 0 18px;
  color: #1d293c;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.82;
  letter-spacing: var(--tracking-body);
  white-space: nowrap;
}

.footer-brand .footer-contact {
  display: none;
}

.footer-brand address {
  display: grid;
  gap: 7px;
  padding: 17px 18px;
  font-style: normal;
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid rgba(158, 216, 244, 0.82);
  border-radius: 12px;
  box-shadow: 0 16px 32px rgba(54, 123, 188, 0.08);
}

.footer-brand address span,
.footer-brand address a {
  position: relative;
  display: block;
  padding-left: 28px;
  color: #24334a;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.66;
  letter-spacing: var(--tracking-ui);
}

.footer-brand address span::before,
.footer-brand address a::before {
  position: absolute;
  top: 0.2em;
  left: 0;
  width: 20px;
  height: 20px;
  content: "";
  background: linear-gradient(135deg, #006bd7, #18c4bf);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.footer-brand address span::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 56V20h18v36M30 56V8h22v48M7 56h50M18 29h6M18 39h6M36 17h7M36 27h7M36 37h7' fill='none' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 56V20h18v36M30 56V8h22v48M7 56h50M18 29h6M18 39h6M36 17h7M36 27h7M36 37h7' fill='none' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.footer-brand address a::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 16h48v32H8V16Zm0 2 24 19L56 18' fill='none' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 16h48v32H8V16Zm0 2 24 19L56 18' fill='none' stroke='black' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}

.footer-nav div {
  min-height: 206px;
  padding-left: clamp(28px, 3vw, 42px);
  border-left: 2px dotted rgba(118, 197, 246, 0.82);
}

.footer-nav h2 {
  position: relative;
  display: inline-block;
  margin: 0 0 22px;
  padding-bottom: 12px;
  color: var(--blue);
  font-size: 18px;
  font-weight: 900;
  line-height: 1.42;
  letter-spacing: var(--tracking-strong);
}

.footer-nav h2::after {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 118px;
  max-width: 100%;
  height: 2px;
  content: "";
  background-image: linear-gradient(90deg, #7ccdf6 45%, transparent 45%);
  background-size: 8px 2px;
}

.footer-nav h2::before {
  position: absolute;
  top: -8px;
  right: -22px;
  width: 12px;
  height: 12px;
  content: "";
  background: linear-gradient(135deg, #76d8e4, #9fc253);
  clip-path: polygon(50% 0, 62% 36%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0 50%, 38% 36%);
}

.footer-nav a {
  position: relative;
  display: block;
  margin: 0 0 17px;
  padding-left: 26px;
  color: #53657d;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.62;
  letter-spacing: var(--tracking-ui);
  white-space: nowrap;
}

.footer-nav a::before {
  position: absolute;
  top: 0.28em;
  left: 0;
  display: grid;
  width: 14px;
  height: 14px;
  color: #fff;
  font-size: 9px;
  line-height: 1;
  content: "›";
  background: linear-gradient(135deg, #7fb6f0, #93dce4);
  border-radius: 50%;
  place-items: center;
  box-shadow: 0 4px 8px rgba(0, 112, 210, 0.12);
}

.copyright {
  position: relative;
  z-index: 1;
  margin: 20px 0 0;
  color: #66758a;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.reveal {
  opacity: 1;
  transform: var(--reveal-transform, translateY(0));
  transition: opacity 0.65s ease, transform 0.65s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: var(--reveal-transform, translateY(0));
}

@media (max-width: 1120px) {
  .hero .container {
    width: min(calc(100% - 48px), var(--container));
  }

  .issues-section .container {
    width: min(calc(100% - 48px), 760px);
  }

  .issues-section .section-heading h2 {
    white-space: normal;
  }

  .site-header {
    grid-template-columns: auto auto auto;
  }

  .site-nav {
    position: absolute;
    top: 76px;
    left: 24px;
    right: 24px;
    display: none;
    flex-direction: column;
    gap: 0;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--shadow);
  }

  .site-nav.is-open {
    display: flex;
  }

  .nav-toggle {
    display: block;
    justify-self: end;
    order: 2;
  }

  .header-cta {
    order: 3;
  }

  .hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-visual {
    width: min(100%, 680px);
    max-width: 680px;
    margin: 0 auto;
  }

  .hero .hero-features,
  .issue-grid,
  .flow-list,
  .service-subgrid {
    grid-template-columns: 1fr;
  }

  .hero .hero-features {
    width: min(calc(100% - 48px), 680px);
    margin: 24px auto 0;
  }

  .feature-cross,
  .flow-list::before {
    display: none;
  }

  .issue-card {
    grid-template-columns: 110px 1fr;
  }

  .issue-grid {
    gap: 14px;
  }

  .sketch-img {
    width: 132px;
    height: 128px;
  }

  .strengths-section {
    padding: 78px 0 82px;
  }

  .strengths-section .container {
    width: min(calc(100% - 48px), var(--container));
  }

  .strengths-section .section-heading h2 {
    font-size: clamp(40px, 6vw, 58px);
    white-space: normal;
  }

  .strengths-section .section-heading h2::before {
    left: -28px;
    right: -28px;
    bottom: -44px;
  }

  .strength-bg {
    opacity: 0.62;
  }

  .strength-stack {
    display: grid;
    gap: 22px;
    min-height: 0;
  }

  .strength-stack::before,
  .strength-stack::after {
    display: none;
  }

  .strength-card,
  .speech-bubble {
    position: static;
    width: 100%;
    --reveal-transform: none;
    transform: none;
  }

  .strength-card {
    grid-template-columns: 112px minmax(0, 1fr) 220px;
    min-height: 0;
  }

  .strength-art {
    width: 220px;
  }

  .speech-bubble {
    border-radius: 28px;
  }

  .service-section .container {
    width: min(calc(100% - 48px), 900px);
  }

  .service-section .section-heading h2 .line {
    display: block;
    white-space: nowrap;
  }

  .service-tabs {
    width: min(100%, 860px);
  }

  .service-tab {
    min-height: 120px;
    padding-inline: 16px;
  }

  .service-tab.is-active {
    min-height: 148px;
  }

  .service-main {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 44px 34px;
  }

  .service-copy {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  .service-section .large-num {
    width: 96px;
    height: 96px;
    font-size: 56px;
  }

  .service-visual {
    min-height: 0;
    max-width: 620px;
    margin: 8px auto 0;
  }

  .service-subgrid {
    grid-template-columns: 1fr;
  }

  .service-mini {
    grid-template-columns: 80px minmax(0, 1fr);
    padding-right: 190px;
  }

  .flow-section .container {
    width: min(calc(100% - 48px), 760px);
  }

  .flow-section .section-heading {
    margin-bottom: 48px;
  }

  .flow-section .section-heading h2 {
    font-size: clamp(44px, 7vw, 64px);
  }

  .flow-list {
    gap: 46px;
    padding-bottom: 32px;
  }

  .flow-curve,
  .flow-card:not(:last-child)::after {
    display: none;
  }

  .flow-card {
    min-height: 0;
    padding: 58px 28px 32px;
  }

  .flow-num {
    top: -30px;
    width: 72px;
    height: 72px;
  }

  .contact-panel {
    grid-template-columns: 118px minmax(0, 1fr);
    grid-template-areas:
      "icon copy"
      "icon actions";
    width: min(calc(100% - 48px), 960px);
    min-height: 0;
    padding: 42px 48px 46px;
    text-align: center;
  }

  .contact-panel .people-icon.large {
    width: 82px;
    height: 82px;
    margin-top: 32px;
  }

  .contact-copy h2 {
    white-space: normal;
  }

  .contact-actions {
    gap: 16px;
  }
}

@media (max-width: 760px) {
  body {
    --tracking-body: 0.016em;
    --tracking-ui: 0.018em;
    --tracking-strong: 0.028em;
    --tracking-display: 0.038em;
    --tracking-eyebrow: 0.11em;
    background:
      linear-gradient(180deg, #f4fbff 0%, #ffffff 18%, #eef9ff 46%, #ffffff 72%, #f2fbff 100%);
    font-family: "Yu Gothic", "Yu Gothic Medium", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    font-weight: 700;
    letter-spacing: var(--tracking-body);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  .container {
    width: auto;
    margin-inline: 14px;
  }

  .hero .container {
    width: auto;
    margin-inline: 14px;
  }

  .site-header {
    grid-template-columns: minmax(0, 1fr) 44px 44px;
    min-height: 76px;
    gap: 8px;
    padding: 0 12px;
  }

  .site-brand {
    font-size: 20px;
    min-width: 0;
  }

  .site-brand img {
    width: 132px;
  }

  .header-cta {
    min-height: 44px;
    padding: 0 14px;
    font-size: 13px;
    justify-self: end;
  }

  .header-cta span {
    display: none;
  }

  .header-cta {
    width: 44px;
    min-height: 44px;
    padding: 0;
  }

  .header-cta svg {
    width: 19px;
    height: 19px;
  }

  .nav-toggle {
    width: 44px;
    height: 44px;
    justify-self: end;
  }

  .hero {
    padding-top: 86px;
    padding-bottom: 42px;
    background:
      radial-gradient(circle at 91% 11%, rgba(25, 195, 200, 0.18), transparent 22%),
      radial-gradient(circle at 20% 40%, rgba(255, 255, 255, 0.88), transparent 30%),
      linear-gradient(170deg, #f8fdff 0%, #edf9ff 54%, #ffffff 100%);
  }

  .hero-bg-line {
    top: 88px;
    height: 180px;
    opacity: 0.48;
  }

  .hero::after {
    bottom: -78px;
    height: 126px;
  }

  .hero-copy {
    width: min(100%, calc(100vw - 36px), 338px);
    margin-inline: auto;
  }

  .hero-kicker {
    margin: 4px 0 8px;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.62;
  }

  .hero-title {
    width: 100%;
    margin-bottom: -8px;
    transform: none;
    overflow: visible;
  }

  .hero-title img {
    width: min(100%, 304px);
    height: auto;
    filter: drop-shadow(0 4px 7px rgba(0, 111, 210, 0.08));
    transform: translateZ(0);
  }

  .hero-lead {
    gap: 0 0.32em;
    margin: 2px 0 12px;
    font-size: clamp(16px, 4.55vw, 18px);
    font-weight: 900;
    line-height: 1.48;
    word-break: normal;
  }

  .hero-text {
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    margin-bottom: 16px;
    font-size: clamp(12.8px, 3.35vw, 13.4px);
    font-weight: 800;
    line-height: 1.78;
    text-align: left;
    word-break: normal;
    line-break: strict;
    overflow-wrap: normal;
  }

  .hero-text-line {
    display: block;
    width: 100%;
    max-width: 100%;
  }

  .hero-text-line:first-child {
    max-width: 34em;
  }

  .hero-text-line:nth-child(2) {
    max-width: 32em;
  }

  .hero-brand-nowrap {
    display: inline-block;
    white-space: nowrap;
  }

  .sp-break {
    display: block;
  }

  .sp-inline {
    display: inline;
  }

  .hero-text-pc-tail {
    display: none;
  }

  .hero-text-line:first-child::after {
    content: none;
  }

  .primary-cta {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    width: min(calc(100vw - 48px), 328px);
    min-height: 76px;
    padding: 12px 16px;
    gap: 4px;
    white-space: normal;
    margin-inline: auto;
    box-shadow:
      0 16px 30px rgba(0, 112, 210, 0.22),
      inset 0 1px 0 rgba(255, 255, 255, 0.26);
  }

  .primary-cta small {
    margin-bottom: 2px;
    font-size: 11.5px;
    line-height: 1.36;
  }

  .primary-cta span:not(.cta-icon) {
    min-width: 0;
    font-size: 19px;
    line-height: 1.34;
    text-align: center;
    white-space: normal;
  }

  .cta-icon {
    width: 38px;
    height: 38px;
  }

  .primary-cta svg {
    width: 21px;
    height: 21px;
  }

  .cta-arrow {
    justify-self: center;
  }

  .free-note {
    margin-top: 8px;
    margin-left: 0;
    font-size: 12.5px;
    line-height: 1.5;
    text-align: center;
  }

  .hero-visual {
    width: min(100%, 326px);
    min-height: 346px;
    margin: 10px auto 0;
  }

  .hero-visual::before {
    inset: 16px 2px 20px;
    border-radius: 48% 43% 47% 43%;
  }

  .hero-visual::after {
    right: -2px;
    bottom: 46px;
    width: 86px;
    height: 86px;
    background-size: 9px 9px;
  }

  .photo-phone {
    top: 36px;
    left: 28px;
    width: 144px;
    height: 144px;
    border-width: 6px;
  }

  .photo-friends {
    top: 106px;
    right: 2px;
    width: 204px;
    height: 140px;
    border-width: 6px;
  }

  .photo-live {
    left: 2px;
    bottom: 70px;
    width: 194px;
    height: 130px;
    border-width: 6px;
  }

  .photo-product {
    right: 34px;
    bottom: 6px;
    width: 150px;
    height: 112px;
    border-width: 6px;
  }

  .hero-handcopy {
    top: 4px;
    right: 0;
    font-size: 13px;
    line-height: 1.5;
  }

  .hero-handcopy::after {
    width: 96px;
    border-bottom-width: 3px;
  }

  .hero-heart {
    top: 70px;
    right: 10px;
    width: 32px;
    height: 28px;
  }

  .hero-orbit {
    left: 8px;
    top: 158px;
    width: 286px;
    height: 116px;
    border-top-width: 3px;
  }

  .hero-orbit::after {
    right: 26px;
    bottom: -24px;
    width: 44px;
    height: 36px;
  }

  .hero .hero-features {
    width: auto;
    margin: 14px 14px 0;
    gap: 10px;
  }

  .feature-card {
    min-height: 0;
    padding: 16px 17px;
    border-radius: 18px;
    box-shadow:
      0 16px 30px rgba(43, 128, 194, 0.1),
      inset 0 1px 0 rgba(255, 255, 255, 0.9);
  }

  .feature-card h2 {
    font-size: 17px;
    line-height: 1.42;
  }

  .feature-card p {
    font-size: 13px;
    line-height: 1.62;
  }

  .section {
    padding: 76px 0 78px;
  }

  .section-heading {
    margin-bottom: 34px;
  }

  .heading-small {
    font-size: 24px;
  }

  .section-heading h2 {
    font-size: 24px;
    max-width: 330px;
  }

  .section-heading p:not(.section-eyebrow):not(.heading-small) {
    font-size: 15px;
  }

  .issues-section {
    padding: 72px 0 78px;
    background:
      radial-gradient(circle at 12% 6%, rgba(255, 255, 255, 0.98), transparent 34%),
      radial-gradient(circle at 92% 28%, rgba(196, 237, 255, 0.34), transparent 30%),
      linear-gradient(180deg, #eef9ff 0%, #ffffff 48%, #edf9f8 100%);
    border-top: 1px solid rgba(157, 216, 247, 0.32);
  }

  .issues-section::before,
  .issues-section::after {
    display: none;
  }

  .issues-section .container {
    width: auto;
    margin-inline: 14px;
  }

  .issues-section .section-heading {
    margin-bottom: 32px;
  }

  .issues-section .section-heading::before {
    top: 34px;
    right: auto;
    left: 64px;
    width: 24px;
    height: 32px;
    opacity: 0.34;
    transform: scale(0.46) rotate(-9deg);
  }

  .issues-section .section-heading::after {
    top: 72px;
    right: 58px;
    width: 20px;
    height: 28px;
    opacity: 0.28;
    transform: scale(0.38) rotate(12deg);
  }

  .issues-section .heading-small {
    font-size: 25px;
  }

  .issues-section .section-heading h2 {
    max-width: 360px;
    font-size: 31px;
    line-height: 1.3;
    letter-spacing: 0.032em;
    white-space: normal;
  }

  .issues-section .section-heading h2 .line {
    display: block;
  }

  .issues-section .section-heading h2 .issue-title-bottom {
    white-space: nowrap;
  }

  .issues-section .section-heading h2 .wall-word {
    margin-inline: 0.028em 0.018em;
    font-size: 0.98em;
    letter-spacing: 0.006em;
    line-height: 1.04;
    transform: translateY(0.005em);
  }

  .issues-section .section-heading h2 .wall-word::after {
    left: 0.01em;
    right: 0.01em;
    bottom: -0.17em;
    height: 3px;
  }

  .issues-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    font-size: 14px;
    line-height: 2.04;
  }

  .issue-lead {
    width: min(100%, 342px);
  }

  .issue-lead-sign {
    white-space: normal;
  }

  .issue-lead-line {
    display: block;
  }

  .issue-lead-sign {
    margin-top: 4px;
  }

  .issue-sp-line,
  .issue-structure-line {
    display: block;
  }

  .issue-structure-line {
    white-space: normal;
  }

  .clients {
    padding-top: 34px;
    padding-bottom: 46px;
    background: linear-gradient(180deg, #ffffff 0%, #f5fcff 100%);
  }

  .logo-strip {
    border-radius: 20px;
  }

  .logo-track {
    --logo-w: 848px;
    gap: 0;
    animation-duration: 24s;
  }

  .issue-card {
    grid-template-columns: 116px minmax(0, 1fr);
    grid-template-rows: auto;
    align-items: center;
    min-height: 174px;
    gap: 10px 14px;
    padding: 20px 16px 20px 14px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 253, 255, 0.94));
    border-radius: 22px;
    box-shadow:
      0 16px 34px rgba(43, 128, 194, 0.09),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);
  }

  .issue-grid {
    gap: 12px;
  }

  .issue-card:nth-child(2n) {
    margin-left: 8px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(241, 252, 255, 0.92));
  }

  .issue-card:nth-child(2n + 1) {
    margin-right: 6px;
  }

  .issue-card .number {
    position: absolute;
    top: 12px;
    left: 12px;
    width: 44px;
    height: 44px;
    font-size: 18px;
    justify-self: start;
  }

  .sketch-img {
    grid-column: 1;
    grid-row: 1;
    width: 124px;
    height: 124px;
    margin-top: 28px;
    justify-self: start;
  }

  .issue-card > div {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    width: auto;
  }

  .issue-card h3 {
    font-size: 17px;
    margin-bottom: 8px;
    line-height: 1.66;
  }

  .issue-card p {
    font-size: 12px;
    line-height: 1.96;
    overflow-wrap: break-word;
  }

  .issue-bottom p {
    margin-bottom: 64px;
    font-size: 18px;
    line-height: 2;
  }

  .issue-bottom h3 {
    font-size: 31px;
  }

  .issue-bottom {
    margin-top: 30px;
    margin-bottom: -6px;
    padding: 18px 2px 44px;
  }

  .issue-bottom::before {
    top: 24px;
    width: calc(100vw + 28px);
    height: 188px;
    clip-path: ellipse(72% 48% at 50% 58%);
  }

  .issue-bottom::after {
    top: 0;
    width: calc(100vw + 14px);
    height: 130px;
    background-size: 260% 100%;
  }

  .issue-bottom p::before {
    top: 0.2em;
    left: 20px;
    transform: scale(0.5) rotate(-10deg);
  }

  .issue-bottom p::after {
    top: 3.6em;
    right: 22px;
    transform: scale(0.42) rotate(8deg);
  }

  .issue-bottom h3::before {
    top: -51px;
    width: 13px;
    height: 13px;
    border-width: 3px;
  }

  .issue-bottom h3 span::after {
    top: 0.02em;
    right: -40px;
    width: 39px;
    height: 28px;
    opacity: 0.58;
  }

  .strengths-section {
    padding: 76px 0 80px;
    background:
      radial-gradient(circle at 85% 7%, rgba(190, 230, 255, 0.42), transparent 30%),
      linear-gradient(165deg, #f8fdff 0%, #ffffff 42%, #eef9ff 100%);
  }

  .strengths-section .container {
    width: auto;
    margin-inline: 14px;
  }

  .strengths-section .section-heading {
    margin-bottom: 34px;
  }

  .strengths-section .section-eyebrow {
    font-size: 13px;
  }

  .strengths-section .section-eyebrow::after {
    width: 180px;
    margin-top: 9px;
  }

  .strengths-section .section-heading h2 {
    max-width: 360px;
    font-size: 34px;
    line-height: 1.38;
    white-space: normal;
  }

  .strengths-section .section-heading h2::before {
    left: -14px;
    right: -14px;
    bottom: -38px;
    height: 58px;
  }

  .strength-wave,
  .strength-dot,
  .strength-orbit,
  .strength-halo {
    display: none;
  }

  .strength-bg {
    opacity: 0.48;
  }

  .strength-card {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 28px 24px;
    border-width: 3px;
    border-radius: 24px 26px 22px 24px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 253, 255, 0.94));
    box-shadow:
      0 18px 34px rgba(43, 128, 194, 0.1),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);
  }

  .strength-two {
    margin-left: 8px;
  }

  .strength-three {
    margin-right: 8px;
  }

  .strength-card::after {
    top: auto;
    right: 26px;
    bottom: 24px;
    left: auto;
    width: 20px;
    height: 28px;
    opacity: 0.4;
    transform: scale(0.6) rotate(10deg);
  }

  .strength-two::after {
    right: 34px;
    bottom: 30px;
    transform: scale(0.52) rotate(-10deg);
  }

  .strength-three::after {
    right: 28px;
    bottom: 32px;
    transform: scale(0.54) rotate(8deg);
  }

  .strength-num {
    font-size: 64px;
  }

  .strength-card h3 {
    font-size: 21px;
    line-height: 1.62;
  }

  .strength-card p {
    line-height: 1.96;
  }

  .strength-art {
    width: 120px;
    max-height: 96px;
  }

  .case-arrow {
    display: none;
  }

  .cases-section {
    padding: 76px 0 80px;
    background:
      radial-gradient(circle at 84% 10%, rgba(185, 226, 252, 0.48), transparent 28%),
      radial-gradient(circle at 10% 80%, rgba(119, 205, 246, 0.14), transparent 26%),
      linear-gradient(180deg, #f2fbff 0%, #ffffff 36%, #edf9ff 100%);
  }

  .cases-section .container {
    width: auto;
    margin-inline: 0;
  }

  .cases-section .section-heading {
    padding-inline: 22px;
  }

  .cases-section .section-heading h2 {
    display: block;
    width: calc(100vw - 48px);
    max-width: 350px;
    margin-inline: auto;
    font-size: clamp(35px, 9.6vw, 38px);
    line-height: 1.32;
    white-space: normal;
  }

  .cases-section .section-heading h2 .line {
    display: block;
    width: 100%;
    max-width: 100%;
    white-space: nowrap;
  }

  .cases-section .section-heading h2::before {
    left: -28px;
    right: -28px;
    bottom: -42px;
    height: 62px;
  }

  .case-track {
    --case-card-size: clamp(288px, 82vw, 326px);
    grid-auto-columns: var(--case-card-size);
    gap: 14px;
    padding: 6px 38px 54px 22px;
    scroll-padding-inline: 22px;
    -webkit-overflow-scrolling: touch;
  }

  .case-shell {
    margin-inline: 0;
    padding-top: 10px;
  }

  .case-card {
    min-height: 0;
    padding: 22px 18px 24px;
    border-radius: 23px;
    box-shadow:
      0 18px 36px rgba(43, 128, 194, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);
  }

  .case-card::before {
    top: 18px;
    left: 84px;
  }

  .case-card::after {
    top: 96px;
    left: 18px;
  }

  .case-card .case-index {
    top: 18px;
    left: 18px;
    width: 64px;
    height: 64px;
    font-size: 27px;
  }

  .case-card h3 {
    margin: 8px 0 0 82px;
    font-size: 27px;
    line-height: 1.2;
  }

  .case-card h3 span {
    font-size: 14px;
  }

  .case-type {
    margin: 8px 0 18px 82px;
    font-size: 13.5px;
  }

  .case-type::before {
    width: 21px;
    height: 21px;
  }

  .case-card img {
    border-radius: 11px;
  }

  .case-card p:not(.case-index):not(.case-type) {
    margin: 16px 2px 14px;
    font-size: 14px;
    line-height: 1.92;
  }

  .tag-row {
    gap: 8px;
  }

  .tag-row span {
    min-width: 0;
    min-height: 34px;
    padding: 6px 13px;
    font-size: 12.5px;
    white-space: nowrap;
  }

  .service-section {
    padding-top: 78px;
    padding-bottom: 80px;
    background:
      radial-gradient(circle at 8% 16%, rgba(255, 255, 255, 0.96), transparent 30%),
      radial-gradient(circle at 88% 42%, rgba(143, 216, 247, 0.2), transparent 27%),
      linear-gradient(180deg, #f8fdff 0%, #eef9ff 100%);
  }

  .service-section .container {
    width: auto;
    margin-inline: 14px;
  }

  .service-bg-wave-a,
  .service-bg-wave-b,
  .service-bg-orbit-a {
    display: none;
  }

  .service-bg-dots-a {
    top: 128px;
    left: -46px;
    width: 124px;
    height: 124px;
    opacity: 0.3;
  }

  .service-bg-dots-b {
    top: 34px;
    right: -58px;
    width: 132px;
    height: 132px;
    opacity: 0.32;
  }

  .service-section .section-heading {
    margin-bottom: 30px;
  }

  .service-section .section-heading::before,
  .service-section .section-heading::after {
    display: none;
  }

  .service-section .section-heading h2 {
    font-size: clamp(24px, 7.4vw, 31px);
    line-height: 1.44;
    white-space: normal;
  }

  .service-section .section-heading h2 span span {
    margin-inline: 4px 2px;
    font-size: 1.34em;
  }

  .service-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    font-size: 15px;
  }

  .service-tabs {
    align-items: flex-end;
    display: flex;
    width: calc(100% + 28px);
    min-height: 104px;
    margin-inline: -14px;
    gap: 9px;
    padding: 0 54px 6px 14px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 14px 58px;
    touch-action: pan-x;
    -webkit-overflow-scrolling: touch;
  }

  .service-tabs::-webkit-scrollbar {
    display: none;
  }

  .service-tabs::before {
    display: none;
  }

  .service-tabs::after {
    position: sticky;
    right: -62px;
    z-index: 6;
    flex: 0 0 36px;
    align-self: stretch;
    min-height: 92px;
    margin-left: -36px;
    content: "";
    pointer-events: none;
    background: linear-gradient(90deg, rgba(245, 252, 255, 0), rgba(238, 249, 255, 0.88) 78%);
  }

  .service-tab {
    flex: 0 0 min(52vw, 174px);
    min-height: 88px;
    padding: 12px 14px 12px;
    border-radius: 20px 20px 0 0;
    scroll-snap-align: start;
    transform: none;
    box-shadow:
      0 14px 28px rgba(43, 128, 194, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.94);
  }

  .service-tab.is-active {
    min-height: 104px;
    transform: none;
  }

  .service-tab::after {
    width: 26px;
    height: 17px;
  }

  .service-tab:hover,
  .service-tab.is-active:hover {
    transform: none;
  }

  .service-tab-num,
  .service-tab.is-active .service-tab-num {
    width: 34px;
    height: 34px;
    margin-bottom: 6px;
    font-size: 16px;
  }

  .service-tab h3 {
    font-size: 19px;
    line-height: 1.24;
  }

  .service-tab p {
    margin-top: 5px;
    font-size: 11px;
    line-height: 1.44;
  }

  .service-main,
  .service-mini,
  .contact-panel {
    padding: 28px 22px;
  }

  .contact-section {
    padding-top: 68px;
    padding-bottom: 58px;
    background:
      radial-gradient(circle at 8% 22%, rgba(255, 255, 255, 0.96), transparent 30%),
      linear-gradient(180deg, #f2fbff 0%, #ffffff 100%);
  }

  .contact-bg-wave-a,
  .contact-bg-wave-b {
    display: none;
  }

  .contact-bg-dots {
    top: 74px;
    right: -38px;
    width: 88px;
    height: 88px;
  }

  .contact-bg-spark-a {
    top: 122px;
    left: 18px;
  }

  .contact-bg-spark-b {
    right: 18px;
    bottom: 72px;
  }

  .contact-panel {
    grid-template-columns: 1fr;
    grid-template-areas:
      "icon"
      "copy"
      "actions";
    width: auto;
    margin-inline: 14px;
    border-radius: 36px 32px 34px 38px;
    row-gap: 16px;
    justify-items: center;
    text-align: center;
    box-shadow:
      0 20px 38px rgba(43, 128, 194, 0.1),
      inset 0 1px 0 rgba(255, 255, 255, 0.95);
  }

  .contact-panel::before {
    inset: 12px;
    border-radius: 30px;
  }

  .contact-panel::after {
    top: 22px;
    right: 24px;
  }

  .contact-panel-line {
    display: none;
  }

  .contact-panel .people-icon.large {
    width: 64px;
    height: 64px;
    margin-top: 0;
  }

  .service-main {
    border-radius: 22px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(249, 253, 255, 0.95));
    box-shadow:
      0 18px 38px rgba(43, 128, 194, 0.11),
      inset 0 1px 0 rgba(255, 255, 255, 0.98);
  }

  .service-copy {
    grid-template-columns: 1fr;
  }

  .service-copy .large-num {
    grid-row: auto;
    margin: 0 0 18px;
  }

  .service-copy h3,
  .service-copy p,
  .service-copy .pill-row {
    grid-column: 1;
  }

  .service-section .large-num,
  .service-mini .large-num {
    width: 76px;
    height: 76px;
    font-size: 44px;
  }

  .service-copy h3,
  .service-mini h3,
  .contact-copy h2 {
    font-size: 25px;
  }

  .contact-copy h2 {
    line-height: 1.54;
  }

  .contact-copy p {
    font-size: 14px;
    line-height: 1.9;
  }

  .service-copy p {
    font-size: 15px;
    line-height: 2.04;
  }

  .service-copy h3,
  .service-mini h3 {
    line-height: 1.52;
  }

  .service-copy h3 {
    font-size: 22.5px;
    letter-spacing: 0.018em;
    white-space: nowrap;
  }

  .service-section .pill-row {
    gap: 8px;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .service-section .pill-row::-webkit-scrollbar {
    display: none;
  }

  .service-section .pill-row span,
  .service-mini .pill-row span {
    flex: 0 0 auto;
    min-width: 0;
    min-height: 38px;
    padding: 7px 14px;
    font-size: 13px;
    white-space: nowrap;
  }

  .service-copy .pill-row {
    gap: 6px;
    overflow-x: visible;
  }

  .service-copy .pill-row span {
    padding: 6px 10px;
    font-size: 12px;
    letter-spacing: 0.014em;
  }

  .service-visual {
    margin-top: 18px;
  }

  .service-illustration-img {
    max-height: 260px;
  }

  .service-mini {
    grid-template-columns: 1fr;
    gap: 14px;
    min-height: 0;
    border-radius: 21px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 253, 255, 0.94));
    box-shadow:
      0 16px 30px rgba(43, 128, 194, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);
  }

  .mini-illustration-img {
    position: relative;
    top: auto;
    right: auto;
    width: 168px;
    max-height: 122px;
    justify-self: end;
    transform: none;
  }

  .floating-logo {
    position: static;
    width: 112px;
    margin: 0 0 -26px 18px;
  }

  .service-section > .floating-logo {
    width: 112px;
    margin: 0 0 -26px 18px;
  }

  .flow-list {
    gap: 46px;
  }

  .flow-section {
    padding-top: 76px;
    padding-bottom: 80px;
    background:
      radial-gradient(circle at 16% 22%, rgba(169, 220, 250, 0.24), transparent 28%),
      radial-gradient(circle at 92% 72%, rgba(102, 210, 196, 0.16), transparent 25%),
      linear-gradient(180deg, #f6fcff 0%, #ffffff 50%, #eef9ff 100%);
  }

  .flow-section .container {
    width: auto;
    margin-inline: 14px;
  }

  .flow-bg-wave-a,
  .flow-bg-wave-b {
    display: none;
  }

  .flow-bg-dots-a {
    top: 170px;
    left: -58px;
    width: 118px;
    height: 118px;
    opacity: 0.28;
  }

  .flow-bg-dots-b {
    top: 34px;
    right: -64px;
    width: 128px;
    height: 128px;
    opacity: 0.3;
  }

  .flow-section .section-heading {
    margin-bottom: 34px;
  }

  .flow-section .section-heading::before,
  .flow-section .section-heading::after {
    display: none;
  }

  .flow-section .section-heading h2 {
    font-size: 42px;
    line-height: 1.24;
  }

  .flow-section .section-heading h2::before {
    bottom: -24px;
    left: 11%;
    width: 40%;
    height: 24px;
  }

  .flow-section .section-heading h2::after {
    right: 11%;
    bottom: -24px;
    width: 40%;
    height: 24px;
  }

  .flow-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 36px;
    font-size: 13px;
    letter-spacing: 0.006em;
    white-space: nowrap;
  }

  .flow-illust {
    width: 122px;
    height: 122px;
  }

  .flow-card {
    padding-top: 64px;
  }

  .flow-num {
    top: -30px;
    width: 72px;
    height: 72px;
    box-shadow:
      0 12px 20px rgba(31, 134, 202, 0.12),
      inset 0 0 0 7px rgba(255, 255, 255, 0.56);
  }

  .flow-card h3 {
    font-size: 21px;
    line-height: 1.58;
    white-space: nowrap;
  }

  .flow-card p {
    font-size: 14px;
    line-height: 1.9;
  }

  .flow-note,
  .faq-note {
    font-size: 19px;
  }

  .flow-note {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    min-height: 96px;
    padding: 20px 18px;
    font-size: 17px;
    line-height: 1.68;
  }

  .flow-note .note-copy {
    display: inline;
    max-width: none;
    text-align: left;
  }

  .flow-note .note-phrase {
    white-space: nowrap;
  }

  .faq-section {
    padding-top: 76px;
    padding-bottom: 80px;
    background:
      radial-gradient(circle at 84% 20%, rgba(196, 237, 255, 0.34), transparent 30%),
      linear-gradient(180deg, #edf9ff 0%, #ffffff 46%, #f2fbff 100%);
  }

  .faq-section .container {
    width: auto;
    margin-inline: 14px;
  }

  .faq-bg-wave-a,
  .faq-bg-wave-b {
    display: none;
  }

  .faq-bg-dots-a {
    top: 170px;
    left: -58px;
    width: 118px;
    height: 118px;
    opacity: 0.28;
  }

  .faq-bg-dots-b {
    top: 34px;
    right: -64px;
    width: 128px;
    height: 128px;
    opacity: 0.3;
  }

  .faq-bg-dot-a,
  .faq-bg-dot-b {
    display: none;
  }

  .faq-section .section-heading {
    margin-bottom: 34px;
  }

  .faq-section .section-heading::before,
  .faq-section .section-heading::after {
    display: none;
  }

  .faq-section .section-heading h2 {
    font-size: 42px;
    line-height: 1.24;
  }

  .faq-section .section-heading h2::before {
    bottom: -18px;
    left: 11%;
    width: 40%;
    height: 24px;
  }

  .faq-section .section-heading h2::after {
    right: 11%;
    bottom: -18px;
    width: 40%;
    height: 24px;
  }

  .faq-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 24px;
    font-size: 15px;
  }

  .faq-list {
    gap: 14px;
  }

  .faq-item {
    border-radius: 20px;
    box-shadow:
      0 14px 28px rgba(43, 128, 194, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.94);
  }

  .faq-item button {
    position: relative;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    padding: 18px 70px 12px 16px;
    font-size: 16px;
    line-height: 1.66;
  }

  .faq-item button > span:first-child {
    width: 38px;
    height: 38px;
    font-size: 24px;
  }

  .faq-item button i {
    position: absolute;
    top: 50%;
    right: 38px;
    width: 34px;
    height: 34px;
    transform: translateY(-50%);
  }

  .faq-item button::after {
    position: absolute;
    top: 50%;
    right: 16px;
    width: 12px;
    height: 12px;
    margin-top: -7px;
  }

  .faq-item p {
    margin: 0 18px 20px 70px;
    font-size: 15px;
    line-height: 1.9;
  }

  .faq-note {
    flex-direction: row;
    gap: 14px;
    min-height: 104px;
    margin-top: 28px;
    padding: 22px 20px;
    font-size: 18px;
    line-height: 1.75;
    border-radius: 22px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(247, 253, 255, 0.86));
    box-shadow:
      0 16px 32px rgba(43, 128, 194, 0.09),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);
  }

  .faq-note .people-icon {
    flex: 0 0 auto;
    width: 58px;
    height: 58px;
  }

  .contact-actions {
    flex-direction: column;
    width: 100%;
    gap: 12px;
  }

  .orange-cta,
  .outline-cta {
    width: 100%;
    min-width: 0;
    min-height: 62px;
    padding: 0 20px;
    font-size: 16px;
  }

  .site-footer {
    padding-top: 58px;
    background:
      radial-gradient(circle at 84% 10%, rgba(183, 226, 252, 0.32), transparent 28%),
      linear-gradient(180deg, #f7fdff 0%, #edf8ff 100%);
  }

  .footer-bg-shape {
    left: 10px;
    right: 10px;
    top: 28px;
    bottom: 44px;
    border-radius: 34px 44px 42px 34px;
    box-shadow:
      0 18px 36px rgba(43, 128, 194, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.86);
  }

  .footer-bg-dots-a {
    top: 24px;
    right: -42px;
    width: 92px;
    height: 92px;
  }

  .footer-bg-dots-b {
    left: -42px;
    bottom: 12px;
  }

  .footer-grid,
  .footer-nav {
    grid-template-columns: 1fr;
    gap: 26px;
    width: auto;
    margin-inline: 22px;
  }

  .footer-nav div {
    padding-left: 0;
    border-left: 0;
    border-top: 2px dotted #9fd5f4;
    padding-top: 18px;
    min-height: 0;
  }

  .footer-brand img {
    width: 158px;
  }

  .footer-brand p {
    font-size: 14px;
    line-height: 1.92;
    white-space: nowrap;
  }

  .footer-nav h2 {
    margin-bottom: 16px;
  }

  .footer-nav a {
    margin-bottom: 12px;
    line-height: 1.68;
  }
}

@media (max-width: 760px) and (max-height: 720px) {
  .hero {
    padding-top: 78px;
  }

  .hero-kicker {
    margin-bottom: 4px;
    font-size: 13.5px;
    line-height: 1.54;
  }

  .hero-title img {
    width: min(100%, 286px);
  }

  .hero-lead {
    margin-bottom: 8px;
    font-size: 17px;
    line-height: 1.42;
  }

  .hero-text {
    margin-bottom: 10px;
    font-size: 13px;
    line-height: 1.66;
  }

  .primary-cta {
    min-height: 68px;
    padding: 10px 13px;
  }

  .primary-cta small {
    font-size: 11px;
    line-height: 1.32;
  }

  .primary-cta span:not(.cta-icon) {
    font-size: 18px;
    line-height: 1.3;
  }

  .free-note {
    margin-top: 5px;
    font-size: 12px;
  }

  .hero-visual {
    width: min(100%, 294px);
    min-height: 268px;
    margin-top: -4px;
  }

  .hero-visual::before {
    inset: 12px 0 16px;
  }

  .hero-visual::after {
    right: -2px;
    bottom: 32px;
    width: 72px;
    height: 72px;
  }

  .photo-phone {
    top: 30px;
    left: 25px;
    width: 114px;
    height: 114px;
    border-width: 5px;
  }

  .photo-friends {
    top: 88px;
    right: 0;
    width: 182px;
    height: 124px;
    border-width: 5px;
  }

  .photo-live {
    left: 2px;
    bottom: 50px;
    width: 162px;
    height: 108px;
    border-width: 5px;
  }

  .photo-product {
    right: 28px;
    bottom: 2px;
    width: 124px;
    height: 94px;
    border-width: 5px;
  }

  .hero-handcopy {
    top: 0;
    right: 1px;
    font-size: 11.5px;
    line-height: 1.45;
  }

  .hero-handcopy::after {
    width: 82px;
    height: 12px;
  }

  .hero-heart {
    top: 56px;
    width: 27px;
    height: 24px;
  }

  .hero-orbit {
    top: 128px;
    left: 6px;
    width: 258px;
    height: 94px;
  }

  .hero-orbit::before {
    top: -9px;
    left: 42px;
    width: 14px;
    height: 14px;
  }

  .hero-orbit::after {
    right: 24px;
    bottom: -20px;
    width: 36px;
    height: 30px;
  }
}

@media (max-width: 760px) {
  body {
    --tracking-body: 0.024em;
    --tracking-ui: 0.024em;
    --tracking-strong: 0.036em;
    --tracking-display: 0.048em;
  }

  .container,
  .hero .container,
  .issues-section .container,
  .strengths-section .container,
  .service-section .container,
  .flow-section .container,
  .faq-section .container {
    margin-inline: 16px;
  }

  .site-header {
    grid-template-columns: minmax(0, 1fr) 34px;
    min-height: 50px;
    padding: 0 20px;
    gap: 8px;
    background: rgba(248, 252, 255, 0.9);
  }

  .site-brand img {
    width: 74px;
  }

  .header-cta {
    display: none;
  }

  .nav-toggle {
    width: 32px;
    height: 32px;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .nav-toggle span {
    width: 22px;
    height: 2px;
    background: #006bd7;
  }

  .site-nav {
    top: 50px;
    left: 16px;
    right: 16px;
  }

  .hero {
    padding-top: 58px;
    padding-bottom: 0;
    background:
      radial-gradient(circle at 88% 24%, rgba(25, 195, 200, 0.16), transparent 28%),
      radial-gradient(circle at 13% 59%, rgba(255, 255, 255, 0.86), transparent 25%),
      linear-gradient(170deg, #f7fcff 0%, #eaf8ff 58%, #eefbfb 100%);
  }

  .hero-bg-line {
    top: 58px;
    height: 118px;
    opacity: 0.34;
  }

  .hero::after {
    bottom: -34px;
    height: 78px;
  }

  .hero-copy {
    width: min(100%, 356px);
  }

  .hero-kicker {
    margin: 5px 0 4px;
    font-size: 9.5px;
    line-height: 1.45;
    text-align: center;
  }

  .hero-title {
    margin: 0 auto -3px;
    text-align: center;
  }

  .hero-title img {
    width: min(100%, 280px);
  }

  .hero-lead {
    margin: 0 0 6px;
    font-size: 14.5px;
    line-height: 1.38;
    justify-content: center;
  }

  .hero-text {
    width: min(100%, 318px);
    margin-bottom: 12px;
    font-size: 10.8px;
    line-height: 1.78;
    text-align: center;
  }

  .hero-text-line {
    width: auto;
  }

  .hero-text-line:first-child,
  .hero-text-line:nth-child(2) {
    max-width: none;
  }

  .hero-text .sp-break {
    display: none;
  }

  .hero-text-line:nth-child(2)::after {
    display: block;
    content: "成果まで伴走します。";
  }

  .hero-text-line:nth-child(2) .sp-inline {
    display: none;
  }

  .primary-cta {
    grid-template-columns: 40px minmax(0, 1fr) 26px;
    width: min(calc(100vw - 90px), 304px);
    min-height: 58px;
    padding: 8px 16px;
    gap: 4px;
    color: #fff;
    background:
      radial-gradient(circle at 18% 20%, rgba(255, 255, 255, 0.32), transparent 26%),
      linear-gradient(135deg, #ff8c1a 0%, #ff6d00 54%, #ffb13a 100%);
    box-shadow:
      0 13px 22px rgba(255, 106, 0, 0.3),
      inset 0 1px 0 rgba(255, 255, 255, 0.32);
  }

  .primary-cta small {
    display: none;
  }

  .primary-cta span:not(.cta-icon) {
    font-size: 17px;
    line-height: 1.2;
    letter-spacing: 0.034em;
    white-space: nowrap;
  }

  .cta-icon {
    width: 34px;
    height: 34px;
    background: rgba(255, 255, 255, 0.98);
  }

  .primary-cta svg {
    width: 18px;
    height: 18px;
  }

  .primary-cta .cta-icon svg {
    color: #ff7300;
  }

  .free-note {
    margin-top: 8px;
    font-size: 10.2px;
    line-height: 1.45;
  }

  .free-note::before {
    width: 14px;
    height: 14px;
    font-size: 10px;
  }

  .hero-visual {
    width: min(100%, 334px);
    min-height: 258px;
    margin-top: 4px;
  }

  .hero-visual::before {
    inset: 22px 14px 18px;
    border-width: 1px;
  }

  .hero-visual::after {
    right: -1px;
    bottom: 50px;
    width: 74px;
    height: 74px;
    opacity: 0.48;
  }

  .photo-phone {
    top: 34px;
    left: 26px;
    width: 104px;
    height: 104px;
    border-width: 5px;
  }

  .photo-friends {
    top: 66px;
    right: 13px;
    width: 166px;
    height: 110px;
    border-width: 5px;
  }

  .photo-live {
    left: 16px;
    bottom: 44px;
    width: 170px;
    height: 110px;
    border-width: 5px;
  }

  .photo-product {
    right: 42px;
    bottom: 18px;
    width: 126px;
    height: 88px;
    border-width: 5px;
  }

  .hero-handcopy {
    top: 0;
    right: 16px;
    font-size: 10.8px;
    line-height: 1.42;
  }

  .hero-handcopy::after {
    width: 82px;
    height: 11px;
  }

  .hero-heart {
    top: 84px;
    right: 5px;
    width: 28px;
    height: 25px;
  }

  .hero-orbit {
    left: 20px;
    top: 126px;
    width: 260px;
    height: 92px;
    border-top-width: 2px;
  }

  .hero-orbit::before {
    top: -7px;
    left: 48px;
    width: 13px;
    height: 13px;
  }

  .hero-orbit::after {
    right: 40px;
    bottom: -18px;
    width: 34px;
    height: 28px;
  }

  .hero .hero-features {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 12px minmax(0, 1fr) 12px minmax(0, 1fr);
    align-items: center;
    gap: 5px;
    width: auto;
    margin: 4px 14px 0;
  }

  .feature-cross {
    display: block;
    width: 12px;
    height: 12px;
  }

  .feature-cross::before,
  .feature-cross::after {
    width: 12px;
    height: 1.5px;
  }

  .feature-card {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 4px;
    min-height: 98px;
    padding: 10px 5px 9px;
    border-radius: 13px;
    text-align: center;
  }

  .feature-icon {
    grid-row: auto;
    width: 36px;
    height: 36px;
    border-width: 1.5px;
  }

  .feature-icon::before {
    inset: 8px;
  }

  .feature-card h2 {
    margin: 0;
    font-size: 10.8px;
    line-height: 1.3;
    white-space: normal;
  }

  .feature-card p {
    grid-column: auto;
    font-size: 9.2px;
    line-height: 1.48;
  }

  .clients {
    display: none;
  }

  .section {
    padding: 48px 0 50px;
  }

  .issues-section,
  .strengths-section,
  .cases-section,
  .service-section,
  .flow-section,
  .faq-section,
  .contact-section,
  .site-footer {
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% 100%;
  }

  .issues-section { background-image: url("../img/bg-canvas-sp-a.svg"); }
  .strengths-section { background-image: url("../img/bg-canvas-sp-b.svg"); }
  .cases-section { background-image: url("../img/bg-canvas-sp-c.svg"); }
  .service-section { background-image: url("../img/bg-canvas-sp-a.svg"); }
  .flow-section { background-image: url("../img/bg-canvas-sp-c.svg"); }
  .faq-section { background-image: url("../img/bg-canvas-sp-b.svg"); }
  .contact-section,
  .site-footer { background-image: url("../img/bg-canvas-sp-footer.svg"); }

  .issues-section::before,
  .issues-section::after,
  .strengths-section::before,
  .strengths-section::after,
  .cases-section::before,
  .cases-section::after,
  .service-section::before,
  .service-section::after,
  .flow-section::before,
  .flow-section::after,
  .faq-section::before,
  .faq-section::after,
  .contact-section::before,
  .contact-section::after,
  .site-footer::before,
  .site-footer::after {
    display: none;
  }

  .section-eyebrow {
    font-size: 10px;
  }

  .issues-section {
    padding: 20px 0 20px;
    border-top: 0;
    background:
      radial-gradient(ellipse at 50% 4%, rgba(255, 255, 255, 0.96) 0 34%, transparent 68%),
      radial-gradient(circle at 92% 16%, rgba(196, 237, 255, 0.28), transparent 25%),
      linear-gradient(180deg, #edf9ff 0%, #ffffff 48%, #eefaf7 100%);
  }

  .issues-section .section-heading {
    margin-bottom: 10px;
  }

  .issues-section .heading-small {
    font-size: 16px;
    line-height: 1.32;
  }

  .issues-section .section-heading h2 {
    max-width: 330px;
    font-size: 28px;
    line-height: 1.38;
  }

  .issues-section .section-heading::before {
    display: none;
  }

  .issues-section .section-heading::after {
    top: 72px;
    right: 18px;
    opacity: 0.22;
  }

  .issues-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    width: min(100%, 340px);
    margin-inline: auto;
    font-size: 10.4px;
    line-height: 1.78;
  }

  .issue-grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: min(274px, 72vw);
    grid-template-columns: none;
    gap: 10px;
    width: calc(100% + 32px);
    margin: 10px -16px 0;
    padding: 0 28px 4px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 28px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
  }

  .issue-grid::-webkit-scrollbar {
    display: none;
  }

  .issue-card,
  .issue-card:nth-child(2n),
  .issue-card:nth-child(2n + 1) {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: center;
    min-height: 174px;
    margin: 0;
    padding: 16px 14px 15px 13px;
    border-radius: 20px;
    scroll-snap-align: center;
  }

  .issue-card .number {
    top: 15px;
    left: 15px;
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .sketch-img {
    width: 96px;
    height: 96px;
    margin-top: 38px;
  }

  .issue-card h3 {
    margin-bottom: 6px;
    font-size: 14.4px;
    line-height: 1.56;
  }

  .issue-card h3::after {
    margin-top: 7px;
  }

  .issue-card p {
    font-size: 10px;
    line-height: 1.72;
  }

  .issue-pagination {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 6px 0 8px;
  }

  .issue-pagination span {
    width: 8px;
    height: 8px;
    background: #bfe2fb;
    border-radius: 999px;
  }

  .issue-pagination .is-active {
    background: #006bd7;
  }

  .issue-bottom {
    margin-top: 0;
    margin-bottom: -10px;
    padding: 8px 0 18px;
  }

  .issue-bottom::before {
    top: 10px;
    height: 144px;
  }

  .issue-bottom::after {
    top: -8px;
    height: 104px;
  }

  .issue-bottom p {
    margin-bottom: 22px;
    font-size: 12.8px;
    line-height: 1.78;
  }

  .issue-bottom p strong::after {
    height: 9px;
    bottom: -2px;
  }

  .issue-bottom h3 {
    font-size: 24px;
    line-height: 1.3;
  }

  .issue-bottom h3::before {
    top: -34px;
    width: 9px;
    height: 9px;
    border-width: 2px;
  }

  .issue-bottom h3 span {
    display: block;
    margin-top: 2px;
  }

  .strengths-section {
    padding: 24px 0 28px;
  }

  .strengths-section .section-heading {
    margin-bottom: 12px;
  }

  .strengths-section .section-eyebrow {
    font-size: 10px;
  }

  .strengths-section .section-eyebrow::after {
    width: 130px;
    margin-top: 6px;
  }

  .strengths-section .section-heading h2 {
    max-width: 330px;
    font-size: 28px;
    line-height: 1.2;
  }

  .strengths-section .section-heading h2::before {
    left: 6px;
    right: 6px;
    bottom: -24px;
    height: 34px;
  }

  .strength-stack {
    gap: 9px;
    margin-top: 16px;
  }

  .strength-card {
    grid-template-columns: 54px minmax(0, 1fr) 82px;
    gap: 8px;
    min-height: 106px;
    padding: 11px 12px 10px;
    border-width: 2px;
    border-radius: 17px;
  }

  .strength-num {
    font-size: 39px;
  }

  .strength-card h3 {
    margin-bottom: 5px;
    font-size: 12.8px;
    line-height: 1.48;
  }

  .strength-card h3::after {
    width: 100%;
    margin-top: 5px;
  }

  .strength-card p {
    font-size: 9.5px;
    line-height: 1.64;
  }

  .strength-art {
    width: 80px;
    max-height: 68px;
  }

  .speech-bubble {
    min-height: 68px;
    padding: 12px 18px;
    font-size: 13.2px;
    line-height: 1.55;
    border-radius: 20px 22px 20px 24px;
  }

  .cases-section {
    padding: 34px 0 36px;
  }

  .cases-section .section-heading {
    margin-bottom: 6px;
    padding-inline: 20px;
  }

  .cases-section .section-heading::before {
    display: none;
  }

  .cases-section .section-heading::after {
    top: 0;
    right: 86px;
    width: 18px;
    height: 24px;
    opacity: 0.32;
    transform: scale(0.34) rotate(12deg);
  }

  .cases-section .section-eyebrow {
    font-size: 10px;
  }

  .cases-section .section-heading h2 {
    width: min(100%, 304px);
    font-size: 26px;
    line-height: 1.25;
  }

  .cases-section .section-heading h2 .case-fan-word {
    font-size: 1.05em;
    transform: rotate(-2deg) translateY(-0.02em);
  }

  .cases-section .section-heading h2::before {
    left: -10px;
    right: -10px;
    bottom: -30px;
    height: 42px;
  }

  .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 13px;
    font-size: 10.8px;
    line-height: 1.8;
  }

  .case-track {
    --case-card-size: min(226px, 58vw);
    gap: 14px;
    padding: 2px 82px 36px;
    scroll-padding-inline: 82px;
  }

  .case-clone {
    display: block;
  }

  .case-card {
    padding: 12px 10px 14px;
    border-radius: 18px;
    transform-origin: center 55%;
    transition: transform 0.28s ease, opacity 0.28s ease;
  }

  .case-card.is-active {
    z-index: 2;
    border-color: rgba(255, 198, 215, 0.96);
    box-shadow:
      0 18px 34px rgba(218, 74, 106, 0.11),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);
    transform: rotate(0deg) translateY(0) scale(1);
  }

  .case-card.is-active .case-index {
    color: #d94362;
    background:
      radial-gradient(circle at 35% 28%, rgba(255, 255, 255, 0.98), rgba(255, 240, 246, 0.86) 64%, rgba(255, 226, 236, 0.95) 100%);
    border-color: rgba(255, 189, 211, 0.96);
    box-shadow:
      0 10px 18px rgba(218, 74, 106, 0.14),
      inset 0 0 0 5px rgba(255, 255, 255, 0.7);
  }

  .case-card.is-active .case-type {
    color: #d94362;
  }

  .case-card.is-active .case-type::before {
    background: linear-gradient(135deg, #f46f8d, #d94362);
  }

  .case-card.is-active .tag-row span {
    color: #c84c68;
    background: #ffe6ee;
  }

  .case-card.is-side-prev,
  .case-clone:first-child {
    transform: rotate(-3.5deg) translateY(7px) scale(0.94);
    opacity: 0.92;
  }

  .case-card.is-side-next,
  .case-clone:last-child {
    transform: rotate(3.5deg) translateY(7px) scale(0.94);
    opacity: 0.92;
  }

  .case-card img {
    margin-top: 11px;
    margin-bottom: 12px;
  }

  .case-card .case-index {
    top: 13px;
    left: 13px;
    width: 48px;
    height: 48px;
    font-size: 21px;
  }

  .case-card h3 {
    margin: 7px 0 0 62px;
    font-size: 19px;
  }

  .case-card h3 span {
    font-size: 10px;
  }

  .case-type {
    margin: 5px 0 11px 62px;
    font-size: 10px;
  }

  .case-type::before {
    width: 17px;
    height: 17px;
  }

  .case-card p:not(.case-index):not(.case-type) {
    margin: 10px 0 9px;
    font-size: 10px;
    line-height: 1.72;
  }

  .tag-row {
    gap: 6px;
  }

  .tag-row span {
    min-height: 24px;
    padding: 4px 8px;
    font-size: 9.1px;
  }

  .case-pagination {
    gap: 12px;
    margin-top: -20px;
  }

  .case-pagination button {
    width: 9px;
    height: 9px;
  }

  .service-section {
    padding: 16px 0 18px;
  }

  .service-section .section-heading {
    margin-bottom: 8px;
  }

  .service-section .section-heading h2 {
    font-size: 23px;
    line-height: 1.3;
  }

  .service-section .section-heading h2 span span {
    font-size: 1.54em;
  }

  .service-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    font-size: 10.8px;
    line-height: 1.8;
  }

  .service-tabs {
    min-height: 64px;
    gap: 7px;
    padding: 0 42px 3px 14px;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    touch-action: pan-x;
  }

  .service-tabs::after {
    min-height: 64px;
  }

  .service-tab {
    flex-basis: 122px;
    min-height: 58px;
    padding: 7px 9px 8px;
    border-radius: 16px 16px 0 0;
    scroll-snap-align: start;
  }

  .service-tab.is-active {
    min-height: 66px;
  }

  .service-tab::after {
    width: 22px;
    height: 14px;
  }

  .service-tab-num,
  .service-tab.is-active .service-tab-num {
    width: 28px;
    height: 28px;
    margin-bottom: 4px;
    font-size: 13px;
  }

  .service-tab h3 {
    font-size: 14px;
    line-height: 1.18;
  }

  .service-tab p {
    margin-top: 4px;
    font-size: 8px;
    line-height: 1.4;
  }

  .service-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 134px;
    gap: 6px;
    align-items: center;
    padding: 9px 11px;
    border-radius: 18px;
  }

  .service-copy {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 6px 9px;
    align-items: center;
  }

  .service-copy .large-num {
    grid-column: 1;
    grid-row: 1 / span 3;
    margin: 0;
  }

  .service-section .large-num,
  .service-mini .large-num {
    width: 46px;
    height: 46px;
    font-size: 25px;
  }

  .service-copy h3,
  .service-copy p,
  .service-copy .pill-row {
    grid-column: 2;
  }

  .service-copy h3 {
    font-size: 14.8px;
    line-height: 1.45;
    white-space: nowrap;
  }

  .service-copy h3 .service-title-break {
    display: block;
  }

  .service-copy p {
    font-size: 9.3px;
    line-height: 1.62;
  }

  .service-copy .pill-row {
    gap: 5px;
    flex-wrap: wrap;
    overflow: visible;
  }

  .service-section .pill-row span,
  .service-mini .pill-row span,
  .service-copy .pill-row span {
    min-height: 22px;
    padding: 2px 6px;
    font-size: 8.3px;
  }

  .service-visual {
    margin-top: 0;
  }

  .service-illustration-img {
    width: 126px;
    max-height: 128px;
    margin-left: auto;
  }

  .service-subgrid {
    gap: 6px;
    margin-top: 6px;
  }

  .service-mini {
    position: relative;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 58px;
    align-items: center;
    gap: 7px;
    min-height: 66px;
    padding: 7px 31px 7px 10px;
    border-radius: 16px;
  }

  .service-mini::after {
    position: absolute;
    top: 50%;
    right: 10px;
    display: grid;
    width: 24px;
    height: 24px;
    color: #14a6d6;
    font-size: 18px;
    content: "›";
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(154, 219, 250, 0.86);
    border-radius: 50%;
    transform: translateY(-50%);
    place-items: center;
    box-shadow: 0 7px 14px rgba(43, 128, 194, 0.08);
  }

  .service-mini-copy {
    min-width: 0;
  }

  .service-mini h3 {
    margin-bottom: 5px;
    font-size: 12.4px;
    line-height: 1.34;
  }

  .service-mini .pill-row {
    gap: 4px;
    flex-wrap: nowrap;
    overflow: visible;
    padding-bottom: 0;
  }

  .service-mini .pill-row span {
    min-height: 22px;
    padding: 2px 5px;
    font-size: 8px;
  }

  .mini-illustration-img {
    width: 58px;
    max-height: 52px;
  }

  .flow-section {
    margin-top: -116px;
    padding: 22px 0 24px;
  }

  .flow-section .section-heading {
    margin-bottom: 16px;
  }

  .flow-section .section-heading h2 {
    font-size: 35px;
    line-height: 1.16;
  }

  .flow-section .section-heading h2::before,
  .flow-section .section-heading h2::after {
    bottom: -19px;
    height: 20px;
  }

  .flow-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 20px;
    font-size: 9.8px;
    line-height: 1.64;
    letter-spacing: 0.026em;
  }

  .flow-list {
    gap: 13px;
    margin-inline: 24px;
    padding-bottom: 9px;
  }

  .flow-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    align-items: start;
    gap: 6px 18px;
    min-height: 96px;
    padding: 10px 16px 10px 13px;
    border-radius: 16px;
    overflow: visible;
    text-align: left;
    z-index: auto;
  }

  .flow-card::before {
    position: absolute;
    top: 17px;
    bottom: 17px;
    left: 133px;
    display: block;
    width: 2px;
    content: "";
    background-image: linear-gradient(180deg, rgba(126, 205, 245, 0.95) 44%, transparent 44%);
    background-size: 2px 7px;
  }

  .flow-card:not(:last-child)::after {
    position: absolute;
    z-index: 12;
    top: auto;
    right: auto;
    left: 50%;
    bottom: -22px;
    display: grid;
    width: 28px;
    height: 28px;
    color: #006bd7;
    font-size: 17px;
    line-height: 1;
    content: "\2193";
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(178, 224, 250, 0.9);
    border-radius: 50%;
    clip-path: none;
    transform: translateX(-50%);
    place-items: center;
    box-shadow: 0 8px 14px rgba(43, 128, 194, 0.08);
    pointer-events: none;
  }

  .flow-num {
    position: absolute;
    top: 10px;
    left: 14px;
    grid-column: 1;
    grid-row: auto;
    width: 40px;
    height: 40px;
    font-size: 20px;
    justify-self: center;
  }

  .flow-illust {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    width: 64px;
    height: 64px;
    margin: 10px 0 0 33px;
    justify-self: start;
  }

  .flow-card h3 {
    grid-column: 2;
    align-self: end;
    margin: 0;
    font-size: 15.3px;
    line-height: 1.34;
    letter-spacing: 0.045em;
    text-align: left;
  }

  .flow-card p {
    grid-column: 2;
    align-self: start;
    margin: 0;
    font-size: 8.8px;
    line-height: 1.82;
    letter-spacing: 0.032em;
    text-align: left;
  }

  .flow-note {
    min-height: 56px;
    margin-top: 2px;
    margin-inline: 24px;
    width: auto;
    padding: 8px 13px;
    font-size: 10.2px;
    line-height: 1.62;
  }

  .flow-note .people-icon {
    width: 39px;
    height: 39px;
  }

  .flow-note small {
    margin-top: 1px;
    font-size: 7.3px;
    line-height: 1.5;
  }

  .faq-section {
    padding: 28px 0 28px;
  }

  .faq-section .section-heading {
    margin-bottom: 12px;
  }

  .faq-section .section-heading h2 {
    font-size: 30px;
  }

  .faq-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 14px;
    font-size: 9.8px;
  }

  .faq-list {
    gap: 6px;
    margin-inline: 36px;
  }

  .faq-item {
    border-radius: 16px;
  }

  .faq-item button {
    gap: 7px;
    padding: 8px 42px 7px 10px;
    font-size: 10.2px;
    line-height: 1.46;
  }

  .faq-item button > span:first-child {
    width: 28px;
    height: 28px;
    font-size: 18px;
  }

  .faq-item button i {
    right: 27px;
    width: 24px;
    height: 24px;
  }

  .faq-item button i::before,
  .faq-item button i::after {
    width: 9px;
  }

  .faq-item button::after {
    right: 11px;
    width: 8px;
    height: 8px;
  }

  .faq-item p {
    margin: 0 12px 8px 45px;
    padding-top: 7px;
    font-size: 9.4px;
    line-height: 1.5;
  }

  .contact-section {
    padding: 22px 0 41px;
  }

  .contact-panel {
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-areas:
      "icon copy"
      "actions actions";
    column-gap: 9px;
    row-gap: 10px;
    align-items: center;
    width: auto;
    margin-inline: 28px;
    padding: 16px 18px 17px;
    border-radius: 34px 36px 32px 38px / 27px 29px 32px 30px;
  }

  .contact-panel .people-icon.large {
    align-self: center;
    justify-self: end;
    width: 38px;
    height: 38px;
    margin: 0;
  }

  .contact-copy h2 {
    margin-bottom: 4px;
    font-size: 15.2px;
    line-height: 1.32;
    text-align: left;
    white-space: nowrap;
  }

  .contact-leading,
  .contact-phrase {
    display: inline;
    white-space: nowrap;
  }

  .contact-copy p {
    font-size: 8.8px;
    line-height: 1.55;
    text-align: left;
  }

  .contact-actions {
    gap: 7px;
  }

  .orange-cta,
  .outline-cta {
    width: min(100%, 246px);
    min-height: 34px;
    padding: 0 16px;
    font-size: 10.5px;
  }

  .site-footer {
    padding-top: 6px;
    background:
      radial-gradient(circle at 88% 22%, rgba(196, 237, 255, 0.34), transparent 22%),
      linear-gradient(180deg, #f7fdff 0%, #edf9ff 100%);
  }

  .footer-bg-shape {
    top: 8px;
    bottom: 20px;
    border-radius: 28px 36px 34px 30px;
  }

  .footer-grid {
    gap: 4px;
    margin-inline: 32px;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(127, 196, 232, 0.62);
  }

  .footer-brand {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 5px 10px;
    align-items: center;
  }

  .footer-brand img {
    width: 88px;
    margin-bottom: 0;
  }

  .footer-brand p {
    margin: 0;
    font-size: 8.4px;
    line-height: 1.42;
    white-space: normal;
  }

  .footer-brand .footer-contact {
    display: grid;
    grid-column: 1 / -1;
    gap: 2px;
    margin-top: 4px;
    padding: 5px 8px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.86);
    border: 1px solid rgba(180, 226, 250, 0.82);
    box-shadow: 0 10px 20px rgba(43, 128, 194, 0.06);
  }

  .footer-brand .footer-contact span,
  .footer-brand .footer-contact a {
    padding-left: 21px;
    font-size: 9.4px;
    line-height: 1.42;
  }

  .footer-brand .footer-contact span::before,
  .footer-brand .footer-contact a::before {
    top: 0.1em;
    width: 17px;
    height: 17px;
  }

  .footer-nav {
    gap: 5px;
  }

  .footer-nav div {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3px 8px;
    padding: 6px 30px 6px 10px;
    background: rgba(255, 255, 255, 0.86);
    border: 1px solid rgba(188, 228, 250, 0.8);
    border-radius: 13px;
    box-shadow: 0 10px 20px rgba(43, 128, 194, 0.06);
  }

  .footer-nav div::after {
    position: absolute;
    top: 15px;
    right: 14px;
    width: 9px;
    height: 9px;
    border-right: 2px solid #006bd7;
    border-bottom: 2px solid #006bd7;
    content: "";
    transform: rotate(45deg);
  }

  .footer-nav h2 {
    grid-column: 1 / -1;
    margin-bottom: 2px;
    padding-bottom: 6px;
    font-size: 10.5px;
  }

  .footer-nav a {
    margin-bottom: 0;
    padding-left: 15px;
    font-size: 8.5px;
    line-height: 1.35;
  }

  .footer-nav a::before {
    width: 10px;
    height: 10px;
    font-size: 7px;
  }

  .copyright {
    margin-top: 7px;
    font-size: 8px;
  }
}

.hero-collage-svg {
  display: none;
}

.hero-blob {
  display: none;
}

@media (max-width: 760px) {
  .section,
  .clients,
  .contact-section,
  .site-footer {
    scroll-margin-top: 62px;
  }

  .site-header {
    min-height: 58px;
    padding: 0 34px;
  }

  .site-nav {
    top: 58px;
  }

  .hero {
    padding-top: 70px;
    padding-bottom: 22px;
  }

  .hero-grid {
    gap: 8px;
  }

  .hero-copy {
    width: min(100%, 340px);
  }

  .hero-kicker {
    margin: 3px 0 2px;
    font-size: 9.3px;
    line-height: 1.5;
    letter-spacing: 0.055em;
  }

  .hero-title {
    display: block;
    margin-bottom: -4px;
    transform: none;
  }

  .hero-title img {
    display: block;
    width: min(100%, 286px);
    margin-inline: auto;
    image-rendering: auto;
    transform: none;
  }

  .hero-lead {
    margin-bottom: 4px;
    font-size: 14.2px;
    line-height: 1.4;
    letter-spacing: 0.055em;
  }

  .hero-text {
    width: min(100%, 314px);
    margin-bottom: 10px;
    font-size: 10.4px;
    line-height: 1.76;
    letter-spacing: 0.038em;
  }

  .primary-cta {
    grid-template-columns: 36px minmax(0, 1fr) 22px;
    width: min(calc(100vw - 100px), 290px);
    min-height: 52px;
    padding: 6px 13px 6px 13px;
    gap: 7px;
  }

  .primary-cta span:not(.cta-icon) {
    font-size: 16.6px;
    letter-spacing: 0.035em;
  }

  .cta-icon {
    width: 32px;
    height: 32px;
    background: rgba(255, 255, 255, 0.98);
    border-radius: 50%;
  }

  .free-note {
    margin-top: 6px;
    font-size: 9.9px;
    letter-spacing: 0.035em;
  }

  .hero-visual {
    width: min(100%, 310px);
    min-height: 181px;
    margin-top: -3px;
  }

  .hero-visual::before {
    inset: 22px 9px 13px 8px;
    border-radius: 48% 52% 43% 55% / 42% 45% 55% 52%;
  }

  .hero-visual::after {
    right: -3px;
    bottom: 35px;
    width: 68px;
    height: 68px;
    opacity: 0.38;
  }

  .hero-collage-svg {
    position: absolute;
    z-index: 2;
    top: -3px;
    left: -4px;
    display: none;
    width: calc(100% + 8px);
    height: auto;
    overflow: visible;
    filter: drop-shadow(0 12px 18px rgba(34, 120, 190, 0.16));
    shape-rendering: geometricPrecision;
  }

  .hero-collage-svg image {
    image-rendering: auto;
  }

  .hero-collage-frame {
    fill: rgba(255, 255, 255, 0.96);
  }

  .hero-collage-border {
    fill: none;
    stroke: rgba(255, 255, 255, 0.96);
    stroke-linejoin: round;
    stroke-linecap: round;
    stroke-width: 7.4px;
  }

  .hero-photo {
    display: none;
  }

  .hero-blob {
    position: absolute;
    top: -3px;
    left: -4px;
    display: block;
    width: calc(100% + 8px);
    height: auto;
    pointer-events: none;
  }

  .hero-blob-phone {
    z-index: 3;
  }

  .hero-blob-live {
    z-index: 2;
  }

  .hero-blob-friends {
    z-index: 4;
  }

  .hero-blob-product {
    z-index: 5;
  }

  .hero-handcopy {
    display: none;
  }

  .hero-handcopy::after {
    width: 78px;
    height: 10px;
    border-bottom-width: 2px;
  }

  .hero-heart {
    top: 96px;
    right: -16px;
    width: 27px;
    height: 24px;
  }

  .hero-orbit {
    z-index: 6;
    left: 10px;
    top: 103px;
    width: 248px;
    height: 70px;
    border-top-width: 2px;
    transform: rotate(5deg);
  }

  .hero-orbit::before {
    top: -7px;
    left: 55px;
    width: 11px;
    height: 11px;
  }

  .hero-orbit::after {
    right: 12px;
    bottom: -12px;
    width: 31px;
    height: 25px;
  }

  .hero .hero-features {
    grid-template-columns: minmax(0, 1fr) 10px minmax(0, 1fr) 10px minmax(0, 1fr);
    gap: 4px;
    width: min(calc(100vw - 64px), 326px);
    margin: -7px auto 0;
  }

  .feature-cross {
    width: 10px;
    height: 10px;
  }

  .feature-cross::before,
  .feature-cross::after {
    width: 10px;
    height: 1.4px;
  }

  .feature-card {
    min-height: 88px;
    padding: 8px 4px 7px;
    gap: 3px;
    border-radius: 12px;
  }

  .feature-icon {
    width: 32px;
    height: 32px;
  }

  .feature-icon::before {
    inset: 7px;
  }

  .feature-icon.people-icon::before {
    inset: 6px;
  }

  .feature-card h2 {
    font-size: 10.2px;
    line-height: 1.28;
    letter-spacing: 0.04em;
  }

  .feature-card p {
    font-size: 8.7px;
    line-height: 1.48;
    letter-spacing: 0.03em;
  }

  .issues-section {
    background: url("../img/bg-canvas-sp-a.svg") center top / 100% 100% no-repeat, #edf9ff;
  }

  .strengths-section {
    background: url("../img/bg-canvas-sp-b.svg") center top / 100% 100% no-repeat, #eef9ff;
  }

  .cases-section {
    background: url("../img/bg-canvas-sp-c.svg") center top / 100% 100% no-repeat, #f2fbff;
  }

  .service-section {
    background: url("../img/bg-canvas-sp-a.svg") center top / 100% 100% no-repeat, #edf9ff;
  }

  .flow-section {
    background: url("../img/bg-canvas-sp-c.svg") center top / 100% 100% no-repeat, #eefaff;
  }

  .faq-section {
    background: url("../img/bg-canvas-sp-b.svg") center top / 100% 100% no-repeat, #eef9ff;
  }

  .contact-section,
  .site-footer {
    background: url("../img/bg-canvas-sp-footer.svg") center top / 100% 100% no-repeat, #f3fbff;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .logo-track {
    animation-duration: 34s;
  }

  .hero-photo {
    animation-duration: 12s;
  }
}

/* Final FV collage replacement: transparent photo collage assets generated from the approved mock. */
.hero-collage-cutout {
  position: absolute;
  z-index: 3;
  display: block;
  height: auto;
  pointer-events: none;
  filter: drop-shadow(0 18px 28px rgba(38, 128, 190, 0.13));
}

.hero-collage-cutout-sp {
  display: none;
}

.hero-visual .hero-photo,
.hero-visual .hero-blob,
.hero-visual .hero-collage-svg,
.hero-visual .hero-handcopy,
.hero-visual .hero-heart,
.hero-visual .hero-orbit {
  display: none !important;
}

.hero-collage-cutout-pc {
  top: 4px;
  left: 50%;
  width: min(108%, 790px);
  max-width: none;
  transform: translateX(-49%);
}

@media (min-width: 761px) {
  .hero {
    padding-top: 92px;
    padding-bottom: 48px;
  }

  .hero .container {
    width: min(calc(100% - 108px), 1112px);
  }

  .hero-grid {
    grid-template-columns: minmax(578px, 1fr) minmax(0, 1fr);
    gap: clamp(14px, 1.6vw, 24px);
  }

  .hero-kicker {
    margin: 9px 0 10px;
    font-size: clamp(14px, 1.15vw, 16px);
    line-height: 1.55;
  }

  .hero-title {
    margin-bottom: -19px;
    transform: translateY(-5px);
  }

  .hero-title img {
    width: min(100%, 510px);
  }

  .hero-lead {
    margin: 5px 0 16px;
    font-size: clamp(22px, 2.05vw, 26px);
    line-height: 1.52;
  }

  .hero-text {
    margin-bottom: 30px;
    font-size: clamp(14.5px, 1.25vw, 15.5px);
    line-height: 2;
  }

  .hero-text .sp-inline {
    display: inline;
  }

  .hero-text-pc-tail {
    display: none;
  }

  .primary-cta {
    grid-template-columns: 56px minmax(0, 1fr) 26px;
    width: min(100%, 524px);
    min-height: 84px;
    padding: 12px 26px 12px 32px;
  }

  .primary-cta small {
    margin-bottom: 3px;
    font-size: 13px;
  }

  .primary-cta span:not(.cta-icon) {
    font-size: clamp(23px, 2.1vw, 28px);
    line-height: 1.26;
    text-align: center;
  }

  .cta-icon {
    width: 44px;
    height: 44px;
    color: #fff;
    --cta-flap: #0d6fd1;
  }

  .primary-cta .cta-icon svg {
    width: 34px;
    height: 34px;
  }

  .free-note {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(100%, 524px);
    margin: 10px 0 0;
    font-size: 12.5px;
  }

  .hero-visual {
    justify-self: end;
    width: min(100%, 580px);
    max-width: 580px;
    min-height: clamp(520px, 43vw, 585px);
  }

  .hero-collage-cutout-pc {
    top: -12px;
    width: min(112%, 612px);
    transform: translateX(-44%);
  }

  .hero .container.hero-features {
    width: min(calc(100% - 108px), 1112px);
    margin: -28px auto 0;
  }
}

@media (max-width: 760px) {
  .hero {
    padding-top: 70px;
    padding-bottom: 30px;
  }

  .site-brand .brand-logo-pc {
    display: none;
  }

  .site-brand .brand-logo-sp {
    display: block;
  }

  .hero-grid {
    gap: 11px;
  }

  .hero-copy {
    width: min(100%, 372px);
  }

  .hero-kicker {
    margin: 3px 0 -8px;
    font-size: 9.8px;
    line-height: 1.55;
  }

  .hero-title {
    margin-bottom: 8px;
  }

  .hero-title img {
    width: min(100%, 356px);
  }

  .hero-lead {
    margin-bottom: 10px;
    font-size: 16px;
    line-height: 1.45;
  }

  .hero-text {
    width: min(100%, 340px);
    margin-bottom: 17px;
    font-size: 11px;
    line-height: 1.86;
  }

  .primary-cta {
    grid-template-columns: 44px minmax(0, 1fr) 22px;
    width: min(calc(100vw - 92px), 324px);
    min-height: 66px;
    padding: 8px 15px;
    gap: 8px;
  }

  .primary-cta span:not(.cta-icon) {
    font-size: 20px;
    line-height: 1.2;
  }

  .cta-icon {
    width: 40px;
    height: 40px;
  }

  .free-note {
    margin-top: 9px;
    font-size: 10px;
  }

  .hero-visual {
    width: min(calc(100vw - 26px), 420px);
    min-height: 220px;
    margin-top: 0;
  }

  .hero-visual::before {
    inset: 18px 9px 12px 8px;
  }

  .hero-visual::after {
    opacity: 0;
  }

  .hero-collage-cutout-pc {
    display: none;
  }

  .hero-collage-cutout-sp {
    top: 0;
    left: 50%;
    display: block;
    width: 100%;
    max-width: none;
    transform: translateX(-50%);
  }

  .hero-handcopy {
    display: none !important;
  }

  .hero .hero-features {
    width: min(calc(100vw - 40px), 402px);
    margin-top: 12px;
  }

  .feature-card {
    min-height: 122px;
    padding: 11px 6px 10px;
    border-radius: 12px;
  }

  .feature-icon {
    width: 48px;
    height: 48px;
  }

  .feature-card h2 {
    font-size: 12px;
    line-height: 1.32;
  }

  .feature-card p {
    font-size: 10px;
    line-height: 1.52;
  }
}

@media (min-width: 761px) {
  .hero {
    background: #f7fcff url("../img/hero-bg-pc.png") center top / 100% auto no-repeat;
  }

  .hero::after,
  .hero-bg-line,
  .hero-visual::before,
  .hero-visual::after {
    display: none;
  }
}

@media (max-width: 760px) {
  .issues-section {
    padding: 0 0 0;
    overflow: hidden;
    background:
      radial-gradient(ellipse at 50% 9%, rgba(255, 255, 255, 0.98) 0 34%, rgba(255, 255, 255, 0) 70%),
      radial-gradient(ellipse at 86% 56%, rgba(199, 237, 255, 0.36) 0 19%, rgba(199, 237, 255, 0) 46%),
      radial-gradient(ellipse at 9% 87%, rgba(193, 235, 255, 0.3) 0 18%, rgba(193, 235, 255, 0) 45%),
      linear-gradient(180deg, #effaff 0%, #ffffff 42%, #f3fbff 72%, #e9fbf7 100%);
  }

  .issues-section .section-wave {
    display: none;
  }

  .issues-section .container {
    width: 100%;
    margin-inline: 0;
  }

  .issue-section-sp-art {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
  }

  .issues-section .section-heading,
  .issues-section .issue-grid,
  .issues-section .issue-pagination,
  .issues-section .issue-bottom {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip-path: inset(50%) !important;
  }

  .issues-section .section-heading {
    max-width: none;
    margin: 0 auto clamp(30px, 4.6vw, 34px);
    padding: 0;
  }

  .issue-heading-sp-art {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0 auto;
  }

  .issues-section .section-heading .heading-small,
  .issues-section .section-heading h2,
  .issues-section .section-heading .issue-lead,
  .issue-bottom p,
  .issue-bottom h3 {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip-path: inset(50%) !important;
  }

  .issue-grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: min(558px, 78vw);
    grid-template-columns: none;
    align-items: stretch;
    gap: clamp(20px, 3.9vw, 28px);
    width: 100%;
    margin: 0;
    padding: 0 clamp(36px, 9.5vw, 68px) 8px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-padding-inline: clamp(36px, 9.5vw, 68px);
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
  }

  .issue-card,
  .issue-card:nth-child(2n),
  .issue-card:nth-child(2n + 1) {
    grid-template-columns: clamp(112px, 27vw, 158px) minmax(0, 1fr);
    gap: clamp(8px, 2.6vw, 22px);
    align-items: center;
    min-height: clamp(206px, 52vw, 374px);
    padding: clamp(16px, 3.5vw, 24px) clamp(16px, 4vw, 30px) clamp(17px, 3.6vw, 28px) clamp(14px, 3.2vw, 24px);
    overflow: hidden;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(177, 223, 252, 0.9);
    border-radius: clamp(21px, 4vw, 28px);
    box-shadow:
      0 18px 38px rgba(47, 127, 190, 0.11),
      0 4px 12px rgba(74, 164, 219, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.96);
    scroll-snap-align: start;
  }

  .issue-card::after {
    inset: 1px;
    border-radius: inherit;
    box-shadow: inset 0 0 28px rgba(200, 232, 250, 0.24);
  }

  .issue-card .number {
    top: clamp(15px, 3.1vw, 22px);
    left: clamp(15px, 3.1vw, 24px);
    width: clamp(46px, 10.5vw, 72px);
    height: clamp(46px, 10.5vw, 72px);
    font-size: clamp(18px, 4.1vw, 30px);
    box-shadow:
      0 10px 20px rgba(13, 101, 207, 0.22),
      inset 0 1px 0 rgba(255, 255, 255, 0.42);
  }

  .sketch-img {
    width: clamp(118px, 28vw, 168px);
    height: clamp(112px, 27vw, 162px);
    max-width: none;
    max-height: none;
    margin: clamp(36px, 9vw, 64px) 0 0;
    object-fit: contain;
    align-self: end;
    justify-self: center;
    filter: saturate(1.04) contrast(1.05) drop-shadow(0 8px 12px rgba(35, 116, 185, 0.08));
  }

  .issue-card:first-child .sketch-img {
    width: clamp(138px, 34vw, 204px);
    height: clamp(116px, 29vw, 168px);
    margin-left: clamp(-10px, -1.5vw, -3px);
  }

  .issue-card h3 {
    margin-bottom: clamp(7px, 1.8vw, 13px);
    font-size: clamp(15.5px, 3.75vw, 25px);
    line-height: 1.7;
    letter-spacing: 0.06em;
  }

  .issue-card h3::after {
    margin-top: clamp(7px, 1.7vw, 12px);
    border-bottom-color: rgba(91, 184, 245, 0.72);
    border-bottom-width: 2px;
  }

  .issue-card p {
    font-size: clamp(11px, 2.7vw, 17px);
    font-weight: 800;
    line-height: 2.02;
    letter-spacing: 0.055em;
  }

  .issue-pagination {
    display: none;
  }

  .issue-bottom {
    width: 100%;
    margin: clamp(16px, 3.2vw, 22px) 0 0;
    padding: 0;
    overflow: visible;
  }

  .issue-bottom::before,
  .issue-bottom::after {
    display: none;
  }

  .issue-bottom-sp-art {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0 auto;
  }

  .issue-sp-only {
    display: block;
  }
}

@media (max-width: 760px) {
  .site-header {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }

  .site-header .site-brand,
  .site-header .nav-toggle,
  .site-header .header-cta {
    opacity: 0;
  }

  .site-header .site-brand,
  .site-header .nav-toggle,
  .site-header .header-cta {
    pointer-events: auto;
  }

  .hero,
  .strengths-section,
  .cases-section,
  .service-section,
  .flow-section,
  .faq-section,
  .contact-section,
  .site-footer {
    position: relative;
    margin-top: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: hidden;
  }

  .hero::before,
  .hero::after,
  .strengths-section::before,
  .strengths-section::after,
  .cases-section::before,
  .cases-section::after,
  .service-section::before,
  .service-section::after,
  .flow-section::before,
  .flow-section::after,
  .faq-section::before,
  .faq-section::after,
  .contact-section::before,
  .contact-section::after,
  .site-footer::before,
  .site-footer::after {
    display: none !important;
  }

  .sp-section-art {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
  }

  .hero > :not(.sp-section-art):not(.sp-art-link),
  .strengths-section > :not(.sp-section-art):not(.sp-art-link),
  .cases-section > :not(.sp-section-art):not(.sp-art-link),
  .service-section > :not(.sp-section-art):not(.sp-art-link),
  .flow-section > :not(.sp-section-art):not(.sp-art-link),
  .faq-section > :not(.sp-section-art):not(.sp-art-link),
  .contact-section > :not(.sp-section-art):not(.sp-art-link),
  .site-footer > :not(.sp-section-art):not(.sp-art-link) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip-path: inset(50%) !important;
  }

  .sp-art-link {
    display: block;
    position: absolute;
    z-index: 4;
    color: transparent;
    text-decoration: none;
  }

  .hero-sp-contact-hit {
    left: 12.4%;
    top: 41.7%;
    width: 75.2%;
    height: 8.2%;
    border-radius: 999px;
  }

  .contact-sp-mail-hit {
    left: 17.8%;
    top: 42.2%;
    width: 31.2%;
    height: 18.5%;
    border-radius: 999px;
  }

  .contact-sp-download-hit {
    left: 51.4%;
    top: 42.2%;
    width: 31.2%;
    height: 18.5%;
    border-radius: 999px;
  }
}

@media (max-width: 760px) {
  .strengths-section {
    margin-top: 0 !important;
    padding: 0 0 26px !important;
    background:
      radial-gradient(circle at 89% 8%, rgba(166, 218, 248, 0.42) 0 1px, transparent 1.8px) 0 0 / 8px 8px,
      radial-gradient(ellipse at 3% 3%, rgba(209, 237, 255, 0.62) 0 19%, rgba(209, 237, 255, 0) 44%),
      radial-gradient(ellipse at 50% 84%, rgba(196, 235, 252, 0.52) 0 24%, rgba(196, 235, 252, 0) 55%),
      linear-gradient(180deg, #f4fbff 0%, #ffffff 32%, #f6fcff 72%, #eaf8ff 100%) !important;
    overflow: hidden;
  }

  .strengths-section > .sp-section-art {
    display: none !important;
  }

  body main .strengths-section > .strength-bg.strength-bg,
  body main .strengths-section > .container.container {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section > .strength-bg.strength-bg {
    position: absolute !important;
    inset: 0 !important;
    pointer-events: none;
  }

  .strengths-section .strength-wave,
  .strengths-section .strength-dot,
  .strengths-section .strength-orbit,
  .strengths-section .strength-halo {
    display: none !important;
  }

  .strengths-section .strength-spark {
    display: block !important;
    position: absolute;
    width: 17px;
    height: 17px;
    background: linear-gradient(135deg, #55c4e2, #9ec85a);
    clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
    opacity: 0.78;
  }

  .strengths-section .strength-spark.spark-one {
    top: 105px;
    left: 46px;
    transform: scale(1.25);
  }

  .strengths-section .strength-spark.spark-two {
    top: 105px;
    right: 50px;
    transform: scale(0.92) rotate(12deg);
    background: linear-gradient(135deg, #9ec85a, #d0e67a);
  }

  .strengths-section .strength-spark.spark-three {
    top: 46px;
    left: 31%;
    transform: scale(0.5) rotate(-10deg);
    opacity: 0.62;
  }

  .strengths-section .container {
    position: relative !important;
    z-index: 1;
    width: 100% !important;
    max-width: none !important;
  }

  .strengths-section .section-heading {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    clip-path: none !important;
  }

  .strengths-section .section-heading .section-eyebrow,
  .strengths-section .section-heading h2 {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip-path: inset(50%) !important;
  }

  .strength-stack {
    display: grid;
    gap: 14px;
    width: 100%;
    padding: 0 28px;
    margin: -3px 0 0;
  }

  .strength-card,
  .strength-card.strength-one,
  .strength-card.strength-two,
  .strength-card.strength-three {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 0;
    align-items: center;
    width: 100%;
    min-height: 136px;
    padding: 15px 15px 14px 14px;
    margin: 0 !important;
    overflow: hidden;
    border: 1px solid rgba(211, 235, 248, 0.9);
    border-radius: 21px;
    transform: none !important;
    box-shadow:
      0 14px 28px rgba(55, 128, 189, 0.11),
      inset 0 1px 0 rgba(255, 255, 255, 0.88);
  }

  .strength-card.strength-one {
    background:
      radial-gradient(circle at 74% 22%, rgba(188, 230, 248, 0.46) 0 32px, transparent 64px),
      linear-gradient(180deg, #fffef8 0%, #ffffff 72%);
  }

  .strength-card.strength-two {
    background:
      radial-gradient(circle at 84% 74%, rgba(210, 236, 207, 0.58) 0 36px, transparent 74px),
      linear-gradient(180deg, #fffdf5 0%, #ffffff 72%);
  }

  .strength-card.strength-three {
    background:
      radial-gradient(ellipse at 78% 78%, rgba(202, 230, 255, 0.45) 0 38px, transparent 88px),
      linear-gradient(180deg, #fff2f8 0%, #ffffff 78%);
  }

  .strength-card::before,
  .strength-card::after {
    display: none !important;
  }

  .strength-num {
    position: static;
    display: block;
    align-self: start;
    justify-self: start;
    width: auto;
    min-width: 0;
    height: auto;
    color: transparent;
    font-family: "Noto Serif JP", serif;
    font-size: 51px;
    font-weight: 800;
    line-height: 0.95;
    background: linear-gradient(135deg, #0064c8 0%, #20c3bd 78%);
    -webkit-background-clip: text;
    background-clip: text;
    text-shadow: none;
    letter-spacing: 0.03em;
  }

  .strength-card > div {
    min-width: 0;
    width: 170px;
    max-width: 170px;
    height: auto !important;
    align-self: center;
    padding-top: 0;
  }

  .strength-card h3 {
    margin: 0;
    color: #0065cf;
    font-size: 13.4px;
    font-weight: 900;
    line-height: 1.48;
    letter-spacing: 0.045em;
  }

  .strength-card h3::after {
    display: block;
    width: 100%;
    height: 0;
    margin: 7px 0 8px;
    content: "";
    border-bottom: 2px dotted rgba(91, 188, 220, 0.82);
  }

  .strength-card p {
    margin: 0;
    color: #1d2737;
    font-size: 10.9px;
    font-weight: 800;
    line-height: 1.7;
    letter-spacing: 0.035em;
  }

  .strength-card .strength-art {
    align-self: center;
    justify-self: auto;
    position: absolute !important;
    z-index: 1;
    top: 25px;
    right: 10px;
    width: 120px;
    max-width: none;
    height: auto;
    margin: 0;
    object-fit: contain;
    filter: saturate(1.03) drop-shadow(0 8px 11px rgba(61, 143, 206, 0.08));
  }

  .strength-two .strength-art {
    top: 39px;
    right: 10px;
    width: 122px;
    margin-right: 0;
  }

  .strength-three .strength-art {
    top: 27px;
    right: 2px;
    width: 144px;
    margin-right: 0;
  }

  .strengths-section {
    padding-bottom: 73px !important;
  }

  .strengths-section .strength-spark {
    display: none !important;
  }

  .strength-stack {
    gap: 3px;
    padding: 0;
    margin: -2px 0 0;
  }

  .strength-card,
  .strength-card.strength-one,
  .strength-card.strength-two,
  .strength-card.strength-three {
    display: block;
    width: min(337px, calc(100% - 52px));
    min-height: 0;
    padding: 0;
    margin: 0 auto !important;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .speech-bubble {
    display: none !important;
  }

  body main .strengths-section {
    padding: 0 !important;
    background: #f7fcff !important;
  }

  body main .strengths-section > .sp-section-art.sp-section-art {
    display: block !important;
    position: relative !important;
    z-index: 1;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
  }

  body main .strengths-section > .strength-bg.strength-bg,
  body main .strengths-section > .container.container {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip-path: inset(50%) !important;
  }
}

@media (max-width: 760px) {
  body main .strengths-section {
    position: relative !important;
    min-height: auto !important;
    padding: 0 !important;
    background:
      url("../img/strength-bg-sp-composed-2x.png") center top / 100% 100% no-repeat !important;
    overflow: hidden;
  }

  body main .strengths-section > .sp-section-art.sp-section-art {
    display: none !important;
  }

  body main .strengths-section > .strength-bg.strength-bg {
    display: none !important;
  }

  body main .strengths-section > .container.container {
    position: relative !important;
    z-index: 1;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 0 74px !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading .section-eyebrow,
  body main .strengths-section .section-heading h2 {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    border: 0 !important;
    clip-path: inset(50%) !important;
  }

  body main .strengths-section .strength-stack {
    position: relative !important;
    display: grid !important;
    width: 100% !important;
    min-height: 0 !important;
    gap: 3px !important;
    padding: 0 !important;
    margin: -2px 0 0 !important;
    overflow: visible !important;
  }

  body main .strengths-section .strength-stack::before,
  body main .strengths-section .strength-stack::after {
    display: none !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    display: block !important;
    width: min(337px, calc(100% - 52px)) !important;
    min-height: 0 !important;
    aspect-ratio: 423 / 162;
    padding: 0 !important;
    margin: 0 auto !important;
    overflow: visible !important;
    background-color: transparent !important;
    background-position: center !important;
    background-size: 100% 100% !important;
    background-repeat: no-repeat !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
  }

  body main .strengths-section .strength-card.strength-one {
    background-image: none !important;
  }

  body main .strengths-section .strength-card.strength-two {
    background-image: none !important;
  }

  body main .strengths-section .strength-card.strength-three {
    background-image: none !important;
  }

  body main .strengths-section .strength-card::before,
  body main .strengths-section .strength-card::after {
    display: none !important;
  }

  body main .strengths-section .strength-card .strength-art {
    display: none !important;
  }

  body main .strengths-section .strength-card .strength-num,
  body main .strengths-section .strength-card > div {
    position: absolute !important;
    z-index: 2;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .strength-card .strength-num {
    top: 27px !important;
    left: 22px !important;
    color: transparent !important;
    font-family: var(--serif);
    font-size: 52px !important;
    font-weight: 900 !important;
    line-height: 0.94 !important;
    letter-spacing: 0.02em !important;
    background: linear-gradient(145deg, #005dc8 0%, #24bdbb 80%);
    -webkit-background-clip: text;
    background-clip: text;
    text-shadow: none !important;
  }

  body main .strengths-section .strength-card > div {
    position: static !important;
    width: auto !important;
    height: 0 !important;
  }

  body main .strengths-section .strength-two > div {
    top: 34px !important;
  }

  body main .strengths-section .strength-three > div {
    top: 37px !important;
  }

  body main .strengths-section .strength-card h3 {
    position: absolute !important;
    top: 43px !important;
    left: 86px !important;
    width: 148px !important;
    margin: 0 !important;
    color: #0065cf !important;
    font-size: 12.3px !important;
    font-weight: 900 !important;
    line-height: 1.46 !important;
    letter-spacing: 0.035em !important;
  }

  body main .strengths-section .strength-two h3 {
    top: 34px !important;
  }

  body main .strengths-section .strength-three h3 {
    top: 43px !important;
  }

  body main .strengths-section .strength-card h3::after {
    position: absolute !important;
    left: -52px !important;
    bottom: -13px !important;
    display: block !important;
    width: 137px !important;
    height: 0 !important;
    margin: 0 !important;
    content: "" !important;
    border-bottom: 2px dotted rgba(83, 188, 220, 0.74) !important;
  }

  body main .strengths-section .strength-two h3::after {
    margin-top: 7px !important;
  }

  body main .strengths-section .strength-card p {
    position: absolute !important;
    left: 33px !important;
    top: 91px !important;
    width: 154px !important;
    margin: 0 !important;
    color: #1f2635 !important;
    font-size: 10.6px !important;
    font-weight: 800 !important;
    line-height: 1.68 !important;
    letter-spacing: 0.025em !important;
  }

  body main .strengths-section .strength-two p {
    top: 91px !important;
  }

  body main .strengths-section .strength-three p {
    top: 91px !important;
  }

  body main .strengths-section .speech-bubble {
    display: none !important;
  }
}

@media (max-width: 760px) {
  body main .strengths-section .strength-stack {
    gap: 13px !important;
    margin: 7px 0 0 !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    width: min(337px, calc(100% - 52px)) !important;
    aspect-ratio: 423 / 162;
    border: 1px solid rgba(154, 213, 248, 0.66) !important;
    border-radius: 18px !important;
    background-image:
      radial-gradient(circle at 87% 28%, rgba(185, 230, 250, 0.62) 0 0, transparent 38%),
      linear-gradient(120deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 250, 0.95) 56%, rgba(245, 253, 255, 0.9) 100%) !important;
    box-shadow:
      0 14px 28px rgba(28, 110, 187, 0.1),
      inset 0 0 18px rgba(255, 255, 255, 0.7) !important;
  }

  body main .strengths-section .strength-card.strength-two {
    background-image:
      radial-gradient(circle at 82% 73%, rgba(199, 235, 216, 0.68) 0 0, transparent 30%),
      linear-gradient(120deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 254, 244, 0.96) 62%, rgba(255, 249, 232, 0.85) 100%) !important;
  }

  body main .strengths-section .strength-card.strength-three {
    background-image:
      radial-gradient(circle at 90% 82%, rgba(199, 230, 251, 0.65) 0 0, transparent 34%),
      linear-gradient(120deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 247, 252, 0.95) 60%, rgba(255, 238, 247, 0.86) 100%) !important;
  }

  body main .strengths-section .strength-card .strength-art {
    position: absolute !important;
    z-index: 1 !important;
    display: block !important;
    width: 131px !important;
    height: auto !important;
    max-width: none !important;
    margin: 0 !important;
    opacity: 0.94 !important;
    pointer-events: none !important;
  }

  body main .strengths-section .strength-one .strength-art {
    top: 22px !important;
    right: 18px !important;
  }

  body main .strengths-section .strength-two .strength-art {
    top: 18px !important;
    right: 18px !important;
    width: 126px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    top: 17px !important;
    right: 13px !important;
    width: 142px !important;
  }

  body main .strengths-section .strength-card .strength-num {
    top: 25px !important;
    left: 24px !important;
    font-size: 54px !important;
    line-height: 0.95 !important;
  }

  body main .strengths-section .strength-card h3 {
    top: 37px !important;
    left: 88px !important;
    width: 136px !important;
    font-size: 12.2px !important;
    line-height: 1.5 !important;
    letter-spacing: 0.04em !important;
  }

  body main .strengths-section .strength-two h3 {
    top: 31px !important;
  }

  body main .strengths-section .strength-three h3 {
    top: 41px !important;
  }

  body main .strengths-section .strength-card h3::after {
    left: -54px !important;
    bottom: -11px !important;
    width: 151px !important;
    border-bottom-color: rgba(83, 188, 220, 0.68) !important;
  }

  body main .strengths-section .strength-card p {
    left: 35px !important;
    top: 95px !important;
    width: 150px !important;
    font-size: 10.8px !important;
    font-weight: 800 !important;
    line-height: 1.74 !important;
    letter-spacing: 0.035em !important;
  }
}

@media (max-width: 760px) {
  body main .strengths-section > .container.container {
    padding-bottom: 38px !important;
  }

  body main .strengths-section .strength-stack {
    gap: 0 !important;
    margin: 5px 0 0 !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    width: min(352px, calc(100% - 38px)) !important;
    aspect-ratio: 425 / 170 !important;
    margin: 0 auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    background-position: center !important;
    background-size: 100% 100% !important;
    background-repeat: no-repeat !important;
    box-shadow: none !important;
  }

  body main .strengths-section .strength-card.strength-one {
    background-image: none !important;
  }

  body main .strengths-section .strength-card.strength-two {
    background-image: none !important;
  }

  body main .strengths-section .strength-card.strength-three {
    background-image: none !important;
  }

  body main .strengths-section .strength-card .strength-num,
  body main .strengths-section .strength-card > div,
  body main .strengths-section .strength-card .strength-art {
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

@media (max-width: 760px) {
  body .site-header {
    min-height: 58px !important;
    padding: 0 34px !important;
    background: rgba(247, 252, 255, 0.96) !important;
    border-bottom: 1px solid rgba(166, 218, 248, 0.42) !important;
    box-shadow: 0 6px 18px rgba(48, 128, 190, 0.06) !important;
    backdrop-filter: blur(12px) !important;
  }

  body .site-header .site-brand,
  body .site-header .nav-toggle {
    opacity: 1 !important;
  }

  body .site-header .header-cta {
    display: none !important;
  }

  body .site-brand .brand-logo-pc {
    display: none !important;
  }

  body .site-brand .brand-logo-sp {
    display: block !important;
    width: 78px !important;
    mix-blend-mode: multiply;
  }

  body .nav-toggle {
    width: 36px !important;
    height: 36px !important;
    margin-left: auto !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body .nav-toggle span {
    width: 24px !important;
    height: 2px !important;
    background: #0065cf !important;
    border-radius: 999px !important;
  }

  body main .hero {
    position: relative !important;
    min-height: 630px !important;
    padding: 80px 0 16px !important;
    background:
      radial-gradient(circle at 9% 72%, rgba(255, 255, 255, 0.78) 0 18px, transparent 19px),
      radial-gradient(ellipse at 91% 72%, rgba(167, 222, 246, 0.34) 0 17%, transparent 42%),
      radial-gradient(ellipse at 50% 100%, rgba(164, 229, 241, 0.52) 0 11%, rgba(164, 229, 241, 0) 37%),
      linear-gradient(180deg, #f4fbff 0%, #eff9ff 45%, #eaf8ff 78%, #dff5fb 100%) !important;
    overflow: hidden !important;
  }

  body main .hero > .sp-section-art,
  body main .hero > .sp-art-link {
    display: none !important;
  }

  body main .hero::before {
    position: absolute;
    top: 56px;
    left: -18%;
    right: -18%;
    display: block !important;
    height: 106px;
    content: "";
    background: rgba(255, 255, 255, 0.34);
    border-radius: 0 0 50% 50% / 0 0 100% 100%;
    transform: rotate(-4deg);
    pointer-events: none;
  }

  body main .hero::after {
    position: absolute;
    left: -11%;
    right: -11%;
    bottom: -22px;
    display: block !important;
    height: 64px;
    content: "";
    background: linear-gradient(90deg, rgba(169, 228, 246, 0.34), rgba(197, 243, 225, 0.3));
    border-radius: 50% 50% 0 0 / 100% 100% 0 0;
    pointer-events: none;
  }

  body main .hero > .hero-bg-line,
  body main .hero > .container.hero-grid,
  body main .hero > .container.hero-features {
    position: relative !important;
    z-index: 1;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .hero > .hero-bg-line {
    position: absolute !important;
    top: 70px !important;
    left: -15% !important;
    z-index: 0 !important;
    width: 130% !important;
    height: 72px !important;
    border-top: 1px solid rgba(118, 199, 237, 0.26) !important;
    transform: rotate(-9deg) !important;
  }

  body main .hero > .container.hero-grid {
    display: grid !important;
    gap: 0 !important;
  }

  body main .hero .hero-copy {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    padding: 0 18px !important;
    margin: 0 auto !important;
    overflow: visible !important;
    white-space: normal !important;
    clip-path: none !important;
    text-align: center !important;
  }

  body main .hero .hero-kicker {
    margin: 0 0 -8px !important;
    color: #172033 !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.05em !important;
  }

  body main .hero .hero-title {
    margin: -1px 0 -5px !important;
  }

  body main .hero .hero-title img {
    width: min(100%, 290px) !important;
    margin: 0 auto !important;
    content: url("../img/hero-title-sp-no-star.png") !important;
  }

  body main .hero .hero-lead {
    display: block !important;
    margin: -4px 0 2px !important;
    color: #101728 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.045em !important;
  }

  body main .hero .hero-lead span {
    display: inline !important;
  }

  body main .hero .hero-text {
    width: min(100%, 308px) !important;
    margin: 0 auto 7px !important;
    color: #172033 !important;
    font-size: 10.1px !important;
    font-weight: 800 !important;
    line-height: 1.66 !important;
    letter-spacing: 0.035em !important;
  }

  body main .hero .hero-text-line {
    display: block !important;
  }

  body main .hero .hero-text-pc-tail {
    display: none !important;
  }

  body main .hero .sp-break {
    display: none !important;
  }

  body main .hero .hero-text strong {
    color: #0065cf !important;
    font-weight: 900 !important;
  }

  body main .hero .primary-cta {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) 18px !important;
    width: min(calc(100vw - 104px), 288px) !important;
    min-height: 46px !important;
    padding: 5px 11px !important;
    gap: 7px !important;
    margin: 0 auto !important;
    color: #fff !important;
    background: linear-gradient(135deg, #ff5a19 0%, #ffa631 100%) !important;
    border-radius: 999px !important;
    box-shadow: 0 13px 24px rgba(255, 100, 22, 0.32) !important;
  }

  body main .hero .primary-cta small {
    display: none !important;
  }

  body main .hero .primary-cta .cta-icon {
    width: 30px !important;
    height: 30px !important;
    color: #ff6f22 !important;
    background: #fff !important;
    border-radius: 50% !important;
    --cta-flap: #fff;
  }

  body main .hero .primary-cta .cta-icon svg {
    width: 18px !important;
    height: 18px !important;
  }

  body main .hero .primary-cta span:not(.cta-icon) {
    min-width: 0 !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.075em !important;
    text-align: center !important;
  }

  body main .hero .primary-cta .cta-arrow {
    width: 18px !important;
    height: 18px !important;
  }

  body main .hero .free-note {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    margin: 3px auto 0 !important;
    color: #172033 !important;
    font-size: 9.7px !important;
    font-weight: 900 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.035em !important;
  }

  body main .hero .free-note::before {
    margin-right: 5px !important;
  }

  body main .hero .hero-visual {
    position: relative !important;
    display: block !important;
    width: min(calc(100vw - 84px), 306px) !important;
    height: 152px !important;
    min-height: 152px !important;
    margin: 6px auto 0 !important;
    overflow: visible !important;
    clip-path: none !important;
  }

  body main .hero .hero-visual::before {
    display: block !important;
    inset: 19px 7px 11px 7px !important;
    background: rgba(204, 239, 252, 0.42) !important;
    border: 1px solid rgba(80, 177, 226, 0.28) !important;
    border-radius: 52% 48% 49% 51% / 42% 44% 56% 58% !important;
  }

  body main .hero .hero-collage-cutout-pc {
    display: none !important;
  }

  body main .hero .hero-collage-cutout-sp {
    top: 0 !important;
    left: 50% !important;
    z-index: 3 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    transform: translateX(-50%) !important;
    filter: drop-shadow(0 11px 17px rgba(38, 128, 190, 0.13)) !important;
  }

  body main .hero > .container.hero-features {
    z-index: 2;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 11px minmax(0, 1fr) 11px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 3px !important;
    width: min(calc(100vw - 72px), 318px) !important;
    max-width: none !important;
    margin: 9px auto 0 !important;
    padding: 0 !important;
  }

  body main .hero .feature-card {
    display: grid !important;
    place-items: center !important;
    min-height: 112px !important;
    padding: 9px 5px 9px !important;
    gap: 3px !important;
    background: rgba(255, 255, 255, 0.92) !important;
    border: 1px solid rgba(151, 214, 250, 0.6) !important;
    border-radius: 12px !important;
    box-shadow: 0 9px 16px rgba(44, 130, 190, 0.08) !important;
  }

  body main .hero .feature-icon {
    width: 33px !important;
    height: 33px !important;
  }

  body main .hero .feature-card h2 {
    margin: 0 !important;
    color: #0065cf !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
    letter-spacing: 0.035em !important;
    text-align: center !important;
  }

  body main .hero .feature-card p {
    margin: 0 !important;
    color: #172033 !important;
    font-size: 8.8px !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.025em !important;
    text-align: center !important;
  }

  body main .hero .feature-cross {
    position: relative !important;
    display: block !important;
    width: 11px !important;
    height: 11px !important;
    color: #8fc6ec !important;
    opacity: 1 !important;
  }

  body main .hero .feature-cross::before,
  body main .hero .feature-cross::after {
    width: 11px !important;
    height: 1.5px !important;
    background: #8fc6ec !important;
  }
}

/* Guardrail: generated images are allowed only as component assets.
   Never let old whole-section SP screenshots become the final UI again. */
@media (max-width: 760px) {
  body main .sp-section-art,
  body main .hero-sp-art,
  body main .issue-section-sp-art,
  body main .sp-art-link,
  body .site-footer > .sp-section-art {
    display: none !important;
  }

  body main .issues-section,
  body main .cases-section,
  body main .service-section,
  body main .flow-section,
  body main .faq-section,
  body main .contact-section,
  body .site-footer {
    position: relative !important;
    margin-top: 0 !important;
    overflow: hidden !important;
  }

  body main .issues-section {
    padding: 28px 0 30px !important;
    background:
      radial-gradient(ellipse at 50% 7%, rgba(255, 255, 255, 0.98) 0 35%, rgba(255, 255, 255, 0) 71%),
      url("../img/bg-canvas-sp-a.svg") center top / 100% 100% no-repeat,
      #edf9ff !important;
  }

  body main .cases-section {
    padding: 50px 0 48px !important;
    background:
      url("../img/bg-canvas-sp-c.svg") center top / 100% 100% no-repeat,
      #f2fbff !important;
  }

  body main .service-section {
    padding: 50px 0 50px !important;
    background:
      url("../img/bg-canvas-sp-a.svg") center top / 100% 100% no-repeat,
      #edf9ff !important;
  }

  body main .flow-section {
    padding: 50px 0 48px !important;
    background:
      url("../img/bg-canvas-sp-c.svg") center top / 100% 100% no-repeat,
      #eefaff !important;
  }

  body main .faq-section {
    padding: 50px 0 48px !important;
    background:
      url("../img/bg-canvas-sp-b.svg") center top / 100% 100% no-repeat,
      #eef9ff !important;
  }

  body main .contact-section {
    padding: 42px 0 40px !important;
    background:
      url("../img/bg-canvas-sp-footer.svg") center top / 100% 100% no-repeat,
      #f3fbff !important;
  }

  body .site-footer {
    padding: 38px 0 18px !important;
    background:
      url("../img/bg-canvas-sp-footer.svg") center top / 100% 100% no-repeat,
      #f3fbff !important;
  }

  body main section.issues-section > .container.container {
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main section.cases-section > .container.container,
  body main section.service-section > .container.container,
  body main section.flow-section > .container.container,
  body main section.faq-section > .container.container,
  body main .contact-section > .container.container,
  body .site-footer > .container.container {
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    width: min(calc(100% - 48px), var(--container)) !important;
    max-width: var(--container) !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin-inline: auto !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .issues-section .section-heading,
  body main .issues-section .issue-grid,
  body main .issues-section .issue-pagination,
  body main .issues-section .issue-bottom {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    padding: revert !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .issues-section .section-heading {
    display: block !important;
    width: min(calc(100% - 48px), var(--container)) !important;
    max-width: var(--container) !important;
    margin: 0 auto 12px !important;
    padding: 0 !important;
  }

  body main .issues-section .issue-grid {
    display: grid !important;
    width: calc(100% + 32px) !important;
    margin: 10px -16px 0 !important;
    padding: 0 28px 4px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
  }

  body main .issues-section .issue-pagination {
    display: flex !important;
    width: auto !important;
    margin: 6px 0 8px !important;
    padding: 0 !important;
  }

  body main .issues-section .issue-bottom {
    display: block !important;
    width: min(calc(100% - 48px), var(--container)) !important;
    margin: 0 auto !important;
    padding: 8px 0 18px !important;
  }

  body main .strengths-section {
    min-height: auto !important;
    padding: 48px 0 48px !important;
    background:
      radial-gradient(circle at 90% 12%, rgba(144, 207, 244, 0.32) 0 1px, transparent 1.8px) 0 0 / 8px 8px,
      radial-gradient(ellipse at 20% 0%, rgba(217, 241, 255, 0.74) 0 20%, transparent 52%),
      radial-gradient(ellipse at 88% 84%, rgba(201, 236, 253, 0.56) 0 18%, transparent 46%),
      linear-gradient(180deg, #f7fcff 0%, #ffffff 42%, #eefaff 100%) !important;
  }

  body main .strengths-section > .container.container {
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    width: min(calc(100% - 48px), var(--container)) !important;
    max-width: var(--container) !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin-inline: auto !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading {
    position: relative !important;
    display: grid !important;
    justify-items: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 auto 22px !important;
    overflow: visible !important;
    white-space: normal !important;
    text-align: center !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading .section-eyebrow,
  body main .strengths-section .section-heading h2 {
    position: relative !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading .section-eyebrow {
    margin-bottom: 8px !important;
    color: #0065cf !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.22em !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::before,
  body main .strengths-section .section-heading .section-eyebrow::after {
    position: absolute !important;
    top: 50% !important;
    display: block !important;
    width: 13px !important;
    height: 13px !important;
    content: "" !important;
    background: linear-gradient(135deg, #45c0e0, #a9c85a) !important;
    clip-path: polygon(50% 0, 61% 38%, 100% 50%, 61% 62%, 50% 100%, 39% 62%, 0 50%, 39% 38%) !important;
    transform: translateY(-50%) !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::before {
    left: -26px !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::after {
    right: -26px !important;
  }

  body main .strengths-section .section-heading h2 {
    display: grid !important;
    gap: 0 !important;
    color: #0065cf !important;
    font-family: var(--serif) !important;
    font-size: clamp(30px, 8vw, 38px) !important;
    font-weight: 800 !important;
    line-height: 1.14 !important;
    letter-spacing: 0.045em !important;
  }

  body main .strengths-section .section-heading h2 .line {
    position: relative !important;
    display: block !important;
    width: auto !important;
    transform: none !important;
  }

  body main .strengths-section .section-heading h2::before {
    position: absolute !important;
    left: 50% !important;
    bottom: -15px !important;
    display: block !important;
    width: min(270px, 78vw) !important;
    height: 20px !important;
    content: "" !important;
    border-bottom: 2px solid #1ebfc1 !important;
    border-radius: 0 0 50% 50% !important;
    transform: translateX(-50%) !important;
  }

  body main .strengths-section .section-heading h2::after {
    position: absolute !important;
    left: 50% !important;
    bottom: -18px !important;
    display: block !important;
    width: 7px !important;
    height: 7px !important;
    content: "" !important;
    background: #fff !important;
    border: 1px solid #1ebfc1 !important;
    border-radius: 50% !important;
    transform: translateX(-50%) !important;
  }

  body main .strengths-section .strength-stack {
    position: relative !important;
    display: grid !important;
    gap: 12px !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 26px 0 0 !important;
    overflow: visible !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 70px minmax(0, 1fr) 82px !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 342px !important;
    min-height: 166px !important;
    aspect-ratio: auto !important;
    padding: 16px 12px 16px 15px !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    background:
      radial-gradient(circle at 84% 26%, rgba(190, 230, 250, 0.58) 0 32px, transparent 66px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98), rgba(255, 254, 244, 0.92)) !important;
    border: 1px solid rgba(154, 213, 248, 0.76) !important;
    border-radius: 18px !important;
    box-shadow:
      0 16px 30px rgba(28, 110, 187, 0.10),
      inset 0 1px 0 rgba(255, 255, 255, 0.92) !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body main .strengths-section .strength-card.strength-two {
    background:
      radial-gradient(circle at 84% 78%, rgba(207, 235, 214, 0.70) 0 34px, transparent 72px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98), rgba(255, 254, 242, 0.92)) !important;
  }

  body main .strengths-section .strength-card.strength-three {
    background:
      radial-gradient(circle at 88% 82%, rgba(207, 229, 252, 0.72) 0 35px, transparent 74px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98), rgba(255, 244, 250, 0.92)) !important;
  }

  body main .strengths-section .strength-card .strength-num,
  body main .strengths-section .strength-card > div,
  body main .strengths-section .strength-card .strength-art {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body main .strengths-section .strength-card .strength-num {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
    color: transparent !important;
    font-family: var(--serif) !important;
    font-size: 44px !important;
    font-weight: 900 !important;
    line-height: 0.96 !important;
    letter-spacing: 0.02em !important;
    background: linear-gradient(145deg, #005dc8 0%, #25bdbb 82%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    text-shadow: none !important;
  }

  body main .strengths-section .strength-card > div {
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
    align-self: center !important;
  }

  body main .strengths-section .strength-card h3 {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    margin: 0 !important;
    color: #0065cf !important;
    font-size: 11.2px !important;
    font-weight: 900 !important;
    line-height: 1.58 !important;
    letter-spacing: 0.028em !important;
    white-space: nowrap !important;
  }

  body main .strengths-section .strength-card h3::after {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    display: block !important;
    width: 100% !important;
    height: 0 !important;
    margin: 7px 0 8px !important;
    content: "" !important;
    border-bottom: 2px dotted rgba(83, 188, 220, 0.72) !important;
  }

  body main .strengths-section .strength-card p {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    margin: 0 !important;
    color: #1d2737 !important;
    font-size: 9.6px !important;
    font-weight: 800 !important;
    line-height: 1.76 !important;
    letter-spacing: 0.025em !important;
  }

  body main .strengths-section .strength-card .strength-art {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: center !important;
    width: 88px !important;
    max-width: 88px !important;
    filter: saturate(1.03) drop-shadow(0 8px 11px rgba(61, 143, 206, 0.08)) !important;
    pointer-events: none !important;
  }

  body main .strengths-section .strength-two .strength-art {
    width: 86px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    width: 96px !important;
    transform: translateX(5px) !important;
  }

  body main .strengths-section .speech-bubble {
    display: grid !important;
    width: min(100%, 300px) !important;
    min-height: 74px !important;
    margin: 16px auto 0 !important;
    padding: 13px 22px !important;
    place-items: center !important;
    color: #0065cf !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.48 !important;
    text-align: center !important;
    background: rgba(255, 255, 255, 0.90) !important;
    border: 1px solid rgba(154, 213, 248, 0.78) !important;
    border-radius: 22px !important;
    box-shadow: 0 14px 24px rgba(28, 110, 187, 0.08) !important;
  }

  body main .cases-section .section-heading {
    padding-inline: 10px !important;
  }

  body main .cases-section .section-heading h2 {
    width: min(100%, 318px) !important;
  }

  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    width: min(100%, 330px) !important;
    margin: 11px auto 0 !important;
    font-size: 10.2px !important;
    line-height: 1.78 !important;
    letter-spacing: 0.02em !important;
  }

  body main .service-main {
    grid-template-columns: minmax(0, 1fr) 116px !important;
    gap: 8px !important;
    padding: 12px 10px 12px 12px !important;
  }

  body main .service-copy {
    grid-template-columns: 50px minmax(0, 1fr) !important;
    gap: 6px 8px !important;
  }

  body main .service-copy h3 {
    font-size: 14px !important;
    line-height: 1.48 !important;
    letter-spacing: 0.025em !important;
    white-space: normal !important;
  }

  body main .service-copy p {
    font-size: 9.2px !important;
    line-height: 1.72 !important;
    letter-spacing: 0.02em !important;
  }

  body main .service-illustration-img {
    width: 116px !important;
  }

  body .footer-nav div:last-child {
    grid-template-columns: 0.92fr 1.34fr 0.92fr !important;
    gap: 3px 5px !important;
  }

  body .footer-nav div:last-child a {
    min-width: 0 !important;
  }

  body .footer-nav div:last-child a:nth-of-type(2) {
    padding-left: 12px !important;
    font-size: 7.6px !important;
    letter-spacing: 0 !important;
  }
}

/* Final SP override for the Strengths section.
   Keep the section in DOM; use images only for the background wash and line-art parts. */
@media (max-width: 760px) {
  body main .strengths-section {
    position: relative !important;
    min-height: auto !important;
    padding: 66px 0 42px !important;
    overflow: hidden !important;
    background:
      #f7fcff url("../img/strength-bg-sp-composed-2x.png") center top / 100% 100% no-repeat !important;
  }

  body main .strengths-section::before,
  body main .strengths-section::after {
    display: none !important;
  }

  body main .strengths-section > .strength-bg.strength-bg {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    pointer-events: none !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .strength-wave,
  body main .strengths-section .strength-dot,
  body main .strengths-section .strength-orbit,
  body main .strengths-section .strength-halo {
    display: none !important;
  }

  body main .strengths-section .strength-spark {
    position: absolute !important;
    z-index: 1 !important;
    display: block !important;
    width: 18px !important;
    height: 22px !important;
    opacity: 0.72 !important;
    background: linear-gradient(180deg, #62cae5 0%, #0b76d9 100%) !important;
    clip-path: polygon(50% 0, 61% 38%, 100% 50%, 61% 62%, 50% 100%, 39% 62%, 0 50%, 39% 38%) !important;
  }

  body main .strengths-section .strength-spark.spark-one {
    top: 130px !important;
    left: 22px !important;
    transform: rotate(-6deg) scale(1.06) !important;
  }

  body main .strengths-section .strength-spark.spark-two {
    top: 148px !important;
    right: 35px !important;
    width: 16px !important;
    height: 20px !important;
    opacity: 0.74 !important;
    background: linear-gradient(180deg, #c5d96d 0%, #99bd42 100%) !important;
    transform: rotate(10deg) scale(0.9) !important;
  }

  body main .strengths-section .strength-spark.spark-three {
    top: 78px !important;
    left: calc(50% - 82px) !important;
    width: 10px !important;
    height: 13px !important;
    opacity: 0.58 !important;
    transform: rotate(4deg) !important;
  }

  body main .strengths-section > .container.container {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 auto !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading {
    position: relative !important;
    display: grid !important;
    justify-items: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 18px !important;
    margin: 0 auto 40px !important;
    overflow: visible !important;
    text-align: center !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading::before {
    position: absolute !important;
    top: 28px !important;
    left: 50% !important;
    display: block !important;
    width: 156px !important;
    height: 0 !important;
    content: "" !important;
    border-bottom: 2px dotted rgba(62, 176, 224, 0.58) !important;
    transform: translateX(-50%) !important;
  }

  body main .strengths-section .section-heading .section-eyebrow,
  body main .strengths-section .section-heading h2 {
    position: relative !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .strengths-section .section-heading .section-eyebrow {
    margin-bottom: 18px !important;
    color: #0064c9 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::before,
  body main .strengths-section .section-heading .section-eyebrow::after {
    position: absolute !important;
    top: 50% !important;
    display: block !important;
    width: 12px !important;
    height: 15px !important;
    content: "" !important;
    background: linear-gradient(135deg, #54c7e1 0%, #9fc553 100%) !important;
    clip-path: polygon(50% 0, 61% 38%, 100% 50%, 61% 62%, 50% 100%, 39% 62%, 0 50%, 39% 38%) !important;
    transform: translateY(-50%) !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::before {
    left: -28px !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::after {
    right: -28px !important;
  }

  body main .strengths-section .section-heading h2 {
    display: grid !important;
    gap: 1px !important;
    color: transparent !important;
    font-family: var(--serif) !important;
    font-size: 40px !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
    background: linear-gradient(98deg, #0057bd 0%, #0068cf 65%, #18b7bd 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    text-shadow: 0 8px 16px rgba(18, 113, 197, 0.08) !important;
  }

  body main .strengths-section .section-heading h2 .line {
    position: relative !important;
    display: block !important;
    width: auto !important;
    transform: none !important;
  }

  body main .strengths-section .section-heading h2::before {
    position: absolute !important;
    left: 50% !important;
    bottom: -42px !important;
    display: block !important;
    width: min(356px, 94vw) !important;
    height: 46px !important;
    content: "" !important;
    opacity: 0.98 !important;
    background: url("data:image/svg+xml,%3Csvg width='356' height='46' viewBox='0 0 356 46' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 21C31 38 76 36 117 29C153 23 177 19 216 27C261 36 314 37 344 15' stroke='%231C94E3' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='M12 21C31 38 76 36 117 29C153 23 177 19 216 27C261 36 314 37 344 15' stroke='%2325C5B9' stroke-width='2.1' stroke-linecap='round' stroke-dasharray='178 178'/%3E%3Cpath d='M13 20C4 12 5 6 15 4' stroke='%231C94E3' stroke-width='1.6' stroke-linecap='round' opacity='.72'/%3E%3Cpath d='M344 15C354 7 354 2 344 1' stroke='%2325C5B9' stroke-width='1.6' stroke-linecap='round' opacity='.72'/%3E%3Ccircle cx='178' cy='31' r='4' fill='%23F8FCFF' stroke='%2325C5B9' stroke-width='1.8'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
    transform: translateX(-50%) !important;
  }

  body main .strengths-section .section-heading h2::after {
    display: none !important;
  }

  body main .strengths-section .strength-stack {
    position: relative !important;
    display: grid !important;
    gap: 16px !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body main .strengths-section .strength-stack::before,
  body main .strengths-section .strength-stack::after {
    display: none !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: grid !important;
    grid-template-columns: 82px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 4px 10px !important;
    width: min(382px, calc(100% - 30px)) !important;
    max-width: none !important;
    min-height: 160px !important;
    aspect-ratio: auto !important;
    padding: 26px 13px 22px 22px !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    background:
      radial-gradient(ellipse at 86% 30%, rgba(196, 229, 250, 0.74) 0 39px, transparent 82px),
      radial-gradient(ellipse at 92% 76%, rgba(221, 246, 222, 0.50) 0 24px, transparent 58px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 254, 242, 0.96) 100%) !important;
    border: 1px solid rgba(177, 224, 250, 0.78) !important;
    border-radius: 22px !important;
    box-shadow:
      0 18px 30px rgba(50, 133, 194, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.92) !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body main .strengths-section .strength-card.strength-two {
    background:
      radial-gradient(ellipse at 86% 75%, rgba(202, 235, 216, 0.74) 0 36px, transparent 78px),
      radial-gradient(ellipse at 92% 28%, rgba(205, 232, 250, 0.46) 0 28px, transparent 62px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 253, 236, 0.96) 100%) !important;
  }

  body main .strengths-section .strength-card.strength-three {
    background:
      radial-gradient(ellipse at 90% 78%, rgba(205, 230, 252, 0.72) 0 40px, transparent 82px),
      linear-gradient(118deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 239, 247, 0.96) 100%) !important;
  }

  body main .strengths-section .strength-card::before,
  body main .strengths-section .strength-card::after {
    display: none !important;
  }

  body main .strengths-section .strength-card .strength-num,
  body main .strengths-section .strength-card > div,
  body main .strengths-section .strength-card .strength-art {
    position: relative !important;
    z-index: 3 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body main .strengths-section .strength-card .strength-num {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
    color: transparent !important;
    font-family: var(--serif) !important;
    font-size: 58px !important;
    font-weight: 900 !important;
    line-height: 0.9 !important;
    letter-spacing: 0 !important;
    background: linear-gradient(145deg, #0061c9 0%, #26bdba 88%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    text-shadow: 0 5px 8px rgba(19, 118, 199, 0.06) !important;
  }

  body main .strengths-section .strength-card > div {
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
    align-self: start !important;
    width: 156px !important;
    padding-top: 1px !important;
  }

  body main .strengths-section .strength-card h3 {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    margin: 0 !important;
    color: #0063ca !important;
    font-size: 13.8px !important;
    font-weight: 900 !important;
    line-height: 1.58 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
  }

  body main .strengths-section .strength-card h3::after {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    display: block !important;
    width: 172px !important;
    height: 0 !important;
    margin: 9px 0 13px !important;
    content: "" !important;
    border-bottom: 2px dotted rgba(92, 188, 220, 0.68) !important;
  }

  body main .strengths-section .strength-card p {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 172px !important;
    margin: 0 !important;
    color: #1d2737 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.74 !important;
    letter-spacing: 0 !important;
  }

  body main .strengths-section .strength-card .strength-art {
    position: absolute !important;
    z-index: 2 !important;
    display: block !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    filter: saturate(1.03) drop-shadow(0 8px 11px rgba(61, 143, 206, 0.08)) !important;
    pointer-events: none !important;
  }

  body main .strengths-section .strength-one .strength-art {
    top: 18px !important;
    right: 17px !important;
    width: 142px !important;
  }

  body main .strengths-section .strength-two .strength-art {
    top: 16px !important;
    right: 14px !important;
    width: 142px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    top: 13px !important;
    right: 11px !important;
    width: 154px !important;
    transform: none !important;
  }

  body main .strengths-section .speech-bubble {
    display: none !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section .section-heading h2 {
    font-size: 38px !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    width: min(360px, calc(100% - 28px)) !important;
    min-height: 156px !important;
    padding-left: 20px !important;
  }

  body main .strengths-section .strength-card > div {
    width: 148px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 13px !important;
  }

  body main .strengths-section .strength-card h3::after,
  body main .strengths-section .strength-card p {
    width: 160px !important;
  }

  body main .strengths-section .strength-card p {
    font-size: 10.6px !important;
  }

  body main .strengths-section .strength-one .strength-art {
    width: 132px !important;
  }

  body main .strengths-section .strength-two .strength-art {
    width: 132px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    width: 144px !important;
  }
}

@media (max-width: 760px) {
  body main .strengths-section .section-heading h2 {
    color: #0061c9 !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
  }

  body main .strengths-section .section-heading h2 .line {
    color: transparent !important;
    background: linear-gradient(98deg, #0057bd 0%, #0068cf 65%, #18b7bd 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    padding-top: 21px !important;
    padding-bottom: 18px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 13.2px !important;
    line-height: 1.48 !important;
  }

  body main .strengths-section .strength-card h3::after {
    margin: 7px 0 10px !important;
  }

  body main .strengths-section .strength-card p {
    font-size: 10.4px !important;
    line-height: 1.68 !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section .strength-card h3 {
    font-size: 12.8px !important;
  }

  body main .strengths-section .strength-card p {
    font-size: 10.2px !important;
  }
}

@media (max-width: 760px) {
  body main .strengths-section .strength-card.strength-two {
    min-height: 166px !important;
  }

  body main .strengths-section .strength-two h3 {
    font-size: 12.5px !important;
    line-height: 1.42 !important;
  }

  body main .strengths-section .strength-two h3::after {
    margin: 6px 0 8px !important;
  }

  body main .strengths-section .strength-two p {
    font-size: 10px !important;
    line-height: 1.6 !important;
  }
}

@media (max-width: 760px) {
  body main .strengths-section {
    padding-top: 50px !important;
    padding-bottom: 34px !important;
  }

  body main .strengths-section .section-heading {
    margin-bottom: 35px !important;
  }

  body main .strengths-section .section-heading .section-eyebrow {
    margin-bottom: 15px !important;
  }

  body main .strengths-section .section-heading h2 {
    font-size: 36px !important;
    line-height: 1.12 !important;
  }

  body main .strengths-section .section-heading h2::before {
    bottom: -36px !important;
    width: min(330px, 90vw) !important;
    height: 42px !important;
  }

  body main .strengths-section .strength-stack {
    gap: 13px !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    grid-template-columns: 68px minmax(0, 1fr) !important;
    min-height: 154px !important;
    padding: 21px 12px 18px 20px !important;
  }

  body main .strengths-section .strength-card .strength-num {
    transform: translateX(-13px) !important;
  }

  body main .strengths-section .strength-card > div {
    width: 162px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 13.3px !important;
    line-height: 1.46 !important;
  }

  body main .strengths-section .strength-card h3::after {
    width: 168px !important;
    margin: 7px 0 9px !important;
  }

  body main .strengths-section .strength-card p {
    width: 168px !important;
    font-size: 10.6px !important;
    line-height: 1.62 !important;
  }

  body main .strengths-section .strength-two h3 {
    font-size: 12.4px !important;
    line-height: 1.38 !important;
  }

  body main .strengths-section .strength-two p {
    font-size: 10.2px !important;
    line-height: 1.56 !important;
  }

  body main .strengths-section .strength-one .strength-art {
    top: 14px !important;
    right: -4px !important;
    width: 178px !important;
  }

  body main .strengths-section .strength-two .strength-art {
    top: 13px !important;
    right: 2px !important;
    width: 164px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    top: 8px !important;
    right: -8px !important;
    width: 188px !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section .section-heading h2 {
    font-size: 35px !important;
  }

  body main .strengths-section .strength-card > div {
    width: 154px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 12.7px !important;
  }

  body main .strengths-section .strength-card h3::after,
  body main .strengths-section .strength-card p {
    width: 158px !important;
  }

  body main .strengths-section .strength-card p {
    font-size: 10.2px !important;
  }

  body main .strengths-section .strength-two h3 {
    font-size: 12px !important;
  }
}

@media (max-width: 760px) {
  body main .strengths-section .section-heading h2 {
    font-size: 34px !important;
    line-height: 1.13 !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section .section-heading h2 {
    font-size: 32px !important;
  }
}

/* 2026-06-30 Strengths SP alignment pass.
   Keep cards/text in DOM; only tune coordinates against the SP mock. */
@media (max-width: 760px) {
  body main .strengths-section {
    padding-top: 50px !important;
    padding-bottom: 38px !important;
  }

  body main .strengths-section .section-heading {
    margin-bottom: 34px !important;
  }

  body main .strengths-section .section-heading h2 {
    font-size: 32px !important;
    line-height: 1.16 !important;
  }

  body main .strengths-section .section-heading h2::before {
    bottom: -35px !important;
    width: min(306px, 82vw) !important;
    height: 41px !important;
  }

  body main .strengths-section .strength-stack {
    gap: 16px !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    display: block !important;
    width: min(374px, calc(100% - 48px)) !important;
    height: 168px !important;
    min-height: 168px !important;
    padding: 0 !important;
    margin-right: auto !important;
    margin-left: auto !important;
    border-radius: 23px !important;
  }

  body main .strengths-section .strength-card .strength-num {
    position: absolute !important;
    top: 15px !important;
    left: 21px !important;
    font-size: 62px !important;
    line-height: 1 !important;
    transform: none !important;
  }

  body main .strengths-section .strength-card > div {
    position: absolute !important;
    top: 41px !important;
    left: 86px !important;
    width: 165px !important;
  }

  body main .strengths-section .strength-two > div {
    top: 31px !important;
  }

  body main .strengths-section .strength-three > div {
    top: 43px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 13.5px !important;
    font-weight: 900 !important;
    line-height: 1.5 !important;
  }

  body main .strengths-section .strength-two h3 {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  body main .strengths-section .strength-card h3::after {
    width: 156px !important;
    margin: 8px 0 10px -38px !important;
  }

  body main .strengths-section .strength-two h3::after {
    margin-top: 8px !important;
    margin-bottom: 11px !important;
  }

  body main .strengths-section .strength-card p {
    width: 154px !important;
    margin-left: -38px !important;
    font-size: 11.1px !important;
    font-weight: 800 !important;
    line-height: 1.72 !important;
  }

  body main .strengths-section .strength-two p {
    font-size: 11px !important;
    line-height: 1.72 !important;
  }

  body main .strengths-section .strength-card .strength-art {
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
  }

  body main .strengths-section .strength-one .strength-art {
    top: 10px !important;
    right: -24px !important;
    width: 180px !important;
  }

  body main .strengths-section .strength-two .strength-art {
    top: 7px !important;
    right: -26px !important;
    width: 176px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    top: 5px !important;
    right: -30px !important;
    width: 196px !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section .section-heading h2 {
    font-size: 31px !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    width: min(360px, calc(100% - 38px)) !important;
  }

  body main .strengths-section .strength-card > div {
    left: 82px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 13px !important;
  }

  body main .strengths-section .strength-two h3 {
    font-size: 12.5px !important;
  }

  body main .strengths-section .strength-card p {
    font-size: 10.7px !important;
  }
}

/* 2026-06-30 Strengths SP fidelity pass.
   Tighten the card rhythm and keep illustration assets from clipping into text. */
@media (max-width: 760px) {
  body main .strengths-section {
    padding-top: 38px !important;
    padding-bottom: 30px !important;
  }

  body main .strengths-section .section-heading {
    margin-bottom: 25px !important;
  }

  body main .strengths-section .section-heading .section-eyebrow {
    margin-bottom: 8px !important;
  }

  body main .strengths-section .section-heading h2 {
    font-size: 31px !important;
    line-height: 1.08 !important;
  }

  body main .strengths-section .section-heading h2::before {
    bottom: -29px !important;
    width: min(296px, 78vw) !important;
    height: 34px !important;
  }

  body main .strengths-section .strength-stack {
    gap: 14px !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    width: min(354px, calc(100% - 36px)) !important;
    height: 150px !important;
    min-height: 150px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  body main .strengths-section .strength-card .strength-num {
    top: 18px !important;
    left: 20px !important;
    font-family: Georgia, "Times New Roman", "Noto Serif JP", "Yu Mincho", serif !important;
    font-size: 56px !important;
    font-weight: 400 !important;
    line-height: 0.98 !important;
    letter-spacing: 0 !important;
  }

  body main .strengths-section .strength-card > div {
    top: 40px !important;
    left: 88px !important;
    width: 136px !important;
  }

  body main .strengths-section .strength-two > div {
    top: 30px !important;
    width: 132px !important;
  }

  body main .strengths-section .strength-three > div {
    top: 42px !important;
    width: 132px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 12.5px !important;
    font-weight: 900 !important;
    line-height: 1.5 !important;
  }

  body main .strengths-section .strength-two h3 {
    font-size: 12.1px !important;
    line-height: 1.48 !important;
  }

  body main .strengths-section .strength-three h3 {
    font-size: 12.4px !important;
  }

  body main .strengths-section .strength-card h3::after {
    width: 146px !important;
    margin: 7px 0 8px -34px !important;
  }

  body main .strengths-section .strength-two h3::after {
    width: 144px !important;
    margin-top: 7px !important;
    margin-bottom: 9px !important;
  }

  body main .strengths-section .strength-card p {
    width: 150px !important;
    margin-left: -34px !important;
    font-size: 10.5px !important;
    font-weight: 800 !important;
    line-height: 1.68 !important;
  }

  body main .strengths-section .strength-two p {
    font-size: 10.4px !important;
    line-height: 1.68 !important;
  }

  body main .strengths-section .strength-card .strength-art {
    max-height: none !important;
    height: auto !important;
    object-fit: contain !important;
  }

  body main .strengths-section .strength-one .strength-art {
    top: 14px !important;
    right: 3px !important;
    width: 153px !important;
  }

  body main .strengths-section .strength-two .strength-art {
    top: 15px !important;
    right: 2px !important;
    width: 158px !important;
  }

  body main .strengths-section .strength-three .strength-art {
    top: 17px !important;
    right: -2px !important;
    width: 156px !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section {
    padding-top: 36px !important;
  }

  body main .strengths-section .section-heading h2 {
    font-size: 30px !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    width: min(352px, calc(100% - 34px)) !important;
  }

  body main .strengths-section .strength-card .strength-num {
    left: 19px !important;
    font-size: 55px !important;
  }

  body main .strengths-section .strength-card > div {
    left: 86px !important;
  }

  body main .strengths-section .strength-card h3 {
    font-size: 12.2px !important;
  }

  body main .strengths-section .strength-two h3 {
    font-size: 11.9px !important;
  }
}

/* 2026-06-30 Issues SP reconstruction.
   No heading/bottom screenshots: text, card structure, dots, and decorative rhythm are DOM/CSS. */
@media (max-width: 760px) {
  body main .issues-section {
    padding: 24px 0 0 !important;
    overflow: hidden !important;
    background:
      radial-gradient(ellipse at 50% 8%, rgba(255, 255, 255, 0.98) 0 34%, rgba(255, 255, 255, 0) 72%),
      radial-gradient(ellipse at 16% 100%, rgba(198, 234, 255, 0.62) 0 24%, rgba(198, 234, 255, 0) 55%),
      radial-gradient(ellipse at 88% 97%, rgba(202, 241, 226, 0.62) 0 26%, rgba(202, 241, 226, 0) 56%),
      linear-gradient(180deg, #f6fcff 0%, #ffffff 41%, #f4fbff 66%, #e7fbf8 100%) !important;
  }

  body main .issues-section .section-wave {
    position: absolute !important;
    inset: auto -22% -3px -22% !important;
    display: block !important;
    height: 188px !important;
    pointer-events: none !important;
    background:
      radial-gradient(ellipse at 47% 28%, rgba(255, 255, 255, 0.93) 0 41%, rgba(255, 255, 255, 0) 72%),
      linear-gradient(105deg, rgba(187, 229, 255, 0.44), rgba(255, 255, 255, 0.54) 46%, rgba(199, 244, 229, 0.54));
    clip-path: ellipse(72% 42% at 50% 63%) !important;
    opacity: 0.98 !important;
  }

  body main .issue-heading-sp-art,
  body main .issue-bottom-sp-art,
  body main .issue-section-sp-art {
    display: none !important;
  }

  body main .issues-section .section-heading,
  body main .issues-section .section-heading .heading-small,
  body main .issues-section .section-heading h2,
  body main .issues-section .section-heading .issue-lead,
  body main .issue-bottom p,
  body main .issue-bottom h3 {
    position: relative !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
    border: 0 !important;
    clip-path: none !important;
  }

  body main .issues-section .section-heading {
    width: min(100% - 30px, 390px) !important;
    max-width: 390px !important;
    margin: 0 auto 18px !important;
    text-align: center !important;
  }

  body main .issues-section .section-heading::before,
  body main .issues-section .section-heading::after {
    position: absolute !important;
    z-index: 0 !important;
    display: block !important;
    pointer-events: none !important;
    content: "" !important;
    opacity: 0.58 !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
  }

  body main .issues-section .section-heading::before {
    top: -4px !important;
    left: -30px !important;
    width: 118px !important;
    height: 62px !important;
    background-image: url("data:image/svg+xml,%3Csvg width='118' height='62' viewBox='0 0 118 62' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 35C18 14 34 15 29 29C23 46 7 10 35 20C55 27 73 43 110 35' stroke='%2365CFF2' stroke-width='2' stroke-linecap='round' stroke-dasharray='1 7'/%3E%3Cpath d='M13 10C18 2 27 4 26 13C25 22 13 27 13 27C13 27 4 16 7 9C9 3 15 5 13 10Z' stroke='%2365CFF2' stroke-width='2' fill='none'/%3E%3C/svg%3E") !important;
  }

  body main .issues-section .section-heading::after {
    top: 18px !important;
    right: -28px !important;
    width: 106px !important;
    height: 70px !important;
    background-image: url("data:image/svg+xml,%3Csvg width='106' height='70' viewBox='0 0 106 70' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 45C29 55 49 48 52 31C56 9 27 16 37 34C50 56 76 38 100 17' stroke='%2373D1F4' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M90 10C94 5 101 6 101 13C100 20 90 24 90 24C90 24 82 16 85 10C87 6 92 7 90 10Z' fill='%2379D6F4' fill-opacity='.56'/%3E%3C/svg%3E") !important;
  }

  body main .issues-section .heading-small {
    z-index: 2 !important;
    margin: 8px 0 8px !important;
    color: #006bd8 !important;
    font-family: var(--rounded) !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.09em !important;
  }

  body main .issues-section .section-heading h2 {
    z-index: 2 !important;
    max-width: none !important;
    margin: 0 auto !important;
    color: #1b2b47 !important;
    font-family: var(--rounded) !important;
    font-size: 29px !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
    letter-spacing: 0.02em !important;
    text-align: center !important;
    text-shadow: none !important;
  }

  body main .issues-section .section-heading h2 .line {
    display: block !important;
  }

  body main .issues-section .section-heading h2 .wall-word {
    position: relative !important;
    display: inline-block !important;
    margin-inline: 0.035em 0.02em !important;
    color: #29b3e8 !important;
    font-family: var(--rounded) !important;
    font-size: 1.02em !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 0.02em !important;
    transform: translateY(-0.02em) !important;
  }

  body main .issues-section .section-heading h2 .wall-word::before {
    position: absolute !important;
    top: -0.48em !important;
    right: -0.5em !important;
    display: block !important;
    width: 28px !important;
    height: 26px !important;
    content: "" !important;
    background: url("data:image/svg+xml,%3Csvg width='28' height='26' viewBox='0 0 28 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 1L17 9L26 10L18 14L16 25L12 15L3 18L10 11L8 3L15 1Z' fill='%236ECDF2' fill-opacity='.64'/%3E%3C/svg%3E") center / contain no-repeat !important;
  }

  body main .issues-section .section-heading h2 .wall-word::after {
    left: 0.02em !important;
    right: 0 !important;
    bottom: -0.16em !important;
    height: 4px !important;
    background: linear-gradient(90deg, #006bd8, #22c2bf) !important;
    border-radius: 999px !important;
  }

  body main .issues-section .issue-lead {
    z-index: 2 !important;
    width: min(100%, 322px) !important;
    margin: 16px auto 0 !important;
    color: #172033 !important;
    font-family: var(--sans) !important;
    font-size: 10.8px !important;
    font-weight: 800 !important;
    line-height: 1.9 !important;
    letter-spacing: 0.055em !important;
  }

  body main .issues-section .issue-lead-line {
    display: block !important;
  }

  body main .issues-section .issue-lead-sign {
    margin-top: 1px !important;
    white-space: normal !important;
  }

  body main .issues-section .issue-sp-line,
  body main .issues-section .issue-structure-line {
    display: inline !important;
  }

  body main .issues-section .issue-structure-line strong {
    color: #006bd8 !important;
    font-weight: 900 !important;
  }

  body main .issues-section .issue-grid {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 284px !important;
    grid-template-columns: none !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 16px 0 0 !important;
    padding: 0 24px 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain !important;
    scroll-padding-inline: 24px !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
  }

  body main .issues-section .issue-grid::-webkit-scrollbar {
    display: none !important;
  }

  body main .issues-section .issue-card,
  body main .issues-section .issue-card:nth-child(2n),
  body main .issues-section .issue-card:nth-child(2n + 1) {
    position: relative !important;
    display: block !important;
    width: 284px !important;
    min-width: 284px !important;
    height: 178px !important;
    min-height: 178px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    background:
      radial-gradient(ellipse at 88% 20%, rgba(226, 245, 255, 0.62) 0 24%, rgba(226, 245, 255, 0) 55%),
      linear-gradient(180deg, rgba(255, 255, 255, 0.985), rgba(251, 254, 255, 0.96)) !important;
    border: 1px solid rgba(170, 221, 252, 0.88) !important;
    border-radius: 22px !important;
    box-shadow:
      0 14px 30px rgba(38, 125, 195, 0.10),
      inset 0 1px 0 rgba(255, 255, 255, 0.96) !important;
    opacity: 1 !important;
    scroll-snap-align: start !important;
    transform: none !important;
  }

  body main .issues-section .issue-card::after {
    inset: 1px !important;
    display: block !important;
    border-radius: inherit !important;
    box-shadow: inset 0 0 28px rgba(199, 231, 250, 0.26) !important;
  }

  body main .issues-section .issue-card .number {
    position: absolute !important;
    z-index: 3 !important;
    top: 16px !important;
    left: 15px !important;
    width: 45px !important;
    height: 45px !important;
    color: #fff !important;
    font-family: var(--sans) !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    background: linear-gradient(145deg, #77d8e5 0%, #0b60ce 88%) !important;
    border-radius: 50% !important;
    box-shadow:
      0 9px 18px rgba(0, 95, 202, 0.22),
      inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
  }

  body main .issues-section .issue-card .sketch-img {
    position: absolute !important;
    z-index: 2 !important;
    top: 61px !important;
    left: 23px !important;
    width: 116px !important;
    height: 104px !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    object-fit: contain !important;
    filter: saturate(1.05) contrast(1.06) drop-shadow(0 8px 12px rgba(35, 116, 185, 0.08)) !important;
  }

  body main .issues-section .issue-card:nth-child(2) .sketch-img,
  body main .issues-section .issue-card:nth-child(5) .sketch-img {
    top: 62px !important;
    left: 27px !important;
    width: 112px !important;
    height: 104px !important;
  }

  body main .issues-section .issue-card:nth-child(3) .sketch-img,
  body main .issues-section .issue-card:nth-child(6) .sketch-img {
    top: 64px !important;
    left: 24px !important;
    width: 113px !important;
    height: 102px !important;
  }

  body main .issues-section .issue-card:nth-child(n + 4) .sketch-img {
    top: 66px !important;
    width: 116px !important;
  }

  body main .issues-section .issue-card > div {
    position: absolute !important;
    z-index: 2 !important;
    top: 44px !important;
    left: 126px !important;
    width: 152px !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  body main .issues-section .issue-card h3 {
    width: 100% !important;
    margin: 0 !important;
    color: #006bd8 !important;
    font-family: var(--sans) !important;
    font-size: 15.5px !important;
    font-weight: 900 !important;
    line-height: 1.58 !important;
    letter-spacing: 0.04em !important;
  }

  body main .issues-section .issue-card h3::after {
    display: block !important;
    width: 142px !important;
    height: 0 !important;
    margin: 8px 0 11px !important;
    content: "" !important;
    border-bottom: 2px dotted rgba(87, 185, 246, 0.72) !important;
  }

  body main .issues-section .issue-card p {
    width: 152px !important;
    margin: 0 !important;
    color: #172033 !important;
    font-family: var(--sans) !important;
    font-size: 10.6px !important;
    font-weight: 800 !important;
    line-height: 1.85 !important;
    letter-spacing: 0.015em !important;
  }

  body main .issues-section .issue-sp-only {
    display: none !important;
  }

  body main .issues-section .issue-lead-br {
    display: inline !important;
  }

  body main .issues-section .issue-pagination {
    display: flex !important;
    justify-content: center !important;
    gap: 10px !important;
    width: auto !important;
    margin: 17px 0 0 !important;
    padding: 0 !important;
  }

  body main .issues-section .issue-pagination span {
    display: block !important;
    width: 8px !important;
    height: 8px !important;
    background: #c7e7fb !important;
    border-radius: 999px !important;
    opacity: 1 !important;
    transition: background-color 0.2s ease !important;
  }

  body main .issues-section .issue-pagination span.is-active {
    background: #006bd8 !important;
  }

  body main .issues-section .issue-bottom {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-height: 132px !important;
    margin: 25px auto 0 !important;
    padding: 0 24px 12px !important;
    overflow: visible !important;
    text-align: center !important;
  }

  body main .issues-section .issue-bottom::before,
  body main .issues-section .issue-bottom::after {
    position: absolute !important;
    left: 50% !important;
    display: block !important;
    pointer-events: none !important;
    content: "" !important;
    transform: translateX(-50%) !important;
  }

  body main .issues-section .issue-bottom::before {
    z-index: -1 !important;
    bottom: -38px !important;
    width: calc(100vw + 60px) !important;
    height: 154px !important;
    background:
      radial-gradient(ellipse at 52% 16%, rgba(255, 255, 255, 0.96) 0 42%, rgba(255, 255, 255, 0) 70%),
      linear-gradient(105deg, rgba(188, 226, 252, 0.45), rgba(255, 255, 255, 0.64) 48%, rgba(205, 244, 226, 0.58));
    clip-path: ellipse(76% 43% at 50% 54%) !important;
  }

  body main .issues-section .issue-bottom::after {
    z-index: 0 !important;
    top: -11px !important;
    width: calc(100vw + 18px) !important;
    height: 70px !important;
    opacity: 0.74 !important;
    background: url("data:image/svg+xml,%3Csvg width='430' height='70' viewBox='0 0 430 70' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 42C17 26 32 30 27 43C22 58 4 32 27 36C47 39 63 54 104 39' stroke='%2364CFF2' stroke-width='2' stroke-linecap='round' stroke-dasharray='1 7'/%3E%3Cpath d='M327 39C352 53 381 55 424 34' stroke='%2364CFF2' stroke-width='2' stroke-linecap='round' stroke-dasharray='1 7'/%3E%3Cpath d='M342 16L346 25L356 29L346 33L342 43L338 33L328 29L338 25L342 16Z' fill='%236ECDF2'/%3E%3Cpath d='M16 12C22 4 31 7 30 16C28 25 16 30 16 30C16 30 6 20 9 12C11 7 18 8 16 12Z' stroke='%2364CFF2' stroke-width='2' fill='none'/%3E%3Cpath d='M370 29L373 36L381 39L373 42L370 50L367 42L359 39L367 36L370 29Z' fill='%236ECDF2' fill-opacity='.72'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
  }

  body main .issues-section .issue-bottom p {
    z-index: 2 !important;
    margin: 0 0 18px !important;
    color: #1b2b47 !important;
    font-family: var(--rounded) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.88 !important;
    letter-spacing: 0.04em !important;
  }

  body main .issues-section .issue-bottom p strong {
    position: relative !important;
    z-index: 1 !important;
    display: inline-block !important;
    color: #006bd8 !important;
    font-family: var(--sans) !important;
    font-weight: 900 !important;
  }

  body main .issues-section .issue-bottom p strong::after {
    left: -0.22em !important;
    right: -0.18em !important;
    bottom: -0.07em !important;
    height: 0.62em !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.68) 42%, rgba(255, 255, 255, 0) 43%),
      linear-gradient(90deg, rgba(255, 244, 117, 0), rgba(255, 244, 117, 0.72) 22%, rgba(255, 244, 117, 0.56) 76%, rgba(255, 244, 117, 0)) !important;
    border-radius: 50% !important;
  }

  body main .issues-section .issue-bottom-tail {
    display: inline !important;
    white-space: normal !important;
  }

  body main .issues-section .issue-bottom h3 {
    z-index: 2 !important;
    margin: 0 !important;
    color: #1b3f74 !important;
    font-family: var(--rounded) !important;
    font-size: 23px !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
    letter-spacing: 0.04em !important;
    text-shadow: none !important;
  }

  body main .issues-section .issue-bottom h3::before {
    top: -15px !important;
    left: 50% !important;
    display: block !important;
    width: 10px !important;
    height: 10px !important;
    border-right: 2px solid #4ecbd3 !important;
    border-bottom: 2px solid #4ecbd3 !important;
    border-radius: 2px !important;
    transform: translateX(-50%) rotate(45deg) !important;
  }

  body main .issues-section .issue-bottom h3 span {
    display: block !important;
    margin-top: 0 !important;
    font-family: var(--rounded) !important;
    font-size: 31px !important;
    font-weight: 900 !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
    background: linear-gradient(100deg, #0e6ad1 0%, #2fa6de 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
  }

  body main .issues-section .issue-bottom h3 span::after {
    top: 0.24em !important;
    right: -24px !important;
    width: 36px !important;
    height: 30px !important;
    opacity: 0.7 !important;
    background-size: contain !important;
  }
}

@media (max-width: 390px) {
  body main .issues-section .section-heading {
    width: min(100% - 24px, 366px) !important;
  }

  body main .issues-section .section-heading h2 {
    font-size: 32px !important;
  }

  body main .issues-section .issue-lead {
    font-size: 10.4px !important;
  }

  body main .issues-section .issue-grid {
    grid-auto-columns: 280px !important;
    gap: 13px !important;
    padding-inline: 23px !important;
    scroll-padding-inline: 23px !important;
  }

  body main .issues-section .issue-card,
  body main .issues-section .issue-card:nth-child(2n),
  body main .issues-section .issue-card:nth-child(2n + 1) {
    width: 280px !important;
    min-width: 280px !important;
  }

  body main .issues-section .issue-card > div {
    left: 135px !important;
  }

  body main .issues-section .issue-bottom h3 span {
    font-size: 34px !important;
  }
}

/* Issues SP fine alignment pass: card content baselines and bottom copy wrapping. */
@media (max-width: 760px) {
  body main .issues-section .issue-grid {
    gap: 17px !important;
  }

  body main .issues-section .issue-card .number {
    top: 13px !important;
    left: 14px !important;
  }

  body main .issues-section .issue-card .sketch-img {
    top: 55px !important;
    left: 22px !important;
    width: 111px !important;
    height: 108px !important;
  }

  body main .issues-section .issue-card:nth-child(2) .sketch-img,
  body main .issues-section .issue-card:nth-child(5) .sketch-img {
    top: 56px !important;
    left: 25px !important;
    width: 108px !important;
    height: 106px !important;
  }

  body main .issues-section .issue-card:nth-child(3) .sketch-img,
  body main .issues-section .issue-card:nth-child(6) .sketch-img {
    top: 57px !important;
    left: 23px !important;
    width: 110px !important;
    height: 105px !important;
  }

  body main .issues-section .issue-card:nth-child(n + 4) .sketch-img {
    top: 58px !important;
  }

  body main .issues-section .issue-card > div {
    top: 35px !important;
    left: 135px !important;
    width: 150px !important;
  }

  body main .issues-section .issue-card h3 {
    width: 150px !important;
    font-size: 15.4px !important;
    line-height: 1.54 !important;
    letter-spacing: 0.036em !important;
    white-space: nowrap !important;
  }

  body main .issues-section .issue-card h3::after {
    width: 152px !important;
    margin: 8px 0 10px !important;
  }

  body main .issues-section .issue-card p {
    width: 138px !important;
    font-size: 10.6px !important;
    line-height: 1.78 !important;
    letter-spacing: 0.035em !important;
  }

  body main .issues-section .issue-bottom-no {
    display: inline !important;
    white-space: nowrap !important;
  }

  body main .issues-section .issue-bottom-tail {
    display: block !important;
    white-space: normal !important;
  }

  body main .issues-section .issue-bottom p {
    margin-bottom: 14px !important;
    line-height: 1.72 !important;
  }

  body main .issues-section .issue-bottom h3 {
    font-size: 27px !important;
  }

  body main .issues-section .issue-bottom h3::before {
    top: -12px !important;
  }
}

@media (max-width: 390px) {
  body main .issues-section .issue-grid {
    gap: 15px !important;
  }

  body main .issues-section .issue-card > div {
    left: 132px !important;
    width: 145px !important;
  }

  body main .issues-section .issue-card h3 {
    width: 145px !important;
    font-size: 14.9px !important;
  }

  body main .issues-section .issue-card h3::after {
    width: 147px !important;
  }

  body main .issues-section .issue-card p {
    width: 134px !important;
    font-size: 10.3px !important;
  }
}

/* Issues SP fine alignment pass 2: illustration source swap and bottom rhythm. */
@media (max-width: 760px) {
  body main .issues-section .issue-card .sketch-img {
    top: 56px !important;
    left: 25px !important;
    width: 107px !important;
    height: 108px !important;
    opacity: 0.96 !important;
  }

  body main .issues-section .issue-card:nth-child(2) .sketch-img,
  body main .issues-section .issue-card:nth-child(5) .sketch-img {
    top: 56px !important;
    left: 27px !important;
    width: 105px !important;
    height: 108px !important;
  }

  body main .issues-section .issue-card:nth-child(3) .sketch-img,
  body main .issues-section .issue-card:nth-child(6) .sketch-img {
    top: 58px !important;
    left: 28px !important;
    width: 102px !important;
    height: 106px !important;
  }

  body main .issues-section .issue-bottom {
    min-height: 112px !important;
    margin-top: 14px !important;
    padding-bottom: 6px !important;
  }

  body main .issues-section .issue-bottom::before {
    bottom: -46px !important;
    height: 144px !important;
  }

  body main .issues-section .issue-bottom::after {
    top: -6px !important;
  }

  body main .issues-section .issue-bottom p {
    margin-bottom: 12px !important;
    font-size: 12.6px !important;
    line-height: 1.68 !important;
  }

  body main .issues-section .issue-bottom h3 {
    font-size: 25px !important;
    line-height: 1.24 !important;
  }

  body main .issues-section .issue-bottom h3::before {
    top: -10px !important;
  }

  body main .issues-section .issue-bottom h3 span {
    font-size: 33px !important;
    line-height: 1.12 !important;
  }
}

@media (max-width: 390px) {
  body main .issues-section .issue-bottom h3 span {
    font-size: 32px !important;
  }
}

/* Issues SP illustration display mask: hide source-number remnants without damaging the art asset. */
@media (max-width: 760px) {
  body main .issues-section {
    padding-bottom: 13px !important;
  }

  body main .issues-section .issue-card .sketch-img {
    top: 49px !important;
    left: 20px !important;
    width: 124px !important;
    height: 121px !important;
    clip-path: none !important;
  }

  body main .issues-section .issue-card:nth-child(2) .sketch-img,
  body main .issues-section .issue-card:nth-child(5) .sketch-img {
    top: 50px !important;
    left: 24px !important;
    width: 121px !important;
    height: 120px !important;
  }

  body main .issues-section .issue-card:nth-child(3) .sketch-img,
  body main .issues-section .issue-card:nth-child(6) .sketch-img {
    top: 52px !important;
    left: 23px !important;
    width: 119px !important;
    height: 118px !important;
  }
}

/* 2026-06-30 Strengths SP micro polish: eyebrow divider and premium numeral assets. */
@media (max-width: 760px) {
  body main .strengths-section .section-heading {
    margin-bottom: 28px !important;
  }

  body main .strengths-section .section-heading::before {
    top: 25px !important;
    z-index: 1 !important;
    width: 150px !important;
    border-bottom-width: 2px !important;
    border-bottom-color: rgba(62, 176, 224, 0.62) !important;
  }

  body main .strengths-section .section-heading .section-eyebrow {
    z-index: 2 !important;
    margin-bottom: 18px !important;
  }

  body main .strengths-section .section-heading h2 {
    z-index: 2 !important;
  }

  body main .strengths-section .strength-card .strength-num {
    display: block !important;
    width: 70px !important;
    height: 54px !important;
    overflow: visible !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-indent: 0 !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    background-repeat: no-repeat !important;
    background-position: left center !important;
    background-size: contain !important;
  }

  body main .strengths-section .strength-one .strength-num {
    background-image: url("../img/strength-num-01.png") !important;
  }

  body main .strengths-section .strength-two .strength-num {
    background-image: url("../img/strength-num-02.png") !important;
  }

  body main .strengths-section .strength-three .strength-num {
    background-image: url("../img/strength-num-03.png") !important;
  }
}

@media (max-width: 390px) {
  body main .strengths-section .section-heading::before {
    top: 24px !important;
  }

  body main .strengths-section .strength-card .strength-num {
    width: 69px !important;
    height: 53px !important;
  }
}

/* 2026-06-30 Cases SP fidelity pass.
   Restore the mock's CoverFlow composition while keeping cards/text as DOM. */
@media (max-width: 760px) {
  body main .cases-section {
    padding: 28px 0 34px !important;
    overflow: hidden !important;
    background:
      url("../img/cases-bg-sp.svg") center top / 100% 100% no-repeat,
      #f7fcff !important;
  }

  body main .cases-section::before,
  body main .cases-section::after {
    display: none !important;
  }

  body main section.cases-section > .container.container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body main .cases-section .section-heading {
    position: relative !important;
    width: 100% !important;
    margin: 0 auto 8px !important;
    padding: 0 22px !important;
    overflow: visible !important;
  }

  body main .cases-section .section-heading::before,
  body main .cases-section .section-heading::after {
    display: block !important;
    top: 24px !important;
    width: 14px !important;
    height: 19px !important;
    opacity: 0.62 !important;
  }

  body main .cases-section .section-heading::before {
    left: calc(50% - 112px) !important;
    transform: scale(0.54) rotate(-10deg) !important;
  }

  body main .cases-section .section-heading::after {
    right: calc(50% - 111px) !important;
    transform: scale(0.54) rotate(13deg) !important;
  }

  body main .cases-section .section-eyebrow {
    color: #0062c9 !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: 0.13em !important;
  }

  body main .cases-section .section-eyebrow::after {
    width: 124px !important;
    margin: 7px auto 0 !important;
    border-bottom-width: 2px !important;
    border-bottom-color: rgba(31, 168, 232, 0.56) !important;
  }

  body main .cases-section .section-heading h2 {
    width: min(100%, 312px) !important;
    margin: 11px auto 0 !important;
    font-family: var(--serif) !important;
    font-size: 31px !important;
    font-weight: 900 !important;
    line-height: 1.16 !important;
    letter-spacing: 0.03em !important;
    text-shadow: 0 7px 16px rgba(20, 105, 191, 0.10) !important;
  }

  body main .cases-section .section-heading h2 .line {
    display: block !important;
    white-space: nowrap !important;
  }

  body main .cases-section .section-heading h2 .case-fan-word {
    font-size: 1.08em !important;
    background: linear-gradient(105deg, #0aa4be 0%, #16bfc4 38%, #0062c9 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    transform: rotate(-3deg) translateY(-0.02em) !important;
  }

  body main .cases-section .section-heading h2::before {
    left: 50% !important;
    right: auto !important;
    bottom: -31px !important;
    width: 284px !important;
    height: 43px !important;
    transform: translateX(-50%) !important;
  }

  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    width: min(100%, 270px) !important;
    margin: 29px auto 0 !important;
    color: #263248 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.72 !important;
    letter-spacing: 0.025em !important;
    text-align: center !important;
  }

  body main .case-shell {
    width: 100vw !important;
    margin: 0 0 0 calc(50% - 50vw) !important;
    padding-top: 0 !important;
    overflow: visible !important;
    perspective: 900px !important;
  }

  body main .case-track {
    --case-card-size: 224px !important;
    display: grid !important;
    width: 100vw !important;
    grid-auto-columns: var(--case-card-size) !important;
    gap: 16px !important;
    padding: 2px calc((100vw - var(--case-card-size)) / 2) 54px !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-padding-inline: calc((100vw - var(--case-card-size)) / 2) !important;
    scroll-snap-type: x mandatory !important;
    transform-style: preserve-3d !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    position: relative !important;
    display: block !important;
    min-height: 360px !important;
    padding: 13px 10px 14px !important;
    overflow: hidden !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 251, 253, 0.95)) !important;
    border: 1px solid rgba(255, 193, 212, 0.92) !important;
    border-radius: 17px !important;
    box-shadow:
      0 15px 28px rgba(218, 74, 106, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.96) !important;
    scroll-snap-align: center !important;
    transform-origin: center 55% !important;
    transition: transform 0.28s ease, opacity 0.28s ease, filter 0.28s ease !important;
  }

  body main .case-card::before,
  body main .case-card::after {
    z-index: 2 !important;
    display: block !important;
    width: 10px !important;
    height: 13px !important;
    opacity: 0.44 !important;
    background: linear-gradient(180deg, #7ed9e2, #f095a8) !important;
  }

  body main .case-card::before {
    top: 236px !important;
    left: 15px !important;
  }

  body main .case-card::after {
    top: 244px !important;
    right: 18px !important;
    left: auto !important;
  }

  body main .case-card.is-active {
    z-index: 4 !important;
    opacity: 1 !important;
    filter: none !important;
    transform: rotate(0deg) translateY(0) translateZ(22px) scale(1.04) !important;
    box-shadow:
      inset 0 6px 0 #c51922,
      0 18px 34px rgba(208, 66, 97, 0.14),
      inset 0 1px 0 rgba(255, 255, 255, 0.96) !important;
  }

  body main .case-card.is-side-prev,
  body main .case-card.case-clone:first-child {
    z-index: 2 !important;
    opacity: 0.98 !important;
    filter: saturate(0.98) brightness(1.01) !important;
    transform: rotate(-4deg) translateY(9px) translateZ(-42px) scale(0.96) !important;
  }

  body main .case-card.is-side-next,
  body main .case-card.case-clone:last-child {
    z-index: 2 !important;
    opacity: 0.98 !important;
    filter: saturate(0.98) brightness(1.01) !important;
    transform: rotate(4deg) translateY(9px) translateZ(-42px) scale(0.96) !important;
  }

  body main .case-card.case-clone:first-child {
    border-color: rgba(222, 169, 91, 0.82) !important;
    background: linear-gradient(180deg, rgba(255, 253, 247, 0.98), rgba(255, 248, 234, 0.93)) !important;
    box-shadow:
      inset 0 5px 0 #bf8a2d,
      0 16px 28px rgba(181, 130, 42, 0.12) !important;
  }

  body main .case-card.is-side-next {
    box-shadow:
      inset 0 5px 0 #e94c85,
      0 16px 28px rgba(220, 76, 133, 0.12) !important;
  }

  body main .case-card .case-index {
    top: 14px !important;
    left: 13px !important;
    width: 54px !important;
    height: 54px !important;
    color: #d13e58 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 25px !important;
    font-style: italic !important;
    font-weight: 700 !important;
    line-height: 54px !important;
    background:
      radial-gradient(circle at 35% 28%, rgba(255, 255, 255, 0.98), rgba(255, 241, 246, 0.86) 64%, rgba(255, 230, 238, 0.96) 100%) !important;
    border-color: rgba(255, 188, 209, 0.94) !important;
    box-shadow:
      0 9px 16px rgba(218, 74, 106, 0.13),
      inset 0 0 0 5px rgba(255, 255, 255, 0.72) !important;
  }

  body main .case-card.case-clone:first-child .case-index {
    color: #c3862a !important;
    background:
      radial-gradient(circle at 35% 28%, rgba(255, 255, 255, 0.98), rgba(255, 249, 232, 0.86) 64%, rgba(255, 235, 197, 0.96) 100%) !important;
    border-color: rgba(223, 171, 87, 0.92) !important;
  }

  body main .case-card h3 {
    margin: 9px 0 0 70px !important;
    color: #b92d3d !important;
    font-family: var(--serif) !important;
    font-size: 21px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: 0.015em !important;
  }

  body main .case-card h3 span {
    margin-left: 2px !important;
    color: inherit !important;
    font-size: 10px !important;
    font-family: var(--sans) !important;
  }

  body main .case-card.case-clone:first-child h3 {
    color: #9d6d20 !important;
  }

  body main .case-type {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    min-height: 21px !important;
    margin: 7px 0 12px 70px !important;
    padding: 3px 8px !important;
    color: #d94362 !important;
    font-size: 9.4px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.03em !important;
    background: rgba(255, 239, 245, 0.92) !important;
    border: 1px solid rgba(255, 192, 211, 0.76) !important;
    border-radius: 999px !important;
  }

  body main .case-type::before {
    width: 13px !important;
    height: 13px !important;
    background: linear-gradient(135deg, #f46f8d, #d94362) !important;
  }

  body main .case-card.case-clone:first-child .case-type {
    color: #b47c25 !important;
    background: rgba(255, 248, 232, 0.94) !important;
    border-color: rgba(224, 177, 97, 0.72) !important;
  }

  body main .case-card.case-clone:first-child .case-type::before {
    background: linear-gradient(135deg, #d49a35, #b77720) !important;
  }

  body main .case-card img {
    display: block !important;
    width: 100% !important;
    margin: 11px 0 0 !important;
    aspect-ratio: 1.39 !important;
    object-fit: cover !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 13px rgba(65, 38, 46, 0.16) !important;
  }

  body main .case-play {
    position: absolute !important;
    z-index: 3 !important;
    top: 150px !important;
    right: 17px !important;
    display: grid !important;
    width: 33px !important;
    height: 33px !important;
    pointer-events: none !important;
    background: rgba(34, 29, 35, 0.66) !important;
    border: 1px solid rgba(255, 255, 255, 0.72) !important;
    border-radius: 50% !important;
    box-shadow: 0 5px 12px rgba(10, 15, 25, 0.18) !important;
    place-items: center !important;
  }

  body main .case-play::before {
    width: 0 !important;
    height: 0 !important;
    margin-left: 3px !important;
    content: "" !important;
    border-top: 8px solid transparent !important;
    border-bottom: 8px solid transparent !important;
    border-left: 12px solid #fff !important;
  }

  body main .case-card p:not(.case-index):not(.case-type) {
    margin: 14px 6px 9px !important;
    color: #20283b !important;
    font-size: 10.6px !important;
    font-weight: 800 !important;
    line-height: 1.72 !important;
    letter-spacing: 0.03em !important;
    text-align: center !important;
  }

  body main .case-card p:not(.case-index):not(.case-type)::after {
    display: block !important;
    width: 100% !important;
    margin: 10px auto 0 !important;
    content: "" !important;
    border-bottom: 2px dotted rgba(232, 104, 136, 0.34) !important;
  }

  body main .tag-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    gap: 6px !important;
    margin-top: 0 !important;
  }

  body main .tag-row span {
    min-width: 0 !important;
    min-height: 25px !important;
    padding: 4px 7px !important;
    gap: 4px !important;
    color: #d94362 !important;
    font-size: 8.5px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    background: rgba(255, 255, 255, 0.92) !important;
    border: 1px solid rgba(245, 146, 170, 0.52) !important;
    border-radius: 6px !important;
  }

  body main .tag-row span::before {
    display: inline-block !important;
    width: 11px !important;
    height: 11px !important;
    flex: 0 0 auto !important;
    content: "" !important;
    background: currentColor !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
  }

  body main .tag-row span:nth-child(1)::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 11.5a3 3 0 0 0 3-3V4a3 3 0 1 0-6 0v4.5a3 3 0 0 0 3 3Zm-5-4v1a5 5 0 0 0 10 0v-1M9 13v3m-3 0h6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 11.5a3 3 0 0 0 3-3V4a3 3 0 1 0-6 0v4.5a3 3 0 0 0 3 3Zm-5-4v1a5 5 0 0 0 10 0v-1M9 13v3m-3 0h6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  }

  body main .tag-row span:nth-child(2)::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4h12v10H3V4Zm3 0v10m6-10v10M3 7h3m6 0h3M3 11h3m6 0h3' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4h12v10H3V4Zm3 0v10m6-10v10M3 7h3m6 0h3M3 11h3m6 0h3' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  }

  body main .tag-row span:nth-child(3)::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h12v8H3V5Zm5 2.5v3l3-1.5-3-1.5Z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h12v8H3V5Zm5 2.5v3l3-1.5-3-1.5Z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  }

  body main .case-card.case-clone:first-child .tag-row span {
    color: #b47c25 !important;
    border-color: rgba(224, 177, 97, 0.58) !important;
  }

  body main .case-pagination {
    gap: 9px !important;
    margin-top: -28px !important;
  }

  body main .case-pagination button {
    width: 10px !important;
    height: 10px !important;
  }

  body main .case-pagination button::before {
    width: 10px !important;
    height: 10px !important;
    background: #bdddf7 !important;
  }

  body main .case-pagination button.is-active::before {
    width: 12px !important;
    height: 12px !important;
    background: #0068d6 !important;
  }
}

@media (max-width: 390px) {
  body main .cases-section .section-heading h2 {
    font-size: 30px !important;
  }

  body main .case-track {
    --case-card-size: 222px !important;
    gap: 15px !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    min-height: 358px !important;
  }

  body main .tag-row span {
    padding-right: 6px !important;
    padding-left: 6px !important;
    font-size: 8.3px !important;
  }
}

/* 2026-06-30 Cases SP second pass: reduce top drift and keep the cover card closer to the mock size. */
@media (max-width: 760px) {
  body main .cases-section {
    padding-top: 8px !important;
    padding-bottom: 30px !important;
  }

  body main .cases-section .container::before,
  body main .cases-section .container::after {
    display: none !important;
  }

  body main .cases-section .section-heading {
    margin-bottom: 4px !important;
  }

  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 27px !important;
  }

  body main .case-track {
    --case-card-size: 218px !important;
    gap: 16px !important;
    padding-bottom: 50px !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    min-height: 344px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  body main .case-card.is-active {
    transform: rotate(0deg) translateY(0) translateZ(18px) scale(1.02) !important;
  }

  body main .case-card.is-side-prev,
  body main .case-card.case-clone:first-child {
    transform: rotate(-4deg) translateY(8px) translateZ(-38px) scale(0.97) !important;
  }

  body main .case-card.is-side-next,
  body main .case-card.case-clone:last-child {
    transform: rotate(4deg) translateY(8px) translateZ(-38px) scale(0.97) !important;
  }

  body main .case-card .case-index {
    width: 52px !important;
    height: 52px !important;
    line-height: 52px !important;
  }

  body main .case-card h3 {
    margin-left: 68px !important;
    font-size: 20px !important;
  }

  body main .case-type {
    margin-left: 68px !important;
  }

  body main .case-card img {
    margin-top: 3px !important;
  }

  body main .case-play {
    top: 144px !important;
    right: 15px !important;
    width: 32px !important;
    height: 32px !important;
  }

  body main .case-card p:not(.case-index):not(.case-type) {
    margin-top: 12px !important;
    margin-bottom: 8px !important;
    font-size: 10.3px !important;
    line-height: 1.68 !important;
  }

  body main .case-card p:not(.case-index):not(.case-type)::after {
    margin-top: 8px !important;
  }

  body main .case-pagination {
    margin-top: -27px !important;
  }

  body main .cases-section .case-lead-line {
    display: block !important;
  }

  body main .case-card.is-active p:not(.case-index):not(.case-type) {
    width: 154px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
}

@media (max-width: 390px) {
  body main .case-track {
    --case-card-size: 216px !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    min-height: 342px !important;
  }
}

/* 2026-06-30 Cases SP typography wrap polish. */
@media (max-width: 760px) {
  body main .cases-section .section-heading h2 {
    width: min(100%, 292px) !important;
    font-size: 29px !important;
    line-height: 1.18 !important;
    letter-spacing: 0.025em !important;
  }

  body main .case-card .case-desc-line {
    display: block !important;
  }
}

/* 2026-06-30 Cases SP mock alignment polish.
   Keep the section as DOM/CSS, but align the CoverFlow rhythm and heading decoration to the SP mock. */
@media (max-width: 760px) {
  body main .cases-section {
    padding-top: 18px !important;
    padding-bottom: 48px !important;
  }

  body main .cases-section .section-heading {
    margin-bottom: -4px !important;
  }

  body main .cases-section .section-heading::before,
  body main .cases-section .section-heading::after {
    top: 28px !important;
    opacity: 0.58 !important;
  }

  body main .cases-section .section-eyebrow {
    color: #005fc9 !important;
    font-size: 9.8px !important;
    letter-spacing: 0.135em !important;
  }

  body main .cases-section .section-eyebrow::after {
    width: 126px !important;
    margin-top: 6px !important;
    border-bottom-color: rgba(33, 169, 231, 0.58) !important;
  }

  body main .cases-section .section-heading h2 {
    width: min(100%, 300px) !important;
    margin-top: 10px !important;
    color: #0064c8 !important;
    font-size: 30px !important;
    line-height: 1.22 !important;
    letter-spacing: 0.02em !important;
    text-shadow: 0 8px 15px rgba(14, 101, 191, 0.12) !important;
  }

  body main .cases-section .section-heading h2 .case-fan-word {
    background: linear-gradient(105deg, #0470d3 0%, #0b8fd3 56%, #12b9bd 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
  }

  body main .cases-section .section-heading h2::before {
    bottom: -29px !important;
    width: 292px !important;
    height: 44px !important;
    opacity: 0.94 !important;
  }

  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 30px !important;
    font-size: 10.8px !important;
    line-height: 1.82 !important;
    letter-spacing: 0.03em !important;
  }

  body main .case-shell {
    margin-top: -8px !important;
  }

  body main .case-track {
    --case-card-size: 230px !important;
    gap: 15px !important;
    align-items: start !important;
    padding-bottom: 55px !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    min-height: 0 !important;
    padding: 12px 10px 13px !important;
    border-radius: 17px !important;
  }

  body main .case-card.is-active {
    transform: rotate(0deg) translateY(0) translateZ(18px) scale(1.015) !important;
  }

  body main .case-card.is-side-prev,
  body main .case-card.case-clone:first-child {
    transform: rotate(-4deg) translateY(8px) translateZ(-38px) scale(0.965) !important;
  }

  body main .case-card.is-side-next,
  body main .case-card.case-clone:last-child {
    transform: rotate(4deg) translateY(8px) translateZ(-38px) scale(0.965) !important;
  }

  body main .case-card .case-index {
    top: 13px !important;
    left: 13px !important;
    width: 54px !important;
    height: 54px !important;
    font-size: 25px !important;
    line-height: 54px !important;
  }

  body main .case-card h3 {
    margin-top: 8px !important;
    margin-left: 70px !important;
    font-size: 20.5px !important;
    line-height: 1.12 !important;
  }

  body main .case-type {
    margin: 7px 0 6px 70px !important;
  }

  body main .case-card img {
    margin-top: 6px !important;
    aspect-ratio: 1.53 !important;
  }

  body main .case-play {
    top: 142px !important;
    right: 16px !important;
  }

  body main .case-card p:not(.case-index):not(.case-type) {
    margin-top: 9px !important;
    font-size: 10.4px !important;
    line-height: 1.64 !important;
  }

  body main .case-card p:not(.case-index):not(.case-type)::after {
    margin-top: 7px !important;
  }

  body main .tag-row span {
    min-height: 23px !important;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
  }

  body main .case-pagination {
    margin-top: -29px !important;
  }
}

@media (max-width: 390px) {
  body main .case-track {
    --case-card-size: 228px !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    min-height: 334px !important;
  }

  body main .cases-section {
    padding-bottom: 59px !important;
  }
}

/* 2026-06-30 Cases SP heading/card clearance polish. */
@media (max-width: 760px) {
  body main .cases-section .section-heading h2 {
    width: min(100%, 286px) !important;
    margin-top: -8px !important;
    font-size: 29px !important;
    line-height: 1.08 !important;
    letter-spacing: 0.018em !important;
  }

  body main .cases-section .section-heading h2 .case-fan-word {
    font-size: 1.01em !important;
    background: linear-gradient(105deg, #0069cf 0%, #0075cf 54%, #10aebc 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
  }

  body main .cases-section .section-heading h2::before {
    bottom: -43px !important;
  }

  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 43px !important;
    font-size: 10.5px !important;
    line-height: 1.76 !important;
  }

  body main .case-shell {
    margin-top: 11px !important;
  }

  body main .case-track {
    padding-bottom: 40px !important;
  }

  body main .case-pagination {
    margin-top: -24px !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    min-height: 334px !important;
  }

  body main .cases-section {
    padding-bottom: 59px !important;
  }
}

/* 2026-06-30 Cases SP true CoverFlow stage.
   State-driven 3D placement: no horizontal carousel track on mobile. */
@media (max-width: 760px) {
  body main .cases-section {
    padding-top: 20px !important;
    padding-bottom: 36px !important;
  }

  body main .case-shell {
    position: relative !important;
    width: 100vw !important;
    height: 392px !important;
    margin: 29px 0 0 calc(50% - 50vw) !important;
    padding: 0 !important;
    overflow: visible !important;
    perspective: 880px !important;
    perspective-origin: 50% 44% !important;
  }

  body main .case-track {
    --case-card-size: clamp(218px, 54.8vw, 236px) !important;
    position: relative !important;
    display: block !important;
    width: 100vw !important;
    height: 344px !important;
    padding: 0 !important;
    overflow: visible !important;
    transform-style: preserve-3d !important;
    scroll-snap-type: none !important;
    touch-action: pan-y !important;
    user-select: none !important;
  }

  body main .case-track::-webkit-scrollbar {
    display: none !important;
  }

  body main .case-arrow {
    display: none !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    width: var(--case-card-size) !important;
    min-height: 334px !important;
    opacity: 0 !important;
    pointer-events: none !important;
    backface-visibility: hidden !important;
    transform:
      translateX(-50%)
      translateZ(-220px)
      rotateY(0deg)
      scale(0.72) !important;
    transform-origin: center center !important;
    transition:
      transform 0.42s cubic-bezier(.2, .8, .2, 1),
      opacity 0.32s ease,
      filter 0.32s ease !important;
  }

  body main .case-card.is-hidden {
    opacity: 0 !important;
    pointer-events: none !important;
    transform:
      translateX(-50%)
      translateZ(-220px)
      rotateY(0deg)
      scale(0.72) !important;
  }

  body main .case-card.is-active {
    z-index: 30 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    filter: none !important;
    transform:
      translateX(-50%)
      translateZ(0)
      rotateY(0deg)
      rotateZ(0deg)
      scale(1) !important;
  }

  body main .case-card.is-side-prev {
    z-index: 14 !important;
    opacity: 0.96 !important;
    pointer-events: auto !important;
    filter: saturate(0.96) brightness(1.02) !important;
    transform:
      translateX(calc(-50% - 229px))
      translateZ(-58px)
      rotateY(11.5deg)
      rotateZ(-0.25deg)
      scale(0.96) !important;
  }

  body main .case-card.case-clone.is-side-prev:first-child {
    z-index: 14 !important;
    opacity: 0.96 !important;
    pointer-events: auto !important;
    transform:
      translateX(calc(-50% - 229px))
      translateZ(-58px)
      rotateY(11.5deg)
      rotateZ(-0.25deg)
      scale(0.96) !important;
  }

  body main .case-card.is-side-next {
    z-index: 14 !important;
    opacity: 0.96 !important;
    pointer-events: auto !important;
    filter: saturate(0.96) brightness(1.02) !important;
    transform:
      translateX(calc(-50% + 229px))
      translateZ(-58px)
      rotateY(-11.5deg)
      rotateZ(0.25deg)
      scale(0.96) !important;
  }

  body main .case-card.case-clone.is-side-next:last-child {
    z-index: 14 !important;
    opacity: 0.96 !important;
    pointer-events: auto !important;
    transform:
      translateX(calc(-50% + 229px))
      translateZ(-58px)
      rotateY(-11.5deg)
      rotateZ(0.25deg)
      scale(0.96) !important;
  }

  body main .case-card.case-clone:first-child:not(.is-side-prev),
  body main .case-card.case-clone:last-child:not(.is-side-next) {
    opacity: 0 !important;
    pointer-events: none !important;
    transform:
      translateX(-50%)
      translateZ(-220px)
      rotateY(0deg)
      scale(0.72) !important;
  }

  body main .case-card h3 {
    margin-top: 9px !important;
    margin-left: 76px !important;
    font-size: clamp(20.8px, 5.35vw, 22.4px) !important;
    line-height: 1.08 !important;
    letter-spacing: 0.01em !important;
    white-space: nowrap !important;
  }

  body main .case-card h3 span {
    margin-left: 2px !important;
    font-size: 10px !important;
    white-space: nowrap !important;
  }

  body main .case-type {
    gap: 3px !important;
    min-height: 20px !important;
    margin: 7px 0 7px 76px !important;
    padding: 3px 7px !important;
    font-size: 9.6px !important;
    line-height: 1 !important;
    letter-spacing: 0.03em !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
  }

  body main .case-type::before {
    width: 11px !important;
    height: 11px !important;
  }

  body main .case-card.is-active .case-index {
    color: #c7334d !important;
  }

  body main .case-card.is-side-prev .case-index {
    color: #c3862a !important;
    background:
      radial-gradient(circle at 35% 28%, rgba(255, 255, 255, 0.98), rgba(255, 249, 232, 0.86) 64%, rgba(255, 235, 197, 0.96) 100%) !important;
    border-color: rgba(223, 171, 87, 0.92) !important;
  }

  body main .case-card.is-side-prev h3 {
    color: #9d6d20 !important;
  }

  body main .case-card.is-side-prev .case-type {
    color: #b47c25 !important;
    background: rgba(255, 248, 232, 0.94) !important;
    border-color: rgba(224, 177, 97, 0.72) !important;
  }

  body main .case-card.is-side-prev .case-type::before {
    background: linear-gradient(135deg, #d49a35, #b77720) !important;
  }

  body main .case-card.is-side-prev .tag-row span {
    color: #b47c25 !important;
    border-color: rgba(224, 177, 97, 0.58) !important;
  }

  body main .case-pagination {
    position: absolute !important;
    right: 0 !important;
    bottom: 25px !important;
    left: 0 !important;
    z-index: 35 !important;
    display: flex !important;
    margin: 0 !important;
  }
}

@media (max-width: 390px) {
  body main .case-shell {
    height: 390px !important;
  }

  body main .case-track {
    --case-card-size: 218px !important;
    height: 342px !important;
  }

  body main .case-card.is-side-prev {
    transform:
      translateX(calc(-50% - 223px))
      translateZ(-56px)
      rotateY(11.5deg)
      rotateZ(-0.25deg)
      scale(0.96) !important;
  }

  body main .case-card.case-clone.is-side-prev:first-child {
    z-index: 14 !important;
    opacity: 0.96 !important;
    transform:
      translateX(calc(-50% - 223px))
      translateZ(-56px)
      rotateY(11.5deg)
      rotateZ(-0.25deg)
      scale(0.96) !important;
  }

  body main .case-card.is-side-next {
    transform:
      translateX(calc(-50% + 223px))
      translateZ(-56px)
      rotateY(-11.5deg)
      rotateZ(0.25deg)
      scale(0.96) !important;
  }

  body main .case-card.case-clone.is-side-next:last-child {
    z-index: 14 !important;
    opacity: 0.96 !important;
    transform:
      translateX(calc(-50% + 223px))
      translateZ(-56px)
      rotateY(-11.5deg)
      rotateZ(0.25deg)
      scale(0.96) !important;
  }
}

/* 2026-06-30 Flow SP mock fidelity pass.
   Keep content as DOM/CSS; only the pale wave/dot backdrop is a component SVG. */
@media (max-width: 760px) {
  body main section.flow-section {
    padding: 18px 0 16px !important;
    overflow: hidden !important;
    background:
      url("../img/flow-bg-sp-mocklike.svg") center top / 100% 100% no-repeat,
      #effaff !important;
  }

  body main section.flow-section::before,
  body main section.flow-section::after {
    display: none !important;
  }

  body main section.flow-section > .flow-bg {
    display: none !important;
  }

  body main section.flow-section > .container.container {
    width: min(calc(100% - 32px), 390px) !important;
    max-width: 390px !important;
    margin-inline: auto !important;
    padding: 0 !important;
  }

  body main section.flow-section .section-heading {
    margin: 0 auto 7px !important;
    text-align: center !important;
  }

  body main section.flow-section .section-heading::before,
  body main section.flow-section .section-heading::after {
    position: absolute !important;
    top: 2px !important;
    display: block !important;
    color: #9fc253 !important;
    font-size: 16px !important;
    line-height: 1 !important;
    content: "✦" !important;
    opacity: .9 !important;
  }

  body main section.flow-section .section-heading::before {
    left: calc(50% - 72px) !important;
  }

  body main section.flow-section .section-heading::after {
    right: calc(50% - 76px) !important;
    color: #6ccde8 !important;
  }

  body main section.flow-section .section-heading .section-eyebrow {
    margin: 0 0 7px !important;
    color: #0063ca !important;
    font-size: 11.5px !important;
    font-weight: 800 !important;
    letter-spacing: .22em !important;
    font-kerning: normal !important;
    font-feature-settings: "palt" 1 !important;
    -webkit-font-smoothing: antialiased !important;
    text-rendering: geometricPrecision !important;
  }

  body main section.flow-section .section-heading h2 {
    width: max-content !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    color: transparent !important;
    font-family: var(--serif) !important;
    font-size: 36.5px !important;
    font-weight: 700 !important;
    line-height: 1.18 !important;
    letter-spacing: .055em !important;
    background: linear-gradient(100deg, #0050bd 0%, #006ed2 58%, #19b7bd 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    text-shadow: 0 8px 15px rgba(30, 126, 206, .07) !important;
    font-kerning: normal !important;
    font-feature-settings: "palt" 1 !important;
    -webkit-font-smoothing: antialiased !important;
    text-rendering: geometricPrecision !important;
  }

  body main section.flow-section .section-heading h2::before,
  body main section.flow-section .section-heading h2::after {
    bottom: -23px !important;
    display: block !important;
    height: 27px !important;
    border: 0 !important;
    opacity: .96 !important;
  }

  body main section.flow-section .section-heading h2::before {
    left: 50% !important;
    width: 238px !important;
    background: url("data:image/svg+xml,%3Csvg width='246' height='27' viewBox='0 0 246 27' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 12C31 26 72 21 104 16C126 13 145 13 166 17C193 22 221 22 238 10' stroke='%231C83E4' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M8 12C31 26 72 21 104 16C126 13 145 13 166 17C193 22 221 22 238 10' stroke='%2328C6BB' stroke-width='2' stroke-linecap='round' stroke-dasharray='123 123'/%3E%3Ccircle cx='123' cy='19' r='3.4' fill='%23F8FDFF' stroke='%2328C6BB' stroke-width='1.6'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
    transform: translateX(-50%) !important;
  }

  body main section.flow-section .section-heading h2::after {
    display: none !important;
  }

  body main section.flow-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    width: 100% !important;
    margin: 28px auto 0 !important;
    color: #172238 !important;
    font-size: 11.1px !important;
    font-weight: 700 !important;
    line-height: 1.72 !important;
    letter-spacing: .07em !important;
    white-space: nowrap !important;
    font-kerning: normal !important;
    font-feature-settings: "palt" 1 !important;
    -webkit-font-smoothing: antialiased !important;
    text-rendering: geometricPrecision !important;
  }

  body main section.flow-section .flow-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 0 12px !important;
    overflow: visible !important;
  }

  body main section.flow-section .flow-curve {
    display: none !important;
  }

  body main section.flow-section .flow-card {
    position: relative !important;
    z-index: 10 !important;
    display: grid !important;
    grid-template-columns: 138px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    align-content: center !important;
    gap: 4px 16px !important;
    width: 100% !important;
    height: 107px !important;
    min-height: 107px !important;
    padding: 12px 15px 12px 15px !important;
    margin: 0 !important;
    overflow: visible !important;
    text-align: left !important;
    background:
      radial-gradient(ellipse at 84% 28%, rgba(226, 245, 255, .48) 0 26px, transparent 72px),
      radial-gradient(ellipse at 92% 75%, rgba(222, 249, 238, .32) 0 20px, transparent 58px),
      linear-gradient(112deg, rgba(255, 255, 255, .99) 0%, rgba(255, 255, 250, .95) 100%) !important;
    border: 1px solid rgba(186, 229, 252, .82) !important;
    border-radius: 10px !important;
    box-shadow:
      0 14px 24px rgba(71, 146, 202, .12),
      inset 0 1px 0 rgba(255, 255, 255, .95) !important;
  }

  body main section.flow-section .flow-card:nth-of-type(3) {
    background:
      radial-gradient(ellipse at 91% 74%, rgba(215, 233, 255, .42) 0 30px, transparent 74px),
      linear-gradient(112deg, rgba(255, 255, 255, .99) 0%, rgba(255, 243, 249, .93) 100%) !important;
  }

  body main section.flow-section .flow-card:nth-of-type(1) {
    z-index: 25 !important;
  }

  body main section.flow-section .flow-card:nth-of-type(2) {
    z-index: 24 !important;
  }

  body main section.flow-section .flow-card:nth-of-type(3) {
    z-index: 23 !important;
  }

  body main section.flow-section .flow-card:nth-of-type(4) {
    z-index: 22 !important;
  }

  body main section.flow-section .flow-card:nth-of-type(5) {
    z-index: 21 !important;
  }

  body main section.flow-section .flow-card::before {
    top: 17px !important;
    bottom: 17px !important;
    left: 156px !important;
    display: block !important;
    width: 2px !important;
    height: auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-image: linear-gradient(180deg, rgba(123, 204, 244, .92) 46%, transparent 46%) !important;
    background-size: 2px 7px !important;
    box-shadow: none !important;
    content: "" !important;
    pointer-events: none !important;
  }

  body main section.flow-section .flow-card:not(:last-child)::after {
    position: absolute !important;
    z-index: 40 !important;
    right: auto !important;
    bottom: -23px !important;
    left: 50% !important;
    display: block !important;
    width: 31px !important;
    height: 31px !important;
    content: "" !important;
    background: rgba(255, 255, 255, .98) !important;
    background-image: url("data:image/svg+xml,%3Csvg width='31' height='31' viewBox='0 0 31 31' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='15.5' cy='15.5' r='14.8' fill='white' fill-opacity='.98' stroke='%23B8E3FA' stroke-width='1.1'/%3E%3Cpath d='M15.5 8.3V19.4' stroke='%23006BD7' stroke-width='2.45' stroke-linecap='round'/%3E%3Cpath d='M10.9 16.2L15.5 20.9L20.1 16.2' stroke='%23006BD7' stroke-width='2.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 100% 100% !important;
    border: 1px solid rgba(184, 227, 250, .92) !important;
    border-radius: 999px !important;
    clip-path: none !important;
    filter: none !important;
    transform: translateX(-50%) !important;
    box-shadow:
      0 8px 14px rgba(44, 133, 199, .14),
      inset 0 0 0 2px rgba(255, 255, 255, .82) !important;
    pointer-events: none !important;
  }

  body main section.flow-section .flow-num {
    position: absolute !important;
    z-index: 20 !important;
    top: 7px !important;
    left: -1px !important;
    display: grid !important;
    width: 46px !important;
    height: 46px !important;
    margin: 0 !important;
    color: #006bd7 !important;
    font-family: "Times New Roman", "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif !important;
    font-size: 27px !important;
    font-weight: 400 !important;
    line-height: .98 !important;
    letter-spacing: -.015em !important;
    background: transparent !important;
    border: 1px solid rgba(181, 229, 252, .95) !important;
    border-radius: 50% !important;
    box-shadow:
      0 11px 19px rgba(34, 132, 200, .16),
      0 1px 0 rgba(255, 255, 255, .94),
      inset 0 0 0 6px rgba(255, 255, 255, .70),
      inset 0 -10px 16px rgba(218, 244, 255, .50) !important;
    transform: none !important;
    place-items: center !important;
    isolation: isolate !important;
    text-shadow: 0 2px 5px rgba(24, 128, 203, .10) !important;
  }

  body main section.flow-section .flow-num::before {
    position: absolute !important;
    inset: 0 !important;
    z-index: -1 !important;
    content: "" !important;
    background:
      radial-gradient(circle at 38% 27%, rgba(255, 255, 255, 1) 0 34%, rgba(249, 253, 255, .98) 58%, rgba(232, 247, 255, .90) 100%) !important;
    border-radius: inherit !important;
  }

  body main section.flow-section .flow-card:nth-of-type(2) .flow-num,
  body main section.flow-section .flow-card:nth-of-type(4) .flow-num,
  body main section.flow-section .flow-card:nth-of-type(2) h3,
  body main section.flow-section .flow-card:nth-of-type(4) h3 {
    color: #12aaa7 !important;
  }

  body main section.flow-section .flow-card:nth-of-type(2) .flow-num,
  body main section.flow-section .flow-card:nth-of-type(4) .flow-num {
    color: #12aaa7 !important;
    background: transparent !important;
    border-color: rgba(174, 232, 230, .95) !important;
  }

  body main section.flow-section .flow-illust {
    position: relative !important;
    z-index: 3 !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: center !important;
    justify-self: start !important;
    width: 76px !important;
    height: 76px !important;
    margin: 9px 0 0 34px !important;
    object-fit: contain !important;
    filter: drop-shadow(0 5px 8px rgba(31, 134, 202, .07)) !important;
  }

  body main section.flow-section .flow-card h3 {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: end !important;
    width: auto !important;
    margin: 0 !important;
    color: #006bd7 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.52 !important;
    letter-spacing: .06em !important;
    text-align: left !important;
    white-space: nowrap !important;
    font-kerning: normal !important;
    font-feature-settings: "palt" 1 !important;
    -webkit-font-smoothing: antialiased !important;
    text-rendering: geometricPrecision !important;
  }

  body main section.flow-section .flow-card p {
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: start !important;
    width: auto !important;
    margin: 0 !important;
    color: #172238 !important;
    font-size: 9.8px !important;
    font-weight: 500 !important;
    line-height: 1.86 !important;
    letter-spacing: .04em !important;
    text-align: left !important;
    font-kerning: normal !important;
    font-feature-settings: "palt" 1 !important;
    -webkit-font-smoothing: antialiased !important;
    text-rendering: geometricPrecision !important;
  }

  body main section.flow-section .flow-note {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    min-height: 54px !important;
    margin: 0 auto !important;
    padding: 7px 20px 7px 22px !important;
    color: #172238 !important;
    font-family: var(--sans) !important;
    font-size: 10.4px !important;
    font-weight: 800 !important;
    line-height: 1.62 !important;
    letter-spacing: .055em !important;
    text-align: left !important;
    background: rgba(255, 255, 255, .78) !important;
    border: 1px solid rgba(168, 224, 247, .82) !important;
    border-radius: 9px !important;
    box-shadow: 0 13px 24px rgba(61, 139, 198, .10) !important;
  }

  body main section.flow-section .flow-note::before,
  body main section.flow-section .flow-note::after {
    display: block !important;
    font-size: 12px !important;
  }

  body main section.flow-section .flow-note::before {
    top: 7px !important;
    left: 8px !important;
    color: #65d0e5 !important;
  }

  body main section.flow-section .flow-note::after {
    top: 10px !important;
    right: 20px !important;
    bottom: auto !important;
    color: #9fc253 !important;
  }

  body main section.flow-section .flow-note .people-icon {
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    justify-self: center !important;
  }

  body main section.flow-section .flow-note .note-copy {
    display: block !important;
    max-width: none !important;
    text-align: left !important;
  }

  body main section.flow-section .flow-note .note-phrase {
    display: inline !important;
    white-space: nowrap !important;
  }

  body main section.flow-section .flow-note strong {
    color: #006bd7 !important;
    font-weight: 900 !important;
  }

  body main section.flow-section .flow-note small {
    display: block !important;
    margin-top: 1px !important;
    color: #172238 !important;
    font-size: 8.2px !important;
    font-weight: 700 !important;
    line-height: 1.55 !important;
    letter-spacing: .05em !important;
  }
}

@media (max-width: 390px) {
  body main section.flow-section > .container.container {
    width: min(calc(100% - 30px), 390px) !important;
  }

  body main section.flow-section .section-heading h2 {
    font-size: 36.5px !important;
  }

  body main section.flow-section .flow-card {
    grid-template-columns: 138px minmax(0, 1fr) !important;
    gap: 4px 16px !important;
    height: 107px !important;
    min-height: 107px !important;
    padding-right: 15px !important;
  }

  body main section.flow-section .flow-card::before {
    left: 156px !important;
  }

  body main section.flow-section .flow-illust {
    width: 72px !important;
    height: 72px !important;
    margin-left: 36px !important;
  }

  body main section.flow-section .flow-card h3 {
    font-size: 16px !important;
  }

  body main section.flow-section .flow-card p {
    font-size: 9.8px !important;
  }
}

/* Flow SP illustration sizing pass: keep illustrations as component assets,
   but tune each visual to the mock's balance instead of one uniform size. */
@media (max-width: 760px) {
  body main section.flow-section .flow-card:nth-of-type(1) .flow-illust {
    width: 82px !important;
    height: 78px !important;
    margin: 8px 0 0 34px !important;
  }

  body main section.flow-section .flow-card:nth-of-type(2) .flow-illust {
    width: 88px !important;
    height: 88px !important;
    margin: 4px 0 0 43px !important;
  }

  body main section.flow-section .flow-card:nth-of-type(3) .flow-illust {
    width: 86px !important;
    height: 86px !important;
    margin: 3px 0 0 37px !important;
  }

  body main section.flow-section .flow-card:nth-of-type(4) .flow-illust {
    width: 91px !important;
    height: 91px !important;
    margin: 2px 0 0 35px !important;
  }

  body main section.flow-section .flow-card:nth-of-type(5) .flow-illust {
    width: 88px !important;
    height: 82px !important;
    margin: 6px 0 0 34px !important;
  }
}

/* 2026-07-01 Cases SP heading fidelity pass.
   Keep this after mobile section overrides so the mock heading wins. */
@media (max-width: 760px) {
  body main .cases-section .section-heading {
    margin: 0 auto 0 !important;
    min-height: 247px !important;
    padding: 11px 20px 0 !important;
    background: none !important;
  }

  body main .cases-section .section-heading::before,
  body main .cases-section .section-heading::after {
    top: 32px !important;
    width: 13px !important;
    height: 18px !important;
    opacity: 0.4 !important;
  }

  body main .cases-section .section-heading::before {
    top: 0 !important;
    left: 0 !important;
    z-index: 2 !important;
    display: block !important;
    width: 100% !important;
    height: 247px !important;
    content: "" !important;
    background: url("../img/cases-heading-art-sp.png") center top / 100% auto no-repeat !important;
    clip-path: none !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: none !important;
  }

  body main .cases-section .section-heading::after {
    display: none !important;
  }

  body main .cases-section .section-eyebrow {
    position: relative !important;
    z-index: 1 !important;
    display: inline-block !important;
    color: #0063ca !important;
    font-size: 9.6px !important;
    font-weight: 900 !important;
    line-height: 1.08 !important;
    letter-spacing: 0.18em !important;
    transform: translateY(1px) !important;
    opacity: 0 !important;
  }

  body main .cases-section .section-eyebrow::after {
    display: none !important;
  }

  body main .cases-section .section-heading h2 {
    position: relative !important;
    z-index: 1 !important;
    width: min(100%, 374px) !important;
    margin-top: 4px !important;
    color: transparent !important;
    font-family: "Shippori Mincho B1", "Noto Serif JP", "Yu Mincho", "YuMincho", var(--serif) !important;
    font-size: clamp(31px, 7.28vw, 38.2px) !important;
    font-weight: 700 !important;
    line-height: 1.48 !important;
    letter-spacing: 0.044em !important;
    background:
      linear-gradient(96deg, #004fba 0%, #0069cf 28%, #005fc7 62%, #12aebd 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    text-shadow:
      0.18px 0.1px 0 rgba(0, 103, 205, 0.08),
      -0.12px 0.18px 0 rgba(34, 184, 199, 0.08),
      0 1px 0 rgba(255, 255, 255, 0.16),
      0 4px 10px rgba(15, 113, 203, 0.09) !important;
    opacity: 0 !important;
  }

  body main .cases-section .section-heading h2 .case-fan-word {
    font-size: 1em !important;
    margin-right: 0.055em !important;
    background: linear-gradient(102deg, #0057c2 0%, #0576d2 50%, #10afbd 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    transform: none !important;
  }

  body main .cases-section .section-heading h2::after {
    display: none !important;
  }

  body main .cases-section .section-heading h2::before {
    display: none !important;
  }

  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    position: relative !important;
    z-index: 3 !important;
    width: min(100%, 304px) !important;
    margin-top: 8px !important;
    color: #303647 !important;
    font-size: 11.4px !important;
    font-weight: 600 !important;
    line-height: 1.9 !important;
    letter-spacing: 0.055em !important;
  }

  body main .cases-section {
    padding-top: 6px !important;
  }

  body main .case-shell {
    margin-top: -28px !important;
    padding-top: 0 !important;
  }

  body main .case-track {
    padding-bottom: 42px !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (issues SP) v2: re-measured against the native PDF tile
   (sp-tiles/t-006.png, 377px = 390vp). Bigger type at mock scale, 283x208 cards with 41px gradient
   number badges, fine-dot separators, yellow marker swash + blue ズレ in the bottom copy, chevron,
   and gradient CMOドクター. Supersedes all earlier issues fine-alignment layers. */
@media (max-width: 760px) {
  body main .issues-section .heading-small {
    color: #2359dd !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.3em !important;
  }

  body main .issues-section .section-heading h2 {
    margin-top: 22px !important;
    color: #16202f !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    line-height: 1.33 !important;
  }

  /* 壁 accent per native tile: ~1.32em gradient glyph rising above the line,
     soft blurred glow underneath (not a crisp bar), 3-stroke hand-drawn burst
     at the top right (not a star). Full selector to outrank the 11797 layer. */
  body main .issues-section .section-heading h2 .wall-word {
    position: relative !important;
    display: inline-block !important;
    /* line-height 0.78 keeps the h2 line box at the 32px metrics, but then the
       border box is shorter than the glyph and background-clip:text stops
       painting there — pad the paint area and cancel it with equal negative
       margins so layout is unchanged. Net margin-inline stays 0.03em/0.02em. */
    padding: 0.14em 0.05em 0.26em !important;
    margin: -0.14em -0.03em -0.26em -0.02em !important;
    color: #4fb5ea !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 1.32em !important;
    font-weight: 700 !important;
    line-height: 0.78 !important;
    letter-spacing: 0.02em !important;
    transform: none !important;
    background: linear-gradient(180deg, #22a0e6 0%, #45aee9 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
  }

  body main .issues-section .section-heading h2 .wall-word::before {
    position: absolute !important;
    top: -0.1em !important;
    right: -0.3em !important;
    display: block !important;
    width: 15px !important;
    height: 12px !important;
    content: "" !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 16' fill='none'%3E%3Cpath d='M2 11L6 6M8.5 13L14 3.5M14.5 14.5L19 10' stroke='%2342b2eb' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
  }

  body main .issues-section .section-heading h2 .wall-word::after {
    position: absolute !important;
    top: auto !important;
    right: -0.1em !important;
    bottom: 0.04em !important;
    left: -0.2em !important;
    z-index: -1 !important;
    height: 8px !important;
    content: "" !important;
    background: #bfe4f9 !important;
    border-radius: 999px !important;
    opacity: 0.45 !important;
    filter: blur(4px) !important;
  }

  /* .section-heading in the selector outranks the old sr-only margin:-1px rule */
  body main .issues-section .section-heading .issue-lead {
    margin-top: 9px !important;
  }

  /* the heading's margin-bottom is the effective card-top spacer
     (it collapses with .issue-grid's margin-top, so tune it here) */
  body main .issues-section .section-heading {
    margin-bottom: 13px !important;
  }

  body main .issues-section .issue-lead-line {
    color: #52555e !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.95 !important;
    letter-spacing: 0.05em !important;
  }

  body main .issues-section .issue-lead strong {
    color: #2e63de !important;
    font-weight: 800 !important;
  }

  body main .issues-section .issue-grid {
    gap: 14px !important;
    grid-auto-columns: 283px !important;
    margin: 0 !important;
    padding: 0 24px 6px 31px !important;
    /* match padding-left so scroll-snap doesn't pull the row 8px left on load */
    scroll-padding-inline: 31px !important;
    width: 100% !important;
  }

  /* :nth-child(n) matches every card; it only exists to tie the specificity of the
     older :nth-child(2n+1) / :nth-child(2)-(6) layers so this later block wins. */
  body main .issues-section .issue-card:nth-child(n) {
    position: relative !important;
    width: 283px !important;
    min-width: 283px !important;
    height: 207px !important;
    min-height: 207px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 20px !important;
    box-shadow: 0 12px 26px rgba(54, 123, 188, 0.12) !important;
    transform: none !important;
  }

  body main .issues-section .issue-card:nth-child(n)::after {
    display: none !important;
  }

  body main .issues-section .issue-card:nth-child(n) .number {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    display: grid !important;
    place-items: center !important;
    width: 43px !important;
    height: 43px !important;
    margin: 0 !important;
    color: #fff !important;
    font-family: var(--rounded) !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em !important;
    background: linear-gradient(225deg, #67c3ed 0%, #2f6fd6 92%) !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: #fff !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: 0 6px 12px rgba(40, 110, 200, 0.2) !important;
  }

  body main .issues-section .issue-card:nth-child(n) .sketch-img {
    position: absolute !important;
    top: 63px !important;
    left: 3px !important;
    width: 96px !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
  }

  body main .issues-section .issue-card:nth-child(n) > div {
    position: absolute !important;
    top: 23px !important;
    left: 106px !important;
    width: 172px !important;
  }

  body main .issues-section .issue-card:nth-child(n) h3 {
    width: auto !important;
    margin: 0 !important;
    color: #2e6ad7 !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.03em !important;
  }

  body main .issues-section .issue-card:nth-child(n) h3::after {
    display: block !important;
    width: 160px !important;
    height: 2.4px !important;
    margin-top: 6px !important;
    border: 0 !important;
    background: radial-gradient(circle, #9cc2ef 0.8px, transparent 1.05px) 0 0 / 4.8px 2.4px repeat-x !important;
    content: "" !important;
  }

  body main .issues-section .issue-card:nth-child(n) p {
    width: auto !important;
    margin: 17px 0 0 !important;
    color: #54565c !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 2.125 !important;
    letter-spacing: 0.045em !important;
  }

  body main .issues-section .issue-pagination {
    gap: 12px !important;
    margin: 9px 0 8px !important;
    justify-content: center !important;
  }

  body main .issues-section .issue-pagination span {
    width: 7.5px !important;
    height: 7.5px !important;
    background: #cde4fa !important;
  }

  body main .issues-section .issue-pagination span.is-active {
    width: 8.5px !important;
    height: 8.5px !important;
    background: #0a58dc !important;
  }

  body main .issues-section .issue-bottom p {
    margin: 20px auto 0 !important;
    color: #51555f !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.8 !important;
    letter-spacing: 0.06em !important;
  }

  body main .issues-section .issue-bottom p strong {
    position: relative !important;
    padding-bottom: 2px !important;
    color: #2f63d8 !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 196 9' fill='none'%3E%3Cpath d='M5 4c30 2.6 70 3.2 98 2.8 30-.4 62-1.5 88-3' stroke='%23fdf0a0' stroke-width='4.2' stroke-linecap='round'/%3E%3C/svg%3E") center bottom / 100% 7px no-repeat !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentColor !important;
  }

  body main .issues-section .issue-quote {
    color: #8fb6ee !important;
  }

  body main .issues-section .issue-zure {
    margin: 0 2px 0 0 !important;
    color: #2f63d8 !important;
    font-weight: 900 !important;
  }

  body main .issues-section .issue-bottom {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  body main .issues-section .issue-bottom h3 {
    margin-bottom: 0 !important;
    color: #22539f !important;
    font-family: "Kiwi Maru", var(--rounded) !important;
    font-size: 23px !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
  }

  body main .issues-section .issue-bottom h3::before {
    display: block !important;
    width: 13px !important;
    height: 8px !important;
    margin: 7px auto 8px !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 11' fill='none'%3E%3Cpath d='M2 2l7 7 7-7' stroke='%236cc0ee' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
    content: "" !important;
  }

  body main .issues-section .issue-bottom h3 span {
    position: relative !important;
    display: block !important;
    margin-top: 8px !important;
    font-size: 34px !important;
    font-weight: 500 !important;
    letter-spacing: 0.05em !important;
    /* the span box is full-width while the text is ~232px centered, so the
       gradient stops map onto the text: light C at ~16%, full deep by ~62% */
    background: linear-gradient(90deg, #52b6f0 16%, #1155d7 62%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
  }

  /* small 3-stroke burst at the upper right of 「。」 (same motif as the 壁 one) */
  body main .issues-section .issue-bottom h3 span::after {
    position: absolute !important;
    top: 2px !important;
    left: calc(50% + 112px) !important;
    width: 13px !important;
    height: 12px !important;
    content: "" !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 16' fill='none'%3E%3Cpath d='M2 11L6 6M8.5 13L14 3.5M14.5 14.5L19 10' stroke='%237cc0f0' stroke-width='2.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
  }

  body main .issues-section {
    padding-top: 27px !important;
    padding-bottom: 13px !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (service SP) v2: flat white cards + soft shadows like the
   SP mock (no gloss, no borders, no washes). Tabs all visible (no right bleed — earlier bleed was a
   misread of the mock), active = flat 90deg blue->teal gradient with bottom notch. Colors sampled
   from mockup/sp-sections/05_service.png. */
@media (max-width: 760px) {
  body main .service-section {
    padding-top: 14px !important;
  }

  /* ---- tabs ---- */
  body main .service-tabs {
    display: grid !important;
    grid-template-columns: 115fr 113fr 130fr !important;
    gap: 6px !important;
    margin: 0 -18px 24px -8px !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body main .service-tabs::before,
  body main .service-tabs::after {
    display: none !important;
  }

  body main .service-tab {
    min-width: 0 !important;
    min-height: 55px !important;
    padding: 8px 4px 9px !important;
    column-gap: 7px !important;
    color: #374154 !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 14px !important;
    box-shadow: 0 6px 16px rgba(43, 115, 180, 0.12) !important;
    transform: none !important;
  }

  body main .service-tab::before {
    display: none !important;
  }

  body main .service-tab.is-active {
    min-height: 55px !important;
    color: #fff !important;
    background: linear-gradient(90deg, #0f79d6 0%, #1bbbc4 100%) !important;
    border: 0 !important;
    box-shadow: 0 10px 22px rgba(15, 110, 200, 0.2) !important;
    transform: none !important;
  }

  body main .service-tab::after {
    width: 20px !important;
    height: 12px !important;
    background: #1f9bcf !important;
    filter: none !important;
  }

  body main .service-tab .service-tab-num {
    width: 22px !important;
    height: 22px !important;
    margin: 0 !important;
    color: #39445c !important;
    font-size: 12px !important;
    font-family: "Times New Roman", var(--serif) !important;
    font-weight: 600 !important;
    background: #fff !important;
    border: 1px solid #cfe2f5 !important;
    box-shadow: none !important;
  }

  body main .service-tab.is-active .service-tab-num {
    color: #1c77d1 !important;
    border: 0 !important;
  }

  body main .service-tab h3 {
    font-size: 15.5px !important;
    letter-spacing: 0.02em !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
  }

  body main .service-tab p {
    margin-top: 3px !important;
    color: #6d7789 !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
  }

  body main .service-tab.is-active p {
    color: rgba(255, 255, 255, 0.95) !important;
  }

  /* ---- main card: flat white, floating number, big right illustration ---- */
  body main .service-main {
    display: block !important;
    position: relative !important;
    min-height: 226px !important;
    margin-inline: -11px !important;
    padding: 13px 12px 14px !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 18px !important;
    box-shadow: 0 12px 30px rgba(54, 123, 188, 0.13) !important;
  }

  body main .service-main::before,
  body main .service-main::after {
    display: none !important;
  }

  body main .service-copy {
    display: block !important;
    position: static !important;
  }

  body main .service-copy .large-num {
    position: absolute !important;
    top: 8px !important;
    left: 11px !important;
    display: grid !important;
    place-items: center !important;
    width: 39px !important;
    height: 39px !important;
    margin: 0 !important;
    color: #0d63bb !important;
    font-size: 24px !important;
    font-family: "Times New Roman", var(--serif) !important;
    font-weight: 500 !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: 0 6px 16px rgba(25, 105, 190, 0.2) !important;
  }

  body main .service-copy h3 {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 !important;
    padding-top: 5px !important;
    color: #22314c !important;
    font-size: 18px !important;
    line-height: 1.52 !important;
    letter-spacing: 0.04em !important;
    white-space: normal !important;
  }

  body main .service-copy h3 .service-title-break {
    display: block !important;
    padding-left: 52px !important;
  }

  /* Tabs 2/3 titles have no .service-title-break span - indent only the first line instead. */
  body main .service-main[data-service-tone="green"] .service-copy h3,
  body main .service-main[data-service-tone="purple"] .service-copy h3 {
    text-indent: 50px !important;
  }

  body main .service-copy h3 span:not(.service-title-break) {
    color: #0e6fc7 !important;
  }

  body main .service-copy h3::after {
    width: 164px !important;
    height: 2.2px !important;
    margin-top: 8px !important;
    border: 0 !important;
    background: radial-gradient(circle, #5ea9ef 0.95px, transparent 1.15px) 0 0 / 5.2px 2.2px repeat-x !important;
    content: "" !important;
  }

  body main .service-copy p {
    position: relative !important;
    z-index: 2 !important;
    max-width: 156px !important;
    margin: 6px 0 0 !important;
    color: #4d586b !important;
    font-size: 11.5px !important;
    font-weight: 600 !important;
    line-height: 1.75 !important;
    letter-spacing: 0.02em !important;
  }

  body main .service-visual {
    position: absolute !important;
    top: 8px !important;
    right: 2px !important;
    z-index: 1 !important;
    width: 214px !important;
    min-height: 0 !important;
    margin: 0 !important;
  }

  body main .service-illustration-img {
    width: 100% !important;
    max-height: 176px !important;
    margin: 0 !important;
  }

  /* ---- main tag pills: one row of 4, white with icons ---- */
  body main .service-copy .pill-row {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    width: 100% !important;
    margin-top: 11px !important;
    overflow: visible !important;
  }

  body main .service-copy .pill-row span {
    display: inline-flex !important;
    flex: 1 1 0 !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    min-width: 0 !important;
    min-height: 31px !important;
    padding: 4px 4px !important;
    color: #2f6fd2 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em !important;
    white-space: nowrap !important;
    background: #fff !important;
    border: 1px solid #cfe4f8 !important;
    border-radius: 999px !important;
    box-shadow: 0 4px 10px rgba(43, 121, 188, 0.08) !important;
  }

  body main .service-copy .pill-row span::before {
    flex: 0 0 auto !important;
    width: 16px !important;
    height: 16px !important;
    content: "" !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
  }

  body main .service-copy .pill-row span:nth-child(1)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233174d9' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 5.2a4.6 4.6 0 0 1 2.6 8.4c-.6.5-1 .9-1 1.6h-3.2c0-.7-.4-1.1-1-1.6A4.6 4.6 0 0 1 12 5.2Z'/%3E%3Cpath d='M10.6 18h2.8'/%3E%3Cpath d='M12 1.6v1.5'/%3E%3Cpath d='M4.8 4.9l1.1 1.1'/%3E%3Cpath d='M19.2 4.9l-1.1 1.1'/%3E%3Cpath d='M2.6 12h1.5'/%3E%3Cpath d='M19.9 12h1.5'/%3E%3C/svg%3E") !important;
  }

  body main .service-copy .pill-row span:nth-child(2)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='13' width='4' height='7' rx='1' fill='%236fa7e4'/%3E%3Crect x='10' y='9' width='4' height='11' rx='1' fill='%233c86dc'/%3E%3Crect x='16' y='5' width='4' height='15' rx='1' fill='%230f72cb'/%3E%3C/svg%3E") !important;
  }

  body main .service-copy .pill-row span:nth-child(3)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='7.2' cy='9' r='2.6' fill='none' stroke='%230f72cb' stroke-width='1.6'/%3E%3Cpath d='M2.6 19c.5-3 2.3-4.8 4.6-4.8s4.1 1.8 4.6 4.8' fill='none' stroke='%230f72cb' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='16.8' cy='9' r='2.6' fill='none' stroke='%2345b6d1' stroke-width='1.6'/%3E%3Cpath d='M12.2 19c.5-3 2.3-4.8 4.6-4.8s4.1 1.8 4.6 4.8' fill='none' stroke='%2345b6d1' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  }

  body main .service-copy .pill-row span:nth-child(4)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5.5h16a1.5 1.5 0 0 1 1.5 1.5v8a1.5 1.5 0 0 1-1.5 1.5h-7l-4 3.4v-3.4H4A1.5 1.5 0 0 1 2.5 15V7A1.5 1.5 0 0 1 4 5.5Z' fill='%230974cf'/%3E%3Ccircle cx='8' cy='11' r='1.1' fill='%23fff'/%3E%3Ccircle cx='12' cy='11' r='1.1' fill='%23fff'/%3E%3Ccircle cx='16' cy='11' r='1.1' fill='%23fff'/%3E%3C/svg%3E") !important;
  }

  /* ---- mini cards: flat white, ringed numbers, filled pastel pills ---- */
  body main .service-subgrid {
    gap: 12px !important;
    margin-top: 12px !important;
    margin-inline: -11px !important;
  }

  body main .service-mini {
    grid-template-columns: 33px minmax(0, 1fr) !important;
    gap: 3px 12px !important;
    min-height: 73px !important;
    padding: 10px 112px 10px 12px !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 24px rgba(54, 123, 188, 0.1) !important;
  }

  body main .service-mini::before {
    display: none !important;
  }

  body main .service-mini .large-num {
    width: 33px !important;
    height: 33px !important;
    font-size: 18.5px !important;
    font-family: "Times New Roman", var(--serif) !important;
    font-weight: 500 !important;
    background: #fff !important;
    border: 0 !important;
  }

  body main .service-mini:nth-child(1) .large-num {
    color: #12a9a8 !important;
    box-shadow: 0 0 0 3.5px #dfefec, 0 6px 12px rgba(30, 110, 190, 0.12) !important;
  }

  body main .service-mini:nth-child(2) .large-num {
    color: #4f68cd !important;
    box-shadow: 0 0 0 3.5px #e4e8f7, 0 6px 12px rgba(30, 110, 190, 0.12) !important;
  }

  body main .service-mini h3 {
    width: fit-content !important;
    margin: 0 0 3px !important;
    color: #22314c !important;
    font-size: 13.5px !important;
    letter-spacing: 0.03em !important;
    line-height: 1.4 !important;
  }

  body main .service-mini h3::after {
    width: calc(100% + 8px) !important;
    height: 2px !important;
    margin-top: 4px !important;
    border: 0 !important;
    background: radial-gradient(circle, #63b0ef 0.85px, transparent 1.05px) 0 0 / 5px 2px repeat-x !important;
    content: "" !important;
  }

  body main .service-mini .pill-row {
    gap: 7px !important;
    margin-top: 4px !important;
  }

  body main .service-mini .pill-row span {
    min-width: 0 !important;
    min-height: 19px !important;
    padding: 2.5px 7px !important;
    font-size: 9.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body main .service-mini:nth-child(1) .pill-row span {
    color: #3d9d9b !important;
    background: #e1f5f4 !important;
  }

  body main .service-mini:nth-child(2) .pill-row span {
    color: #4f6fd0 !important;
    background: #e4e9f9 !important;
  }

  body main .service-mini::after {
    right: 12px !important;
    width: 19px !important;
    height: 19px !important;
    content: "" !important;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M2 1.5 6.5 6 2 10.5' fill='none' stroke='%232bb3b1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 7px 10px no-repeat, #fff !important;
    border: 1px solid #d5eef0 !important;
    box-shadow: 0 4px 10px rgba(43, 128, 194, 0.1) !important;
  }

  body main .service-mini .mini-illustration-img {
    position: absolute !important;
    top: 50% !important;
    max-width: none !important;
    justify-self: auto !important;
    transform: translateY(-50%) !important;
  }

  body main .service-mini:nth-child(1) .mini-illustration-img {
    right: 46px !important;
    width: 76px !important;
    max-height: 60px !important;
  }

  body main .service-mini:nth-child(2) .mini-illustration-img {
    right: 44px !important;
    width: 76px !important;
    max-height: 62px !important;
  }

  /* ---- section heading: royal blue serif like the mock ---- */
  body main .service-section .section-heading h2 .line {
    color: #2665c1 !important;
    -webkit-text-fill-color: #2665c1 !important;
    background: none !important;
    font-size: 19.5px !important;
    line-height: 1.55 !important;
    letter-spacing: 0.06em !important;
  }

  body main .service-section .section-heading h2 .line span {
    color: #096abc !important;
    -webkit-text-fill-color: #096abc !important;
    background: none !important;
    font-size: 29px !important;
  }

  body main .service-section .section-heading > p:not(.section-eyebrow) {
    margin-top: 10px !important;
    color: #697180 !important;
    font-size: 9.3px !important;
    font-weight: 700 !important;
    line-height: 1.75 !important;
    letter-spacing: 0.04em !important;
  }

  /* ---- tab title sizes per mock (tab 3 is smaller to fit 7 chars) ---- */
  body main .service-tab:nth-child(1) h3,
  body main .service-tab:nth-child(2) h3 {
    font-size: 16.5px !important;
  }

  body main .service-tab:nth-child(3) h3 {
    font-size: 12.5px !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (flow SP): pure white cards. The between-card arrow keeps
   the white circular badge from the base SP block (13733) because the SP mock shows a ↓ inside a badge. */
@media (max-width: 760px) {
  body main section.flow-section .flow-card,
  body main section.flow-section .flow-card:nth-of-type(3) {
    background: rgba(255, 255, 255, 0.98) !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (faq PC): bigger note band text/icon, answer indent like the mock. */
@media (min-width: 761px) {
  body main .faq-note {
    gap: 44px !important;
    font-size: 31px !important;
    letter-spacing: 0.09em !important;
    padding: 5px 34px !important;
  }

  body main .faq-note .people-icon {
    width: 108px !important;
    height: 108px !important;
  }

  body main .faq-item p {
    margin: 0 34px 24px 34px !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (faq SP) v2: re-measured against the native PDF tile
   (377px = 390vp). Restores the FAQ eyebrow (the old tile crop had cut it off), full-width gradient
   swash under the heading, bigger Q badges/questions, cards inset 23px, fine-dot separators.
   The まずはお気軽に band is still the contact panel (hidden .faq-note stays). Initial state stays
   "first item open" per user decision (the mock shows all items open). */
@media (max-width: 760px) {
  body main .faq-section {
    padding: 26px 0 12px !important;
  }

  body main .faq-section .section-eyebrow {
    position: relative !important;
    display: table !important;
    margin-bottom: 10px !important;
    margin-inline: auto !important;
    color: #2a68ea !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0.24em !important;
  }

  body main .faq-section .section-eyebrow::before,
  body main .faq-section .section-eyebrow::after {
    position: absolute !important;
    top: 50% !important;
    display: block !important;
    content: "" !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    transform: translateY(-50%) !important;
    clip-path: none !important;
  }

  body main .faq-section .section-eyebrow::before {
    left: -38px !important;
    width: 26px !important;
    height: 24px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 24'%3E%3Cpath d='M8.5 8c.5 3.4 2 5.2 5.3 6-3.3.8-4.8 2.6-5.3 6-.5-3.4-2-5.2-5.3-6 3.3-.8 4.8-2.6 5.3-6Z' fill='%23a9bf62'/%3E%3Cpath d='M19.5 1c.3 2.2 1.3 3.4 3.5 3.9-2.2.5-3.2 1.7-3.5 3.9-.3-2.2-1.3-3.4-3.5-3.9 2.2-.5 3.2-1.7 3.5-3.9Z' fill='%23bfd08a'/%3E%3C/svg%3E") !important;
  }

  body main .faq-section .section-eyebrow::after {
    right: -32px !important;
    width: 17px !important;
    height: 17px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 .8c.4 2.9 1.8 4.5 4.6 5.2-2.8.7-4.2 2.3-4.6 5.2-.4-2.9-1.8-4.5-4.6-5.2C6.2 5.3 7.6 3.7 8 .8Z' fill='%237cc0f2'/%3E%3C/svg%3E") !important;
  }

  body main .faq-section .section-heading {
    display: block !important;
    margin-bottom: 20px !important;
    text-align: center !important;
  }

    body main .faq-section .section-heading h2 {
    width: fit-content !important;
    margin-inline: auto !important;
    background: linear-gradient(90deg, #2e6fe5 0%, #2e6fe5 77%, #2fcac9 81%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    font-size: 29px !important;
    letter-spacing: 0.2em !important;
  }

  body main .faq-section .section-heading h2::before {
    display: none !important;
  }

  body main .faq-section .section-heading h2::after {
    position: static !important;
    display: block !important;
    width: 273px !important;
    height: 26px !important;
    margin: 2px auto 0 !important;
    border: 0 !important;
    content: "" !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 273 26' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='273' y2='0' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%232f6fe8'/%3E%3Cstop offset='.48' stop-color='%233f8bf0'/%3E%3Cstop offset='1' stop-color='%232fcac9'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M4 6c30 13 68 15 100 8 26-5 42-9 66-8 28 1.5 50 9 74 6 9-1 15-3.5 21-8.5' stroke='url(%23g)' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
    transform: none !important;
  }

  body main .faq-section .section-heading p:not(.section-eyebrow) {
    margin-top: 12px !important;
    color: #454549 !important;
    font-size: 10.8px !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
    line-height: 1.7 !important;
  }

  body main .faq-note {
    display: none !important;
  }

  body main .faq-list {
    gap: 12px !important;
    margin-inline: -1px !important;
  }

  body main .faq-item {
    background: rgba(255, 255, 255, 0.97) !important;
    border: 0 !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 24px rgba(54, 123, 188, 0.1) !important;
  }

  body main .faq-item button {
    grid-template-columns: auto minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    padding: 13px 81px 7px 17px !important;
    color: #2965e9 !important;
    font-size: 12.5px !important;
    font-weight: 800 !important;
    line-height: 1.55 !important;
    letter-spacing: 0.01em !important;
  }

  body main .faq-item:not(.is-open) button {
    padding-bottom: 13px !important;
  }

  body main .faq-item button > span:first-child {
    width: 26px !important;
    height: 26px !important;
    font-size: 15px !important;
    background:
      radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.4), transparent 42%),
      linear-gradient(135deg, #62a0f2, #1c66e8) !important;
    box-shadow: 0 5px 10px rgba(27, 99, 220, 0.22) !important;
  }

  body main .faq-item button i {
    top: 16px !important;
    right: 41px !important;
    width: 21px !important;
    height: 21px !important;
    color: #416ced !important;
    border-width: 1.8px !important;
    transform: none !important;
  }

  body main .faq-item button i::before,
  body main .faq-item button i::after {
    width: 10px !important;
    height: 1.8px !important;
  }

  body main .faq-item button::after {
    top: 21px !important;
    right: 17px !important;
    width: 12px !important;
    height: 12px !important;
    margin-top: 0 !important;
    color: #416ced !important;
    border-top-width: 2.2px !important;
    border-right-width: 2.2px !important;
  }

  body main .faq-item p {
    margin: 0 16px 10px 17px !important;
    padding: 9px 0 0 !important;
    border-top: 0 !important;
    background: radial-gradient(circle, #a7c9ee 1px, transparent 1.25px) 0 0 / 5.2px 2.6px repeat-x !important;
    color: #3c3c40 !important;
    font-size: 11.2px !important;
    font-weight: 600 !important;
    line-height: 1.73 !important;
    letter-spacing: 0.02em !important;
  }

  body main .faq-item:nth-child(1) .sp-break,
  body main .faq-item:nth-child(3) .sp-break {
    display: none !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (contact/footer PC): wide blob panel, big pills,
   visible brand contact card and mock type scale. */
@media (min-width: 761px) {
  body main .contact-section {
    padding: 42px 0 52px !important;
  }

  body main .contact-panel {
    width: min(calc(100% - 58px), 1390px) !important;
    max-width: none !important;
    min-height: 420px !important;
    grid-template-columns: 150px minmax(0, 1fr) !important;
    grid-template-areas:
      "icon copy"
      "actions actions" !important;
    align-content: center !important;
    padding: 54px 96px 52px !important;
  }

  body main .contact-panel .people-icon.large {
    width: 134px !important;
    height: 134px !important;
    justify-self: start !important;
    align-self: center !important;
  }

  body main .contact-copy h2 {
    font-size: 54px !important;
  }

  body main .contact-accent {
    font-size: 64px !important;
  }

  body main .contact-copy p {
    margin-top: 14px !important;
    font-size: 21px !important;
  }

  body main .contact-actions {
    grid-column: 1 / -1 !important;
    justify-content: center !important;
    gap: 46px !important;
    margin-top: 36px !important;
  }

  body main .orange-cta {
    width: 433px !important;
    min-height: 88px !important;
    font-size: 29px !important;
  }

  body main .outline-cta {
    width: 454px !important;
    min-height: 88px !important;
    font-size: 28px !important;
  }

  body .site-footer .footer-brand .footer-contact {
    display: grid !important;
  }

  body .site-footer .footer-grid {
    width: min(calc(100% - 120px), 1210px) !important;
    grid-template-columns: 360px 1fr !important;
  }

  body .site-footer .footer-brand img {
    width: 200px !important;
  }

  body .site-footer .footer-brand p {
    font-size: 19px !important;
  }

  body .site-footer .footer-nav h2 {
    font-size: 21px !important;
  }

  body .site-footer .footer-nav a {
    font-size: 17px !important;
  }

  body .site-footer .copyright {
    font-size: 15px !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (contact/footer SP): icon-beside-2-line heading panel,
   centered pills, footer nav cards with left category icons like the SP mock. */
@media (max-width: 760px) {
  body main .contact-section {
    padding: 8px 0 14px !important;
  }

  body main .contact-section > .container.container.contact-panel {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    grid-template-areas:
      "icon copy"
      "actions actions" !important;
    column-gap: 10px !important;
    row-gap: 0 !important;
    width: auto !important;
    margin-inline: 43px !important;
    padding: 16px 16px 18px 12px !important;
  }

  body main .contact-panel .people-icon.large {
    width: 56px !important;
    height: 56px !important;
    margin: 0 !important;
    justify-self: start !important;
    align-self: center !important;
  }

  body main .contact-copy h2 {
    margin-bottom: 6px !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  body main .contact-leading,
  body main .contact-phrase {
    display: block !important;
    font-size: 18px !important;
  }

  body main .contact-accent {
    font-size: 23px !important;
  }

  body main .contact-copy p {
    width: calc(100% + 66px) !important;
    margin-left: -66px !important;
    font-size: 9.5px !important;
    line-height: 1.75 !important;
    text-align: center !important;
  }

  body main .contact-actions {
    align-items: center !important;
    gap: 8px !important;
    margin-top: 10px !important;
  }

  body main .orange-cta,
  body main .outline-cta {
    width: min(100%, 222px) !important;
    min-height: 38px !important;
    font-size: 12.5px !important;
  }

  body .site-footer .footer-brand .footer-contact {
    width: 245px !important;
    margin-top: 6px !important;
    padding: 8px 20px !important;
    justify-self: center !important;
  }

  body .site-footer .footer-brand p {
    font-size: 9px !important;
    line-height: 1.5 !important;
  }

  body .site-footer .footer-nav {
    gap: 10px !important;
    margin-inline: 16px !important;
  }

  body .site-footer .footer-nav div {
    padding: 10px 30px 10px 55px !important;
    border-radius: 16px !important;
  }

  body .site-footer .footer-nav div::before {
    position: absolute !important;
    top: 50% !important;
    left: 13px !important;
    width: 30px !important;
    height: 30px !important;
    content: "" !important;
    background-color: #e9f5ff !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: 16px 16px !important;
    border-radius: 50% !important;
    transform: translateY(-50%) !important;
  }

  body .site-footer .footer-nav div:nth-child(1)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c.7 4.5 2.6 6.9 7 8-4.4 1.1-6.3 3.5-7 8-.7-4.5-2.6-6.9-7-8 4.4-1.1 6.3-3.5 7-8Z' fill='%231d86e0'/%3E%3C/svg%3E") !important;
  }

  body .site-footer .footer-nav div:nth-child(2)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3h8l5 5v13H6V3Z' fill='none' stroke='%2318c4bf' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M14 3v5h5' fill='none' stroke='%2318c4bf' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M9 12h7M9 16h7' stroke='%2318c4bf' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  }

  body .site-footer .footer-nav div:nth-child(3)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M12 56V20h18v36M30 56V8h22v48M7 56h50M18 29h6M18 39h6M36 17h7M36 27h7M36 37h7' fill='none' stroke='%230b7ad1' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  }

  body .site-footer .footer-nav div::after {
    top: 14px !important;
    right: 13px !important;
    width: 8px !important;
    height: 8px !important;
    border-right-width: 1.5px !important;
    border-bottom-width: 1.5px !important;
  }

  body .site-footer .footer-nav h2 {
    display: block !important;
    font-size: 10.5px !important;
  }

  body .site-footer .footer-nav h2::after {
    width: 100% !important;
  }

  body .site-footer .footer-nav h2::before {
    display: none !important;
  }

  body .site-footer .footer-nav a {
    font-size: 9.3px !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (footer SP addendum): 2-column link rows like the mock. */
@media (max-width: 760px) {
  body .site-footer .footer-nav div:nth-child(2),
  body .site-footer .footer-nav div:nth-child(3) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* 2026-07-02 Mock-fidelity addendum (service PC): the PC mock also shows icons in the main tag pills
   and filled pastel mini pills — missed in pass 1. Same SVG data URIs as the SP block. */
@media (min-width: 761px) {
  body main .service-copy .pill-row span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-width: 0 !important;
    padding: 8px 14px !important;
  }

  body main .service-copy .pill-row span::before {
    flex: 0 0 auto !important;
    width: 20px !important;
    height: 20px !important;
    content: "" !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
  }

  body main .service-copy .pill-row span:nth-child(1)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233174d9' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 5.2a4.6 4.6 0 0 1 2.6 8.4c-.6.5-1 .9-1 1.6h-3.2c0-.7-.4-1.1-1-1.6A4.6 4.6 0 0 1 12 5.2Z'/%3E%3Cpath d='M10.6 18h2.8'/%3E%3Cpath d='M12 1.6v1.5'/%3E%3Cpath d='M4.8 4.9l1.1 1.1'/%3E%3Cpath d='M19.2 4.9l-1.1 1.1'/%3E%3Cpath d='M2.6 12h1.5'/%3E%3Cpath d='M19.9 12h1.5'/%3E%3C/svg%3E") !important;
  }

  body main .service-copy .pill-row span:nth-child(2)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='13' width='4' height='7' rx='1' fill='%236fa7e4'/%3E%3Crect x='10' y='9' width='4' height='11' rx='1' fill='%233c86dc'/%3E%3Crect x='16' y='5' width='4' height='15' rx='1' fill='%230f72cb'/%3E%3C/svg%3E") !important;
  }

  body main .service-copy .pill-row span:nth-child(3)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='7.2' cy='9' r='2.6' fill='none' stroke='%230f72cb' stroke-width='1.6'/%3E%3Cpath d='M2.6 19c.5-3 2.3-4.8 4.6-4.8s4.1 1.8 4.6 4.8' fill='none' stroke='%230f72cb' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='16.8' cy='9' r='2.6' fill='none' stroke='%2345b6d1' stroke-width='1.6'/%3E%3Cpath d='M12.2 19c.5-3 2.3-4.8 4.6-4.8s4.1 1.8 4.6 4.8' fill='none' stroke='%2345b6d1' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  }

  body main .service-copy .pill-row span:nth-child(4)::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5.5h16a1.5 1.5 0 0 1 1.5 1.5v8a1.5 1.5 0 0 1-1.5 1.5h-7l-4 3.4v-3.4H4A1.5 1.5 0 0 1 2.5 15V7A1.5 1.5 0 0 1 4 5.5Z' fill='%230974cf'/%3E%3Ccircle cx='8' cy='11' r='1.1' fill='%23fff'/%3E%3Ccircle cx='12' cy='11' r='1.1' fill='%23fff'/%3E%3Ccircle cx='16' cy='11' r='1.1' fill='%23fff'/%3E%3C/svg%3E") !important;
  }

  body main .service-mini:nth-child(1) .pill-row span {
    color: #3d9d9b !important;
    background: #e1f5f4 !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body main .service-mini:nth-child(2) .pill-row span {
    color: #4f6fd0 !important;
    background: #e4e9f9 !important;
    border: 0 !important;
    box-shadow: none !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (strengths SP) v2: rebuilt from native tile
   sp-tiles/t-005.png (377px = 390vp). Warm card backgrounds (white/ivory/pink), small
   radius, thin elegant serif heading in near-solid deep blue, thin double-curl swash,
   gradient serif number images kept, crisp mock-extracted illustrations, per-card
   absolute text geometry measured off the tile. Supersedes earlier strengths SP layers. */
@media (max-width: 760px) {
  body main .strengths-section {
    padding-bottom: 40px !important;
  }

  body main .strengths-section .section-heading .section-eyebrow {
    display: inline-block !important;
    margin-bottom: 16px !important;
    color: #4a86d9 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.34em !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::before {
    left: -19px !important;
    width: 14px !important;
    height: 17px !important;
  }

  body main .strengths-section .section-heading .section-eyebrow::after {
    right: -19px !important;
    width: 14px !important;
    height: 17px !important;
  }

  body main .strengths-section .section-heading::before {
    top: 26px !important;
    width: 120px !important;
  }

  body main .strengths-section .section-heading h2 {
    gap: 0 !important;
    color: #1266c9 !important;
    font-family: var(--serif) !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    line-height: 1.27 !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: none !important;
  }

  /* the .line spans carry their own gradient in an earlier layer — neutralize */
  body main .strengths-section .section-heading h2 .line {
    color: inherit !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentColor !important;
  }

  body main .strengths-section .section-heading h2::before {
    bottom: -18px !important;
    width: 250px !important;
    height: 32px !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 250 32' fill='none'%3E%3Cpath d='M10 13c14 11 52 10 82 6 26-4 49-6 66-1 30 8 66 8 82-7' stroke='%232f8fdc' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M10 13c14 11 52 10 82 6 26-4 49-6 66-1 30 8 66 8 82-7' stroke='%232cbfb4' stroke-width='1.6' stroke-linecap='round' stroke-dasharray='125 125'/%3E%3Cpath d='M11 12C5 7 6 3 13 2' stroke='%232f8fdc' stroke-width='1.2' stroke-linecap='round' opacity='.7'/%3E%3Cpath d='M240 11c7-5 7-8 0-9' stroke='%232cbfb4' stroke-width='1.2' stroke-linecap='round' opacity='.7'/%3E%3Ccircle cx='125' cy='24' r='3' fill='%23ffffff' stroke='%232cbfb4' stroke-width='1.4'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
  }

  body main .strengths-section .strength-stack {
    gap: 17px !important;
    margin-top: 38px !important;
  }

  body main .strengths-section .strength-card,
  body main .strengths-section .strength-card.strength-one,
  body main .strengths-section .strength-card.strength-two,
  body main .strengths-section .strength-card.strength-three {
    display: block !important;
    width: calc(100% - 46px) !important;
    min-height: 148px !important;
    height: 148px !important;
    padding: 0 !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    background: #fefdf8 !important;
    border: 0 !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 24px rgba(70, 110, 160, 0.10) !important;
  }

  body main .strengths-section .strength-card.strength-two {
    background: #fafaf4 !important;
  }

  body main .strengths-section .strength-card.strength-three {
    background: #fdf5f6 !important;
  }

  body main .strengths-section .strength-card .strength-num {
    position: absolute !important;
    top: 19px !important;
    left: 17px !important;
    width: 57px !important;
    height: 41px !important;
    background-size: contain !important;
    background-position: left center !important;
  }

  body main .strengths-section .strength-card > div {
    position: static !important;
  }

  /* the old title-width dotted line duplicates the full-width one — remove */
  body main .strengths-section .strength-card h3::before,
  body main .strengths-section .strength-card h3::after {
    display: none !important;
  }

  body main .strengths-section .strength-card h3 {
    position: absolute !important;
    top: 36px !important;
    left: 79px !important;
    width: 210px !important;
    margin: 0 !important;
    color: #2361c8 !important;
    font-family: var(--sans) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.46 !important;
    letter-spacing: 0 !important;
  }

  body main .strengths-section .strength-card.strength-two h3 {
    top: 20px !important;
  }

  body main .strengths-section .strength-card.strength-three h3 {
    top: 26px !important;
  }

  /* dotted separator spanning the card under the number+title row */
  body main .strengths-section .strength-card::before {
    position: absolute !important;
    top: 82px !important;
    right: 12px !important;
    left: 17px !important;
    display: block !important;
    height: 3px !important;
    content: "" !important;
    background: radial-gradient(circle, #7fd0e8 0.9px, transparent 1.15px) 0 0 / 5.6px 3px repeat-x !important;
  }

  body main .strengths-section .strength-card.strength-two::before {
    top: 96px !important;
  }

  body main .strengths-section .strength-card.strength-three::before {
    top: 71px !important;
  }

  body main .strengths-section .strength-card p {
    position: absolute !important;
    top: 95px !important;
    left: 17px !important;
    width: 230px !important;
    margin: 0 !important;
    color: #5f6368 !important;
    font-family: var(--sans) !important;
    font-size: 10.5px !important;
    font-weight: 500 !important;
    line-height: 1.67 !important;
    letter-spacing: 0.02em !important;
  }

  body main .strengths-section .strength-card.strength-two p {
    top: 108px !important;
  }

  body main .strengths-section .strength-card.strength-three p {
    top: 83px !important;
  }

  body main .strengths-section .strength-card .strength-art {
    position: absolute !important;
    top: 14px !important;
    right: -7px !important;
    width: 148px !important;
    height: auto !important;
    opacity: 1 !important;
    filter: none !important;
  }

  body main .strengths-section .strength-card.strength-one .strength-art {
    content: url("../img/strength-illust-mock-01.png") !important;
  }

  body main .strengths-section .strength-card.strength-two .strength-art {
    width: 154px !important;
    content: url("../img/strength-illust-mock-02.png") !important;
  }

  body main .strengths-section .strength-card.strength-three .strength-art {
    top: 6px !important;
    right: -8px !important;
    width: 182px !important;
    content: url("../img/strength-illust-mock-03.png") !important;
  }
}

/* 2026-07-02 Mock-fidelity final overrides (hero SP) v2: rebuilt from native tile
   sp-tiles/t-007.png (377px = 390vp). Bigger ファン化。 art, 15px lead, 11px body,
   57px-tall orange CTA (90deg #fc5f17 -> #fca035), blue 無料 word only, larger photo
   collage (365px), feature strip repositioned per tile. */
@media (max-width: 760px) {
  body main .hero {
    padding-top: 67px !important;
    padding-bottom: 15px !important;
  }

  body main .hero .hero-kicker {
    color: #464d59 !important;
    font-family: var(--sans) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
  }

  body main .hero .hero-title {
    margin: 0 !important;
  }

  body main .hero .hero-title img {
    display: block !important;
    width: 342px !important;
    max-width: none !important;
    margin: -7px auto 0 !important;
    transform: translateX(5px) !important;
  }

  body main .hero .hero-lead {
    margin-top: -5px !important;
    color: #252d3b !important;
    font-family: var(--sans) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: 0.05em !important;
  }

  body main .hero .hero-text {
    margin-top: 4px !important;
    color: #333a48 !important;
    font-family: var(--sans) !important;
    font-size: 10.5px !important;
    font-weight: 500 !important;
    line-height: 1.86 !important;
    letter-spacing: 0.04em !important;
  }

  body main .hero .primary-cta {
    font-family: var(--sans) !important;
    gap: 12px !important;
    width: 282px !important;
    max-width: calc(100% - 12px) !important;
    height: 57px !important;
    margin-top: 5px !important;
    font-size: 16.5px !important;
    letter-spacing: 0.06em !important;
    background: linear-gradient(90deg, #fc5f17 0%, #fca035 100%) !important;
    border-radius: 999px !important;
    box-shadow: 0 12px 22px rgba(252, 110, 30, 0.32) !important;
  }

  body main .hero .primary-cta .cta-icon {
    width: 38px !important;
    height: 38px !important;
  }

  body main .hero .primary-cta .cta-arrow {
    width: 17px !important;
    height: 17px !important;
  }

  body main .hero .free-note {
    margin-top: 8px !important;
    color: #333a48 !important;
    font-family: var(--sans) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
  }

  body main .hero .free-note strong {
    color: #3c76dc !important;
    font-weight: 800 !important;
  }

  /* Preserve the client's two-photo composition, centered within the viewport. */
  body main section.hero .hero-visual {
    width: min(381px, calc(100vw - 32px)) !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 381 / 292;
    max-width: none !important;
    margin: 10px auto 0 !important;
  }

  /* the old backdrop ring reads as a stray ellipse behind the re-extracted
     collage — keep the soft wash, drop the outline; dots move to the mock's
     top-left cluster position */
  body main .hero .hero-visual::before {
    border: 0 !important;
  }

  body main .hero .hero-visual::after {
    top: 66px !important;
    right: auto !important;
    bottom: auto !important;
    left: -2px !important;
    width: 86px !important;
    height: 120px !important;
    background-size: 8px 8px !important;
    border-radius: 40% !important;
    opacity: 0.5 !important;
  }

  /* collage re-extracted from the native tile (t-007) so the composition and
     placement match the mock exactly; 368px tile crop = 381vp at 390/377 */
  body main .hero .hero-collage-cutout-sp {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 381px !important;
    max-width: none !important;
    content: url("../img/hero-collage-sp-mock.png") !important;
    transform: none !important;
  }

  /* mock mail glyph is an outlined envelope on the white disc */
  body main .hero .primary-cta .cta-mail-body,
  body main .hero .primary-cta .cta-mail-flap {
    fill: none !important;
    stroke: #f57a1f !important;
    stroke-width: 1.7 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }

  body main .hero .hero-features {
    gap: 0 !important;
    justify-content: space-between !important;
    width: 347px !important;
    margin: 0 auto 0 !important;
    padding: 0 !important;
  }

  body main .hero .feature-card {
    width: 99px !important;
    min-height: 108px !important;
    padding: 11px 4px 10px !important;
    background: #ffffff !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 18px rgba(60, 120, 180, 0.10) !important;
  }

  body main .hero .feature-card h2 {
    margin: 7px 0 4px !important;
    color: #2e6bd3 !important;
    font-family: var(--sans) !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
  }

  body main .hero .feature-card p {
    margin: 1px 0 0 !important;
    color: #454b57 !important;
    font-family: var(--sans) !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.34 !important;
    letter-spacing: 0.02em !important;
  }

  body main .hero .feature-icon {
    width: 33px !important;
    height: 33px !important;
  }
}

/* 2026-07-03 Mock-fidelity final overrides (contact SP) v3: rebuilt from native tile
   sp-tiles/t-002.png (377px = 390vp). Roomier panel, 19/26px serif headline with the
   blue->teal ご相談, solid #fe6b04 pill, 1.5px outline pill, Noto body text. */
@media (max-width: 760px) {
  body main .contact-section {
    padding: 18px 0 8px !important;
  }

  body main .contact-section > .container.container.contact-panel {
    width: calc(100% - 40px) !important;
    max-width: none !important;
    padding: 14px 20px 18px !important;
    margin-inline: auto !important;
    border-radius: 28px !important;
  }

  body main .contact-section .contact-panel .people-icon.large {
    position: absolute !important;
    top: 30px !important;
    left: 20px !important;
    width: 56px !important;
    height: 56px !important;
    margin: 0 !important;
  }

  body main .contact-section .contact-leading {
    color: #1e2842 !important;
    font-size: 19px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
  }

  body main .contact-section .contact-phrase {
    margin-top: 5px !important;
    color: #1e2842 !important;
    font-size: 26px !important;
    font-weight: 600 !important;
    letter-spacing: 0.09em !important;
  }

  body main .contact-section .contact-accent {
    font-size: 1em !important;
  }

  body main .contact-section .contact-copy p {
    margin-top: 9px !important;
    color: #3c4352 !important;
    font-family: var(--sans) !important;
    font-size: 10.5px !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    letter-spacing: 0.05em !important;
  }

  body main .contact-section .contact-actions {
    gap: 12px !important;
    margin-top: 13px !important;
  }

  body main .contact-section .orange-cta {
    width: 252px !important;
    max-width: none !important;
    height: 46px !important;
    margin-inline: auto !important;
    font-family: var(--sans) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    background: #fe6b04 !important;
    border-radius: 999px !important;
    box-shadow: 0 10px 20px rgba(254, 107, 4, 0.28) !important;
  }

  body main .contact-section .orange-cta {
    position: relative !important;
    justify-content: center !important;
  }

  body main .contact-section .orange-cta svg {
    position: absolute !important;
    top: 50% !important;
    right: 20px !important;
    width: 14px !important;
    height: 14px !important;
    transform: translateY(-50%) !important;
  }

  body main .contact-section .outline-cta {
    width: 252px !important;
    max-width: none !important;
    height: 44px !important;
    margin-inline: auto !important;
    color: #1c3f9c !important;
    font-family: var(--sans) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    border: 1.5px solid #2e5eca !important;
    border-radius: 999px !important;
  }

  body main .contact-section .outline-cta {
    position: relative !important;
    justify-content: center !important;
  }

  body main .contact-section .outline-cta svg {
    position: absolute !important;
    top: 50% !important;
    right: 20px !important;
    width: 15px !important;
    height: 15px !important;
    transform: translateY(-50%) !important;
  }
}

/* 2026-07-03 Mock-fidelity final overrides (footer SP) v3: rebuilt from native tile
   sp-tiles/t-002.png. 100px logo + 11px tagline side by side, 280px company card,
   white nav cards with 28px icon discs, dotted rules, blue circle-chevron links,
   Noto everywhere (Yu Gothic renders poorly). */
@media (max-width: 760px) {
  body .site-footer {
    padding-top: 12px !important;
    padding-bottom: 14px !important;
  }

  body .site-footer .footer-brand {
    position: relative !important;
    display: block !important;
  }

  body .site-footer .footer-brand > img {
    display: block !important;
    width: 100px !important;
    margin: 0 0 0 29px !important;
  }

  body .site-footer .footer-brand > p {
    position: absolute !important;
    top: 1px !important;
    left: 159px !important;
    width: 220px !important;
    margin: 0 !important;
    color: #3a4150 !important;
    font-family: var(--sans) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.58 !important;
    letter-spacing: 0.04em !important;
    text-align: left !important;
  }

  body .site-footer .footer-brand .footer-contact {
    display: block !important;
    width: 280px !important;
    padding: 10px 14px 10px 40px !important;
    margin: 14px auto 0 !important;
    background: #ffffff !important;
    border: 1px solid rgba(190, 214, 240, 0.55) !important;
    border-radius: 16px !important;
  }

  body .site-footer .footer-brand .footer-contact span,
  body .site-footer .footer-brand .footer-contact a {
    display: block !important;
    color: #273043 !important;
    font-family: var(--sans) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
  }

  body .site-footer .footer-brand .footer-contact a {
    margin-top: 7px !important;
  }

  body .site-footer .footer-nav {
    display: block !important;
    width: auto !important;
    margin: 18px -11px 0 6px !important;
  }

  body .site-footer .footer-nav > div:nth-child(n) {
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    padding: 8px 14px 8px 62px !important;
    margin: 0 0 15px !important;
    background: #ffffff !important;
    border: 1px solid rgba(196, 219, 243, 0.5) !important;
    border-radius: 14px !important;
    box-shadow: 0 6px 14px rgba(70, 120, 180, 0.06) !important;
  }

  body .site-footer .footer-nav > div:last-child {
    margin-bottom: 0 !important;
  }

  body .site-footer .footer-nav > div:nth-child(n)::before {
    top: 15px !important;
    left: 13px !important;
    width: 28px !important;
    height: 28px !important;
  }

  body .site-footer .footer-nav h2 {
    display: block !important;
    width: auto !important;
    padding: 0 0 6px !important;
    margin: 0 0 6px !important;
    border-bottom: 0 !important;
    color: #2f6fd8 !important;
    font-family: var(--sans) !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    background: radial-gradient(circle, #b9d4ef 0.7px, transparent 0.95px) 0 100% / 4.2px 1.8px repeat-x !important;
  }

  body .site-footer .footer-nav > div:nth-child(1) {
    display: grid !important;
    grid-template-columns: repeat(3, max-content) !important;
    gap: 0 24px !important;
  }

  body .site-footer .footer-nav > div:nth-child(1) h2 {
    grid-column: 1 / -1 !important;
  }

  /* keep the corner chevron out of the inline flow so links don't wrap */
  body .site-footer .footer-nav > div:nth-child(n)::after {
    position: absolute !important;
    top: 13px !important;
    right: 14px !important;
    float: none !important;
    margin: 0 !important;
  }

  body .site-footer .footer-nav > div:nth-child(1) a {
    display: block !important;
    margin-right: 0 !important;
  }

  body .site-footer .footer-nav > div:nth-child(2),
  body .site-footer .footer-nav > div:nth-child(3) {
    grid-template-columns: none !important;
  }

  body .site-footer .footer-nav > div:nth-child(2) {
    display: grid !important;
    grid-template-columns: 118px 1fr !important;
    gap: 6px 12px !important;
  }

  body .site-footer .footer-nav > div:nth-child(3) {
    display: grid !important;
    grid-template-columns: 118px 1fr !important;
    gap: 6px 12px !important;
  }

  body .site-footer .footer-nav > div:nth-child(2) h2,
  body .site-footer .footer-nav > div:nth-child(3) h2 {
    grid-column: 1 / -1 !important;
  }

  body .site-footer .footer-nav a {
    position: relative !important;
    margin-left: 0 !important;
    padding-left: 19px !important;
    white-space: nowrap !important;
    color: #2a3345 !important;
    font-family: var(--sans) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
  }

  body .site-footer .footer-nav a::before {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    width: 13px !important;
    height: 13px !important;
    content: "" !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 13'%3E%3Ccircle cx='6.5' cy='6.5' r='6.5' fill='%233f7de0'/%3E%3Cpath d='M5.2 4l2.6 2.5-2.6 2.5' stroke='%23ffffff' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
    transform: translateY(-50%) !important;
  }

  /* .copyright.copyright outranks the legacy (0,3,0) sr-only child-hider at ~9115 */

  body .site-footer .footer-nav div:last-child a:nth-of-type(2) {
    padding-left: 19px !important;
    font-size: 12px !important;
    letter-spacing: 0.03em !important;
  }

  body .site-footer > .copyright.copyright {
    position: static !important;
    display: block !important;
    width: calc(100% - 44px) !important;
    height: auto !important;
    overflow: visible !important;
    clip-path: none !important;
    white-space: normal !important;
    padding-top: 13px !important;
    margin: 12px auto 0 !important;
    color: #8a93a3 !important;
    font-family: var(--sans) !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-align: center !important;
    border-top: 1px solid #ccd9ea !important;
  }
}

/* 2026-07-03 Mock-fidelity final overrides (service SP) v3: typography/rhythm re-measured
   against the authoritative mockup/sp-sections/05_service.png (469px = 390vp). Solid navy
   serif heading with oversized 3, Noto for all gothic text (Yu Gothic remnants), tighter
   vertical rhythm (653vp target). */
@media (max-width: 760px) {
  body main .service-section {
    padding-top: 8px !important;
    padding-bottom: 28px !important;
  }

  body main .service-section .section-eyebrow {
    margin-bottom: 4px !important;
    color: #2f6fd8 !important;
    font-family: var(--sans) !important;
    font-size: 9.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.16em !important;
  }

  body main .service-section .section-heading h2 {
    margin-top: 0 !important;
    color: #1e2b4c !important;
    font-size: 22px !important;
    font-weight: 900 !important;
    line-height: 1.32 !important;
    letter-spacing: 0.02em !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: none !important;
  }

  body main .service-section .section-heading h2 .line {
    color: inherit !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentColor !important;
  }

  body main .service-section .section-heading h2 .line span {
    color: inherit !important;
    font-size: 34px !important;
    line-height: 1 !important;
    background: none !important;
    -webkit-text-fill-color: currentColor !important;
  }

  body main .service-section .section-heading > p:not(.section-eyebrow) {
    margin-top: 8px !important;
    color: #78808c !important;
    font-family: var(--sans) !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    line-height: 1.6 !important;
    letter-spacing: 0.02em !important;
  }

  body main .service-tabs {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
  }

  body main .service-tab p {
    font-family: var(--sans) !important;
  }

  body main .service-copy p {
    font-family: var(--sans) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.02em !important;
  }

  body main .service-copy .pill-row span {
    font-family: var(--sans) !important;
  }

  body main .service-mini .pill-row span {
    font-family: var(--sans) !important;
  }
}

/* 2026-07-03 SP fidelity pass (cases SP) v2 — mockup/sp-sections/04_cases.png 正基準
   見出しは旧パスの焼き込み画像(cases-heading-art-sp.png)をやめ、DOMテキスト表示に戻す。 */
@media (max-width: 760px) {
  body main .cases-section {
    padding-top: 11px !important;
    padding-bottom: 56px !important;
  }

  /* 旧: 見出し全体アート画像 → 廃止（DOMテキストへ） */
  body main .cases-section .section-heading::before {
    display: none !important;
    content: none !important;
    background: none !important;
  }

  body main .cases-section .section-heading {
    min-height: 0 !important;
    line-height: 1 !important;
    padding-top: 6px !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  body main .cases-section .section-heading .section-eyebrow,
  body main .cases-section .section-heading .heading-small {
    display: block !important;
    margin-top: 6px !important;
    margin-bottom: 1px !important;
    color: #3f83f2 !important;
    font-family: var(--sans) !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    letter-spacing: 0.03em !important;
    opacity: 1 !important;
    transform: none !important;
  }

  /* CASE STUDIES 両脇の✦ */
  body main .cases-section .section-heading .section-eyebrow::before,
  body main .cases-section .section-heading .section-eyebrow::after {
    position: absolute !important;
    top: -1px !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    font-size: 11px !important;
    line-height: 1 !important;
    content: "✦" !important;
    background: none !important;
    opacity: 0.9 !important;
  }

  body main .cases-section .section-heading .section-eyebrow::before {
    left: calc(50% - 53px) !important;
    color: #4a9df0 !important;
    font-size: 9px !important;
    top: 0 !important;
  }

  body main .cases-section .section-heading .section-eyebrow::after {
    right: calc(50% - 65px) !important;
    top: -1px !important;
    color: #38c2dc !important;
  }

  body main .cases-section .section-heading h2 {
    width: 100% !important;
    margin-top: 5px !important;
    background: none !important;
    -webkit-text-fill-color: #2067d8 !important;
    color: #2067d8 !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
    text-shadow: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body main .cases-section .section-heading h2 .case-fan-word {
    background: none !important;
    -webkit-text-fill-color: #2067d8 !important;
    color: #2067d8 !important;
    transform: none !important;
  }

  /* 2行目「ご支援事例」はモック通りの広字間 */
  body main .cases-section .section-heading h2 .line:last-child {
    letter-spacing: 0.26em !important;
    text-indent: 0.26em !important;
  }

  /* ご支援事例 下のスワッシュ（既存data-SVGを再表示） */
  body main .cases-section .section-heading h2::before {
    position: absolute !important;
    right: auto !important;
    bottom: -16px !important;
    left: calc(50% - 63px) !important;
    z-index: 1 !important;
    display: block !important;
    width: 126px !important;
    height: 13px !important;
    content: "" !important;
    background: url("data:image/svg+xml,%3Csvg viewBox='0 0 252 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7 C 52 23, 98 21, 117 13 C 125 9.5, 129.5 15.5, 124 18.6 C 118.5 21.5, 115.5 13.5, 126 11.4 C 158 5, 208 7, 249 13.5' fill='none' stroke='%2335b7d9' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
    opacity: 1 !important;
    transform: none !important;
  }

  /* 見出し脇のアクセント（左ダイヤ・右ピンク） */
  body main .cases-section .section-heading::after {
    position: absolute !important;
    top: 24px !important;
    left: 71px !important;
    z-index: 1 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    color: #6fb5f2 !important;
    font-size: 9px !important;
    line-height: 1 !important;
    content: "✦" !important;
    background: none !important;
    opacity: 0.85 !important;
  }

  body main .cases-section .section-heading h2::after {
    position: absolute !important;
    top: -12px !important;
    right: 76px !important;
    left: auto !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    color: #f0a9bd !important;
    font-size: 8px !important;
    line-height: 1 !important;
    content: "✦" !important;
    background: none !important;
    border: 0 !important;
    opacity: 0.9 !important;
  }

  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin-top: 27px !important;
    color: #6e6f70 !important;
    font-family: var(--sans) !important;
    font-size: 10.4px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
  }

  /* Keep overlapping side faces inside the viewport, with at least 8px of edge space. */
  body main .case-shell {
    --case-side-offset: min(147px, calc(50vw - 60px));
    height: 360px !important;
    margin-top: 17px !important;
    perspective: 1800px !important;
    perspective-origin: 50% 40% !important;
  }

  body main .case-track {
    --case-card-size: 192px !important;
    height: 310px !important;
  }

  body main .case-card,
  body main .case-card.case-clone {
    min-height: 310px !important;
    padding: 13px 6px 14px !important;
    border-radius: 14px !important;
  }

  body main .case-card.is-active {
    box-shadow:
      inset 0 4px 0 #a41114,
      0 16px 30px rgba(208, 66, 97, 0.13),
      inset 0 1px 0 rgba(255, 255, 255, 0.96) !important;
  }

  body main .case-card.is-side-prev,
  body main .case-card.case-clone.is-side-prev:first-child {
    transform:
      translateX(calc(-50% - var(--case-side-offset)))
      translateZ(-80px)
      rotateY(55deg)
      rotateZ(0deg)
      scale(0.94) !important;
  }

  body main .case-card.is-side-next,
  body main .case-card.case-clone.is-side-next:last-child {
    transform:
      translateX(calc(-50% + var(--case-side-offset)))
      translateZ(-80px)
      rotateY(-55deg)
      rotateZ(0deg)
      scale(0.94) !important;
  }

  /* --- カード内部: 01バッヂ / 店名 / ピル / サムネ / 本文 / タグ --- */
  body main .case-card .case-index {
    top: 13px !important;
    left: 13px !important;
    width: 42px !important;
    height: 42px !important;
    font-size: 18px !important;
    line-height: 40px !important;
    box-shadow:
      0 6px 12px rgba(218, 74, 106, 0.13),
      inset 0 0 0 2.5px rgba(255, 255, 255, 0.95),
      inset 0 0 0 3.5px rgba(226, 146, 163, 0.7) !important;
  }

  body main .case-card h3 {
    margin: 6px 0 0 64px !important;
    color: #b53434 !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: 0.01em !important;
  }

  body main .case-card .case-type {
    min-height: 18px !important;
    margin: 6px 0 0 64px !important;
    padding: 3px 8px !important;
    font-family: var(--sans) !important;
    font-size: 9.6px !important;
    font-weight: 700 !important;
    color: #c73349 !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border-color: rgba(230, 150, 165, 0.8) !important;
  }

  body main .case-card .case-type.type-movie::before {
    width: 11px !important;
    height: 11px !important;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 11.5a3 3 0 0 0 3-3V4a3 3 0 1 0-6 0v4.5a3 3 0 0 0 3 3Zm-5-4v1a5 5 0 0 0 10 0v-1M9 13v3m-3 0h6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 11.5a3 3 0 0 0 3-3V4a3 3 0 1 0-6 0v4.5a3 3 0 0 0 3 3Zm-5-4v1a5 5 0 0 0 10 0v-1M9 13v3m-3 0h6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  }

  body main .case-card img {
    margin: 4px 0 0 !important;
    aspect-ratio: 1.45 !important;
    object-position: 50% 100% !important;
  }

  body main .case-play {
    top: 122px !important;
    right: 16px !important;
    width: 30px !important;
    height: 30px !important;
  }

  body main .case-play::before {
    margin-left: 3px !important;
    border-top: 7px solid transparent !important;
    border-bottom: 7px solid transparent !important;
    border-left: 10px solid #fff !important;
  }

  body main .case-card p:not(.case-index):not(.case-type) {
    margin: 20px 4px 0 !important;
    color: #6d6d6d !important;
    font-family: var(--sans) !important;
    font-size: 10.4px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.02em !important;
  }

  body main .case-card p:not(.case-index):not(.case-type)::after {
    margin: 8px auto 0 !important;
    border-bottom: 2px dotted rgba(226, 120, 148, 0.4) !important;
  }

  body main .case-card .tag-row {
    margin-top: 20px !important;
    gap: 6px !important;
  }

  body main .case-card .tag-row span {
    padding: 4px 8px !important;
    min-height: 0 !important;
    color: #d4636f !important;
    font-family: var(--sans) !important;
    font-size: 8.3px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    border-color: rgba(219, 125, 132, 0.5) !important;
  }

  /* --- ドット: モック実測 6px/アクティブ8px 青 --- */
  body main .case-pagination {
    bottom: 6px !important;
    gap: 10px !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body main .case-pagination button {
    width: 6px !important;
    height: 6px !important;
    padding: 0 !important;
    background: #cdd7e1 !important;
    border: 0 !important;
    border-radius: 999px !important;
  }

  body main .case-pagination button::before {
    display: none !important;
  }

  body main .case-pagination button.is-active {
    width: 9px !important;
    height: 8px !important;
    background: #0064f5 !important;
  }
}

/* 2026-07-03 SP fidelity pass (flow SP) v2 — mockup/sp-sections/06_flow.png (371px=390vp) 正基準
   カード高114/ピッチ133へ拡大、Yu Gothic系をNotoへ、タイトルは青→青緑のグラデ文字。
   白丸矢印バッジ・番号スタイルは承認済みのため維持。 */
@media (max-width: 760px) {
  body main section.flow-section {
    padding: 16px 0 16px !important;
  }

  body main section.flow-section .section-heading .section-eyebrow {
    font-family: var(--sans) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 0.22em !important;
  }

  body main section.flow-section .section-heading h2::before {
    bottom: -17px !important;
    height: 22px !important;
  }

  body main section.flow-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    margin: 19px auto 0 !important;
    font-family: var(--sans) !important;
    font-size: 10.6px !important;
    font-weight: 600 !important;
    line-height: 1.7 !important;
    letter-spacing: 0.06em !important;
  }

  body main section.flow-section .flow-list {
    gap: 18px !important;
    margin-top: 17px !important;
  }

  body main section.flow-section .flow-note {
    margin-top: -12px !important;
  }

  body main section.flow-section .flow-card {
    height: 114px !important;
    min-height: 114px !important;
  }

  body main section.flow-section .flow-card h3 {
    font-family: var(--sans) !important;
    background: linear-gradient(90deg, #0a68cc 0, #22aec6 70px) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
  }

  body main section.flow-section .flow-card:not(:last-child)::after {
    width: 27px !important;
    height: 27px !important;
    bottom: -22px !important;
  }

  body main section.flow-section .flow-card p {
    font-family: var(--sans) !important;
    line-height: 1.9 !important;
  }
}

/* ============================================================
   2026-07-03 サイト統一トークン層 (unify)
   目的: セクション間で書体・字間・行間・文字色・余白を統一する。
   例外（意匠として維持）: issuesのKiwi Maru一式 / casesのeyebrow字間0.03em /
   cases説明文lh1.5 / issues本文lh2.125 / hero(FV)全体 / PCのflow・faq見出しサイズ。
   ============================================================ */

/* ---- Part A: PC (min-width:761px) ---- */
@media (min-width: 761px) {
  /* eyebrow: 15px w900 ls0.14em #0060cb */
  body main .strengths-section .section-eyebrow,
  body main .cases-section .section-eyebrow,
  body main .service-section .section-eyebrow,
  body main .flow-section .section-eyebrow,
  body main .faq-section .section-eyebrow {
    color: #0060cb !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    letter-spacing: 0.14em !important;
  }

  /* lead: w800 #172033 */
  body main .issues-section .section-heading p:not(.section-eyebrow):not(.heading-small),
  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small),
  body main .service-section .section-heading p:not(.section-eyebrow):not(.heading-small),
  body main .flow-section .section-heading p:not(.section-eyebrow):not(.heading-small),
  body main .faq-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    color: #172033 !important;
    font-weight: 800 !important;
  }

  /* 本文: w800 lh1.85 #172033 */
  body main .issue-card p {
    color: #172033 !important;
    font-weight: 800 !important;
    line-height: 1.85 !important;
  }

  body main .strength-card p,
  body main .flow-card p,
  body main .faq-item > p {
    color: #172033 !important;
    line-height: 1.85 !important;
  }

  body main .case-card p:not(.case-index):not(.case-type) {
    color: #172033 !important;
    line-height: 1.85 !important;
  }

  body main .service-copy p {
    color: #172033 !important;
    font-weight: 800 !important;
    line-height: 1.85 !important;
  }
}

/* ---- Part B: SP (max-width:760px) ---- */
@media (max-width: 760px) {
  /* eyebrow: Noto w800 #2f6fd8（strengthsはモック実測ls0.34em維持でNoto化のみ） */
  body main .strengths-section .section-eyebrow,
  body main .service-section .section-eyebrow,
  body main .flow-section .section-eyebrow,
  body main .faq-section .section-eyebrow {
    color: #2f6fd8 !important;
    font-family: var(--sans) !important;
    font-weight: 800 !important;
  }

  body main .service-section .section-eyebrow,
  body main .flow-section .section-eyebrow,
  body main .faq-section .section-eyebrow {
    letter-spacing: 0.2em !important;
  }

  body main .faq-section .section-eyebrow {
    font-size: 11px !important;
  }

  /* h2: serif系 w800 / 複数行は lh1.35（flowは1行の大見出しのためlh維持） */
  body main .strengths-section .section-heading h2,
  body main .service-section .section-heading h2,
  body main .faq-section .section-heading h2 {
    font-weight: 800 !important;
    line-height: 1.35 !important;
  }

  body main .cases-section .section-heading h2 {
    line-height: 1.35 !important;
  }

  body main .flow-section .section-heading h2 {
    font-weight: 800 !important;
  }

  body main .contact-section h2 {
    font-weight: 800 !important;
  }

  /* lead: Noto 10.4px w500 lh1.55 ls0.02em #6b7178 */
  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small),
  body main .service-section .section-heading p:not(.section-eyebrow):not(.heading-small),
  body main .flow-section .section-heading p:not(.section-eyebrow):not(.heading-small),
  body main .faq-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    color: #6b7178 !important;
    font-family: var(--sans) !important;
    font-size: 10.4px !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
    letter-spacing: 0.02em !important;
  }

  /* 本文: 色2トークン（説明#5c626b / 強調#232c3f）+ lh吸着 */
  body main .strength-card p {
    color: #5c626b !important;
    line-height: 1.7 !important;
  }

  body main .case-card p:not(.case-index):not(.case-type) {
    color: #5c626b !important;
  }

  body main .service-copy p {
    color: #5c626b !important;
    line-height: 1.5 !important;
  }

  body main .flow-card p {
    color: #232c3f !important;
    line-height: 1.8 !important;
  }

  /* FAQ SP Noto化ミニパス（Yu Gothic撲滅） */
  body main .faq-item button,
  body main .faq-question-text {
    font-family: var(--sans) !important;
    font-weight: 700 !important;
  }

  body main .faq-item > p {
    color: #232c3f !important;
    font-family: var(--sans) !important;
    font-weight: 500 !important;
    line-height: 1.7 !important;
  }
}

/* ---- Part C: 境界余白の正規化（実測視覚空白 SP=56px / PC=150px 目標） ---- */
@media (max-width: 760px) {
  body main section.strengths-section {
    padding-top: 38px !important;    /* issues→strengths 54→56 */
    padding-bottom: 1px !important;  /* strengths→cases(アート復元後) →56 */
  }

  body main section.cases-section {
    padding-top: 3px !important;     /* strengths→cases →56 */
    padding-bottom: 38px !important; /* cases→service 74→56 */
  }

  body main section.service-section {
    padding-bottom: 18px !important; /* service→flow 66→56 */
  }

  body main section.faq-section {
    padding-top: 23px !important;    /* flow→faq 59→56 */
    padding-bottom: 3px !important;  /* faq→contact 69→ */
  }

  body main section.contact-section {
    padding-top: 17px !important;    /* faq→contact →56 */
    padding-bottom: 14px !important; /* contact→footer 43→ */
  }

  body footer.site-footer {
    padding-top: 19px !important;    /* contact→footer →56 */
  }
}

@media (min-width: 761px) {
  body main section.strengths-section {
    padding-bottom: 40px !important; /* strengths→cases 196→150 */
  }

  body main section.cases-section {
    padding-top: 40px !important;
    padding-bottom: 99px !important; /* cases→service 113→150 */
  }

  body main section.service-section {
    padding-top: 76px !important;
    padding-bottom: 36px !important; /* service→flow 162→150 */
  }

  body main section.flow-section {
    padding-bottom: 84px !important; /* flow→faq 114→150 */
  }

  body main section.faq-section {
    padding-top: 76px !important;
    padding-bottom: 28px !important; /* faq→contact 150（noteバンド削除後の再調整） */
  }

  body main section.contact-section {
    padding-top: 16px !important;
    padding-bottom: 24px !important; /* contact→footer 196→150 */
  }

  body footer.site-footer {
    padding-top: 68px !important;
  }
}

/* ============================================================
   2026-07-03 unify Part D: 見出し・英字小見出しの完全統一
   + Cases SP見出しアート復元（ユーザー明示指示）
   eyebrow: 全5箇所を完全同一（Noto w800 10px ls0.2em #2f6fd8）
   h2: 全セクション同一サイズ SP28px / PC56px（hero・contactパネル・footerナビは除外、
       issuesはKiwi Maruのままサイズのみ統一、casesのSP見た目はアート画像が正）
   ============================================================ */

/* ---- Part D-1: SP ---- */
@media (max-width: 760px) {
  /* eyebrow 完全同一 */
  body main section.strengths-section .section-eyebrow,
  body main section.cases-section .section-eyebrow,
  body main section.service-section .section-eyebrow,
  body main section.flow-section .section-eyebrow,
  body main section.faq-section .section-eyebrow {
    color: #2f6fd8 !important;
    font-family: var(--sans) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: 0.2em !important;
  }

  /* h2 サイズ統一 28px */
  body main section.issues-section .section-heading h2 {
    font-size: 28px !important;
  }

  body main section.strengths-section .section-heading h2,
  body main section.service-section .section-heading h2,
  body main section.flow-section .section-heading h2,
  body main section.faq-section .section-heading h2,
  body main section.cases-section .section-heading h2 {
    font-size: 28px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
  }

  /* service の特大「3」: h2拡大に合わせ36pxへ */
  body main .service-section .section-heading h2 .line span {
    font-size: 36px !important;
  }

  /* flow スワッシュ: 見出し縮小に追従 */
  body main section.flow-section .section-heading h2::before {
    bottom: -13px !important;
    width: 184px !important;
    height: 21px !important;
  }
}

/* ---- Part D-2: PC ---- */
@media (min-width: 761px) {
  body main section.issues-section .section-heading h2,
  body main section.strengths-section .section-heading h2,
  body main section.cases-section .section-heading h2,
  body main section.service-section .section-heading h2,
  body main section.flow-section .section-heading h2,
  body main section.faq-section .section-heading h2,
  body main section.contact-section h2 {
    /* 1448pxで56px、狭いPC幅では比例縮小（固定56pxはserviceの1行見出しが溢れる） */
    font-size: clamp(34px, 3.87vw, 56px) !important;
    line-height: 1.22 !important;
  }
}

/* ---- Part D-3: Cases SP 見出しアート復元 ---- */
@media (max-width: 760px) {
  body main .cases-section .section-heading {
    min-height: 247px !important;
    padding-top: 11px !important;
  }

  body main .cases-section {
    padding-top: 6px !important;
  }

  body main .cases-section .section-heading::before {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 2 !important;
    display: block !important;
    width: 100% !important;
    height: 247px !important;
    content: "" !important;
    background: url("../img/cases-heading-art-sp.png") center top / 100% auto no-repeat !important;
    clip-path: none !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: none !important;
  }

  /* DOMテキストは意味構造として残し不可視化（旧承認方式） */
  body main .cases-section .section-heading .section-eyebrow {
    display: inline-block !important;
    margin: 0 !important;
    opacity: 0 !important;
  }

  body main .cases-section .section-heading .section-eyebrow::before,
  body main .cases-section .section-heading .section-eyebrow::after {
    display: none !important;
  }

  body main .cases-section .section-heading h2 {
    margin-top: 4px !important;
    opacity: 0 !important;
    transform: none !important;
  }

  body main .cases-section .section-heading::after,
  body main .cases-section .section-heading h2::before,
  body main .cases-section .section-heading h2::after {
    display: none !important;
  }

  /* リードはアート期の承認値へ */
  body main .cases-section .section-heading p:not(.section-eyebrow):not(.heading-small) {
    position: relative !important;
    z-index: 3 !important;
    width: min(100%, 304px) !important;
    margin-top: 38px !important;
    color: #303647 !important;
    font-family: var(--sans) !important;
    font-size: 11.4px !important;
    font-weight: 600 !important;
    line-height: 1.9 !important;
    letter-spacing: 0.055em !important;
  }

  /* CoverFlow v2 をアート見出しの下へ接続（カード天面 ~227 目標） */
  body main .case-shell {
    margin-top: -23px !important;
  }
}

/* ============================================================
   2026-07-03 PCリニューアル (pc-hero) — mockup-fv.png 忠実化
   統一トークン（余白・見出し/小見出しフォント）は維持。
   コラージュはモックネイティブから再抽出した hero-collage-pc-mock.png。
   ============================================================ */
@media (min-width: 761px) {
  /* ヘッダー: ナビ書体・間隔・CTAをモックへ */
  body .site-header {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }

  body .site-header .site-nav {
    gap: 34px !important;
  }

  body .site-header .site-nav a {
    color: #333d46 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
  }

  body .site-header .header-cta {
    height: 46px !important;
    padding: 0 26px !important;
    font-size: 14.5px !important;
    background: #004fa2 !important;
    border-radius: 999px !important;
    box-shadow: 0 6px 14px rgba(0, 62, 130, 0.22) !important;
  }

  /* コラージュ: モック再抽出版に差し替え（構図・手書きコピー・ハート・接続線が焼き込み） */
  body main .hero {
    overflow: hidden !important;
  }

  body main .hero-visual .hero-collage-cutout-pc {
    position: absolute !important;
    top: -31px !important;
    left: -59px !important;
    width: 736px !important;
    height: auto !important;
    max-width: none !important;
    content: url("../img/hero-collage-pc-mock.png") !important;
    transform: none !important;
  }

  /* featureカード: 淡青サークル + 紺グリフ（モック準拠） */
  body main .hero-features .feature-card .feature-icon {
    background: #e9f4fe !important;
    box-shadow: inset 0 0 0 1px rgba(178, 214, 246, 0.55) !important;
  }

  body main .hero-features .feature-card .feature-icon:not(.people-icon)::before {
    background: linear-gradient(135deg, #1e56b8, #2e7bd6) !important;
  }
}

/* 2026-07-03 PCリニューアル (pc-issues) — mockup-課題定義リニューアル版 忠実化 */
@media (min-width: 761px) {
  body main .issue-grid {
    row-gap: 21px !important;
    column-gap: 24px !important;
  }

  body main .issue-card img {
    width: 116px !important;
    height: auto !important;
    align-self: center !important;
    justify-self: center !important;
  }
}

/* 2026-07-03 PCリニューアル (pc-strengths) — mockup-choose.png 忠実化 */
@media (min-width: 761px) {
  body main .strengths-section .speech-bubble strong {
    background: linear-gradient(90deg, #1f6fd0 0%, #22b8b0 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: #1f6fd0 !important;
  }
}

/* 2026-07-03 PCリニューアル (pc-service) — mockup-service.png 忠実化 */
@media (min-width: 761px) {
  body main .service-copy h3 {
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
  }

}

/* 2026-07-03 PCリニューアル (pc-flow) — mockup-flow.png: step4タイトルは緑（青/緑交互） */
@media (min-width: 761px) {
  body main section.flow-section .flow-card:nth-of-type(4) h3 {
    color: #219ba0 !important;
    background: none !important;
    -webkit-text-fill-color: #219ba0 !important;
  }
}

/* 2026-07-03 PCリニューアル (pc-footer) — PDF末尾モック: ナビ列間の縦点線 */
@media (min-width: 761px) {
  body .site-footer .footer-nav > div {
    border-left: 1px dashed rgba(148, 175, 208, 0.5) !important;
    padding-left: 36px !important;
  }
}

/* 2026-07-03 PCリニューアル (pc-hero-refit) — 等倍再チェックによる是正:
   モックはコンテナ広め(1352)・タイトル552px・CTA高105。 */
@media (min-width: 761px) {
  body main .hero .container.hero-grid,
  body main .hero .container.hero-features {
    width: min(calc(100% - 96px), 1352px) !important;
    max-width: 1352px !important;
  }

  body main .hero {
    padding-top: 120px !important;
  }

  body main .hero-grid {
    grid-template-columns: 660px minmax(0, 1fr) !important;
  }

  body main .hero-title img {
    width: 552px !important;
    max-width: 100% !important;
  }

  body main .primary-cta {
    min-height: 104px !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  body main .primary-cta span:not(.cta-icon) {
    font-size: 26px !important;
  }

  body main .primary-cta small {
    font-size: 13.5px !important;
  }

  /* コラージュ絶対位置の再調整（コンテナ拡幅後、モック絶対座標 710,60 へ） */
  body main .hero-visual .hero-collage-cutout-pc {
    top: -60px !important;
    left: -110px !important;
  }

  /* featureカード幅・並び: モック実測 = 幅282・左詰め・×を挟んで間隔~35 */
  body main .hero-features {
    grid-template-columns: 282px 20px 282px 20px 282px !important;
    justify-content: flex-start !important;
    gap: 12px !important;
  }

  body main .hero-features .feature-card {
    width: 282px !important;
    flex: 0 0 282px !important;
    padding: 20px 22px !important;
  }

  body main .hero-features .feature-card .feature-icon {
    width: 62px !important;
    height: 62px !important;
  }

  body main .hero-features .feature-card h2 {
    font-size: 17.5px !important;
  }

  body main .hero-features .feature-card p {
    font-size: 13.5px !important;
    line-height: 1.5 !important;
  }

  body main .feature-cross {
    color: #7f9dc4 !important;
    font-size: 22px !important;
  }

  body main .feature-cross::before,
  body main .feature-cross::after {
    content: none !important;
  }
}

/* 2026-07-03 PCリニューアル (pc-cases-detail) — 種別ピルのアイコンをモックの▶へ */
@media (min-width: 761px) {
  body main .case-type.type-movie::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1.5' y='3' width='15' height='12' rx='2.6' fill='black'/%3E%3Cpath d='M7.5 6.4v5.2l4.6-2.6-4.6-2.6Z' fill='white'/%3E%3C/svg%3E") !important;
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1.5' y='3' width='15' height='12' rx='2.6' fill='black'/%3E%3Cpath d='M7.5 6.4v5.2l4.6-2.6-4.6-2.6Z' fill='white'/%3E%3C/svg%3E") !important;
  }
}

/* 2026-07-03 PCリニューアル (pc-cases-fix) — fan-wordのclip:textペイント破綻と
   カルーセル左端の中途切断を修正 */
@media (min-width: 761px) {
  /* clip:textはボーダーボックス内しか塗らない: 字形+回転分をpadding/負マージンで確保 */
  body main .cases-section .section-heading h2 .case-fan-word {
    line-height: 1.4 !important;
    padding: 0.14em 0.1em !important;
    margin: -0.14em -0.1em !important;
  }

  /* カルーセルをビューポート全幅ブリードに（モック準拠: 端のカードは画面端で切れる） */
  body main .case-track {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    /* +20px でカード1のセンタリング目標を正値にし、進行判定のタイを解消 */
    padding-left: calc(50vw - 50% + 20px) !important;
    padding-right: calc(901px + 50vw - 50%) !important;
    scroll-padding-left: 0 !important;
  }
}

/* 2026-07-03 (pc-service-3-fix + faq-cleanup)
   ・serviceの特大「3」のpadding+負マージン修正は、実機ChromeのGPUラスタで
     「3」の断片が行頭に漏れる副作用を生んだため撤去（後段の単色化レイヤーで根治）
   ・FAQ: 透かしロゴと「まずはお気軽にご相談ください」バンドを削除（ユーザー指示・モック優先しない） */

body main .faq-section .floating-logo,
body main .faq-section .faq-note {
  display: none !important;
}

/* 2026-07-03 (pc-cases-fanword-neutral) — モックでは「ファン化」に特別装飾なし。
   PCでは拡大・回転・独自グラデを全廃し、h2のclip:textグラデをそのまま通す。 */
@media (min-width: 761px) {
  body main .cases-section .section-heading h2 {
    background: #0c60cd !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
  }

  body main .cases-section .section-heading h2 .case-fan-word {
    display: inline !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 1em !important;
    line-height: inherit !important;
    background: none !important;
    -webkit-text-fill-color: transparent !important;
    transform: none !important;
  }
}

/* 2026-07-04 (pc-service-heading-solid) — service見出しの単色化・clip:text全廃。
   モック実測: 見出し全体（特大3含む）が単色 #0b62c3（左右色差なし・グラデなし）。
   従来のグラデclip:text + 「3」のinline-block/lh0.7/transform/負マージンの組み合わせは
   実機ChromeのGPUラスタで「3」の断片が行頭に描画される破綻を起こしていた。
   clip:textを使わなければペイントボックス問題は構造的に発生しない。 */
@media (min-width: 761px) {
  body main section.service-section .section-heading h2 {
    color: #0b62c3 !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentcolor !important;
  }

  body main section.service-section .section-heading h2 .line {
    color: inherit !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentcolor !important;
  }

  body main section.service-section .section-heading h2 .line span {
    padding: 0 !important;
    margin-inline: 2px 5px !important;
    color: inherit !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentcolor !important;
  }
}

/* 2026-07-04 (people-icon-fidelity) — flowノートのピル/アイコン寸法をモック実測へ
   (mockup-flow.png: ピル高118px・アイコン65px。従来96px/58px) */
@media (min-width: 761px) {
  body main section.flow-section .flow-note {
    padding-block: 26px !important;
  }

  body main section.flow-section .flow-note .people-icon {
    width: 65px !important;
    height: 65px !important;
  }
}

/* ==========================================================================
   2026-07-05 (client-fixes) — クライアント修正指示22点の反映レイヤー
   ========================================================================== */

/* ⑲ PCヘッダーロゴをCMOドクターへ（縦横比2.27、ヘッダー高に合わせ高さ基準で調整） */
@media (min-width: 761px) {
  body .site-header .site-brand .brand-logo-pc {
    width: 96px;
  }
}

/* ⑤ 「そんな時こそ、CMOドクター。」の強調強化（PC）
   6/24 SPモックの強調水準（そんな時こそ、の約1.48倍でCMOドクター。を独立行・グラデ）をPCへ */
@media (min-width: 761px) {
  body main .issues-section .issue-bottom h3 {
    color: #22539f !important;
  }

  body main .issues-section .issue-bottom h3 span {
    display: block !important;
    margin-top: 10px !important;
    font-size: 1.5em !important;
    letter-spacing: 0.05em !important;
    background: linear-gradient(90deg, #52b6f0 22%, #1155d7 66%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
  }

  /* バースト線: block化でright基準が使えないため中央基準で「。」右肩へ */
  body main .issues-section .issue-bottom h3 span::after {
    top: -6px !important;
    right: auto !important;
    left: calc(50% + 232px) !important;
    width: 58px !important;
    height: 40px !important;
  }
}

/* ⑥ 黄色マーカーの明瞭化（PC）: にじみブロブ→SPと同じ手描きストローク下線
   （線の直下が白場になり線引きが明瞭 = クライアント指示の意図） */
@media (min-width: 761px) {
  body main .issues-section .issue-bottom p strong {
    padding-bottom: 3px !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 196 9' fill='none'%3E%3Cpath d='M5 4c30 2.6 70 3.2 98 2.8 30-.4 62-1.5 88-3' stroke='%23fdf0a0' stroke-width='4.2' stroke-linecap='round'/%3E%3C/svg%3E") center bottom / 100% 9px no-repeat !important;
  }

  body main .issues-section .issue-bottom p strong::after {
    content: none !important;
  }
}

/* ㉑ ヒーロー/コンタクトCTAの浮遊マイクロインタラクション
   （クライアント: 動きのある浮かせたボタン・存在を出して押したくなる設計。
     ヘッダーCTAの既存 cta-float / cta-sheen を再利用、hoverは300ms以内） */
body main .primary-cta,
body main .orange-cta {
  position: relative;
  overflow: hidden;
  animation: cta-float 4.6s ease-in-out infinite;
  transition: box-shadow 0.22s ease, filter 0.22s ease;
  will-change: transform;
}

body main .orange-cta {
  animation-delay: -1.6s;
}

body main .primary-cta::after,
body main .orange-cta::after {
  position: absolute;
  top: -40%;
  bottom: -40%;
  left: -44%;
  width: 34%;
  content: "";
  pointer-events: none;
  background: linear-gradient(105deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.34) 50%, rgba(255, 255, 255, 0) 100%);
  transform: skewX(-18deg);
  animation: cta-sheen 4.8s ease-in-out infinite;
}

body main .orange-cta::after {
  animation-delay: -1.6s;
}

body main .primary-cta:hover {
  box-shadow: 0 26px 48px rgba(1, 117, 191, 0.36);
  filter: brightness(1.04);
}

body main .orange-cta:hover {
  box-shadow: 0 24px 44px rgba(244, 90, 0, 0.34);
  filter: brightness(1.04);
}

@media (prefers-reduced-motion: reduce) {
  body main .primary-cta,
  body main .orange-cta,
  body main .primary-cta::after,
  body main .orange-cta::after,
  body .site-header .header-cta,
  body .site-header .header-cta::after {
    animation: none !important;
  }
}

/* ⑩ cases見出し→リード間隔をモックへ（mockup-testmonual実測58px、従来34px） */
@media (min-width: 761px) {
  body main .cases-section .section-heading > p:not(.section-eyebrow) {
    margin-top: 58px !important;
  }
}

/* ⑫ service下段カードをモックの色味へ:
   カードの放射ウォッシュ廃止(モックはフラット白)、タグは白地+色枠+色文字
   （モック実測: 左 #52a7a7 / 地 #e9f7f8、右 #627dcc / 地 #eceffb） */
@media (min-width: 761px) {
  body main .service-mini {
    background-color: rgba(255, 255, 255, 0.96) !important;
    background-image: none !important;
  }

  body main .service-mini:nth-child(1) .pill-row span,
  body main .service-mini:nth-child(2) .pill-row span {
    color: #3d9a9a !important;
    background: #f4fbfb !important;
    border: 1.5px solid #7dc4c2 !important;
  }

  body main .service-mini:nth-child(2) .pill-row span {
    color: #5a74ca !important;
    background: #f5f7fd !important;
    border-color: #98a7e0 !important;
  }
}

/* ⑭ flowカード見出しの中間幅はみ出し防止:
   1120〜1330pxでカード幅(184px〜)より見出し「戦略設計・ご提案」(200px@24px)が広い
   → vw連動で縮小（1448pxで24px、下限16px。1100px以下は縦積みレイアウトで24px安全） */
@media (min-width: 1101px) {
  body main .flow-card h3 {
    font-size: clamp(16px, 2.425vw - 11.12px, 24px) !important;
  }
}

/* strengths見出しスワッシュとカードの被り修正（ユーザー指摘 2026-07-05）
   mockup-choose実測: h2下端→カード(傾き角)上端 = 87px。従来44px(実効6px)で
   スワッシュ(h2::before, 下へ44px)が初回カードに食い込んでいた */
@media (min-width: 761px) {
  body main .strengths-section .section-heading {
    /* 111px(モック実測87pxギャップ)はディスクリプションなしの本実装では間延び
       → スワッシュ下クリアランス〜22pxに詰める(ユーザー調整) */
    margin-bottom: 90px !important;
  }
}

/* CTAセクション上下余白の是正（ユーザー指摘 2026-07-05）
   PDFモック実測: FAQ末尾→CTAブロブ上端 ≈ 91px / CTA下端→フッター先頭 ≈ 91px の対称。
   従来は 44px / 56px と狭く非対称（インク基準150の統一測定では
   パネルの淡いエッジがインク扱いされず見た目のズレを検出できなかった） */
@media (min-width: 761px) {
  body main section.contact-section {
    padding-top: 63px !important;
    padding-bottom: 59px !important;
  }
}

/* ==========================================================================
   2026-07-08 (sp-typo) — SPタイポグラフィ是正レイヤー
   クライアント指示「行間字間がぎゅうぎゅう・文字が小さい・同じ要素でサイズ違い」
   への裁量対応。SPモック実測値より可読性を優先（クライアント承認済みの乖離）。
   新スケール: 本文/リード13px・カード内説明12.5px・注記11px・タグ10.5px・eyebrow11px
   ========================================================================== */
@media (max-width: 760px) {
  /* ---- eyebrow: 全セクション11pxに統一（flow=11に他を合わせ底上げ） ---- */
  body main section.issues-section .section-heading .section-eyebrow,
  body main section.strengths-section .section-heading .section-eyebrow,
  body main section.cases-section .section-heading .section-eyebrow,
  body main section.service-section .section-heading .section-eyebrow,
  body main section.flow-section .section-heading .section-eyebrow,
  body main section.faq-section .section-heading .section-eyebrow,
  body main section.contact-section .section-eyebrow {
    font-size: 11px !important;
  }

  /* ---- 見出し下リード: 13px lh1.8 に統一 ---- */
  body main section.cases-section .section-heading > p:not(.section-eyebrow):not(.heading-small),
  body main section.service-section .section-heading > p:not(.section-eyebrow):not(.heading-small),
  body main section.flow-section .section-heading > p:not(.section-eyebrow):not(.heading-small),
  body main section.faq-section .section-heading > p:not(.section-eyebrow):not(.heading-small) {
    font-size: 13px !important;
    line-height: 1.8 !important;
  }

  body main section.issues-section .section-heading .issue-lead {
    font-size: 13px !important;
    line-height: 1.85 !important;
  }

  /* ---- hero ---- */
  body main .hero p.hero-text,
  body main .hero p.hero-text .hero-text-line {
    font-size: 12px !important;
    line-height: 1.85 !important;
  }

  body main .hero-features .feature-card h2 {
    font-size: 12px !important;
    text-wrap: balance;
  }

  body main .hero-features .feature-card p {
    font-size: 10.5px !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;
    text-wrap: pretty;
  }

  body main .hero .free-note {
    font-size: 12px !important;
  }

  /* ---- issues: カード本文 ---- */
  body main section.issues-section .issue-card p {
    font-size: 12.5px !important;
    line-height: 1.7 !important;
  }

  /* ---- strengths: カード ---- */
  body main section.strengths-section .strength-card h3 {
    font-size: 16px !important;
    line-height: 1.55 !important;
  }

  body main section.strengths-section .strength-card p {
    font-size: 12.5px !important;
    line-height: 1.7 !important;
  }

  /* ---- cases: カード内（192px幅制約内で最大化） ---- */
  body main section.cases-section .case-card > p:not(.case-type) {
    font-size: 11.5px !important;
    line-height: 1.6 !important;
  }

  body main section.cases-section .case-card .case-type {
    font-size: 10.5px !important;
    line-height: 1.35 !important;
  }

  body main section.cases-section .case-card .tag-row span {
    font-size: 10px !important;
    line-height: 1.3 !important;
  }

  /* ---- service ---- */
  /* h2を他セクションと同一の28pxへ（19.5px化していた.lineを同格+後勝ちで上書き） */
  body main section.service-section .section-heading h2 .line {
    font-size: 28px !important;
    line-height: 1.4 !important;
  }

  body main section.service-section .service-tab > p {
    font-size: 10px !important;
  }

  body main section.service-section .service-copy > p {
    font-size: 12.5px !important;
    line-height: 1.7 !important;
    text-wrap: pretty;
  }

  body main section.service-section .service-mini .large-num {
    font-size: 22px !important;
  }

  body main section.service-section .service-mini-copy h3 {
    font-size: 15px !important;
  }

  /* ---- flow ---- */
  body main section.flow-section .flow-card .flow-desc-sp {
    font-size: 11px !important;
    line-height: 1.75 !important;
    text-wrap: pretty;
  }

  /* 11px化で固定brが不自然な位置になる長文カード(03/05)は自然折返しに */
  body main section.flow-section .flow-card:nth-of-type(3) .flow-desc-sp br,
  body main section.flow-section .flow-card:nth-of-type(5) .flow-desc-sp br {
    display: none;
  }

  body main section.flow-section .flow-note .note-copy {
    font-size: 12px !important;
  }

  body main section.flow-section .flow-note .note-copy small {
    font-size: 10.5px !important;
    line-height: 1.6 !important;
  }

  /* ---- faq ---- */
  body main section.faq-section .faq-item .faq-a p,
  body main section.faq-section .faq-item > p {
    font-size: 12.5px !important;
    line-height: 1.75 !important;
  }

  /* ---- contact ---- */
  body main section.contact-section .contact-copy p {
    font-size: 12.5px !important;
    line-height: 1.7 !important;
  }

  /* ---- footer ---- */
  body .site-footer .footer-brand p {
    font-size: 12px !important;
    line-height: 1.8 !important;
  }

  body .site-footer > .copyright.copyright {
    font-size: 11px !important;
  }
}

/* sp-typo余波: strengthsカード本文増でstrengths→cases境界インクギャップが49pxに縮小 → 56へ戻す */
@media (max-width: 760px) {
  body main section.strengths-section {
    padding-bottom: 8px !important;
  }
}

/* ========================================================================== 
   2026-07-16 additional client fixes (PC visual layer)
   ========================================================================== */
@media (min-width: 761px) {
  /* Emphasize only the requested word while preserving the existing marker. */
  body main .issues-section .section-heading h2 .wall-word {
    color: #dc3f4d !important;
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: #dc3f4d !important;
  }

  /* Increase depth and saturation without changing the approved type scale. */
  body main .issues-section .issue-bottom h3 span {
    background: linear-gradient(90deg, #0b6bc9 18%, #0754b8 58%, #073f93 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
  }
}

/* ========================================================================== 
   2026-08-06 client revisions (PC only)
   - Corporate TOP typography
   - FV message hierarchy and supplied client logos
   - Equal three-column service comparison while retaining the upper tabs
   ========================================================================== */
.feature-title-pc,
.logo-track-clients,
.service-compare-panel {
  display: none;
}

.feature-title-sp {
  display: inline;
}

@keyframes client-logo-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(calc(-50% - (var(--logo-set-gap) / 2)), 0, 0);
  }
}

@media (min-width: 761px) {
  /* The corporate site uses Noto Sans JP (400 / 500 / 700). */
  html body.lp-font-top .site-header *,
  html body.lp-font-top main section *,
  html body.lp-font-top .site-footer * {
    font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif !important;
  }

  /* FV: remove the requested supporting copy and rebalance around Fan-ka. */
  body main .hero .hero-text {
    display: none !important;
  }

  body main .hero .hero-grid {
    grid-template-columns: minmax(560px, 0.94fr) minmax(630px, 1.06fr) !important;
    gap: clamp(34px, 3.2vw, 52px) !important;
  }

  body main .hero .hero-copy {
    padding-top: 4px !important;
  }

  body main .hero .hero-kicker {
    margin-bottom: 12px !important;
  }

  body main .hero .hero-title {
    margin-bottom: -28px !important;
  }

  body main .hero .hero-title img {
    width: min(680px, 100%) !important;
  }

  body main .hero .hero-lead {
    margin-top: 13px !important;
    margin-bottom: 30px !important;
    font-size: clamp(29px, 2.05vw, 33px) !important;
    line-height: 1.5 !important;
    letter-spacing: 0.045em !important;
  }

  body main .hero .primary-cta {
    margin-top: 0 !important;
  }

  body main .hero .free-note {
    margin-top: 14px !important;
  }

  body main .hero .hero-features {
    justify-content: center !important;
    width: min(calc(100% - 96px), 1010px) !important;
    margin-left: max(72px, calc((100% - 1480px) / 2)) !important;
  }

  .feature-title-pc {
    display: inline;
  }

  .feature-title-sp {
    display: none;
  }

  body main .hero .feature-card h2 {
    font-size: 16px !important;
    letter-spacing: 0.035em !important;
  }

  /* The supplied logos are rendered individually, not as a flattened tile. */
  body main .clients .logo-track-legacy {
    display: none !important;
  }

  body main .clients .logo-track-clients {
    --logo-set-gap: 30px;
    display: flex !important;
    gap: var(--logo-set-gap) !important;
    width: max-content !important;
    padding: 9px 0 !important;
    animation: client-logo-scroll 34s linear infinite !important;
    will-change: transform;
  }

  body main .clients .logo-set {
    display: flex;
    flex: 0 0 auto;
    align-items: stretch;
    gap: 18px;
  }

  body main .clients .client-logo {
    display: grid;
    flex: 0 0 176px;
    width: 176px;
    height: 76px;
    margin: 0;
    padding: 9px 18px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.98);
    border-right: 1px solid rgba(184, 219, 241, 0.7);
    place-items: center;
  }

  body main .clients .client-logo img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 142px !important;
    max-height: 56px !important;
    object-fit: contain;
    border-radius: 0 !important;
    filter: none !important;
  }

  /* New comparison panel. The original large + mini cards remain SP-only. */
  body main .service-section .service-main,
  body main .service-section .service-subgrid {
    display: none !important;
  }

  body main section.service-section {
    padding-top: 58px !important;
  }

  body main .service-section .section-heading {
    margin-bottom: 24px !important;
  }

  body main .service-section .section-eyebrow {
    line-height: 1.4 !important;
  }

  body main .service-section .section-heading h2 {
    font-size: clamp(42px, 3.6vw, 54px) !important;
    line-height: 1.15 !important;
  }

  body main .service-section .section-heading h2 span span {
    font-size: 1.48em !important;
    line-height: 0.72 !important;
  }

  body main .service-section .section-heading > p:not(.section-eyebrow):not(.heading-small) {
    font-size: 14px !important;
    line-height: 1.6 !important;
  }

  body main .service-section .service-tabs {
    width: min(calc(100% - 60px), 1158px) !important;
    align-items: stretch !important;
    gap: 0 !important;
  }

  body main .service-section .service-tab {
    width: calc(100% - 30px) !important;
    justify-self: center;
    min-height: 112px !important;
    height: 112px !important;
    padding-top: 13px !important;
    padding-bottom: 12px !important;
    transform: none !important;
  }

  body main .service-section .service-tab.is-active {
    min-height: 112px !important;
    height: 112px !important;
    transform: none !important;
  }

  body main .service-section .service-tab:hover,
  body main .service-section .service-tab.is-active:hover {
    transform: none !important;
  }

  body main .service-section .service-tab::after {
    top: calc(100% - 4px) !important;
    width: 34px !important;
    height: 22px !important;
    background: #0da4ca !important;
    filter: none !important;
  }

  body main .service-section .service-tab h3 {
    font-size: 26px !important;
    white-space: nowrap;
  }

  body main .service-section .service-compare-panel {
    position: relative;
    z-index: 3;
    display: block;
    width: min(100%, 1220px);
    min-height: 480px;
    margin: -1px auto 0;
    padding: 34px 30px 28px;
    overflow: hidden;
    background:
      radial-gradient(circle at 14% 18%, rgba(231, 249, 255, 0.68), transparent 24%),
      radial-gradient(circle at 83% 82%, rgba(229, 250, 247, 0.55), transparent 26%),
      linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(251, 254, 255, 0.96));
    border: 1px solid rgba(146, 216, 250, 0.95);
    border-radius: 28px;
    box-shadow: 0 28px 70px rgba(54, 123, 188, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.96);
  }

  body main .service-section .service-compare-panel::before {
    position: absolute;
    inset: 9px;
    pointer-events: none;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.82);
    border-radius: 21px;
  }

  body main .service-section .service-compare-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }

  body main .service-section .service-compare-card {
    --compare-accent: #087bd2;
    --compare-deep: #0059bf;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 64px 72px 90px 76px 176px;
    align-content: start;
    min-width: 0;
    min-height: 478px;
    padding: 4px clamp(22px, 2.25vw, 34px) 0;
    color: #172033;
    transition: background-color 0.22s ease, box-shadow 0.22s ease;
  }

  body main .service-section .service-compare-card + .service-compare-card {
    border-left: 2px dotted rgba(94, 181, 228, 0.44);
  }

  body main .service-section .service-compare-card.is-selected {
    background: radial-gradient(circle at 50% 5%, color-mix(in srgb, var(--compare-accent) 7%, transparent), transparent 42%);
  }

  body main .service-section .service-compare-green {
    --compare-accent: #14b7ac;
    --compare-deep: #078b99;
  }

  body main .service-section .service-compare-purple {
    --compare-accent: #647fda;
    --compare-deep: #315fbf;
  }

  body main .service-section .service-compare-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    min-width: 0;
    height: 100%;
    min-height: 0;
    margin: 0;
    text-align: left;
  }

  body main .service-section .service-compare-header > div {
    min-width: 0;
  }

  body main .service-section .service-compare-num {
    display: inline-grid;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    color: var(--compare-deep);
    font-size: 19px;
    font-weight: 700;
    line-height: 1;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid color-mix(in srgb, var(--compare-accent) 38%, white);
    border-radius: 50%;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--compare-accent) 15%, transparent), inset 0 0 0 5px rgba(255, 255, 255, 0.52);
    place-items: center;
  }

  body main .service-section .service-compare-header h3 {
    margin: 0;
    color: #172033;
    font-size: clamp(22px, 1.65vw, 27px);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.055em;
  }

  body main .service-section .service-compare-header p {
    margin: 3px 0 0;
    color: var(--compare-deep);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.03em;
  }

  body main .service-section .service-compare-card h4 {
    display: block;
    align-self: center;
    justify-self: stretch;
    width: 100%;
    margin: 0;
    padding: 0 0 12px;
    color: #172033;
    font-size: clamp(21px, 1.65vw, 24px);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.045em;
    text-align: center;
    border-bottom: 2px dotted color-mix(in srgb, var(--compare-accent) 58%, white);
    white-space: nowrap;
  }

  body main .service-section .service-compare-card h4 span {
    color: var(--compare-accent);
  }

  body main .service-section .service-compare-desc {
    align-self: start;
    margin: 0;
    padding-top: 13px;
    color: #253247;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.84;
    letter-spacing: 0.025em;
    text-align: left;
    text-wrap: pretty;
  }

  body main .service-section .service-compare-tags {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, 32px);
    align-content: center;
    gap: 8px 10px;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  body main .service-section .service-compare-tags li {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    gap: 7px;
    min-height: 32px;
    padding: 5px 10px;
    color: var(--compare-deep);
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.01em;
    white-space: nowrap;
    background: color-mix(in srgb, var(--compare-accent) 6%, white);
    border: 1px solid color-mix(in srgb, var(--compare-accent) 28%, white);
    border-radius: 999px;
    box-shadow: 0 7px 14px color-mix(in srgb, var(--compare-accent) 7%, transparent);
  }

  body main .service-section .service-compare-tags li::before {
    position: static;
    flex: 0 0 5px;
    width: 5px;
    height: 5px;
    content: "";
    background: var(--compare-accent);
    border-radius: 50%;
  }

  body main .service-section .service-compare-visual {
    display: grid;
    align-self: end;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0 0 10px;
    overflow: hidden;
    place-items: end center;
  }

  body main .service-section .service-compare-visual img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    object-fit: contain;
    object-position: center bottom;
    filter: drop-shadow(0 9px 15px rgba(0, 91, 188, 0.07));
  }

  body main .service-section .service-compare-blue .service-compare-visual img {
    max-width: 305px;
  }

  body main .service-section .service-compare-green .service-compare-visual img {
    max-width: 295px;
  }

  body main .service-section .service-compare-purple .service-compare-visual img {
    max-width: 290px;
  }

  /* Keep the tab notch above the comparison panel at every active position. */
  body main .service-section .service-tabs,
  body main .service-section .service-tab,
  body main .service-section .service-tab::after {
    z-index: 5;
  }
}

@media (min-width: 761px) and (max-width: 1150px) {
  body main .service-section .container {
    width: min(calc(100% - 28px), 1080px) !important;
  }

  body main .service-section .service-tabs {
    width: calc(100% - 28px) !important;
    gap: 0 !important;
  }

  body main .service-section .service-tab {
    width: calc(100% - 10px) !important;
    grid-template-columns: auto minmax(0, auto) !important;
    column-gap: 9px !important;
    min-height: 104px !important;
    height: 104px !important;
    padding-inline: 10px !important;
  }

  body main .service-section .service-tab.is-active {
    min-height: 104px !important;
    height: 104px !important;
  }

  body main .service-section .service-tab-num,
  body main .service-section .service-tab.is-active .service-tab-num {
    width: 48px !important;
    height: 48px !important;
    font-size: 20px !important;
  }

  body main .service-section .service-tab h3 {
    font-size: clamp(19px, 2.35vw, 24px) !important;
    line-height: 1.28 !important;
  }

  body main .service-section .service-tab p {
    font-size: 11px !important;
  }

  body main .service-section .service-compare-panel {
    min-height: 454px;
    padding: 26px 14px 22px;
  }

  body main .service-section .service-compare-card {
    grid-template-rows: 56px 70px 102px 72px 150px;
    min-height: 450px;
    padding-inline: clamp(12px, 1.7vw, 20px);
  }

  body main .service-section .service-compare-header {
    gap: 8px;
    min-height: 0;
    margin: 0;
  }

  body main .service-section .service-compare-num {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
    font-size: 17px;
  }

  body main .service-section .service-compare-header h3 {
    font-size: clamp(18px, 2.2vw, 23px);
  }

  body main .service-section .service-compare-header p {
    font-size: 10px;
  }

  body main .service-section .service-compare-card h4 {
    min-height: 0;
    margin: 0;
    padding-bottom: 9px;
    font-size: clamp(17px, 2vw, 21px);
    line-height: 1.46;
    white-space: normal;
  }

  body main .service-section .service-compare-desc {
    margin: 0;
    padding-top: 11px;
    font-size: 11px;
    line-height: 1.72;
  }

  body main .service-section .service-compare-tags {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, 29px);
    gap: 6px;
    margin: 0;
  }

  body main .service-section .service-compare-tags li {
    min-height: 29px;
    padding: 4px 7px;
    font-size: 10px;
  }

  body main .service-section .service-compare-tags li::before {
    flex-basis: 4px;
    width: 4px;
    height: 4px;
  }

  body main .service-section .service-compare-visual {
    height: 148px;
    padding-bottom: 6px;
  }
}

/* Final client feedback: distinguish the closing emphasis on all screens. */
body main section.issues-section .issue-bottom h3 > span {
  background-image: linear-gradient(105deg, #d98200 0%, #f46d00 28%, #f4471d 58%, #d72f58 100%) !important;
  /* Keep the color transition across the lettering even in the wide PC box. */
  background-size: 8em 100% !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  filter: drop-shadow(0 2px 2px rgba(169, 53, 24, 0.14));
}

body main section.issues-section .issue-bottom h3 > span::after {
  content: none !important;
}
