@charset "UTF-8";
/*-------------------------------------
  breakpoint（デスクトップファースト）
  レイアウト切替は原則 md（768px）1本。他は崩れ補正にだけ使う。
  新規ブレークポイントの追加は禁止（仕様書3章）。
---------------------------------------*/
/*-------------------------------------
  英字ラベル（title-en）
  Zalando Sans 500 / 14px / ls1.5px / uppercase / $c-green-light
  ドット（8px正円）は c-label コンポーネント側で付与する
---------------------------------------*/
/*-------------------------------------
  セクション見出し（title-jp）
  Noto Sans JP Bold / PC32px SP24px / ls0.1em / palt
---------------------------------------*/
/*-------------------------------------
  ボタンの土台（c-btn と /contact の送信ボタンで共用）
  Figma実測: bg #009b53 / radius 12 / Bold 16px / 字送り 0.04em / 行送り 1.4（SP/PC同値）
  白ボタン（c-btn--white）は、これを継いだうえで色と文字サイズを上書きする。
  送信ボタンは Contact Form 7 が出す input なので、フォーム定義に class:c-btn と
  書けば c-btn を当てることもできる（実際に出力される）。それを採らないのは、
  フォーム定義の実体がDB側にあり git の差分に出ないため。値の正本はここに置く
---------------------------------------*/
/*-------------------------------------
  小見出し（title-sub）
  カンプ実測: Bold / SP18 ⇄ PC24 / 行送り1.5 / 字送り 0.1em / 文字色は緑。
  TOP の STRENGTHS の各行と /about の SERVICES の各項目で同じ型
---------------------------------------*/
/*-------------------------------------
  本文（body-jp）
  カンプ実測: Medium / SP15 ⇄ PC16 / 行送り SP23 ⇄ PC24 / 字送り 0.1em / $c-ink。
  全ページ共通の本文の型。行送りが別値の箇所（/about SERVICES の説明文など）は
  この mixin を使わず個別に持つ
---------------------------------------*/
/*-------------------------------------
  角丸20の写真
  素材にも角丸が焼き込まれているものがあるが、焼き込みは書き出し幅で固定なので
  表示幅が縮むと角丸も縮む（PC714で20pxでも SP335 では9.4px）。
  カンプはSP/PCとも20pxなのでCSS側でも指定する
---------------------------------------*/
/*-------------------------------------
  行頭のドット（正円）
  大きさはカンプ実測で 8px・SP/PC同値（下層の帯の中だけ SP6 ⇄ PC8）。
  英字ラベル（c-label / c-page-header__en）は文字色に追従させたいので currentColor を渡し、
  和文の見出し・項目（/about の写真キャプション・/access の小見出し・
  /ikusei-system の対象分野）は既定の $c-green-light を使う。
  ドットと文字の間隔は使う側の gap / margin で持つ（カンプ実測が3.5〜8pxとばらつくため）
  使用例: &::before { @include dot; }
---------------------------------------*/
/*-------------------------------------
  line-clamp（複数行省略 …）
  使用例: @include line-clamp(2);
---------------------------------------*/
html {
  font-size: 100%;
  scroll-padding-top: 86px;
}
@media screen and (max-width: 1100px) {
  html {
    scroll-padding-top: 64px;
  }
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  color: #333333;
  line-height: 1.5;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
  transition: 0.3s ease;
}

:focus-visible {
  outline: 2px solid #009b53;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #fff;
}

.js .js-fade {
  opacity: 0;
  translate: 0 20px;
  transition: opacity 0.6s ease, translate 0.6s ease;
}
.js .js-fade.is-visible {
  opacity: 1;
  translate: 0 0;
}

@media (prefers-reduced-motion: reduce) {
  .js .js-fade {
    opacity: 1;
    translate: none;
    transition: none;
  }
}
/*-------------------------------------
  印刷
  フェード（.js-fade）は画面に入るまで opacity:0 のままなので、
  スクロールせずに印刷すると本文が白紙で出る。紙では常に見えている状態にする。
  追従するヘッダーとサイドタブも、紙では通常の位置に戻す・出さない
---------------------------------------*/
@media print {
  .js .js-fade {
    opacity: 1;
    translate: none;
    transition: none;
  }
  .l-header {
    position: static;
  }
  .c-side-tab {
    display: none;
  }
}
.l-header {
  position: sticky;
  top: 0;
  z-index: 100;
}
.l-header:has(.is-open) {
  z-index: 210;
  background-color: transparent;
  pointer-events: none;
}
.l-header:has(.is-open) .l-header__hamburger {
  pointer-events: auto;
}
.l-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 86px;
  padding-inline: 30px;
  background-color: #fff;
}
@media screen and (max-width: 1100px) {
  .l-header {
    height: 64px;
    padding-inline: 20px;
  }
}

.l-header__logo {
  display: block;
  width: 258px;
  flex-shrink: 0;
}
@media screen and (max-width: 1100px) {
  .l-header__logo {
    width: 193px;
  }
}

.l-header__right {
  display: flex;
  align-items: center;
  gap: 28px;
}
@media screen and (max-width: 1100px) {
  .l-header__right {
    display: none;
  }
}

.l-header__nav-list {
  display: flex;
  align-items: center;
  gap: clamp(16px, 1.83vw, 26.4px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.l-header__nav-list a {
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.l-header__nav-list a:hover {
  color: #009b53;
}

.l-header__hamburger {
  display: none;
}
@media screen and (max-width: 1100px) {
  .l-header__hamburger {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
  }
  .l-header__hamburger span {
    display: block;
    width: 26px;
    height: 2px;
    background-color: #333333;
    transition: translate 0.3s ease, rotate 0.3s ease, opacity 0.3s ease;
  }
  .l-header__hamburger.is-open {
    position: fixed;
    top: 14px;
    right: 20px;
    z-index: 210;
  }
  .l-header__hamburger.is-open span {
    width: 20px;
    background-color: #009b53;
  }
  .l-header__hamburger.is-open span:nth-child(1) {
    translate: 0 8px;
    rotate: 45deg;
  }
  .l-header__hamburger.is-open span:nth-child(2) {
    opacity: 0;
  }
  .l-header__hamburger.is-open span:nth-child(3) {
    translate: 0 -8px;
    rotate: -45deg;
  }
}

/*-------------------------------------
  ドロワー（Figma: /sp/menu 375×812）
---------------------------------------*/
.l-drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  padding: 64px 20px 40px;
  background-color: #fff;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.l-drawer.is-open {
  opacity: 1;
  visibility: visible;
}

.l-drawer__bar {
  position: absolute;
  top: 0;
  left: 20px;
  right: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}

.l-drawer__logo {
  display: block;
  width: 193px;
}

.l-drawer__nav {
  width: min(335px, 100%);
  margin-top: 80px;
}

.l-drawer__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.l-drawer__list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0 17px;
  border-bottom: 1px solid #e9e9e9;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
.l-drawer__list a img {
  rotate: -90deg;
}

.l-drawer__cta {
  width: min(335px, 100%);
  padding: 24px 60px;
  gap: 12px;
  font-size: 20px;
  letter-spacing: 0.1em;
  box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.12);
}
.l-drawer__cta img {
  width: 30px;
  height: 30px;
}

@media (prefers-reduced-motion: reduce) {
  .l-drawer {
    transition: none;
  }
}
.l-footer {
  background-color: #f5f5f5;
  padding-top: clamp(40px, 40px + (100 - 40) * (100vw - 375px) / (1440 - 375), 100px);
}

.l-footer__main {
  display: flex;
  justify-content: space-between;
  gap: clamp(24px, 24px + (40 - 24) * (100vw - 375px) / (1440 - 375), 40px);
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(0px, 0px + (80 - 0) * (100vw - 968px) / (1440 - 968), 80px);
}
@media screen and (max-width: 992px) {
  .l-footer__main {
    flex-direction: column;
    gap: clamp(25.5px, 25.5px + (40 - 25.5) * (100vw - 375px) / (992 - 375), 40px);
  }
}

.l-footer__org {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 8px + (24 - 8) * (100vw - 375px) / (1440 - 375), 24px);
  flex-shrink: 0;
  margin-top: clamp(0px, 0px + (9 - 0) * (100vw - 992px) / (1440 - 992), 9px);
}

.l-footer__logo {
  display: block;
  width: clamp(258px, 258px + (298 - 258) * (100vw - 375px) / (1440 - 375), 298px);
}

.l-footer__address {
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 6px + (8 - 6) * (100vw - 375px) / (1440 - 375), 8px);
  font-style: normal;
  font-size: 15px;
  letter-spacing: 0.1em;
}
.l-footer__address p {
  margin: 0;
}

.l-footer__address-street {
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(20px, 20px + (24 - 20) * (100vw - 968px) / (1440 - 968), 24px);
}

.l-footer__nav {
  display: flex;
  gap: clamp(32px, 32px + (80 - 32) * (100vw - 768px) / (1440 - 768), 80px);
}
@media screen and (max-width: 767.98px) {
  .l-footer__nav {
    flex-direction: column;
    gap: 6.5333333333vw;
  }
}

.l-footer__nav-col {
  display: flex;
  flex-direction: column;
  gap: clamp(11.5px, 11.5px + (20 - 11.5) * (100vw - 375px) / (1440 - 375), 20px);
}

.l-footer__nav-title {
  margin: 0;
  color: #009b53;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.1em;
}

.l-footer__nav ul {
  display: flex;
  flex-direction: column;
  gap: clamp(7.5px, 7.5px + (11.5 - 7.5) * (100vw - 375px) / (1440 - 375), 11.5px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.l-footer__nav ul a {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.1em;
}
.l-footer__nav ul a::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 1px;
  background-color: #333333;
}
.l-footer__nav ul a:hover {
  color: #009b53;
}

.l-footer__copyright {
  margin-top: clamp(24px, 24px + (110 - 24) * (100vw - 375px) / (1440 - 375), 110px);
  padding-block: clamp(16px, 16px + (24 - 16) * (100vw - 375px) / (1440 - 375), 24px) calc(63px - clamp(23px, 23px + (40 - 23) * (100vw - 375px) / (1440 - 375), 40px));
  font-size: 12px;
  letter-spacing: 0.1em;
  text-align: center;
}
.l-footer__copyright small {
  font-weight: 300;
  font-size: 12px;
  letter-spacing: normal;
  color: #545454;
}

.l-wrapper {
  padding: 0 clamp(20px, 20px + (80 - 20) * (100vw - 968px) / (1440 - 968), 80px);
}

.l-inner {
  max-width: 1280px;
  margin: 0 auto;
}

.l-inner--narrow {
  max-width: 1080px;
}

.l-cols {
  display: grid;
  grid-template-columns: 365fr 715fr;
}
@media screen and (max-width: 767.98px) {
  .l-cols {
    grid-template-columns: 1fr;
    row-gap: 10.4vw;
  }
}

.c-logo {
  display: block;
  width: 100%;
  height: auto;
}

.c-panel {
  padding-inline: clamp(12px, 12px + (80 - 12) * (100vw - 968px) / (1440 - 968), 80px);
}

.c-panel__inner {
  max-width: 1280px;
  margin-inline: auto;
  border-radius: 20px;
}

.c-btn {
  border-radius: 12px;
  background-color: #009b53;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.04em;
  line-height: 1.4;
  font-feature-settings: normal;
  transition: background-color 0.3s ease;
}
.c-btn:hover {
  background-color: #008145;
}
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 20px 40px;
  white-space: nowrap;
}
.c-btn img {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}

.c-btn--compact {
  gap: clamp(16px, 16px + (20 - 16) * (100vw - 375px) / (1440 - 375), 20px);
  padding: clamp(16px, 16px + (20 - 16) * (100vw - 375px) / (1440 - 375), 20px) clamp(32px, 32px + (40 - 32) * (100vw - 375px) / (1440 - 375), 40px);
}

.c-btn--white {
  background-color: #fff;
  color: #333333;
  transition: background-color 0.3s ease, opacity 0.3s ease;
  gap: calc(41px - clamp(20px, 20px + (21 - 20) * (100vw - 375px) / (1440 - 375), 21px));
  padding: calc(41px - clamp(19.5px, 19.5px + (21.5 - 19.5) * (100vw - 375px) / (1440 - 375), 21.5px)) calc(84px - clamp(40px, 40px + (44 - 40) * (100vw - 375px) / (1440 - 375), 44px));
  font-size: 20px;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.12);
}
.c-btn--white img {
  width: 30px;
  height: 30px;
}
.c-btn--white:hover {
  background-color: #fff;
  opacity: 0.85;
}

.c-btn--pill {
  gap: 8px;
  height: 36px;
  padding: 0 16px;
  border-radius: 30px;
  font-size: 15px;
  letter-spacing: 0.1em;
}
.c-btn--pill img {
  width: 20px;
  height: 20px;
}

