@charset "UTF-8";
/*! destyle.css v3.0.0 | MIT License | https://github.com/nicolas-cusan/destyle.min.css */
*, ::before, ::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

body {
  margin: 0;
}

main {
  display: block;
}

p, table, blockquote, address, pre, iframe, form, figure, dl {
  margin: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

dt {
  font-weight: 700;
}

dd {
  margin-left: 0;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

pre {
  font-family: monospace, monospace;
  font-size: inherit;
}

address {
  font-style: inherit;
}

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

abbr[title] {
  text-decoration: underline dotted;
}

b, strong {
  font-weight: bolder;
}

code, kbd, samp {
  font-family: monospace, monospace;
  font-size: inherit;
}

small {
  font-size: 80%;
}

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

svg, img, embed, object, iframe {
  vertical-align: bottom;
}

button, input, optgroup, select, textarea {
  -webkit-appearance: none;
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit;
}

[type=checkbox] {
  -webkit-appearance: checkbox;
  appearance: checkbox;
}

[type=radio] {
  -webkit-appearance: radio;
  appearance: radio;
}

button, [type=button], [type=reset], [type=submit] {
  cursor: pointer;
}

button:disabled, [type=button]:disabled, [type=reset]:disabled, [type=submit]:disabled {
  cursor: default;
}

:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

option {
  padding: 0;
}

fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

legend {
  padding: 0;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

label[for] {
  cursor: pointer;
}

details {
  display: block;
}

summary {
  display: list-item;
}

[contenteditable]:focus {
  outline: auto;
}

table {
  border-color: inherit;
}

caption {
  text-align: left;
}

td, th {
  vertical-align: top;
  padding: 0;
}

th {
  text-align: left;
  font-weight: 700;
}

html {
  font-family: "Noto Sans JP", sans-serif;
  color: #222222;
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
}

.p-body{
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
}

body {
  position: relative;
}
body.fixed {
  overflow: hidden;
}

a {
  color: #222222;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

.u-en {
  font-family: "Roboto", sans-serif;
}

.l-wrapper {
  padding-left: 40px;
  padding-right: 40px;
}

.l-inner {
  width: 100%;
  margin: 0 auto;
  max-width: 1300px;
}

.pc-only {
  display: block;
}

.br-pc-only {
  display: inline;
}

.sp-only {
  display: none;
}

.br-sp-only {
  display: none;
}

/*===========================================================================*/
/*  Variables & Mixins                                                        */
/*===========================================================================*/
/*===========================================================================*/
/*  Header                                                                    */
/*===========================================================================*/
.p-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 120;
  background: rgba(255, 255, 255, 0.4);
  height: 82px;
  display: flex;
  align-items: center;
  padding-left: 45px;
  padding-right: 60px;
}
@media (max-width: 1400px) {
  .p-header {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.p-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  width: 100%;
}
.p-header__logo {
  display: block;
}
.p-header__logo img {
  width: 194px;
  height: auto;
}
@media (max-width: 1400px) {
  .p-header__logo img {
    width: 170px;
  }
}
.p-header__nav {
  display: flex;
  align-items: center;
  gap: 63px;
}
@media (max-width: 1400px) {
  .p-header__nav {
    gap: 20px;
  }
}
.p-header__nav-list {
  display: flex;
  list-style: none;
  gap: 63px;
}
@media (max-width: 1400px) {
  .p-header__nav-list {
    gap: 20px;
  }
}
.p-header__nav-list a {
  font-size: 18px;
  font-weight: 500;
  text-decoration: none;
  color: #222222;
  transition: opacity 0.2s;
}
@media (max-width: 1400px) {
  .p-header__nav-list a {
    font-size: 16px;
  }
}
.p-header__nav-list a:hover {
  opacity: 0.7;
}
.p-header__btns {
  display: flex;
}
.p-header__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 170px;
  height: 50px;
  font-size: 18px;
  font-weight: 500;
  text-decoration: none;
  color: #fff;
  transition: opacity 0.2s;
}
@media (max-width: 1400px) {
  .p-header__btn {
    width: 130px;
    font-size: 16px;
  }
}
.p-header__btn:hover {
  opacity: 0.85;
}
.p-header__btn--blue {
  background: #2E609F;
}
.p-header__btn--yellow {
  background: #CCB200;
}

/*===========================================================================*/
/*  Hamburger Button                                                          */
/*===========================================================================*/
.p-header .ham-btn {
  display: none;
}

/* 1001px以上でPCナビ、1000px以下でハンバーガーに切り替え */
@media (max-width: 1000px) {
  .p-header__nav {
    display: none;
  }
  .p-header .ham-btn {
    display: flex;
  }
}
.ham-btn {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px;
  z-index: 110;
}
.ham-btn span {
  display: block;
  width: 23px;
  height: 3px;
  background: #2E609F;
  transition: transform 0.3s ease;
  transform-origin: center;
}
.ham-btn.active span:nth-child(1) {
  transform: translateY(4.5px) rotate(45deg);
}
.ham-btn.active span:nth-child(2) {
  transform: translateY(-4.5px) rotate(-45deg);
}

/*===========================================================================*/
/*  Hamburger Menu                                                            */
/*===========================================================================*/
.ham-menu {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 110;
  overflow-y: auto;
}
.ham-menu.active {
  display: block;
}
.ham-menu__panel {
  background: #fff;
  padding: calc(var(--header-height, 82px) + 16px) 20px 36px;
  box-shadow: 2px 2px 20px rgba(0, 0, 0, 0.12);
  border-radius: 0 0 30px 30px;
}
.ham-menu__list {
  list-style: none;
}
.ham-menu__list li {
  border-bottom: 1px dashed #222;
}
.ham-menu__list li:first-child {
  border-top: 1px dashed #222;
}
.ham-menu__list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 0;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  color: #222;
}
.ham-menu__list li a::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
}
.ham-menu__btns {
  display: flex;
  margin-top: 24px;
}
.ham-menu__btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  color: #fff;
  transition: opacity 0.2s;
}
.ham-menu__btn:hover {
  opacity: 0.85;
}
.ham-menu__btn--blue {
  background: #2E609F;
}
.ham-menu__btn--yellow {
  background: #CCB200;
}

/*===========================================================================*/
/*  Common: p-btn-more                                                        */
/*===========================================================================*/
.p-btn-more {
  display: flex;
  justify-content: center;
  align-items: center;
  width: clamp(180px, 18.99vw, 262px);
  height: clamp(48px, 4.93vw, 68px);
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  border-radius: 9999px;
  font-size: clamp(16px, 1.74vw, 24px);
  padding-right: clamp(12px, 1.3vw, 18px);
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s;
  position: relative;
}
.p-btn-more:hover {
  opacity: 0.85;
}
.p-btn-more__circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(20px, 2.1vw, 29px);
  height: clamp(20px, 2.1vw, 29px);
  border-radius: 50%;
  background: #fff;
  flex-shrink: 0;
  color: #5581B8;
  position: absolute;
  right: clamp(14px, 2.03vw, 28px);
}

/*===========================================================================*/
/*  body                                                                      */
/*===========================================================================*/
.p-body {
  position: relative;
}
.p-body__bg {
  position: absolute;
  z-index: 1;
}
.p-body__bg.--1 {
  width: 78.6979%;
  top: -1.5%;
  right: 0;
}
@media (max-width: 1300px) {
  .p-body__bg.--1 {
    top: -3.2%;
  }
}
.p-body__bg.--2 {
  width: 110%;
  /* top: 17%; */
  top: 11%;
  left: -3%;
}

/*===========================================================================*/
/*  Hero                                                                      */
/*===========================================================================*/
.p-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  z-index: 2;
}
.p-hero__bg {
  position: absolute;
  inset: 0;
}
.p-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.p-hero__content {
  position: absolute;
  left: 50%; /* Figma: x=960/1920=50% */
  top: 71.94%; /* Figma: y=777/1080=71.94% */
}
.p-hero__catch {
  font-size: clamp(48px, 5vw, 96px);
  font-weight: 600;
  color: #fff;
  line-height: 1.448;
  text-shadow: 0 7px 6px rgba(0, 0, 0, 0.46);
  white-space: nowrap;
}
.p-hero__sub {
  margin-top: 17px;
  font-size: clamp(14px, 1.35vw, 26px);
  font-weight: 700;
  color: #fff;
  line-height: 1.448;
  letter-spacing: 0.02em;
  text-shadow: 0 5px 6px rgba(0, 0, 0, 0.46);
  white-space: nowrap;
}

/*===========================================================================*/
/*  Ticker                                                                    */
/*===========================================================================*/
.p-ticker {
  overflow: hidden;
  padding-top: clamp(80px, 17.25vw, 238px);
}
.p-ticker__wrap {
  overflow: hidden;
  width: 100%;
}
.p-ticker__track {
  display: flex;
  gap: 40px;
  animation: p-ticker-scroll 25s linear infinite;
  width: max-content;
}
.p-ticker__item {
  flex-shrink: 0;
  width: 250px;
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #DEDEDE;
}
.p-ticker__item img {
  max-height: 80px;
  width: auto;
  object-fit: contain;
}

@keyframes p-ticker-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/*===========================================================================*/
/*  About                                                                     */
/*===========================================================================*/
.p-about {
  padding-top: clamp(80px, 14.13vw, 195px);
  padding-bottom: clamp(100px, 17.39vw, 240px);
}
.p-about__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(24px, 4.35vw, 60px);
  position: relative;
  z-index: 2;
}
.p-about__content {
  flex: 1;
  min-width: 0;
}
.p-about__en {
  font-size: clamp(26px, 3.04vw, 42px);
  font-weight: 700;
  line-height: 1.17;
  display: inline-block;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: clamp(30px, 5.29vw, 73px);
}
.p-about__title {
  font-size: clamp(26px, 3.19vw, 44px);
  font-weight: 700;
  line-height: 1.45;
  color: #222;
  margin-bottom: clamp(24px, 4.35vw, 60px);
}
.p-about__text {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 500;
  line-height: 1.75;
  color: #222;
  margin-bottom: clamp(32px, 5.43vw, 75px);
}
.p-about__image {
  width: min(551px, 42%);
  flex-shrink: 0;
}
.p-about__image img {
  width: 100%;
  height: auto;
}

/*===========================================================================*/
/*  Service                                                                   */
/*===========================================================================*/
.p-service {
  background: rgba(238, 242, 248, 0.82);
  padding-top: clamp(60px, 10.87vw, 150px);
  padding-bottom: clamp(80px, 13.04vw, 180px);
  border-radius: clamp(60px, 14.49vw, 200px) 0 0 0;
  background: rgba(238, 242, 248, 0.82);
  position: relative;
}
.p-service__bg {
  position: absolute;
  width: 130%;
  left: 50%;
  transform: translateX(-50%);
  top: 55%;
  z-index: -1;
}
.p-service .l-inner {
  position: relative;
  z-index: 1;
}
.p-service__en {
  display: inline-block;
  font-size: clamp(48px, 5.94vw, 82px);
  font-weight: 700;
  line-height: 1.17;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 8px;
}
.p-service__title {
  font-size: clamp(22px, 2.32vw, 32px);
  font-weight: 700;
  line-height: 1.75;
  color: #222;
  margin-bottom: clamp(32px, 4.93vw, 68px);
}
.p-service__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 3.84vw, 53px);
}
.p-service__card-wrap {
  position: relative;
  overflow: hidden;
}
.p-service__card-wrap .p-service__card-img {
  display: block;
  width: 100%;
  aspect-ratio: 398/500;
  object-fit: cover;
}
.p-service__card-body {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  right: 0;
  color: #fff;
  text-align: center;
  z-index: 1;
}
.p-service__card-icon {
  width: auto;
  height: clamp(32px, 3.84vw, 53px);
  display: inline-block;
  margin-bottom: clamp(14px, 1.35vw, 26px);
}
.p-service__card-name {
  font-size: clamp(22px, 2.32vw, 32px);
  font-weight: 700;
  line-height: 1.17;
  margin-bottom: 7px;
}
.p-service__card-sub {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 500;
  line-height: 1.75;
  margin-bottom: clamp(20px, 2.83vw, 39px);
}
.p-service__card-text {
  font-size: clamp(12px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 1.75;
  margin-bottom: clamp(20px, 2.97vw, 41px);
  min-height: 5.25em;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.p-service__card-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(13px, 1.3vw, 18px);
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-service__card-link:hover {
  opacity: 0.8;
}

/*===========================================================================*/
/*  Reason                                                                    */
/*===========================================================================*/
.p-reason {
  padding-top: clamp(80px, 16.45vw, 227px);
  padding-bottom: clamp(60px, 12.1vw, 167px);
  position: relative;
}
.p-reason__bg {
  position: absolute;
  width: 115%;
  left: -5%;
  top: 44%;
  z-index: -1;
}
.p-reason__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* Figma: title bottom y=477, image top y=598 → gap 121px */
  margin-bottom: clamp(40px, 8.77vw, 121px);
  padding-right: clamp(20px, 3.48vw, 48px);
  /*
    l-inner左端に合わせる: l-wrapperのpadding(40px)は親が持つため、
    追加でl-inner centering分だけ左パディング = max(0, (100vw - 1380px) / 2)
  */
  padding-left: max(0px, (100vw - 1380px) / 2);
}
.p-reason__en {
  font-size: clamp(28px, 3.04vw, 42px);
  font-weight: 700;
  line-height: 1.17;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 1.738em;
  display: inline-block;
}
.p-reason__title {
  font-size: clamp(28px, 3.19vw, 44px);
  font-weight: 700;
  line-height: 1.45;
  color: #222;
}
.p-reason__layout {
  display: grid;
  /* 左カラム: viewport中央まで / 右カラム: 残りを埋める / gap: 最大105px */
  grid-template-columns: calc(50vw - 40px) 1fr;
  column-gap: clamp(20px, 7.61vw, 105px);
  /* 行定義: row1=見出し高さ / row2=画像が伸びる */
  grid-template-rows: auto 1fr;
  margin-bottom: clamp(60px, 12.1vw, 167px);
}
.p-reason__col-left {
  /* 明示配置: col1 / row1 */
  grid-column: 1;
  grid-row: 1;
}
.p-reason__col-right {
  /* 明示配置: col2 / row1〜2 (見出し+画像の高さ全体にまたがる) */
  grid-column: 2;
  grid-row: 1/span 2;
  display: flex;
  flex-direction: column;
  align-self: start;
  /* Figma: gap between boxes 30px */
  gap: clamp(16px, 2.17vw, 30px);
}
.p-reason__side-img {
  /* 明示配置: col1 / row2 (見出しの下) */
  grid-column: 1;
  grid-row: 2;
  overflow: hidden;
  min-height: 160px;
  align-self: stretch;
  /* 画像を viewport 左端(x=0)から左カラム右端まで全体に表示 */
  margin-left: -40px;
  width: calc(100% + 40px);
}
.p-reason__side-img img {
  width: 100%;
  height: auto;
}
.p-reason__item-box {
  position: relative;
}
.p-reason__item-box::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(138deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 57%, rgb(85, 129, 184) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  pointer-events: none;
}
.p-reason__item-box {
  /* Figma: top 31px, left 36px, right 42px, bottom ~40px */
  padding: clamp(20px, 2.25vw, 31px) clamp(20px, 3.04vw, 42px) clamp(20px, 2.9vw, 40px) clamp(20px, 2.61vw, 36px);
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.45vw, 20px);
  background: #fff;
}
.p-reason__item-top {
  display: flex;
  align-items: center;
  gap: clamp(14px, 2.03vw, 28px);
}
.p-reason__num {
  font-size: clamp(48px, 5.8vw, 80px);
  font-weight: 700;
  line-height: 1.17;
  flex-shrink: 0;
  background: linear-gradient(127deg, rgb(219, 194, 22) 7%, rgb(187, 188, 188) 47%, rgb(85, 129, 184) 87%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-style: italic;
}
.p-reason__item-title {
  font-size: clamp(17px, 1.74vw, 24px);
  font-weight: 900;
  line-height: 1.6;
  color: #222;
}
.p-reason__item-text {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 1.75;
  color: #222;
}
.p-reason {
  /* Stats — l-innerクラスで幅制限・中央揃えを適用 */
}
.p-reason__stats {
  margin-top: 0; /* margin はlayoutのmargin-bottomで管理 */
  padding: 0;
  text-align: center;
}
.p-reason__stats-title {
  font-size: clamp(28px, 3.19vw, 44px);
  font-weight: 900;
  line-height: 1.455;
  color: #222;
  margin-bottom: clamp(30px, 4.2vw, 58px);
  text-align: center;
}
.p-reason__stats-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 2.32vw, 32px);
  margin-bottom: clamp(44px, 6.23vw, 86px);
}
.p-reason__stat-img {
  width: auto;
  height: clamp(52px, 7.25vw, 100px);
}
.p-reason__cases-title {
  text-align: center;
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 900;
  line-height: 160%;
  margin-bottom: clamp(28px, 4.06vw, 56px);
}
.p-reason__cases-list-wrap {
  position: relative;
  padding-bottom: clamp(32px, 4.64vw, 64px);
}
.p-reason__cases-list-wrap::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  z-index: -1;
  width: 100vw;
  height: clamp(124px, 17.97vw, 248px);
  background: #F1F4F9;
}
.p-reason__cases-item-img {
  width: 100%;
  height: auto;
  aspect-ratio: 400/253;
  overflow: hidden;
  background: #DEDEDE;
}
.p-reason__cases-item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-reason__cases-item-body {
  margin-top: clamp(14px, 1.74vw, 24px);
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.59vw, 22px);
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 700;
  line-height: 1.6;
}
.p-reason__cases-btn {
  display: flex;
  justify-content: center;
  margin-top: clamp(34px, 4.86vw, 67px);
}

