@charset "UTF-8";

/* ------------------------------------------------------------------
   Mobile stylesheet (TOP page)
   Breakpoint: max-width 767px
   Loaded after style.css — base resets apply at all widths where noted.
   ------------------------------------------------------------------ */

.l-header__menu {
  display: none;
}

@media (max-width: 767px) {
  :root {
    --content-padding: 20px;
    --site-inset: 20px;
    --site-inset-wide: 20px;
    --header-height: 60px;
  }

  /* ----------------------------------------------------------------
     Common / utilities
     ---------------------------------------------------------------- */
  .c-section-title {
    color: var(--blue, #134E82);
    font-size: 20px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.4px;
    text-align: center;
  }

  .c-section-title--strengths {
    white-space: normal;
  }

  .c-section-title--strengths .c-section-title__num {
    font-size: 28px;
    letter-spacing: 1.68px;
  }

  .c-section-header__subtitle {
    color: #23629A;
    font-size: 13px;
    font-weight: 800;
    line-height: 100%;
    letter-spacing: 0.2px;
    text-align: center;
  }

  .c-section-header__subtitle::before,
  .c-section-header__subtitle::after {
    width: 20px;
    height: 1px;
  }

  .c-btn--lg {
    width: 260px;
    max-width: 100%;
    box-sizing: border-box;
    height: 56px;
    min-height: 56px;
    max-height: none;
    padding: 12px 20px;
    font-size: 14px;
    line-height: 1;
  }

  .c-btn--blue,
  .c-btn--sm.c-btn {
    width: 260px;
    max-width: 100%;
    box-sizing: border-box;
    height: 56px;
    min-height: 56px;
    max-height: none;
    padding: 12px 20px;
    font-size: 14px;
    line-height: 1;
  }

  .c-btn-note {
    margin-top: 8px;
    color: #444;
    font-size: 12px;
    font-weight: 500;
    line-height: 100%;
  }

  /* ----------------------------------------------------------------
     Header + mobile nav overlay
     ---------------------------------------------------------------- */
  .l-header__inner {
    height: var(--header-height);
    padding: 10px 20px 10px 19px;
  }

  .l-header__logo {
    width: 110px;
  }

  .l-header__menu {
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 10006;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    opacity: 1 !important;
    visibility: visible !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .l-header__menu-icon,
  .l-header__menu-x {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: 0;
    transition:
      opacity 0.22s ease,
      transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
      visibility 0.22s ease;
  }

  .l-header__menu-icon {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 5px;
    width: 24px;
    height: auto;
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1);
  }

  .l-header__menu-line {
    position: static !important;
    top: auto !important;
    left: auto !important;
    display: block !important;
    flex-shrink: 0;
    width: 24px;
    height: 2px !important;
    margin: 0 !important;
    border-radius: 2px;
    background: #134e82 !important;
    transform: none !important;
  }

  .l-header__menu-line:nth-child(1) {
    width: 24px !important;
  }

  .l-header__menu-line:nth-child(2) {
    width: 18px !important;
  }

  .l-header__menu-line:nth-child(3) {
    width: 12px !important;
  }

  .l-header__menu-x {
    display: block;
    color: #134e82;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 36px;
    font-weight: 400;
    line-height: 1;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(0.75);
  }

  .l-header {
    transition: none;
  }

  body.is-nav-open .l-header,
  body.is-nav-closing .l-header {
    z-index: 10005 !important;
    background-color: #fff !important;
    background: #fff !important;
    touch-action: manipulation;
  }

  body.is-nav-open .l-header__menu-icon,
  body.is-nav-closing .l-header__menu-icon {
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, -50%) scale(0.75);
  }

  body.is-nav-open .l-header__menu-x,
  body.is-nav-closing .l-header__menu-x {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1);
  }

  /* 枠（動かさない・ここでクリップ。青のはみ出し残りを防ぐ） */
  .l-header__nav {
    display: none;
    position: fixed;
    top: var(--header-height, 60px);
    left: 0;
    z-index: 10000;
    width: 100%;
    height: calc(var(--nav-vh, 100svh) - var(--header-height, 60px));
    max-height: calc(var(--nav-vh, 100svh) - var(--header-height, 60px));
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: transparent;
    visibility: hidden;
    pointer-events: none;
    transform: none;
    -webkit-transform: none;
  }

  /* 実際にスライドする青い面 */
  .l-header__nav-sheet {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 40px 20px;
    padding-top: calc(40px + env(safe-area-inset-top, 0px));
    padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px));
    background: var(--blue2);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translate3d(0, -100%, 0);
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .l-header__nav-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 36px;
    width: 260px;
    max-width: 100%;
    margin-top: 10px;
  }

  .l-header__nav-links {
    display: flex;
    flex-direction: column;
    gap: 22px;
    width: 100%;
  }

  .l-header__nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 4px;
    border-bottom: 1px solid #6da6d9;
    color: var(--white);
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: 0.56px;
  }

  .l-header__nav-link[aria-current="page"] {
    color: var(--white);
  }

  .l-header__nav-link[aria-current="page"] .l-header__nav-en {
    color: #6da6d9;
  }

  .l-header__nav-label {
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  }

  .l-header__nav-en {
    display: block;
    color: #6da6d9;
    font-family: Mulish, sans-serif;
    font-size: 14px;
    font-style: italic;
    font-weight: 800;
    line-height: 22px;
  }

  .l-header__nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 260px;
    max-width: 100%;
    box-sizing: border-box;
    height: 56px;
    min-height: 56px;
    margin: 0;
    padding: 12px 18px;
    border-radius: 6px;
    background: var(--orange);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
    color: var(--white);
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.56px;
    line-height: 1;
    text-decoration: none;
  }

  .l-header__nav-cta img {
    width: 16px;
    height: 16px;
  }

  .l-header__nav-brand {
    display: block;
    margin: 0;
    color: var(--white);
    font-family: Mulish, sans-serif;
    font-size: 36px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.72px;
  }

  html.is-nav-locked,
  html.is-nav-locked body,
  body.is-nav-locked {
    overflow: hidden;
    overscroll-behavior: none;
  }

  /* iOS のラバーバンドで青が残らないよう、根の背景を固定 */
  html.is-nav-locked {
    background-color: #fff;
  }

  /* マウント中のみ枠を表示（ヘッダー領域はタップを通す） */
  body.is-nav-mounted .l-header__nav {
    display: block;
    visibility: visible;
    pointer-events: none;
  }

  body.is-nav-mounted .l-header__nav-sheet {
    pointer-events: auto;
  }

  /* 開く: 上から降りてくる / 閉じる: 上へ戻る */
  body.is-nav-mounted.is-nav-open .l-header__nav-sheet {
    transform: translate3d(0, 0, 0);
  }

  body.is-nav-mounted.is-nav-closing .l-header__nav-sheet {
    transform: translate3d(0, -100%, 0);
  }

  /* ----------------------------------------------------------------
     Hero — FV1 (label + title + photo) / FV2 (catch, flow, stats, CTA)
     ---------------------------------------------------------------- */
  .p-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }

  .p-hero__bg-wrap {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 548px;
    z-index: 0;
    overflow: hidden;
    /* SPは楕円マスクなし（狭い幅だと円形に見えるため） */
    -webkit-mask-image: none !important;
    mask-image: none !important;
    -webkit-mask: none !important;
    mask: none !important;
    border-radius: 0;
  }

  .p-hero__bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
    border-radius: 0;
    opacity: 0.8;
    filter: blur(0.7px);
  }

  .p-hero__content {
    display: contents;
  }

  .p-hero__content-group--head {
    order: 1;
    position: relative;
    z-index: 2;
    box-sizing: border-box;
    padding: 36px 18px 0;
  }

  .p-hero__visual {
    display: contents;
  }

  .p-hero__composite {
    display: none !important;
  }

  .p-hero__photo-picture {
    order: 2;
    position: relative;
    z-index: 2;
    align-self: center;
    display: block;
    width: min(360px, calc(100% - 30px));
    aspect-ratio: 1 / 1;
    height: auto;
    margin: -12px auto 0;
    left: 10px;
    overflow: hidden;
  }

  .p-hero__photo-picture .p-hero__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    margin: 0;
    object-fit: cover;
    object-position: center bottom;
    opacity: 1;
  }

  .p-hero__shape {
    order: 3;
    position: relative;
    right: auto;
    bottom: auto;
    z-index: 2;
    display: flex;
    justify-content: center;
    width: 100%;
    height: auto;
    margin-top: 40px;
    padding-inline: 20px;
    box-sizing: border-box;
  }

  .p-hero__shape-bg {
    display: none;
  }

  .p-hero__tagline {
    display: inline-block;
    position: static;
    width: auto;
    margin: 0;
    transform: rotate(-6deg);
    color: var(--blue2);
    font-family: "Oooh Baby", cursive;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 2px;
    text-align: center;
    white-space: nowrap;
  }

  .p-hero__content-group--body {
    display: contents;
  }

  .p-hero__label {
    font-size: 15px;
    letter-spacing: 0.3px;
    line-height: 1.4;
    padding-bottom: 4px;
  }

  .p-hero__title {
    gap: 8px;
    margin-top: 16px;
    font-size: 32px;
    line-height: 100%;
  }

  .p-hero__title-sm {
    font-size: 26px;
  }

  .p-hero__title-line:first-child .ls-728 {
    letter-spacing: -4.48px;
  }

  .p-hero__title-line:first-child .ls-1404 {
    letter-spacing: -8.64px;
  }

  .p-hero__title-line:first-child .ls-572 {
    letter-spacing: -4.16px;
  }

  .p-hero__title-line:first-child .ls-1728 {
    letter-spacing: -12.48px;
  }

  .p-hero__title-line:first-child .ls-260 {
    letter-spacing: -1.6px;
  }

  .p-hero__title-line:first-child .ls-312 {
    letter-spacing: -2.24px;
  }

  .p-hero__title-accent {
    font-size: 36px;
  }

  .p-hero__catch {
    order: 4;
    position: relative;
    z-index: 2;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    justify-content: center;
    margin-top: 0;
    padding: 20px 20px 0;
  }

  .p-hero__catch-row {
    display: flex;
    align-items: flex-end;
    gap: 1px;
  }

  .p-hero__catch-prefix,
  .p-hero__catch-suffix,
  .p-hero__catch-line2 {
    font-size: 26px;
    line-height: 100%;
  }

  .p-hero__catch .ls-090 {
    letter-spacing: -0.78px;
  }

  .p-hero__catch .ls-060 {
    letter-spacing: -0.52px;
  }

  .p-hero__catch .ls-120 {
    letter-spacing: -1.04px;
  }

  .p-hero__catch .ls-1248 {
    letter-spacing: -12.48px;
  }

  .p-hero__catch .ls-360 {
    letter-spacing: -3.12px;
  }

  .p-hero__catch .ls-330 {
    letter-spacing: -2.86px;
  }

  .p-hero__catch-design {
    display: block;
    width: auto;
    height: 34px;
  }

  .p-hero__lead {
    order: 5;
    position: relative;
    z-index: 2;
    margin-top: 12px;
    padding-inline: 19px;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
    color: #444;
    font-weight: 500;
    letter-spacing: -0.28px;
  }

  .p-hero__lead-line {
    display: block;
  }

  .p-hero__lead .ls-238 {
    letter-spacing: -2.38px;
  }

  .p-hero__lead .ls-280 {
    letter-spacing: -2.8px;
  }

  .p-hero__lead .ls-112 {
    letter-spacing: -1.12px;
  }

  .p-hero__lead .ls-098 {
    letter-spacing: -0.98px;
  }

  .p-hero__lead .ls-322 {
    letter-spacing: -3.22px;
  }

  .p-hero__lead .ls-224 {
    letter-spacing: -2.24px;
  }

  .p-hero__lead .ls-140 {
    letter-spacing: -1.4px;
  }

  .p-hero__lead .ls-420 {
    letter-spacing: -4.2px;
  }

  .p-hero__lead .ls-252 {
    letter-spacing: -2.52px;
  }

  .p-hero__lead .ls-126 {
    letter-spacing: -1.26px;
  }

  .p-hero__lead .ls-196 {
    letter-spacing: -1.96px;
  }

  .p-hero__lead .ls-070 {
    letter-spacing: -0.7px;
  }

  .p-hero__flow {
    order: 6;
    position: relative;
    right: auto;
    bottom: auto;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 10px;
    width: 100%;
    max-width: 310px;
    margin: 10px auto 20px;
    box-sizing: border-box;
  }

  .p-hero__flow-item {
    flex: 0 0 auto;
    flex-shrink: 0;
    gap: 6px;
    color: #444;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.56px;
    white-space: nowrap;
    text-align: center;
  }

  .p-hero__flow-icon-bg,
  .p-hero__flow-icon-mark,
  .p-hero__flow-icon-pc,
  .p-hero__flow-arrow--pc {
    display: none;
  }

  .p-hero__flow-icon,
  .p-hero__flow-icon-sp {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
  }

  .p-hero__flow-icon-sp {
    display: block;
    object-fit: contain;
  }

  .p-hero__flow-icon .p-hero__flow-icon-sp {
    position: static;
    inset: auto;
    margin: 0;
    max-width: none;
    max-height: none;
  }

  .p-hero__flow-arrow--sp {
    display: block;
    flex: 0 0 8px;
    flex-shrink: 0;
    align-self: flex-start;
    width: 8px;
    height: 12px;
    margin-top: 19px;
    transform: none;
  }

  .p-hero__stats-block {
    order: 7;
    position: relative;
    z-index: 2;
    align-items: flex-end;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    padding-inline: 20px;
    box-sizing: border-box;
  }

  .p-hero__stats {
    order: unset;
    justify-content: center;
    gap: 4px;
    margin-top: 0;
    padding-inline: 0;
  }

  .p-hero__stats-asof {
    padding-right: 8px;
    font-size: 10px;
    letter-spacing: 0.2px;
  }

  .p-hero__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    flex: 0 0 110px;
    width: 110px;
    min-height: 97px;
    padding: 16px 8px;
    box-sizing: border-box;
  }

  .p-hero__stat-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.26px;
    color: #444;
    white-space: nowrap;
  }

  .p-hero__stat-label img {
    order: -1;
    width: 18px;
    height: 18px;
  }

  .p-hero__stat-label-text .ls-078 {
    letter-spacing: -0.78px;
  }

  .p-hero__stat-value {
    position: relative;
    display: block;
    width: 75px;
    height: 30px;
    margin: 0;
    color: var(--blue);
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.9px;
  }

  .p-hero__stat-num {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.9px;
  }

  .p-hero__stat-value small {
    position: absolute;
    left: 42px;
    top: 12px;
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.48px;
  }

  .p-hero__stat-value .p-hero__stat-note {
    position: absolute;
    left: 59px;
    top: 20px;
    margin: 0;
    font-size: 8px;
    font-weight: 500;
    line-height: 1;
  }

  .p-hero__stat:nth-child(2) .p-hero__stat-value {
    width: 79px;
  }

  .p-hero__stat:nth-child(2) .p-hero__stat-value small {
    left: 40px;
    letter-spacing: -0.96px;
  }

  .p-hero__stat:nth-child(2) .p-hero__stat-value .p-hero__stat-note {
    left: 71px;
    letter-spacing: 0.32px;
  }

  .p-hero__stat:nth-child(3) .p-hero__stat-value {
    width: 47px;
  }

  .p-hero__stat:nth-child(3) .p-hero__stat-value small {
    left: 15.5px;
  }

  .p-hero__stat:nth-child(3) .p-hero__stat-value .p-hero__stat-note {
    left: 31px;
  }

  .p-hero__cta {
    order: 8;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 260px;
    margin: 24px auto 40px;
    padding-inline: 20px;
    box-sizing: content-box;
  }

  .p-hero__cta .c-btn {
    width: 100%;
    max-width: 100%;
    height: 56px;
    min-height: 56px;
    max-height: none;
  }

  .p-hero__cta .c-btn-note {
    margin-top: 0;
  }

  /* ----------------------------------------------------------------
     Worries
     ---------------------------------------------------------------- */
  .p-worries {
    position: relative;
    padding: 20px 0 40px;
  }

  .p-worries__bg {
    position: relative;
    left: 0;
    width: 100%;
    margin-left: 0;
    height: 170px;
    overflow: hidden;
  }

  .p-worries__bg picture {
    display: block;
    position: absolute;
    inset: 0;
  }

  .p-worries__bg img {
    position: absolute;
    left: -12.94%;
    top: -6.71%;
    width: 112.94%;
    height: 140.03%;
    max-width: none;
    object-fit: cover;
    object-position: left center;
  }

  .p-worries__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to left, #f7f8fa 30.133%, rgba(255, 255, 255, 0));
  }

  .p-worries__content {
    position: static;
    max-width: none;
    margin: 0;
    padding: 0 20px;
    text-align: left;
  }

  .p-worries__title {
    position: absolute;
    top: 74.59px;
    left: 126px;
    right: 20px;
    z-index: 2;
    margin: 0;
    color: var(--black, #444);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 500;
    line-height: 130%;
    letter-spacing: -0.36px;
    text-align: left;
    white-space: normal;
  }

  .p-worries__title-comma {
    letter-spacing: -0.36px;
  }

  .p-worries__title-line2 {
    display: block;
  }

  .p-worries__title .ls-306 {
    letter-spacing: -3.06px;
  }

  .p-worries__title .ls-270 {
    letter-spacing: -2.7px;
  }

  .p-worries__title .ls-198 {
    letter-spacing: -1.98px;
  }

  .p-worries__title .ls-108 {
    letter-spacing: -1.08px;
  }

  .p-worries__title .ls-090 {
    letter-spacing: -0.9px;
  }

  .p-worries__sub {
    position: absolute;
    top: 131.59px;
    left: 126px;
    right: 20px;
    z-index: 2;
    margin: 0;
    color: var(--black, #444);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 13px;
    font-style: normal;
    font-weight: 500;
    line-height: 130%;
    letter-spacing: -0.26px;
    text-align: left;
    white-space: normal;
  }

  .p-worries__sub .ls-052 {
    letter-spacing: -0.52px;
  }

  .p-worries__sub .ls-026 {
    letter-spacing: -0.26px;
  }

  .p-worries__sub .ls-078 {
    letter-spacing: -0.78px;
  }

  .p-worries__sub .ls-195 {
    letter-spacing: -1.95px;
  }

  .p-worries__sub .ls-819 {
    letter-spacing: -8.19px;
  }

  .p-worries__sub .ls-091 {
    letter-spacing: -0.91px;
  }

  .p-worries__sub .ls-143 {
    letter-spacing: -1.43px;
  }

  .p-worries__sub .ls-065 {
    letter-spacing: -0.65px;
  }

  /* 470–767px：左揃えのまま、人物から少し離す */
  @media (min-width: 470px) {
    .p-worries__title,
    .p-worries__sub {
      left: clamp(150px, 36vw, 220px);
      right: 20px;
      max-width: none;
      text-align: left;
    }
  }

  .p-worries__list {
    margin-top: 18px;
    padding: 20px;
  }

  .p-worries__item {
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    font-size: 14px;
    line-height: 1.4;
  }

  .p-worries__item img {
    width: 18px;
    height: 18px;
    margin-top: 2px;
  }

  .p-worries__item-text {
    flex: 1;
    min-width: 0;
    text-align: left;
  }

  .p-worries__item-line2 {
    display: block;
  }

  /* ----------------------------------------------------------------
     Solution
     ---------------------------------------------------------------- */
  .p-solution {
    padding: 0 20px 40px;
  }

  .p-solution__inner {
    gap: 0;
    padding: 0;
  }

  .p-solution__head {
    gap: 4px;
  }

  .p-solution__line {
    width: 0;
    height: 32px;
  }

  .p-solution__line-inner {
    width: 32px;
  }

  .p-solution__title {
    margin: 0;
    color: var(--blue, #134e82);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
    white-space: normal;
    text-align: center;
  }

  .p-solution__title-nayami,
  .p-solution__title-comma {
    color: var(--blue, #134e82);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
  }

  .p-solution__title-comma {
    letter-spacing: -8.46px;
  }

  .p-solution__title .accent {
    color: var(--orange, #e27c00);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
  }

  .p-solution__title .ls-288 {
    letter-spacing: -2.88px;
  }

  .p-solution__lead {
    color: var(--black, #444);
    font-size: 14px;
    font-weight: 500;
    line-height: 100%;
    letter-spacing: 0.28px;
    text-align: center;
  }

  /* ----------------------------------------------------------------
     Services
     ---------------------------------------------------------------- */
  .p-services {
    padding-inline: 10px;
  }

  .p-services__inner {
    padding: 50px 20px;
    border-radius: 20px;
    gap: 30px;
  }

  .p-services__title {
    color: var(--blue, #134E82);
    font-size: 20px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.4px;
    text-align: center;
  }

  .p-services__subtitle {
    color: #23629A;
    font-size: 13px;
    font-weight: 800;
    line-height: 100%;
    letter-spacing: 0.2px;
    text-align: center;
  }

  .p-services__subtitle::before,
  .p-services__subtitle::after {
    width: 20px;
    height: 1px;
  }

  .p-services__body {
    gap: 0;
  }

  .p-services__lead,
  .p-services__lead-sub {
    max-width: none;
    margin: 0;
    color: var(--black, #444);
    text-align: center;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 140%;
    letter-spacing: 0.56px;
    white-space: normal;
  }

  .p-services__lead-sub {
    margin-top: 0;
  }

  .p-services__lead-sub-line2 {
    display: block;
  }

  .p-services__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    max-width: 320px;
    margin-inline: auto;
    margin: 30px 0;
  }

  .p-service-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
    max-width: 320px;
    height: auto;
    margin-inline: auto;
    padding: 24px 16px 20px;
    border: 1px solid #8f8f8f;
    border-radius: 10px;
    box-sizing: border-box;
  }

  .p-service-card__head,
  .p-service-card__head--end {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
  }

  .p-service-card__divider {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 0;
    height: 54px;
    overflow: visible;
    position: relative;
  }

  .p-service-card__divider::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 54px;
    background: #8f8f8f;
  }

  .p-service-card__divider img {
    display: none;
  }

  .p-service-card__num {
    width: 29px;
    font-size: 26px;
    letter-spacing: -0.52px;
    line-height: 100%;
  }

  .p-service-card__head-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
    min-width: 0;
  }

  .p-service-card__title {
    margin: 0;
    color: #134e82;
    font-size: 20px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: -1px;
    white-space: normal;
  }

  .p-service-card__title--ls-260 {
    letter-spacing: 2.6px;
  }

  .p-service-card__title--ls-130 {
    letter-spacing: 1px;
  }

  .p-service-card__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 4px;
    font-size: 13px;
    font-weight: 500;
    line-height: 100%;
    color: var(--blue);
    white-space: normal;
  }

  .p-service-card__badge {
    font-size: 13px;
    padding: 3px 8px 4px;
    letter-spacing: 0.52px;
    line-height: 100%;
  }

  .p-service-card__desc {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    color: var(--black);
  }

  .p-service-card__desc strong {
    font-size: 14px;
    font-weight: 500;
    line-height: 130%;
    letter-spacing: 0.56px;
    white-space: normal;
  }

  .p-service-card__desc p {
    margin: 0;
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 120%;
    white-space: normal;
    color: var(--black, #444);
  }

  .u-br-sp {
    display: unset;
  }

  .p-service-card__foot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-top: 0;
  }

  .p-service-card__recommend {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    max-width: 288px;
    min-height: 0;
    padding-bottom: 10px;
    border: 1px solid var(--blue);
    border-radius: 2px;
    background: var(--ivory);
  }

  .p-service-card__recommend-head {
    display: flex;
    align-items: center;
    gap: 4px;
    height: 24px;
    padding: 4px 8px;
    box-sizing: border-box;
    background: var(--blue);
    color: var(--white);
  }

  .p-service-card__recommend-head p {
    margin: 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 100%;
  }

  .p-service-card__recommend > p {
    margin: 0;
    padding-inline: 8px;
    color: var(--black, #444);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.26px;
  }

  .p-service-card__recommend > p .ls-403 {
    letter-spacing: -4.03px;
  }

  .p-service-card__link {
    align-self: center;
    padding: 4px 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 100%;
  }

  .p-services__cta-lead {
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
  }

  .p-services__cta-lead strong {
    font-size: 18px;
  }

  .p-services__cta-lead-line2 {
    display: block;
  }

  .p-services__cta-action {
    width: 100%;
    max-width: 260px;
    margin-inline: auto;
  }

  .p-services__cta .c-btn {
    width: 100%;
    max-width: 100%;
    height: 56px;
    min-height: 56px;
    max-height: none;
    padding: 12px 20px;
    font-size: 14px;
    line-height: 1;
  }

  /* ----------------------------------------------------------------
     Strengths
     ---------------------------------------------------------------- */
  .p-strengths__inner {
    padding: 70px 20px;
    gap: 30px;
  }

  .p-strengths__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    width: 100%;
  }

  .p-strength-card {
    flex-direction: column;
    width: 100%;
    max-width: 335px;
    margin-inline: auto;
    min-height: 0;
  }

  .p-strength-card__no {
    width: 100%;
    height: 36px;
    padding: 6px 10px;
    border-radius: 10px 10px 0 0;
    font-size: 24px;
    letter-spacing: -0.96px;
  }

  .p-strength-card__body {
    min-height: 0;
    padding: 16px 15px;
    border-radius: 0 0 10px 10px;
  }

  .p-strength-card__top {
    flex-direction: row;
    align-items: flex-start;
  }

  .p-strength-card__intro {
    flex: 1;
    min-width: 0;
  }

  .p-strength-card__title {
    color: var(--blue, #134e82);
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 130%;
    letter-spacing: normal;
  }

  .p-strength-card__title-line {
    display: block;
    text-wrap: nowrap;
  }

  .p-strength-card__catch {
    margin-top: 4px;
    font-size: 14px;
    line-height: 1.4;
    width: calc(100% + 42px);
  }

  .p-strength-card__catch-text {
    display: inline-block;
    white-space: nowrap;
  }

  .p-strength-card__catch .ls-252 {
    letter-spacing: -2.52px;
  }

  .p-strength-card__catch .ls-308 {
    letter-spacing: -3.08px;
  }

  .p-strength-card__catch .ls-602 {
    letter-spacing: -6.02px;
  }

  .p-strength-card__catch .ls-056 {
    letter-spacing: -0.56px;
  }

  .p-strength-card__catch .ls-196 {
    letter-spacing: -1.96px;
  }

  .p-strength-card__icon {
    width: 38px;
  }

  .p-strength-card__text {
    font-size: 13px;
  }

  .p-strength-card__foot {
    min-height: 36px;
    padding: 8px 12px;
  }

  .p-strength-card__foot-num {
    font-size: 24px;
  }

  /* ----------------------------------------------------------------
     Difference
     ---------------------------------------------------------------- */
  .p-difference {
    padding: 0 20px 50px;
  }

  .p-difference__intro {
    flex-direction: column;
    gap: 20px;
    align-items: center;
    justify-content: center;
  }

  .p-difference__copy {
    max-width: none;
    margin-left: 0;
    align-items: center;
  }

  .p-difference__copy .c-section-header {
    align-items: center;
  }

  .p-difference__heading {
    font-size: 22px;
    text-align: center;
    /* letter-spacing: 0.88px; */
  }

  .p-difference__lead {
    font-size: 14px;
    text-align: center;
  }

  .p-difference__image {
    width: 100%;
    height: 165px;
  }

  .p-difference__body {
    margin-top: 10px;
    gap: 20px;
  }

  .p-difference-roles {
    padding: 40px 17px;
  }

  .p-difference-roles__title {
    font-size: 18px;
    margin-bottom: 16px;
  }

  .p-difference-roles__grid {
    flex-direction: column;
    gap: 16px;
  }

  .p-difference-roles__others {
    width: 100%;
    flex-direction: column;
    gap: 10px;
  }

  .p-difference-role-card {
    width: 100%;
    max-width: 300px;
    height: auto;
    min-height: 74px;
    margin-inline: auto;
    padding: 6px 20px;
  }

  .p-difference-role-card--highlight {
    width: 100%;
    max-width: 300px;
    height: auto;
    min-height: 140px;
    padding: 10px;
  }

  .p-difference-role-card__brand-name {
    font-size: 20px;
  }

  .p-difference-role-card__highlight-text {
    color: #23629A;
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 140%;
    letter-spacing: 0.64px;
    text-align: left;
  }

  .p-difference-role-card__highlight-text em {
    color: #E27C00;
    font-style: normal;
  }

  .p-difference-process {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    padding: 40px 20px;
  }

  .p-difference-process__title {
    margin: 0;
    font-size: 18px;
  }

  .p-difference-process__inner {
    gap: 18px;
  }

  .p-difference-process__steps {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .p-difference-process__break {
    display: none;
  }

  .p-difference-process__step {
    width: 100%;
    max-width: 257px;
    gap: 4px;
  }

  .p-difference-process__arrow {
    width: 16px;
    height: 14px;
    margin: 0;
    transform: scaleY(-1);
    object-fit: contain;
    flex-shrink: 0;
  }

  .p-difference-process__step-title {
    white-space: normal;
  }

  .p-difference-process__step-text {
    text-align: center;
    font-size: 13px;
    white-space: nowrap;
  }

  .p-difference-process__step-text br {
    display: none;
  }

  .p-difference-process__summary {
    font-size: 16px;
  }

  .p-difference__cta,
  .p-flow__cta {
    padding: 40px 20px 20px;
    border-radius: 10px;
  }

  .p-flow__cta-grid {
    flex-direction: column;
    gap: 24px;
  }

  .p-flow__cta-grid > div:first-child > p {
    width: 100%;
    font-size: 15px;
  }

  .p-flow__cta-list {
    width: 100%;
  }

  .p-flow__cta-list li {
    font-size: 13px;
    gap: 25px;
  }

  .p-flow__cta-note__text p {
    font-size: 13px;
  }

  .p-flow__cta-note__sub {
    font-size: 13px;
    white-space: nowrap;
  }

  .p-flow__cta-note__head {
    align-items: flex-start;
    gap: 0px;
  }

  .p-flow__cta-note__slash {
    width: 32px;
    height: 30px;
    margin-top: 10px;
    object-fit: contain;
    flex-shrink: 0;
    transform-origin: center center;
  }

  .p-flow__cta-note__slash--left {
    transform: rotate(70deg) translateX(6px);
  }

  .p-flow__cta-note__slash--right {
    transform: rotate(110deg) translateX(6px);
  }

  .p-flow__cta-action {
    width: 100%;
    max-width: 260px;
    margin-inline: auto;
  }

  .p-difference__cta .c-btn,
  .p-flow__cta-action .c-btn {
    width: 100%;
    max-width: 100%;
    height: 56px;
    min-height: 56px;
    max-height: none;
    padding: 12px 20px;
    font-size: 14px;
    line-height: 1;
  }

  .p-flow__cta .c-btn-note {
    color: #fff;
  }

  /* ----------------------------------------------------------------
     Achievements — SP: 全幅 + PC 同様 opacity 0.4
     ---------------------------------------------------------------- */
  .p-achievements {
    padding: 50px 20px;
  }

  .p-achievements__bg {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    transform: none;
    background: none;
  }

  .p-achievements__bg-photo {
    display: block;
    top: 50%;
    left: 50%;
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    max-width: none;
    transform: translate(-50%, -50%);
    object-fit: cover;
    object-position: center bottom;
    opacity: 0.4;
  }

  .p-achievements__bg-logo {
    top: 112px;
    right: -5px;
    width: 139px;
    height: 106px;
  }

  .p-achievements__lead {
    margin-top: 0;
    color: var(--blue);
    text-align: center;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 150%;
  }

  .p-achievements__lead-line {
    display: block;
  }

  .p-achievements__grid-block {
    width: 100%;
    max-width: 340px;
    margin-inline: auto;
    gap: 8px;
    margin-top: 30px;
  }

  .p-achievements__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 0;
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .p-achievements__asof {
    font-weight: 500;
  }

  .p-achievement-card {
    width: 100%;
    height: 140px;
    padding: 24px 12px 0;
  }

  .p-achievement-card img {
    width: 30px;
    height: 30px;
  }

  .p-achievement-card__label {
    font-size: 11px;
    line-height: 1.2;
  }

  .p-achievement-card__num {
    font-size: 40px;
    line-height: 40px;
    letter-spacing: -1.2px;
  }

  .p-achievement-card__value {
    display: flex;
    align-items: flex-start;
    gap: 2px;
    margin-top: 6px;
    margin-bottom: 12px;
    line-height: 0;
  }

  .p-achievement-card__value small {
    margin-top: 16px;
    font-size: 20px;
    line-height: 20px;
    letter-spacing: -0.6px;
  }

  .p-achievement-card__suffix {
    margin-top: 26px;
    font-size: 11px;
    line-height: 11px;
    letter-spacing: 0.44px;
  }

  .p-achievement-card__value--sm .p-achievement-card__num {
    font-size: 40px;
    line-height: 40px;
    letter-spacing: -1.6px;
  }

  .p-achievement-card__value--sm small {
    margin-top: 17px;
    font-size: 20px;
    line-height: 1;
    letter-spacing: -0.8px;
  }

  .p-achievement-card__value--sm .p-achievement-card__suffix,
  .p-achievement-card__value--sm-wide .p-achievement-card__suffix,
  .p-achievement-card__value--sm-count .p-achievement-card__suffix {
    margin-top: 27px;
    line-height: 1;
  }

  .p-achievement-card__value--sm-wide small {
    margin-top: 17px;
    line-height: 1;
  }

  /* ----------------------------------------------------------------
     Cases
     ---------------------------------------------------------------- */
  .p-cases {
    padding: 40px 20px 50px;
  }

  .p-cases__grid {
    grid-template-columns: 1fr;
    gap: 16px;
    max-width: 300px;
  }

  .p-case-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 300px;
    height: auto;
    min-height: 0;
    padding: 20px;
    margin-inline: auto;
  }

  .p-case-card__photo {
    order: -1;
    width: 100%;
    max-width: 260px;
    height: 174px;
    margin: 0 auto 10px;
  }

  .p-case-card__photo img {
    width: 100%;
    height: 100%;
    margin-left: 0;
    object-fit: cover;
  }

  .p-case-card__photo--01 img,
  .p-case-card__photo--02 img,
  .p-case-card__photo--03 img,
  .p-case-card__photo--04 img {
    width: 100%;
    height: 100%;
    margin-left: 0;
  }

  .p-case-card__body {
    padding-inline: 0;
  }

  .p-case-card__title {
    font-size: 17px;
  }

  .p-case-card__title-nowrap {
    font-size: 16px;
    white-space: normal;
  }

  .p-case-card__desc {
    font-size: 13px;
  }

  .p-cases > .c-btn {
    width: 260px;
    height: 56px;
    min-height: 56px;
    margin-top: 30px;
    font-size: 14px;
  }

  /* ----------------------------------------------------------------
     Voices
     ---------------------------------------------------------------- */
  .p-voices {
    padding: 40px 20px 50px;
  }

  .p-voices__lead {
    font-size: 14px;
    line-height: 1.6;
  }

  .p-voices__lead-line {
    display: block;
  }

  .p-voices__lead br {
    display: none;
  }

  .p-voices__grid {
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin-top: 30px;
  }

  .p-voice-card {
    width: 100%;
    max-width: 300px;
  }

  .p-voice-card__photo {
    height: 145px;
  }

  .p-voice-card__body {
    padding: 16px;
  }

  .p-voice-card__title {
    font-size: 16px;
    white-space: normal;
  }

  .p-voice-card__text {
    font-size: 12px;
    white-space: normal;
    line-height: 1.5;
  }

  .p-voice-card__tags span {
    min-width: 0;
    padding: 4px 16px;
    font-size: 12px;
  }

  .p-voices__inner > .c-btn {
    width: 260px;
    height: 56px;
    min-height: 56px;
    margin-top: 30px;
    font-size: 14px;
  }

  /* ----------------------------------------------------------------
     Consultants
     ---------------------------------------------------------------- */
  .p-consultants {
    padding: 40px 20px 50px;
    gap: 16px;
  }

  .p-consultants__photo {
    width: 100%;
    height: 192px;
  }

  .p-consultants__photo img {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    object-position: center;
  }

  .p-consultants__lead {
    font-size: 14px;
    line-height: 1.5;
  }

  .p-consultants__body > .c-btn {
    width: 260px;
    height: 56px;
    min-height: 56px;
    font-size: 14px;
  }

  /* ----------------------------------------------------------------
     Flow
     ---------------------------------------------------------------- */
  .p-flow {
    padding: 40px 20px 50px;
  }

  .p-flow__steps {
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .p-flow__steps-break {
    display: none;
  }

  .p-flow__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 0 0 auto;
    gap: 10px;
    width: 180px;
    max-width: 100%;
    height: 200px;
    min-height: 200px;
    padding: 26px 0 20px;
    box-sizing: border-box;
  }

  .p-flow__step:last-of-type {
    height: 200px;
    min-height: 200px;
  }

  .p-flow__step-arrow {
    width: 20px;
    height: 17px;
    margin: 0;
    transform: scaleY(-1);
    object-fit: contain;
    flex-shrink: 0;
  }

  .p-flow__step-label-ste,
  .p-flow__step-label-p {
    font-size: 18px;
    line-height: 26px;
  }

  .p-flow__step-label-p {
    letter-spacing: 1.44px;
  }

  .p-flow__step-label-zero,
  .p-flow__step-label-num {
    font-size: 26px;
    line-height: 26px;
  }

  .p-flow__step-label-num {
    letter-spacing: 0;
  }

  .p-flow__step-title {
    display: block;
    min-height: 0;
    font-size: 14px;
    line-height: 1.2;
  }

  .p-flow__step-title br {
    display: none;
  }

  .p-flow__steps > .p-flow__step:nth-child(7) .p-flow__step-title,
  .p-flow__steps > .p-flow__step:nth-child(9) .p-flow__step-title {
    font-size: 16px;
    line-height: 1.3;
  }

  .p-flow__step-title-note {
    display: inline;
    font-size: 14px;
  }

  .p-flow__step-icon {
    height: auto;
    min-height: 0;
  }

  .p-flow__step:first-of-type .p-flow__step-icon {
    height: auto;
  }

  .p-flow__step-icon img {
    width: 36px;
    max-height: 37px;
  }

  .p-flow__step-text {
    font-size: 13px;
    line-height: 1.4;
  }

  .p-flow__note {
    margin-top: 35px;
    font-size: 11px;
    line-height: 1.5;
    text-align: center;
  }

  /* ----------------------------------------------------------------
     FAQ
     ---------------------------------------------------------------- */
  .p-faq {
    padding: 40px 20px 50px;
  }

  .p-faq__item {
    margin-bottom: 20px;
  }

  .p-faq__item summary {
    padding: 16px;
    gap: 10px;
  }

  .p-faq__q {
    gap: 10px;
    font-size: 13px;
    letter-spacing: 0.56px;
  }

  .p-faq__mark {
    width: 28px;
    height: 28px;
    font-size: 13px;
  }

  .p-faq__toggle {
    width: 24px;
    height: 24px;
  }

  .p-faq__answer-inner {
    padding: 16px;
    gap: 10px;
  }

  .p-faq__answer-inner p {
    font-size: 13px;
  }

  @supports not (interpolate-size: allow-keywords) {
    .p-faq__answer-inner {
      padding: 0 16px;
    }

    .p-faq__item[open] .p-faq__answer-inner {
      padding: 16px;
    }
  }

  /* ----------------------------------------------------------------
     Column
     ---------------------------------------------------------------- */
  .p-column {
    padding: 40px 20px;
  }

  .p-column__inner {
    gap: 40px;
  }

  .p-column__intro {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
  }

  .p-column__lead {
    margin: 0;
    font-size: 14px;
    line-height: 1.3;
    letter-spacing: -0.56px;
    text-align: center;
    white-space: nowrap;
  }

  .p-column__desc {
    margin-top: 0;
    width: 100%;
    text-align: center;
  }

  .p-column__desc p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    letter-spacing: 0.26px;
  }

  .p-column__desc p:first-child {
    white-space: nowrap;
    letter-spacing: -0.52px;
  }

  .p-column__grid {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-top: 40px;
    width: 100%;
    max-width: 300px;
  }

  .p-column-card {
    width: 100%;
    max-width: 300px;
    height: 300px;
    padding: 20px;
    box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.25);
    box-sizing: border-box;
  }

  .p-column-card__content {
    gap: 8px;
    height: auto;
  }

  .p-column-card__photo {
    height: 146px;
  }

  .p-column-card__meta {
    gap: 16px;
  }

  .p-column-card__date {
    font-size: 14px;
    line-height: 14px;
    letter-spacing: 0.56px;
  }

  .p-column-card__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 20px;
    padding: 0 18px;
    font-size: 14px;
    line-height: 14px;
    letter-spacing: 0.56px;
  }

  .p-column-card__title {
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: 0.28px;
    text-align: left;
  }

  .p-column__btn {
    width: 260px;
    height: 50px;
    margin-top: 0;
    padding: 10px 30px 12px;
    font-size: 14px;
    gap: 2px;
  }

  .p-column__btn img {
    width: 16px;
    height: 16px;
  }

  /* ----------------------------------------------------------------
     Contact CTA
     ---------------------------------------------------------------- */
  .p-cta-block {
    padding: 40px 20px;
    box-shadow: none;
  }

  .p-cta-block__card {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 335px;
    margin: 0 auto;
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .p-cta-block__left {
    width: 100%;
    align-items: center;
    gap: 10px;
  }

  .p-cta-block__copy {
    align-items: center;
    gap: 6px;
    text-align: center;
  }

  .p-cta-block__header {
    align-items: center;
  }

  .p-cta-block__message {
    align-items: center;
    gap: 12px;
  }

  .p-cta-block__lead {
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: 0.36px;
    text-align: center;
  }

  .p-cta-block__text {
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
  }

  .p-cta-block__photo {
    position: relative;
    width: 100%;
    max-width: 335px;
    height: 208px;
    margin-inline: auto;
    overflow: hidden;
  }

  .p-cta-block__photo img {
    position: absolute;
    width: 112.17%;
    height: 120.78%;
    left: -5.3%;
    top: -5.25%;
    max-width: none;
    object-fit: cover;
  }

  .p-cta-block__form {
    width: 100%;
    max-width: 335px;
    padding: 30px 16px;
    border-radius: 10px;
    border: 2px solid var(--light-gray, #e9e9e9);
    background: var(--white, #fff);
    gap: 20px;
    box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
    box-sizing: border-box;
  }

  .p-cta-block__form-native,
  .p-cta-block__form--cf7 .wpcf7-form {
    gap: 20px;
  }

  .p-cta-block__form-inner {
    gap: 12px;
    width: 100%;
  }

  .p-cta-block__fields {
    gap: 12px;
    width: 100%;
  }

  .p-cta-block__field {
    gap: 8px;
    width: 100%;
  }

  .p-cta-block__field-head,
  .p-cta-block__form--cf7 .p-cta-block__field-head,
  .p-cta-block__form--cf7 label.p-cta-block__field-head {
    display: flex !important;
    width: 8.75rem !important;
    min-width: 8.75rem !important;
    max-width: 100% !important;
    justify-content: space-between !important;
    gap: 0.25rem;
    box-sizing: border-box;
  }

  .p-cta-block__form--cf7 label.p-cta-block__field-head[for="contact-type"],
  .p-cta-block__field-head--wide,
  .p-cta-block__form--cf7 .p-cta-block__field-head--wide {
    width: fit-content !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-content: flex-start !important;
    gap: 0.25rem !important;
  }

  .p-cta-block__field-head--wide .p-cta-block__badge,
  .p-cta-block__form--cf7 label.p-cta-block__field-head[for="contact-type"] .p-cta-block__badge {
    margin-left: 0.25rem !important;
  }

  .p-cta-block__field-head label,
  .p-cta-block__field-head .p-cta-block__label-text {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 14px;
    white-space: nowrap;
    line-height: 1.2;
  }

  .p-cta-block__badge {
    margin: 0 0 0 auto !important;
    flex: 0 0 auto !important;
  }

  .p-cta-block__form,
  .p-cta-block__form--cf7 .wpcf7,
  .p-cta-block__form--cf7 .wpcf7-form,
  .p-cta-block__form-inner,
  .p-cta-block__fields,
  .p-cta-block__field,
  .p-cta-block__select-wrap,
  .p-cta-block__form--cf7 .wpcf7-form-control-wrap {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
  }

  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-text,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-email,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-tel,
  .p-cta-block__form--cf7 .p-cta-block__field textarea.wpcf7-textarea,
  .p-cta-block__form--cf7 .p-cta-block__select-wrap select.wpcf7-select,
  .p-cta-block__form--cf7 .p-cta-block__field .wpcf7-form-control:not([type="checkbox"]):not([type="submit"]):not([type="acceptance"]),
  .p-cta-block__field input,
  .p-cta-block__field textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .p-cta-block__field input,
  .p-cta-block__field textarea,
  .p-cta-block__select-wrap,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-text,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-email,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-tel,
  .p-cta-block__form--cf7 .p-cta-block__field textarea.wpcf7-textarea {
    width: 100% !important;
    max-width: 100% !important;
  }

  .p-cta-block__field input,
  .p-cta-block__field textarea,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-text,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-email,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-tel,
  .p-cta-block__form--cf7 .p-cta-block__field textarea.wpcf7-textarea {
    font-size: 13px;
    letter-spacing: 0.03em;
  }

  .p-cta-block__select-wrap select,
  .p-cta-block__form--cf7 .p-cta-block__select-wrap select.wpcf7-select,
  .p-cta-block__select-wrap select option,
  .p-cta-block__form--cf7 .p-cta-block__select-wrap select.wpcf7-select option,
  .p-cta-block__select-trigger,
  .p-cta-block__select-option {
    font-size: 13px;
    letter-spacing: 0.03em;
  }

  .p-cta-block__field input::placeholder,
  .p-cta-block__field textarea::placeholder {
    font-size: 13px;
  }

  .p-cta-block__field input,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-text,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-email,
  .p-cta-block__form--cf7 .p-cta-block__field input.wpcf7-tel {
    height: 36px;
    line-height: normal;
  }

  .p-cta-block__select-wrap select,
  .p-cta-block__form--cf7 .p-cta-block__select-wrap select.wpcf7-select,
  .p-cta-block__select-trigger {
    height: 36px;
    min-height: 36px;
    line-height: 34px;
    padding-top: 0;
    padding-bottom: 0;
  }

  .p-cta-block__field textarea,
  .p-cta-block__form--cf7 .p-cta-block__field textarea.wpcf7-textarea {
    height: 180px;
    line-height: 1.5;
  }

  .p-cta-block__privacy {
    padding-inline: 2px;
    font-size: 14px;
    letter-spacing: 0.56px;
    line-height: 1.4;
    flex-wrap: nowrap;
    width: fit-content;
    max-width: 100%;
  }

  .p-cta-block__form--cf7 .p-cta-block__privacy .wpcf7-list-item label,
  .p-cta-block__form--cf7 .p-cta-block__privacy .wpcf7-list-item-label,
  .p-cta-block__privacy > span {
    white-space: nowrap;
  }

  .p-cta-block__submit-wrap {
    position: relative !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
  }

  .p-cta-block__submit-wrap .wpcf7-spinner {
    position: absolute !important;
    left: calc(50% + 138px) !important;
    top: 50% !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
  }

  .p-cta-block__submit,
  .p-cta-block__form--cf7 input.wpcf7-submit.p-cta-block__submit,
  .p-cta-block__submit-wrap .p-cta-block__submit,
  .p-cta-block__submit-wrap input.wpcf7-submit {
    width: 260px !important;
    max-width: calc(100% - 0px) !important;
    height: 56px;
    min-height: 56px;
    margin: 0 !important;
    flex: 0 0 auto !important;
    padding: 12px 30px;
    font-size: 14px;
    letter-spacing: 0.56px;
    gap: 2px;
  }

  .p-cta-block__form--cf7 .wpcf7-form > p:has(input.wpcf7-submit) {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .p-cta-block__submit img {
    width: 16px;
    height: 16px;
  }

  .p-cta-block__form--cf7 input.wpcf7-submit.p-cta-block__submit {
    background-size: 16px 16px;
    background-position: calc(50% + 2rem) center;
  }

  .p-cta-block__form--cf7 .wpcf7-response-output {
    max-width: none;
  }

  /* ----------------------------------------------------------------
     Footer
     ---------------------------------------------------------------- */
  .l-footer {
    padding: 30px 20px 20px;
    overflow: visible;
  }

  .l-footer__inner {
    width: 100%;
    max-width: none;
  }

  .l-footer__body {
    gap: 60px;
  }

  .l-footer__content {
    flex-direction: column;
    align-items: center;
    gap: 60px;
  }

  .l-footer__nav {
    order: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 10px;
    row-gap: 40px;
    width: 273px;
    max-width: 100%;
    padding: 0 10px;
    box-sizing: border-box;
    height: auto;
    overflow: visible;
    text-align: left;
  }

  .l-footer__info {
    order: 2;
    width: fit-content;
    max-width: 100%;
    align-items: flex-start;
    gap: 20px;
    margin-inline: auto;
    padding: 0 40px;
    box-sizing: border-box;
    text-align: left;
  }

  .l-footer__brand {
    align-items: flex-start;
    gap: 8px;
  }

  .l-footer__logo-wrap {
    position: relative;
    width: 180px;
    height: auto;
    margin: 0;
    overflow: visible;
  }

  .l-footer__logo {
    position: static;
    width: 180px;
    height: auto;
    left: auto;
    top: auto;
    max-width: 100%;
    object-fit: contain;
  }

  .l-footer__company {
    font-size: 20px;
    letter-spacing: 0.8px;
    text-align: left;
  }

  .l-footer__address {
    width: auto;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.52px;
    line-height: 1.4;
    text-align: left;
  }

  .l-footer__address p {
    text-align: left;
  }

  .l-footer__address p:last-child {
    margin-top: 0;
    line-height: 1;
  }

  .l-footer__nav > a:not(.c-btn) {
    display: block;
    width: auto;
    padding: 0;
    border-bottom: none;
    font-size: 13px;
    letter-spacing: 0.52px;
    line-height: 1;
    text-align: left;
  }

  .l-footer__nav > a:nth-child(4) {
    letter-spacing: -0.39px;
  }

  .l-footer__nav > .c-btn {
    grid-column: 1 / -1;
    width: 240px;
    max-width: 100%;
    box-sizing: border-box;
    height: 56px;
    min-height: 56px;
    margin: 0 auto;
    padding: 12px 18px;
    border-radius: 4px;
    gap: 2px;
    justify-content: center;
    justify-self: center;
  }

  .l-footer__nav > .c-btn img {
    width: 16px;
    height: 16px;
  }

  .l-footer__copy {
    font-size: 10px;
    line-height: 1.3;
    letter-spacing: 0.4px;
    color: #444;
  }

  .l-footer__copy-line {
    display: block;
  }

  .l-footer__bg-text {
    display: none;
  }

  /* ----------------------------------------------------------------
     Sub pages — common (hero, layout)
     ---------------------------------------------------------------- */
  .p-page-hero {
    min-height: 140px;
    height: 140px;
    padding: 0 20px;
    gap: 10px;
    box-sizing: border-box;
    justify-content: center;
    background-color: #eef7f9;
  }

  .p-page-hero .c-section-title {
    font-size: 20px;
    letter-spacing: 0.4px;
    line-height: 1;
  }

  .p-page-hero .c-section-header__subtitle {
    gap: 4px;
    margin-bottom: 0;
    font-size: 10px;
    letter-spacing: 0.2px;
  }

  .p-page-hero .c-section-header__subtitle::before,
  .p-page-hero .c-section-header__subtitle::after {
    width: 20px;
    height: 1px;
  }

  .p-page-hero__bg img {
    object-position: bottom;
  }

  /* ----------------------------------------------------------------
     Company page
     ---------------------------------------------------------------- */
  .p-company__body {
    gap: 50px;
    padding: 40px 20px;
  }

  .p-company-intro {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
  }

  .p-company-intro__copy {
    order: 2;
    max-width: none;
  }

  .p-company-intro__photo {
    order: 1;
    flex: none;
    width: 100%;
    max-width: none;
    height: 224px;
  }

  .p-company-intro__title {
    font-size: 16px;
    letter-spacing: 0.64px;
    line-height: 1.4;
    text-wrap: wrap;
  }

  .p-company-intro__title br {
    display: none;
  }

  .p-company-intro__text {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.6;
  }

  .p-company-profile {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
  }

  .p-company-profile__content {
    order: 1;
    max-width: none;
    gap: 20px;
  }

  .p-company-profile__photo {
    order: 2;
    flex: none;
    width: 100%;
    max-width: none;
    height: 248px;
  }

  .p-company-profile__photo img {
    width: 111.17%;
    margin-left: -11.12%;
  }

  .p-company-subhead {
    align-items: center;
    gap: 10px;
    width: 100%;
  }

  .p-company-subhead--left {
    align-items: center;
  }

  .p-company-subhead__title {
    font-size: 20px;
    letter-spacing: 0.4px;
    line-height: 1;
    text-align: center;
  }

  .p-company-subhead__subtitle {
    font-size: 13px;
    letter-spacing: 0.26px;
  }

  .p-company-subhead__subtitle--md,
  .p-company-subhead__subtitle--gap-md {
    font-size: 13px;
    gap: 4px;
  }

  .p-company-table__row {
    align-items: center;
    padding: 10px 0;
    font-size: 13px;
    letter-spacing: 0.52px;
    gap: 6px;
  }

  .p-company-table dt {
    width: 100px;
  }

  .p-company-table__note {
    font-size: 10px;
  }

  .p-company-table__consultant {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .p-company-table__link {
    padding: 0;
    font-size: 13px;
    letter-spacing: -0.39px;
  }

  .p-company-message {
    gap: 20px;
    align-items: center;
  }

  .p-company-message__inner {
    flex-direction: column;
    align-items: center;
    gap: 30px;
    width: 100%;
  }

  .p-company-message__copy {
    max-width: none;
    width: 100%;
  }

  .p-company-message__catch {
    justify-content: center;
    gap: 4px;
    padding: 6px 10px 6px 0;
    font-size: 26px;
  }

  .p-company-message__design {
    width: 90px;
    height: 33px;
  }

  .p-company-message__body {
    gap: 10px;
    margin-top: 20px;
  }

  .p-company-message__body p {
    font-size: 13.5px;
    line-height: 1.5;
  }

  .p-company-message__body p br {
    display: none;
  }

  .p-company-message__line-sp {
    display: block;
  }

  .p-company-message__line-sp--finance {
    color: var(--black, #444);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 13.5px;
    font-style: normal;
    font-weight: 400;
    line-height: 150%;
    letter-spacing: -0.81px;
  }

  .p-company-message__profile {
    flex: none;
    width: 100%;
    max-width: 358px;
    gap: 20px;
  }

  .p-company-message__photo {
    flex: none;
    width: 200px;
    height: 200px;
  }

  .p-company-message__photo img {
    width: 115.63%;
    margin-left: -7.81%;
  }

  .p-company-message__name {
    gap: 6px;
    font-size: 16px;
    letter-spacing: 0.64px;
  }

  .p-company-message__signature {
    width: 100px;
    height: 43px;
  }

  .p-company-values {
    flex-direction: column;
    align-items: stretch;
    gap: 40px;
  }

  .p-company-values__content {
    order: 1;
    max-width: none;
    gap: 40px;
  }

  .p-company-values__photo {
    order: 2;
    flex: none;
    width: 100%;
    max-width: none;
    height: 235px;
  }

  .p-company-values__photo img {
    width: 105.12%;
  }

  .p-company-values__block {
    align-items: center;
    gap: 20px;
  }

  .p-company-values__text {
    font-size: 14px;
    letter-spacing: 0.28px;
    line-height: 1.4;
    text-align: center;
  }

  .p-company-values__text br {
    display: none;
  }

  .p-company-values__line-sp {
    display: block;
  }

  .p-company-values__text--values {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }

  .p-company-values__group-sp {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .p-company-values__text--single {
    line-height: 1.4;
  }

  /* ----------------------------------------------------------------
     Service page
     ---------------------------------------------------------------- */
  .p-service__body {
    gap: 40px;
    padding: 40px 20px;
  }

  .p-service__lead {
    color: var(--blue);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.56px;
    line-height: 1.5;
    text-align: center;
  }

  .p-service .p-service-card {
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 335px;
    padding: 40px 16px 30px;
    border-radius: 20px;
  }

  .p-service .p-service-card--wide-gap {
    gap: 20px;
  }

  .p-service .p-service-card--wide-gap .p-service-card__content {
    gap: 14px;
  }

  .p-service .p-service-card__num {
    font-size: 50px;
    letter-spacing: -2.5px;
  }

  .p-service .p-service-card__content {
    position: relative;
    order: 1;
    width: 100%;
    gap: 16px;
  }

  .p-service .p-service-card__num--01 {
    left: auto;
    right: 54px;
    top: 69px;
    transform: none;
  }

  .p-service .p-service-card__num--inline {
    right: 54px;
    top: 28px;
    font-size: 50px;
    letter-spacing: -2.5px;
  }

  .p-service .p-service-card:nth-child(4) .p-service-card__num--inline {
    right: 45px;
    top: 39px;
  }

  .p-service .p-service-card:nth-child(5) .p-service-card__num--inline {
    right: 34px;
  }

  .p-service .p-service-card__main,
  .p-service .p-service-card__main--reverse {
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    width: 100%;
    max-width: 303px;
  }

  .p-service .p-service-card__title {
    font-size: 26px;
    letter-spacing: 1.04px;
    line-height: 1;
  }

  .p-service .p-service-card__tag {
    align-self: flex-start;
    height: 30px;
    padding: 4px 16px 6px;
    font-size: 14px;
    letter-spacing: 0.56px;
  }

  .p-service .p-service-card__desc {
    width: 100%;
    max-width: none;
    padding-left: 8px;
    border-left: 1px solid var(--blue);
    font-size: 13px;
    line-height: 1.5;
  }

  .p-service .p-service-card__photo {
    order: 2;
    width: 100%;
    max-width: 303px;
    height: auto;
    aspect-ratio: 380 / 233;
  }

  .p-service .p-service-card__photo--01 {
    align-self: center;
    margin-inline: auto;
  }

  .p-service .p-service-card__photo--01 img {
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .p-service .p-service-card__photo--02,
  .p-service .p-service-card__photo--03,
  .p-service .p-service-card__photo--04 {
    height: 186px;
    aspect-ratio: auto;
  }

  .p-service .p-service-card__points,
  .p-service .p-service-card__points--inset {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 16px;
    width: 100%;
    max-width: 303px;
    padding-inline: 0;
  }

  .p-service .p-service-card:nth-child(4) .p-service-card__content {
    padding-right: 48px;
  }

  .p-service-point {
    width: 100%;
    max-width: none;
    height: 120px;
    min-height: 120px;
    padding: 20px;
    align-items: center;
    border-radius: 0 16px 0 16px;
  }

  .p-service-point__head {
    gap: 12px;
    justify-content: flex-start;
  }

  .p-service-point__badge {
    font-size: 10px;
  }

  .p-service-point__title {
    font-size: 14px;
    font-weight: 500;
    line-height: 150%;
    letter-spacing: normal;
    text-align: center;
    white-space: nowrap;
  }

  .p-service-point__title .ls-420 {
    letter-spacing: -4.2px;
  }

  .p-service-point__text {
    width: 100%;
    font-size: 13px;
    letter-spacing: 0.26px;
    line-height: 1.4;
  }

  /* ----------------------------------------------------------------
     Cases page
     ---------------------------------------------------------------- */
  .p-cases-page__body {
    gap: 40px;
    padding: 40px 20px 60px;
  }

  .p-cases-page__intro {
    gap: 10px;
    max-width: 328px;
    padding-inline: 15px;
    text-align: center;
  }

  .p-cases-page__intro-text {
    color: var(--blue);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.28px;
    line-height: 1.5;
    text-align: center;
  }

  .p-cases-page__intro-line {
    white-space: nowrap;
  }

  .p-cases-page .p-case-detail {
    gap: 16px;
    width: 100%;
    max-width: 335px;
    padding: 40px 16px;
    border-radius: 20px;
    scroll-margin-top: 8px;
  }

  .p-cases-page .p-case-detail__hero {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    width: 100%;
    max-width: 303px;
    padding: 0;
  }

  .p-cases-page .p-case-detail__hero-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .p-cases-page .p-case-detail__label {
    margin-bottom: 0;
    font-size: 18px;
    letter-spacing: 0.72px;
    line-height: 1.3;
  }

  .p-cases-page .p-case-detail__tags {
    gap: 10px;
    margin-bottom: 0;
  }

  .p-cases-page .p-case-detail__tag {
    padding: 4px 16px;
    border-radius: 2px;
    font-size: 12px;
    letter-spacing: 0;
    line-height: 1.2;
  }

  .p-cases-page .p-case-detail__title {
    margin-bottom: 0;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.4;
  }

  .p-cases-page .p-case-detail__title-line {
    white-space: nowrap;
  }

  .p-cases-page .p-case-detail__title .ls-630 {
    letter-spacing: -6.3px;
  }

  .p-cases-page .p-case-detail__title .ls-108 {
    letter-spacing: -1.08px;
  }

  .p-cases-page .p-case-detail__title .ls-090 {
    letter-spacing: -0.9px;
  }

  .p-cases-page .p-case-detail__lead {
    font-size: 13px;
    letter-spacing: 0.26px;
    line-height: 1.3;
  }

  .p-cases-page .p-case-detail__photo {
    width: 100%;
    max-width: 303px;
    height: 202px;
  }

  .p-cases-page .p-case-detail__blocks {
    gap: 16px;
    width: 100%;
  }

  .p-cases-page .p-case-detail__block {
    gap: 14px;
    width: 100%;
    max-width: 303px;
    padding: 20px 10px;
    border-radius: 10px;
    box-sizing: border-box;
  }

  .p-cases-page .p-case-detail__block--summary {
    padding: 20px 6px;
    border: 1px solid #e9e9e9;
    background: var(--white);
  }

  .p-cases-page .p-case-detail__block--challenges,
  .p-cases-page .p-case-detail__block--results {
    background: var(--ivory);
  }

  .p-cases-page .p-case-detail__block--support {
    padding: 20px;
    background: #d1e5f9;
  }

  .p-cases-page .p-case-detail__block--recommend {
    max-width: none;
    padding: 16px 0;
    background: transparent;
  }

  .p-cases-page .p-case-detail__heading {
    gap: 8px;
  }

  .p-cases-page .p-case-detail__block--summary .p-case-detail__heading-line {
    width: 54px;
  }

  .p-cases-page .p-case-detail__block--challenges .p-case-detail__heading-line,
  .p-cases-page .p-case-detail__block--challenges .p-case-detail__heading-line--short {
    width: 46px;
  }

  .p-cases-page .p-case-detail__block--support .p-case-detail__heading-line {
    width: 32px;
  }

  .p-cases-page .p-case-detail__block--results .p-case-detail__heading-line {
    width: 60px;
  }

  .p-cases-page .p-case-detail__heading-title {
    font-size: 14px;
    letter-spacing: 0.56px;
  }

  .p-cases-page .p-case-detail__flow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: 100%;
    max-width: 260px;
    padding: 0;
  }

  .p-cases-page .p-case-detail__flow-step {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    column-gap: 12px;
    align-items: center;
    width: 250px;
    max-width: 100%;
  }

  .p-cases-page .p-case-detail__flow-icon {
    grid-column: 1;
    grid-row: 1;
    position: relative;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
  }

  .p-cases-page .p-case-detail__flow-text {
    grid-column: 2;
    justify-self: start;
    margin: 0;
    color: #444;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.52px;
    line-height: 1.3;
    text-align: left;
  }

  .p-cases-page .p-case-detail__flow-circle {
    position: absolute;
    inset: 0;
    width: 40px;
    height: 40px;
    max-width: none;
  }

  .p-cases-page .p-case-detail__flow-pict {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 22px;
    height: 22px;
    max-width: none;
    transform: translate(-50%, -50%);
    object-fit: contain;
  }

  .p-cases-page .p-case-detail__flow-step--result .p-case-detail__flow-text {
    color: var(--blue);
    font-weight: 500;
    letter-spacing: 0;
  }

  .p-cases-page .p-case-detail__flow-arrow {
    display: block;
    width: 12px;
    height: 8px;
    max-width: none;
    margin-inline: 0;
    transform: rotate(180deg);
  }

  .p-cases-page .p-case-detail__challenges {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 0;
  }

  .p-cases-page .p-case-detail__challenge-card {
    width: 100%;
    max-width: 280px;
    min-height: 50px;
    padding: 2px 8px;
    gap: 6px;
  }

  .p-cases-page .p-case-detail__challenge-num {
    width: 36px;
    height: 36px;
  }

  .p-cases-page .p-case-detail__challenge-num img {
    width: 36px;
    height: 36px;
  }

  .p-cases-page .p-case-detail__challenge-num span {
    font-size: 18px;
    letter-spacing: 0.72px;
  }

  .p-cases-page .p-case-detail__challenge-text {
    font-size: 13px;
    letter-spacing: 0;
    line-height: 1.3;
    text-align: left;
    white-space: nowrap;
  }

  .p-cases-page .p-case-detail--wrap:not(#case-01):not(#case-02):not(#case-03):not(#case-04) .p-case-detail__challenge-text,
  .p-cases-page .p-case-detail--wrap:not(#case-01):not(#case-02):not(#case-03):not(#case-04) .p-case-detail__flow-text {
    white-space: normal;
    overflow-wrap: break-word;
  }

  .p-cases-page .p-case-detail__support-grid,
  .p-cases-page .p-case-detail__support-grid--h156,
  .p-cases-page .p-case-detail__support-grid--h192 {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 0;
  }

  .p-cases-page .p-case-detail__support-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    width: 100%;
    max-width: 280px;
    min-height: 0;
    padding: 10px 14px;
    border-radius: 6px;
  }

  .p-cases-page .p-case-detail__support-grid--h156 .p-case-detail__support-card,
  .p-cases-page .p-case-detail__support-grid--h192 .p-case-detail__support-card {
    min-height: 0;
  }

  .p-cases-page .p-case-detail__support-head {
    gap: 6px;
    min-height: 0;
  }

  .p-cases-page .p-case-detail__support-num {
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
  }

  .p-cases-page .p-case-detail__support-divider {
    height: 30px;
  }

  .p-cases-page .p-case-detail__support-title {
    color: #444;
    font-size: 14px;
    letter-spacing: 0.28px;
    line-height: 1.3;
  }

  .p-cases-page .p-case-detail__support-desc {
    width: 100%;
    max-width: 252px;
    font-size: 13px;
    letter-spacing: 0.26px;
    line-height: 1.4;
  }

  .p-cases-page .p-case-detail__results-summary {
    width: 100%;
    max-width: 270px;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.4;
    text-align: left;
  }

  .p-cases-page .p-case-detail__compare {
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding-inline: 0;
  }

  .p-cases-page .p-case-detail__block--results .p-case-detail__compare {
    width: calc(100% + 40px);
    margin-inline: -20px;
  }

  .p-cases-page .p-case-detail__compare-box {
    width: 100%;
    max-width: 280px;
    padding: 12px 6px;
    border: 1px solid #8f8f8f;
    border-radius: 10px;
  }

  .p-cases-page .p-case-detail__compare-label {
    min-height: calc(14px * 1.3);
    font-size: 14px;
    letter-spacing: 0.56px;
    line-height: 1.3;
  }

  .p-cases-page .p-case-detail__compare-text {
    width: 100%;
    max-width: none;
    font-size: 13px;
    letter-spacing: 0.26px;
    line-height: 1.5;
    text-align: left;
  }

  .p-cases-page .p-case-detail__compare-line {
    white-space: nowrap;
  }

  .p-cases-page .p-case-detail__compare-arrow {
    width: 16px;
    height: 13px;
    transform: rotate(180deg);
  }

  .p-cases-page .p-case-detail__stats {
    gap: 16px;
    max-width: none;
    padding: 0;
  }

  .p-cases-page .p-case-detail__stats-row {
    flex-direction: column;
    align-items: center;
    gap: 16px;
    width: 100%;
  }

  .p-cases-page .p-case-detail__stat,
  .p-cases-page .p-case-detail__stat--wide,
  #case-01 .p-case-detail__stats-row:first-child .p-case-detail__stat:nth-child(3),
  #case-02 .p-case-detail__stat,
  #case-03 .p-case-detail__stat,
  #case-04 .p-case-detail__stat {
    width: 100%;
    max-width: 280px;
  }

  .p-cases-page .p-case-detail__stat-head {
    font-size: 14px;
    letter-spacing: 0.56px;
    line-height: 1.5;
  }

  .p-cases-page .p-case-detail__stat-value {
    font-size: 13px;
    letter-spacing: 0.26px;
    line-height: 1.3;
  }

  .p-cases-page .p-case-detail__recommend-title {
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.5;
    text-align: center;
  }

  .p-cases-page .p-case-detail__recommend {
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: 100%;
  }

  .p-cases-page .p-case-detail__recommend-pill {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    width: 100%;
    max-width: 300px;
    min-height: 56px;
    height: auto;
    padding: 10px 20px;
    border-radius: 40px;
    background: #23629a;
  }

  .p-cases-page .p-case-detail__recommend-pill img {
    width: 22.5px;
    height: 22.5px;
    flex-shrink: 0;
  }

  .p-cases-page .p-case-detail__recommend-pill p {
    color: var(--white);
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.3;
    text-align: left;
    white-space: normal;
  }

  .p-cases-page .p-case-detail__cta-inline {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
  }

  .p-cases-page .p-case-detail__cta-btn {
    width: 260px;
    max-width: 100%;
    height: 56px;
    min-height: 56px;
    font-size: 14px;
    white-space: nowrap;
  }

  .p-cases-page .p-case-detail__cta-note {
    font-size: 12px;
    line-height: 1;
    text-align: center;
  }

  /* ----------------------------------------------------------------
     Consultants page
     ---------------------------------------------------------------- */
  .p-consultants-page__body {
    gap: 50px;
    padding: 40px 20px;
  }

  .p-consultants-page__intro {
    font-size: 14px;
    letter-spacing: 0.56px;
    line-height: 1.5;
    text-align: center;
    margin-bottom: -20px;
  }

  .p-consultant-profile {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 335px;
    margin-inline: auto;
  }

  .p-consultant-profile__main {
    flex: none;
    max-width: none;
    width: 100%;
    gap: 14px;
  }

  .p-consultant-profile__photo {
    width: 100%;
    height: 223px;
  }

  .p-consultant-profile__name-row {
    flex-direction: row;
    align-items: center;
    gap: 20px;
  }

  .p-consultant-profile__name {
    font-size: 30px;
    font-weight: 700;
    letter-spacing: 1.2px;
  }

  .p-consultant-profile__name-en {
    font-size: 16px;
  }

  .p-consultant-profile__role {
    font-size: 14px;
    letter-spacing: 0.56px;
  }

  .p-consultant-profile__qual {
    font-size: 14px;
    letter-spacing: 0.56px;
  }

  .p-consultant-profile__affil {
    font-size: 13px;
    letter-spacing: 0.52px;
    line-height: 1.4;
  }

  #nakano .p-consultant-profile__affil {
    letter-spacing: 0.26px;
    white-space: nowrap;
  }

  .p-consultant-profile__catch {
    color: var(--blue);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 19px;
    font-style: normal;
    font-weight: 500;
    line-height: 140%;
    letter-spacing: 0.38px;
  }

  .p-consultant-profile__catch-accent,
  .p-consultant-profile__catch em {
    color: var(--orange);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 19px;
    font-style: normal;
    font-weight: 500;
    line-height: 140%;
    letter-spacing: 0.38px;
  }

  .p-consultant-profile__catch--29,
  .p-consultant-profile__catch--32 {
    font-size: 19px;
    letter-spacing: 0.38px;
  }

  /* SPではPC用の字間微調整を打ち消し */
  .p-consultant-profile__catch [class*="__catch--ls"] {
    letter-spacing: 0.38px;
  }

  .p-consultant-profile__catch-line {
    display: block;
    white-space: nowrap;
  }

  .p-consultant-profile__story p {
    font-size: 13px;
    letter-spacing: 0.26px;
    line-height: 1.5;
  }

  .p-consultant-profile__aside {
    max-width: none;
    width: 100%;
    gap: 20px;
  }

  .p-consultant-box {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px 16px;
  }

  .p-consultant-box:has(.p-consultant-specialties) {
    align-items: center;
  }

  .p-consultant-box__title {
    align-self: stretch;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 0;
    font-size: 16px;
    letter-spacing: 0.64px;
    text-align: center;
  }

  .p-consultant-box__group {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 0;
  }

  .p-consultant-box__label {
    margin-bottom: 0;
    font-size: 14px;
    letter-spacing: 0.56px;
  }

  .p-consultant-box li {
    font-size: 13px;
    line-height: 1.6;
    letter-spacing: 0.02em;
    padding-left: 1em;
    text-indent: -1em;
  }

  /* PC用改行はSPでは非表示 */
  .u-pc-break {
    display: none;
  }

  .p-consultant-box li .u-pc-break {
    display: none;
  }

  .p-consultant-specialties--4,
  .p-consultant-specialties--5 {
    grid-template-columns: repeat(2, 140px);
    justify-content: center;
    column-gap: 4px;
    row-gap: 0;
    width: 284px;
    max-width: 100%;
    margin-inline: auto;
  }

  .p-consultant-specialties--4 .p-consultant-specialty,
  .p-consultant-specialties--5 .p-consultant-specialty {
    min-height: 153px;
    padding: 6px;
    box-sizing: border-box;
  }

  .p-consultant-specialties--4 .p-consultant-specialty:not(:last-child),
  .p-consultant-specialties--5 .p-consultant-specialty:not(:last-child) {
    border-right: none;
  }

  .p-consultant-specialties--5 {
    row-gap: 14px;
  }

  #kondo .p-consultant-specialties--4 {
    row-gap: 14px;
  }

  .p-consultant-specialties--4 .p-consultant-specialty:last-child:nth-child(odd),
  .p-consultant-specialties--5 .p-consultant-specialty:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
    min-height: 0;
  }

  .p-consultant-specialty__title {
    font-size: 14px;
    line-height: 1.3;
    letter-spacing: 0.56px;
    white-space: normal;
  }

  .p-consultant-specialty__desc,
  .p-consultant-specialty__desc--sm {
    font-size: 11px;
    line-height: 1.4;
  }

  .p-consultant-quote {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 20px 16px;
    width: 100%;
  }

  .p-consultant-quote__icon {
    width: 30px;
    height: 30px;
  }

  .p-consultant-quote p {
    font-size: 14px;
    letter-spacing: 0.28px;
    line-height: 1.5;
    text-align: center;
  }

  /* ----------------------------------------------------------------
     Voices page
     ---------------------------------------------------------------- */
  .p-voices-page__body {
    gap: 40px;
    padding: 40px 20px;
  }

  .p-voices-page__intro {
    flex-direction: column;
    align-items: stretch;
    gap: 30px;
    max-width: none;
    padding-left: 0;
    width: 100%;
  }

  .p-voices-page__intro-text {
    flex: none;
    max-width: none;
    width: 100%;
  }

  .p-voices-page__intro-text p {
    margin: 0!important;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0;
  }

  .p-voices-page__intro-photo {
    flex: none;
    width: 100%;
    max-width: none;
    height: 177px;
    overflow: hidden;
  }

  .p-voices-page__intro-photo img {
    width: 100%;
    height: 100%;
    margin: 0;
    max-width: none;
    object-fit: cover;
    object-position: center;
  }

  .p-voices-page__list {
    gap: 40px;
    max-width: none;
    width: 100%;
  }

  .p-voice-detail {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    min-height: 0;
    padding: 30px 16px 0;
    width: 100%;
    box-sizing: border-box;
  }

  .p-voice-detail__photo,
  .p-voice-detail__photo.photo--01,
  .p-voice-detail__photo.photo--02,
  .p-voice-detail__photo.photo--03 {
    order: 2;
    position: relative;
    flex: none;
    width: 315px;
    max-width: 100%;
    height: 173px;
    aspect-ratio: 122 / 67;
    margin-bottom: 30px;
    overflow: hidden;
    border: 1px solid var(--gray, #8f8f8f);
    background: #fff;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
  }

  .p-voice-detail__photo img,
  .p-voice-detail__photo.photo--01 img,
  .p-voice-detail__photo.photo--02 img,
  .p-voice-detail__photo.photo--03 img {
    position: absolute;
    left: -0.86px;
    top: -0.758px;
    display: block;
    width: 102.545%;
    height: 103.5%;
    max-width: none;
    margin: 0;
    object-fit: cover;
    object-position: center;
  }

  .p-voice-detail__photo--noimage img,
  .p-voice-detail__photo.p-voice-detail__photo--noimage img {
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
  }

  .p-voice-detail__content {
    order: 1;
    gap: 14px;
    width: 303px;
    max-width: 100%;
  }

  .p-voice-detail__head {
    gap: 10px;
  }

  .p-voice-detail__title {
    font-size: 14.5px;
    letter-spacing: 0;
    line-height: 1.5;
  }

  .p-voice-detail__line {
    max-width: none;
  }

  .p-voice-detail__text {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.26px;
    line-height: 1.5;
  }

  .p-voice-detail__tags {
    gap: 8px;
  }

  .p-voice-detail__tag {
    font-size: 13px;
    letter-spacing: 0.52px;
    border-radius: 2px;
    padding: 4px 14px;
  }

  .p-voice-detail__tag--fixed {
    width: 100px;
  }

  .p-voice-detail__date {
    font-size: 13px;
    text-align: left;
    align-self: flex-start;
  }

  /* ----------------------------------------------------------------
     Column page — Figma 2056:22883 (お知らせ・コラム SP)
     ---------------------------------------------------------------- */
  .p-column-page__body {
    gap: 40px;
    padding: 40px 20px;
  }

  .p-column-page__intro {
    gap: 20px;
    width: 100%;
    max-width: 335px;
  }

  .p-column-page__lead {
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.5;
  }

  .p-column-page__lead br {
    display: none;
  }

  /* Figma 2056:22888 — 文字単位の字間 */
  .p-column-page__lead .ls-658 {
    letter-spacing: -6.58px;
  }

  .p-column-page__lead .ls-518 {
    letter-spacing: -5.18px;
  }

  .p-column-page__lead .ls-154 {
    letter-spacing: -1.54px;
  }

  .p-column-page__lead .ls-056 {
    letter-spacing: -0.56px;
  }

  .p-column-page__lead .ls-070 {
    letter-spacing: -0.7px;
  }

  .p-column-page__lead .ls-182 {
    letter-spacing: -1.82px;
  }

  .p-column-page__desc p {
    font-size: 13px;
    letter-spacing: 0.26px;
    line-height: 1.5;
  }

  .p-column-page__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    max-width: none;
    width: 100%;
  }

  .p-column-page__filters {
    justify-content: center;
    flex-wrap: nowrap;
    gap: 14px;
    margin-bottom: 0;
    width: auto;
  }

  .p-column-page__filter {
    width: 80px;
    height: 20px;
    padding: 2px 4px;
    border-color: var(--blue2);
    color: var(--blue2);
    font-size: 11px;
    letter-spacing: 0.44px;
    white-space: nowrap;
  }

  .p-column-page__filter--active {
    border-color: var(--blue2);
    background: var(--blue2);
    color: var(--white);
  }

  .p-column-page__grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    width: 100%;
  }

  .p-column-page .p-column-card {
    width: 300px;
    max-width: 100%;
    height: 300px;
    padding: 20px;
    box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.25);
    box-sizing: border-box;
  }

  .p-column-page .p-column-card__photo {
    width: 260px;
    max-width: 100%;
    height: 146px;
  }

  .p-column-card__photo--noimage,
  .p-column-page .p-column-card__photo--noimage,
  .p-column-detail__related-grid .p-column-card__photo--noimage {
    position: relative;
    background: #fff url("../assets/column-noimage.png") center center / contain no-repeat;
  }

  .p-column-card__photo--noimage img,
  .p-column-card__photo--noimage .p-column-card__img,
  .p-column-page .p-column-card__photo--noimage img,
  .p-column-detail__related-grid .p-column-card__photo--noimage img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  .p-column-detail__hero--noimage img {
    object-fit: contain !important;
    object-position: center center !important;
  }

  .p-column-page .p-column-card__content {
    gap: 8px;
    height: 258px;
  }

  .p-column-page .p-column-card__body {
    gap: 6px;
  }

  .p-column-page .p-column-card__title {
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: 0.28px;
  }

  .p-column-page__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 0;
    gap: 12px;
  }

  .p-column-page__page {
    width: 34px;
    height: 34px;
    padding: 4px 10px 6px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
    color: #444;
    font-size: 16px;
    letter-spacing: 0.64px;
    box-sizing: border-box;
  }

  .p-column-page__page--current {
    background: #333;
    color: var(--white);
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
  }

  /* ----------------------------------------------------------------
     Column detail page
     ---------------------------------------------------------------- */
  .p-column-detail__body {
    gap: 40px;
    padding: 40px 20px;
  }

  .p-column-detail__article {
    gap: 30px;
    max-width: 335px;
    width: 100%;
  }

  .p-column-detail__hero {
    height: 188px;
  }

  .p-column-detail__title {
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0;
  }

  .p-column-detail__summary {
    gap: 20px;
  }

  .p-column-detail__summary-title {
    font-size: 16px;
    letter-spacing: 0.32px;
    line-height: 1;
  }

  .p-column-detail__summary-text {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 1.04px;
    line-height: 1.4;
  }

  .p-column-detail__placeholder span {
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.64px;
  }

  .p-column-detail__placeholder--toc,
  .p-column-detail__placeholder--author {
    min-height: 219px;
  }

  .p-column-detail__placeholder--content {
    min-height: 689px;
  }

  .p-column-detail__related {
    gap: 30px;
    width: 100%;
  }

  .p-column-detail__related-grid {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    gap: 30px;
    width: 100%;
  }

  .p-column-detail__related-grid .p-column-card {
    width: 300px;
    max-width: 100%;
    height: 300px;
    padding: 20px;
    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);
    box-sizing: border-box;
    flex: none;
  }

  .p-column-detail__related-grid .p-column-card__content {
    gap: 10px;
  }

  .p-column-detail__related-grid .p-column-card__photo {
    height: 146px;
  }

  .p-column-detail__related-grid .p-column-card__meta {
    gap: 16px;
  }

  .p-column-detail__related-grid .p-column-card__date {
    font-size: 14px;
    line-height: 14px;
    letter-spacing: 0.56px;
  }

  .p-column-detail__related-grid .p-column-card__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 20px;
    padding: 0 18px;
    font-size: 14px;
    line-height: 14px;
    letter-spacing: 0.56px;
  }

  .p-column-detail__related-grid .p-column-card__title {
    font-size: 14px;
    letter-spacing: 0.28px;
    line-height: 1.4;
  }

  .p-column-detail__back {
    width: 260px;
    height: 50px;
    padding: 10px 30px 12px;
    gap: 2px;
    border-radius: 6px;
    font-size: 14px;
    letter-spacing: 0.56px;
  }

  /* ----------------------------------------------------------------
     Privacy page
     ---------------------------------------------------------------- */
  .p-privacy {
    gap: 30px;
    padding: 40px 20px;
  }

  main.p-privacy {
    min-height: 100dvh;
  }

  .p-privacy__inner {
    gap: 20px;
    max-width: 335px;
  }

  .p-privacy__title {
    font-size: 16px;
    letter-spacing: 0.32px;
    line-height: 1.4;
  }

  .p-privacy__body {
    font-size: 13px;
    letter-spacing: 0.26px;
    line-height: 1.5;
    word-break: break-word;
  }

  .p-privacy__close {
    width: 260px;
    max-width: 100%;
    height: 50px;
    padding: 10px 20px 12px;
    gap: 2px;
    border-radius: 6px;
    font-size: 14px;
    letter-spacing: 0.56px;
  }

  .p-privacy__close img {
    width: 16px;
    height: 16px;
  }

  /* ----------------------------------------------------------------
     Loader
     ---------------------------------------------------------------- */
  .l-loader__inner {
    width: min(320px, calc(100vw - 32px));
  }

  @media (prefers-reduced-motion: reduce) {
    .l-header__menu-line {
      transition: none;
    }
  }
}