.c-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Zalando Sans", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.015em;
  line-height: 1.2142857143;
  text-transform: uppercase;
  color: #00d370;
}
.c-label::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: currentColor;
}

.c-label--pill {
  gap: clamp(6px, 6px + (8 - 6) * (100vw - 375px) / (1440 - 375), 8px);
  line-height: 1;
  justify-content: center;
  width: clamp(90px, 90px + (122 - 90) * (100vw - 375px) / (1440 - 375), 122px);
  padding: clamp(4px, 4px + (8 - 4) * (100vw - 375px) / (1440 - 375), 8px) 0;
  border-radius: 30px;
  background-color: #00d370;
  color: #fff;
  font-size: clamp(12px, 12px + (14 - 12) * (100vw - 375px) / (1440 - 375), 14px);
}
.c-label--pill::before {
  width: clamp(6px, 6px + (8 - 6) * (100vw - 375px) / (1440 - 375), 8px);
  height: clamp(6px, 6px + (8 - 6) * (100vw - 375px) / (1440 - 375), 8px);
}

.c-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 8px + (12 - 8) * (100vw - 375px) / (1440 - 375), 12px);
  text-align: center;
}

.c-heading--left {
  align-items: flex-start;
  text-align: left;
}

.c-heading--tight .c-heading__lead {
  margin-top: clamp(0px, 0px + (4 - 0) * (100vw - 375px) / (1440 - 375), 4px);
}

.c-heading--invert .c-label,
.c-heading--invert .c-heading__title,
.c-heading--invert .c-heading__lead {
  color: #fff;
}

.c-heading__title {
  margin: 0;
  margin-right: -0.1em;
  font-weight: 700;
  font-size: clamp(24px, 24px + (32 - 24) * (100vw - 968px) / (1440 - 968), 32px);
  letter-spacing: 0.1em;
  line-height: clamp(36px, 36px + (46 - 36) * (100vw - 968px) / (1440 - 968), 46px);
  color: #333333;
  font-feature-settings: "palt";
}

.c-heading__lead {
  margin: clamp(0px, 0px + (12 - 0) * (100vw - 375px) / (1440 - 375), 12px) 0 0;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.c-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 115px;
  padding: 4px 10px;
  border-radius: 30px;
  background-color: #e9e9e9;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: 18px;
  white-space: nowrap;
}

.c-category-filter {
  margin-bottom: clamp(40px, 40px + (60 - 40) * (100vw - 375px) / (1440 - 375), 60px);
}

.c-category-filter__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(10px, 10px + (12 - 10) * (100vw - 375px) / (1440 - 375), 12px);
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767.98px) {
  .c-category-filter__list {
    justify-content: flex-start;
  }
}

.c-category-filter__item {
  display: inline-flex;
  align-items: center;
  padding: 6px 23.5px;
  border-radius: 30px;
  background-color: #e9e9e9;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: 22px;
  white-space: nowrap;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.c-category-filter__item:hover {
  background-color: #009b53;
  color: #fff;
}
.c-category-filter__item[aria-current=page] {
  background-color: #009b53;
  color: #fff;
}

.c-news-item {
  box-shadow: inset 0 1px 0 #e9e9e9;
}
.c-news-item:last-child {
  box-shadow: inset 0 1px 0 #e9e9e9, inset 0 -1px 0 #e9e9e9;
}

.c-news-item__link {
  display: flex;
  align-items: center;
  gap: clamp(16px, 16px + (32 - 16) * (100vw - 968px) / (1440 - 968), 32px);
  padding: clamp(20px, 20px + (40 - 20) * (100vw - 375px) / (1440 - 375), 40px) calc(45px - clamp(20px, 20px + (25 - 20) * (100vw - 375px) / (768 - 375), 25px)) clamp(20px, 20px + (40 - 20) * (100vw - 375px) / (1440 - 375), 40px) 20px;
}
.c-news-item__link:hover .c-news-item__title {
  color: #009b53;
}
@media screen and (max-width: 767.98px) {
  .c-news-item__link {
    flex-wrap: wrap;
    row-gap: 5.3333333333vw;
  }
  .c-news-item__link .c-chip {
    margin-left: auto;
  }
}

.c-news-item__date {
  flex-shrink: 0;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767.98px) {
  .c-news-item__date {
    align-self: flex-start;
  }
}

.c-news-item__title {
  flex: 1;
  max-width: 66.6%;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: clamp(18px, 18px + (19 - 18) * (100vw - 968px) / (1440 - 968), 19px);
  transition: color 0.3s ease;
}
@media screen and (max-width: 767.98px) {
  .c-news-item__title {
    flex: 0 1 84.5%;
    max-width: none;
    font-feature-settings: "palt";
  }
}

.c-news-item__arrow {
  flex-shrink: 0;
  width: 12px;
  height: 7px;
  rotate: 90deg;
}
@media screen and (max-width: 767.98px) {
  .c-news-item__arrow {
    margin-left: auto;
  }
}

.c-pagination {
  margin-top: clamp(40px, 40px + (60 - 40) * (100vw - 375px) / (1440 - 375), 60px);
}

.c-pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.c-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #333333;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.04em;
  line-height: 1;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.c-pagination a.page-numbers:not(.prev):not(.next):hover {
  background-color: #e9e9e9;
}

.c-pagination .prev:hover,
.c-pagination .next:hover {
  opacity: 0.6;
}

.c-pagination .current {
  background-color: #009b53;
  color: #fff;
}

.c-pagination .dots,
.c-pagination .prev,
.c-pagination .next {
  min-width: 0;
}

.c-pagination__arrow {
  width: 12px;
  height: 7px;
  rotate: 90deg;
}

.c-pagination__arrow--prev {
  rotate: -90deg;
}

.c-page-header {
  display: flex;
  flex-direction: column;
  gap: clamp(13px, 13px + (25 - 13) * (100vw - 375px) / (1440 - 375), 25px);
}

.c-page-header__band {
  display: flex;
  flex-direction: column;
  gap: clamp(21px, 21px + (60 - 21) * (100vw - 375px) / (1440 - 375), 60px);
  min-height: clamp(170px, 170px + (300 - 170) * (100vw - 375px) / (1440 - 375), 300px);
  padding: clamp(23px, 23px + (60.5 - 23) * (100vw - 375px) / (1440 - 375), 60.5px) clamp(20px, 20px + (100 - 20) * (100vw - 968px) / (1440 - 968), 100px) clamp(35.5px, 35.5px + (60 - 35.5) * (100vw - 375px) / (1440 - 375), 60px);
  background-color: #009b53;
}

.c-page-header__heading {
  display: flex;
  flex-direction: column;
  gap: clamp(3.5px, 3.5px + (8.5 - 3.5) * (100vw - 375px) / (1440 - 375), 8.5px);
}

.c-page-header__en {
  display: inline-flex;
  align-items: center;
  gap: clamp(3.5px, 3.5px + (8 - 3.5) * (100vw - 375px) / (1440 - 375), 8px);
  font-family: "Zalando Sans", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.015em;
  line-height: 1.2142857143;
  text-transform: uppercase;
  color: #00d370;
  font-size: clamp(12px, 12px + (14 - 12) * (100vw - 375px) / (1440 - 375), 14px);
  line-height: clamp(15px, 15px + (17 - 15) * (100vw - 375px) / (1440 - 375), 17px);
  color: #fff;
}
.c-page-header__en::before {
  content: "";
  flex-shrink: 0;
  width: clamp(6px, 6px + (8 - 6) * (100vw - 375px) / (1440 - 375), 8px);
  height: clamp(6px, 6px + (8 - 6) * (100vw - 375px) / (1440 - 375), 8px);
  border-radius: 50%;
  background-color: currentColor;
}

.c-page-header__title {
  margin: 0;
  color: #fff;
  font-weight: 700;
  font-size: clamp(24px, 24px + (32 - 24) * (100vw - 968px) / (1440 - 968), 32px);
  line-height: clamp(36px, 36px + (46 - 36) * (100vw - 968px) / (1440 - 968), 46px);
  letter-spacing: clamp(0px, 0px + (3.2 - 0) * (100vw - 968px) / (1440 - 968), 3.2px);
}

.c-page-header__lead {
  margin: 0;
  color: #fff;
  font-weight: 500;
  font-size: clamp(13px, 13px + (16 - 13) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(18px, 18px + (24 - 18) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: clamp(0px, 0px + (1.6 - 0) * (100vw - 968px) / (1440 - 968), 1.6px);
}

.c-page-header__breadcrumb {
  padding-inline: clamp(20px, 20px + (90 - 20) * (100vw - 968px) / (1440 - 968), 90px);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.1em;
}
.c-page-header__breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 1280px;
  margin-inline: auto;
  list-style: none;
  padding: 0;
}
.c-page-header__breadcrumb li {
  display: flex;
  align-items: center;
  gap: 10px;
}
.c-page-header__breadcrumb li + li::before {
  content: "›";
  color: #333333;
}
.c-page-header__breadcrumb a {
  color: #333333;
}
.c-page-header__breadcrumb a:hover {
  color: #009b53;
}
.c-page-header__breadcrumb li[aria-current] {
  color: #009b53;
}

.c-cta-circle {
  position: absolute;
  right: clamp(16px, 16px + (24 - 16) * (100vw - 375px) / (1440 - 375), 24px);
  bottom: calc(clamp(16px, 16px + (25 - 16) * (100vw - 375px) / (1440 - 375), 25px) * -1);
  z-index: 50;
  width: clamp(120px, 120px + (200 - 120) * (100vw - 375px) / (1440 - 375), 200px);
}
@media screen and (max-width: 767.98px) {
  .c-cta-circle {
    right: -14px;
    bottom: -3.4666666667vw;
  }
}

.c-cta-circle__person {
  position: absolute;
  left: 23.5%;
  top: -26%;
  width: 48.5%;
  height: auto;
  pointer-events: none;
}

.c-cta-circle__body {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(4px, 4px + (8 - 4) * (100vw - 375px) / (1440 - 375), 8px);
  aspect-ratio: 1;
  border: clamp(3px, 3px + (4 - 3) * (100vw - 375px) / (1440 - 375), 4px) solid #fff;
  border-radius: 50%;
  background-color: #009b53;
  box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.16);
  transition: background-color 0.3s ease;
}
.c-cta-circle:hover .c-cta-circle__body {
  background-color: #008145;
}

.c-cta-circle__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  font-feature-settings: "palt";
}

.c-cta-circle__row1 {
  font-size: clamp(10px, 10px + (17 - 10) * (100vw - 375px) / (1440 - 375), 17px);
  letter-spacing: 0.1em;
}

.c-cta-circle__row2 {
  font-size: clamp(14px, 14px + (24 - 14) * (100vw - 375px) / (1440 - 375), 24px);
  letter-spacing: 0.19em;
}

.c-cta-circle__arrow {
  width: clamp(24px, 24px + (41 - 24) * (100vw - 375px) / (1440 - 375), 41px);
  height: auto;
}

.c-side-tab {
  position: fixed;
  top: calc(86px + 74px);
  right: 0;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(6px, 6px + (8 - 6) * (100vw - 768px) / (1440 - 768), 8px);
  padding: clamp(12px, 12px + (16 - 12) * (100vw - 768px) / (1440 - 768), 16px);
  border: 4px solid #009b53;
  border-right: 0;
  border-radius: 12px 0 0 12px;
  background-color: #fff;
  box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.12);
}
@media screen and (max-width: 1100px) {
  .c-side-tab {
    top: calc(64px + 74px);
  }
}
@media screen and (max-width: 767.98px) {
  .c-side-tab {
    display: none;
  }
}

.c-side-tab__text {
  writing-mode: vertical-rl;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.04em;
  line-height: 1.1;
  color: #333333;
}

.c-table {
  margin: 0;
}

.c-table__row {
  display: grid;
  grid-template-columns: var(--c-table-cols, 1fr 2fr);
  padding-block: clamp(22px, 22px + (40 - 22) * (100vw - 375px) / (1440 - 375), 40px);
  padding-inline: clamp(0px, 0px + (20 - 0) * (100vw - 375px) / (1440 - 375), 20px);
  box-shadow: inset 0 -1px 0 #e9e9e9;
}
.c-table__row:first-child {
  padding-top: 0;
}
@media screen and (max-width: 767.98px) {
  .c-table__row {
    grid-template-columns: 1fr;
    row-gap: 1.8666666667vw;
  }
}

.c-table__head {
  margin: 0;
  color: #009b53;
  font-weight: 700;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}