/* PC: Swiper override → 3カラムグリッド表示 */
@media (min-width: 901px) {
  .p-cases__slider.swiper {
    overflow: visible;
  }
  .p-cases__slider .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(20px, 3.62vw, 50px);
    transform: none;
    transition: none;
  }
  .p-cases__slider .swiper-slide {
    width: auto;
  }
}
/*===========================================================================*/
/*  News                                                                      */
/*===========================================================================*/
.p-news {
  position: relative;
  overflow: hidden;
  padding-top: clamp(80px, 10.65vw, 147px);
  padding-bottom: clamp(80px, 13.04vw, 180px);
  margin-bottom: clamp(80px, 12.03vw, 166px);
  background: #fff;
}
.p-news__bg {
  position: absolute;
  top: 0;
  bottom: 0;
  left: clamp(20px, -1532.5px + 112.5vw, 110px);
  right: clamp(20px, -1532.5px + 112.5vw, 110px);
}
.p-news__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-news__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: max-content 1fr;
  grid-template-rows: auto auto;
  column-gap: clamp(60px, 8.7vw, 120px);
  row-gap: clamp(36px, 4.93vw, 68px);
  align-items: start;
}
.p-news__inner > .p-btn-more {
  grid-column: 1;
  grid-row: 2;
}
.p-news__left {
  grid-column: 1;
  grid-row: 1;
}
.p-news__en {
  font-size: clamp(56px, 6.52vw, 90px);
  font-weight: 700;
  line-height: 0.92;
  color: #fff;
}
.p-news__list {
  grid-column: 2;
  grid-row: 1/span 2;
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgb(255, 255, 255);
}
.p-news__item {
  padding: clamp(20px, 2.9vw, 40px) 0;
  padding-right: clamp(6px, 0.72vw, 10px);
  border-bottom: 1px solid rgb(255, 255, 255);
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.2s;
}
.p-news__item:hover {
  opacity: 0.7;
}
.p-news__item-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  width: 100%;
  cursor: pointer;
  transition: opacity 0.2s;
}
.p-news__item-inner:hover {
  opacity: 0.7;
}.p-news__item-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.1vw, 29px);
  min-width: 0;
}
.p-news__item-head {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.16vw, 16px);
}
.p-news__item-arrow {
  flex-shrink: 0;
  width: clamp(8px, 0.8vw, 11px);
  height: auto;
}
.p-news__tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 12px;
  font-size: clamp(13px, 1.3vw, 18px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #fff;
  background: #5581B8;
  border-radius: 34px;
}
.p-news__date {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 700;
  line-height: 0.92;
  color: #fff;
}
.p-news__item-title {
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.01em;
  color: #fff;
}

