@charset "UTF-8";

/* ------------------------------------------------------------------
   Tablet stylesheet
   Breakpoint: 768px – 1189px
   No design comp — bridges PC layout and SP layout.
   ------------------------------------------------------------------ */

@media (min-width: 768px) and (max-width: 1189px) {
  :root {
    --content-padding: 40px;
    --site-inset: 40px;
    --site-inset-wide: 40px;
    --header-height: 64px;
  }

  /* ----------------------------------------------------------------
     Header — use overlay menu like SP
     ---------------------------------------------------------------- */
  .l-header__inner {
    height: var(--header-height);
    padding: 10px 24px;
  }

  .l-header__logo {
    width: 120px;
  }

  .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, 64px);
    left: 0;
    z-index: 10000;
    width: 100%;
    height: calc(var(--nav-vh, 100svh) - var(--header-height, 64px));
    max-height: calc(var(--nav-vh, 100svh) - var(--header-height, 64px));
    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 40px;
    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: 320px;
    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: 16px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: 0.64px;
  }

  .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-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: 320px;
    max-width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 6px 18px 8px;
    border-radius: 6px;
    background: var(--orange);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
    color: var(--white);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.56px;
    line-height: 22px;
    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;
  }

  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 (TOP FV) — SPと同じ構成（768–1189px）
     ---------------------------------------------------------------- */
  .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;
  }


  /* PC絶対配置の打ち消し（display:contents 構成用） */
  .p-hero__photo {
    right: auto;
    bottom: auto;
    left: auto;
    top: auto;
  }

  .p-hero__content-group--head,
  .p-hero__catch,
  .p-hero__lead,
  .p-hero__stats,
  .p-hero__cta {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  .p-hero__content-group--head {
    order: 1;
    position: relative;
    z-index: 2;
    box-sizing: border-box;
    padding: 48px 32px 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(520px, calc(100% - 48px));
    aspect-ratio: 1 / 1;
    height: auto;
    margin: -12px auto 0;
    left: 0;
    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: 10px;
    margin-top: 20px;
    font-size: 40px;
    line-height: 100%;
  }

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

  .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: 44px;
  }

  .p-hero__catch {
    order: 4;
    position: relative;
    z-index: 2;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    justify-content: center;
    margin-top: 0;
    padding: 28px 32px 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: 32px;
    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: 40px;
  }

  .p-hero__lead {
    order: 5;
    position: relative;
    z-index: 2;
    margin-top: 16px;
    padding-inline: 32px;
    font-size: 16px;
    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: 16px;
    width: 100%;
    max-width: 420px;
    margin: 16px auto 28px;
    box-sizing: border-box;
  }

  .p-hero__flow-item {
    flex: 0 0 auto;
    flex-shrink: 0;
    gap: 8px;
    color: #444;
    font-size: 15px;
    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: 56px;
    height: 56px;
  }

  .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: 32px;
    box-sizing: border-box;
  }

  .p-hero__stats {
    order: unset;
    justify-content: center;
    gap: 12px;
    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 140px;
    width: 140px;
    min-height: 110px;
    padding: 20px 12px;
    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: 360px;
    margin: 32px auto 56px;
    padding-inline: 32px;
    box-sizing: content-box;
  }

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

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

  /* ----------------------------------------------------------------
     Worries / Solution
     ---------------------------------------------------------------- */
  .p-worries {
    padding-inline: var(--site-inset);
  }

  .p-worries__content {
    max-width: 100%;
    margin-inline: auto;
    padding-inline: 0;
  }

  .p-solution__title {
    white-space: normal;
    font-size: 30px;
  }

  .p-solution__inner {
    padding-inline: var(--content-padding);
  }

  /* ----------------------------------------------------------------
     Services
     ---------------------------------------------------------------- */
  .p-services {
    padding-inline: var(--site-inset);
  }

  .p-services__inner {
    padding: 56px var(--content-padding);
    border-radius: 48px;
  }

  .p-services__title {
    font-size: 30px;
  }

  .p-services__grid {
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 560px;
    margin-inline: auto;
  }

  .p-service-card {
    width: 100%;
    max-width: none;
    min-width: 0;
  }

  .p-service-card__title,
  .p-service-card__meta,
  .p-service-card__desc {
    white-space: normal;
  }

  .p-service-card__desc strong,
  .p-service-card__desc p {
    white-space: normal;
  }

  .p-services__cta .c-btn {
    width: 100%;
    max-width: 360px;
  }

  /* ----------------------------------------------------------------
     Strengths
     ---------------------------------------------------------------- */
  .p-strengths__inner {
    padding: 56px var(--content-padding);
  }

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

  .p-strength-card {
    width: 100%;
    max-width: none;
  }

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

  /* ----------------------------------------------------------------
     Difference
     ---------------------------------------------------------------- */
  .p-difference {
    padding: 56px var(--site-inset) 40px;
  }

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

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

  .p-difference__image {
    width: 100%;
    max-width: 480px;
    height: auto;
    aspect-ratio: 510 / 251;
  }

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

  .p-difference__cta .c-btn {
    width: 100%;
    max-width: 360px;
  }

  /* ----------------------------------------------------------------
     Achievements — TB: 全幅 + PC 同様 opacity 0.4
     ---------------------------------------------------------------- */
  .p-achievements {
    padding: 56px var(--site-inset);
  }

  .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__grid-block {
    width: 100%;
    max-width: 580px;
    margin-inline: auto;
  }

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

  .p-achievement-card {
    width: 100%;
    max-width: none;
  }

  /* ----------------------------------------------------------------
     Cases（縦積み時はSP版のフォント・カード比率）
     ---------------------------------------------------------------- */
  .p-cases {
    padding: 40px var(--site-inset) 50px;
  }

  .p-cases .c-section-title {
    font-size: 20px;
    letter-spacing: 0.4px;
  }

  .p-cases .c-section-header__subtitle {
    font-size: 13px;
    letter-spacing: 0.2px;
  }

  .p-cases__grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    max-width: 300px;
    margin-inline: auto;
  }

  .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;
    max-width: 100%;
    height: 56px;
    min-height: 56px;
    margin-top: 30px;
    font-size: 14px;
  }

  /* ----------------------------------------------------------------
     Voices（縦積み時はSP版のフォント・カード比率）
     ---------------------------------------------------------------- */
  .p-voices {
    padding: 40px var(--site-inset) 50px;
  }

  .p-voices .c-section-title {
    font-size: 20px;
    letter-spacing: 0.4px;
  }

  .p-voices .c-section-header__subtitle {
    font-size: 13px;
    letter-spacing: 0.2px;
  }

  .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 {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
    max-width: none;
    margin-inline: auto;
    margin-top: 30px;
  }

  .p-voice-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 300px;
    min-width: 0;
    height: auto;
  }

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

  .p-voice-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
  }

  .p-voice-card__tags {
    margin-top: auto;
  }

  .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;
    max-width: 100%;
    height: 56px;
    min-height: 56px;
    margin-top: 30px;
    font-size: 14px;
  }

  /* ----------------------------------------------------------------
     Consultants
     ---------------------------------------------------------------- */
  .p-consultants {
    padding: 56px var(--site-inset);
  }

  .p-consultants__photo {
    width: 100%;
    max-width: 600px;
    height: auto;
    aspect-ratio: 680 / 390;
  }

  .p-consultants__body > .c-btn {
    width: 100%;
    max-width: 360px;
  }

  /* ----------------------------------------------------------------
     Flow
     ---------------------------------------------------------------- */
  .p-flow {
    padding: 56px var(--site-inset);
  }

  .p-flow__steps {
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 12px 8px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .p-flow__step {
    flex: 0 0 auto;
    width: 180px;
    min-width: 180px;
    max-width: 180px;
    min-height: 244px;
    height: auto;
  }

  .p-flow__step-arrow {
    display: block;
    align-self: center;
  }

  .p-flow__cta-grid {
    flex-direction: column;
    align-items: center;
    gap: 28px;
  }

  .p-flow__cta-grid > div:first-child > p,
  .p-flow__cta-list {
    width: 100%;
    max-width: 400px;
  }

  .p-flow__cta-note__sub {
    white-space: normal;
  }

  .p-flow__cta-action .c-btn {
    width: 100%;
    max-width: 360px;
  }

  /* ----------------------------------------------------------------
     FAQ / Column（縦積み時はSP版のフォント・カード比率）
     ---------------------------------------------------------------- */
  .p-faq {
    padding: 56px var(--site-inset);
  }

  .p-column {
    padding: 40px var(--site-inset);
  }

  .p-column .c-section-title {
    font-size: 20px;
    letter-spacing: 0.4px;
  }

  .p-column .c-section-header__subtitle {
    font-size: 13px;
    letter-spacing: 0.2px;
  }

  .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;
  }

  .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__grid {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
    width: 100%;
    max-width: 300px;
    margin-inline: auto;
    margin-top: 40px;
  }

  .p-column-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 300px;
    min-width: 0;
    height: 300px;
    padding: 20px;
    box-sizing: border-box;
    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);
    overflow: hidden;
  }

  .p-column-card__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    height: auto;
    min-height: 0;
  }

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

  .p-column-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 6px;
    min-height: 0;
  }

  .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 {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: 0.28px;
    text-align: left;
  }

  .p-column__btn {
    width: 260px;
    max-width: 100%;
    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 var(--site-inset);
    box-shadow: none;
  }

  .p-cta-block__card {
    flex-direction: column;
    align-items: center;
    gap: 32px;
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
    padding: 48px 32px;
    border-radius: 20px;
    background: var(--white, #fff);
    box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.25);
    box-sizing: border-box;
  }

  .p-cta-block__left {
    align-items: center;
    width: 100%;
    flex-shrink: 1;
  }

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

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

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

  .p-cta-block__photo img {
    position: absolute;
    width: 128.34%;
    height: 110.45%;
    left: -15.03%;
    top: -2.91%;
    max-width: none;
    object-fit: cover;
  }

  .p-cta-block__form {
    width: 100%;
    max-width: 520px;
    padding: 30px 24px;
    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;
    align-items: stretch;
    flex-shrink: 1;
  }

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

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

  .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;
    min-width: 0 !important;
    box-sizing: border-box !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,
  .p-cta-block__form--cf7 .p-cta-block__field .wpcf7-form-control:not([type="checkbox"]):not([type="submit"]):not([type="acceptance"]) {
    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%;
    max-width: none;
    box-sizing: border-box;
  }

  .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: 40px;
    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: 40px;
    min-height: 40px;
    line-height: 38px;
    padding-top: 0;
    padding-bottom: 0;
  }

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

  .p-cta-block__privacy {
    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% + 188px) !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: 100%;
    max-width: 360px;
    height: 50px;
    margin: 0 !important;
    flex: 0 0 auto !important;
    align-self: center;
    font-size: 14px;
    gap: 2px;
  }

  .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: 56px var(--site-inset) 24px;
  }

  .l-footer__body {
    gap: 48px;
  }

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

  .l-footer__info {
    align-items: flex-start;
    text-align: left;
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
  }

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

  .l-footer__logo-wrap {
    margin-left: 0;
    margin-inline: 0;
    height: auto;
    overflow: visible;
  }

  .l-footer__logo {
    position: static;
    width: 210px;
    height: auto;
    left: auto;
    top: auto;
    max-width: 100%;
  }

  .l-footer__company {
    text-align: left;
  }

  .l-footer__address {
    align-items: flex-start;
    text-align: left;
  }

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

  .l-footer__nav {
    width: 100%;
    max-width: 520px;
    height: auto;
    justify-content: center;
    gap: 20px 24px;
  }

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

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

  /* ----------------------------------------------------------------
     Sub pages — common (hero, layout)
     ---------------------------------------------------------------- */
  .p-page-hero {
    min-height: 180px;
    padding: 40px var(--site-inset);
    gap: 10px;
    justify-content: center;
    background-color: #eef7f9;
  }

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

  .p-page-hero .c-section-header__subtitle {
    gap: 6px;
    margin-bottom: 0;
    font-size: 12px;
    letter-spacing: 0.24px;
  }

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

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

  /* ----------------------------------------------------------------
     Company page
     ---------------------------------------------------------------- */
  .p-company__body {
    gap: 56px;
    padding: 56px var(--site-inset);
  }

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

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

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

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

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

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

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

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

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

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

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

  .p-company-subhead__subtitle {
    font-size: 14px;
    letter-spacing: 0.28px;
  }

  .p-company-table__row {
    padding: 12px 0;
    font-size: 14px;
    letter-spacing: 0.56px;
    gap: 8px;
  }

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

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

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

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

  .p-company-message__catch {
    justify-content: center;
    font-size: 30px;
  }

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

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

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

  .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: 280px;
  }

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

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

  /* ----------------------------------------------------------------
     Service page
     ---------------------------------------------------------------- */
  .p-service__body {
    gap: 48px;
    padding: 56px var(--site-inset);
  }

  .p-service__lead {
    font-size: 16px;
    letter-spacing: 0.64px;
    line-height: 1.5;
    text-align: center;
  }

  .p-service .p-service-card {
    align-items: center;
    gap: 24px;
    width: 100%;
    max-width: 720px;
    margin-inline: auto;
    padding: 40px 24px 32px;
    border-radius: 20px;
  }

  .p-service .p-service-card__content {
    order: 1;
    width: 100%;
    position: static;
  }

  .p-service .p-service-card__num,
  .p-service .p-service-card__num--01,
  .p-service .p-service-card__num--inline {
    left: auto;
    right: 24px;
    top: 28px;
    transform: none;
    font-size: 64px;
    letter-spacing: -3.2px;
  }

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

  .p-service .p-service-card__photo {
    order: 2;
    width: 100%;
    max-width: 520px;
    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: 220px;
    aspect-ratio: auto;
  }

  .p-service .p-service-card__title {
    font-size: 28px;
    letter-spacing: 1.12px;
  }

  .p-service .p-service-card__desc {
    width: 100%;
    max-width: none;
    font-size: 14px;
  }

  .p-service .p-service-card__points,
  .p-service .p-service-card__points--inset {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    flex-direction: row;
    align-items: stretch;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    padding-inline: 0;
  }

  .p-service-point {
    width: auto;
    max-width: none;
    min-width: 0;
    height: auto;
    min-height: 120px;
    padding: 16px;
  }

  .p-service-point__title {
    white-space: normal;
    font-size: 17px;
  }

  /* ----------------------------------------------------------------
     Cases page
     ---------------------------------------------------------------- */
  .p-cases-page__body {
    gap: 48px;
    padding: 56px var(--site-inset) 64px;
  }

  .p-cases-page__intro {
    gap: 12px;
    max-width: 560px;
    margin-inline: auto;
    padding-inline: 0;
    text-align: center;
  }

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

  .p-cases-page .p-case-detail {
    gap: 20px;
    width: 100%;
    max-width: 600px;
    margin-inline: auto;
    padding: 40px 24px;
    border-radius: 20px;
  }

  .p-cases-page .p-case-detail__hero {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    width: 100%;
    max-width: none;
    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: 20px;
    letter-spacing: 0.8px;
    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: 13px;
    letter-spacing: 0;
    line-height: 1.2;
  }

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

  .p-cases-page .p-case-detail__lead {
    font-size: 14px;
    letter-spacing: 0.28px;
    line-height: 1.4;
  }

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

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

  .p-cases-page .p-case-detail__block {
    gap: 16px;
    width: 100%;
    max-width: none;
    padding: 24px;
    border-radius: 10px;
    box-sizing: border-box;
  }

  .p-cases-page .p-case-detail__block--summary {
    padding: 24px 28px;
    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: 24px;
    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: 15px;
    letter-spacing: 0.6px;
  }

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

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

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

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

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

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

  .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: 14px;
    height: 9px;
    max-width: none;
    margin-inline: 0;
    transform: rotate(180deg);
  }

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

  .p-cases-page .p-case-detail__challenge-card {
    width: 100%;
    max-width: none;
    min-height: 56px;
    padding: 10px 14px;
    gap: 10px;
  }

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

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

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

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

  .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: stretch;
    gap: 10px;
    width: 100%;
    padding: 0;
  }

  .p-cases-page .p-case-detail__support-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    width: 100%;
    max-width: none;
    min-height: 0;
    padding: 12px 16px;
    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: 8px;
    min-height: 0;
  }

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

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

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

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

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

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

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

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

  .p-cases-page .p-case-detail__compare-text {
    width: 100%;
    max-width: none;
    font-size: 14px;
    letter-spacing: 0.28px;
    line-height: 1.5;
    text-align: left;
    white-space: normal;
  }

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

  .p-cases-page .p-case-detail__stats {
    flex-direction: column;
    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: 400px;
  }

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

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

  /* PC用改行はタブレットでも非表示（自然折り返し） */
  .u-pc-break {
    display: none;
  }

  .p-cases-page .p-case-detail__recommend-title {
    font-size: 15px;
    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: 400px;
    min-height: 56px;
    height: auto;
    padding: 10px 20px;
    border-radius: 40px;
    background: #23629a;
  }

  .p-cases-page .p-case-detail__recommend-pill img {
    width: 22px;
    height: 22px;
    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: 280px;
    max-width: 100%;
    min-height: 50px;
    font-size: 14px;
  }

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

  /* ----------------------------------------------------------------
     Consultants page
     ---------------------------------------------------------------- */
  .p-consultants-page__body {
    gap: 56px;
    padding: 56px var(--site-inset);
  }

  .p-consultants-page__intro {
    font-size: 16px;
    letter-spacing: 0.64px;
    line-height: 1.5;
    text-align: center;
    margin-bottom: 0;
  }

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

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

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

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

  .p-consultant-box,
  .p-consultant-quote {
    box-sizing: border-box;
    width: 100%;
  }

  .p-consultant-specialties--4,
  .p-consultant-specialties--5 {
    grid-template-columns: repeat(5, 120px);
    justify-content: center;
    column-gap: 8px;
    width: 100%;
    max-width: 320px;
    margin-inline: auto;
  }

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

  /* ----------------------------------------------------------------
     Voices page
     ---------------------------------------------------------------- */
  .p-voices-page__body {
    gap: 48px;
    padding: 56px var(--site-inset);
  }

  .p-voices-page__intro {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
    max-width: 600px;
    margin-inline: auto;
    padding-left: 0;
    width: 100%;
  }

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

  .p-voices-page__intro-text p {
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0.32px;
  }

  .p-voices-page__intro-photo {
    flex: none;
    width: 100%;
    max-width: none;
    height: 220px;
    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: 32px;
    max-width: 600px;
    margin-inline: auto;
    width: 100%;
  }

  .p-voice-detail {
    flex-direction: column;
    align-items: center;
    gap: 20px;
    min-height: 0;
    padding: 32px 24px 0;
    width: 100%;
  }

  .p-voice-detail__content {
    order: 1;
    width: 100%;
    max-width: none;
  }

  .p-voice-detail__photo {
    order: 2;
    position: relative;
    flex: none;
    width: 315px;
    max-width: 100%;
    height: 173px;
    aspect-ratio: 122 / 67;
    margin-bottom: 30px;
    margin-inline: auto;
    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 {
    position: absolute;
    left: -4.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.photo--01 img,
  .p-voice-detail__photo.photo--02 img,
  .p-voice-detail__photo.photo--03 img {
    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__title {
    font-size: 16px;
    line-height: 1.5;
  }

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

  /* ----------------------------------------------------------------
     Column page
     ---------------------------------------------------------------- */
  .p-column-page__body {
    gap: 40px;
    padding: 56px var(--site-inset);
  }

  .p-column-page__lead {
    font-size: 18px;
    letter-spacing: 0.36px;
    text-align: center;
  }

  .p-column-page__desc p {
    font-size: 15px;
    letter-spacing: 0.3px;
    line-height: 1.5;
    text-align: center;
  }

  .p-column-page__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    width: 100%;
    max-width: 640px;
    margin-inline: auto;
  }

  .p-column-page__filters {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 0;
    width: 100%;
  }

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

  .p-column-page .p-column-card {
    width: 300px;
    max-width: 100%;
    height: 300px;
    padding: 20px;
    box-sizing: border-box;
  }

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

  .p-column-card__photo--noimage img,
  .p-column-page .p-column-card__photo--noimage img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    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__tag {
    height: 20px;
  }

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

  /* ----------------------------------------------------------------
     Column detail page
     ---------------------------------------------------------------- */
  .p-column-detail__body {
    gap: 60px;
    padding: 56px var(--site-inset);
  }

  .p-column-detail__article {
    gap: 40px;
    max-width: 600px;
    width: 100%;
    margin-inline: auto;
  }

  .p-column-detail__hero {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .p-column-detail__hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .p-column-detail__title {
    font-size: 18px;
    line-height: 1.5;
  }

  .p-column-detail__summary-text {
    font-size: 14px;
    line-height: 1.5;
  }

  .p-column-detail__related {
    gap: 40px;
    max-width: none;
    margin-inline: auto;
    width: 100%;
    align-self: stretch;
  }

  .p-column-detail__related-grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
    gap: 20px;
    width: max-content;
    max-width: 100%;
    margin-inline: auto;
  }

  .p-column-detail__body > .p-column-detail__related-grid .p-column-card,
  .p-column-detail__related-grid .p-column-card {
    width: 300px;
    max-width: 300px;
    height: 300px;
    padding: 20px;
    box-sizing: border-box;
    flex: 0 0 300px;
  }

  .p-column-detail__body > .p-column-detail__back,
  .p-column-detail__back {
    width: 280px;
    height: 50px;
    align-self: center;
    margin-inline: auto;
  }

  /* ----------------------------------------------------------------
     Privacy page
     ---------------------------------------------------------------- */
  .p-privacy {
    gap: 40px;
    padding: 56px var(--site-inset);
  }

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

  .p-privacy__inner {
    gap: 32px;
    max-width: 600px;
  }

  .p-privacy__title {
    font-size: 17px;
    line-height: 1.4;
  }

  .p-privacy__body {
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.28px;
  }

  .p-privacy__close {
    width: 320px;
    max-width: 100%;
    height: 50px;
    padding: 10px 24px 12px;
    border-radius: 8px;
    font-size: 14px;
    letter-spacing: 0.56px;
  }

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

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

/* 1115px以下は縦積み。1116–1189はサービス／強み／コラムのみ複数列（カード幅固定） */
@media (min-width: 1116px) and (max-width: 1189px) {
  .p-services__grid,
  .p-strengths__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: none;
  }

  .p-column__grid {
    display: grid;
    grid-template-columns: repeat(3, 300px);
    justify-content: center;
    align-items: start;
    gap: 20px;
    width: 100%;
    max-width: none;
    margin-top: 40px;
  }

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

@media (min-width: 768px) and (max-width: 860px) {
  :root {
    --content-padding: 32px;
    --site-inset: 32px;
    --site-inset-wide: 32px;
  }
}

/* サービスカード番号: 798px以下は修正前の位置に戻す */
@media (min-width: 768px) and (max-width: 798px) {
  .p-service .p-service-card__content {
    position: relative;
  }

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

  .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;
  }

  .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;
  }
}