.c-table__data {
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
.c-table__data > p {
  margin: 0;
}
.c-table__data > p + p {
  margin-top: clamp(0px, 0px + (10 - 0) * (100vw - 375px) / (1440 - 375), 10px);
}

.c-richtext {
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
}
.c-richtext > * {
  margin-block: clamp(16px, 16px + (17 - 16) * (100vw - 375px) / (1440 - 375), 17px) 0;
}
.c-richtext > :first-child {
  margin-top: 0;
}
.c-richtext a {
  color: #034495;
  text-decoration: underline;
}
.c-richtext a:hover {
  text-decoration: none;
}
.c-richtext mark {
  background-color: transparent !important;
  background-image: linear-gradient(transparent 75%, #f9e479 75%, #f9e479 92%, transparent 92%);
  color: inherit;
}
.c-richtext strong {
  font-weight: 700;
}
.c-richtext img {
  max-width: 100%;
  height: auto;
}
.c-richtext figure {
  margin: 0;
}
.c-richtext .wp-block-image img {
  border-radius: 12px;
}
.c-richtext figcaption {
  margin-top: clamp(8px, 8px + (10 - 8) * (100vw - 375px) / (1440 - 375), 10px);
  color: #545454;
  font-size: clamp(13px, 13px + (14 - 13) * (100vw - 968px) / (1440 - 968), 14px);
  letter-spacing: 0.1em;
  text-align: center;
}
.c-richtext hr {
  height: 1px;
  margin-block: 31px 0;
  border: none;
  background-color: #e9e9e9;
}
.c-richtext .aligncenter {
  margin-inline: auto;
}
.c-richtext h2 {
  margin-block: clamp(38px, 38px + (40 - 38) * (100vw - 375px) / (1440 - 375), 40px) 0;
  padding-bottom: 12px;
  box-shadow: inset 0 -2px 0 #e9e9e9;
  font-weight: 700;
  font-size: clamp(20px, 20px + (24 - 20) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
  line-height: clamp(29px, 29px + (34 - 29) * (100vw - 968px) / (1440 - 968), 34px);
}
.c-richtext h3 {
  position: relative;
  margin-block: clamp(38px, 38px + (39 - 38) * (100vw - 375px) / (1440 - 375), 39px) 0;
  padding-left: 16px;
  font-weight: 700;
  font-size: clamp(18px, 18px + (20 - 18) * (100vw - 968px) / (1440 - 968), 20px);
  letter-spacing: 0.1em;
  line-height: clamp(25px, 25px + (28 - 25) * (100vw - 968px) / (1440 - 968), 28px);
}
.c-richtext h3::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  height: clamp(27px, 27px + (28 - 27) * (100vw - 375px) / (1440 - 375), 28px);
  margin-block: auto;
  background-color: #e9e9e9;
  content: "";
}
.c-richtext h4 {
  margin-block: clamp(28px, 28px + (31 - 28) * (100vw - 375px) / (1440 - 375), 31px) 0;
  font-weight: 700;
  font-size: clamp(16px, 16px + (18 - 16) * (100vw - 968px) / (1440 - 968), 18px);
  letter-spacing: 0.1em;
  line-height: clamp(23px, 23px + (28 - 23) * (100vw - 968px) / (1440 - 968), 28px);
}
.c-richtext h5 {
  margin-block: clamp(26px, 26px + (30 - 26) * (100vw - 375px) / (1440 - 375), 30px) 0;
  font-weight: 700;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: clamp(22px, 22px + (24 - 22) * (100vw - 968px) / (1440 - 968), 24px);
}
.c-richtext .wp-block-table {
  margin-block: 31px 0;
}
.c-richtext .wp-block-table table {
  width: 66%;
}
@media screen and (max-width: 767.98px) {
  .c-richtext .wp-block-table table {
    width: 100%;
  }
}
.c-richtext .wp-block-table table {
  border-collapse: collapse;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: clamp(21px, 21px + (22 - 21) * (100vw - 968px) / (1440 - 968), 22px);
}
.c-richtext .wp-block-table.p-pp-meta td:first-child {
  white-space: nowrap;
}
.c-richtext .wp-block-table th,
.c-richtext .wp-block-table td {
  padding: 16px clamp(13px, 13px + (15 - 13) * (100vw - 375px) / (1440 - 375), 15px);
  border: 1px solid #545454;
  text-align: left;
  vertical-align: top;
}
.c-richtext .wp-block-table thead {
  border-bottom: 0;
}
.c-richtext .wp-block-table th {
  background-color: #f5f5f5;
  font-weight: 700;
}
.c-richtext .wp-block-table th:first-child,
.c-richtext .wp-block-table td:first-child {
  width: 24.6%;
}
@media screen and (max-width: 767.98px) {
  .c-richtext .wp-block-table th:first-child,
  .c-richtext .wp-block-table td:first-child {
    width: 34%;
  }
}
.c-richtext ul,
.c-richtext ol {
  margin-block: 31px 0;
  line-height: calc(43px - clamp(20px, 20px + (23 - 20) * (100vw - 968px) / (1440 - 968), 23px));
}
.c-richtext ul {
  padding-left: 25.5px;
  list-style: disc;
}
.c-richtext ol {
  padding-left: 22px;
  list-style: decimal;
}
.c-richtext ul li + li {
  margin-top: clamp(8px, 8px + (11 - 8) * (100vw - 375px) / (1440 - 375), 11px);
}
.c-richtext ol li + li {
  margin-top: calc(15px - clamp(7px, 7px + (8 - 7) * (100vw - 375px) / (1440 - 375), 8px));
}
.c-richtext .wp-block-group.is-style-box {
  margin-block: 31px 0;
  padding: 23px 24px;
  background-color: #f5f5f5;
}
.c-richtext .wp-block-group.is-style-box > :first-child,
.c-richtext .wp-block-group.is-style-box > * > :first-child {
  margin-top: 0;
}
.c-richtext blockquote {
  position: relative;
  width: 66%;
}
@media screen and (max-width: 767.98px) {
  .c-richtext blockquote {
    width: 100%;
  }
}
.c-richtext blockquote {
  margin-block: 31px 0;
  padding: clamp(24px, 24px + (25.5 - 24) * (100vw - 375px) / (1440 - 375), 25.5px) clamp(40px, 40px + (48 - 40) * (100vw - 375px) / (1440 - 375), 48px);
  background: linear-gradient(to right, #545454 32px, transparent 32px) top left/100% 1px no-repeat, linear-gradient(to bottom, #545454 32px, transparent 32px) top left/1px 100% no-repeat, linear-gradient(to left, #545454 32px, transparent 32px) bottom right/100% 1px no-repeat, linear-gradient(to top, #545454 32px, transparent 32px) bottom right/1px 100% no-repeat;
  color: #545454;
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
}
.c-richtext blockquote::before, .c-richtext blockquote::after {
  position: absolute;
  color: #545454;
  font-size: clamp(32px, 32px + (40 - 32) * (100vw - 375px) / (1440 - 375), 40px);
  line-height: 1;
}
.c-richtext blockquote::before {
  top: 11px;
  left: 11px;
  content: "“";
}
.c-richtext blockquote::after {
  right: 17px;
  bottom: 0;
  content: "”";
}
.c-richtext blockquote p {
  margin: 0;
}
.c-richtext h2 + *,
.c-richtext h3 + *,
.c-richtext h2 + .wp-block-table,
.c-richtext h3 + .wp-block-table,
.c-richtext h2 + .wp-block-group,
.c-richtext h3 + .wp-block-group,
.c-richtext h2 + .wp-block-group.is-style-box,
.c-richtext h3 + .wp-block-group.is-style-box {
  margin-top: 16px;
}
.c-richtext h4 + *,
.c-richtext h4 + .wp-block-table,
.c-richtext h4 + .wp-block-group,
.c-richtext h4 + .wp-block-group.is-style-box {
  margin-top: 14px;
}
.c-richtext h5 + *,
.c-richtext h5 + .wp-block-table,
.c-richtext h5 + .wp-block-group,
.c-richtext h5 + .wp-block-group.is-style-box {
  margin-top: 9px;
}

.p-fv {
  position: relative;
  margin-top: -6px;
  padding: 0 clamp(20px, 20px + (30 - 20) * (100vw - 375px) / (1440 - 375), 30px) clamp(10px, 10px + (60 - 10) * (100vw - 375px) / (1440 - 375), 60px);
}
@media screen and (max-width: 767.98px) {
  .p-fv {
    margin-top: 0;
    padding-top: 0.8vw;
  }
}

.p-fv__media {
  position: relative;
}
@media screen and (max-width: 767.98px) {
  .p-fv__media {
    padding-top: 8.96%;
  }
}

.p-fv__photo {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

.p-fv__notch {
  display: none;
}
@media screen and (max-width: 767.98px) {
  .p-fv__notch {
    display: block;
    position: absolute;
    top: 0;
    margin-top: 8.96%;
    left: 0;
    width: 46.3%;
    aspect-ratio: 155/45;
    border-radius: 20px 0 20px 0;
    background-color: #fff;
  }
}

.p-fv__persons {
  position: absolute;
  left: 2.7%;
  top: clamp(68px, 68px + (249 - 68) * (100vw - 800px) / (1440 - 800), 249px);
  width: 22.4%;
  height: auto;
  pointer-events: none;
}
@media screen and (max-width: 767.98px) {
  .p-fv__persons {
    left: 5.1%;
    top: 0;
    width: 38.2%;
    aspect-ratio: 128/75;
    object-fit: cover;
    object-position: top;
  }
}

.p-fv__copy {
  position: absolute;
  left: clamp(20px, 20px + (30 - 20) * (100vw - 375px) / (1440 - 375), 30px);
  bottom: clamp(10px, 10px + (60 - 10) * (100vw - 375px) / (1440 - 375), 60px);
  width: 47.15%;
  padding: clamp(12px, 12px + (20 - 12) * (100vw - 375px) / (1440 - 375), 20px) clamp(8px, 8px + (12 - 8) * (100vw - 375px) / (1440 - 375), 12px) clamp(12px, 12px + (20 - 12) * (100vw - 375px) / (1440 - 375), 20px) clamp(12px, 12px + (20 - 12) * (100vw - 375px) / (1440 - 375), 20px);
  border-radius: 0 20px 0 20px;
  background-color: #fff;
}
@media screen and (max-width: 767.98px) {
  .p-fv__copy {
    position: static;
    width: auto;
    padding: 5.8666666667vw 0.8vw 0;
    border-radius: 0;
    background-color: transparent;
  }
}

.p-fv__catch {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: calc(18px - clamp(8px, 8px + (10 - 8) * (100vw - 375px) / (1440 - 375), 10px));
  font-weight: 900;
  font-size: max(26px, 3.47vw);
  font-feature-settings: normal;
  letter-spacing: 0.1em;
  line-height: 1.4;
  color: #333333;
}
.p-fv__catch em {
  font-style: normal;
  color: #009b53;
}

.p-fv__catch-line {
  white-space: nowrap;
}

.p-fv__lead {
  margin: clamp(10px, 10px + (20 - 10) * (100vw - 375px) / (1440 - 375), 20px) 0 0;
  font-weight: 700;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: 1.8;
}
@media screen and (max-width: 1300px) {
  .p-fv__lead br {
    display: none;
  }
}
@media screen and (max-width: 767.98px) {
  .p-fv__lead br {
    display: inline;
  }
}

.p-worries {
  padding: clamp(60px, 60px + (100 - 60) * (100vw - 375px) / (1440 - 375), 100px) 0 clamp(60px, 60px + (120 - 60) * (100vw - 375px) / (1440 - 375), 120px);
}

.p-worries__inner {
  max-width: 998px;
  margin-inline: auto;
}

.p-worries__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: clamp(40px, 40px + (54 - 40) * (100vw - 375px) / (1440 - 375), 54px) 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767.98px) {
  .p-worries__cards {
    grid-template-columns: 1fr;
    gap: 4.2666666667vw;
  }
}

.p-worries__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 8px + (20 - 8) * (100vw - 375px) / (1440 - 375), 20px);
  padding: 32px 16px;
  border-radius: 12px;
  background-color: #f5f5f5;
  text-align: center;
}
.p-worries__card img {
  width: clamp(120px, 120px + (155 - 120) * (100vw - 375px) / (1440 - 375), 155px);
  height: auto;
}

.p-worries__card-title {
  margin: 0;
  font-weight: 700;
  font-size: clamp(16px, 16px + (20 - 16) * (100vw - 968px) / (1440 - 968), 20px);
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-worries__card-text {
  margin: 0;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and (max-width: 992px) {
  .p-worries__card-text br {
    display: none;
  }
}
@media screen and (max-width: 767.98px) {
  .p-worries__card-text br {
    display: inline;
  }
}

.p-worries__closing {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.p-worries__closing > img {
  width: auto;
  height: calc(76px - clamp(36px, 36px + (40 - 36) * (100vw - 375px) / (1440 - 375), 40px));
}
.p-worries__closing {
  margin-top: 24px;
  text-align: center;
}
.p-worries__closing p {
  margin: 0;
  color: #009b53;
  font-weight: 700;
  font-size: clamp(16px, 16px + (20 - 16) * (100vw - 375px) / (1440 - 375), 20px);
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-mission {
  padding-block: clamp(10px, 10px + (80 - 10) * (100vw - 375px) / (1440 - 375), 80px);
  background-color: #009b53;
}

.p-mission__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(40px, 40px + (60 - 40) * (100vw - 375px) / (1440 - 375), 60px) clamp(10px, 10px + (140 - 10) * (100vw - 968px) / (1440 - 968), 140px);
  background-color: #fff;
}
.p-mission__card .c-heading__title {
  line-height: 1.546875;
}
.p-mission__card .c-heading__title em {
  font-style: normal;
  color: #009b53;
}

.p-mission__body {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 24px + (80 - 24) * (100vw - 768px) / (1440 - 768), 80px);
  margin-top: clamp(40px, 40px + (53 - 40) * (100vw - 375px) / (1440 - 375), 53px);
}
@media screen and (max-width: 767.98px) {
  .p-mission__body {
    flex-direction: column;
    gap: 6.4vw;
  }
}

.p-mission__body picture {
  display: contents;
}
.p-mission__body picture source {
  display: none;
}

.p-mission__figure {
  flex-shrink: 0;
  width: clamp(330px, 330px + (550 - 330) * (100vw - 375px) / (1440 - 375), 550px);
  height: auto;
}

.p-mission__texts {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 18px + (24 - 18) * (100vw - 375px) / (1440 - 375), 24px);
  max-width: clamp(300px, 300px + (370 - 300) * (100vw - 375px) / (1440 - 375), 370px);
}
.p-mission__texts p {
  margin: 0;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-mission__closing {
  margin: 30px auto 0;
  font-weight: 700;
  font-size: clamp(18px, 18px + (20 - 18) * (100vw - 375px) / (1440 - 375), 20px);
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: center;
}
@media screen and (max-width: 767.98px) {
  .p-mission__closing {
    max-width: 81.0666666667vw;
  }
  .p-mission__closing br {
    display: none;
  }
}

.p-strengths {
  padding-block: clamp(60px, 60px + (120 - 60) * (100vw - 375px) / (1440 - 375), 120px) clamp(74px, 74px + (120 - 74) * (100vw - 375px) / (1440 - 375), 120px);
}

.p-strengths__rows {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 24px + (40 - 24) * (100vw - 375px) / (1440 - 375), 40px);
  max-width: 1056px;
  margin: clamp(40px, 40px + (60 - 40) * (100vw - 375px) / (1440 - 375), 60px) auto 0;
}

.p-strengths__row {
  display: flex;
  align-items: center;
  gap: clamp(24px, 24px + (60 - 24) * (100vw - 768px) / (1440 - 768), 60px);
}
.p-strengths__row--reverse {
  flex-direction: row-reverse;
}
@media screen and (max-width: 767.98px) {
  .p-strengths__row {
    flex-direction: column;
    align-items: stretch;
    gap: 3.2vw;
  }
  .p-strengths__row--reverse {
    flex-direction: column;
  }
}

.p-strengths__photo {
  flex-shrink: 0;
  width: 46%;
  height: auto;
  border-radius: 20px;
  object-fit: cover;
  aspect-ratio: 486/320;
}
@media screen and (max-width: 767.98px) {
  .p-strengths__photo {
    width: 100%;
    aspect-ratio: 335/220;
  }
}

.p-strengths__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(8px, 8px + (24 - 8) * (100vw - 375px) / (1440 - 375), 24px);
  width: 48.3%;
  flex-shrink: 0;
}
@media screen and (max-width: 767.98px) {
  .p-strengths__content {
    width: 100%;
  }
}
.p-strengths__content {
  padding-left: clamp(2px, 2px + (24 - 2) * (100vw - 375px) / (1440 - 375), 24px);
}

.p-strengths__title {
  margin: 0;
  color: #009b53;
  font-weight: 700;
  font-size: clamp(18px, 18px + (24 - 18) * (100vw - 968px) / (1440 - 968), 24px);
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.p-strengths__text {
  margin: 0;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and (max-width: 992px) {
  .p-strengths__text br {
    display: none;
  }
}

.p-flow {
  padding-bottom: clamp(70px, 70px + (114 - 70) * (100vw - 375px) / (1440 - 375), 114px);
}

.p-flow__panel {
  padding: clamp(50px, 50px + (60 - 50) * (100vw - 375px) / (1440 - 375), 60px) clamp(16px, 16px + (41 - 16) * (100vw - 968px) / (1440 - 968), 41px);
  background-color: #f5f5f5;
}

.p-flow__steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: calc(41px - clamp(16px, 16px + (25 - 16) * (100vw - 375px) / (1440 - 375), 25px));
  margin: clamp(40px, 40px + (54 - 40) * (100vw - 375px) / (1440 - 375), 54px) 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 992px) {
  .p-flow__steps {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 767.98px) {
  .p-flow__steps {
    grid-template-columns: 1fr;
    max-width: 76.8vw;
    margin-inline: auto;
  }
}

.p-flow__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 30px 20px clamp(12px, 12px + (20 - 12) * (100vw - 375px) / (1440 - 375), 20px);
  border-radius: 20px;
  background-color: #fff;
  text-align: center;
}

.p-flow__num {
  position: absolute;
  top: clamp(4.5px, 4.5px + (9 - 4.5) * (100vw - 375px) / (1440 - 375), 9px);
  left: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background-color: #009b53;
  color: #fff;
  font-weight: 700;
  font-size: 17px;
  letter-spacing: 0;
  line-height: 1;
}

.p-flow__step-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.p-flow__step-title {
  margin: 0;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-flow__step-text {
  margin: 0;
  font-weight: 400;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and (max-width: 1300px) {
  .p-flow__step-text br {
    display: none;
  }
}
@media screen and (max-width: 767.98px) {
  .p-flow__step-text br {
    display: inline;
  }
}

.p-flow__btn {
  display: flex;
  width: fit-content;
  margin: 54px auto 0;
}

.p-news {
  padding-bottom: clamp(60px, 60px + (120 - 60) * (100vw - 375px) / (1440 - 375), 120px);
}

.p-news__list {
  max-width: 1080px;
  margin: clamp(40px, 40px + (54 - 40) * (100vw - 375px) / (1440 - 375), 54px) auto 0;
  padding: 0;
  list-style: none;
}

.p-news .c-heading__title {
  line-height: clamp(34px, 34px + (38 - 34) * (100vw - 968px) / (1440 - 968), 38px);
}

.p-news__btn {
  display: flex;
  width: fit-content;
  margin: clamp(40px, 40px + (54 - 40) * (100vw - 375px) / (1440 - 375), 54px) auto 0;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
}

.p-cta {
  position: relative;
  overflow: hidden;
}

.p-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(32px, 32px + (36 - 32) * (100vw - 375px) / (1440 - 375), 36px);
  padding: calc(90px - clamp(34px, 34px + (56 - 34) * (100vw - 375px) / (1440 - 375), 56px)) clamp(20px, 20px + (80 - 20) * (100vw - 968px) / (1440 - 968), 80px) calc(138px - clamp(40px, 40px + (98 - 40) * (100vw - 375px) / (1440 - 375), 98px));
  border-radius: 20px 20px 0 0;
  background-color: #009b53;
}

.p-cta__title {
  margin: 0;
  color: #fff;
  font-weight: 700;
  font-size: clamp(24px, 24px + (32 - 24) * (100vw - 968px) / (1440 - 968), 32px);
  letter-spacing: 0.1em;
  text-align: center;
}
@media screen and (max-width: 767.98px) {
  .p-cta__title {
    letter-spacing: 0.04em;
  }
}

.p-cta__body {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(32px, 32px + (80 - 32) * (100vw - 768px) / (1440 - 768), 80px);
}
@media screen and (max-width: 767.98px) {
  .p-cta__body {
    flex-direction: column;
    align-items: center;
    gap: 7.4666666667vw;
  }
}

.p-cta__col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 8px + (9.5 - 8) * (100vw - 375px) / (1440 - 375), 9.5px);
}
.p-cta__col > p {
  margin: 0;
  color: #fff;
  font-weight: 700;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  opacity: 0.9;
}
@media screen and (max-width: 767.98px) {
  .p-cta__col > p {
    font-weight: 500;
    opacity: 1;
  }
}

.p-cta__divider {
  width: 1px;
  height: clamp(100px, 100px + (140 - 100) * (100vw - 768px) / (1440 - 768), 140px);
  background-color: #fff;
}
@media screen and (max-width: 767.98px) {
  .p-cta__divider {
    width: 74.6666666667vw;
    height: 1px;
  }
}

.p-cta__tel-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(7px - clamp(3px, 3px + (4 - 3) * (100vw - 375px) / (1440 - 375), 4px));
}