/*===========================================================================*/
/*  Recruit                                                                   */
/*===========================================================================*/
.p-recruit {
  position: relative;
  overflow: hidden;
  padding-top: clamp(50px, 5.29vw, 73px);
  padding-bottom: clamp(60px, 5.8vw, 80px);
  background: #fff;
  margin-bottom: clamp(100px, 17.9vw, 247px);
}
.p-recruit__bg {
  position: absolute;
  top: 0;
  bottom: 0;
  left: clamp(20px, -1532.5px + 112.5vw, 110px);
  right: clamp(20px, -1532.5px + 112.5vw, 110px);
}
.p-recruit__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-recruit__inner {
  position: relative;
  z-index: 1;
  text-align: center;
}
.p-recruit__en {
  font-size: clamp(50px, 5.94vw, 82px);
  font-weight: 700;
  line-height: 0.92;
  color: #fff;
  margin-bottom: clamp(12px, 1.81vw, 25px);
}
.p-recruit__ja {
  font-size: clamp(20px, 2.32vw, 32px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.01em;
  color: #fff;
  margin-bottom: clamp(12px, 1.45vw, 20px);
}
.p-recruit__text {
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.01em;
  color: #fff;
  max-width: clamp(600px, 65.65vw, 906px);
  margin: 0 auto clamp(20px, 2.17vw, 30px);
}
.p-recruit__btn {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.72vw, 10px);
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-recruit__btn:hover {
  opacity: 0.8;
}
.p-recruit__btn-arrow {
  flex-shrink: 0;
  width: clamp(16px, 1.52vw, 21px);
  height: auto;
}

/*===========================================================================*/
/*  Contact                                                                   */
/*===========================================================================*/
.p-contact {
  position: relative;
  overflow: hidden;
  padding-top: clamp(50px, 5.36vw, 74px);
  padding-bottom: clamp(50px, 5.58vw, 77px);
}
.p-contact__link {
  display: block;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-contact__link:hover {
  opacity: 0.9;
}
.p-contact__bg {
  position: absolute;
  inset: 0;
}
.p-contact__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-contact__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.p-contact__left {
  flex: 1;
  min-width: 0;
}
.p-contact__heading {
  display: flex;
  align-items: flex-end;
  gap: clamp(8px, 1.01vw, 14px);
  margin-bottom: clamp(10px, 1.23vw, 17px);
}
.p-contact__en {
  font-size: clamp(50px, 5.94vw, 82px);
  font-weight: 700;
  line-height: 0.92;
  color: #fff;
}
.p-contact__ja {
  font-size: clamp(20px, 2.32vw, 32px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.01em;
  color: #fff;
}
.p-contact__text {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.01em;
  color: #fff;
}
.p-contact__btn {
  flex-shrink: 0;
}
.p-contact__btn-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(24px, 2.1vw, 29px);
  height: clamp(24px, 2.1vw, 29px);
  border-radius: 50%;
  border: 1px solid #fff;
}

/*===========================================================================*/
/*  Footer                                                                    */
/*===========================================================================*/
.p-footer {
  padding-top: clamp(80px, 9.06vw, 125px);
  padding-bottom: 36px;
}
.p-footer__inner {
  display: flex;
  flex-direction: column;
}
.p-footer__body {
  display: flex;
  align-items: flex-start;
  gap: clamp(40px, 12.9vw, 178px);
  margin-bottom: clamp(36px, 4.06vw, 56px);
  padding-left: clamp(20px, 6.01vw, 83px);
}
.p-footer__col-left {
  flex-shrink: 0;
  width: clamp(220px, 25.72vw, 355px);
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 2.39vw, 33px);
}
.p-footer__logo {
  width: 100%;
}
.p-footer__logo img {
  width: 100%;
  height: auto;
}
.p-footer__address {
  font-size: clamp(10px, 0.9vw, 16px);
  font-weight: 500;
  line-height: 1.75;
  color: #222;
  white-space: nowrap;
  font-style: normal;
}
.p-footer__col-right {
  min-width: 0;
  display: grid;
  grid-template-columns: auto auto auto;
  column-gap: clamp(20px, 3.12vw, 43px);
  row-gap: clamp(28px, 3.41vw, 47px);
  padding-top: clamp(40px, 5.43vw, 75px);
  align-items: start;
  justify-content: start;
}
.p-footer__nav {
  display: contents;
}
.p-footer__nav-col {
  display: flex;
  flex-direction: column;
}
.p-footer__nav-col:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
  padding-right: clamp(10px, 1.59vw, 22px);
}
.p-footer__nav-col:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
  position: relative;
}
.p-footer__nav-col:nth-child(2)::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(20px, 2.61vw, 36px);
  height: clamp(50px, 6.38vw, 88px);
  width: 1px;
  background: #5581B8;
}
.p-footer__nav-col:nth-child(3) {
  grid-column: 3;
  grid-row: 1;
}
.p-footer__nav-head {
  font-size: clamp(11px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 1.75;
  color: #5581B8;
  text-decoration: none;
}
.p-footer__nav-head:hover {
  opacity: 0.7;
}
.p-footer__nav-list {
  list-style: none;
  padding-left: clamp(11px, 1.16vw, 16px);
  display: flex;
  flex-direction: column;
}
.p-footer__nav-list li a {
  font-size: clamp(11px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 2.02;
  color: #5581B8;
  text-decoration: none;
}
.p-footer__nav-list li a:hover {
  opacity: 0.7;
}
.p-footer__btns {
  grid-column: 2/4;
  grid-row: 2;
  display: flex;
  flex-direction: row;
  gap: clamp(20px, 2.83vw, 39px);
  justify-content: flex-end;
}
.p-footer__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px 0 clamp(16px, 1.74vw, 24px);
  width: clamp(160px, 14.49vw, 200px);
  height: clamp(40px, 3.77vw, 52px);
  border-radius: clamp(26px, 2.46vw, 34px);
  font-size: clamp(15px, 1.3vw, 18px);
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-footer__btn:hover {
  opacity: 0.85;
}
.p-footer__btn--blue {
  background: #5581B8;
}
.p-footer__btn--yellow {
  background: #DBC216;
}
.p-footer__btn-circle {
  width: clamp(18px, 1.59vw, 22px);
  height: clamp(18px, 1.59vw, 22px);
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding-left: 2px;
}
.p-footer__btn--blue .p-footer__btn-circle {
  color: #5581B8;
}
.p-footer__btn--yellow .p-footer__btn-circle {
  color: #DBC216;
}
.p-footer__bottom {
  border-top: 1px solid;
  border-image: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%) 1;
  padding-top: 29px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.p-footer__copy {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.75;
  color: #222;
}

/*===========================================================================*/
/*  Service Page                                                              */
/*===========================================================================*/
/* ---------- サービス概要イントロ ---------- */
.p-rs-intro {
  padding-top: clamp(60px, 8.7vw, 120px);
  padding-bottom: clamp(50px, 7.25vw, 100px);
}
.p-rs-intro__inner {
  text-align: center;
}
.p-rs-intro__catch {
  font-size: clamp(20px, 2.32vw, 32px);
  font-weight: 800;
  line-height: 1.55;
  letter-spacing: -0.05em;
  color: #222;
  margin-bottom: clamp(20px, 2.9vw, 40px);
}
.p-rs-intro__text {
  font-size: clamp(14px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: -0.05em;
  color: #222;
  max-width: clamp(700px, 68.84vw, 950px);
  margin: 0 auto;
  text-align: left;
}

/* ---------- サービスダイアグラム ---------- */
.p-rs-diagram {
  position: relative;
  overflow: hidden;
  padding-top: clamp(60px, 8.7vw, 120px);
  padding-bottom: 194px;
}
.p-rs-diagram__bg {
  position: absolute;
  inset: 0;
}
.p-rs-diagram__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-rs-diagram__inner {
  position: relative;
  z-index: 1;
}
.p-rs-diagram__picture {
  display: block;
  width: 100%;
  margin-bottom: 36px;
}
.p-rs-diagram__benefits {
  display: block;
  width: 100%;
  max-width: 855px;
  margin-left: auto;
  margin-right: auto;
}
.p-rs-diagram__support {
  position: relative;
  z-index: 1;
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: -0.04em;
  color: #fff;
  margin-top: 28px;
}

/* ---------- 実績統計 ---------- */
.p-rs-stats {
  margin-top: -120px;
  position: relative;
  z-index: 1;
}
.p-rs-stats__list {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: clamp(16px, 2.54vw, 35px);
  list-style: none;
}
.p-rs-stats__item {
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 7px 6px 0 rgba(33, 33, 33, 0.08);
  padding: clamp(16px, 1.96vw, 27px) clamp(20px, 3.19vw, 44px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(4px, 0.87vw, 12px);
  flex: 1;
}
.p-rs-stats__stars {
  width: clamp(40px, 6.01vw, 83px);
  height: auto;
  display: block;
}
.p-rs-stats__label {
  font-size: clamp(16px, 1.88vw, 26px);
  font-weight: 900;
  line-height: 1.6;
  color: #222;
  text-align: center;
}
.p-rs-stats__num-row {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.p-rs-stats__num {
  font-size: clamp(36px, 4.06vw, 56px);
  font-weight: 700;
  line-height: 1.17;
  color: #5581B8;
}
.p-rs-stats__unit {
  font-size: clamp(20px, 2.61vw, 36px);
  font-weight: 900;
  line-height: 1.6;
  color: #5581B8;
}

/* ---------- 強み（Features） ---------- */
.p-rs-features {
  padding-top: clamp(80px, 11.59vw, 160px);
  padding-bottom: clamp(80px, 11.59vw, 160px);
}
.p-rs-features__head {
  text-align: center;
  margin-bottom: clamp(40px, 5.8vw, 80px);
}
.p-rs-features__en {
  font-size: clamp(48px, 5.94vw, 82px);
  font-weight: 700;
  line-height: 1.17;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
  margin-bottom: 4px;
}
.p-rs-features__title {
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  color: #222;
}
.p-rs-features__lead {
  text-align: center;
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  color: #222;
  margin-top: clamp(50px, 7.25vw, 100px);
}

.p-rs-feature {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(30px, 5.8vw, 80px) clamp(30px, 3.48vw, 48px);
  margin-bottom: clamp(80px, 11.59vw, 160px);
}
.p-rs-feature--reverse {
  flex-direction: row-reverse;
}
.p-rs-feature {
  /* Feature 04: 左端ブリード・グリッドレイアウト */
}
.p-rs-feature--04 {
  margin-left: -40px;
  margin-right: -40px;
  margin-bottom: 0;
  display: grid;
  grid-template-columns: 47.4vw 1fr;
  grid-template-rows: auto 1fr;
  grid-template-areas: "img header" "img body";
  align-items: stretch;
  gap: 0;
}
.p-rs-feature--04 .p-rs-feature__04-numtitle {
  grid-area: header;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 0 0 0 clamp(48px, 7.17vw, 99px);
}
.p-rs-feature--04 .p-rs-feature__img-col {
  grid-area: img;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.p-rs-feature--04 .p-rs-feature__img-col img,
.p-rs-feature--04 .p-rs-feature__img-col .p-rs-feature__img-main {
  position: static;
  width: 100%;
  aspect-ratio: 228/113;
  object-fit: cover;
  object-position: center;
  display: block;
  z-index: auto;
}
.p-rs-feature--04 .p-rs-feature__body {
  grid-area: body;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 0 0 0 clamp(48px, 7.17vw, 99px);
  max-width: 100%;
}
.p-rs-feature--04 .p-rs-feature__num {
  font-size: clamp(80px, 12.03vw, 166px);
  margin-bottom: 0;
  line-height: 1.17;
  display: inline-block;
}
.p-rs-feature--04 .p-rs-feature__title {
  margin-bottom: clamp(16px, 1.74vw, 24px);
}
.p-rs-feature--04 .p-rs-feature__text {
  margin-bottom: clamp(16px, 1.74vw, 24px);
}
.p-rs-feature--04 .p-rs-feature__text:last-child {
  margin-bottom: 0;
}
.p-rs-feature {
  /* Feature 01: グリッドレイアウト（img左・numtitle+body右） */
}
.p-rs-feature--01 {
  display: grid;
  grid-template-columns: clamp(300px, 47.1vw, 650px) 1fr;
  grid-template-areas: "img numtitle" "img body" "cmp cmp";
  column-gap: clamp(30px, 3.48vw, 48px);
  row-gap: clamp(8px, 1.45vw, 20px);
  align-items: stretch;
}
.p-rs-feature--01 .p-rs-feature__numtitle {
  grid-area: numtitle;
  align-self: end;
}
.p-rs-feature--01 .p-rs-feature__img-col {
  grid-area: img;
}
.p-rs-feature--01 .p-rs-feature__body {
  grid-area: body;
  align-self: start;
  max-width: 100%;
  flex: none;
}
.p-rs-feature--01 .p-rs-feature__cmp {
  grid-area: cmp;
  margin-top: clamp(10px, 4.71vw, 65px);
}
.p-rs-feature--01 .p-rs-feature__img-main {
  top: 7%;
  left: 0;
  transform: translateX(-50%);
}
@media (max-width: 1380px) {
  .p-rs-feature--01 .p-rs-feature__img-main {
    transform: translateX(0);
    left: -40px;
  }
}
.p-rs-feature--01 .p-rs-feature__img-sub {
  bottom: 4%;
  right: 0;
}
.p-rs-feature {
  /* Feature 02: グリッドレイアウト（numtitle+body左・img右） */
}
.p-rs-feature--02 {
  display: grid;
  grid-template-columns: 1fr clamp(300px, 47.1vw, 650px);
  grid-template-areas: "numtitle img" "body img" "data-table data-table";
  column-gap: clamp(30px, 3.48vw, 48px);
  row-gap: clamp(8px, 1.45vw, 20px);
  align-items: stretch;
  margin-bottom: clamp(50px, 9.06vw, 125px);
}
.p-rs-feature--02 .p-rs-feature__numtitle {
  grid-area: numtitle;
  align-self: end;
}
.p-rs-feature--02 .p-rs-feature__img-col {
  grid-area: img;
}
.p-rs-feature--02 .p-rs-feature__body {
  grid-area: body;
  align-self: start;
  max-width: 100%;
  flex: none;
}
.p-rs-feature--02 .p-rs-feature__data-table {
  grid-area: data-table;
  margin-top: clamp(10px, 4.71vw, 65px);
}
.p-rs-feature--02 .p-rs-feature__img-main {
  top: 7%;
  right: 0;
  transform: translateX(50%);
}
@media (max-width: 1380px) {
  .p-rs-feature--02 .p-rs-feature__img-main {
    transform: translateX(0);
    right: -40px;
  }
}
.p-rs-feature--02 .p-rs-feature__img-sub {
  bottom: 4%;
  left: 0;
}
.p-rs-feature {
  /* Feature 03: センターレイアウト */
}
.p-rs-feature--03 {
  display: block;
  text-align: center;
}
.p-rs-feature--03 .p-rs-feature__numtitle,
.p-rs-feature--03 .p-rs-feature__title,
.p-rs-feature--03 .p-rs-feature__sub,
.p-rs-feature--03 .p-rs-feature__text {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.p-rs-feature--03 .p-rs-feature__numtitle {
  max-width: none;
}
.p-rs-feature__img-col {
  flex: 0 0 clamp(300px, 47.1vw, 650px);
}
.p-rs-feature {
  /* 重なり画像ラッパー */
}
.p-rs-feature__img-wrap {
  position: relative;
  padding-bottom: 100%;
}
.p-rs-feature__img-main {
  position: absolute;
  width: 102%;
  height: auto;
  display: block;
  z-index: 2;
}
.p-rs-feature__img-sub {
  position: absolute;
  width: 62.15%;
  height: auto;
  display: block;
  z-index: 2;
}
.p-rs-feature__body {
  flex: 1;
  max-width: clamp(480px, 43.48vw, 600px);
}
.p-rs-feature__num {
  font-size: clamp(80px, 12.03vw, 166px);
  font-weight: 700;
  line-height: 1.17;
  background: linear-gradient(129deg, rgba(85, 129, 184, 0.3) 12.05%, rgba(187, 188, 188, 0.3) 47.57%, rgba(219, 194, 22, 0.3) 83.09%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
  font-style: italic;
}
.p-rs-feature__title {
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 900;
  line-height: 1.6;
  color: #222;
  margin-bottom: clamp(16px, 2.32vw, 32px);
}
.p-rs-feature__sub {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 500;
  line-height: 1.6;
  color: #222;
  margin-bottom: clamp(12px, 1.74vw, 24px);
}
.p-rs-feature__text {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.01em;
  color: #222;
  margin-bottom: clamp(12px, 1.74vw, 24px);
}
.p-rs-feature__text:last-child {
  margin-bottom: 0;
}
.p-rs-feature__text .--blue {
  color: #5581B8;
}
.p-rs-feature__textsub {
  font-size: clamp(13px, 1.45vw, 20px);
  font-weight: 700;
  line-height: 160%;
}
.p-rs-feature__textsub .--blue {
  color: #5581B8;
}
.p-rs-feature {
  /* ===== 比較カード（Feature 01） ===== */
}
.p-rs-feature__cmp {
  flex: 0 0 100%;
  background: #fff;
  box-shadow: 0 4px 6px 8px rgba(33, 33, 33, 0.05);
}
.p-rs-feature {
  /* ===== アイコンボックス（Feature 02） ===== */
}
.p-rs-feature__icons {
  display: flex;
  gap: clamp(2px, 0.72vw, 10px);
  margin-top: clamp(20px, 2.9vw, 40px);
}
.p-rs-feature__icon-box {
  flex: 1;
  position: relative;
  border-radius: 4px;
  padding: clamp(12px, 1.74vw, 24px) clamp(2px, 0.65vw, 9px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 0.87vw, 12px);
  text-align: center;
}
.p-rs-feature__icon-box::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 4px;
  padding: 1px;
  background: linear-gradient(139deg, rgb(85, 129, 184) 2%, rgb(187, 188, 188) 44%, rgb(219, 194, 22) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.p-rs-feature__icon-img {
  height: clamp(36px, 5.22vw, 72px);
  width: auto;
  display: block;
  object-fit: contain;
}
.p-rs-feature__icon-text {
  font-size: clamp(11px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 1.65;
  color: #222;
  letter-spacing: -0.01em;
  min-height: 4.95em;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.p-rs-feature {
  /* ===== データテーブル（Feature 02） ===== */
}
.p-rs-feature__data-table {
  flex: 0 0 100%;
  margin-top: clamp(5px, 0.94vw, 13px);
}
.p-rs-feature__data-title {
  text-align: center;
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  line-height: 1.7;
  color: #222;
  margin-bottom: clamp(16px, 2.32vw, 32px);
}
.p-rs-feature__data-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 5px;
}
.p-rs-feature__data-grid span {
  background: #E0EBF9;
  padding: clamp(10px, 1.45vw, 20px) clamp(8px, 1.16vw, 16px);
  text-align: center;
  font-size: clamp(11px, 1.16vw, 16px);
  font-weight: 700;
  line-height: 1.4;
  color: #222;
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-rs-feature {
  /* ===== フォトカード（Feature 03） ===== */
}
.p-rs-feature__cards {
  display: flex;
  gap: clamp(20px, 3.19vw, 44px);
  margin-top: clamp(10px, 3.84vw, 53px);
  margin-bottom: clamp(10px, 2.9vw, 40px);
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
.p-rs-feature__card {
  flex: 1;
  position: relative;
  border-radius: 12px;
  box-shadow: 0 2px 3px 1px rgba(33, 33, 33, 0.13);
  padding: clamp(16px, 2.32vw, 32px) clamp(12px, 1.74vw, 24px);
  background: #fff;
  text-align: center;
}
.p-rs-feature__card:not(:last-child)::after {
  content: "";
  position: absolute;
  width: 19px;
  height: 33px;
  background: #5581B8;
  left: calc(100% + clamp(2px, 0.94vw, 13px));
  top: 50%;
  transform: translateY(-50%);
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.p-rs-feature__card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 12px;
  padding: 1px;
  background: linear-gradient(139deg, rgb(85, 129, 184) 2%, rgb(187, 188, 188) 44%, rgb(219, 194, 22) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.p-rs-feature__card-title {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 700;
  line-height: 1.6;
  color: #222;
  display: inline-block;
  position: relative;
}
.p-rs-feature__card-title--blue {
  color: #5581B8;
  font-weight: 900;
}
.p-rs-feature__card-title--blue::before {
  content: "";
  bottom: 0.2em;
  width: 2px;
  height: 2.5em;
  background: #5581B8;
  position: absolute;
  right: calc(100% + 1em);
  transform: rotate(-30deg);
}
.p-rs-feature__card-title--blue::after {
  content: "";
  bottom: 0.2em;
  width: 2px;
  height: 2.5em;
  background: #5581B8;
  position: absolute;
  left: calc(100% + 1em);
  transform: rotate(30deg);
}
.p-rs-feature__card-sub {
  font-size: clamp(12px, 1.16vw, 16px);
  font-weight: 700;
  line-height: 1.7;
  color: #222;
  text-align: center;
  margin-bottom: clamp(8px, 1.16vw, 16px);
}
.p-rs-feature .wrap {
  margin-top: clamp(10px, 1.45vw, 20px);
  display: flex;
  justify-content: center;
  align-items: flex-start;
  min-height: clamp(141px, 14.49vw, 200px);
}
.p-rs-feature .wrap.--flex-end {
  align-items: flex-end;
}
.p-rs-feature__card-photos {
  display: grid;
  margin-left: auto;
  margin-right: auto;
  gap: 7px 5px;
}
.p-rs-feature__card-photos.--single {
  grid-template-columns: 1fr;
  max-width: 141px;
}
.p-rs-feature__card-photos.--double {
  grid-template-columns: 1fr 1fr;
  max-width: 237px;
}
.p-rs-feature__card-photos.--triple {
  grid-template-columns: 1fr 1fr 1fr;
  max-width: 302px;
}
.p-rs-feature__card-photos img {
  width: 100%;
  height: auto;
  display: block;
}
.p-rs-feature {
  /* ===== フローステップ（Feature 03） ===== */
}
.p-rs-feature__flow picture {
  display: block;
  max-width: 1063px;
  margin-left: auto;
  margin-right: auto;
  margin-top: clamp(10px, 3.62vw, 50px);
}

/* ---------- サービスモデル ---------- */
/* ---------- サービスモデル ---------- */
.p-rs-model {
  padding-top: clamp(40px, 7.25vw, 100px);
  padding-bottom: clamp(60px, 9.64vw, 133px);
  background: rgba(238, 242, 248, 0.82);
  border-radius: clamp(60px, 14.49vw, 200px) 0 0 0;
  /* ヘッド */
}
.p-rs-model__head {
  text-align: center;
  margin-bottom: clamp(32px, 5.43vw, 75px);
}
.p-rs-model__en {
  font-size: clamp(48px, 5.94vw, 82px);
  font-weight: 700;
  line-height: 1.17;
  background: linear-gradient(90deg, rgb(85, 129, 184) 0%, rgb(187, 188, 188) 50%, rgb(219, 194, 22) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
}
.p-rs-model__title {
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: -0.04em;
  color: #222;
  margin-bottom: clamp(10px, 3.41vw, 47px);
}
.p-rs-model__lead {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 1.8;
  color: #222;
  text-align: center;
}
.p-rs-model {
  /* 3STEPグリッド */
}
.p-rs-model__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 clamp(20px, 2.32vw, 32px);
  padding-bottom: clamp(20px, 2.9vw, 40px);
}
.p-rs-model__col {
  display: flex;
  flex-direction: column;
}
.p-rs-model__step-top {
  background: #fff;
  border: 1px solid #5581B8;
  border-radius: 12px;
  padding: clamp(16px, 2.03vw, 28px) clamp(12px, 1.74vw, 24px);
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(4px, 0.58vw, 8px);
  aspect-ratio: 412/180;
}
.p-rs-model__step-label {
  font-size: clamp(18px, 2.32vw, 32px);
  font-weight: 700;
  line-height: 1.17;
  background: linear-gradient(90deg, rgb(85, 129, 184) 0%, rgb(187, 188, 188) 50%, rgb(219, 194, 22) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: block;
}
.p-rs-model__step-name {
  font-size: clamp(13px, 1.45vw, 20px);
  font-weight: 500;
  line-height: 1.8;
  color: #222;
  text-align: center;
  min-height: 3.6em;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.p-rs-model {
  /* ▼ 矢印 */
}
.p-rs-model__step-arrow {
  width: 0;
  height: 0;
  border-left: clamp(12px, 1.74vw, 24px) solid transparent;
  border-right: clamp(12px, 1.74vw, 24px) solid transparent;
  border-top: clamp(10px, 1.16vw, 16px) solid #5581B8;
  margin: clamp(4px, 0.58vw, 8px) auto;
}
.p-rs-model__step-bot {
  background: #fff;
  border-radius: 12px;
  padding: clamp(12px, 1.74vw, 24px) clamp(12px, 1.74vw, 24px);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
}
.p-rs-model__step-result {
  font-size: clamp(13px, 1.45vw, 20px);
  font-weight: 500;
  line-height: 1.4;
  color: #222;
  text-align: center;
}
.p-rs-model {
  /* 売上アップを実現 */
}
.p-rs-model__outcome {
  text-align: center;
  position: relative;
  margin-top: clamp(16px, 2.46vw, 34px);
  margin-bottom: clamp(32px, 4.35vw, 60px);
}
.p-rs-model__outcome::before {
  content: "";
  position: absolute;
  bottom: calc(100% + 7px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(300px, 64.28vw, 887px);
  aspect-ratio: 887/53;
  background: url(../img/arrow.png) no-repeat center center/contain;
}
.p-rs-model__outcome-text {
  font-size: clamp(18px, 2.17vw, 30px);
  font-weight: 700;
  line-height: 1.4;
  color: #222;
  text-align: center;
  display: inline-block;
}
.p-rs-model {
  /* 業種・課題カード */
}
.p-rs-model__variety {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
}
.p-rs-model__variety-head {
  background: #5581B8;
  padding: clamp(12px, 1.45vw, 20px) clamp(16px, 2.32vw, 32px);
  text-align: center;
}
.p-rs-model__variety-title {
  font-size: clamp(18px, 2.17vw, 30px);
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
}
.p-rs-model__variety-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: clamp(20px, 2.9vw, 40px) clamp(24px, 3.48vw, 48px);
  gap: clamp(20px, 2.9vw, 40px);
}
.p-rs-model__variety-label {
  font-size: clamp(14px, 1.67vw, 23px);
  font-weight: 700;
  line-height: 1.4;
  color: #222;
  text-align: center;
  margin-bottom: clamp(10px, 1.45vw, 20px);
}
.p-rs-model__variety-list {
  background: #F2F8FF;
  border-radius: 12px;
  padding: clamp(12px, 1.74vw, 24px) clamp(16px, 2.32vw, 32px);
}
.p-rs-model__variety-list p {
  font-size: clamp(13px, 1.3vw, 18px);
  font-weight: 500;
  line-height: 1.65;
  color: #222;
  min-height: 8.25em;
}

/* ---------- ご利用の流れ（Flow） ---------- */
.p-rs-flow {
  padding-top: clamp(60px, 8.7vw, 120px);
  padding-bottom: clamp(80px, 11.59vw, 160px);
}
.p-rs-flow__head {
  text-align: center;
  margin-bottom: clamp(10px, 2.32vw, 32px);
}
.p-rs-flow__en {
  font-size: clamp(48px, 5.94vw, 82px);
  font-weight: 700;
  line-height: 1.17;
  background: linear-gradient(90deg, rgb(85, 129, 184) 0%, rgb(187, 188, 188) 50%, rgb(219, 194, 22) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
  margin-bottom: 8px;
}
.p-rs-flow__title {
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  color: #222;
}
.p-rs-flow__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 750px;
  margin: 0 auto;
  overflow: visible;
}
.p-rs-flow__item {
  display: flex;
  align-items: stretch;
  gap: clamp(20px, 2.9vw, 40px);
  border-bottom: 1px solid #BBBCBC;
}
.p-rs-flow {
  /* 左カラム: 番号のみ。サークル・ラインはコンテンツ外側に絶対配置 */
}
.p-rs-flow__left {
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: clamp(28px, 3.48vw, 48px) 0;
}
.p-rs-flow__left::after {
  content: "";
  position: absolute;
  left: calc(-1 * clamp(20px, 3.19vw, 44px));
  top: 0;
  bottom: 0;
  width: 1px;
  background: #5581B8;
  z-index: 0;
}
.p-rs-flow__left::before {
  content: "";
  position: absolute;
  width: clamp(14px, 1.35vw, 26px);
  height: clamp(14px, 1.35vw, 26px);
  border-radius: 50%;
  background: #5581B8;
  left: calc(-1 * clamp(27px, 4.06vw, 56px));
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}
.p-rs-flow__item:first-child .p-rs-flow__left::after {
  top: 50%;
}
.p-rs-flow__item:last-child .p-rs-flow__left::after {
  bottom: 50%;
}
.p-rs-flow__num {
  font-size: clamp(46px, 5.94vw, 82px);
  font-weight: 700;
  line-height: 1.17;
  background: linear-gradient(90deg, rgb(85, 129, 184) 0%, rgb(187, 188, 188) 50%, rgb(219, 194, 22) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  position: relative;
  z-index: 1;
}
.p-rs-flow__body {
  flex: 1;
  padding: clamp(15px, 2.32vw, 32px) 0;
}
.p-rs-flow__step-title {
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  color: #222;
  margin-bottom: clamp(8px, 1.16vw, 16px);
}
.p-rs-flow__text {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  line-height: 1.75;
  color: #222;
}

/*===========================================================================*/
/*  About Page                                                                */
/*===========================================================================*/
/* ---------- Page KV (内ページ共通ヒーロー) ---------- */
.p-page-kv {
  position: relative;
  height: clamp(200px, 28.99vw, 400px);
  overflow: hidden;
}
.p-page-kv::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0.2;
  background: var(--Linear, linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%));
  z-index: 1;
}
.p-page-kv__bg {
  position: absolute;
  inset: 0;
}
.p-page-kv__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-page-kv__inner {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.p-page-kv__box {
  width: clamp(320px, 41.38vw, 571px);
  background: #fff;
  border-radius: 26px 26px 0 0;
  padding: clamp(14px, 1.67vw, 23px) 20px 0;
  text-align: center;
}
.p-page-kv__en {
  font-size: clamp(40px, 5.8vw, 80px);
  font-weight: 700;
  line-height: 1.171875;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
}
.p-page-kv__ja {
  font-size: clamp(20px, 2.46vw, 34px);
  font-weight: 700;
  line-height: 1.45;
  color: #222;
  padding-bottom: clamp(16px, 1.74vw, 24px);
}

/* ---------- Breadcrumb ---------- */
.p-breadcrumb {
  padding-top: clamp(16px, 1.45vw, 20px);
  padding-bottom: clamp(16px, 1.45vw, 20px);
}
.p-breadcrumb__list {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #222;
}
.p-breadcrumb__item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.p-breadcrumb__item:not(:last-child)::after {
  content: ">";
  color: #222;
}
.p-breadcrumb__link {
  color: #222;
  text-decoration: none;
}
.p-breadcrumb__link:hover {
  opacity: 0.7;
}

/* ---------- Message (代表挨拶) ---------- */
.p-message {
  padding-top: clamp(60px, 12.17vw, 168px);
}
.p-message__inner {
  display: grid;
  grid-template-columns: clamp(240px, 40.51vw, 559px) 1fr;
  grid-template-rows: auto auto;
  grid-template-areas: "img title" "img body";
  column-gap: clamp(40px, 6.59vw, 91px);
  align-items: start;
}
.p-message__img {
  grid-area: img;
}
.p-message__img img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
.p-message__title {
  grid-area: title;
}
.p-message__body {
  grid-area: body;
}
.p-message__en {
  font-size: clamp(40px, 5.8vw, 80px);
  font-weight: 700;
  line-height: 1.171875;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
}
.p-message__heading {
  font-size: clamp(22px, 2.46vw, 34px);
  font-weight: 700;
  line-height: 1.45;
  color: #222;
  margin-top: clamp(4px, 0.58vw, 8px);
  margin-bottom: clamp(30px, 4.71vw, 65px);
}
.p-message__text {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: #222;
}
.p-message__text + .p-message__text {
  margin-top: 18px;
}
.p-message__role {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: #222;
  text-align: right;
  margin-top: clamp(24px, 2.9vw, 40px);
}
.p-message__name {
  font-size: clamp(18px, 1.74vw, 24px);
  font-weight: 500;
  line-height: 1.8;
  color: #222;
  text-align: right;
}

/* ---------- MVV ---------- */
.p-mvv {
  padding-top: clamp(60px, 10.14vw, 140px);
  padding-bottom: clamp(60px, 10.14vw, 140px);
}
.p-mvv__heading {
  font-size: clamp(40px, 5.8vw, 80px);
  font-weight: 700;
  line-height: 1.171875;
  text-align: center;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
  margin-bottom: clamp(2px, 0.58vw, 8px);
}
.p-mvv__intro {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.01em;
  text-align: center;
  color: #222;
  margin-bottom: clamp(10px, 1.45vw, 20px);
}
.p-mvv__list {
  display: flex;
  flex-direction: column;
  margin-left: auto;
  margin-right: auto;
  max-width: clamp(600px, 65.22vw, 900px);
}
.p-mvv__item {
  padding-top: clamp(20px, 3.33vw, 46px);
}
.p-mvv__item-head {
  display: flex;
  align-items: baseline;
  gap: clamp(20px, 5.36vw, 74px);
  margin-bottom: clamp(10px, 1.38vw, 19px);
}
.p-mvv {
  /* グラデーションライン：EN見出しとテキストの間 */
}
.p-mvv__item-line {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, #5581B8 0%, #BBBCBC 50%, #DBC216 100%);
  margin-bottom: clamp(12px, 1.45vw, 20px);
}
.p-mvv__en {
  font-size: clamp(24px, 2.9vw, 40px);
  font-weight: 700;
  line-height: 1.171875;
  flex-shrink: 0;
  background: linear-gradient(90deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.p-mvv__sub {
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.01em;
  color: #222;
}
.p-mvv__text {
  font-size: clamp(16px, 1.59vw, 22px);
  font-weight: 700;
  line-height: 1.7;
  color: #222;
}

/* ---------- About Logo (ロゴ・会社説明) ---------- */
.p-about-logo__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-about-logo__img {
  width: clamp(200px, 39.93vw, 551px);
  margin-bottom: clamp(30px, 3.41vw, 47px);
}
.p-about-logo__img img {
  width: 100%;
  height: auto;
}
.p-about-logo__text {
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  text-align: center;
  color: #222;
}

/* ---------- Company Info (会社概要テーブル) ---------- */
.p-company-info {
  padding-top: clamp(60px, 10.14vw, 140px);
}
.p-company-info__heading {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.45;
  color: #222;
  text-align: left;
  margin-bottom: 30px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.p-company-info__table {
  max-width: 1000px;
  margin: 0 auto;
}
.p-company-info__row {
  display: flex;
  align-items: center;
  min-height: 77px;
  padding: 20px 0;
  border-top: 1px solid #BBBCBC;
}
.p-company-info__row:last-child {
  border-bottom: 1px solid #BBBCBC;
}
.p-company-info__label {
  flex-shrink: 0;
  width: clamp(120px, 15.94vw, 220px);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
  color: #222;
}
.p-company-info__value {
  flex: 1;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: #222;
  letter-spacing: -0.02em;
}

/* ---------- Access (アクセス) ---------- */
.p-about-access {
  padding-top: clamp(60px, 10.14vw, 140px);
  padding-bottom: clamp(80px, 11.59vw, 160px);
}
.p-about-access__inner {
  max-width: 1000px;
  margin: 0 auto;
}
.p-about-access__heading {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.45;
  color: #222;
  margin-bottom: 23px;
}
.p-about-access__map {
  width: 100%;
  margin-bottom: 23px;
}
.p-about-access__map iframe {
  width: 100%;
  aspect-ratio: 437/148;
  display: block;
  height: auto;
}
.p-about-access__text {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  color: #222;
  letter-spacing: -0.02em;
}

/*===========================================================================*/
/*  Cases Page (成果事例)                                                     */
/*===========================================================================*/
/* ---------- Cases List ---------- */
.p-cases-list {
  padding-top: clamp(60px, 9.93vw, 137px);
  padding-bottom: clamp(60px, 7.75vw, 107px);
}
.p-cases-list__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 2.03vw, 28px);
  margin-bottom: clamp(60px, 10.07vw, 139px);
}
.p-cases-list__pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.p-cases-list__page-btn {
  width: clamp(24px, 2.32vw, 32px);
  height: clamp(24px, 2.32vw, 32px);
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 700;
  color: #222;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: opacity 0.2s;
}
.p-cases-list__page-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  background: linear-gradient(138deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 57%, rgb(85, 129, 184) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  pointer-events: none;
}
.p-cases-list__page-btn--active {
  background: linear-gradient(135deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 50%, rgb(85, 129, 184) 100%);
  border: none;
  color: #fff;
}
.p-cases-list__page-btn--active::before {
  display: none;
}

/* ---------- Cases Card ---------- */
.p-cases-card {
  position: relative;
}
.p-cases-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(138deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 57%, rgb(85, 129, 184) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  pointer-events: none;
}
.p-cases-card {
  display: flex;
  flex-direction: column;
  padding: clamp(20px, 2.03vw, 28px) clamp(20px, 2.17vw, 30px) clamp(24px, 2.54vw, 35px);
}
.p-cases-card__logo {
  height: clamp(100px, 11.09vw, 153px);
  background: #E8E8E8;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: clamp(16px, 2.25vw, 31px);
  font-size: clamp(20px, 2.17vw, 30px);
  font-weight: 700;
  color: #222;
}
.p-cases-card__logo img {
  width: 100%;
  height: auto;
  display: block;
}
.p-cases-card__stats {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.94vw, 13px);
  margin-bottom: clamp(16px, 2.32vw, 32px);
}
.p-cases-card__stat {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.94vw, 13px);
  width: clamp(100px, 23.15vw, 250px);
  margin-left: auto;
  margin-right: auto;
}
.p-cases-card__badge {
  flex-shrink: 0;
  background: #5581B8;
  border-radius: 34px;
  height: clamp(22px, 2.46vw, 34px);
  min-width: clamp(60px, 6.52vw, 90px);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(14px, 1.74vw, 24px);
  font-weight: 700;
  color: #fff;
  line-height: 1.75;
  padding: 0 clamp(8px, 0.87vw, 12px);
}
.p-cases-card__value {
  font-size: clamp(20px, 2.46vw, 34px);
  font-weight: 700;
  color: #5581B8;
  line-height: 1;
}
.p-cases-card__value-unit {
  font-size: clamp(14px, 1.74vw, 24px);
  font-weight: 700;
  color: #5581B8;
  line-height: 1;
}
.p-cases-card__strip {
  background: #5581B8;
  padding: clamp(6px, 0.72vw, 10px) 0;
  margin-left: clamp(-20px, -2.17vw, -30px);
  margin-right: clamp(-20px, -2.17vw, -30px);
  margin-bottom: clamp(16px, 2.61vw, 36px);
}
.p-cases-card__desc {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: #fff;
  text-align: center;
}
.p-cases-card__info {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.p-cases-card__dl {
  display: flex;
  align-items: center;
  border-top: 1px solid #BBBCBC;
  padding: clamp(10px, 1.16vw, 16px) 0;
}
.p-cases-card__dl:last-child {
  border-bottom: 1px solid #BBBCBC;
}
.p-cases-card__dl dt {
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 500;
  color: #222;
  white-space: nowrap;
  min-width: clamp(60px, 8.12vw, 112px);
}
.p-cases-card__dl dd {
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 500;
  color: #222;
}
.p-cases-card__foot {
  margin-top: clamp(12px, 1.74vw, 24px);
  display: flex;
  justify-content: flex-end;
}
.p-cases-card__link {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 0.72vw, 10px);
  text-decoration: none;
}
.p-cases-card__link-text {
  font-size: clamp(13px, 1.3vw, 18px);
  font-weight: 700;
  letter-spacing: 0.02em;
  background: linear-gradient(90deg, #5581B8 0%, #BBBCBC 50%, #DBC216 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.p-cases-card__link-icon {
  width: clamp(14px, 1.38vw, 19px);
  height: clamp(14px, 1.38vw, 19px);
  border-radius: 50%;
  background: linear-gradient(141deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 42%, rgb(85, 129, 184) 84%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.p-cases-card__link-icon svg {
  width: clamp(5px, 0.51vw, 7px);
  height: auto;
}

/*===========================================================================*/
/*  Case Detail Page (成果事例詳細)                                           */
/*===========================================================================*/
/* ---------- Case Hero KV ---------- */
.p-case-hero {
  position: relative;
  height: clamp(300px, 36.23vw, 500px);
  background: linear-gradient(90deg, rgba(219, 194, 22, 0.21) 0%, rgba(187, 188, 188, 0.21) 50%, rgba(85, 129, 184, 0.21) 100%);
  overflow: hidden;
}
.p-case-hero__inner {
  height: 100%;
}
.p-case-hero__content {
  display: flex;
  align-items: center;
  height: 100%;
  padding-top: 82px;
}
.p-case-hero__left {
  flex: 0 0 50%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.p-case-hero__logo-box {
  width: clamp(200px, 38.62vw, 533px);
  height: clamp(80px, 10.22vw, 141px);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(18px, 2.17vw, 30px);
  font-weight: 700;
  color: #222;
}
.p-case-hero__logo-box img {
  width: 100%;
  height: auto;
  display: block;
}
.p-case-hero__right {
  flex: 0 0 50%;
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 1.16vw, 16px);
}
.p-case-hero__company {
  font-size: clamp(14px, 1.74vw, 24px);
  font-weight: 700;
  color: #222;
  line-height: 1.45;
}
.p-case-hero__title {
  font-size: clamp(18px, 2.32vw, 32px);
  font-weight: 700;
  color: #222;
  line-height: 1.45;
}

/* ---------- Case Detail ---------- */
.p-case-detail {
  padding-top: clamp(50px, 11.52vw, 159px);
  padding-bottom: clamp(50px, 11.52vw, 159px);
}
.p-case-detail__photo {
  max-width: 1000px;
  margin: 0 auto clamp(20px, 2.17vw, 30px);
  background: #E8E8E8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(18px, 2.32vw, 32px);
  font-weight: 700;
  color: #222;
}
.p-case-detail__photo img {
  width: 100%;
  height: auto;
  display: block;
}
.p-case-detail__info-box {
  position: relative;
}
.p-case-detail__info-box::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(138deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 57%, rgb(85, 129, 184) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  pointer-events: none;
}
.p-case-detail__info-box {
  max-width: 1000px;
  margin: 0 auto clamp(24px, 2.83vw, 39px);
  padding: clamp(14px, 1.59vw, 22px) clamp(20px, 2.17vw, 30px) clamp(16px, 1.88vw, 26px);
}
.p-case-detail__section + .p-case-detail__section {
  margin-top: clamp(12px, 1.45vw, 20px);
}
.p-case-detail__section-title {
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  color: #5581B8;
  line-height: 1.45;
  margin-bottom: clamp(6px, 0.72vw, 10px);
}
.p-case-detail__section-title--large {
  font-size: clamp(16px, 1.74vw, 24px);
}
.p-case-detail__section-text {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.45;
}
.p-case-detail__divider {
  border: none;
  border-top: 1px solid #BBBCBC;
  margin: clamp(10px, 1.45vw, 20px) 0;
}
.p-case-detail {
  /* --- 成果セクション --- */
}
.p-case-detail__results {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-case-detail__results-title {
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  color: #5581B8;
  line-height: 1.45;
  margin-bottom: clamp(4px, 0.58vw, 8px);
}
.p-case-detail__roi {
  font-size: clamp(16px, 2.61vw, 36px);
  font-weight: 700;
  color: #5581B8;
  line-height: 1.45;
  letter-spacing: 0.02em;
  margin-bottom: clamp(12px, 2.46vw, 34px);
}
.p-case-detail__roi span {
  font-size: clamp(16px, 3.48vw, 48px);
}
.p-case-detail__gradient-line {
  width: 100%;
  max-width: 1000px;
  margin-bottom: clamp(16px, 2.46vw, 34px);
}
.p-case-detail__gradient-line svg {
  width: 100%;
  height: auto;
}
.p-case-detail__stats {
  width: 100%;
  max-width: 701px;
}
.p-case-detail__stat-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid #BBBCBC;
  padding: 26px 0;
}
.p-case-detail__stat-group {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.p-case-detail__stat-group:last-child {
  padding-right: 0;
}
.p-case-detail__stat-group dt {
  font-size: 16px;
  font-weight: 700;
  color: #5581B8;
  line-height: 1.45;
  width: 112px;
}
.p-case-detail__stat-group dd {
  font-size: 16px;
  font-weight: 700;
  color: #222;
  line-height: 1.45;
  text-align: right;
}
.p-case-detail__stat-note {
  border-top: 1px solid #BBBCBC;
  padding: 26px 0 21px;
  text-align: center;
}
.p-case-detail__stat-note span {
  font-size: clamp(12px, 1.16vw, 16px);
  font-weight: 700;
  color: #5581B8;
  line-height: 1.45;
}
.p-case-detail__description {
  font-size: 16px;
  font-weight: 500;
  color: #222;
  line-height: 1.8;
  max-width: 701px;
  width: 100%;
  text-align: left;
}

/*===========================================================================*/
/*  Staff List Page (スタッフ一覧)                                             */
/*===========================================================================*/
/* ---------- Staff List ---------- */
.p-staff-list {
  padding-top: clamp(50px, 11.59vw, 160px);
  padding-bottom: clamp(60px, 12.61vw, 174px);
}
.p-staff-list__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

/* ---------- Staff Card ---------- */
.p-staff-card {
  padding: clamp(18px, 2.17vw, 30px) clamp(20px, 2.25vw, 31px) clamp(14px, 1.35vw, 26px);
  border-bottom: 1px solid #BBBCBC;
}
.p-staff-card:nth-child(-n+3) {
  border-top: 1px solid #BBBCBC;
}
.p-staff-card:not(:nth-child(3n)) {
  border-right: 1px solid #BBBCBC;
}
.p-staff-card__photo {
  width: 100%;
  aspect-ratio: 373/400;
  overflow: hidden;
  margin-bottom: clamp(14px, 1.96vw, 27px);
}
.p-staff-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.p-staff-card__body {
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 0.65vw, 9px);
}
.p-staff-card__role {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.45;
}
.p-staff-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.p-staff-card__name {
  font-size: clamp(16px, 1.45vw, 20px);
  font-weight: 700;
  color: #222;
  line-height: 1.45;
}
.p-staff-card__link {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 0.72vw, 10px);
  text-decoration: none;
  flex-shrink: 0;
}
.p-staff-card__link-text {
  font-size: clamp(13px, 1.3vw, 18px);
  font-weight: 700;
  letter-spacing: 0.02em;
  background: linear-gradient(90deg, #5581B8 0%, #BBBCBC 50%, #DBC216 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.p-staff-card__link-icon {
  width: clamp(14px, 1.38vw, 19px);
  height: clamp(14px, 1.38vw, 19px);
  border-radius: 50%;
  background: linear-gradient(141deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 42%, rgb(85, 129, 184) 84%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.p-staff-card__link-icon svg {
  width: clamp(4px, 0.51vw, 7px);
  height: auto;
}

/*===========================================================================*/
/*  Staff Detail Page (スタッフ詳細)                                           */
/*===========================================================================*/
/* ---------- Staff Hero ---------- */
.p-staff-hero {
  position: relative;
  height: clamp(300px, 36.23vw, 500px); /* 500px at 1380px */
  overflow: hidden;
}
.p-staff-hero__photo-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 56.93%; /* 1093/1920 */
  height: 100%;
}
.p-staff-hero__photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-staff-hero__body {
  position: relative;
  z-index: 1;
  height: 100%;
}
.p-staff-hero__inner {
  height: 100%;
  display: flex;
  align-items: center;
}
.p-staff-hero__content {
  margin-left: 50%; /* 右半分に配置 */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(12px, 1.88vw, 26px); /* 26px at 1380px */
  padding-top: 82px; /* ヘッダー高さ分 */
}
.p-staff-hero__label {
  font-size: clamp(16px, 1.74vw, 24px); /* 24px at 1380px */
  font-weight: 700;
  background: linear-gradient(90deg, #5581B8 0%, #BBBCBC 50%, #DBC216 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.17;
  display: inline-block;
}
.p-staff-hero__quote {
  font-size: clamp(16px, 2.03vw, 28px); /* 28px at 1380px */
  font-weight: 700;
  color: #222;
  line-height: 1.6;
}
.p-staff-hero__nav-name {
  font-size: clamp(18px, 2.32vw, 32px); /* 32px at 1380px */
  font-weight: 700;
  color: #222;
  line-height: 1.45;
}

/* ---------- Staff Detail Main ---------- */
.p-staff-detail {
  padding-top: clamp(50px, 13.04vw, 180px); /* 140px at 1380px */
  padding-bottom: clamp(60px, 12.61vw, 174px); /* 174px at 1380px */
  /* --- プロフィールセクション --- */
}
.p-staff-detail__profile {
  display: flex;
  gap: clamp(40px, 7.17vw, 99px); /* 99px at 1380px */
  margin-bottom: clamp(40px, 6.01vw, 83px); /* 83px at 1380px */
}
.p-staff-detail__photo-col {
  flex: 0 0 clamp(200px, 36.23vw, 500px); /* 500px at 1380px */
  align-self: flex-start;
}
.p-staff-detail__photo-col img {
  width: 100%;
  aspect-ratio: 500/536;
  object-fit: cover;
  object-position: top center;
  display: block;
}
.p-staff-detail__info-col {
  flex: 1;
  min-width: 0;
}
.p-staff-detail__name-en {
  font-size: clamp(14px, 1.45vw, 20px); /* 20px at 1380px */
  font-weight: 700;
  background: linear-gradient(90deg, #5581B8 0%, #BBBCBC 50%, #DBC216 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.17;
  margin-bottom: clamp(2px, 0.36vw, 5px);
  display: inline-block;
}
.p-staff-detail__name {
  font-size: clamp(18px, 2.03vw, 28px); /* 28px at 1380px */
  font-weight: 700;
  color: #222;
  line-height: 1.45;
  margin-bottom: clamp(16px, 3.33vw, 46px); /* 46px at 1380px */
}
.p-staff-detail {
  /* --- プロフィールテーブル --- */
}
.p-staff-detail__dl {
  width: 100%;
}
.p-staff-detail__dl-row {
  border-top: 1px solid #BBBCBC;
  padding: clamp(12px, 1.88vw, 26px) 0; /* 26px at 1380px */
}
.p-staff-detail__dl-row:last-child {
  padding-bottom: 0;
}
.p-staff-detail__dl-row--2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.p-staff-detail__dl-group dt {
  font-size: clamp(13px, 1.16vw, 16px); /* 16px at 1380px */
  font-weight: 700;
  color: #5581B8;
  line-height: 1.8;
  letter-spacing: 0.01em;
  margin-bottom: clamp(2px, 0.29vw, 4px);
}
.p-staff-detail__dl-group dd {
  font-size: clamp(13px, 1.16vw, 16px); /* 16px at 1380px */
  font-weight: 500;
  color: #222;
  line-height: 1.8;
}
.p-staff-detail {
  /* --- Q&Aセクション --- */
}
.p-staff-detail__qa-list {
  display: flex;
  flex-direction: column;
}
.p-staff-detail__qa {
  margin-bottom: clamp(40px, 5.8vw, 80px); /* 80px at 1380px */
}
.p-staff-detail__qa-head {
  background: linear-gradient(90deg, rgba(85, 129, 184, 0.2) 0%, rgba(187, 188, 188, 0.2) 50%, rgba(219, 194, 22, 0.2) 100%);
  height: clamp(36px, 3.99vw, 55px); /* 55px at 1380px */
  max-width: clamp(700px, 72.46vw, 1000px); /* 1000px at 1380px */
  margin-left: auto;
  margin-right: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: clamp(16px, 2.32vw, 32px); /* 32px at 1380px */
}
.p-staff-detail__qa-title {
  font-size: clamp(16px, 1.74vw, 24px); /* 24px at 1380px */
  font-weight: 700;
  color: #222;
  line-height: 1.45;
  text-align: center;
}
.p-staff-detail__qa-text {
  font-size: clamp(13px, 1.16vw, 16px); /* 16px at 1380px */
  font-weight: 500;
  color: #222;
  line-height: 1.75;
  max-width: clamp(700px, 72.46vw, 1000px); /* 1000px at 1380px */
  margin: 0 auto;
}

/*===========================================================================*/
/*  News List Page (お知らせ一覧)                                               */
/*===========================================================================*/
/* ---------- News List Section ---------- */
.p-news-list {
  padding-top: clamp(60px, 13.12vw, 181px); /* 181px at 1380px */
  padding-bottom: clamp(60px, 13.04vw, 180px); /* 180px at 1380px */
}

/* ---------- News Item ---------- */
.p-news-item + .p-news-item {
  margin-top: clamp(30px, 4.35vw, 60px); /* 60px at 1380px */
}
.p-news-item__link {
  display: flex;
  align-items: center;
  gap: clamp(30px, 5.29vw, 73px); /* 73px at 1380px */
  text-decoration: none;
  color: inherit;
}
.p-news-item__thumb {
  flex: 0 0 clamp(250px, 39.13vw, 540px); /* 540px at 1380px */
  overflow: hidden;
}
.p-news-item__thumb img {
  width: 100%;
  height: 100%;
  aspect-ratio: 540/324;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.p-news-item__link:hover .p-news-item__thumb img {
  transform: scale(1.04);
}
.p-news-item__body {
  flex: 1;
  min-width: 0;
}
.p-news-item__meta {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.74vw, 24px); /* 24px at 1380px */
  margin-bottom: clamp(10px, 1.59vw, 22px); /* 22px at 1380px */
}
.p-news-item__date {
  font-family: "Roboto", sans-serif;
  font-size: clamp(13px, 1.45vw, 20px); /* 20px at 1380px */
  font-weight: 700;
  color: #779AC6;
  line-height: 1.45;
}
.p-news-item__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(55px, 7.1vw, 98px); /* 98px at 1380px */
  height: clamp(18px, 1.88vw, 26px); /* 26px at 1380px */
  padding: 0 clamp(8px, 1.01vw, 14px);
  border-radius: 34px;
  background: #779AC6;
  font-size: clamp(11px, 1.3vw, 18px); /* 18px at 1380px */
  font-weight: 700;
  color: #fff;
  line-height: 1;
  white-space: nowrap;
}
.p-news-item__title {
  font-size: clamp(16px, 2.03vw, 28px); /* 28px at 1380px */
  font-weight: 700;
  color: #222;
  line-height: 1.45;
  margin-bottom: clamp(12px, 1.96vw, 27px); /* 27px at 1380px */
}
.p-news-item__text {
  font-size: clamp(13px, 1.16vw, 16px); /* 16px at 1380px */
  font-weight: 500;
  color: #222;
  line-height: 1.75;
  letter-spacing: 0.01em;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---------- Pagination ---------- */
.p-pagination {
  margin-top: clamp(40px, 10.14vw, 140px); /* 140px at 1380px */
  display: flex;
  justify-content: center;
}
.p-pagination__list {
  display: flex;
  align-items: center;
  gap: clamp(4px, 0.58vw, 8px); /* 8px at 1380px */
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-pagination__item span,
.p-pagination__item a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(22px, 2.32vw, 32px); /* 32px at 1380px */
  height: clamp(22px, 2.32vw, 32px); /* 32px at 1380px */
  font-size: clamp(12px, 1.16vw, 16px); /* 16px at 1380px */
  font-weight: 700;
  color: #222;
  text-decoration: none;
  position: relative;
  background: #fff;
}
.p-pagination__item span::before,
.p-pagination__item a::before {
  content: "";
  position: absolute;
  inset: -1px;
  background: linear-gradient(135deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  z-index: -1;
}
.p-pagination__item a:hover {
  background: rgba(255, 255, 255, 0.85);
}
.p-pagination__item--current span {
  background: linear-gradient(135deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  color: #fff;
}
.p-pagination__item--current span::before {
  display: none;
}
.p-pagination__item--arrow a {
  gap: 1px;
}
.p-pagination__item--arrow a svg {
  width: clamp(3px, 0.29vw, 4px);
  height: auto;
}

/*===========================================================================*/
/*  News Detail Page (お知らせ詳細)                                              */
/*===========================================================================*/
.p-news-detail {
  padding-top: clamp(60px, 12.97vw, 179px);
  padding-bottom: clamp(60px, 11.59vw, 160px);
}
.p-news-detail__content {
  max-width: 1000px;
  margin: 0 auto;
}
.p-news-detail__meta {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.74vw, 24px);
  margin-bottom: clamp(10px, 1.59vw, 22px);
}
.p-news-detail__title {
  font-size: clamp(18px, 2.03vw, 28px);
  font-weight: 700;
  color: #222;
  line-height: 1.45;
}
.p-news-detail__line {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  margin-top: clamp(16px, 2.17vw, 30px);
  margin-bottom: clamp(20px, 4.35vw, 60px);
}
.p-news-detail__image {
  text-align: center;
  margin-bottom: clamp(24px, 3.91vw, 54px);
}
.p-news-detail__image img {
  max-width: clamp(280px, 39.13vw, 540px);
  width: 100%;
  aspect-ratio: 540/324;
  object-fit: cover;
  display: block;
  margin: 0 auto;
}
.p-news-detail {
  /* --- Article body typography --- */
}
.p-news-detail__body {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 2.05;
  padding-bottom: clamp(40px, 5.07vw, 70px);
}
.p-news-detail__body p {
  margin-bottom: clamp(16px, 2.9vw, 40px);
}
.p-news-detail__body p:last-child {
  margin-bottom: 0;
}
.p-news-detail__body h2, .p-news-detail__body h2.wp-block-heading {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.96vw, 27px);
  font-size: clamp(16px, 1.59vw, 22px);
  font-weight: 700;
  color: #222;
  line-height: 1.45;
  margin-top: clamp(30px, 4.64vw, 64px);
  margin-bottom: clamp(16px, 2.97vw, 41px);
}
.p-news-detail__body h2::before, .p-news-detail__body h2.wp-block-heading::before {
  content: "";
  flex-shrink: 0;
  width: 2px;
  height: clamp(30px, 3.26vw, 45px);
  background: linear-gradient(to bottom, #5581B8 0%, #BBBCBC 50%, #DBC216 100%);
}
.p-news-detail__body h3, .p-news-detail__body h3.wp-block-heading {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.3vw, 18px);
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 700;
  color: #222;
  line-height: 1.45;
  margin-top: clamp(24px, 3.19vw, 44px);
  margin-bottom: clamp(12px, 2.32vw, 32px);
}
.p-news-detail__body h3::before, .p-news-detail__body h3.wp-block-heading::before {
  content: "";
  flex-shrink: 0;
  width: clamp(16px, 1.74vw, 24px);
  height: clamp(16px, 1.74vw, 24px);
  border-radius: 50%;
  background: linear-gradient(133deg, #DBC216 12%, #BBBCBC 51%, #5581B8 90%);
}
.p-news-detail {
  /* --- List box with gradient border --- */
}
.p-news-detail__list-box, .p-news-detail__body .wp-block-list {
  position: relative;
}
.p-news-detail__list-box::before, .p-news-detail__body .wp-block-list::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(138deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 57%, rgb(85, 129, 184) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  pointer-events: none;
}
.p-news-detail__list-box, .p-news-detail__body .wp-block-list {
  list-style: none;
  padding: clamp(14px, 1.3vw, 18px) clamp(20px, 2.17vw, 30px) clamp(16px, 1.45vw, 20px) clamp(40px, 3.55vw, 49px);
  margin-top: clamp(16px, 2.03vw, 28px);
}
.p-news-detail__list-box li, .p-news-detail__body .wp-block-list li {
  position: relative;
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 2.05;
  letter-spacing: 0.005em;
}
.p-news-detail__list-box li::before, .p-news-detail__body .wp-block-list li::before {
  content: "";
  position: absolute;
  left: clamp(-18px, -1.04vw, -20px);
  top: 1em;
  transform: translateY(-50%);
  width: clamp(8px, 0.87vw, 12px);
  height: clamp(8px, 0.87vw, 12px);
  border-radius: 50%;
  background: #5581B8;
}
.p-news-detail {
  /* --- Back button --- */
}
.p-news-detail__back {
  display: flex;
  justify-content: center;
  margin-top: clamp(40px, 8.77vw, 121px);
}
.p-news-detail__back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: clamp(180px, 20.65vw, 285px);
  height: clamp(44px, 4.93vw, 68px);
  border-radius: 50px;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  padding: 0 clamp(10px, 1.3vw, 18px) 0 clamp(20px, 3.62vw, 50px);
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.p-news-detail__back-btn:hover {
  opacity: 0.85;
}
.p-news-detail__back-text {
  font-family: "Roboto", sans-serif;
  font-size: clamp(14px, 1.74vw, 24px);
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
}
.p-news-detail__back-circle {
  width: clamp(18px, 2.1vw, 29px);
  height: clamp(18px, 2.1vw, 29px);
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.p-news-detail__back-circle svg {
  width: clamp(5px, 0.65vw, 9px);
  height: auto;
}

/*===========================================================================*/
/*  Contact Page (お問い合わせ)                                                  */
/*===========================================================================*/
/* ---------- Contact Form Section ---------- */
.p-contact-form {
  padding-top: clamp(50px, 13.04vw, 180px);
  padding-bottom: clamp(60px, 11.59vw, 160px);
}
.p-contact-form__intro {
  text-align: center;
  margin-bottom: clamp(30px, 4.06vw, 56px);
}
.p-contact-form__badge-row {
  display: inline-flex;
  align-items: center;
  gap: clamp(12px, 1.59vw, 22px);
  margin-bottom: clamp(12px, 1.67vw, 23px);
}
.p-contact-form__badge {
  width: clamp(42px, 4.2vw, 58px);
  height: clamp(42px, 4.2vw, 58px);
  border-radius: 50%;
  background: #5481B8;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.p-contact-form__badge span {
  font-size: clamp(14px, 1.45vw, 20px);
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}
.p-contact-form__heading {
  font-size: clamp(16px, 1.74vw, 24px);
  font-weight: 700;
  color: #222;
  line-height: 1.2;
}
.p-contact-form__note {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.7;
  letter-spacing: -0.02em;
}
.p-contact-form__note span {
  color: #DB0001;
}
.p-contact-form {
  /* ---------- Form Box ---------- */
}
.p-contact-form__box {
  position: relative;
}
.p-contact-form__box::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(138deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 57%, rgb(85, 129, 184) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  pointer-events: none;
}
.p-contact-form__box {
  max-width: clamp(500px, 57.97vw, 800px);
  margin: 0 auto;
  padding: clamp(24px, 2.68vw, 37px) clamp(36px, 4.42vw, 61px) clamp(24px, 2.9vw, 40px);
}

/* ---------- Form Fields ---------- */
.p-form__group + .p-form__group {
  margin-top: clamp(20px, 2.68vw, 37px);
}
.p-form__group:last-child {
  margin-top: clamp(24px, 2.97vw, 41px);
}
.p-form__head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 clamp(6px, 0.58vw, 8px);
  margin-bottom: clamp(8px, 1.23vw, 17px);
}
.p-form__label {
  display: block;
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.2;
  margin-bottom: clamp(8px, 1.23vw, 17px);
}
.p-form__head .p-form__label {
  margin-bottom: 0;
}
.p-form__req {
  color: #DB0001;
}
.p-form__hint {
  font-size: clamp(11px, 1.01vw, 14px);
  font-weight: 500;
  color: #222;
  line-height: 1.2;
}
.p-form__input {
  display: block;
  width: 100%;
  height: clamp(38px, 3.91vw, 54px);
  background: #F9F9F9;
  border: 1px solid #CDCDCD;
  padding: 0 clamp(12px, 1.52vw, 21px);
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  outline: none;
  appearance: none;
  transition: border-color 0.2s ease;
}
.p-form__input::placeholder {
  color: #ACACAC;
}
.p-form__input:focus {
  border-color: #5581B8;
}
.p-form__textarea {
  display: block;
  width: 100%;
  height: clamp(120px, 16.3vw, 225px);
  background: #F9F9F9;
  border: 1px solid #CDCDCD;
  padding: clamp(10px, 1.3vw, 18px) clamp(12px, 1.52vw, 21px);
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.7;
  outline: none;
  resize: vertical;
  transition: border-color 0.2s ease;
}
.p-form__textarea::placeholder {
  color: #ACACAC;
}
.p-form__textarea:focus {
  border-color: #5581B8;
}
.p-form {
  /* --- Radio buttons --- */
}
.p-form__radio-group {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(8px, 0.94vw, 13px);
}
.p-form__radio-item {
  display: flex;
  align-items: center;
  gap: clamp(6px, 0.94vw, 13px);
  height: clamp(38px, 3.91vw, 54px);
  border: 1px solid #CDCDCD;
  padding: 0 clamp(10px, 1.23vw, 17px);
  cursor: pointer;
  transition: border-color 0.2s ease;
}
.p-form__radio-item:has(input:checked) {
  border-color: #5780B8;
}
.p-form__radio-item input[type=radio] {
  display: none;
}
.p-form__radio-box {
  width: clamp(11px, 1.09vw, 15px);
  height: clamp(11px, 1.09vw, 15px);
  background: #D9D9D9;
  flex-shrink: 0;
  transition: background 0.2s ease;
}
.p-form__radio-item:has(input:checked) .p-form__radio-box {
  background: #5481B8;
}
.p-form__radio-text {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.2;
  white-space: nowrap;
}
.p-form {
  /* --- Submit button --- */
}
.p-form__submit {
  display: flex;
  justify-content: center;
  margin-top: clamp(28px, 2.97vw, 41px);
}
.p-form__submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(140px, 14.49vw, 200px);
  height: clamp(36px, 3.48vw, 48px);
  border: 1px solid #5780B8;
  background: #fff;
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #5481B8;
  text-align: center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: background 0.3s ease, color 0.3s ease;
}
.p-form__submit-btn:hover {
  background: #5481B8;
  color: #fff;
}

/*===========================================================================*/
/*  Contact Thanks Page (送信完了)                                               */
/*===========================================================================*/
.p-thanks {
  padding-top: clamp(60px, 12.97vw, 179px);
  padding-bottom: clamp(60px, 11.59vw, 160px);
  text-align: center;
}
.p-thanks__title {
  font-size: clamp(18px, 1.74vw, 24px);
  font-weight: 700;
  color: #222;
  line-height: 1.2;
  margin-bottom: clamp(20px, 3.04vw, 42px);
}
.p-thanks__body {
  max-width: clamp(400px, 51.96vw, 717px);
  margin: 0 auto;
  text-align: left;
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.85;
}
.p-thanks__body p + p {
  margin-top: clamp(16px, 1.74vw, 24px);
}
.p-thanks__back {
  display: flex;
  justify-content: center;
  margin-top: clamp(36px, 5.14vw, 71px);
}
.p-thanks__back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: clamp(160px, 18.99vw, 262px);
  height: clamp(40px, 4.93vw, 68px);
  border-radius: 50px;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  padding: 0 clamp(10px, 2.17vw, 30px) 0 clamp(20px, 4.57vw, 63px);
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.p-thanks__back-btn:hover {
  opacity: 0.85;
}
.p-thanks__back-text {
  font-family: "Roboto", sans-serif;
  font-size: clamp(14px, 1.74vw, 24px);
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
}
.p-thanks__back-circle {
  width: clamp(18px, 2.1vw, 29px);
  height: clamp(18px, 2.1vw, 29px);
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.p-thanks__back-circle svg {
  width: clamp(5px, 0.65vw, 9px);
  height: auto;
}

/*===========================================================================*/
/*  Service subpages — Coming soon（Figma: ロイヤルアウトソーシング/グロース PC） */
/*===========================================================================*/
.p-coming-soon {
  padding-top: clamp(48px, 6.77vw, 94px);
  padding-bottom: clamp(60px, 11.59vw, 160px);
  text-align: center;
}
.p-coming-soon__en {
  font-family: "Roboto", sans-serif;
  font-size: clamp(36px, 4.27vw, 82px);
  font-weight: 700;
  line-height: 1.171875;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0 0 4px;
  display: inline-block;
}
.p-coming-soon__text {
  margin: 0 auto;
  font-size: clamp(18px, 1.25vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  color: #222;
}

/*===========================================================================*/
/*  Recruit / Entry Form Page (採用情報・エントリーフォーム)                        */
/*===========================================================================*/
.p-entry-form {
  padding-top: clamp(50px, 12.68vw, 175px);
  padding-bottom: clamp(60px, 11.59vw, 160px);
}
.p-entry-form__note {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.7;
  letter-spacing: -0.02em;
  text-align: center;
  margin-bottom: clamp(30px, 4.2vw, 58px);
}
.p-entry-form__note span {
  color: #DB0001;
}
.p-entry-form__box {
  position: relative;
}
.p-entry-form__box::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(138deg, rgb(219, 194, 22) 0%, rgb(187, 188, 188) 57%, rgb(85, 129, 184) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  pointer-events: none;
}
.p-entry-form__box {
  max-width: clamp(500px, 57.97vw, 800px);
  margin: 0 auto;
  padding: clamp(24px, 2.68vw, 37px) clamp(36px, 4.42vw, 61px) clamp(28px, 3.19vw, 44px);
}

.p-form__date-group {
  display: flex;
  align-items: center;
  gap: clamp(8px, 1.3vw, 18px);
}

.p-form__date-item {
  display: flex;
  align-items: center;
  gap: clamp(6px, 1.01vw, 14px);
}

.p-form__date-unit {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  white-space: nowrap;
  flex-shrink: 0;
}

.p-form__input--date {
  width: clamp(70px, 9.13vw, 126px);
}

.p-form__radio-group--gender {
  gap: clamp(8px, 0.94vw, 13px);
}

/*===========================================================================*/
/*  Privacy Policy Page (プライバシーポリシー)                                    */
/*===========================================================================*/
/* --- Breadcrumb variant: no KV above --- */
.p-breadcrumb--no-kv {
  padding-top: clamp(60px, 6.81vw, 94px); /* header 82px + gap 12px = 94px at 1380px */
}

/* --- Main section --- */
.p-privacy {
  padding-top: clamp(40px, 4.93vw, 68px);
  padding-bottom: clamp(60px, 11.59vw, 160px);
  /* gap between the two policy sections */
}
.p-privacy__section + .p-privacy__section {
  margin-top: clamp(60px, 8.7vw, 120px);
}
.p-privacy {
  /* Section heading group */
}
.p-privacy__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(2px, 0.29vw, 4px);
  margin-bottom: clamp(30px, 3.77vw, 52px);
}
.p-privacy {
  /* EN heading (gradient) */
}
.p-privacy__en {
  font-family: "Roboto", sans-serif;
  font-size: clamp(40px, 5.8vw, 80px);
  font-weight: 700;
  line-height: 1.17;
  text-align: center;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.p-privacy {
  /* JP heading */
}
.p-privacy__ja {
  font-size: clamp(20px, 2.46vw, 34px);
  font-weight: 700;
  color: #222;
  text-align: center;
  line-height: 1.45;
}
.p-privacy {
  /* Gradient separator line */
}
.p-privacy__line {
  max-width: 1000px;
  height: 1px;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  margin: 0 auto clamp(30px, 3.77vw, 52px);
}
.p-privacy {
  /* Content column (intro + articles) */
}
.p-privacy__content {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 2.9vw, 40px);
}
.p-privacy {
  /* Intro paragraph */
}
.p-privacy__intro {
  font-size: 16px;
  font-weight: 500;
  color: #222;
  line-height: 1.8;
}
.p-privacy {
  /* Single article block */
}
.p-privacy__article {
  display: flex;
  flex-direction: column;
}
.p-privacy {
  /* Article heading with left gradient line */
}
.p-privacy__article-head {
  position: relative;
  padding-left: 27px;
  display: flex;
  align-items: center;
  min-height: 45px;
}
.p-privacy__article-head::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 2px;
  height: 45px;
  background: linear-gradient(to bottom, #5581B8 0%, #BBBCBC 50%, #DBC216 100%);
}
.p-privacy__article-head h2 {
  font-size: 22px;
  font-weight: 700;
  color: #222;
  line-height: 1.45;
  margin-bottom: 20px;
}
.p-privacy {
  /* Article body text */
}
.p-privacy__article-body {
  font-size: 15px;
  font-weight: 500;
  color: #222;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: justify;
  white-space: pre-line;
}
.p-privacy__list {
  list-style: none;
  display: flex;
  flex-direction: column;
}
.p-privacy__list li {
  position: relative;
  padding-left: clamp(16px, 1.45vw, 20px);
  font-size: 15px;
  font-weight: 500;
  color: #222;
  line-height: 1.8;
  letter-spacing: 0.05em;
  font-feature-settings: 'palt' on;

}
.p-privacy__list li::before {
  content: "";
  position: absolute;
  left: 0.3em;
  top: 0.9em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #000;
  transform: translateY(-50%);
}

/*===========================================================================*/
/*  404 Error Page                                                            */
/*===========================================================================*/
.p-404 {
  padding-top: clamp(40px, 4.93vw, 68px);
  padding-bottom: clamp(60px, 8.7vw, 120px);
}
.p-404__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(2px, 0.29vw, 4px);
  margin-bottom: clamp(30px, 3.77vw, 52px);
}
.p-404__en {
  font-family: "Roboto", sans-serif;
  font-size: clamp(40px, 5.8vw, 80px);
  font-weight: 700;
  line-height: 1.17;
  text-align: center;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.p-404__ja {
  font-size: clamp(20px, 2.46vw, 34px);
  font-weight: 700;
  color: #222;
  text-align: center;
  line-height: 1.45;
}
.p-404__line {
  max-width: 1000px;
  height: 1px;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  margin: 0 auto clamp(24px, 3.77vw, 52px);
}
.p-404__text {
  max-width: 1000px;
  margin: 0 auto clamp(24px, 3.77vw, 52px);
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.8;
  text-align: center;
}
.p-404__back {
  display: flex;
  justify-content: center;
}
.p-404__back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: clamp(160px, 18.99vw, 262px);
  height: clamp(40px, 4.93vw, 68px);
  border-radius: 50px;
  background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
  padding: 0 clamp(10px, 2.17vw, 30px) 0 clamp(20px, 4.57vw, 63px);
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.p-404__back-btn:hover {
  opacity: 0.85;
}
.p-404__back-text {
  font-family: "Roboto", sans-serif;
  font-size: clamp(14px, 1.74vw, 24px);
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
}
.p-404__back-circle {
  width: clamp(18px, 2.1vw, 29px);
  height: clamp(18px, 2.1vw, 29px);
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.p-404__back-circle svg {
  width: clamp(5px, 0.65vw, 9px);
  height: auto;
}

@media (max-width: 900px) {
  .l-wrapper {
    padding-left: 20px;
    padding-right: 20px;
  }
  .l-inner {
    max-width: 520px;
  }
  .pc-only {
    display: none;
  }
  .br-pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }
  .br-sp-only {
    display: inline;
  }
  /*===========================================================================*/
  /*  Header SP                                                                 */
  /*===========================================================================*/
  .p-header {
    height: 52px;
  }
  .p-header__logo img {
    width: 119px;
  }
  .p-header .ham-btn {
    display: flex;
  }
  /*===========================================================================*/
  /*  Hero SP                                                                   */
  /*===========================================================================*/
  .p-hero {
    aspect-ratio: initial;
    height: 540px;
  }
  .p-hero__content {
    position: absolute;
    left: 23px; /* Figma: sub の x=23 を基準 */
    top: 248px; /* Figma: catch の y=248 */
  }
  .p-hero__catch {
    margin-left: 20px; /* Figma: catch x=43, sub x=23 → 差分20px */
    font-size: 32px;
    font-weight: 600;
    color: #fff;
    line-height: 1.448;
    text-shadow: 0px 7px 6px rgba(0, 0, 0, 0.46);
    white-space: nowrap;
  }
  .p-hero__sub {
    margin-top: 15px;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    line-height: 1.448;
    letter-spacing: 0.02em;
    text-shadow: 0px 5px 6px rgba(0, 0, 0, 0.46);
    white-space: nowrap;
  }
  .p-hero__logo {
    width: 73%;
    bottom: 0;
    right: 0;
  }
  .p-hero__logo img {
    border-radius: 60px 0 0 0;
  }
  /*===========================================================================*/
  /*  body                                                                      */
  /*===========================================================================*/
  .p-body__bg {
    z-index: -1;
  }
  .p-body__bg.--1 {
    width: 834px;
    top: -295px;
    right: initial;
    left: 50%;
    transform: translateX(-33%);
  }
  .p-body__bg.--2 {
    width: 1151.132px;
    /* top: 10.5%; */
    top: 9%;
    left: 50%;
    transform: translateX(-60%);
    z-index: 1;
  }
}
@media (max-width: 900px) and (max-width: 460px) {
  .p-body__bg.--2 {
    /* top: 676px; */
    top: 577px;
  }
}
@media (max-width: 900px) {
  /*===========================================================================*/
  /*  Ticker SP                                                                 */
  /*===========================================================================*/
  .p-ticker {
    padding-top: 40px;
  }
  .p-ticker__track {
    gap: 14px;
  }
  .p-ticker__item {
    width: 158px;
    height: 76px;
  }
  .p-ticker__item img {
    max-height: 50px;
  }
  /*===========================================================================*/
  /*  About SP                                                                  */
  /*===========================================================================*/
  .p-about {
    padding-top: 40px;
    padding-bottom: 120px;
  }
  .p-about__inner {
    flex-direction: column-reverse;
    gap: 59px;
  }
  .p-about__en {
    font-size: 30px;
    margin-bottom: 26px;
  }
  .p-about__title {
    font-size: 22px;
    margin-bottom: 26px;
  }
  .p-about__text {
    font-size: 14px;
    margin-bottom: 43px;
  }
  .p-about__image {
    width: 100%;
    max-width: 274px;
  }
  /*===========================================================================*/
  /*  Service SP                                                                */
  /*===========================================================================*/
  .p-service {
    border-radius: 60px 0 0 0;
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .p-service__bg {
    position: absolute;
    width: 1332.55px;
    left: 50%;
    transform: translateX(-40%);
    top: initial;
    bottom: -12%;
    z-index: -1;
  }
}
@media (max-width: 900px) and (max-width: 460px) {
  .p-service__bg {
    bottom: -25%;
  }
}
@media (max-width: 900px) {
  .p-service__en {
    font-size: 48px;
    margin-bottom: 4px;
  }
  .p-service__title {
    font-size: 20px;
    margin-bottom: 32px;
  }
  .p-service__cards {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .p-service__card-wrap::after {
    opacity: 0.85;
  }
  .p-service__card-wrap .p-service__card-img {
    aspect-ratio: 345/260;
  }
  .p-service__card-icon {
    height: 42px;
    margin-bottom: 11px;
  }
  .p-service__card-name {
    font-size: 20px;
    margin-bottom: 0;
  }
  .p-service__card-sub {
    font-size: 14px;
    margin-bottom: 11px;
  }
  .p-service__card-text {
    font-size: 14px;
    margin-bottom: 14px;
  }
  .p-service__card-link {
    font-size: 14px;
    gap: 7px;
  }
  .p-service__card-link svg {
    width: 15px;
    height: auto;
  }
}
@media (max-width: 900px) {
  /*===========================================================================*/
  /*  Reason SP                                                                 */
  /*===========================================================================*/
  .p-reason {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .p-reason__bg {
    position: absolute;
    width: 1267.935px;
    left: 50%;
    z-index: -1;
    transform: translateX(-40%);
    top: 36%;
  }
}
@media (max-width: 900px) and (max-width: 460px) {
  .p-reason__bg {
    transform: translateX(-25%);
    top: 47%;
  }
}
@media (max-width: 900px) {
  .p-reason__en {
    font-size: 30px; /* Figma SP: 30px */
    margin-bottom: 24px;
  }
  .p-reason__title {
    font-size: 22px;
    line-height: 1.61;
  }
  .p-reason__head {
    margin-bottom: 30px; /* Figma SP: box01 y=219, title bottom y=189 → 30px */
    padding-right: 0;
    padding-left: 0; /* PCのl-inner合わせpadding-leftをリセット */
  }
  .p-reason__layout {
    grid-template-columns: 1fr;
    margin-bottom: 60px;
  }
  .p-reason__col-left {
    border: none;
    grid-column: 1;
    grid-row: auto;
  }
  .p-reason__col-right {
    /* SP: PCのgrid指定をリセット */
    grid-column: 1;
    grid-row: auto;
    display: flex;
    flex-direction: column;
    /* Figma SP: gap between boxes 24px */
    gap: 24px;
    border-top: none;
  }
  .p-reason__item-box {
    /* Figma SP: padding top 20px, sides 15px */
    padding: 20px 15px;
    gap: 16px;
  }
  .p-reason__side-img {
    /*
      Figma SP: x=0, width=360, height=200 (viewport=375px → 右15px)
      l-wrapper SP padding = 20px
      左端揃え: margin-left: -20px
      幅 = 100% (=viewport-40px) + 40px - 15px = 100% + 25px
    */
    display: block;
    grid-column: 1;
    grid-row: auto;
    align-self: auto;
    margin-top: 60px; /* Figma SP: ボックス終端y=1175, 画像開始y=1235 → 60px */
    margin-left: -20px;
    width: calc(100% + 25px);
    height: 200px; /* Figma SP: height=200px */
    overflow: hidden;
  }
  .p-reason__side-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .p-reason__item-top {
    display: flex;
    /* Figma SP: num x=15, num width≈58px, title x=93 → gap≈20px */
    gap: 20px;
  }
  .p-reason__num {
    font-size: 52px; /* Figma SP: 52px */
    flex-shrink: 0;
    padding-top: 0;
  }
  .p-reason__item-title {
    font-size: 17px; /* Figma SP: 17px */
    line-height: 1.55;
    padding-top: 8px;
  }
  .p-reason__item-text {
    font-size: 14px; /* Figma SP: 14px */
    line-height: 1.6;
  }
  .p-reason__stats {
    margin-top: 60px;
  }
  .p-reason__stats-title {
    font-size: 22px;
    margin-bottom: 28px;
  }
  .p-reason__stats-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 13px 10px;
    margin-bottom: 47px;
  }
  .p-reason__stat {
    text-align: left;
  }
  .p-reason__stat:nth-child(odd) {
    text-align: right;
  }
  .p-reason__stat-img {
    display: inline-block;
    height: 58px;
  }
  .p-reason__cases-title {
    font-size: 16px;
    margin-bottom: 17px;
  }
  .p-reason__cases-list-wrap {
    padding-bottom: 32px;
    margin-left: -20px;
    margin-right: -20px;
  }
  .p-reason__cases-list-wrap::after {
    height: 216px;
  }
  .p-reason__cases-pagination {
    margin-top: 25px;
    position: relative !important;
    bottom: initial !important;
  }
  .p-reason__cases-pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: #fff;
    opacity: 1;
    border: 1px solid #B6B6B6;
  }
  .p-reason__cases-pagination .swiper-pagination-bullet-active {
    background: #B6B6B6;
    border-color: #B6B6B6;
  }
  .p-reason__cases-item-body {
    margin-top: 16px;
    gap: 16px;
    font-size: 16px;
  }
  .p-reason__cases-item-body svg {
    width: 22px;
    height: auto;
  }
  .p-reason__cases-btn {
    margin-top: 35px;
  }
}
@media (max-width: 900px) {
  /*===========================================================================*/
  /*  News SP                                                                   */
  /*===========================================================================*/
  .p-news {
    padding-top: 36px;
    padding-bottom: 39px;
    padding-left: 30px;
    padding-right: 30px;
    margin-bottom: 60px;
  }
  .p-news__bg {
    left: 15px;
    right: 15px;
  }
  .p-news__inner {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .p-news__inner > .p-btn-more {
    order: 2;
    align-self: center;
    margin-top: 32px;
  }
  .p-news__left {
    order: 0;
    margin-bottom: 32px;
  }
  .p-news__en {
    font-size: 45px;
  }
  .p-news__list {
    order: 1;
    width: 100%;
  }
  .p-news__tag {
    font-size: 12px;
    padding: 2px 8px;
  }
  .p-news__date {
    font-size: 13px;
  }
  .p-news__item-title {
    font-size: 12px;
  }
  .p-news__item-arrow {
    width: 5px;
  }
  /*===========================================================================*/
  /*  Recruit SP                                                                */
  /*===========================================================================*/
  .p-recruit {
    padding-top: 28px;
    padding-bottom: 48px;
    margin-bottom: 60px;
  }
  .p-recruit__bg {
    left: 15px;
    right: 15px;
  }
  .p-recruit__en {
    font-size: 47px;
    margin-bottom: 8px;
  }
  .p-recruit__ja {
    font-size: 20px;
    margin-bottom: 12px;
  }
  .p-recruit__text {
    font-size: 14px;
    margin-bottom: 27px;
  }
  .p-recruit__btn {
    font-size: 14px;
  }
  .p-recruit__btn-arrow {
    width: 15px;
  }
  /*===========================================================================*/
  /*  Contact SP                                                                */
  /*===========================================================================*/
  .p-contact {
    padding-top: 35px;
    padding-bottom: 32px;
  }
  .p-contact__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .p-contact__left {
    flex: 1;
    min-width: 0;
  }
  .p-contact__heading {
    gap: 8px;
    margin-bottom: 10px;
  }
  .p-contact__en {
    font-size: 41px;
  }
  .p-contact__ja {
    font-size: 16px;
  }
  .p-contact__text {
    font-size: 14px;
  }
  .p-contact__btn-circle {
    width: 26px;
    height: 26px;
  }
  /*===========================================================================*/
  /*  Footer SP                                                                 */
  /*===========================================================================*/
  .p-footer {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .p-footer__body {
    flex-direction: column;
    align-items: center;
    gap: 0;
    margin-bottom: 36px;
    padding-left: 0;

  }
  .p-footer__col-left {
    width: auto;
    align-items: center;
    gap: 16px;
  }
  .p-footer__col-right {
    display: none;
  }
  .p-footer__logo {
    width: 200px;
  }
  .p-footer__address {
    font-size: 14px;
    text-align: center;
    white-space: nowrap;
  }
  .p-footer__bottom {
    flex-direction: column;
    align-items: center;
    padding-top: 13px;
    margin: 0 -5px;
  }
  .p-footer__copy {
    font-size: 12px;
    margin-top: 0;
  }
  /*===========================================================================*/
  /*  p-btn-more SP                                                             */
  /*===========================================================================*/
  .p-btn-more {
    font-size: 14px;
    width: 174px;
    height: 45px;
    padding-right: 0;
  }
  .p-btn-more__circle {
    width: 19px;
    height: 19px;
    right: 14px;
  }
  .p-btn-more__circle svg {
    width: 5px;
    height: auto;
  }
  /*===========================================================================*/
  /*  About Page SP                                                             */
  /*===========================================================================*/
  /* ---------- Page KV SP ---------- */
  .p-page-kv {
    height: 200px;
  }
  .p-page-kv__box {
    width: 285px;
    border-radius: 20px 20px 0 0;
    padding: 15px 16px 0;
  }
  .p-page-kv__en {
    font-size: 34px;
  }
  .p-page-kv__ja {
    font-size: 17px;
    margin-top: 4px;
    padding-bottom: 12px;
  }
  /* ---------- Breadcrumb SP ---------- */
  .p-breadcrumb {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .p-breadcrumb__list {
    font-size: 12px;
  }
  /* ---------- Message SP ---------- */
  .p-message {
    padding-top: 36px;
    padding-bottom: 40px;
  }
  .p-message__inner {
    display: flex;
    flex-direction: column;
  }
  .p-message {
    /* SP: タイトル → 写真 → 本文 の順に表示 */
  }
  .p-message__title {
    order: 1;
  }
  .p-message__img {
    order: 2;
    width: 279px;
    margin: 46px auto 43px;
  }
  .p-message__img img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
  .p-message__body {
    order: 3;
    width: 100%;
  }
  .p-message__en {
    font-size: 47px;
  }
  .p-message__heading {
    font-size: 20px;
    margin-top: 4px;
    margin-bottom: 0;
  }
  .p-message__text {
    font-size: 14px;
    line-height: 1.8;
  }
  .p-message__text + .p-message__text {
    margin-top: 16px;
  }
  .p-message__role {
    font-size: 16px;
    margin-top: 16px;
    text-align: right;
  }
  .p-message__name {
    font-size: 20px;
    text-align: right;
  }
  /* ---------- MVV SP ---------- */
  .p-mvv {
    padding-top: 40px;
    padding-bottom: 30px;
  }
  .p-mvv__heading {
    font-size: 47px;
    margin-bottom: 16px;
  }
  .p-mvv__intro {
    font-size: 14px;
    text-align: center;
    line-height: 1.8;
    margin-bottom: 8px;
  }
  .p-mvv__item {
    padding-top: 32px;
  }
  .p-mvv__item-head {
    flex-direction: column;
    gap: 6px;
    align-items: baseline;
    flex-wrap: wrap;
    margin-bottom: 15px;
  }
  .p-mvv__item-line {
    margin-bottom: 13px;
  }
  .p-mvv__en {
    font-size: 26px;
    flex-shrink: 0;
  }
  .p-mvv__sub {
    font-size: 14px;
    line-height: 1.6;
    flex: 1;
    min-width: 0;
  }
  .p-mvv__text {
    font-size: 14px;
    line-height: 1.7;
  }
  /* ---------- About Logo SP ---------- */
  .p-about-logo {
    padding-top: 35px;
    padding-bottom: 40px;
  }
  .p-about-logo__img {
    width: 275px;
    margin-bottom: 24px;
  }
  .p-about-logo__text {
    font-size: 14px;
    line-height: 1.7;
    text-align: center;
  }
  /* ---------- Company Info SP ---------- */
  .p-company-info {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .p-company-info__heading {
    font-size: 20px;
    text-align: left;
    margin-bottom: 48px;
  }
  .p-company-info__table {
    max-width: 100%;
    margin-top: 0;
  }
  .p-company-info__row {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
    padding: 16px 0;
  }
  .p-company-info__label {
    width: auto;
    font-size: 14px;
  }
  .p-company-info__value {
    font-size: 14px;
    letter-spacing: 0;
    line-height: 145%;
  }
  /* ---------- Access SP ---------- */
  .p-about-access {
    padding-top: 40px;
    padding-bottom: 80px;
  }
  .p-about-access__inner {
    max-width: 100%;
  }
  .p-about-access__heading {
    font-size: 20px;
    margin-bottom: 14px;
  }
  .p-about-access__map {
    margin-bottom: 16px;
  }
  .p-about-access__map iframe {
    aspect-ratio: 345/169;
  }
  .p-about-access__text {
    font-size: 14px;
    line-height: 1.8;
  }
  /* ==========================================================================
     Service Page SP
     ========================================================================== */
  /* ---------- サービス概要イントロ SP ---------- */
  .p-rs-intro {
    padding-top: 40px;
    padding-bottom: 60px;
  }
  .p-rs-intro__inner {
    text-align: left;
  }
  .p-rs-intro__catch {
    font-size: 18px;
    font-weight: 800;
    line-height: 1.55;
    letter-spacing: -0.04em;
    color: #222;
    margin-bottom: 16px;
    text-align: center;
  }
  .p-rs-intro__text {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: -0.03em;
    color: #222;
    max-width: 100%;
    text-align: left;
  }
  /* ---------- サービスダイアグラム SP ---------- */
  .p-rs-diagram {
    padding-top: 60px;
    padding-bottom: 250px;
  }
  .p-rs-diagram__support {
    font-size: 18px;
    line-height: 1.6;
    margin-top: 20px;
    text-align: center;
  }
  /* ---------- 実績統計 SP ---------- */
  .p-rs-stats {
    margin-top: -230px;
  }
  .p-rs-stats__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    flex-direction: unset;
    align-items: unset;
  }
  .p-rs-stats__item {
    min-width: auto;
    width: 100%;
    padding: 20px 12px;
    gap: 6px;
    flex: none;
  }
  .p-rs-stats__item--wide {
    grid-column: 1/-1;
  }
  .p-rs-stats__stars {
    width: 59px;
    height: auto;
  }
  .p-rs-stats__label {
    font-size: 14px;
  }
  .p-rs-stats__num {
    font-size: 28px;
  }
  .p-rs-stats__unit {
    font-size: 18px;
  }
  /* ---------- 強み（Features） SP ---------- */
  .p-rs-features {
    padding-top: 50px;
    padding-bottom: 50px;
  }
  .p-rs-features__head {
    margin-bottom: 30px;
  }
  .p-rs-features__en {
    font-size: 40px;
  }
  .p-rs-features__title {
    font-size: 18px;
  }
  .p-rs-features__lead {
    font-size: 15px;
    margin-top: 40px;
    text-align: left;
  }
  .p-rs-feature {
    flex-direction: column;
    gap: 0;
    margin-bottom: 56px;
  }
  .p-rs-feature__numtitle {
    width: 100%;
  }
  .p-rs-feature {
    /* Feature 01: SP縦並び・numtitle→img→body→cmp */
  }
  .p-rs-feature--01 {
    display: flex;
    flex-direction: column;
  }
  .p-rs-feature--01 .p-rs-feature__numtitle {
    order: 1;
  }
  .p-rs-feature--01 .p-rs-feature__img-col {
    order: 2;
  }
  .p-rs-feature--01 .p-rs-feature__body {
    order: 3;
  }
  .p-rs-feature--01 .p-rs-feature__cmp {
    order: 4;
  }
  .p-rs-feature--01 .p-rs-feature__img-main {
    width: 69.3%;
    left: 0;
    right: auto;
    top: 0;
    transform: none;
  }
  .p-rs-feature--01 .p-rs-feature__img-sub {
    width: 42.3%;
    right: 0;
    left: auto;
    top: 16.7%;
    bottom: auto;
  }
  .p-rs-feature--01 .p-rs-feature__cmp {
    margin-top: 20px;
  }
  .p-rs-feature {
    /* Feature 02: SP縦並び・numtitle→img→body→data-table */
  }
  .p-rs-feature--02 {
    display: flex;
    flex-direction: column;
  }
  .p-rs-feature--02 .p-rs-feature__numtitle {
    order: 1;
  }
  .p-rs-feature--02 .p-rs-feature__img-col {
    order: 2;
  }
  .p-rs-feature--02 .p-rs-feature__body {
    order: 3;
  }
  .p-rs-feature--02 .p-rs-feature__data-table {
    order: 4;
    margin-top: 40px;
  }
  .p-rs-feature--02 .p-rs-feature__img-main {
    width: 69%;
    right: 0;
    left: auto;
    top: 0;
    transform: none;
  }
  .p-rs-feature--02 .p-rs-feature__img-sub {
    width: 42%;
    left: 0;
    right: auto;
    top: 16.7%;
    bottom: auto;
  }
  .p-rs-feature {
    /* Feature 03: ブロック表示 */
  }
  .p-rs-feature--03 {
    display: block;
    text-align: left;
  }
  .p-rs-feature--03 .p-rs-feature__numtitle,
  .p-rs-feature--03 .p-rs-feature__title,
  .p-rs-feature--03 .p-rs-feature__sub,
  .p-rs-feature--03 .p-rs-feature__text {
    text-align: left;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
  .p-rs-feature--03 .p-rs-feature__numtitle {
    margin-bottom: 16px;
  }
  .p-rs-feature {
    /* Feature 04: SP縦並び・画像フルwidth */
  }
  .p-rs-feature--04 {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-left: -20px;
    margin-right: -20px;
    margin-bottom: 0;
  }
  .p-rs-feature--04 .p-rs-feature__04-numtitle {
    order: 1;
    padding: 0 20px 0 20px;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
  }
  .p-rs-feature--04 .p-rs-feature__04-numtitle .p-rs-feature__num {
    text-align: right;
    font-size: 104px;
    margin-bottom: 0;
    line-height: 1.2;
  }
  .p-rs-feature--04 .p-rs-feature__04-numtitle .p-rs-feature__title {
    font-size: 22px;
    font-weight: 900;
    line-height: 1.6;
    margin-bottom: 0;
  }
  .p-rs-feature--04 .p-rs-feature__img-col {
    order: 2;
    width: 100%;
    flex: none;
  }
  .p-rs-feature--04 .p-rs-feature__img-col img,
  .p-rs-feature--04 .p-rs-feature__img-col .p-rs-feature__img-main {
    position: static;
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    z-index: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .p-rs-feature--04 .p-rs-feature__body {
    order: 3;
    width: 100%;
    padding: 14px 20px 0 20px;
  }
  .p-rs-feature--04 .p-rs-feature__body .p-rs-feature__text {
    font-size: 14px;
    font-weight: 500;
    line-height: 2;
    margin-bottom: 12px;
  }
  .p-rs-feature--04 .p-rs-feature__body .p-rs-feature__text:last-child {
    margin-bottom: 0;
  }
  .p-rs-feature {
    /* ===== numtitleブロック（Feature 01/02/03 共通） ===== */
  }
  .p-rs-feature__numtitle {
    position: relative;
    padding-top: 16px;
    margin-bottom: 16px;
  }
  .p-rs-feature__numtitle .p-rs-feature__num {
    position: absolute;
    right: 0;
    top: 0;
    font-size: 104px;
    margin-bottom: 0;
    line-height: 1.17;
    z-index: 0;
  }
  .p-rs-feature__numtitle .p-rs-feature__title {
    position: relative;
    z-index: 1;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.6;
    margin-bottom: 0;
  }
  .p-rs-feature__img-col {
    flex: none;
    width: 100%;
  }
  .p-rs-feature {
    /* 重なり画像ラッパー SP（Feature 01/02） */
  }
  .p-rs-feature__img-wrap {
    padding-bottom: 50%;
  }
  .p-rs-feature__body {
    width: 100%;
    padding-top: 16px;
  }
  .p-rs-feature__num {
    font-size: 104px;
    margin-bottom: 0;
    line-height: 1.17;
  }
  .p-rs-feature__title {
    font-size: 22px;
    font-weight: 900;
    line-height: 1.6;
    margin-bottom: 12px;
  }
  .p-rs-feature__sub {
    font-size: 14px;
    margin-bottom: 10px;
  }
  .p-rs-feature__text {
    font-size: 14px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.01em;
    margin-bottom: 12px;
  }
  .p-rs-feature__text:last-child {
    margin-bottom: 0;
  }
  .p-rs-feature {
    /* ===== 比較カード SP ===== */
  }
  .p-rs-feature__cmp {
    margin-top: 24px;
  }
  .p-rs-feature {
    /* ===== アイコンボックス SP ===== */
  }
  .p-rs-feature__icons {
    flex-direction: column;
    gap: 10px;
    margin-top: 16px;
  }
  .p-rs-feature__icon-box {
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 18px;
    padding: 16px 29px;
  }
  .p-rs-feature__icon-img {
    height: 40px;
    flex-shrink: 0;
  }
  .p-rs-feature__icon-text {
    font-size: 14px;
    line-height: 1.65;
    min-height: 3.3em;
  }
  .p-rs-feature {
    /* ===== データテーブル SP ===== */
  }
  .p-rs-feature__data-table {
    margin-top: 28px;
  }
  .p-rs-feature__data-title {
    font-size: 15px;
    margin-bottom: 12px;
  }
  .p-rs-feature__data-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
  }
  .p-rs-feature__data-grid span {
    font-size: 10px;
    padding: 8px 4px;
  }
  .p-rs-feature {
    /* ===== フォトカード SP ===== */
  }
  .p-rs-feature__cards {
    flex-direction: column;
    gap: 26px;
    margin-top: 20px;
    margin-bottom: 20px;
  }
  .p-rs-feature__card {
    padding: 20px 30px;
    border-radius: 0;
  }
  .p-rs-feature__card::before {
    border-radius: 0;
  }
  .p-rs-feature__card:not(:last-child)::after {
    width: 21px;
    height: 12px;
    left: 50%;
    top: calc(100% + 8px);
    transform: translate(-50%, 0);
    clip-path: polygon(0 0, 50% 100%, 100% 0);
  }
  .p-rs-feature__card-title {
    font-size: 16px;
    margin-bottom: 2px;
  }
  .p-rs-feature__card-sub {
    font-size: 12px;
    margin-bottom: 8px;
  }
  .p-rs-feature .wrap {
    margin-top: 12px;
    min-height: initial;
  }
  .p-rs-feature__card-photos {
    gap: 7px 4px;
  }
  .p-rs-feature__card-photos.--single {
    grid-template-columns: 1fr 1fr;
    max-width: 212px;
  }
  .p-rs-feature__card-photos.--double {
    grid-template-columns: 1fr 1fr 1fr;
    max-width: 287px;
  }
  .p-rs-feature__card-photos.--triple {
    grid-template-columns: 1fr 1fr 1fr;
    max-width: 287px;
  }
  .p-rs-feature__textsub {
    font-size: 16px;
    text-align: center;
  }
  .p-rs-feature {
    /* ===== フローステップ SP ===== */
  }
  .p-rs-feature__flow {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .p-rs-feature__flow picture {
    margin-top: 20px;
  }
  .p-rs-feature__flow-step {
    flex: none;
    width: 100%;
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
    padding: 14px 16px;
    border-radius: 0;
    gap: 12px;
  }
  .p-rs-feature__flow-step:first-of-type {
    border-radius: 6px 6px 0 0;
  }
  .p-rs-feature__flow-step:last-of-type {
    border-radius: 0 0 6px 6px;
  }
  .p-rs-feature__flow-arrow {
    width: 2px;
    height: 16px;
    background: #5581B8;
    margin: 0 auto;
  }
  .p-rs-feature__flow-arrow::after {
    right: 50%;
    top: auto;
    bottom: -1px;
    transform: translateX(50%);
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 7px solid #5581B8;
    border-bottom: none;
  }
  .p-rs-feature__flow-num {
    font-size: 22px;
    margin-bottom: 0;
    flex-shrink: 0;
    line-height: 1.4;
  }
  .p-rs-feature__flow-label {
    font-size: 15px;
    margin-bottom: 4px;
    font-weight: 700;
  }
  .p-rs-feature__flow-desc {
    font-size: 12px;
    line-height: 1.5;
    flex: 1;
  }
  /* ---------- サービスモデル SP ---------- */
  /* ---------- サービスモデル SP ---------- */
  .p-rs-model {
    padding-top: 40px;
    padding-bottom: 56px;
    border-radius: 40px 0 0 0;
  }
  .p-rs-model__head {
    margin-bottom: 24px;
  }
  .p-rs-model__en {
    font-size: 47px;
    margin-bottom: 10px;
  }
  .p-rs-model__title {
    font-size: 18px;
    margin-bottom: 20px;
  }
  .p-rs-model__lead {
    font-size: 14px;
    line-height: 1.8;
  }
  .p-rs-model {
    /* 縦スタック */
  }
  .p-rs-model__grid {
    grid-template-columns: 1fr;
    gap: 0;
    padding-bottom: 0;
  }
  .p-rs-model__col {
    margin-bottom: 14px;
  }
  .p-rs-model__col:last-child {
    margin-bottom: 0;
  }
  .p-rs-model__step-top {
    border-radius: 8px;
    padding: 16px 20px;
    aspect-ratio: initial;
  }
  .p-rs-model__step-label {
    font-size: 16px;
  }
  .p-rs-model__step-name {
    font-size: 16px;
    line-height: 1.8;
    min-height: initial;
  }
  .p-rs-model__step-sub {
    font-size: 12px;
  }
  .p-rs-model__step-arrow {
    border-left-width: 10px;
    border-right-width: 10px;
    border-top-width: 12px;
    margin: 0 auto 6px;
  }
  .p-rs-model__step-bot {
    border-radius: 8px;
    padding: 14px 16px;
  }
  .p-rs-model__step-result {
    font-size: 16px;
    line-height: 1.8;
  }
  .p-rs-model {
    /* 売上アップを実現 */
  }
  .p-rs-model__outcome {
    margin-top: 53px;
    margin-bottom: 40px;
  }
  .p-rs-model__outcome::before {
    bottom: calc(100% + 8px);
    width: 100%;
    max-width: 345px;
    aspect-ratio: 345/33;
    background: url(../img/arrow-sp.png) no-repeat center center/contain;
  }
  .p-rs-model__outcome-text {
    font-size: 22px;
  }
  .p-rs-model {
    /* 業種・課題カード */
  }
  .p-rs-model__variety {
    border-radius: 8px;
  }
  .p-rs-model__variety-head {
    padding: 16px;
  }
  .p-rs-model__variety-title {
    font-size: 18px;
  }
  .p-rs-model__variety-body {
    grid-template-columns: 1fr;
    padding: 20px 15px 36px;
    gap: 20px;
  }
  .p-rs-model__variety-label {
    font-size: 16px;
    margin-bottom: 10px;
  }
  .p-rs-model__variety-list {
    border-radius: 8px;
    padding: 15px;
  }
  .p-rs-model__variety-list p {
    font-size: 13px;
    line-height: 1.65;
    min-height: initial;
  }
  /* ---------- ご利用の流れ SP ---------- */
  .p-rs-flow {
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .p-rs-flow__head {
    margin-bottom: 13px;
  }
  .p-rs-flow__en {
    font-size: 47px;
  }
  .p-rs-flow__title {
    font-size: 18px;
  }
  .p-rs-flow__list {
    max-width: 100%;
  }
  .p-rs-flow__item {
    align-items: flex-start;
    gap: 0;
    border-bottom: none;
  }
  .p-rs-flow__left {
    width: 54px;
    padding: 20px 0;
    justify-content: flex-start;
    align-items: flex-start;
  }
  .p-rs-flow__left::before, .p-rs-flow__left::after {
    display: none;
  }
  .p-rs-flow__num {
    font-size: 40px;
  }
  .p-rs-flow__body {
    flex: 1;
    padding: 20px 0;
    position: relative;
    border-bottom: 1px solid #BBBCBC;
  }
  .p-rs-flow__body::before {
    content: "";
    position: absolute;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #5581B8;
    left: -36px;
    top: 63px;
    z-index: 1;
  }
  .p-rs-flow__body::after {
    content: "";
    position: absolute;
    width: 1px;
    background: #5581B8;
    left: -32px;
    top: 66.5px;
    bottom: 0;
    z-index: 0;
  }
  .p-rs-flow__item:last-child .p-rs-flow__body::before, .p-rs-flow__item:last-child .p-rs-flow__body::after {
    display: none;
  }
  .p-rs-flow__step-title {
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 8px;
    margin-top: 8px;
  }
  .p-rs-flow__text {
    font-size: 14px;
    line-height: 1.75;
  }
  /*===========================================================================*/
  /*  Cases Page SP (成果事例)                                                  */
  /*===========================================================================*/
  .p-cases-list {
    padding-top: 30px;
    padding-bottom: 50px;
  }
  .p-cases-list__grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 40px;
  }
  .p-cases-list__pagination {
    gap: 8px;
  }
  .p-cases-list__page-btn {
    width: 28px;
    height: 28px;
    font-size: 14px;
  }
  .p-cases-card {
    padding: 20px 20px 24px;
  }
  .p-cases-card__logo {
    height: 132px;
    margin-bottom: 14px;
    font-size: 25px;
  }
.p-cases-card__logo img {
  width: 100%;
  height: auto;
  display: block;
}
  .p-cases-card__stats {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0;
    justify-content: space-between;
    margin-bottom: 14px;
    max-width: 100%;
  }
  .p-cases-card__stat {
    display: flex;
    align-items: center;
    gap: 4px;
    width: 100%;
  }
  .p-cases-card__badge {
    height: 26px;
    min-width: 62px;
    font-size: 16px;
    border-radius: 34px;
    padding: 0 8px;
  }
  .p-cases-card__value {
    font-size: 20px;
  }
  .p-cases-card__value-unit {
    font-size: 14px;
  }
  .p-cases-card__strip {
    padding: 7px 0;
    margin-left: -20px;
    margin-right: -20px;
    margin-bottom: 14px;
  }
  .p-cases-card__desc {
    font-size: 16px;
    line-height: 1.3;
  }
  .p-cases-card__dl {
    padding: 18px 0;
  }
  .p-cases-card__dl dt {
    font-size: 14px;
    min-width: 76px;
  }
  .p-cases-card__dl dd {
    font-size: 14px;
  }
  .p-cases-card__foot {
    margin-top: 14px;
  }
  .p-cases-card__link-text {
    font-size: 14px;
  }
  .p-cases-card__link-icon {
    width: 14px;
    height: 14px;
  }
  .p-cases-card__link-icon svg {
    width: 5px;
  }
  /*===========================================================================*/
  /*  Case Detail Page SP (成果事例詳細)                                        */
  /*===========================================================================*/
  /* ---------- Case Hero KV SP ---------- */
  .p-case-hero {
    height: auto;
  }
  .p-case-hero__content {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 82px;
    padding-bottom: 40px;
    gap: 12px;
    justify-content: center;
  }
  .p-case-hero__left {
    flex: none;
    width: 100%;
    justify-content: flex-start;
  }
  .p-case-hero__logo-box {
    width: 100%;
    height: 92px;
    font-size: 19px;
  }
.p-case-hero__logo-box img {
  width: 100%;
  height: auto;
  display: block;
}
  .p-case-hero__right {
    flex: none;
    width: 100%;
    gap: 6px;
  }
  .p-case-hero__company {
    font-size: 16px;
    margin-top: 4px;
  }
  .p-case-hero__title {
    font-size: 22px;
  }
  /* ---------- Case Detail SP ---------- */
  .p-case-detail {
    padding-top: 52px;
    padding-bottom: 80px;
  }
  .p-case-detail__photo {
    max-width: 100%;
    height: 95px;
    margin-bottom: 20px;
    font-size: 16px;
  }
.p-case-detail__photo img {
  width: 100%;
  height: auto;
  display: block;
}
  .p-case-detail__info-box {
    max-width: 100%;
    padding: 20px 15px;
    margin-bottom: 20px;
  }
  .p-case-detail__section-title {
    font-size: 16px;
    margin-bottom: 6px;
  }
  .p-case-detail__section-text {
    font-size: 14px;
  }
  .p-case-detail__divider {
    margin: 20px 0;
  }
  .p-case-detail__results-title {
    font-size: 20px;
    margin-bottom: 0;
  }
  .p-case-detail__roi {
    font-size: 24px;
    margin-bottom: 12px;
  }
  .p-case-detail__roi span {
    font-size: 34px;
  }
  .p-case-detail__gradient-line {
    width: 100%;
    height: 10px;
    margin-bottom: 12px;
  }
  .p-case-detail__stats {
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
  }
  .p-case-detail__stat-row {
    padding: 14px 0;
  }
  .p-case-detail__stat-group {
    justify-content: space-between;
  }
  .p-case-detail__stat-group:first-child {
    padding-right: 18px;
  }
  .p-case-detail__stat-group:last-child {
    padding-left: 18px;
  }
  .p-case-detail__stat-group dt {
    width: auto;
    font-size: 14px;
  }
  .p-case-detail__stat-group dd {
    font-size: 14px;
  }
  .p-case-detail__stat-note {
    padding: 20px 0 8px;
  }
  .p-case-detail__stat-note span {
    font-size: 14px;
  }
  .p-case-detail__description {
    font-size: 14px;
    max-width: 100%;
  }
  /*===========================================================================*/
  /*  Staff List Page SP (スタッフ一覧)                                          */
  /*===========================================================================*/
  .p-staff-list {
    padding-top: 40px;
    padding-bottom: 50px;
  }
  .p-staff-list__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
  .p-staff-card {
    padding: 28px 8px 28px;
  }
  .p-staff-card:nth-child(-n+3) {
    border-top: none;
  }
  .p-staff-card:nth-child(-n+2) {
    border-top: 1px solid #BBBCBC;
  }
  .p-staff-card:not(:nth-child(3n)) {
    border-right: none;
  }
  .p-staff-card:nth-child(odd) {
    border-right: 1px solid #BBBCBC;
  }
  .p-staff-card__photo {
    aspect-ratio: 160/199;
    margin-bottom: 12px;
  }
  .p-staff-card__body {
    gap: 0;
  }
  .p-staff-card__role {
    font-size: 12px;
    text-align: left;
    line-height: 1.7;
  }
  .p-staff-card__foot {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .p-staff-card__name {
    font-size: 14px;
    text-align: left;
    letter-spacing: 0.01em;
    line-height: 1.8;
  }
  .p-staff-card__link {
    gap: 5px;
    align-self: flex-end;
  }
  .p-staff-card__link-text {
    font-size: 12px;
    letter-spacing: 0.02em;
  }
  .p-staff-card__link-icon {
    width: 9px;
    height: 9px;
  }
  .p-staff-card__link-icon svg {
    width: 3.5px;
  }
  /*===========================================================================*/
  /*  News List Page SP (お知らせ一覧)                                            */
  /*===========================================================================*/
  .p-news-list {
    padding-top: 50px;
    padding-bottom: 50px;
  }
  .p-news-item + .p-news-item {
    margin-top: 40px;
  }
  .p-news-item__link {
    flex-direction: column;
    gap: 0;
  }
  .p-news-item__thumb {
    flex: none;
    width: 100%;
  }
  .p-news-item__thumb img {
    aspect-ratio: 345/207;
    height: auto;
  }
  .p-news-item__body {
    padding-top: 18px;
  }
  .p-news-item__meta {
    gap: 10px;
    margin-bottom: 10px;
  }
  .p-news-item__date {
    font-size: 14px;
  }
  .p-news-item__cat {
    min-width: 72px;
    height: 20px;
    font-size: 12px;
    padding: 0 8px;
  }
  .p-news-item__title {
    font-size: 20px;
    margin-bottom: 8px;
  }
  .p-news-item__text {
    font-size: 14px;
  }
  .p-pagination {
    margin-top: 40px;
  }
  .p-pagination__list {
    gap: 8px;
  }
  .p-pagination__item span,
  .p-pagination__item a {
    width: 32px;
    height: 32px;
    font-size: 16px;
  }
  /*===========================================================================*/
  /*  Staff Detail Page SP (スタッフ詳細)                                        */
  /*===========================================================================*/
  /* ---------- Staff Hero SP ---------- */
  .p-staff-hero {
    position: relative;
    height: auto;
    overflow: hidden;
  }
  .p-staff-hero__photo-wrap {
    position: absolute;
    left: 0;
    top: 0;
    width: 73.33%; /* 275/375 */
    height: 100%;
  }
  .p-staff-hero__photo-wrap img {
    object-position: top right;
  }
  .p-staff-hero__inner {
    align-items: flex-start;
  }
  .p-staff-hero__content {
    margin-left: 0;
    padding-top: 79px; /* ヘッダー高さ分 */
    padding-bottom: 60px;
    padding-left: 41%; /* 154/375 ≈ 41% */
    gap: 8px;
  }
  .p-staff-hero__label {
    font-size: 17px;
  }
  .p-staff-hero__quote {
    font-size: 16px;
    line-height: 1.6;
  }
  .p-staff-hero__nav-name {
    font-size: 14px;
    align-self: flex-end;
  }
  /* ---------- Staff Detail SP ---------- */
  .p-staff-detail {
    padding-top: 44px;
    padding-bottom: 50px;
  }
  .p-staff-detail__profile {
    flex-direction: column;
    gap: 0;
    margin-bottom: 40px;
  }
  .p-staff-detail__photo-col {
    flex: none;
    width: 275px;
    max-width: calc(100% - 70px);
    margin: 0 auto 48px;
  }
  .p-staff-detail__photo-col img {
    aspect-ratio: 275/300;
  }
  .p-staff-detail__info-col {
    width: 100%;
  }
  .p-staff-detail__name-en {
    font-size: 14px;
    margin-bottom: 2px;
  }
  .p-staff-detail__name {
    font-size: 16px;
    margin-bottom: 20px;
  }
  .p-staff-detail__dl-row {
    padding: 14px 0;
  }
  .p-staff-detail__dl-row--2col {
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .p-staff-detail__dl-row--2col .p-staff-detail__dl-group:first-child {
    border-bottom: 1px solid #BBBCBC;
    padding-bottom: 14px;
  }
  .p-staff-detail__dl-group dt {
    font-size: 14px;
    margin-bottom: 4px;
  }
  .p-staff-detail__dl-group dd {
    font-size: 14px;
  }
  .p-staff-detail__qa {
    margin-bottom: 40px;
  }
  .p-staff-detail__qa-head {
    height: 35px;
    margin-bottom: 24px;
  }
  .p-staff-detail__qa-title {
    font-size: 17px;
  }
  .p-staff-detail__qa-text {
    font-size: 14px;
    line-height: 1.8;
    max-width: 100%;
  }
  /*===========================================================================*/
  /*  News Detail Page SP (お知らせ詳細)                                           */
  /*===========================================================================*/
  .p-news-detail {
    padding-top: 51px;
    padding-bottom: 60px;
  }
  .p-news-detail__content {
    max-width: 100%;
  }
  .p-news-detail__meta {
    gap: 10px;
    margin-bottom: 10px;
  }
  .p-news-detail__title {
    font-size: 20px;
    line-height: 1.45;
  }
  .p-news-detail__line {
    margin-top: 18px;
    margin-bottom: 28px;
  }
  .p-news-detail__image {
    margin-bottom: 24px;
  }
  .p-news-detail__image img {
    max-width: 100%;
    aspect-ratio: 345/207;
  }
  .p-news-detail__body {
    font-size: 14px;
    line-height: 2.05;
    padding-bottom: 22px;
  }
  .p-news-detail__body p {
    margin-bottom: 16px;
  }
  .p-news-detail__body h2, .p-news-detail__body h2.wp-block-heading {
    font-size: 18px;
    gap: 12px;
    margin-top: 32px;
    margin-bottom: 16px;
  }
  .p-news-detail__body h2::before, .p-news-detail__body h2.wp-block-heading::before {
    height: 26px;
  }
  .p-news-detail__body h3, .p-news-detail__body h3.wp-block-heading {
    font-size: 16px;
    gap: 8px;
    margin-top: 28px;
    margin-bottom: 12px;
  }
  .p-news-detail__body h3::before, .p-news-detail__body h3.wp-block-heading::before {
    width: 16px;
    height: 16px;
  }
  .p-news-detail__list-box, .p-news-detail__body .wp-block-list {
    padding: 14px 16px 16px 36px;
    margin-top: 16px;
  }
  .p-news-detail__list-box li, .p-news-detail__body .wp-block-list li {
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.005em;
  }
  .p-news-detail__list-box li::before, .p-news-detail__body .wp-block-list li::before {
    left: -16px;
    top: 0.8em;
    width: 10px;
    height: 10px;
  }
  .p-news-detail__back {
    margin-top: 40px;
  }
  .p-news-detail__back-btn {
    width: 174px;
    height: 45px;
    padding: 0 10px 0 28px;
  }
  .p-news-detail__back-text {
    font-size: 14px;
  }
  .p-news-detail__back-circle {
    width: 19px;
    height: 19px;
  }
  .p-news-detail__back-circle svg {
    width: 6px;
  }
  /*===========================================================================*/
  /*  Contact Page SP (お問い合わせ)                                               */
  /*===========================================================================*/
  .p-contact-form {
    padding-top: 40px;
    padding-bottom: 60px;
  }
  .p-contact-form__intro {
    margin-bottom: 24px;
  }
  .p-contact-form__badge-row {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
  }
  .p-contact-form__badge {
    width: 52px;
    height: 52px;
  }
  .p-contact-form__badge span {
    font-size: 16px;
  }
  .p-contact-form__heading {
    font-size: 20px;
    line-height: 1.5;
    text-align: center;
  }
  .p-contact-form__note {
    font-size: 14px;
    line-height: 1.7;
    text-align: center;
  }
  .p-contact-form__box {
    max-width: 100%;
    padding: 20px;
  }
  .p-form__group + .p-form__group {
    margin-top: 20px;
  }
  .p-form__group:last-child {
    margin-top: 20px;
  }
  .p-form__head {
    margin-bottom: 8px;
    gap: 0 6px;
  }
  .p-form__label {
    font-size: 14px;
    margin-bottom: 8px;
  }
  .p-form__hint {
    font-size: 12px;
    display: block;
    margin-top: 2px;
  }
  .p-form__input {
    height: 48px;
    font-size: 14px;
    padding: 0 12px;
  }
  .p-form__textarea {
    height: 144px;
    font-size: 14px;
    padding: 12px;
  }
  .p-form__radio-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
  }
  .p-form__radio-item {
    width: 100%;
    height: 48px;
    gap: 10px;
    padding: 0 12px;
  }
  .p-form__radio-box {
    width: 14px;
    height: 14px;
  }
  .p-form__radio-text {
    font-size: 14px;
  }
  .p-form__submit {
    margin-top: 20px;
  }
  .p-form__submit-btn {
    width: 200px;
    height: 48px;
    font-size: 14px;
  }
  /*===========================================================================*/
  /*  Contact Thanks Page SP (送信完了)                                            */
  /*===========================================================================*/
  .p-thanks {
    padding-top: 52px;
    padding-bottom: 60px;
  }
  .p-thanks__title {
    font-size: 20px;
    margin-bottom: 20px;
  }
  .p-thanks__body {
    max-width: 100%;
    font-size: 14px;
    text-align: left;
  }
  .p-thanks__body p + p {
    margin-top: 16px;
  }
  .p-thanks__back {
    margin-top: 28px;
  }
  .p-thanks__back-btn {
    width: 174px;
    height: 45px;
    padding: 0;
    position: relative;
    justify-content: center;
  }
  .p-thanks__back-text {
    font-size: 14px;
  }
  .p-thanks__back-circle {
    width: 19px;
    height: 19px;
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
  }
  .p-thanks__back-circle svg {
    width: 6px;
  }
  /*===========================================================================*/
  /*  Service subpages — Coming soon SP（Figma）                                    */
  /*===========================================================================*/
  .p-coming-soon {
    padding-top: 52px;
    padding-bottom: 60px;
  }
  .p-coming-soon__en {
    font-size: 47px;
    margin-bottom: 10px;
  }
  .p-coming-soon__text {
    max-width: 100%;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
  }
  /*===========================================================================*/
  /*  Recruit / Entry Form Page SP (採用情報・エントリーフォーム)                      */
  /*===========================================================================*/
  .p-entry-form {
    padding-top: 40px;
    padding-bottom: 60px;
  }
  .p-entry-form__note {
    font-size: 14px;
    line-height: 1.7;
    text-align: center;
    margin-bottom: 24px;
  }
  .p-entry-form__box {
    max-width: 100%;
    padding: 20px 20px 28px;
  }
  .p-form__date-group {
    display: flex;
    align-items: center;
    gap: 4px;
  }
  .p-form__date-item {
    display: flex;
    align-items: center;
    gap: 4px;
  }
  .p-form__date-item p {
    gap: 4px;
  }
  .p-form__date-item .p-form__input {
    width: 72px;
    padding: 0 8px;
    text-align: center;
  }
  .p-form__date-unit {
    font-size: 14px;
  }
  .p-form__input--date {
    width: 80px;
    padding: 0 8px;
    text-align: center;
  }
  .p-form__radio-group--2col,
  .p-form__radio-group--gender {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
  }
  .p-form__radio-group--2col .p-form__radio-item,
  .p-form__radio-group--gender .p-form__radio-item {
    width: 100%;
    height: 48px;
  }
  /*===========================================================================*/
  /*  Privacy Policy Page SP (プライバシーポリシー)                                 */
  /*===========================================================================*/
  /* --- Breadcrumb variant: no KV above --- */
  .p-breadcrumb--no-kv {
    padding-top: 50px; /* header 42px + gap 8px = 50px */
  }
  /* --- Main section --- */
  .p-privacy {
    padding-top: 55px;
    padding-bottom: 60px;
  }
  .p-privacy__section + .p-privacy__section {
    margin-top: 60px;
  }
  .p-privacy__heading {
    gap: 4px;
    margin-bottom: 32px;
  }
  .p-privacy__en {
    font-size: 34px;
    line-height: 1.17;
  }
  .p-privacy__ja {
    font-size: 17px;
    line-height: 1.45;
  }
  .p-privacy__line {
    max-width: 100%;
    margin-bottom: 32px;
  }
  .p-privacy__content {
    max-width: 100%;
    gap: 32px;
  }
  .p-privacy__intro {
    font-size: 14px;
    line-height: 2.05;
  }
  .p-privacy__article-head {
    padding-left: 12px;
    min-height: 26px;
  }
  .p-privacy__article-head::before {
    height: 26px;
  }
  .p-privacy__article-head h2 {
    font-size: 18px;
    line-height: 1.45;
    margin-bottom: 12px;
  }
  .p-privacy__article-body {
    font-size: 14px;
    line-height: 1.8;
  }
  .p-privacy__list li {
    font-size: 14px;
    padding-left: 16px;
    line-height: 1.75;
  }
  .p-privacy__list li::before {
    width: 5px;
    height: 5px;
  }
  /*===========================================================================*/
  /*  404 Error Page SP                                                         */
  /*===========================================================================*/
  .p-404 {
    padding-top: 55px;
    padding-bottom: 80px;
  }
  .p-404__heading {
    gap: 4px;
    margin-bottom: 43px;
  }
  .p-404__en {
    font-size: 34px;
  }
  .p-404__ja {
    font-size: 17px;
  }
  .p-404__line {
    max-width: 100%;
    margin-bottom: 28px;
  }
  .p-404__text {
    max-width: 100%;
    text-align: left;
    font-size: 14px;
    line-height: 2.05;
    margin-bottom: 32px;
  }
  .p-404__back {
    display: flex;
    justify-content: center;
  }
  .p-404__back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 174px;
    height: 45px;
    border-radius: 50px;
    background: linear-gradient(90deg, #DBC216 0%, #BBBCBC 50%, #5581B8 100%);
    padding: 0 14px 0 52px;
    text-decoration: none;
    transition: opacity 0.3s ease;
  }
  .p-404__back-btn:hover {
    opacity: 0.85;
  }
  .p-404__back-text {
    font-family: "Roboto", sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
  }
  .p-404__back-circle {
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .p-404__back-circle svg {
    width: 6px;
    height: auto;
  }
}

/*===========================================================================*/
/*  Contact Form 7 レイアウト調整                                              */
/*===========================================================================*/

/* CF7 wrapperのpマージンリセット */
.p-form .wpcf7-form p {
  margin: 0;
}

/* CF7がlabel直後に挿入する<br>を非表示 */
.p-form__group p > br,
.p-form__head p > br {
  display: none;
}

/* p-form__head内のp: flexを継承 */
.p-form__head p {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 clamp(6px, 0.58vw, 8px);
  margin: 0;
}

/* CF7のwrapperをblock化 */
.p-form .wpcf7-form-control-wrap {
  display: block;
}

/* CF7ラジオボタン */
.p-form__radio-group .wpcf7-list-item {
  margin: 0;
}
.p-form__radio-group .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: clamp(6px, 0.94vw, 13px);
  height: clamp(38px, 3.91vw, 54px);
  border: 1px solid #CDCDCD;
  padding: 0 clamp(10px, 1.23vw, 17px);
  cursor: pointer;
  transition: border-color 0.2s ease;
}
.p-form__radio-group .wpcf7-list-item label:has(input:checked) {
  border-color: #5780B8;
}
.p-form__radio-group .wpcf7-list-item label input[type="radio"] {
  display: none;
}
.p-form__radio-group .wpcf7-list-item label::before {
  content: '';
  width: clamp(11px, 1.09vw, 15px);
  height: clamp(11px, 1.09vw, 15px);
  background: #D9D9D9;
  flex-shrink: 0;
  transition: background 0.2s ease;
}
.p-form__radio-group .wpcf7-list-item label:has(input:checked)::before {
  background: #5481B8;
}
.p-form__radio-group .wpcf7-list-item-label {
  font-size: clamp(13px, 1.16vw, 16px);
  font-weight: 500;
  color: #222;
  line-height: 1.2;
  white-space: nowrap;
}

/* 送信ボタンのpラッパー */
.p-form__submit p {
  margin: 0;
  display: flex;
  justify-content: center;
}

/* CF7スピナー非表示 */
.wpcf7-spinner {
  display: none !important;
}

/* バリデーションエラーメッセージ */
.p-form .wpcf7-not-valid-tip {
  display: block;
  color: #DB0001;
  font-size: 12px;
  margin-top: 4px;
}

/* 送受信結果メッセージ */
.p-form .wpcf7-response-output {
  margin: 16px 0 0 !important;
  padding: 8px 16px !important;
  text-align: center;
  font-size: 13px;
}

/* 生年月日フィールド: CF7の<p>ラッパー対応 */
.p-form__date-item p {
  display: flex;
  align-items: center;
  gap: clamp(6px, 1.01vw, 14px);
  margin: 0;
}
.p-form__date-item .wpcf7-form-control-wrap {
  flex: none;
}
.p-form__date-item .p-form__input {
  width: clamp(70px, 9.13vw, 126px);
  text-align: center;
  padding: 0 clamp(6px, 0.65vw, 9px);
}

/*# sourceMappingURL=style.css.map */