.p-cta__tel {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #fff;
  font-weight: 700;
  font-size: clamp(30px, 30px + (40 - 30) * (100vw - 968px) / (1440 - 968), 40px);
  letter-spacing: 0.1em;
  line-height: clamp(22px, 22px + (40 - 22) * (100vw - 968px) / (1440 - 968), 40px);
}
.p-cta__tel img {
  width: clamp(22px, 22px + (33 - 22) * (100vw - 968px) / (1440 - 968), 33px);
  height: auto;
}

.p-cta__tel-note {
  margin: 0;
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767.98px) {
  .p-cta__tel-note {
    font-weight: 500;
  }
}

/*-------------------------------------
  作業員イラスト（支給データ cta_person.svg 175×224）
  カンプ実測: イラストは帯の下端より下へ続くが、見えるのは帯の内側のみ
  （Figmaでは後続のfooterが上に重なって隠れる → 実装は .p-cta の overflow:hidden で再現）
  PC: 幅175px / right 5% / 下へ133pxオフセット
  SP: 幅121px / right 2% / 下へ81pxオフセット
---------------------------------------*/
.p-cta__illust {
  position: absolute;
  right: max(4.96%, 50% - 648.576px);
  bottom: calc(clamp(81px, 81px + (133 - 81) * (100vw - 375px) / (1440 - 375), 133px) * -1);
  width: clamp(121px, 121px + (175 - 121) * (100vw - 375px) / (1440 - 375), 175px);
  height: auto;
  pointer-events: none;
}
@media screen and (max-width: 767.98px) {
  .p-cta__illust {
    right: 1.93%;
  }
}

/*-------------------------------------
  Greeting（ごあいさつ）
---------------------------------------*/
.p-about-greeting {
  padding-block: clamp(58px, 58px + (118 - 58) * (100vw - 375px) / (1440 - 375), 118px) clamp(59.5px, 59.5px + (118 - 59.5) * (100vw - 375px) / (1440 - 375), 118px);
}

.p-about-greeting__photo {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

.p-about-greeting__text {
  margin-top: clamp(41px, 41px + (61 - 41) * (100vw - 375px) / (1440 - 375), 61px);
}
.p-about-greeting__text p {
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1100px) {
  .p-about-greeting__text p br {
    display: none;
  }
}
@media screen and (max-width: 767.98px) {
  .p-about-greeting__text p br {
    display: inline;
  }
}
.p-about-greeting__text p + p {
  margin-top: clamp(8px, 8px + (20 - 8) * (100vw - 375px) / (1440 - 375), 20px);
}

.p-about-greeting__sign {
  display: flex;
  flex-direction: column;
  width: fit-content;
  margin: clamp(15.5px, 15.5px + (60.5 - 15.5) * (100vw - 375px) / (1440 - 375), 60.5px) 0 0 auto;
  color: #333333;
  letter-spacing: 0.1em;
}

.p-about-greeting__role {
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-about-greeting__name {
  font-weight: 500;
  font-size: clamp(16px, 16px + (24 - 16) * (100vw - 375px) / (1440 - 375), 24px);
  letter-spacing: 0.1em;
  line-height: 1.5;
}

/*-------------------------------------
  Mission（私たちが大切にしていること）
---------------------------------------*/
.p-about-mission__card {
  padding: clamp(40px, 40px + (80 - 40) * (100vw - 375px) / (1440 - 375), 80px) clamp(15px, 15px + (100 - 15) * (100vw - 968px) / (1440 - 968), 100px);
  background-color: #009b53;
  text-align: center;
}

.p-about-mission__lead {
  margin: calc(40px - clamp(16px, 16px + (24 - 16) * (100vw - 375px) / (1440 - 375), 24px)) 0 0;
  color: #fff;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767.98px) {
  .p-about-mission__lead {
    max-width: 80.8vw;
    margin-inline: auto;
    text-align: left;
  }
}

.p-about-mission__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: calc(69px - clamp(30px, 30px + (39 - 30) * (100vw - 375px) / (1440 - 375), 39px)) 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767.98px) {
  .p-about-mission__cards {
    grid-template-columns: 1fr;
    gap: 4.2666666667vw;
  }
}

.p-about-mission__item {
  padding: clamp(20px, 20px + (30 - 20) * (100vw - 375px) / (1440 - 375), 30px) clamp(16px, 16px + (24 - 16) * (100vw - 375px) / (1440 - 375), 24px);
  border-radius: clamp(12px, 12px + (16 - 12) * (100vw - 375px) / (1440 - 375), 16px);
  background-color: #fff;
}

.p-about-mission__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 130px;
}
.p-about-mission__icon img {
  display: block;
}

.p-about-mission__item-title {
  margin: clamp(9px, 9px + (17 - 9) * (100vw - 375px) / (1440 - 375), 17px) 0 0;
  color: #333333;
  font-weight: 700;
  font-size: clamp(15px, 15px + (20 - 15) * (100vw - 968px) / (1440 - 968), 20px);
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.p-about-mission__item-text {
  margin: clamp(8px, 8px + (15 - 8) * (100vw - 375px) / (1440 - 375), 15px) 0 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1100px) {
  .p-about-mission__item-text br {
    display: none;
  }
}
@media screen and (max-width: 767.98px) {
  .p-about-mission__item-text br {
    display: inline;
  }
}

/*-------------------------------------
  Services（私たちにできること）
---------------------------------------*/
.p-about-services {
  padding-block: clamp(60px, 60px + (120 - 60) * (100vw - 375px) / (1440 - 375), 120px) clamp(77.75px, 77.75px + (120 - 77.75) * (100vw - 375px) / (1440 - 375), 120px);
}

.p-about-services__item,
.p-about-services__note {
  box-shadow: inset 0 1px 0 #e9e9e9;
}

.p-about-services__item {
  padding-block: clamp(30px, 30px + (43.5 - 30) * (100vw - 375px) / (1440 - 375), 43.5px) clamp(29px, 29px + (43 - 29) * (100vw - 375px) / (1440 - 375), 43px);
}

.p-about-services__item-title {
  margin: 0;
  color: #009b53;
  font-weight: 700;
  font-size: clamp(18px, 18px + (24 - 18) * (100vw - 968px) / (1440 - 968), 24px);
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.p-about-services__item-text {
  margin: calc(9.5px - clamp(4.5px, 4.5px + (5 - 4.5) * (100vw - 375px) / (1440 - 375), 5px)) 0 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.p-about-services__note {
  padding-top: clamp(32px, 32px + (42 - 32) * (100vw - 375px) / (1440 - 375), 42px);
}

.p-about-services__note-text {
  margin: 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}

.p-about-services__photos {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin: 15px 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767.98px) {
  .p-about-services__photos {
    grid-template-columns: 1fr;
    gap: 4.2666666667vw;
    margin-top: 4vw;
  }
}
.p-about-services__photos img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

/*-------------------------------------
  Compliance（ひらかれた運営）
---------------------------------------*/
.p-about-compliance__card {
  max-width: 1280px;
  margin-inline: auto;
  padding: 80px clamp(16px, 16px + (40 - 16) * (100vw - 968px) / (1440 - 968), 40px);
  border-radius: clamp(16px, 16px + (20 - 16) * (100vw - 375px) / (1440 - 375), 20px);
  background-color: #f5f5f5;
}

.p-about-compliance__body {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(39.5px, 39.5px + (60.5 - 39.5) * (100vw - 375px) / (1440 - 375), 60.5px);
}
@media screen and (max-width: 992px) {
  .p-about-compliance__body {
    flex-direction: column;
  }
}

.p-about-compliance__figure {
  width: clamp(335px, 335px + (526 - 335) * (100vw - 375px) / (1440 - 375), 526px);
  height: auto;
}
@media screen and (max-width: 767.98px) {
  .p-about-compliance__figure {
    max-width: none;
  }
}

.p-about-compliance__text {
  max-width: clamp(304px, 304px + (370 - 304) * (100vw - 375px) / (1440 - 375), 370px);
}

.p-about-compliance__strong {
  margin: 0;
  color: #333333;
  font-weight: 700;
  font-size: clamp(18px, 18px + (24 - 18) * (100vw - 375px) / (1440 - 375), 24px);
  line-height: clamp(27px, 27px + (36 - 27) * (100vw - 375px) / (1440 - 375), 36px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 992px) {
  .p-about-compliance__strong {
    text-align: center;
  }
}

.p-about-compliance__note {
  margin: clamp(16px, 16px + (38 - 16) * (100vw - 375px) / (1440 - 375), 38px) 0 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}

/*-------------------------------------
  Organization（組織と情報公開）
---------------------------------------*/
.p-about-organization {
  padding-block: clamp(60px, 60px + (120 - 60) * (100vw - 375px) / (1440 - 375), 120px) clamp(60px, 60px + (121 - 60) * (100vw - 375px) / (1440 - 375), 121px);
}

.p-about-organization__boxes {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 40px;
}
@media screen and (max-width: 992px) {
  .p-about-organization__boxes {
    grid-template-columns: 1fr;
  }
}

.p-about-organization__box {
  padding: 20px;
  border-radius: clamp(16px, 16px + (20 - 16) * (100vw - 375px) / (1440 - 375), 20px);
  background-color: #f5f5f5;
}

.p-about-organization__box-title {
  margin: 0;
  color: #333333;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.p-about-organization__row {
  margin: clamp(12px, 12px + (19 - 12) * (100vw - 375px) / (1440 - 375), 19px) 0 0;
  color: #333333;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.p-about-organization__row + .p-about-organization__row {
  margin-top: clamp(7px, 7px + (12 - 7) * (100vw - 375px) / (1440 - 375), 12px);
}

.p-about-organization__link {
  display: inline-flex;
  align-items: center;
  vertical-align: top;
  gap: 9px;
  color: #333333;
}
.p-about-organization__link:hover {
  color: #009b53;
}
.p-about-organization__link img {
  flex-shrink: 0;
}

/*-------------------------------------
  共通
---------------------------------------*/
/*-------------------------------------
  導入（写真バナー＋キャッチ）
---------------------------------------*/
.p-ikusei-intro {
  padding-top: clamp(56px, 56px + (60 - 56) * (100vw - 375px) / (1440 - 375), 60px);
}

.p-ikusei-intro__banner {
  position: relative;
}

.p-ikusei-intro__photo {
  display: contents;
}
.p-ikusei-intro__photo source {
  display: none;
}
.p-ikusei-intro__photo img {
  display: block;
  width: 100%;
  height: clamp(214px, 214px + (350 - 214) * (100vw - 375px) / (1440 - 375), 350px);
  object-fit: cover;
  object-position: 70% 50%;
  border-radius: 20px;
}

.p-ikusei-intro__catch {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  margin: 0;
  transform: translateY(-50%);
  color: #333333;
  font-weight: 700;
  font-size: clamp(18px, 18px + (24 - 18) * (100vw - 375px) / (1440 - 375), 24px);
  line-height: clamp(27px, 27px + (43 - 27) * (100vw - 375px) / (1440 - 375), 43px);
  letter-spacing: 0.1em;
  text-align: center;
}

.p-ikusei-intro__accent {
  color: #009b53;
}

.p-ikusei-intro__illust {
  position: absolute;
  height: auto;
}

.p-ikusei-intro__illust--left {
  left: clamp(-2px, -2px + (81 - -2) * (100vw - 375px) / (1440 - 375), 81px);
  top: clamp(-28px, -28px + (-15 - -28) * (100vw - 375px) / (1440 - 375), -15px);
  width: clamp(51px, 51px + (75 - 51) * (100vw - 375px) / (1440 - 375), 75px);
}

.p-ikusei-intro__illust--right {
  right: clamp(0.4px, 0.4px + (45 - 0.4) * (100vw - 375px) / (1440 - 375), 45px);
  bottom: calc(-79.2px - clamp(-44px, -44px + (-35.2 - -44) * (100vw - 375px) / (1440 - 375), -35.2px));
  width: clamp(97.6px, 97.6px + (128 - 97.6) * (100vw - 375px) / (1440 - 375), 128px);
}

/*-------------------------------------
  comparison（制度比較）
---------------------------------------*/
.p-ikusei-compare {
  padding-top: calc(199px - clamp(99px, 99px + (100 - 99) * (100vw - 375px) / (1440 - 375), 100px));
  padding-bottom: clamp(57.5px, 57.5px + (130 - 57.5) * (100vw - 375px) / (1440 - 375), 130px);
}

.p-ikusei-compare__figure {
  display: contents;
}
.p-ikusei-compare__figure source {
  display: none;
}
.p-ikusei-compare__figure img {
  display: block;
  width: 100%;
  height: auto;
  margin-top: clamp(39px, 39px + (48 - 39) * (100vw - 375px) / (1440 - 375), 48px);
}

.p-ikusei-compare__note {
  margin: clamp(14px, 14px + (29.5 - 14) * (100vw - 375px) / (1440 - 375), 29.5px) 0 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
  width: fit-content;
  margin-inline: auto;
  text-align: left;
}

/*-------------------------------------
  timeline（STEP UP）
---------------------------------------*/
.p-ikusei-flow {
  padding-bottom: clamp(57.5px, 57.5px + (119.5 - 57.5) * (100vw - 375px) / (1440 - 375), 119.5px);
}

.p-ikusei-flow__figure {
  display: contents;
}
.p-ikusei-flow__figure source {
  display: none;
}
.p-ikusei-flow__figure img {
  display: block;
  width: 100%;
  height: auto;
  margin-top: clamp(41px, 41px + (49 - 41) * (100vw - 375px) / (1440 - 375), 49px);
}

.p-ikusei-flow__note {
  margin: clamp(16.5px, 16.5px + (30.5 - 16.5) * (100vw - 375px) / (1440 - 375), 30.5px) 0 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
  text-align: center;
}

/*-------------------------------------
  target-fields（TARGET）
---------------------------------------*/
.p-ikusei-target {
  padding-bottom: clamp(71px, 71px + (121 - 71) * (100vw - 375px) / (1440 - 375), 121px);
}

.p-ikusei-target__cols {
  display: grid;
  grid-template-columns: 50% 40.65%;
  column-gap: 9.35%;
}
@media screen and (max-width: 767.98px) {
  .p-ikusei-target__cols {
    grid-template-columns: 1fr;
    row-gap: 10.9333333333vw;
  }
}

@media screen and (max-width: 767.98px) {
  .p-ikusei-target .c-heading--left {
    align-items: center;
    text-align: center;
  }
}

.p-ikusei-target__body {
  order: 2;
  padding-top: 43.5px;
}
@media screen and (max-width: 767.98px) {
  .p-ikusei-target__body {
    order: 0;
    padding-top: 0;
  }
}

.p-ikusei-target__photos {
  order: 1;
  display: grid;
  gap: clamp(17px, 17px + (24 - 17) * (100vw - 375px) / (1440 - 375), 24px);
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767.98px) {
  .p-ikusei-target__photos {
    order: 0;
  }
}
.p-ikusei-target__photos img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

.p-ikusei-target__text {
  margin: clamp(8px, 8px + (17 - 8) * (100vw - 375px) / (1440 - 375), 17px) -0.1em 0 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1100px) {
  .p-ikusei-target__text br {
    display: none;
  }
}

.p-ikusei-target__box {
  margin-top: 40px;
  padding: clamp(12px, 12px + (20 - 12) * (100vw - 375px) / (1440 - 375), 20px) calc(60px - clamp(20px, 20px + (40 - 20) * (100vw - 375px) / (768 - 375), 40px)) clamp(11px, 11px + (18 - 11) * (100vw - 375px) / (1440 - 375), 18px);
  border-radius: 12px;
  background-color: #f5f5f5;
}

.p-ikusei-target__list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-ikusei-target__list + .p-ikusei-target__list {
  margin-top: clamp(8px, 8px + (24 - 8) * (100vw - 375px) / (1440 - 375), 24px);
}
.p-ikusei-target__list li {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
.p-ikusei-target__list li::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #00d370;
}

.p-ikusei-target__btn {
  margin: clamp(17px, 17px + (41 - 17) * (100vw - 375px) / (1440 - 375), 41px) 0 0;
}
@media screen and (max-width: 767.98px) {
  .p-ikusei-target__btn {
    text-align: center;
  }
}

/*-------------------------------------
  merits（MERIT）
---------------------------------------*/
.p-ikusei-merit {
  padding-bottom: clamp(70px, 70px + (121 - 70) * (100vw - 375px) / (1440 - 375), 121px);
}

.p-ikusei-merit__panel {
  padding: clamp(28.5px, 28.5px + (78.5 - 28.5) * (100vw - 375px) / (1440 - 375), 78.5px) clamp(5px, 5px + (40 - 5) * (100vw - 968px) / (1440 - 968), 40px) clamp(41px, 41px + (91 - 41) * (100vw - 375px) / (1440 - 375), 91px);
  background-color: #f5f5f5;
}

.p-ikusei-merit__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: calc(99px - clamp(40px, 40px + (59 - 40) * (100vw - 375px) / (1440 - 375), 59px));
  max-width: 844px;
  margin: clamp(39px, 39px + (41 - 39) * (100vw - 375px) / (1440 - 375), 41px) auto 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767.98px) {
  .p-ikusei-merit__cards {
    grid-template-columns: 1fr;
    width: 85.6vw;
  }
}

.p-ikusei-merit__card {
  padding: clamp(20px, 20px + (30 - 20) * (100vw - 375px) / (1440 - 375), 30px) clamp(16px, 16px + (26 - 16) * (100vw - 968px) / (1440 - 968), 26px) clamp(34px, 34px + (40 - 34) * (100vw - 375px) / (1440 - 375), 40px);
  border-radius: 12px;
  background-color: #fff;
}

.p-ikusei-merit__card-title {
  margin: 0;
  color: #333333;
  font-weight: 700;
  font-size: clamp(16px, 16px + (20 - 16) * (100vw - 968px) / (1440 - 968), 20px);
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: center;
}

.p-ikusei-merit__icon {
  display: block;
  height: clamp(130.3px, 130.3px + (158.5 - 130.3) * (100vw - 375px) / (1440 - 375), 158.5px);
  width: auto;
  margin: calc(23.5px - clamp(11px, 11px + (12.5 - 11) * (100vw - 375px) / (1440 - 375), 12.5px)) auto 0;
}

.p-ikusei-merit__list {
  width: fit-content;
  margin: clamp(20.7px, 20.7px + (23 - 20.7) * (100vw - 375px) / (1440 - 375), 23px) auto 0;
  padding: 0;
  list-style: none;
}
.p-ikusei-merit__list li {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 8px + (9 - 8) * (100vw - 375px) / (1440 - 375), 9px);
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
.p-ikusei-merit__list li img {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: clamp(2.5px, 2.5px + (3 - 2.5) * (100vw - 375px) / (1440 - 375), 3px);
}
.p-ikusei-merit__list li + li {
  margin-top: 24px;
}

/*-------------------------------------
  共通
---------------------------------------*/
.p-for-companies-support .c-heading__lead {
  font-size: 16px;
}

.p-for-companies .c-heading__lead {
  margin-right: -0.1em;
}

/*-------------------------------------
  SUPPORT（罫線で区切った4行）
---------------------------------------*/
.p-for-companies-support {
  padding-top: clamp(58px, 58px + (118 - 58) * (100vw - 375px) / (1440 - 375), 118px);
}

.p-for-companies-support__list {
  margin: clamp(39px, 39px + (100 - 39) * (100vw - 375px) / (1440 - 375), 100px) 0 0;
  padding: 0;
  list-style: none;
}

.p-for-companies-support__item {
  display: grid;
  grid-template-columns: 440fr 510fr;
  column-gap: 5.94%;
  align-items: center;
  padding-top: clamp(29px, 29px + (43.5 - 29) * (100vw - 375px) / (1440 - 375), 43.5px);
  padding-bottom: clamp(29.5px, 29.5px + (43.5 - 29.5) * (100vw - 375px) / (1440 - 375), 43.5px);
  padding-left: 6.481%;
  border-top: 1px solid #e9e9e9;
}
.p-for-companies-support__item:last-child {
  border-bottom: 1px solid #e9e9e9;
}
@media screen and (max-width: 767.98px) {
  .p-for-companies-support__item {
    grid-template-columns: 1fr;
    row-gap: 6.4vw;
    padding-left: 0;
  }
}

.p-for-companies-support__photo {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

.p-for-companies-support__eyebrow {
  width: fit-content;
  margin: 0;
  padding-bottom: 3px;
  border-bottom: 1px solid #009b53;
  color: #333333;
  font-weight: 500;
  font-size: 14px;
  line-height: 21px;
  letter-spacing: 0.1em;
}

.p-for-companies-support__title {
  margin: clamp(13px, 13px + (25 - 13) * (100vw - 375px) / (1440 - 375), 25px) 0 0;
  color: #009b53;
  font-weight: 700;
  font-size: clamp(18px, 18px + (24 - 18) * (100vw - 968px) / (1440 - 968), 24px);
  line-height: clamp(25px, 25px + (34 - 25) * (100vw - 968px) / (1440 - 968), 34px);
  letter-spacing: 0.1em;
}

.p-for-companies-support__text {
  margin: clamp(14px, 14px + (25.5 - 14) * (100vw - 375px) / (1440 - 375), 25.5px) 0 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 992px) {
  .p-for-companies-support__text {
    line-break: strict;
  }
  .p-for-companies-support__text br.u-sp-none {
    display: none;
  }
}

/*-------------------------------------
  MENU（緑カード＋白カード）
---------------------------------------*/
.p-for-companies-menu {
  padding-top: clamp(59px, 59px + (119 - 59) * (100vw - 375px) / (1440 - 375), 119px);
}

.p-for-companies-menu__panel {
  padding: clamp(24px, 24px + (80 - 24) * (100vw - 375px) / (1440 - 375), 80px) clamp(16px, 16px + (100 - 16) * (100vw - 968px) / (1440 - 968), 100px) clamp(16px, 16px + (80 - 16) * (100vw - 375px) / (1440 - 375), 80px);
  background-color: #009b53;
}

.p-for-companies-menu__card {
  margin-top: clamp(16px, 16px + (30 - 16) * (100vw - 375px) / (1440 - 375), 30px);
  padding: clamp(31px, 31px + (60 - 31) * (100vw - 375px) / (1440 - 375), 60px) clamp(20.5px, 20.5px + (115 - 20.5) * (100vw - 968px) / (1440 - 968), 115px) clamp(29px, 29px + (60 - 29) * (100vw - 375px) / (1440 - 375), 60px);
  border-radius: 20px;
  background-color: #fff;
}

.p-for-companies-menu__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
  column-gap: 3.06%;
  row-gap: clamp(21px, 21px + (24 - 21) * (100vw - 375px) / (1440 - 375), 24px);
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767.98px) {
  .p-for-companies-menu__list {
    grid-template-columns: 1fr;
  }
}
.p-for-companies-menu__list li {
  display: flex;
  align-items: center;
  gap: 4.5px;
  margin-right: -0.1em;
  color: #333333;
  font-weight: 500;
  font-size: 16px;
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 375px) / (1440 - 375), 24px);
  letter-spacing: 0.1em;
}
.p-for-companies-menu__list img {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
}

/*-------------------------------------
  PRICE（料金表）
---------------------------------------*/
@media screen and (max-width: 767.98px) {
  .p-for-companies-price .c-heading__lead {
    text-align: left;
  }
}

.p-for-companies-price {
  padding-top: clamp(60px, 60px + (120 - 60) * (100vw - 375px) / (1440 - 375), 120px);
}

.p-for-companies-price__table {
  width: 100%;
  margin-top: clamp(39.5px, 39.5px + (50 - 39.5) * (100vw - 375px) / (1440 - 375), 50px);
  border-collapse: collapse;
  table-layout: fixed;
}
.p-for-companies-price__table th,
.p-for-companies-price__table td {
  padding-block: clamp(19px, 19px + (29 - 19) * (100vw - 375px) / (1440 - 375), 29px);
  border-bottom: 1px solid #e9e9e9;
  text-align: center;
  vertical-align: middle;
}
.p-for-companies-price__table td {
  border-left: 1px solid #e9e9e9;
}
.p-for-companies-price__table tr:last-child th,
.p-for-companies-price__table tr:last-child td {
  border-bottom: 0;
}
.p-for-companies-price__table tr:nth-child(even) th,
.p-for-companies-price__table tr:nth-child(even) td {
  background-color: #f5f5f5;
}
.p-for-companies-price__table th {
  width: clamp(137px, 137px + (373 - 137) * (100vw - 375px) / (1440 - 375), 373px);
  color: #333333;
  font-weight: 700;
  font-size: clamp(14px, 14px + (16 - 14) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(21px, 21px + (24 - 21) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}

.p-for-companies-price__caption {
  padding: clamp(14px, 14px + (24.5 - 14) * (100vw - 375px) / (1440 - 375), 24.5px) clamp(17.5px, 17.5px + (40 - 17.5) * (100vw - 375px) / (1440 - 375), 40px) clamp(12px, 12px + (23 - 12) * (100vw - 375px) / (1440 - 375), 23px);
  border-radius: 20px 20px 0 0;
  background-color: #009b53;
  color: #fff;
  text-align: center;
}

.p-for-companies-price__caption-title {
  display: block;
  font-weight: 700;
  font-size: clamp(20px, 20px + (24 - 20) * (100vw - 968px) / (1440 - 968), 24px);
  line-height: clamp(28px, 28px + (34 - 28) * (100vw - 968px) / (1440 - 968), 34px);
  letter-spacing: 0.1em;
}

.p-for-companies-price__caption-note {
  display: block;
  margin-top: calc(6px - clamp(2px, 2px + (4 - 2) * (100vw - 375px) / (1440 - 375), 4px));
  font-weight: 500;
  font-size: calc(26px - clamp(12px, 12px + (14 - 12) * (100vw - 375px) / (1440 - 375), 14px));
  line-height: calc(39px - clamp(18px, 18px + (21 - 18) * (100vw - 375px) / (1440 - 375), 21px));
  letter-spacing: 0.1em;
  margin-right: -0.1em;
}

.p-for-companies-price__desc,
.p-for-companies-price__amount {
  display: block;
  color: #333333;
  font-size: clamp(14px, 14px + (16 - 14) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}

.p-for-companies-price__desc {
  font-weight: 500;
}

.p-for-companies-price__amount {
  margin-top: clamp(3px, 3px + (9 - 3) * (100vw - 375px) / (1440 - 375), 9px);
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  font-weight: 700;
}

/*-------------------------------------
  FLOW（STEP01〜06）— TOPの p-flow とは別物
---------------------------------------*/
.p-for-companies-flow {
  padding-top: clamp(62px, 62px + (120.5 - 62) * (100vw - 375px) / (1440 - 375), 120.5px);
  padding-bottom: clamp(58.5px, 58.5px + (130.5 - 58.5) * (100vw - 375px) / (1440 - 375), 130.5px);
}

.p-for-companies-flow__list {
  margin: clamp(39px, 39px + (70 - 39) * (100vw - 375px) / (1440 - 375), 70px) 0 0;
  padding: 0;
  list-style: none;
}

.p-for-companies-flow__item {
  position: relative;
  display: grid;
  grid-template-columns: clamp(60px, 60px + (100 - 60) * (100vw - 375px) / (1440 - 375), 100px) 1px 1fr;
  column-gap: clamp(20.5px, 20.5px + (53 - 20.5) * (100vw - 375px) / (1440 - 375), 53px);
  align-items: center;
  padding: clamp(15px, 15px + (19 - 15) * (100vw - 375px) / (1440 - 375), 19px) clamp(12px, 12px + (77.5 - 12) * (100vw - 968px) / (1440 - 968), 77.5px);
  border-radius: 20px;
  background-color: #f5f5f5;
}
.p-for-companies-flow__item + .p-for-companies-flow__item {
  margin-top: clamp(33px, 33px + (50 - 33) * (100vw - 375px) / (1440 - 375), 50px);
}
.p-for-companies-flow__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: clamp(55px, 55px + (68 - 55) * (100vw - 375px) / (1440 - 375), 68px);
  height: clamp(16px, 16px + (20 - 16) * (100vw - 375px) / (1440 - 375), 20px);
  transform: translateX(-50%);
  background-color: #009b53;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.p-for-companies-flow__icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.p-for-companies-flow__icon img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 50%;
  background-color: #fff;
}

.p-for-companies-flow__step {
  font-family: "Zalando Sans", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.015em;
  line-height: 1.2142857143;
  text-transform: uppercase;
  color: #00d370;
  font-size: clamp(12px, 12px + (14 - 12) * (100vw - 375px) / (1440 - 375), 14px);
  line-height: clamp(15px, 15px + (17 - 15) * (100vw - 375px) / (1440 - 375), 17px);
}

.p-for-companies-flow__rule {
  height: clamp(41px, 41px + (60 - 41) * (100vw - 375px) / (1440 - 375), 60px);
  background-color: rgba(51, 51, 51, 0.25);
}

.p-for-companies-flow__title {
  margin: 0;
  color: #333333;
  font-weight: 700;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}

.p-for-companies-flow__text {
  margin: clamp(4px, 4px + (9 - 4) * (100vw - 375px) / (1440 - 375), 9px) -0.1em 0 0;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}

/*-------------------------------------
  法人概要
---------------------------------------*/
.p-access-profile {
  padding-block: clamp(53.5px, 53.5px + (98 - 53.5) * (100vw - 375px) / (1440 - 375), 98px) clamp(30px, 30px + (120 - 30) * (100vw - 375px) / (1440 - 375), 120px);
}
.p-access-profile .c-table {
  --c-table-cols: 223fr 452fr;
}

.p-access-profile__officers {
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-access-profile__officers li {
  display: grid;
  grid-template-columns: calc(171px - clamp(79px, 79px + (92 - 79) * (100vw - 375px) / (1440 - 375), 92px)) 1fr;
}
.p-access-profile__officers li + li {
  margin-top: calc(23px - clamp(10px, 10px + (13 - 10) * (100vw - 375px) / (1440 - 375), 13px));
}

.p-access-profile__biz {
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-access-profile__biz li + li {
  margin-top: clamp(20px, 20px + (24 - 20) * (100vw - 375px) / (1440 - 375), 24px);
}
.p-access-profile__biz p {
  margin: 0;
}
.p-access-profile__biz .p-access-profile__biz-title {
  margin-bottom: 4px;
  font-weight: 700;
}
.p-access-profile__biz .p-access-profile__biz-title::before {
  content: "・";
}

/*-------------------------------------
  アクセス（DIRECTIONS）
---------------------------------------*/
.p-access-directions {
  padding-block: clamp(33px, 33px + (120 - 33) * (100vw - 375px) / (1440 - 375), 120px) clamp(60.5px, 60.5px + (200 - 60.5) * (100vw - 375px) / (1440 - 375), 200px);
}

.p-access-directions__main {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 16px + (20 - 16) * (100vw - 375px) / (1440 - 375), 20px);
}

.p-access-directions__btn {
  align-self: flex-end;
  margin: 0;
}
@media screen and (max-width: 767.98px) {
  .p-access-directions__btn {
    order: 1;
    align-self: center;
  }
}

.p-access-directions__map {
  aspect-ratio: 715/360;
  border-radius: 20px;
  overflow: hidden;
  background-color: #f5f5f5;
}
.p-access-directions__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: inherit;
}

.p-access-directions__boxes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(335px, 1fr));
  gap: calc(49px - clamp(24px, 24px + (25 - 24) * (100vw - 375px) / (1440 - 375), 25px));
  margin-top: calc(9px - clamp(4px, 4px + (5 - 4) * (100vw - 375px) / (1440 - 375), 5px));
}
@media screen and (max-width: 767.98px) {
  .p-access-directions__boxes {
    grid-template-columns: 1fr;
    order: 2;
  }
}

.p-access-directions__box {
  padding: 26px;
  border-radius: 12px;
  background-color: #f5f5f5;
}
.p-access-directions__box p {
  margin: 0;
  margin-right: -0.1em;
  color: #333333;
  font-weight: 500;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
  letter-spacing: 0.1em;
}
.p-access-directions__box p + p {
  margin-top: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
}
.p-access-directions__box .p-access-directions__box-title {
  display: flex;
  align-items: center;
  margin: 0;
  gap: 8px;
  font-weight: 700;
  font-size: clamp(15px, 15px + (20 - 15) * (100vw - 968px) / (1440 - 968), 20px);
  letter-spacing: 0.1em;
  line-height: clamp(23px, 23px + (30 - 23) * (100vw - 968px) / (1440 - 968), 30px);
}
.p-access-directions__box .p-access-directions__box-title::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #00d370;
}
.p-access-directions__box .p-access-directions__box-title + p {
  margin-top: clamp(12px, 12px + (20 - 12) * (100vw - 375px) / (1440 - 375), 20px);
}

.p-news-archive {
  padding-block: clamp(58px, 58px + (99 - 58) * (100vw - 375px) / (1440 - 375), 99px) clamp(60px, 60px + (100 - 60) * (100vw - 375px) / (1440 - 375), 100px);
}

.p-news-archive__list {
  max-width: 1080px;
  margin-inline: auto;
  padding: 0;
  list-style: none;
}

.p-news-archive__empty {
  text-align: center;
}

.p-news-single {
  padding-block: clamp(56px, 56px + (99 - 56) * (100vw - 375px) / (1440 - 375), 99px) clamp(60px, 60px + (100 - 60) * (100vw - 375px) / (1440 - 375), 100px);
}

.p-news-single__header,
.p-news-single__thumb,
.p-news-single__content,
.p-news-single__back {
  max-width: 1080px;
  margin-inline: auto;
}

.p-news-single__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 11px 12px;
  padding-bottom: clamp(24px, 24px + (26 - 24) * (100vw - 375px) / (1440 - 375), 26px);
  box-shadow: inset 0 -1px 0 #e9e9e9;
}
.p-news-single__header > time {
  font-weight: 500;
  font-size: clamp(12px, 12px + (16 - 12) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
}

.p-news-single__title {
  flex-basis: 100%;
  margin: 0;
  font-weight: 700;
  font-size: clamp(22px, 22px + (28 - 22) * (100vw - 968px) / (1440 - 968), 28px);
  letter-spacing: 0.1em;
  line-height: clamp(26px, 26px + (33 - 26) * (100vw - 968px) / (1440 - 968), 33px);
}

.p-news-single__thumb {
  margin-block: 30px 0;
  aspect-ratio: 9/5;
  overflow: hidden;
  border-radius: 12px;
}
.p-news-single__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*-------------------------------------
  記事本文（ブロックエディタの出力）
---------------------------------------*/
.p-news-single__content {
  margin-top: 23px;
}

/*-------------------------------------
  お知らせ一覧へ戻る
---------------------------------------*/
.p-news-single__back {
  margin-top: calc(205px - clamp(100px, 100px + (105 - 100) * (100vw - 375px) / (1440 - 375), 105px));
}

.p-news-single__back-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-weight: 700;
  font-size: 16px;
  font-feature-settings: normal;
  letter-spacing: 0.04em;
  transition: color 0.3s ease;
}
.p-news-single__back-btn:hover {
  color: #009b53;
}
.p-news-single__back-btn img {
  width: 30px;
  height: 30px;
  rotate: 180deg;
}

.p-page {
  padding-block: clamp(56px, 56px + (99 - 56) * (100vw - 375px) / (1440 - 375), 99px) clamp(60px, 60px + (100 - 60) * (100vw - 375px) / (1440 - 375), 100px);
}

/* =========================================================
   送信後の流れ（3ステップカード）
   ========================================================= */
.p-contact-flow {
  padding-top: clamp(58px, 58px + (95 - 58) * (100vw - 375px) / (1440 - 375), 95px);
}

.p-contact-flow__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(30px, 30px + (48 - 30) * (100vw - 968px) / (1440 - 968), 48px);
  max-width: 1080px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767.98px) {
  .p-contact-flow__list {
    grid-template-columns: 1fr;
  }
}

.p-contact-flow__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(48px, 48px + (61 - 48) * (100vw - 375px) / (1440 - 375), 61px) 20px clamp(24px, 24px + (31 - 24) * (100vw - 375px) / (1440 - 375), 31px);
  border-radius: 20px;
  background-color: #f5f5f5;
  text-align: center;
}

.p-contact-flow__num {
  position: absolute;
  top: calc(-1 * clamp(20px, 20px + (24 - 20) * (100vw - 375px) / (1440 - 375), 24px));
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(40px, 40px + (54 - 40) * (100vw - 375px) / (1440 - 375), 54px);
  height: clamp(40px, 40px + (54 - 40) * (100vw - 375px) / (1440 - 375), 54px);
  border-radius: 50%;
  background-color: #009b53;
  color: #fff;
  font-weight: 700;
  font-size: clamp(16px, 16px + (20 - 16) * (100vw - 375px) / (1440 - 375), 20px);
  letter-spacing: 0;
  line-height: 1;
}

.p-contact-flow__icon {
  width: auto;
  height: 60px;
}
@media screen and (max-width: 767.98px) {
  .p-contact-flow__icon {
    width: 49px;
    height: auto;
  }
}

.p-contact-flow__title {
  margin: clamp(15px, 15px + (30 - 15) * (100vw - 375px) / (1440 - 375), 30px) 0 0;
  color: #333333;
  font-weight: 700;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: 1;
}

.p-contact-flow__text {
  margin: calc(22px - clamp(10px, 10px + (12 - 10) * (100vw - 375px) / (1440 - 375), 12px)) 0 0;
  color: #333333;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: clamp(23px, 23px + (24 - 23) * (100vw - 968px) / (1440 - 968), 24px);
}

/* =========================================================
   フォーム（リード文 / 電話・相談ボックス / 入力欄）
   ========================================================= */
.p-contact-form {
  padding-top: clamp(62px, 62px + (115 - 62) * (100vw - 375px) / (1440 - 375), 115px);
  padding-bottom: clamp(120px, 120px + (159 - 120) * (100vw - 375px) / (1440 - 375), 159px);
}

.p-contact-form__lead {
  text-align: center;
}

.p-contact-form__lead-title {
  margin: 0;
  color: #333333;
  font-weight: 700;
  font-size: clamp(18px, 18px + (20 - 18) * (100vw - 968px) / (1440 - 968), 20px);
  letter-spacing: 0.1em;
  line-height: clamp(27px, 27px + (35 - 27) * (100vw - 968px) / (1440 - 968), 35px);
}

.p-contact-form__lead-note {
  margin: calc(13px - clamp(3px, 3px + (10 - 3) * (100vw - 375px) / (1440 - 375), 10px)) 0 0;
  color: #2b2f33;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  letter-spacing: 0.1em;
  line-height: clamp(23px, 23px + (29 - 23) * (100vw - 968px) / (1440 - 968), 29px);
}

.p-contact-form__boxes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 800px;
  margin: clamp(27px, 27px + (37 - 27) * (100vw - 375px) / (1440 - 375), 37px) auto 0;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__boxes {
    grid-template-columns: 1fr;
  }
}

/* ---- お急ぎの方は、お電話で（緑ボックス） ---- */
.p-contact-form__tel {
  padding: calc(68px - clamp(27px, 27px + (41 - 27) * (100vw - 375px) / (1440 - 375), 41px)) 20px clamp(38px, 38px + (50 - 38) * (100vw - 375px) / (1440 - 375), 50px);
  border-radius: 20px;
  background-color: #009b53;
  color: #fff;
  text-align: center;
}

.p-contact-form__tel-title {
  margin: 0;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
}

.p-contact-form__tel-num {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-top: clamp(12px, 12px + (54 - 12) * (100vw - 375px) / (1440 - 375), 54px);
  color: #fff;
  font-weight: 700;
  font-size: 32px;
  letter-spacing: 0.1em;
  line-height: clamp(25px, 25px + (27 - 25) * (100vw - 375px) / (1440 - 375), 27px);
}
.p-contact-form__tel-num img {
  flex-shrink: 0;
  width: auto;
  height: clamp(25px, 25px + (27 - 25) * (100vw - 375px) / (1440 - 375), 27px);
}

.p-contact-form__tel-hours {
  display: flex;
  justify-content: center;
  margin: clamp(9px, 9px + (19 - 9) * (100vw - 375px) / (1440 - 375), 19px) 0 0;
  opacity: 0.9;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 21px;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__tel-hours span {
    text-align: left;
  }
}

/* ---- ご相談にあたって（白ボックス・緑枠） ---- */
.p-contact-form__note {
  position: relative;
  padding: 25px 24px 24px;
  border: 2px solid #009b53;
  border-radius: 20px;
  background-color: #fff;
}

.p-contact-form__note-title {
  margin: 0;
  color: #009b53;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  text-align: center;
}

.p-contact-form__note-list {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
.p-contact-form__note-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 0;
  box-shadow: inset 0 -1px 0 #e9e9e9;
  color: #2b2f33;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 22px;
}
.p-contact-form__note-list li img {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}

.p-contact-form__note-illust {
  position: absolute;
  right: calc(-28px - clamp(-26px, -26px + (-2 - -26) * (100vw - 375px) / (1440 - 375), -2px));
  bottom: clamp(-56px, -56px + (-42 - -56) * (100vw - 375px) / (1440 - 375), -42px);
  width: clamp(59px, 59px + (82 - 59) * (100vw - 375px) / (1440 - 375), 82px);
  height: auto;
}

/* =========================================================
   入力欄（Contact Form 7 の出力に被せる）
   カンプ実測の行の高さ:
     PC 127 / 120×5 / 113（ラジオ）/ 127（チェック）/ 314（記入欄）
     SP 126 / 131×5（住所は2行で179）/ 230 / 275 / 321
   PCはラベル左・入力欄右の2列、SPはラベルの下に入力欄を積む
   ========================================================= */
.p-contact-form__body {
  max-width: 1000px;
  margin: calc(151px - clamp(60px, 60px + (91 - 60) * (100vw - 375px) / (1440 - 375), 91px)) auto 0;
}
.p-contact-form__body .wpcf7-form-control-wrap {
  display: block;
}
.p-contact-form__body {
  /* ---- 1行入力・記入欄 ---- */
}
.p-contact-form__body input[type=text],
.p-contact-form__body input[type=tel],
.p-contact-form__body input[type=email],
.p-contact-form__body textarea {
  display: block;
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #c4c4c4;
  border-radius: 4px;
  background-color: #fff;
  color: #333333;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 24px;
}
.p-contact-form__body input[type=text]::placeholder,
.p-contact-form__body input[type=tel]::placeholder,
.p-contact-form__body input[type=email]::placeholder,
.p-contact-form__body textarea::placeholder {
  color: #545454;
  opacity: 1;
}
.p-contact-form__body input[type=text]:focus-visible,
.p-contact-form__body input[type=tel]:focus-visible,
.p-contact-form__body input[type=email]:focus-visible,
.p-contact-form__body textarea:focus-visible {
  outline: 2px solid #009b53;
  outline-offset: 1px;
}
.p-contact-form__body input[type=text].wpcf7-not-valid,
.p-contact-form__body input[type=tel].wpcf7-not-valid,
.p-contact-form__body input[type=email].wpcf7-not-valid,
.p-contact-form__body textarea.wpcf7-not-valid {
  border-color: #df1014;
}
.p-contact-form__body textarea {
  padding: 12px 13px 12px 12px;
}
.p-contact-form__body .p-contact-form__textarea {
  border-radius: 8px;
  max-width: clamp(335px, 335px + (564 - 335) * (100vw - 375px) / (1440 - 375), 564px);
  height: 200px;
  font-feature-settings: normal;
  font-size: clamp(15px, 15px + (16 - 15) * (100vw - 968px) / (1440 - 968), 16px);
  line-height: calc(43px - clamp(20px, 20px + (23 - 20) * (100vw - 968px) / (1440 - 968), 23px));
  resize: vertical;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__body .p-contact-form__textarea {
    font-feature-settings: "palt";
  }
}
.p-contact-form__body .p-contact-form__address {
  height: calc(144px - clamp(48px, 48px + (96 - 48) * (100vw - 375px) / (1440 - 375), 96px));
  line-height: 19px;
  resize: none;
}
.p-contact-form__body {
  /* ---- ラジオ・チェックの見た目（OS標準を使わず自前で描く） ---- */
}
.p-contact-form__body input[type=radio],
.p-contact-form__body input[type=checkbox] {
  flex-shrink: 0;
  margin: 0;
  appearance: none;
  border: 1px solid #c4c4c4;
  background-color: #fff;
  cursor: pointer;
}
.p-contact-form__body input[type=radio]:focus-visible,
.p-contact-form__body input[type=checkbox]:focus-visible {
  outline: 2px solid #009b53;
  outline-offset: 1px;
}
.p-contact-form__body input[type=radio] {
  width: 16px;
  height: 16px;
  border-radius: 50%;
}
.p-contact-form__body input[type=radio]:checked {
  border-color: #009b53;
  box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 16px #009b53;
}
.p-contact-form__body input[type=checkbox] {
  position: relative;
  width: 22px;
  height: 22px;
  border-radius: 2px;
  background-color: #f5f5f5;
}
.p-contact-form__body input[type=checkbox]:checked {
  background-image: url("data:image/svg+xml,%3csvg%20width='22'%20height='22'%20viewBox='0%200%2022%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M16.93%205.25791C17.0255%205.16042%2017.1395%205.08298%2017.2654%205.0301C17.3912%204.97723%2017.5264%204.95%2017.6629%204.95C17.7994%204.95%2017.9345%204.97723%2018.0604%205.0301C18.1862%205.08298%2018.3003%205.16042%2018.3958%205.25791C18.7962%205.66252%2018.8018%206.31634%2018.4098%206.72794L10.1314%2016.5141C10.0374%2016.6174%209.92338%2016.7003%209.79623%2016.7579C9.66908%2016.8155%209.53151%2016.8466%209.39194%2016.8492C9.25237%2016.8518%209.11374%2016.826%208.98451%2016.7732C8.85529%2016.7204%208.7382%2016.6418%208.6404%2016.5421L3.60309%2011.4376C3.40882%2011.2395%203.3%2010.9731%203.3%2010.6956C3.3%2010.4181%203.40882%2010.1517%203.60309%209.95361C3.69864%209.85612%203.81268%209.77867%203.93853%209.7258C4.06437%209.67293%204.19951%209.6457%204.33601%209.6457C4.47251%209.6457%204.60765%209.67293%204.73349%209.7258C4.85934%209.77867%204.97338%209.85612%205.06892%209.95361L9.34181%2014.2839L16.902%205.28871L16.93%205.25791Z'%20fill='%23009B53'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.p-contact-form__body {
  /* ---- 検証エラー・送信結果 ----
     カンプにこの状態の指定が無い。入力欄のエラー文（.wpcf7-not-valid-tip と赤枠）は
     サイトのトークンでそろえ、送信結果のまとめ表示だけは枠色を Contact Form 7 の
     状態色（成功=緑 / 失敗=赤 / 入力不備=黄）に任せる。色の意味づけはプラグイン側の
     ほうが細かいため。結果として、送信失敗時は枠の赤（#dc3232）と
     欄の赤（$c-required）が並ぶが、カンプに無い状態なので許容する ---- */
}
.p-contact-form__body .p-contact-form__field {
  position: relative;
}
.p-contact-form__body .wpcf7-not-valid-tip {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 4px;
  color: #df1014;
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 17px;
}
.p-contact-form__body .wpcf7 form .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 16px;
  border-width: 1px;
  border-style: solid;
  border-radius: 4px;
  font-size: 15px;
  letter-spacing: 0.1em;
  line-height: 24px;
}

.p-contact-form__row {
  display: grid;
  grid-template-columns: 26.2% 1fr;
  align-items: center;
  padding: clamp(24px, 24px + (32 - 24) * (100vw - 375px) / (1440 - 375), 32px) 0 clamp(19px, 19px + (40 - 19) * (100vw - 375px) / (1440 - 375), 40px);
  box-shadow: inset 0 1px 0 #e9e9e9;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__row {
    grid-template-columns: 1fr;
  }
}
.p-contact-form__row:first-of-type {
  padding-top: clamp(19px, 19px + (39 - 19) * (100vw - 375px) / (1440 - 375), 39px);
}

.p-contact-form__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 0 clamp(12px, 12px + (30 - 12) * (100vw - 968px) / (1440 - 968), 30px) 0 0;
  color: #2b2f33;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__label {
    justify-content: flex-start;
    gap: 12px;
    padding: 0 0 24px;
  }
}

.p-contact-form__row--top {
  align-items: start;
}
.p-contact-form__row--top .p-contact-form__label {
  padding-top: 3px;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__row--top .p-contact-form__label {
    padding-top: 0;
  }
}

.p-contact-form__badge {
  flex-shrink: 0;
  width: 37px;
  padding: 3px 0;
  border-radius: 4px;
  color: #fff;
  font-weight: 500;
  font-size: 10px;
  letter-spacing: 0.1em;
  line-height: 1;
  text-align: center;
}

.p-contact-form__badge--required {
  background-color: #df1014;
}

.p-contact-form__badge--optional {
  background-color: #545454;
}

.p-contact-form__note-text {
  max-width: clamp(335px, 335px + (564 - 335) * (100vw - 375px) / (1440 - 375), 564px);
  margin: 9px 0 0;
  color: #545454;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 17px;
}

.p-contact-form__field--check .p-contact-form__note-text {
  margin-top: calc(41px - clamp(16px, 16px + (25 - 16) * (100vw - 375px) / (1440 - 375), 25px));
  font-weight: 500;
  font-feature-settings: normal;
}

/* ---- ご希望の連絡方法（ラジオのピル） ---- */
.p-contact-form__field--radio .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__field--radio .wpcf7-radio {
    flex-direction: column;
    align-items: flex-start;
  }
}
.p-contact-form__field--radio .wpcf7-list-item {
  margin: 0;
}
.p-contact-form__field--radio label {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 10px 19px;
  border: 1px solid #c4c4c4;
  border-radius: 30px;
  color: #333333;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 19px;
  cursor: pointer;
}

/* ---- ご希望の連絡時間（チェックボックス） ---- */
.p-contact-form__field--check .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  column-gap: 20px;
  row-gap: 21px;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__field--check .wpcf7-checkbox {
    flex-direction: column;
    align-items: flex-start;
  }
}
.p-contact-form__field--check .wpcf7-list-item {
  margin: 0;
}
.p-contact-form__field--check label {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #333333;
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 22px;
  cursor: pointer;
}

/* ---- プライバシーポリシーへの同意 ---- */
.p-contact-form__consent {
  padding-top: clamp(35px, 35px + (48 - 35) * (100vw - 375px) / (1440 - 375), 48px);
  box-shadow: inset 0 1px 0 #e9e9e9;
  color: #333333;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 22px;
  text-align: center;
}
.p-contact-form__consent .wpcf7-list-item {
  display: block;
  margin: 0 -4px;
}
.p-contact-form__consent label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
}
.p-contact-form__consent input[type=checkbox] {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  background-color: #fff;
}
.p-contact-form__consent a {
  color: #2b89ff;
  text-decoration: underline;
}
.p-contact-form__consent .wpcf7-not-valid-tip {
  position: static;
  margin-top: 8px;
}
.p-contact-form__consent .wpcf7-not-valid input[type=checkbox] {
  border-color: #df1014;
}

/* ---- 送信ボタン ---- */
.p-contact-form__submit {
  margin-top: clamp(34px, 34px + (46 - 34) * (100vw - 375px) / (1440 - 375), 46px);
  text-align: center;
}

.p-contact-form__submit-btn {
  position: relative;
  display: inline-block;
}
.p-contact-form__submit-btn input[type=submit] {
  border-radius: 12px;
  background-color: #009b53;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.04em;
  line-height: 1.4;
  font-feature-settings: normal;
  transition: background-color 0.3s ease;
}
.p-contact-form__submit-btn input[type=submit]:hover {
  background-color: #008145;
}
.p-contact-form__submit-btn input[type=submit] {
  min-width: clamp(269px, 269px + (290 - 269) * (100vw - 375px) / (1440 - 375), 290px);
  padding: clamp(17px, 17px + (21 - 17) * (100vw - 375px) / (1440 - 375), 21px) clamp(56px, 56px + (64 - 56) * (100vw - 375px) / (1440 - 375), 64px) clamp(17px, 17px + (21 - 17) * (100vw - 375px) / (1440 - 375), 21px) clamp(32px, 32px + (40 - 32) * (100vw - 375px) / (1440 - 375), 40px);
  border: none;
  font-family: "Noto Sans JP", sans-serif;
  text-align: left;
  cursor: pointer;
}
.p-contact-form__submit-btn img {
  position: absolute;
  top: 50%;
  right: clamp(32px, 32px + (40 - 32) * (100vw - 375px) / (1440 - 375), 40px);
  width: 24px;
  height: 24px;
  transform: translateY(-50%);
  pointer-events: none;
}
.p-contact-form__submit-btn .wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: 100%;
  margin: 0 0 0 12px;
  transform: translateY(-50%);
}

.p-contact-form__submit-note {
  margin: 13px 0 0;
  color: #333333;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 17px;
  font-feature-settings: normal;
}
@media screen and (max-width: 767.98px) {
  .p-contact-form__submit-note {
    font-feature-settings: "palt";
  }
}

/* ---- reCAPTCHA（2026-08-19 岡田さん判断） ----
   Google の浮遊バッジはカンプに無いので隠す。隠す代わりに規約とプライバシーポリシーへの
   リンクを出すことが Google 側の条件なので、下の注記が対になっている。片方だけ消さない。
   バッジは body 直下に付くのでここで受ける。スクリプト自体が /contact/ でしか読まれない
   （functions.php）ため、他ページには影響しない。 */
.grecaptcha-badge {
  visibility: hidden;
}

.p-contact-form__recaptcha-note {
  margin: 16px 0 0;
  color: #545454;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
.p-contact-form__recaptcha-note a {
  color: inherit;
  text-decoration: underline;
}
.p-contact-form__recaptcha-note a:hover {
  text-decoration: none;
}

.p-404 {
  padding-block: clamp(56px, 56px + (99 - 56) * (100vw - 375px) / (1440 - 375), 99px) clamp(60px, 60px + (100 - 60) * (100vw - 375px) / (1440 - 375), 100px);
  text-align: center;
}
.p-404 h1 {
  margin: 0 0 clamp(16px, 16px + (24 - 16) * (100vw - 375px) / (1440 - 375), 24px);
  font-weight: 700;
  font-size: clamp(24px, 24px + (32 - 24) * (100vw - 968px) / (1440 - 968), 32px);
  line-height: clamp(36px, 36px + (46 - 36) * (100vw - 968px) / (1440 - 968), 46px);
  letter-spacing: clamp(0px, 0px + (3.2 - 0) * (100vw - 968px) / (1440 - 968), 3.2px);
}
.p-404 p {
  margin: 0 0 clamp(32px, 32px + (40 - 32) * (100vw - 375px) / (1440 - 375), 40px);
}

@media screen and (max-width: 767.98px) {
  .u-sp-none {
    display: none !important;
  }
}

.u-pc-none {
  display: none !important;
}
@media screen and (max-width: 767.98px) {
  .u-pc-none {
    display: block !important;
  }
}/*$vite$:1*/