@charset "UTF-8";
/* ========================================
  Settings
======================================== */
/* ========================================
  Reset
======================================== */
/*
 * iro code. リセットCSS 2025（本番用・コメント軽量版）
 */
/* ボックスモデル */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* マージンリセット */
body, h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote, dl, dd {
  margin: 0;
  padding: 0;
}

/* テーブルセルのUA既定padding(1px)を除去（SPの積み上げレイアウトで1セルあたり+2pxの高さ誤差になる） */
th, td {
  padding: 0;
}

/* スマホタップ時のOS既定ハイライト（灰色のちらつき）を無効化 */
* {
  -webkit-tap-highlight-color: transparent;
}

/* HTML基本設定 */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* body基本設定 */
body {
  min-height: 100vh;
  min-height: 100dvh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* リスト */
ul, ol {
  list-style: none;
}

/* 画像・メディア */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* 見出し・段落
   overflow-wrap は残す（URL・長い英単語・型番が「1語で行に収まらない時だけ」割る＝はみ出し防止）。
   text-wrap の balance / pretty は一律では入れない:
   - pretty は英文の孤立行対策。効かせるため前の行から文字を引き戻すので、和文では前の行が短くなり右側に余白が空く
   - balance は行長を揃えるため意図的に行を短くする→カンプの改行と食い違う
   - どちらも Firefox 未対応（2026-07時点）でブラウザ間の改行位置が変わる
   使いたい箇所だけ .u-balance / .u-pretty で個別に付ける */
h1, h2, h3, h4, h5, h6,
p {
  overflow-wrap: break-word;
}

/* リンク */
a {
  text-decoration: none;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* フォーム */
input, button, textarea, select {
  font: inherit;
  color: inherit;
}

textarea {
  resize: vertical;
}

input[type=submit],
input[type=button],
label, button, select {
  cursor: pointer;
}

/* アクセシビリティ配慮 */
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
    interpolate-size: allow-keywords;
  }
}
/* ========================================
  Base
======================================== */
html {
  font-size: 4.2666666667vw;
}
@media screen and (min-width: 768px) {
  html {
    font-size: 1.1111111111vw;
  }
}
@media screen and (min-width: 1920px) {
  html {
    font-size: 21.3333333333px;
  }
}

body {
  color: #303030;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  text-spacing-trim: space-all;
  background-color: #ffffff;
}

a {
  color: inherit;
}

@media screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

.l-page {
  position: relative;
  z-index: 0;
  background-image: url("../images/common/bg-grid-sp.svg");
  background-repeat: repeat;
  background-position: 2.5rem 1.9375rem;
  background-size: 2.625rem 2.625rem;
}
@media screen and (min-width: 768px) {
  .l-page {
    background-image: url("../images/common/bg-grid.svg");
    background-position: center top;
  }
}
@media screen and (min-width: 1920px) {
  .l-page {
    max-width: 90rem;
    margin-inline: auto;
  }
}

/* ========================================
  Component: arrow button icon
======================================== */
.c-arrow {
  display: block;
  flex-shrink: 0;
  border-radius: 50%;
  background-color: #005078;
  position: relative;
  z-index: 0;
}
.c-arrow::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background-color: #f59e0b;
  clip-path: polygon(35.7% 25.3%, 78.6% 50%, 35.7% 74.7%);
}

.c-arrow--strong::after {
  background-color: #ff7920;
}

/* ========================================
  Header
======================================== */
.l-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
}
@media screen and (min-width: 1920px) {
  .l-header {
    left: 50%;
    max-width: 90rem;
    transform: translateX(-50%);
  }
}

.l-header__inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  height: 3.9375rem;
  padding-top: 0.6875rem;
  padding-left: 1rem;
}
@media screen and (min-width: 768px) {
  .l-header__inner {
    height: 6.8125rem;
    padding-top: 1.125rem;
    padding-left: 5.0625rem;
    padding-right: 7.625rem;
  }
}

.l-header__inner {
  transition: transform 0.6s ease-out, background-color 0.3s, box-shadow 0.3s;
}
@media (prefers-reduced-motion: reduce) {
  .l-header__inner {
    transition: none;
  }
}

.l-header.is-scrolled .l-header__inner {
  background-color: rgba(255, 255, 255, 0.95);
  box-shadow: 0 2px 8px rgba(0, 80, 120, 0.12);
}

.l-header.is-hidden .l-header__inner {
  transform: translateY(calc(-100% - 10px));
  box-shadow: none;
}

.l-header__logo {
  display: block;
  flex-shrink: 0;
  width: 4rem;
  transition: opacity 0.3s;
}
@media screen and (min-width: 768px) {
  .l-header__logo {
    width: 6.125rem;
  }
}
.l-header__logo:focus-visible {
  outline: 2px solid #005078;
  outline-offset: 2px;
}
@media (any-hover: hover) {
  .l-header__logo:hover {
    opacity: 0.7;
  }
}

.l-header__logo-image {
  width: 100%;
}

.l-header__badge {
  flex-shrink: 0;
  width: 8.33125rem;
  margin-top: 0.53125rem;
  margin-left: 0.7125rem;
}
@media screen and (min-width: 768px) {
  .l-header__badge {
    width: 12.875rem;
    margin-top: 0.8125rem;
    margin-left: 1.125rem;
  }
}

.l-header__nav {
  display: none;
  margin-left: auto;
}
@media screen and (min-width: 768px) {
  .l-header__nav {
    display: block;
    margin-top: 1.78125rem;
  }
}

.l-header__list {
  display: grid;
}
@media screen and (min-width: 768px) {
  .l-header__list {
    grid-template-columns: 7.3125rem 7.3125rem 8.0625rem 6.5rem 6.5rem;
  }
}

.l-header__item {
  line-height: 0;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .l-header__item {
    width: 5.25rem;
  }
}

@media screen and (min-width: 768px) {
  .l-header__item--wide {
    width: 6.5rem;
  }
}

.l-header__link {
  display: inline-block;
  vertical-align: top;
  color: #005078;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 700;
  letter-spacing: 0;
  background-image: linear-gradient(#f59e0b, #f59e0b);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 2px;
  transition: background-size 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
@media screen and (min-width: 768px) {
  .l-header__link {
    font-size: 1rem;
    line-height: 1.5;
  }
}
.l-header__link:focus-visible {
  outline: 2px solid #005078;
  outline-offset: 2px;
}
@media (any-hover: hover) {
  .l-header__link:hover {
    background-position: left bottom;
    background-size: 100% 2px;
  }
}

.l-header__contact {
  display: none;
  align-items: center;
  flex-shrink: 0;
  color: #005078;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 900;
  letter-spacing: 0;
  background-color: #ffffff;
  border: 1px solid #005078;
  border-radius: 1.85625rem;
  box-shadow: 0 2.5px 0.8px #f59e0b;
  transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
@media screen and (min-width: 768px) {
  .l-header__contact {
    display: flex;
    height: 2.4375rem;
    margin-top: 1.25rem;
    margin-left: 4.8125rem;
    padding-inline: 1.375rem;
    font-size: 1.03125rem;
    line-height: 1;
  }
}
.l-header__contact:focus-visible {
  outline: 2px solid #005078;
  outline-offset: 2px;
}
.l-header__contact:active {
  transform: translateY(2.5px);
  box-shadow: 0 0 0 #f59e0b;
}
@media (any-hover: hover) {
  .l-header__contact:hover {
    transform: translateY(2.5px);
    box-shadow: 0 0 0 #f59e0b;
  }
}

@media screen and (min-width: 768px) {
  .l-header__contact-icon {
    width: 1.15625rem;
    height: 1.15625rem;
    margin-left: 0.34375rem;
  }
}

.l-header__toggle {
  position: relative;
  z-index: 20;
  flex-shrink: 0;
  margin-top: 0.03125rem;
  margin-right: 0.90625rem;
  margin-left: auto;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  cursor: pointer;
  background: none;
  border: none;
}
@media screen and (min-width: 768px) {
  .l-header__toggle {
    display: none;
  }
}
.l-header__toggle:focus-visible {
  outline: 2px solid #005078;
  outline-offset: 2px;
}

.l-header__toggle-bar {
  position: absolute;
  left: 0.40625rem;
  width: 1.9375rem;
  height: 0.1875rem;
  background-color: #005078;
  transition: transform 0.3s, opacity 0.3s, background-color 0.3s;
}
.l-header__toggle-bar:nth-child(1) {
  top: 0.71875rem;
}
.l-header__toggle-bar:nth-child(2) {
  top: 1.28125rem;
}
.l-header__toggle-bar:nth-child(3) {
  top: 1.84375rem;
}

.l-header__toggle.is-open .l-header__toggle-bar {
  left: 0.58125rem;
  width: 2.125rem;
  background-color: #ffffff;
}

.l-header__toggle.is-open .l-header__toggle-bar:nth-child(1) {
  top: 1.39375rem;
  transform: rotate(45deg);
}

.l-header__toggle.is-open .l-header__toggle-bar:nth-child(2) {
  opacity: 0;
}

.l-header__toggle.is-open .l-header__toggle-bar:nth-child(3) {
  top: 1.39375rem;
  transform: rotate(-45deg);
}

/* ========================================
  Drawer（SPメニュー）
======================================== */
.l-drawer {
  position: fixed;
  z-index: 10;
  inset: 0;
  visibility: hidden;
  opacity: 0;
  overflow-y: auto;
  background-color: #005078;
  background-image: url("../images/common/bg-grid-white.svg");
  background-repeat: repeat;
  background-position: center 1.125rem;
  background-size: 2.625rem 2.625rem;
  transition: opacity 0.3s, visibility 0.3s;
}
.l-drawer.is-open {
  visibility: visible;
  opacity: 1;
}
@media screen and (min-width: 768px) {
  .l-drawer {
    display: none;
  }
}

.l-drawer__inner {
  padding-top: 3.25rem;
  padding-bottom: 1.625rem;
  text-align: center;
}

.l-drawer__logo {
  display: block;
  width: 6.83125rem;
  margin-left: 8.0375rem;
}
.l-drawer__logo:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

.l-drawer__logo-image {
  width: 100%;
}

.l-drawer__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.875rem;
  margin-top: 2.5rem;
  padding-right: 0.6125rem;
}

.l-drawer__link {
  display: block;
  width: 100%;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 1.3375rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0;
  line-height: 1.4018691589;
  text-decoration: underline dotted;
  text-decoration-thickness: 0.125rem;
  text-underline-offset: 0.375rem;
}
.l-drawer__link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

.l-drawer__contact {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 12.41875rem;
  height: 2.89375rem;
  margin-top: 3.4375rem;
  margin-left: 4.4375rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 1.225rem;
  font-weight: 900;
  color: #005078;
  letter-spacing: 0;
  line-height: 1;
  background-color: #ffffff;
  border: 1.6px solid #005078;
  border-radius: 2.20625rem;
  box-shadow: 0 3px 1px #f59e0b;
  transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
.l-drawer__contact:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}
.l-drawer__contact:active {
  transform: translateY(3px);
  box-shadow: 0 0 0 #f59e0b;
}

.l-drawer__contact-icon {
  width: 1.375rem;
  height: 1.375rem;
  margin-left: 0.375rem;
}

.l-drawer__links {
  display: flex;
  align-items: center;
  margin-top: 1.98125rem;
  margin-left: 4.3125rem;
}

.l-drawer__links:not(:has(.l-drawer__sns)) {
  justify-content: center;
  margin-left: 0;
}

.l-drawer__badge {
  width: 10.73125rem;
}

.l-drawer__sns {
  display: block;
  margin-left: 1.58125rem;
}
.l-drawer__sns:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

.l-drawer__sns-icon {
  display: block;
  width: 2.60625rem;
  height: 2.60625rem;
  background-image: url("../images/common/icon-instagram.svg");
  background-repeat: no-repeat;
  background-size: contain;
}

/* ========================================
  FV
======================================== */
.p-fv {
  position: sticky;
  z-index: 0;
  top: 0;
  overflow-x: clip;
  background-color: #ffffff;
  background-image: url("../images/common/bg-grid-sp.svg");
  background-repeat: repeat;
  background-position: 2.5rem 0.9375rem;
  background-size: 2.625rem 2.625rem;
  display: flow-root;
  min-height: 41.1875rem;
}
@media screen and (min-width: 768px) {
  .p-fv {
    min-height: 47rem;
    background-image: url("../images/common/bg-grid.svg");
    background-position: center center;
  }
}

.p-fv__bg {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 61.625rem;
  background-image: url("../images/fv/fv-sp-bg.png");
  background-image: image-set(url("../images/fv/fv-sp-bg.webp") type("image/webp"), url("../images/fv/fv-sp-bg.png") type("image/png"));
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% 100%;
}
@media screen and (min-width: 768px) {
  .p-fv__bg {
    height: 71.10625rem;
    background-image: url("../images/fv/fv-bg.png");
    background-image: image-set(url("../images/fv/fv-bg.webp") type("image/webp"), url("../images/fv/fv-bg.png") type("image/png"));
  }
}

.p-fv__deco {
  position: absolute;
  z-index: 20;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}

.p-fv__decos {
  position: absolute;
  z-index: 20;
  inset: 0;
  pointer-events: none;
}

.p-fv__deco-set {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s;
  will-change: opacity;
}
.p-fv__deco-set.is-active {
  opacity: 1;
}

.p-fv__deco--compass {
  background-image: url("../images/fv/fv-compass-b.png");
  background-image: image-set(url("../images/fv/fv-compass-b.webp") type("image/webp"), url("../images/fv/fv-compass-b.png") type("image/png"));
}

.p-fv__deco--magnifier-sp {
  background-image: url("../images/fv/fv-sp-magnifier-b.png");
  background-image: image-set(url("../images/fv/fv-sp-magnifier-b.webp") type("image/webp"), url("../images/fv/fv-sp-magnifier-b.png") type("image/png"));
  top: 24.8375rem;
  left: 1.04375rem;
  width: 3.90625rem;
  height: 3.74375rem;
}
@media screen and (min-width: 768px) {
  .p-fv__deco--magnifier-sp {
    display: none;
  }
}

.p-fv__deco--bookl,
.p-fv__deco-set .p-fv__deco--magnifier {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-fv__deco--bookl,
  .p-fv__deco-set .p-fv__deco--magnifier {
    display: block;
  }
}

.p-fv__deco-set--01 .p-fv__deco--pencil {
  background-image: url("../images/fv/fv-deco-01-pencil.png");
  background-image: image-set(url("../images/fv/fv-deco-01-pencil.webp") type("image/webp"), url("../images/fv/fv-deco-01-pencil.png") type("image/png"));
  top: 10.725rem;
  left: 1.15rem;
  width: 3.5125rem;
  height: 3.36875rem;
}
.p-fv__deco-set--01 .p-fv__deco--compass {
  top: 7.1875rem;
  left: 10.75rem;
  width: 3.36875rem;
  height: 4.81875rem;
}
@media screen and (min-width: 768px) {
  .p-fv__deco-set--01 .p-fv__deco--bookl {
    background-image: url("../images/fv/fv-deco-01-bookl.png");
    background-image: image-set(url("../images/fv/fv-deco-01-bookl.webp") type("image/webp"), url("../images/fv/fv-deco-01-bookl.png") type("image/png"));
    top: 33.075rem;
    left: 2.25rem;
    width: 12.925rem;
    height: 12.36875rem;
  }
  .p-fv__deco-set--01 .p-fv__deco--pencil {
    top: 12.5rem;
    left: 3.9375rem;
    width: 6.375rem;
    height: 6.1125rem;
  }
  .p-fv__deco-set--01 .p-fv__deco--magnifier {
    background-image: url("../images/fv/fv-deco-01-magnifier.png");
    background-image: image-set(url("../images/fv/fv-deco-01-magnifier.webp") type("image/webp"), url("../images/fv/fv-deco-01-magnifier.png") type("image/png"));
    top: 16.95rem;
    left: 18.625rem;
    width: 8.55rem;
    height: 7.65rem;
  }
  .p-fv__deco-set--01 .p-fv__deco--compass {
    top: 10.5375rem;
    left: 65.28125rem;
    width: 6.30625rem;
    height: 9.0125rem;
  }
}

.p-fv__deco-set--02 .p-fv__deco--pencil {
  background-image: url("../images/fv/fv-deco-02-pencil.png");
  background-image: image-set(url("../images/fv/fv-deco-02-pencil.webp") type("image/webp"), url("../images/fv/fv-deco-02-pencil.png") type("image/png"));
  top: 15.01875rem;
  left: 0.90625rem;
  width: 2.34375rem;
  height: 3.38125rem;
}
.p-fv__deco-set--02 .p-fv__deco--compass {
  top: 7.65625rem;
  left: 11.0875rem;
  width: 3.36875rem;
  height: 4.81875rem;
}
@media screen and (min-width: 768px) {
  .p-fv__deco-set--02 .p-fv__deco--bookl {
    background-image: url("../images/fv/fv-deco-02-bookl.png");
    background-image: image-set(url("../images/fv/fv-deco-02-bookl.webp") type("image/webp"), url("../images/fv/fv-deco-02-bookl.png") type("image/png"));
    top: 33.025rem;
    left: 2.1125rem;
    width: 12.925rem;
    height: 12.36875rem;
  }
  .p-fv__deco-set--02 .p-fv__deco--pencil {
    top: 20.3rem;
    left: 3.5rem;
    width: 4.25rem;
    height: 6.1375rem;
  }
  .p-fv__deco-set--02 .p-fv__deco--magnifier {
    background-image: url("../images/fv/fv-deco-02-magnifier.png");
    background-image: image-set(url("../images/fv/fv-deco-02-magnifier.webp") type("image/webp"), url("../images/fv/fv-deco-02-magnifier.png") type("image/png"));
    top: 16.90625rem;
    left: 18.4875rem;
    width: 8.55rem;
    height: 7.65rem;
  }
  .p-fv__deco-set--02 .p-fv__deco--compass {
    top: 11.40625rem;
    left: 65.9125rem;
    width: 6.30625rem;
    height: 9.0125rem;
  }
}

.p-fv__deco-set--03 .p-fv__deco--pencil {
  background-image: url("../images/fv/fv-deco-03-pencil.png");
  background-image: image-set(url("../images/fv/fv-deco-03-pencil.webp") type("image/webp"), url("../images/fv/fv-deco-03-pencil.png") type("image/png"));
  top: 20.16875rem;
  left: 1.15625rem;
  width: 2.39375rem;
  height: 3.48125rem;
}
.p-fv__deco-set--03 .p-fv__deco--compass {
  top: 6.375rem;
  left: 10.7875rem;
  width: 3.36875rem;
  height: 4.81875rem;
}
@media screen and (min-width: 768px) {
  .p-fv__deco-set--03 .p-fv__deco--bookl {
    background-image: url("../images/fv/fv-deco-03-bookl.png");
    background-image: image-set(url("../images/fv/fv-deco-03-bookl.webp") type("image/webp"), url("../images/fv/fv-deco-03-bookl.png") type("image/png"));
    top: 32.55625rem;
    left: 3.09375rem;
    width: 11.5875rem;
    height: 11.0125rem;
  }
  .p-fv__deco-set--03 .p-fv__deco--pencil {
    top: 29.64375rem;
    left: 3.95rem;
    width: 4.34375rem;
    height: 6.3125rem;
  }
  .p-fv__deco-set--03 .p-fv__deco--magnifier {
    background-image: url("../images/fv/fv-deco-03-magnifier.png");
    background-image: image-set(url("../images/fv/fv-deco-03-magnifier.webp") type("image/webp"), url("../images/fv/fv-deco-03-magnifier.png") type("image/png"));
    top: 18.06875rem;
    left: 19.30625rem;
    width: 6.91875rem;
    height: 6.7625rem;
  }
  .p-fv__deco-set--03 .p-fv__deco--compass {
    top: 9.0125rem;
    left: 65.35rem;
    width: 6.30625rem;
    height: 9.0125rem;
  }
}

.p-fv__deco--book {
  background-image: url("../images/fv/fv-sp-book.svg");
  top: 15.5875rem;
  left: 17.525rem;
  width: 5.70625rem;
  height: 5.4125rem;
}
@media screen and (min-width: 768px) {
  .p-fv__deco--book {
    background-image: url("../images/fv/fv-book.svg");
    top: 25.30625rem;
    left: 79.53125rem;
    width: 9.78125rem;
    height: 9.1625rem;
  }
}

.p-fv__deco--ruler {
  background-image: url("../images/fv/fv-sp-ruler.png");
  background-image: image-set(url("../images/fv/fv-sp-ruler.webp") type("image/webp"), url("../images/fv/fv-sp-ruler.png") type("image/png"));
  top: 19.70625rem;
  left: 15.1875rem;
  width: 5.3875rem;
  height: 5.34375rem;
}
@media screen and (min-width: 768px) {
  .p-fv__deco--ruler {
    background-image: url("../images/fv/fv-ruler.png");
    background-image: image-set(url("../images/fv/fv-ruler.webp") type("image/webp"), url("../images/fv/fv-ruler.png") type("image/png"));
    top: 34.15rem;
    left: 73.1875rem;
    width: 9.525rem;
    height: 9.7125rem;
  }
}

.p-fv__deco--underline {
  background-image: url("../images/fv/fv-sp-underline.svg");
  top: 36.7625rem;
  left: 1.55625rem;
  width: 12.15rem;
  height: 0.71875rem;
  z-index: 25;
  animation: p-fv-underline-draw 0.5s ease-out 1.45s both;
}
@media (prefers-reduced-motion: reduce) {
  .p-fv__deco--underline {
    animation: none;
  }
}
@media screen and (min-width: 768px) {
  .p-fv__deco--underline {
    background-image: url("../images/fv/fv-underline.svg");
    top: 27.44375rem;
    left: 28.925rem;
    width: 18.85rem;
    height: 1.1125rem;
  }
}

.p-fv__slides {
  position: absolute;
  z-index: 10;
  inset: 0;
}

.p-fv__slide {
  position: absolute;
  z-index: 10;
  inset: 0;
  opacity: 0;
  transition: opacity 1s;
  will-change: opacity;
}
.p-fv__slide.is-active {
  z-index: 11;
  opacity: 1;
}

.p-fv__photo {
  position: absolute;
  z-index: 10;
  max-width: none;
}

.p-fv__photo--left {
  top: 10.34375rem;
  left: 1.63125rem;
  width: 13.40625rem;
}
@media screen and (min-width: 768px) {
  .p-fv__photo--left {
    top: 11.8125rem;
    left: 4.8125rem;
    width: 24.3125rem;
  }
}

.p-fv__photo--right {
  top: 4.11875rem;
  left: 10.61875rem;
  width: 11.64375rem;
}
@media screen and (min-width: 768px) {
  .p-fv__photo--right {
    top: 5.8125rem;
    left: 64.875rem;
    width: 21.1625rem;
  }
}

.p-fv__slide:nth-child(1) .p-fv__photo--right {
  top: 5.49375rem;
  left: 11.0375rem;
  width: 10.825rem;
}
@media screen and (min-width: 768px) {
  .p-fv__slide:nth-child(1) .p-fv__photo--right {
    top: 7.36875rem;
    left: 65.8125rem;
    width: 20.25rem;
  }
}

.p-fv__slide:nth-child(2) .p-fv__photo--left {
  top: 9.815625rem;
  left: -0.42875rem;
  width: 13.79375rem;
}
@media screen and (min-width: 768px) {
  .p-fv__slide:nth-child(2) .p-fv__photo--left {
    top: 10.834375rem;
    left: 1.075rem;
    width: 25.03125rem;
  }
}
.p-fv__slide:nth-child(2) .p-fv__photo--right {
  top: 5.09375rem;
  left: 11.166875rem;
  width: 11.0625rem;
}
@media screen and (min-width: 768px) {
  .p-fv__slide:nth-child(2) .p-fv__photo--right {
    top: 6.61875rem;
    left: 66.05625rem;
    width: 20.69375rem;
  }
}

.p-fv__slide:nth-child(3) .p-fv__photo--left {
  top: 9.815625rem;
  left: -0.20875rem;
  width: 13.79375rem;
}
@media screen and (min-width: 768px) {
  .p-fv__slide:nth-child(3) .p-fv__photo--left {
    top: 10.834375rem;
    left: 1.475rem;
    width: 25.03125rem;
  }
}
@media screen and (min-width: 768px) {
  .p-fv__slide:nth-child(3) .p-fv__photo--right {
    top: 4.79375rem;
    left: 65.03125rem;
    width: 21.78125rem;
  }
}

.p-fv__copy {
  position: relative;
  z-index: 30;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-top: 28.375rem;
  margin-left: -0.88125rem;
  width: 25.9625rem;
  padding-block: 1.68rem;
  transform: rotate(-2.3deg);
}
@media screen and (min-width: 768px) {
  .p-fv__copy {
    transform: rotate(-2.31deg);
    margin-top: 15.16875rem;
    margin-left: 25.109375rem;
    width: 39.75rem;
    padding-block: 1.815625rem;
  }
}

.p-fv__title {
  color: #000000;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 800;
  letter-spacing: 0;
  text-align: center;
  font-size: 2.78125rem;
  line-height: 1.12;
}
@media screen and (min-width: 768px) {
  .p-fv__title {
    font-size: 4.3125rem;
  }
}

.p-fv__title-line {
  display: block;
  height: 3.115625rem;
  line-height: 2.934375rem;
}
@media screen and (min-width: 768px) {
  .p-fv__title-line {
    height: 4.83125rem;
    line-height: 4.55rem;
  }
}

.p-fv__title-line--second {
  height: 3.611875rem;
  line-height: 4.0625rem;
}
@media screen and (min-width: 768px) {
  .p-fv__title-line--second {
    height: 5.6rem;
    line-height: 6.3rem;
  }
}

.p-fv__title-gap {
  display: inline-block;
  width: 5.70375rem;
}
@media screen and (min-width: 768px) {
  .p-fv__title-gap {
    width: 8.84375rem;
  }
}

.p-fv__title-en {
  position: absolute;
  z-index: 1;
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 900;
  text-align: left;
  transform: rotate(8.01deg);
  top: 0.165625rem;
  left: 4.7rem;
  width: 4.5125rem;
  height: 3.935625rem;
  font-size: 3.86875rem;
  line-height: 3.935625rem;
  transform-origin: 1.79375rem 50%;
}
@media screen and (min-width: 768px) {
  .p-fv__title-en {
    top: -0.13125rem;
    left: 7.2875rem;
    width: 7rem;
    height: 6.103125rem;
    font-size: 6rem;
    line-height: 6.103125rem;
    transform-origin: 2.78125rem 50%;
  }
}

.p-fv__title-en-inner {
  display: block;
  color: #ff7920;
  background-image: linear-gradient(to bottom, #ec7302, #f59e0b);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  transform-origin: 1.935rem 50%;
  animation: p-fv-en-spin 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@media screen and (min-width: 768px) {
  .p-fv__title-en-inner {
    transform-origin: 3rem 50%;
    background-image: linear-gradient(to bottom, #ff7920, #ff5900);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-fv__title-en-inner {
    animation: none;
  }
}

@keyframes p-fv-en-spin {
  from {
    opacity: 0;
    transform: scale(0.2) rotate(-360deg);
  }
  40% {
    opacity: 1;
  }
  to {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
}
.p-fv__title-text {
  display: inline-block;
  animation: p-fv-rise 0.5s ease-out 0.6s both;
}
@media (prefers-reduced-motion: reduce) {
  .p-fv__title-text {
    animation: none;
  }
}

.p-fv__title-text--second {
  animation-delay: 0.8s;
}

@keyframes p-fv-rise {
  from {
    opacity: 0;
    transform: translateY(0.3em);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.p-fv__title-rin {
  display: inline-block;
  color: #005078;
  line-height: 1;
  transform-origin: 50% 60%;
  animation: p-fv-rin-pop 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) 1.1s both;
  font-size: 3.225rem;
}
@media screen and (min-width: 768px) {
  .p-fv__title-rin {
    font-size: 5rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-fv__title-rin {
    animation: none;
  }
}

@keyframes p-fv-rin-pop {
  from {
    opacity: 0;
    transform: scale(0.3);
  }
  50% {
    opacity: 1;
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes p-fv-underline-draw {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
.p-fv__lead {
  position: relative;
  z-index: 30;
  margin-top: -0.02rem;
  margin-bottom: calc(-1.09875rem - 1px);
  margin-left: 0.94375rem;
  width: 23.7375rem;
  display: flow-root;
  min-height: 3.84375rem;
  transform: rotate(-2.3deg);
  transform-origin: 0 0;
}
@media screen and (min-width: 768px) {
  .p-fv__lead {
    transform: rotate(-2.31deg);
    transform-origin: center center;
    margin-top: 0.45rem;
    margin-bottom: 0;
    margin-left: 25.8875rem;
    width: 41.375rem;
    min-height: 5.0625rem;
  }
}

.p-fv__lead-band {
  position: relative;
  z-index: 0;
  display: block;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 700;
  letter-spacing: 0;
  width: max-content;
  min-width: 20.9625rem;
  max-width: 100%;
  min-height: 1.53125rem;
  font-size: 1.14375rem;
  line-height: 1.53125rem;
  border-radius: 0.214375rem;
  box-shadow: 0 2.3px 2.3px #9ecfd7;
}
@media screen and (min-width: 768px) {
  .p-fv__lead-band {
    border-radius: 0.375rem;
    box-shadow: 0 4px 4px #9ecfd7;
    min-width: 36.6875rem;
    min-height: 2.6875rem;
    font-size: 2rem;
    line-height: 1.34375;
  }
}

.p-fv__lead-band {
  animation: p-fv-band-in 0.5s ease-out both;
}
@media (prefers-reduced-motion: reduce) {
  .p-fv__lead-band {
    animation: none;
  }
}

@keyframes p-fv-band-in {
  from {
    opacity: 0;
    transform: translateX(-1em);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.p-fv__lead-band--main {
  color: #ffffff;
  background-image: linear-gradient(to right, #005078, #06b6d4);
  animation-delay: 1s;
  margin-top: -0.249375rem;
  margin-left: -0.2525rem;
  padding-left: 0.2525rem;
}
@media screen and (min-width: 768px) {
  .p-fv__lead-band--main {
    margin-top: -0.4375rem;
    margin-left: -0.4375rem;
    padding-left: 0.4375rem;
  }
}

.p-fv__lead-band--sub {
  color: #005078;
  background-color: #ffffff;
  animation-delay: 1.15s;
  margin-top: 0.253125rem;
  margin-left: 0.71375rem;
  padding-left: 0.5675rem;
}
@media screen and (min-width: 768px) {
  .p-fv__lead-band--sub {
    margin-top: 0.4375rem;
    margin-bottom: -0.3125rem;
    margin-left: 1.25rem;
    padding-left: 0.625rem;
  }
}

.p-fv__lead-text {
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-fv__lead-text {
    top: 0.05rem;
  }
  .p-fv__lead-band--sub .p-fv__lead-text {
    top: 0.075rem;
  }
}

.p-fv__lead-brand {
  color: #06b6d4;
}
@media screen and (min-width: 768px) {
  .p-fv__lead-brand {
    color: inherit;
  }
}

/* ========================================
  Component: pill button
======================================== */
.c-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  color: #005078;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  letter-spacing: 0;
  line-height: 1;
  background-color: #ffffff;
  border-style: solid;
  border-color: #005078;
  border-radius: 1.9375rem;
  padding-left: 0.25rem;
  box-shadow: 0 2.8px 0.7px #f59e0b;
  transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
@media screen and (min-width: 768px) {
  .c-button {
    padding-right: 0.625rem;
    padding-left: 0;
    border-radius: 2.8125rem;
    box-shadow: 0 4px 1px #f59e0b;
  }
}
.c-button:focus-visible {
  outline: 2px solid #005078;
  outline-offset: 2px;
}
.c-button:active {
  transform: translateY(2.8px);
  box-shadow: 0 0 0 #f59e0b;
}
@media screen and (min-width: 768px) {
  .c-button:active {
    transform: translateY(4px);
  }
}
@media (any-hover: hover) {
  .c-button:hover {
    transform: translateY(4px);
    box-shadow: 0 0 0 #f59e0b;
  }
}

.c-button--md {
  width: 17rem;
  height: 2.8rem;
  font-size: 1.075rem;
  font-weight: 900;
  border-width: 2.1px;
}
@media screen and (min-width: 768px) {
  .c-button--md {
    padding-right: 0;
    padding-left: 0.40625rem;
  }
}
@media screen and (min-width: 768px) {
  .c-button--md {
    width: 24.6875rem;
    height: 4.0625rem;
    font-size: 1.5625rem;
    border-width: 3px;
  }
}

.c-button--lg {
  height: 3.1875rem;
  font-size: 1.05rem;
  font-weight: 700;
  border-width: 1.4px;
}
@media screen and (min-width: 768px) {
  .c-button--lg {
    border-width: 2px;
    width: 32.6875rem;
    height: 4.5125rem;
    font-size: 1.5rem;
  }
}

.c-button__icon {
  width: 1.23125rem;
  height: 1.23125rem;
  margin-left: 0.5rem;
}
@media screen and (min-width: 768px) {
  .c-button__icon {
    width: 1.75rem;
    height: 1.75rem;
    margin-left: 0.625rem;
  }
}

/* ========================================
  About
======================================== */
.p-about {
  position: relative;
  z-index: 10;
  margin-top: 3.25rem;
  padding-top: 2.8375rem;
  min-height: 48.5625rem;
  padding-bottom: calc(15.01953125rem - 1px);
}
@media screen and (min-width: 768px) {
  .p-about {
    min-height: 60.625rem;
    padding-bottom: calc(10.25390625rem - 1px);
    padding-top: 2.21875rem;
  }
}
.p-about::before {
  content: "";
  position: absolute;
  z-index: -2;
  right: 0;
  bottom: 0;
  left: 0;
  height: 50%;
  background-color: #ffffff;
}

.p-about__bg {
  position: absolute;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  background-image: url("../images/about/about-bg-sp.png");
  background-image: image-set(url("../images/about/about-bg-sp.webp") type("image/webp"), url("../images/about/about-bg-sp.png") type("image/png"));
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}
@media screen and (min-width: 768px) {
  .p-about__bg {
    background-image: url("../images/about/about-bg.jpg");
    background-image: image-set(url("../images/about/about-bg.webp") type("image/webp"), url("../images/about/about-bg.jpg") type("image/jpeg"));
    border-radius: 7rem;
  }
}

.p-about__title {
  font-size: 1.8rem;
  font-weight: 900;
  line-height: 1.34;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about__title {
    width: 48.125rem;
    margin-left: 22.125rem;
    font-size: 3rem;
    line-height: 1.89;
  }
}

.p-about__title-line {
  position: relative;
  z-index: 0;
  display: block;
}

.p-about__title-line--first {
  height: 4.0125rem;
  padding-left: 0.875rem;
  line-height: 4.0125rem;
}
@media screen and (min-width: 768px) {
  .p-about__title-line--first {
    height: 9.45rem;
    padding-left: 0;
    line-height: 10.2875rem;
  }
}
.p-about__title-line--first::after {
  content: "";
  position: absolute;
  z-index: -1;
  background-image: url("../images/about/about-underline.svg");
  background-repeat: no-repeat;
  background-size: 100% 100%;
  top: 4.08125rem;
  left: 1.925rem;
  width: 12.825rem;
  height: 0.3375rem;
}
@media screen and (min-width: 768px) {
  .p-about__title-line--first::after {
    top: 8.025rem;
    left: 7.1875rem;
    width: 21.4125rem;
    height: 0.5625rem;
  }
}

.p-about__title-line--band {
  margin-top: 1.025rem;
}
@media screen and (min-width: 768px) {
  .p-about__title-line--band {
    margin-top: 0;
    height: 5.66875rem;
    line-height: 4.46875rem;
  }
}
.p-about__title-line--band::before, .p-about__title-line--band::after {
  content: "";
  position: absolute;
  z-index: -1;
  background-color: #ffffff;
  height: 2.1875rem;
  border-radius: 0.375rem;
}
.p-about__title-line--band::before {
  top: 0;
  left: 5.01875rem;
  width: 13.6875rem;
}
@media screen and (min-width: 768px) {
  .p-about__title-line--band::before {
    top: 0.08125rem;
    left: 0.875rem;
    width: 44.5rem;
    height: 4.4375rem;
    border-radius: 0.625rem;
  }
}
.p-about__title-line--band::after {
  top: 2.6875rem;
  left: 4.83125rem;
  width: 14rem;
}
@media screen and (min-width: 768px) {
  .p-about__title-line--band::after {
    display: none;
  }
}

.p-about__title-band {
  display: block;
  height: 2.1875rem;
  line-height: 2.1875rem;
}
.p-about__title-band + .p-about__title-band {
  margin-top: 0.5rem;
  padding-left: 1.375rem;
}
@media screen and (min-width: 768px) {
  .p-about__title-band {
    display: inline;
    height: auto;
    line-height: inherit;
  }
  .p-about__title-band + .p-about__title-band {
    margin-top: 0;
    padding-left: 0;
  }
}

.p-about__title-grad {
  display: block;
  color: transparent;
  background-image: linear-gradient(to right, #06b6d4, #1a2b5e);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 28.86875rem 100%;
  -webkit-background-clip: text;
  background-clip: text;
}
@media screen and (min-width: 768px) {
  .p-about__title-grad {
    background-size: 100% 100%;
  }
}

.p-about__title-main {
  -webkit-text-fill-color: #005078;
  font-size: 2.99375rem;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 768px) {
  .p-about__title-main {
    font-size: 5rem;
  }
}

.p-about__title-sub {
  margin-left: 0.3rem;
}
@media screen and (min-width: 768px) {
  .p-about__title-sub {
    margin-left: 0.5rem;
  }
}

.p-about__body {
  margin-top: 1.03125rem;
}
@media screen and (min-width: 768px) {
  .p-about__body {
    margin-top: 1.6625rem;
  }
}

.p-about__text {
  color: #303030;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-align: center;
  text-shadow: 0 0 100px #ffffff;
  font-size: 0.90625rem;
  line-height: 1.72;
}
@media screen and (min-width: 768px) {
  .p-about__text {
    font-size: 1.3125rem;
    line-height: 1.76;
  }
}
.p-about__text + .p-about__text {
  margin-top: 1.55625rem;
}
@media screen and (min-width: 768px) {
  .p-about__text + .p-about__text {
    margin-top: 2.3125rem;
  }
}

.p-about__en {
  position: relative;
  z-index: 0;
  font-weight: 900;
}
.p-about__en::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  background-color: #ffffff;
  transform: translate(-50%, -50%);
  width: 2.325rem;
  height: 1.50625rem;
  margin-top: 0.04375rem;
  border-radius: 0.43125rem;
}
@media screen and (min-width: 768px) {
  .p-about__en::before {
    width: 3.375rem;
    height: 2.1875rem;
    margin-top: 0.0625rem;
    border-radius: 0.625rem;
  }
}

.p-about__button {
  margin-inline: auto;
  margin-top: 1.38125rem;
}
@media screen and (min-width: 768px) {
  .p-about__button {
    margin-top: 4.2125rem;
  }
}

/* ========================================
  Layout: FVより後ろ（白地＋ページグリッド。sticky のFVを覆う）
======================================== */
.l-main__rest {
  position: relative;
  z-index: 10;
  background-color: #ffffff;
  background-image: url("../images/common/bg-grid-sp.svg");
  background-repeat: repeat;
  background-position: 2.5rem 0.8125rem;
  background-size: 2.625rem 2.625rem;
  padding-bottom: 2.1rem;
}
@media screen and (min-width: 768px) {
  .l-main__rest {
    padding-bottom: 2.8125rem;
    background-image: url("../images/common/bg-grid.svg");
    background-position: center 1.0375rem;
  }
}

/* ========================================
  Component: section heading
======================================== */
.c-heading {
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-heading {
    width: 68.625rem;
  }
}

.c-heading__label {
  display: block;
  color: #f59e0b;
  font-weight: 900;
  letter-spacing: 0;
  height: 1.148125rem;
  font-size: 1.04375rem;
  line-height: 1.148125rem;
}
@media screen and (min-width: 768px) {
  .c-heading__label {
    height: 1.65rem;
    font-size: 1.5rem;
    line-height: 1.65rem;
  }
}
.c-heading__label::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 1.391875rem;
  height: 1.391875rem;
  margin-left: -1.78125rem;
  margin-right: 0.39125rem;
}
@media screen and (min-width: 768px) {
  .c-heading__label::before {
    width: 2rem;
    height: 2rem;
    margin-left: -2.5625rem;
    margin-right: 0.5625rem;
  }
}

.c-heading__label--service::before {
  background-image: url("../images/common/icon-service.svg");
}

.c-heading__label--story::before {
  background-image: url("../images/common/icon-story.svg");
}

.c-heading__label--workstyle::before {
  background-image: url("../images/common/icon-workstyle.svg");
}

.c-heading__en {
  display: block;
  color: #005078;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 900;
  letter-spacing: 0;
  height: 4.59375rem;
  margin-top: 0.735rem;
  font-size: 4.175rem;
  line-height: 4.59375rem;
}
@media screen and (min-width: 768px) {
  .c-heading__en {
    height: 6.6rem;
    margin-top: 1.05625rem;
    font-size: 6rem;
    line-height: 6.6rem;
  }
}

.c-heading__en--multi {
  height: auto;
}
@media screen and (min-width: 768px) {
  .c-heading__en--multi {
    height: 6.6rem;
  }
}

.c-heading-lead {
  width: fit-content;
  margin-inline: auto;
  color: #005078;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-align: center;
  font-size: 0.95625rem;
  line-height: 1.76;
  text-decoration: underline dotted;
  text-decoration-thickness: 0.09375rem;
  text-underline-offset: 0.2625rem;
}
@media screen and (min-width: 768px) {
  .c-heading-lead {
    font-size: 1.375rem;
  }
}

.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  border: 0;
}

@media screen and (min-width: 768px) {
  .u-br-sp {
    display: none;
  }
}

@media not all and (min-width: 768px) {
  .u-br-pc {
    display: none;
  }
}

.u-underline-dotted {
  text-decoration: underline dotted;
  text-decoration-thickness: 0.09375rem;
  text-underline-offset: 0.3125rem;
}

/* ========================================
  Service
======================================== */
.p-service {
  position: relative;
  z-index: 0;
  overflow-x: clip;
  padding-top: 4.421875rem;
}
@media screen and (min-width: 768px) {
  .p-service {
    padding-top: 6.78125rem;
    padding-bottom: 6.40625rem;
  }
}
.p-service::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  width: 100%;
  display: none;
  background-image: url("../images/service/service-deco.svg");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
@media screen and (min-width: 768px) {
  .p-service::before {
    display: block;
    top: 3.25rem;
    height: 64.15625rem;
  }
}

@media screen and (min-width: 768px) {
  .p-service__heading {
    margin-left: 10rem;
  }
}

.p-service__lead {
  margin-top: 0.61875rem;
  padding-left: 1rem;
}
@media screen and (min-width: 768px) {
  .p-service__lead {
    padding-left: 0;
    margin-top: 0.5875rem;
  }
}

.p-service__card {
  position: relative;
  z-index: 0;
  background-color: #ffffff;
  border: 1.4px solid #1a2b5e;
  width: 23.375rem;
  min-height: 31.25rem;
  padding-bottom: 3rem;
  margin-top: 2.6125rem;
  margin-left: 0.0625rem;
  border-radius: 2.173125rem;
  box-shadow: 0 0.7375rem 0.175rem #005078;
}
@media screen and (min-width: 768px) {
  .p-service__card {
    border-width: 2px;
    width: 83.5rem;
    min-height: 28.9375rem;
    padding-bottom: 4rem;
    margin-top: 3.83125rem;
    margin-left: 3.325rem;
    border-radius: 3.125rem;
    box-shadow: 0 1.0625rem 0.25rem #005078;
  }
}

.p-service__illust {
  position: absolute;
  z-index: 1;
  max-width: none;
  top: 1.475rem;
  left: 0.9rem;
  width: 21.8125rem;
}
@media screen and (min-width: 768px) {
  .p-service__illust {
    top: calc(50% - 17.55rem);
    left: 4.3625rem;
    width: 41.1875rem;
  }
}

.p-service__deco {
  --float-p: 0;
  --float-y: 0px;
  position: absolute;
  z-index: 3;
  will-change: transform;
  transform: translateY(calc(var(--float-y) * var(--float-p)));
}
.p-service__deco::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: opacity 0.4s cubic-bezier(0.455, 0.03, 0.515, 0.955), transform 1.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  transition: opacity 0.4s cubic-bezier(0.455, 0.03, 0.515, 0.955), transform 1.5s linear(0, 1.52, 0.67, 1.25, 0.98, 1.01, 1, 1);
}
.is-js .p-service__deco:not(.is-active)::before {
  opacity: 0;
  transform: scale(0.8);
}
@media (prefers-reduced-motion: reduce) {
  .p-service__deco::before {
    transition: none;
  }
  .is-js .p-service__deco:not(.is-active)::before {
    opacity: 1;
    transform: none;
  }
}

.p-service__deco--compass {
  --float-y: -1.5rem;
}
@media screen and (min-width: 768px) {
  .p-service__deco--compass {
    --float-y: -3rem;
  }
}
.p-service__deco--compass {
  top: -1.3375rem;
  left: 0.0375rem;
  width: 4.3125rem;
  height: 5.8125rem;
}
.p-service__deco--compass::before {
  background-image: url("../images/service/service-compass-sp.svg");
}
@media screen and (min-width: 768px) {
  .p-service__deco--compass::before {
    background-image: url("../images/service/service-compass.svg");
  }
}
@media screen and (min-width: 768px) {
  .p-service__deco--compass {
    top: auto;
    bottom: -3.1875rem;
    left: -0.125rem;
    width: 7.375rem;
    height: 9.9375rem;
  }
}

.p-service__deco--notebook {
  --float-y: 0.75rem;
}
@media screen and (min-width: 768px) {
  .p-service__deco--notebook {
    --float-y: -4rem;
  }
}
.p-service__deco--notebook {
  bottom: -2.675rem;
  left: 16.25625rem;
  width: 7.03125rem;
  height: 7.0875rem;
}
.p-service__deco--notebook::before {
  background-image: url("../images/service/service-notebook-sp.svg");
}
@media screen and (min-width: 768px) {
  .p-service__deco--notebook::before {
    background-image: url("../images/service/service-notebook.svg");
  }
}
@media screen and (min-width: 768px) {
  .p-service__deco--notebook {
    bottom: -3.6875rem;
    left: 70.1875rem;
    width: 11.8125rem;
    height: 11.1875rem;
  }
}

.p-service__content {
  position: relative;
  z-index: 2;
  padding-top: 18.63125rem;
  padding-left: 0.5625rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-service__content {
    padding-left: 0;
    text-align: left;
    width: 35.5625rem;
    margin-left: 46.28125rem;
    padding-top: 5.875rem;
  }
}

.p-service__title {
  color: #1a2b5e;
  font-weight: 700;
  letter-spacing: 0.03em;
  font-size: 1.39375rem;
  line-height: 1.76;
}
@media screen and (min-width: 768px) {
  .p-service__title {
    font-size: 2rem;
  }
}

.p-service__title-line {
  position: relative;
  z-index: 0;
  display: block;
}
.p-service__title-line::before {
  content: "";
  position: absolute;
  z-index: -1;
  height: 2.1625rem;
  border-radius: 0.434375rem;
}
@media screen and (min-width: 768px) {
  .p-service__title-line::before {
    height: 3.0625rem;
    border-radius: 0.625rem;
  }
}

.p-service__title-line--fill {
  width: fit-content;
  margin-inline: auto;
  color: #ffffff;
}
@media screen and (min-width: 768px) {
  .p-service__title-line--fill {
    margin-inline: 0;
  }
}
.p-service__title-line--fill::before {
  background-color: #1a2b5e;
  top: 0.14375rem;
  left: -0.709375rem;
  right: -0.565625rem;
}
@media screen and (min-width: 768px) {
  .p-service__title-line--fill::before {
    top: 0.25rem;
    left: -0.66875rem;
    right: -0.91625rem;
  }
}

.p-service__title-line--plain::before {
  display: none;
  background-color: #ffffff;
}
@media screen and (min-width: 768px) {
  .p-service__title-line--plain::before {
    display: block;
    top: 0.29375rem;
    left: -4.15625rem;
    width: 21.5625rem;
  }
}

.p-service__text {
  color: #303030;
  font-weight: 500;
  letter-spacing: 0.03em;
  max-width: 20.625rem;
  margin-inline: auto;
  margin-top: 0.78125rem;
  font-size: 0.9125rem;
  line-height: 1.76;
}
@media screen and (min-width: 768px) {
  .p-service__text {
    max-width: none;
    margin-inline: 0;
    margin-top: 2.00625rem;
    font-size: 1.3125rem;
    line-height: 1.76;
  }
}

.p-service__button {
  width: 20.4375rem;
  margin-top: 3rem;
  margin-left: 1.55rem;
}
@media screen and (min-width: 768px) {
  .p-service__button {
    width: 32.6875rem;
    margin-top: 4.625rem;
    margin-left: 27.9375rem;
  }
}

/* ========================================
  Story
======================================== */
.p-story {
  position: relative;
  z-index: 0;
  margin-top: 3.25rem;
  padding-top: 7.74375rem;
  padding-bottom: 2.55625rem;
}
@media screen and (min-width: 768px) {
  .p-story {
    padding-top: 9.39375rem;
    padding-bottom: 7.6875rem;
  }
}
.p-story::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background-image: url("../images/story/story-bg-sp.png");
  background-image: image-set(url("../images/story/story-bg-sp.webp") type("image/webp"), url("../images/story/story-bg-sp.png") type("image/png"));
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
@media screen and (min-width: 768px) {
  .p-story::before {
    background-image: url("../images/story/story-bg.png");
    background-image: image-set(url("../images/story/story-bg.webp") type("image/webp"), url("../images/story/story-bg.png") type("image/png"));
  }
}

@media not all and (min-width: 768px) {
  .p-story__heading {
    width: 20.125rem;
    margin-left: 1.2rem;
  }
}
@media screen and (min-width: 768px) {
  .p-story__heading {
    margin-left: 10.45625rem;
  }
}

.p-story__lead {
  position: relative;
  margin-top: 0.875rem;
}
@media screen and (min-width: 768px) {
  .p-story__lead {
    left: 0.425rem;
    margin-top: 1.20625rem;
  }
}

.p-story__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  width: 21.275rem;
  margin-top: 2.19375rem;
  margin-left: 0.8875rem;
}
@media screen and (min-width: 768px) {
  .p-story__list {
    grid-template-columns: repeat(3, 23.3125rem);
    width: auto;
    gap: 2.5rem;
    margin-top: 3.9rem;
    margin-left: 6.70625rem;
  }
}

.p-story__card {
  display: block;
  width: 100%;
  padding: 0;
  background: none;
  border: 0;
}
.p-story__card:focus-visible {
  outline: 2px solid #005078;
  outline-offset: 2px;
}

.p-story__figure {
  position: relative;
  z-index: 0;
  display: block;
}
@media screen and (min-width: 768px) {
  .p-story__figure {
    display: flow-root;
    width: 23.3125rem;
    height: 24.4375rem;
    margin-top: 2.09375rem;
  }
}
.p-story__figure::before {
  content: "";
  position: absolute;
  z-index: 0;
  display: none;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
@media screen and (min-width: 768px) {
  .p-story__figure::before {
    display: block;
    top: 0;
    left: -0.25rem;
    width: 23.8125rem;
    height: 25.246875rem;
  }
}

.p-story__figure--01::before {
  background-image: url("../images/story/story-frame-01.png");
  background-image: image-set(url("../images/story/story-frame-01.webp") type("image/webp"), url("../images/story/story-frame-01.png") type("image/png"));
}

.p-story__figure--02::before {
  background-image: url("../images/story/story-frame-02.png");
  background-image: image-set(url("../images/story/story-frame-02.webp") type("image/webp"), url("../images/story/story-frame-02.png") type("image/png"));
}

.p-story__figure--03::before {
  background-image: url("../images/story/story-frame-03.png");
  background-image: image-set(url("../images/story/story-frame-03.webp") type("image/webp"), url("../images/story/story-frame-03.png") type("image/png"));
}

.p-story__person {
  position: relative;
  z-index: 1;
  max-width: none;
  transform-origin: 50% 100%;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
@media screen and (min-width: 768px) {
  .p-story__person {
    display: block;
    width: 22.125rem;
  }
}

.p-story__figure--01 .p-story__person {
  width: 21.5rem;
}
@media screen and (min-width: 768px) {
  .p-story__figure--01 .p-story__person {
    margin-top: -2.09375rem;
    margin-left: -0.625rem;
    width: 22.125rem;
  }
}

.p-story__figure--02 .p-story__person {
  margin-left: -0.1rem;
  width: 21.16875rem;
}
@media screen and (min-width: 768px) {
  .p-story__figure--02 .p-story__person {
    margin-left: 0;
    width: 22.125rem;
    margin-top: -1.90625rem;
  }
}

.p-story__figure--03 .p-story__person {
  margin-left: -0.225rem;
  width: 21.16875rem;
}
@media screen and (min-width: 768px) {
  .p-story__figure--03 .p-story__person {
    margin-left: 0;
    width: 22.125rem;
    margin-top: -2.03125rem;
  }
}

@media (any-hover: hover) {
  .p-story__card:hover .p-story__person {
    transform: scale(1.06);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-story__person {
    transition: none;
  }
}
.p-story__caption {
  display: block;
  color: #1a2b5e;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-align: center;
  margin-top: 0.90625rem;
  font-size: 1.16875rem;
  line-height: 1.76;
}
@media screen and (min-width: 768px) {
  .p-story__caption {
    margin-top: 1.825rem;
    font-size: 1.3125rem;
    line-height: 1.76;
  }
}

@media not all and (min-width: 768px) {
  .p-story__figure--01 + .p-story__caption {
    margin-left: 0.5rem;
  }
}

@media not all and (min-width: 768px) {
  .p-story__figure--02 + .p-story__caption {
    margin-right: 0.25rem;
  }
}

.p-story__figure--03 + .p-story__caption {
  margin-right: 0.8375rem;
}
@media screen and (min-width: 768px) {
  .p-story__figure--03 + .p-story__caption {
    margin-right: 0.28125rem;
  }
}

.p-story__caption-text {
  display: inline-block;
  width: max-content;
  max-width: calc(100% + 0.5em);
  background-color: #ffffff;
  min-height: 1.725rem;
  padding-inline: 0.3125rem;
  line-height: 1.725rem;
  border-radius: 0.2775rem;
}
@media screen and (min-width: 768px) {
  .p-story__caption-text {
    min-height: 1.9375rem;
    padding-inline: 0.375rem;
    line-height: 1.9375rem;
    border-radius: 0.3125rem;
  }
}

/* ========================================
  Work Style
======================================== */
.p-workstyle {
  position: relative;
  z-index: 0;
  overflow-x: clip;
  margin-top: 3.25rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle {
    padding-top: 1.34375rem;
  }
}

@media not all and (min-width: 768px) {
  .p-workstyle__heading {
    width: 20.125rem;
    margin-left: 1.5rem;
  }
}
@media screen and (min-width: 768px) {
  .p-workstyle__heading {
    margin-left: 9.3125rem;
  }
}

@media not all and (min-width: 768px) {
  .p-workstyle__heading .c-heading__label {
    padding-left: 1.05rem;
  }
}

.p-workstyle__lead {
  position: relative;
  left: 0.46875rem;
  margin-top: 0.44375rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__lead {
    left: -0.71875rem;
    margin-top: 0.61875rem;
  }
}

.p-workstyle__main {
  position: relative;
  z-index: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: 1.9875rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__main {
    display: grid;
    grid-template-columns: 4.625rem 37.25rem 3.375rem 2.3125rem minmax(0, 1fr);
    grid-template-rows: 2.28125rem auto auto 1fr;
    margin-top: 4.175rem;
  }
}

.p-workstyle__figure {
  position: relative;
  z-index: 1;
  overflow: hidden;
  height: 14.67rem;
  margin-top: 0.5rem;
  margin-left: 0.78125rem;
  width: 22.00625rem;
  border-radius: 0.9625rem;
  box-shadow: 0 0.1925rem 0.128125rem #005078;
}
@media screen and (min-width: 768px) {
  .p-workstyle__figure {
    grid-column: 2/5;
    grid-row: 1/-1;
    height: 28.625rem;
    margin-top: 0;
    margin-left: 0;
    width: 42.9375rem;
    border-radius: 1.875rem;
    box-shadow: 0 0.375rem 0.25rem #005078;
  }
}

.p-workstyle__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-workstyle__title {
  position: relative;
  z-index: 3;
  order: -1;
  color: transparent;
  font-weight: 700;
  letter-spacing: 0.03em;
  background-image: linear-gradient(to right, #005078 0%, #06b6d4 66%, #005078 100%);
  -webkit-background-clip: text;
  background-clip: text;
  width: 100%;
  text-align: center;
  font-size: 1.4375rem;
  line-height: 2.25rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__title {
    width: fit-content;
    grid-column: 4/-1;
    grid-row: 2;
    justify-self: start;
    margin-top: 0;
    margin-left: 0;
    text-align: left;
    font-size: 2.625rem;
    line-height: 4.5rem;
  }
}

.p-workstyle__title-strong {
  font-size: 1.91875rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__title-strong {
    font-size: 3.5rem;
  }
}

.p-workstyle__box {
  position: relative;
  z-index: 2;
  background-image: linear-gradient(to right, #1a2b5e, #005078);
  border: 1.6px solid #ffffff;
  margin-top: -1.9825rem;
  margin-left: 0.75rem;
  width: 22.0625rem;
  padding-top: 0.8125rem;
  padding-inline: 1rem;
  min-height: 10.875rem;
  padding-bottom: calc(1.0974609375rem - 3.2px - 1px);
  text-align: center;
  border-radius: 1.03125rem;
  box-shadow: 0 0.20625rem 0.1375rem #005078;
}
@media screen and (min-width: 768px) {
  .p-workstyle__box {
    border-width: 3px;
    text-align: left;
    grid-column: 3/-1;
    grid-row: 3;
    justify-self: start;
    margin-top: -0.20625rem;
    margin-left: 0;
    width: 40.53125rem;
    padding-block: 1.625rem;
    padding-inline: 3.125rem;
    border-radius: 1.875rem;
    box-shadow: 0 0.375rem 0.25rem #005078;
  }
}

.p-workstyle__text {
  color: #ffffff;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-break: strict;
  font-size: 0.85625rem;
  line-height: 1.76;
}
@media screen and (min-width: 768px) {
  .p-workstyle__text {
    font-size: 1.40625rem;
  }
}
.p-workstyle__text + .p-workstyle__text {
  margin-top: 1.50625rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__text + .p-workstyle__text {
    margin-top: 2.475rem;
  }
}

.p-workstyle__brand {
  color: #a2ecf8;
  font-weight: 900;
}

.p-workstyle__features {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5625rem;
  width: 17.1875rem;
  margin-top: 3rem;
  margin-left: 3.25rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__features {
    grid-template-columns: repeat(3, 24.5rem);
    width: auto;
    gap: 2.25rem;
    margin-top: 2.96875rem;
    margin-left: 6rem;
  }
}

.p-workstyle__feature {
  position: relative;
  z-index: 0;
  display: grid;
}
.p-workstyle__feature::before {
  content: "";
  position: absolute;
  z-index: -1;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.p-workstyle__feature--calendar {
  padding-top: 8.375rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__feature--calendar {
    padding-top: 13.08125rem;
  }
}
.p-workstyle__feature--calendar::before {
  top: 0rem;
  left: 1.00625rem;
  width: 14.3625rem;
  height: 9.03125rem;
  background-image: url("../images/workstyle/workstyle-calendar.svg");
}
@media screen and (min-width: 768px) {
  .p-workstyle__feature--calendar::before {
    top: 1.14375rem;
    left: 1.4375rem;
    width: 20.46875rem;
    height: 12.875rem;
  }
}

.p-workstyle__feature--graph {
  padding-top: 8.25rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__feature--graph {
    padding-top: 13.08125rem;
  }
}
.p-workstyle__feature--graph::before {
  top: 0rem;
  left: 2.36875rem;
  width: 12.45rem;
  height: 11.05rem;
  background-image: url("../images/workstyle/workstyle-graph.svg");
}
@media screen and (min-width: 768px) {
  .p-workstyle__feature--graph::before {
    top: 1.3125rem;
    left: 3.375rem;
    width: 17.75rem;
    height: 15.75rem;
  }
}

.p-workstyle__feature--signpost {
  padding-top: 9.18125rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__feature--signpost {
    padding-top: 13.08125rem;
  }
}
.p-workstyle__feature--signpost::before {
  top: 0rem;
  left: 3.2rem;
  width: 11.18125rem;
  height: 11.35625rem;
  background-image: url("../images/workstyle/workstyle-signpost.svg");
}
@media screen and (min-width: 768px) {
  .p-workstyle__feature--signpost::before {
    top: 0;
    left: 4.5625rem;
    width: 15.9375rem;
    height: 16.1875rem;
  }
}

.p-workstyle__feature-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #1a2b5e;
  font-weight: 700;
  letter-spacing: 0;
  text-align: center;
  background-color: #ffffff;
  border: 2.1px solid #005078;
  min-height: 5.21875rem;
  font-size: 1.225rem;
  line-height: 1.2;
  border-radius: 1.3125rem;
  box-shadow: 0 0.35rem 0.175rem #005078;
}
@media screen and (min-width: 768px) {
  .p-workstyle__feature-text {
    border-width: 3px;
    min-height: 7.4375rem;
    font-size: 1.75rem;
    line-height: 1.205;
    border-radius: 1.875rem;
    box-shadow: 0 0.5rem 0.25rem #005078;
  }
}

@media screen and (min-width: 768px) {
  .p-workstyle__feature--graph .p-workstyle__feature-text {
    padding-right: 0.3125rem;
  }
}

.p-workstyle__button {
  width: 19.875rem;
  height: 3.125rem;
  padding-left: 0.5rem;
  margin-top: 2.2875rem;
  margin-left: 1.625rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__button {
    padding-left: 0;
    width: 32.6875rem;
    height: 4.5125rem;
    margin-top: 2.7625rem;
    margin-left: 27.9375rem;
  }
}

.p-workstyle__photos {
  margin-top: 2.21875rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__photos {
    margin-top: 2.875rem;
  }
}

.p-workstyle__track {
  display: flex;
  width: max-content;
  will-change: transform;
  backface-visibility: hidden;
  animation: p-workstyle-marquee 17s linear infinite;
  margin-left: -15.5375rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__track {
    margin-left: -3.125rem;
    animation-duration: 30s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-workstyle__track {
    animation: none;
  }
}

@keyframes p-workstyle-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-33.3333333333%, 0, 0);
  }
}
.p-workstyle__photo-list {
  display: flex;
  flex-shrink: 0;
  gap: 0.5625rem;
  padding-right: 0.5625rem;
}
@media screen and (min-width: 768px) {
  .p-workstyle__photo-list {
    gap: 1rem;
    padding-right: 1rem;
  }
}

.p-workstyle__photo-item {
  overflow: hidden;
  flex-shrink: 0;
  transform: translateZ(0);
  width: 13.20625rem;
  border-radius: 0.70625rem;
  box-shadow: 0 0.2125rem 0.14375rem #005078;
}
@media screen and (min-width: 768px) {
  .p-workstyle__photo-item {
    width: 23.3125rem;
    border-radius: 1.25rem;
    box-shadow: 0 0.375rem 0.25rem #005078;
  }
}

.p-workstyle__photo {
  width: 100%;
}

/* ========================================
  CTA
======================================== */
.p-cta {
  margin-top: 3.25rem;
}

.p-cta__card {
  position: relative;
  z-index: 0;
  padding-top: 2.23125rem;
  min-height: 36.65rem;
  padding-bottom: calc(15.9966796875rem - 1px);
}
@media screen and (min-width: 768px) {
  .p-cta__card {
    width: 86.5625rem;
    min-height: 36.6rem;
    padding-bottom: calc(4.5609375rem - 1px);
    margin-left: 1.75625rem;
    padding-top: 2.7125rem;
  }
}
.p-cta__card::before {
  content: "";
  position: absolute;
  z-index: -1;
  background-image: url("../images/cta/cta-bg-sp.png");
  background-image: image-set(url("../images/cta/cta-bg-sp.webp") type("image/webp"), url("../images/cta/cta-bg-sp.png") type("image/png"));
}
@media screen and (min-width: 768px) {
  .p-cta__card::before {
    background-image: url("../images/cta/cta-bg.png");
    background-image: image-set(url("../images/cta/cta-bg.webp") type("image/webp"), url("../images/cta/cta-bg.png") type("image/png"));
  }
}
.p-cta__card::before {
  background-repeat: no-repeat;
  background-size: 100% 100%;
  top: -0.0875rem;
  left: 0;
  width: 100%;
  height: max(36.7375rem, 100% + 0.0875rem);
}
@media screen and (min-width: 768px) {
  .p-cta__card::before {
    top: -0.125rem;
    left: -0.125rem;
    width: 86.8125rem;
    height: max(36.725rem, 100% + 0.125rem);
  }
}

.p-cta__title {
  color: #005078;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
  width: 23.125rem;
  margin-left: 0.25rem;
  font-size: 2.525rem;
}
@media screen and (min-width: 768px) {
  .p-cta__title {
    width: 45.5rem;
    margin-left: 19.55625rem;
    font-size: 4.6875rem;
  }
}

.p-cta__title-line {
  display: block;
  height: 3.5875rem;
  line-height: 3.5875rem;
}
@media screen and (min-width: 768px) {
  .p-cta__title-line {
    height: 6.6625rem;
    line-height: 6.6625rem;
  }
}

.p-cta__title-line--strong {
  color: transparent;
  background-image: linear-gradient(to right, #1a2b5e, #06b6d4);
  -webkit-background-clip: text;
  background-clip: text;
  height: 4.59375rem;
  margin-top: -0.68125rem;
  font-size: 3.23125rem;
  line-height: 4.59375rem;
}
@media screen and (min-width: 768px) {
  .p-cta__title-line--strong {
    height: 8.53125rem;
    margin-top: -0.9875rem;
    font-size: 6rem;
    line-height: 8.53125rem;
  }
}

.p-cta__title-grad {
  text-decoration: underline dotted #005078;
  text-decoration-thickness: 0.1125rem;
  text-underline-offset: 0.7375rem;
}
@media screen and (min-width: 768px) {
  .p-cta__title-grad {
    text-decoration-thickness: 0.2125rem;
    text-underline-offset: 1.375rem;
  }
}

.p-cta__text {
  color: #303030;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-align: center;
  line-break: strict;
  margin-top: 0.75rem;
  padding-left: 0.20625rem;
  font-size: 0.75625rem;
  line-height: 1.65;
}
@media screen and (min-width: 768px) {
  .p-cta__text {
    padding-left: 0;
    width: 41.25rem;
    margin-top: 0.75rem;
    margin-left: 22.18125rem;
    font-size: 1.1875rem;
    line-height: 1.76;
  }
}

.c-button--entry {
  box-shadow: 0 2.8px 0.7px #005078;
}
@media screen and (min-width: 768px) {
  .c-button--entry {
    padding-right: 0;
    box-shadow: 0 4px 1px #005078;
  }
}
.c-button--entry:active {
  box-shadow: 0 0 0 #005078;
}
@media (any-hover: hover) {
  .c-button--entry:hover {
    box-shadow: 0 0 0 #005078;
  }
}

.p-cta__button {
  width: 19.9375rem;
  margin-top: 0.75rem;
  margin-left: 1.75rem;
}
@media screen and (min-width: 768px) {
  .p-cta__button {
    width: 32.6875rem;
    margin-top: 1.5rem;
    margin-left: 26.375rem;
  }
}

/* ========================================
  Footer
======================================== */
.l-footer {
  position: relative;
  z-index: 10;
  color: #ffffff;
  background-color: #1a2b5e;
}

.l-footer__body {
  position: relative;
  z-index: 0;
  padding-top: 2.25rem;
  padding-bottom: 1.1375rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .l-footer__body {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    align-items: flex-start;
    min-height: 26.64375rem;
    padding-top: 0;
    padding-bottom: calc(1.58125rem - 1px);
    text-align: left;
  }
}

.l-footer__info {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .l-footer__info {
    width: 27.5rem;
    margin-top: 3.4375rem;
    margin-left: 7.86875rem;
  }
}

.l-footer__logo {
  display: block;
  width: 8.225rem;
  margin-inline: auto;
  transition: opacity 0.3s;
}
@media screen and (min-width: 768px) {
  .l-footer__logo {
    margin-inline: 0;
    width: 9.25rem;
    margin-left: 0.25625rem;
  }
}
.l-footer__logo:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}
@media (any-hover: hover) {
  .l-footer__logo:hover {
    opacity: 0.7;
  }
}

.l-footer__logo-image {
  width: 100%;
}

.l-footer__address {
  color: #ffffff;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0;
  margin-top: 0.59375rem;
  font-size: 0.8875rem;
  line-height: 1.38875rem;
}
@media screen and (min-width: 768px) {
  .l-footer__address {
    margin-top: 1.6875rem;
    font-size: 1rem;
    line-height: 1.5625rem;
  }
}

.l-footer__tel {
  position: relative;
  z-index: 0;
  display: inline-block;
  padding-left: 1.0875rem;
}
@media screen and (min-width: 768px) {
  .l-footer__tel {
    padding-left: 1.25rem;
  }
}
.l-footer__tel::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  background-image: url("../images/common/icon-tel.svg");
  background-repeat: no-repeat;
  background-size: contain;
  transform: translateY(-50%);
  left: 0.075rem;
  width: 0.725rem;
  height: 0.725rem;
}
@media screen and (min-width: 768px) {
  .l-footer__tel::before {
    width: 0.8125rem;
    height: 0.8125rem;
  }
}

.l-footer__links {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.625rem;
  margin-top: 1.44375rem;
}
@media screen and (min-width: 768px) {
  .l-footer__links {
    flex-direction: row;
    gap: 0;
    min-height: 2.08125rem;
    margin-top: 3.975rem;
    margin-left: 2.6875rem;
  }
}

.l-footer__link {
  display: flex;
  align-items: center;
  color: #ffffff;
  font-weight: 500;
  letter-spacing: 0;
  font-size: 0.90625rem;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .l-footer__link {
    font-size: 1.34375rem;
  }
}
.l-footer__link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

@media screen and (min-width: 768px) {
  .l-footer__link--contact {
    margin-left: 3.59375rem;
  }
}

.l-footer__badge {
  width: 6.01875rem;
  margin-right: 0.33125rem;
}
@media screen and (min-width: 768px) {
  .l-footer__badge {
    width: 8.9375rem;
    margin-right: 0.49375rem;
  }
}

.l-footer__link-icon {
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  width: 1.0125rem;
  height: 1.0125rem;
  margin-left: 0.2875rem;
}
@media screen and (min-width: 768px) {
  .l-footer__link-icon {
    width: 1.50625rem;
    height: 1.50625rem;
    margin-left: 0.40625rem;
  }
}

@media (any-hover: hover) {
  .l-footer__link:hover .l-footer__link-icon {
    transform: translateX(0.25rem);
  }
}
.c-arrow--inverse {
  background-color: #ffffff;
}
.c-arrow--inverse::after {
  background-color: #1a2b5e;
}

.l-footer__sns {
  position: relative;
  z-index: 1;
  margin-top: 1.58125rem;
}
@media screen and (min-width: 768px) {
  .l-footer__sns {
    position: absolute;
    margin-top: 0;
    top: 8.1875rem;
    left: 37.0625rem;
  }
}

.l-footer__sns-link {
  display: block;
  width: fit-content;
  margin-inline: auto;
  color: #ffffff;
  font-weight: 400;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  font-size: 0.75rem;
  line-height: 0.8125rem;
}
@media screen and (min-width: 768px) {
  .l-footer__sns-link {
    width: 6.89375rem;
    margin-inline: 0;
    font-size: 1.1125rem;
    line-height: 1.2rem;
  }
}
.l-footer__sns-link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

.l-footer__sns-link .l-footer__sns-icon {
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (any-hover: hover) {
  .l-footer__sns-link:hover .l-footer__sns-icon {
    transform: translateY(-0.25rem);
  }
}
.l-footer__sns-icon {
  display: block;
  margin-inline: auto;
  background-image: url("../images/common/icon-instagram.svg");
  background-repeat: no-repeat;
  background-size: contain;
  width: 3.4125rem;
  height: 3.4125rem;
  margin-bottom: 0.24375rem;
}
@media screen and (min-width: 768px) {
  .l-footer__sns-icon {
    width: 5.0625rem;
    height: 5.0625rem;
    margin-bottom: 0.3625rem;
  }
}

.l-footer__nav {
  position: relative;
  z-index: 1;
  width: 17.875rem;
  margin-top: 1.21875rem;
  margin-left: 2.75rem;
}
@media screen and (min-width: 768px) {
  .l-footer__nav {
    flex-basis: 100%;
    margin-top: 6.8125rem;
    margin-left: 0;
    padding-left: 16.50625rem;
  }
}

.l-footer__nav-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 1.4375rem;
}
@media screen and (min-width: 768px) {
  .l-footer__nav-list {
    display: grid;
    justify-content: start;
    column-gap: 0;
    grid-template-columns: 7.3125rem 7.3125rem 7.3125rem 8.5625rem 7.9375rem 8rem 10.5rem;
  }
}

.l-footer__nav-item {
  line-height: 0;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .l-footer__nav-item {
    width: 5.25rem;
  }
}

@media screen and (min-width: 768px) {
  .l-footer__nav-item--wide {
    width: 6.5rem;
  }
}

@media screen and (min-width: 768px) {
  .l-footer__nav-item--xwide {
    width: 10.5rem;
  }
}

.l-footer__nav-link {
  display: inline-block;
  vertical-align: top;
  color: #ffffff;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 700;
  letter-spacing: 0;
  background-image: linear-gradient(#06b6d4, #06b6d4);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 2px;
  transition: background-size 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  font-size: 0.71875rem;
  line-height: 1.15rem;
}
@media screen and (min-width: 768px) {
  .l-footer__nav-link {
    font-size: 1rem;
    line-height: 1.5;
  }
}
.l-footer__nav-link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}
@media (any-hover: hover) {
  .l-footer__nav-link:hover {
    background-position: left bottom;
    background-size: 100% 2px;
  }
}

.l-footer__copyright-text {
  font-size: inherit;
}

.l-footer__copyright {
  color: #1a2b5e;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-align: center;
  background-color: #f59e0b;
  height: 2.7375rem;
  font-size: 0.775rem;
  line-height: 2.7375rem;
}
@media screen and (min-width: 768px) {
  .l-footer__copyright {
    height: 3.075rem;
    font-size: 0.875rem;
    line-height: 3.075rem;
  }
}

/* ========================================
  Component: story modal（インタビューのポップアップ）
======================================== */
.c-modal {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  padding: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: transparent;
  border: 0;
}
.c-modal::backdrop {
  background-color: rgba(26, 43, 94, 0.6);
}

.c-modal__card {
  position: relative;
  z-index: 0;
  margin-inline: auto;
  background-color: #ffffff;
  background-image: url("../images/common/bg-grid.svg");
  background-repeat: repeat;
  background-position: center top;
  border: 2px solid #005078;
  margin-block: 1rem 2.5rem;
  margin-inline: 0.75rem;
  padding-bottom: 2rem;
  background-size: 2.625rem 2.625rem;
  border-radius: 1.5rem;
  box-shadow: 0 0.5rem 0.1875rem #005078;
}
@media screen and (min-width: 768px) {
  .c-modal__card {
    margin-inline: auto;
    width: 87.875rem;
    margin-block: 2.5rem 3.75rem;
    padding-bottom: 3.75rem;
    background-size: 2.625rem 2.625rem;
    border-radius: 3.125rem;
    box-shadow: 0 1.0625rem 0.25rem #005078;
  }
}
.c-modal__card::before, .c-modal__card::after {
  content: "";
  position: absolute;
  z-index: -1;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.c-modal__card::before {
  background-image: url("../images/modal/modal-stripe-lg.svg");
  top: 2.75rem;
  left: 2.25rem;
  width: 5.625rem;
  height: 5.625rem;
}
@media screen and (min-width: 768px) {
  .c-modal__card::before {
    top: 3.1875rem;
    left: 2.25rem;
    width: 9.25rem;
    height: 9.25rem;
  }
}
.c-modal__card::after {
  z-index: 1;
  display: none;
  background-image: url("../images/modal/modal-stripe-sm.svg");
}
@media screen and (min-width: 768px) {
  .c-modal__card::after {
    display: block;
    top: 27.75rem;
    left: 26.6875rem;
    width: 4.5625rem;
    height: 4.5625rem;
  }
}

.c-modal__close {
  position: sticky;
  z-index: 10;
  display: block;
  margin-left: auto;
  padding: 0;
  background-color: #06b6d4;
  border: 2px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 4px 4px #06b6d4;
  transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
  top: 0.75rem;
  width: 2.75rem;
  height: 2.75rem;
  margin-top: 0.75rem;
  margin-right: 0.75rem;
  margin-bottom: -3.5rem;
}
@media screen and (min-width: 768px) {
  .c-modal__close {
    top: 1.5rem;
    width: 4.375rem;
    height: 4.375rem;
    margin-top: 1.5rem;
    margin-right: 1.9375rem;
    margin-bottom: -5.875rem;
  }
}
.c-modal__close::before, .c-modal__close::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  background-color: #ffffff;
  width: 1.71875rem;
  height: 0.2375rem;
}
@media screen and (min-width: 768px) {
  .c-modal__close::before, .c-modal__close::after {
    width: 2.7375rem;
    height: 0.375rem;
  }
}
.c-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.c-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.c-modal__close:focus-visible {
  outline: 2px solid #005078;
  outline-offset: 2px;
}
.c-modal__close:active {
  transform: translateY(4px);
  box-shadow: 0 0 0 #06b6d4;
}
@media (any-hover: hover) {
  .c-modal__close:hover {
    transform: translateY(4px);
    box-shadow: 0 0 0 #06b6d4;
  }
}

.c-modal__body {
  padding-top: 3.5rem;
  padding-inline: 1rem;
}
@media screen and (min-width: 768px) {
  .c-modal__body {
    display: flex;
    align-items: flex-start;
    padding-right: 0;
    padding-top: 3.25rem;
    padding-left: 5.125rem;
  }
}

.c-modal__side {
  flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .c-modal__side {
    width: 28.0625rem;
  }
}

.c-modal__photo {
  position: relative;
  z-index: 2;
  max-width: none;
  width: 15rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .c-modal__photo {
    margin-inline: 0;
  }
}

@media screen and (min-width: 768px) {
  .c-modal__photo--01 {
    width: 24.1875rem;
  }
}

@media screen and (min-width: 768px) {
  .c-modal__photo--02 {
    width: 23.8125rem;
    margin-top: 0.15rem;
    margin-left: 0.33125rem;
  }
}

@media screen and (min-width: 768px) {
  .c-modal__photo--03 {
    width: 23.8125rem;
    margin-top: 0.15rem;
    margin-left: 0.33125rem;
  }
}

.c-modal__catch {
  color: #1a2b5e;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-top: 0.75rem;
  font-size: 0.90625rem;
  line-height: 1.76;
}
@media screen and (min-width: 768px) {
  .c-modal__catch {
    margin-top: 0.975rem;
    margin-left: 0.75rem;
    font-size: 1.3125rem;
    line-height: 1.76;
  }
}

.c-modal__catch {
  text-align: center;
  text-decoration: underline dotted;
  text-decoration-thickness: 0.09375rem;
  text-underline-offset: 0.2625rem;
}
@media screen and (min-width: 768px) {
  .c-modal__catch {
    text-align: left;
    text-underline-offset: 0.375rem;
  }
}

.c-modal__profile-label {
  width: fit-content;
  color: #005078;
  font-weight: 700;
  letter-spacing: 0.03em;
  background-color: #ffffff;
  border: 1px solid #005078;
  box-shadow: 0 4px 2.3px #005078;
  height: 1.625rem;
  margin-top: 1.25rem;
  padding-inline: 0.5rem;
  font-size: 0.90625rem;
  line-height: 1.5rem;
  border-radius: 0.375rem;
}
@media screen and (min-width: 768px) {
  .c-modal__profile-label {
    height: 2.1875rem;
    margin-top: 1.75rem;
    padding-inline: 0.6875rem;
    font-size: 1.3125rem;
    line-height: 2.0625rem;
    border-radius: 0.5625rem;
  }
}

.c-modal__profile {
  color: #1a2b5e;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-top: 0.375rem;
  font-size: 0.90625rem;
}
@media screen and (min-width: 768px) {
  .c-modal__profile {
    margin-top: 0.4375rem;
    margin-left: 0.75rem;
    font-size: 1.3125rem;
  }
}

.c-modal__profile-term {
  line-height: 1.8;
}
.c-modal__profile-term::before {
  content: "・";
}

.c-modal__profile-desc {
  line-height: 1.5;
  padding-left: 0.93125rem;
}
@media screen and (min-width: 768px) {
  .c-modal__profile-desc {
    padding-left: 1.35rem;
  }
}

.c-modal__main {
  margin-top: 2rem;
}
@media screen and (min-width: 768px) {
  .c-modal__main {
    margin-top: 0;
    width: 49.4375rem;
    margin-left: 1.625rem;
    padding-top: 2.9375rem;
  }
}

.c-modal__qa + .c-modal__qa {
  margin-top: 1.5rem;
}
@media screen and (min-width: 768px) {
  .c-modal__qa + .c-modal__qa {
    margin-top: 1.85rem;
  }
}

.c-modal__question {
  display: flex;
  align-items: flex-start;
  color: #1a2b5e;
  font-weight: 700;
  letter-spacing: 0.03em;
  font-size: 1.0625rem;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .c-modal__question {
    font-size: 1.75rem;
  }
}

.c-modal__q-label {
  flex-shrink: 0;
  color: #ffffff;
  background-image: linear-gradient(to bottom, #06b6d4, #2d82bc);
  width: 2.75rem;
  height: 1.875rem;
  padding-left: 0.375rem;
  line-height: 1.8125rem;
  border-radius: 1.125rem;
}
@media screen and (min-width: 768px) {
  .c-modal__q-label {
    width: 3.9375rem;
    height: 2.8125rem;
    padding-left: 0.5rem;
    line-height: 2.6875rem;
    border-radius: 1.6875rem;
  }
}

.c-modal__question-text {
  min-width: 0;
  margin-left: 0.5rem;
}
@media screen and (min-width: 768px) {
  .c-modal__question-text {
    width: 44.625rem;
    margin-left: 0.875rem;
  }
}

.c-modal__answer {
  margin-top: 0.625rem;
}
@media screen and (min-width: 768px) {
  .c-modal__answer {
    width: 44.625rem;
    margin-top: 0.80625rem;
    margin-left: 4.8125rem;
  }
}

.c-modal__answer-text {
  color: #303030;
  font-weight: 500;
  letter-spacing: 0.03em;
  font-size: 0.90625rem;
  line-height: 1.76;
}
@media screen and (min-width: 768px) {
  .c-modal__answer-text {
    font-size: 1.3125rem;
  }
}
.c-modal__answer-text + .c-modal__answer-text {
  margin-top: 1.59375rem;
}
@media screen and (min-width: 768px) {
  .c-modal__answer-text + .c-modal__answer-text {
    margin-top: 2.3125rem;
  }
}

.is-modal-open {
  overflow: hidden;
}

/* ========================================
  下層ページ共通（会社概要・プライバシーポリシー・サンクス）
  HTMLは 02_制作/tools/build-subpages.py が _src/parts/*.html から組み立てる
======================================== */
.is-sub .l-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
}

.l-sub {
  flex: 1 0 auto;
}

/* ========================================
  下層: company-head
======================================== */
/* ========================================
  Company: ページ見出し（p-sub-head）
======================================== */
.p-sub-head {
  position: relative;
  z-index: 0;
  overflow: clip;
  display: flow-root;
  min-height: 19.0625rem;
  padding-bottom: calc(5.875rem - 1px);
}
@media screen and (min-width: 768px) {
  .p-sub-head {
    min-height: 29.1125rem;
    padding-bottom: calc(7.0625rem - 1px);
  }
}

.p-sub-head__bg {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 19.3125rem;
  background-image: url("../images/company/company-head-bg-sp.jpg");
  background-image: image-set(url("../images/company/company-head-bg-sp.webp") type("image/webp"), url("../images/company/company-head-bg-sp.jpg") type("image/jpeg"));
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
@media screen and (min-width: 768px) {
  .p-sub-head__bg {
    top: 0;
    left: 0;
    width: 100%;
    height: 37.9rem;
    background-image: url("../images/company/company-head-bg.jpg");
    background-image: image-set(url("../images/company/company-head-bg.webp") type("image/webp"), url("../images/company/company-head-bg.jpg") type("image/jpeg"));
  }
}

.p-sub-head__title {
  display: flow-root;
  width: 24.9375rem;
  margin-left: -0.60625rem;
  padding-inline: 1.23125rem;
  text-align: center;
  color: #ffffff;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-break: strict;
}
@media screen and (min-width: 768px) {
  .p-sub-head__title {
    margin-left: 10.85rem;
    width: 68.625rem;
    padding-inline: 0;
  }
}

.p-sub-head__label {
  display: block;
  margin-top: 6.69375rem;
  font-size: 1.2rem;
  line-height: 1.575rem;
}
@media screen and (min-width: 768px) {
  .p-sub-head__label {
    margin-top: 11.21875rem;
    font-size: 1.96875rem;
    line-height: 2.58125rem;
  }
}

.p-sub-head__en {
  display: block;
  margin-top: 1.26875rem;
  font-size: 3.65rem;
  line-height: 3.65rem;
}
@media screen and (min-width: 768px) {
  .p-sub-head__en {
    margin-top: 2.25rem;
    font-size: 6rem;
    line-height: 6rem;
  }
}

.p-sub-head__line {
  position: absolute;
  top: 8.9125rem;
  left: 10.2625rem;
  width: 3.1625rem;
  height: 0.2125rem;
  background-color: #ffffff;
}
@media screen and (min-width: 768px) {
  .p-sub-head__line {
    display: none;
  }
}

/* ========================================
  下層: company-intro
======================================== */
/* ========================================
  Company: イントロ（p-company-intro）
======================================== */
.p-company-intro {
  position: relative;
  z-index: 0;
  overflow-x: clip;
  display: flow-root;
  min-height: 67.95rem;
  padding-bottom: calc(31.325rem - 1px);
  color: #ffffff;
}
@media screen and (min-width: 768px) {
  .p-company-intro {
    min-height: 70.6125rem;
    padding-bottom: calc(22.2375rem - 1px);
  }
}

.p-company-intro__band {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  bottom: 4.2625rem;
  left: 0;
  overflow: hidden;
  background-color: #005078;
}
@media screen and (min-width: 768px) {
  .p-company-intro__band {
    bottom: 9.9875rem;
  }
}

.p-company-intro__bg {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 63.6875rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__bg {
    height: 60.625rem;
  }
}
.p-company-intro__bg {
  background-image: url("../images/company/company-intro-bg-sp.jpg");
  background-image: image-set(url("../images/company/company-intro-bg-sp.webp") type("image/webp"), url("../images/company/company-intro-bg-sp.jpg") type("image/jpeg"));
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
@media screen and (min-width: 768px) {
  .p-company-intro__bg {
    background-image: url("../images/company/company-intro-bg.jpg");
    background-image: image-set(url("../images/company/company-intro-bg.webp") type("image/webp"), url("../images/company/company-intro-bg.jpg") type("image/jpeg"));
  }
}

.p-company-intro__ring {
  border-style: solid;
}

.p-company-intro__ring--a {
  position: absolute;
  top: 36.84375rem;
  left: 13.525rem;
  width: 12.99375rem;
  height: 12.99375rem;
  border: 0.1625rem solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
}
@media screen and (min-width: 768px) {
  .p-company-intro__ring--a {
    position: absolute;
    top: 2.075rem;
    left: 67.39375rem;
    width: 27.7rem;
    height: 27.7rem;
    border: 0.35rem solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
    box-shadow: 0 0.25rem 0.28125rem rgba(0, 0, 0, 0.36);
  }
}

.p-company-intro__ring--b {
  position: absolute;
  top: 44.5125rem;
  left: -2.28125rem;
  width: 16.125rem;
  height: 16.125rem;
  border: 0.1875rem solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
}
@media screen and (min-width: 768px) {
  .p-company-intro__ring--b {
    position: absolute;
    top: 20.35rem;
    left: -8.6125rem;
    width: 30.725rem;
    height: 30.725rem;
    border: 0.35rem solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
    box-shadow: 0 0.3125rem 0.28125rem rgba(0, 0, 0, 0.25);
  }
}

.p-company-intro__ring--c {
  position: absolute;
  top: 52.84375rem;
  left: 15.56875rem;
  width: 5.44375rem;
  height: 5.44375rem;
  border: 0.1625rem solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
}
@media screen and (min-width: 768px) {
  .p-company-intro__ring--c {
    position: absolute;
    top: 36.175rem;
    left: 71.75625rem;
    width: 11.6rem;
    height: 11.6rem;
    border: 0.35rem solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
    box-shadow: 0 0.25rem 0.28125rem rgba(0, 0, 0, 0.36);
  }
}

.p-company-intro__ring--d {
  position: absolute;
  top: 37.4125rem;
  left: 4.3125rem;
  width: 4.46875rem;
  height: 4.46875rem;
  border: 0.1875rem solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
}
@media screen and (min-width: 768px) {
  .p-company-intro__ring--d {
    position: absolute;
    top: 4.6rem;
    left: 6.15625rem;
    width: 8.50625rem;
    height: 8.50625rem;
    border: 0.35rem solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
    box-shadow: 0 0.25rem 0.28125rem rgba(0, 0, 0, 0.36);
  }
}

.p-company-intro__ring--e {
  position: absolute;
  top: 41.05rem;
  left: 8.6rem;
  width: 1.775rem;
  height: 1.775rem;
  border: 0.1875rem solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
  border-color: #a0d3ea;
}
@media screen and (min-width: 768px) {
  .p-company-intro__ring--e {
    position: absolute;
    top: 13.74375rem;
    left: 12.13125rem;
    width: 3.375rem;
    height: 3.375rem;
    border: 0.35rem solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
    border-color: #a0d3ea;
    box-shadow: 0 0.25rem 0.28125rem rgba(0, 0, 0, 0.36);
  }
}

.p-company-intro__ring--f {
  position: absolute;
  top: 57.625rem;
  left: 20.61875rem;
  width: 1.58125rem;
  height: 1.58125rem;
  border: 0.1625rem solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
  border-color: #a0d3ea;
}
@media screen and (min-width: 768px) {
  .p-company-intro__ring--f {
    position: absolute;
    top: 46.36875rem;
    left: 82.5125rem;
    width: 3.375rem;
    height: 3.375rem;
    border: 0.35rem solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0.13125rem 0.13125rem rgba(0, 0, 0, 0.36);
    border-color: #a0d3ea;
    box-shadow: 0 0.25rem 0.28125rem rgba(0, 0, 0, 0.36);
  }
}

.p-company-intro__disc {
  border-radius: 50%;
  background: linear-gradient(to bottom, #ffffff, #a0d3ea);
  box-shadow: 0 0.15rem 0.15rem rgba(0, 0, 0, 0.36);
}
@media screen and (min-width: 768px) {
  .p-company-intro__disc {
    box-shadow: 0 0.25rem 0.28125rem rgba(0, 0, 0, 0.36);
  }
}

.p-company-intro__disc--a {
  position: absolute;
  top: 53.55rem;
  left: 16.34375rem;
  width: 3.89375rem;
  height: 3.89375rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__disc--a {
    position: absolute;
    top: 37.6875rem;
    left: 73.40625rem;
    width: 8.3rem;
    height: 8.3rem;
  }
}

.p-company-intro__disc--b {
  position: absolute;
  top: 38.175rem;
  left: 5.075rem;
  width: 2.95rem;
  height: 2.95rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__disc--b {
    position: absolute;
    top: 6.04375rem;
    left: 7.59375rem;
    width: 5.625rem;
    height: 5.625rem;
  }
}

.p-company-intro__circle {
  border-radius: 50%;
  box-shadow: 0 0.15rem 0.15rem rgba(0, 0, 0, 0.36);
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-company-intro__circle {
    box-shadow: 0 0.25rem 0.28125rem rgba(0, 0, 0, 0.36);
  }
}

.p-company-intro__circle--right {
  position: absolute;
  top: 37.3125rem;
  left: 14.16875rem;
  width: 11.88125rem;
  height: 11.88125rem;
  opacity: 0.96;
}
@media screen and (min-width: 768px) {
  .p-company-intro__circle--right {
    position: absolute;
    top: 3.075rem;
    left: 68.775rem;
    width: 25.325rem;
    height: 25.325rem;
  }
}

.p-company-intro__circle--left {
  position: absolute;
  top: 45.125rem;
  left: -1.63125rem;
  width: 14.75625rem;
  height: 14.75625rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__circle--left {
    position: absolute;
    top: 21.5125rem;
    left: -7.38125rem;
    width: 28.125rem;
    height: 28.125rem;
  }
}

.p-company-intro__line {
  max-width: none;
}

.p-company-intro__line--a {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-company-intro__line--a {
    display: block;
    position: absolute;
    top: -0.190625rem;
    left: 2.9875rem;
    width: 5.13125rem;
    height: 5.69375rem;
  }
}

.p-company-intro__line--b {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-company-intro__line--b {
    display: block;
    position: absolute;
    top: 12.6rem;
    left: 5.2875rem;
    width: 4.00625rem;
    height: 8.0875rem;
  }
}

.p-company-intro__line--c {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-company-intro__line--c {
    display: block;
    position: absolute;
    top: 29.45625rem;
    left: 78.5375rem;
    width: 1.83125rem;
    height: 6.9625rem;
  }
}

.p-company-intro__line--d {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-company-intro__line--d {
    display: block;
    position: absolute;
    top: 47.440625rem;
    left: 77.55625rem;
    width: 5.275rem;
    height: 8.50625rem;
  }
}

.p-company-intro__line--sp-a {
  position: absolute;
  top: 49.69375rem;
  left: 18.74375rem;
  width: 0.875rem;
  height: 3.25rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__line--sp-a {
    display: none;
  }
}

.p-company-intro__line--sp-b {
  position: absolute;
  top: 41.59375rem;
  left: 4.85rem;
  width: 1.125rem;
  height: 3.1875rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__line--sp-b {
    display: none;
  }
}

.p-company-intro__line--sp-c {
  position: absolute;
  top: 36.775rem;
  left: 0rem;
  width: 4.625rem;
  height: 2.1875rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__line--sp-c {
    display: none;
  }
}

.p-company-intro__title {
  position: relative;
  display: flow-root;
  width: 30.2rem;
  margin-top: 3.3125rem;
  margin-left: -3.7375rem;
  font-size: 1.88125rem;
  font-weight: 900;
  line-height: 1.57;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-company-intro__title {
    width: 48.09375rem;
    margin-top: 3.2375rem;
    margin-left: 21.375rem;
    font-size: 3rem;
  }
}

.p-company-intro__title-line {
  display: block;
  margin-top: -0.75rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__title-line {
    margin-top: 0.83125rem;
  }
}

.p-company-intro__title-part {
  display: block;
  height: 2.5rem;
}
.p-company-intro__title-part:last-child {
  padding-right: 0.4625rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__title-part {
    display: inline;
    height: auto;
  }
  .p-company-intro__title-part:last-child {
    padding-right: 0;
  }
}

.p-company-intro__title-no {
  letter-spacing: -0.46em;
  margin-right: 0.46em;
}
@media screen and (min-width: 768px) {
  .p-company-intro__title-no {
    margin-right: -0.234em;
  }
}

.p-company-intro__title-en {
  font-size: 2.65rem;
  letter-spacing: 0.04em;
  line-height: 1.11;
}
@media screen and (min-width: 768px) {
  .p-company-intro__title-en {
    font-size: 4.21875rem;
    line-height: 1.57;
  }
}

.p-company-intro__title-close {
  letter-spacing: -0.32em;
}
@media screen and (min-width: 768px) {
  .p-company-intro__title-close {
    letter-spacing: -0.32em;
  }
}

.p-company-intro__title-band-text {
  flex-shrink: 0;
  max-width: calc(100% + 2em);
}

.p-company-intro__title-band {
  display: flex;
  margin-top: 1.475rem;
  margin-left: 4.98125rem;
  align-items: center;
  justify-content: center;
  width: 20.8375rem;
  height: 2.78125rem;
  padding-bottom: 0.25rem;
  padding-left: 1.05rem;
  border-radius: 0.39375rem;
  background-color: #ffffff;
  color: #005078;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-company-intro__title-band {
    margin-top: -0.004375rem;
    margin-left: 6.5375rem;
    width: 33.1875rem;
    height: 4.43125rem;
    padding-bottom: 0.425rem;
    padding-left: 1.775rem;
    border-radius: 0.625rem;
  }
}

.p-company-intro__text {
  display: flow-root;
  width: 32.0625rem;
  margin-top: 1.59375rem;
  margin-left: -4.05rem;
  padding-inline: 5.3rem;
  font-size: 0.90625rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.7931034483;
  text-align: center;
  text-shadow: 0 0 4.26875rem #ffffff;
  line-break: strict;
}
@media screen and (min-width: 768px) {
  .p-company-intro__text {
    text-shadow: 0 0 6.275rem #ffffff;
    width: 47.1125rem;
    margin-top: 3.01875rem;
    margin-left: 21.86875rem;
    padding-inline: 0;
    font-size: 1.3125rem;
    line-height: 1.7678571429;
  }
}

.p-company-intro__text--second {
  margin-top: 1.625rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__text--second {
    margin-top: 2.3203125rem;
  }
}

.p-company-intro__logo {
  display: block;
  width: 7.1875rem;
  height: 5.375rem;
  margin-top: 1.5875rem;
  margin-left: 8.68125rem;
  max-width: none;
}
@media screen and (min-width: 768px) {
  .p-company-intro__logo {
    width: 12.2375rem;
    height: 9.1375rem;
    margin-top: 2.5375rem;
    margin-left: 39.725rem;
  }
}

.p-company-intro__photos {
  position: absolute;
  bottom: 0.01875rem;
  left: 0;
  width: 100%;
  height: 11.43125rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__photos {
    bottom: 0.025rem;
    height: 16.8rem;
  }
}

.p-company-intro__track {
  display: flex;
  width: max-content;
  backface-visibility: hidden;
  margin-left: -21.0375rem;
  will-change: transform;
  animation: p-company-intro-marquee 20s linear infinite;
}
@media screen and (min-width: 768px) {
  .p-company-intro__track {
    margin-left: -3.09375rem;
    animation-duration: 30s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-company-intro__track {
    animation: none;
  }
}

@keyframes p-company-intro-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-33.3333333333%, 0, 0);
  }
}
.p-company-intro__photo-list {
  display: flex;
  flex-shrink: 0;
  gap: 0.68125rem;
  padding-right: 0.68125rem;
}
@media screen and (min-width: 768px) {
  .p-company-intro__photo-list {
    gap: 1rem;
    padding-right: 1rem;
  }
}

.p-company-intro__photo {
  flex-shrink: 0;
  transform: translateZ(0);
  width: 15.86875rem;
  height: 11.43125rem;
  border-radius: 0.85rem;
  box-shadow: 0 0.25625rem 0.16875rem #9ecfd7;
}
.p-company-intro__photo img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-company-intro__photo {
    width: 23.3125rem;
    height: 16.8rem;
    border-radius: 1.25rem;
    box-shadow: 0 0.333125rem 0.25rem #9ab8c7;
  }
}

/* ========================================
  下層: company-philosophy
======================================== */
/* ========================================
  Company: 理念（p-philosophy）
======================================== */
.p-philosophy {
  padding-top: 4.9375rem;
}
@media screen and (min-width: 768px) {
  .p-philosophy {
    width: 75rem;
    margin-inline: auto;
    padding-top: 7.86875rem;
  }
}

.c-heading__label--philosophy::before {
  background-image: url("../images/company/company-icon-philosophy.svg");
  background-size: 0.8625rem 1.1875rem;
  margin-left: -0.45625rem;
  margin-right: -0.9375rem;
}
@media screen and (min-width: 768px) {
  .c-heading__label--philosophy::before {
    background-size: 1.23125rem 1.7rem;
    margin-left: -0.7rem;
    margin-right: -1.3rem;
  }
}

@media screen and (min-width: 768px) {
  .p-philosophy__heading {
    margin-inline: auto;
  }
}
.p-philosophy__heading .c-heading__en {
  height: 3.64375rem;
  margin-top: 0.58125rem;
  font-size: 3.3125rem;
  line-height: 3.64375rem;
}
@media screen and (min-width: 768px) {
  .p-philosophy__heading .c-heading__en {
    height: 6.6rem;
    margin-top: 1.23125rem;
    font-size: 6rem;
    line-height: 6.6rem;
  }
}

.p-philosophy__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.26875rem;
  margin-top: 2.425rem;
}
@media screen and (min-width: 768px) {
  .p-philosophy__list {
    align-items: stretch;
    gap: 1.61875rem;
    margin-top: 3.65rem;
    padding-left: 3.44375rem;
  }
}

.p-philosophy__item {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-philosophy__item {
    flex-direction: row;
    align-items: center;
    gap: 1.54375rem;
  }
}

.p-philosophy__tag {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 7.8rem;
  height: 1.8375rem;
  border-radius: 0.36875rem;
  background-color: #005078;
  color: #ffffff;
  font-weight: 700;
  font-size: 1.3375rem;
  letter-spacing: 0.03em;
  line-height: 1;
  padding-left: 0.06em;
  padding-bottom: 0.125em;
}
@media screen and (min-width: 768px) {
  .p-philosophy__tag {
    width: 13.15rem;
    height: 3.09375rem;
    border-radius: 0.625rem;
    font-size: 2.25rem;
  }
}

.p-philosophy__text {
  margin-top: 0.35rem;
  color: #303030;
  font-weight: 500;
  font-size: 1.025rem;
  letter-spacing: 0.03em;
  line-height: 1.6;
  text-align: center;
  text-decoration-color: #005078;
  line-break: strict;
}
@media screen and (min-width: 768px) {
  .p-philosophy__text {
    margin-top: 0;
    font-size: 1.725rem;
    line-height: 1;
    text-align: left;
  }
}

.p-philosophy__em {
  color: #005078;
  font-weight: 900;
}

.p-philosophy__closing {
  margin-top: 1.8375rem;
  padding-left: 0.5rem;
  color: #303030;
  font-weight: 500;
  font-size: 0.90625rem;
  letter-spacing: 0.03em;
  line-height: 1.76;
  text-align: center;
  line-break: strict;
}
@media screen and (min-width: 768px) {
  .p-philosophy__closing {
    margin-top: 4.14375rem;
    padding-left: 0;
    font-size: 1.3125rem;
  }
}

.p-philosophy__em-light {
  color: #005078;
}

/* ========================================
  下層: company-message
======================================== */
/* ========================================
  Company: MESSAGE（代表挨拶）
  ※公開時は非表示（build-subpages.py の HIDDEN_PARTS）。前後セクションとの余白は各セクション自身の margin-top で持つ
======================================== */
.c-heading__label--message {
  padding-left: 1.025rem;
}
@media screen and (min-width: 768px) {
  .c-heading__label--message {
    padding-left: 1.5rem;
  }
}
.c-heading__label--message::before {
  background-image: url("../images/company/company-icon-message.svg");
  margin-left: -1.59375rem;
  margin-right: 0.20375rem;
}
@media screen and (min-width: 768px) {
  .c-heading__label--message::before {
    margin-left: -2.39375rem;
    margin-right: 0.39375rem;
  }
}

.p-message {
  position: relative;
  z-index: 0;
  margin-top: 3.25rem;
  padding-top: 5.1125rem;
  padding-bottom: 4.08125rem;
}
@media screen and (min-width: 768px) {
  .p-message {
    margin-top: 6.328125rem;
    padding-top: 9.39375rem;
    padding-bottom: 8.01875rem;
  }
}
.p-message::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  background-image: url("../images/company/company-message-bg-sp.png");
  background-image: image-set(url("../images/company/company-message-bg-sp.webp") type("image/webp"), url("../images/company/company-message-bg-sp.png") type("image/png"));
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
@media screen and (min-width: 768px) {
  .p-message::before {
    background-image: url("../images/company/company-message-bg.png");
    background-image: image-set(url("../images/company/company-message-bg.webp") type("image/webp"), url("../images/company/company-message-bg.png") type("image/png"));
  }
}
@media screen and (min-width: 1920px) {
  .p-message::before {
    left: 50%;
    right: auto;
    width: 100vw;
    transform: translateX(-50%);
  }
}
.p-message::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 2.76125rem;
  left: 0;
  width: 100%;
  height: 18.86375rem;
  background-image: url("../images/company/company-message-decor-sp.png");
  background-image: image-set(url("../images/company/company-message-decor-sp.webp") type("image/webp"), url("../images/company/company-message-decor-sp.png") type("image/png"));
  background-repeat: no-repeat;
  background-size: 100% 100%;
  mix-blend-mode: soft-light;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .p-message::after {
    mix-blend-mode: normal;
    top: 0;
    left: 50%;
    width: 90rem;
    height: 100%;
    margin-left: -45rem;
    background-image: url("../images/company/company-message-decor.png");
    background-image: image-set(url("../images/company/company-message-decor.webp") type("image/webp"), url("../images/company/company-message-decor.png") type("image/png"));
  }
}

@media screen and (min-width: 1920px) {
  body.is-company {
    overflow-x: clip;
  }
}
.p-message__heading {
  width: 23.125rem;
  margin-left: 0;
}
@media screen and (min-width: 768px) {
  .p-message__heading {
    width: 68.625rem;
    margin-left: 10.48125rem;
  }
}
.p-message__heading .c-heading__label,
.p-message__heading .c-heading__en {
  color: #ffffff;
}
.p-message__heading .c-heading__label {
  height: 1.16875rem;
  font-size: 1.0625rem;
  line-height: 1.16875rem;
}
@media screen and (min-width: 768px) {
  .p-message__heading .c-heading__label {
    height: 1.65rem;
    font-size: 1.5rem;
    line-height: 1.65rem;
  }
}
.p-message__heading .c-heading__en {
  height: 4.33125rem;
  margin-top: 0.69375rem;
  font-size: 3.9375rem;
  line-height: 4.33125rem;
}
@media screen and (min-width: 768px) {
  .p-message__heading .c-heading__en {
    height: 6.6rem;
    margin-top: 1.05625rem;
    font-size: 6rem;
    line-height: 6.6rem;
  }
}

.p-message__body {
  width: 21rem;
  margin-top: 1.25625rem;
  margin-left: 1.5rem;
}
@media screen and (min-width: 768px) {
  .p-message__body {
    display: flex;
    align-items: flex-start;
    width: auto;
    margin-top: 4.0125rem;
    margin-left: 7.73125rem;
  }
}

.p-message__photo {
  position: relative;
  flex: none;
  width: 18.45rem;
  height: 25.725rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-message__photo {
    width: 26.93125rem;
    height: 37.55rem;
    margin-inline: 0;
  }
}

.p-message__photo-frame {
  position: absolute;
  top: 1.4125rem;
  left: 0;
  width: 16.9125rem;
  height: 24.3125rem;
  border: 0.46875rem solid #ffffff;
  border-radius: 2.86875rem;
  background: linear-gradient(to bottom, #ffffff 0%, #005078 100%);
  box-shadow: 0 0.385625rem 0.16875rem rgba(0, 80, 120, 0.51);
}
@media screen and (min-width: 768px) {
  .p-message__photo-frame {
    top: 2.0625rem;
    width: 24.68125rem;
    height: 35.4875rem;
    border-width: 0.6875rem;
    border-radius: 4.1875rem;
    box-shadow: 0 0.5rem 0.25rem rgba(0, 80, 120, 0.51);
  }
}

.p-message__photo-image {
  position: absolute;
  top: 0;
  left: 0.4375rem;
  max-width: none;
  width: 18.01875rem;
  height: auto;
}
@media screen and (min-width: 768px) {
  .p-message__photo-image {
    left: 0.63125rem;
    width: 26.3rem;
  }
}

.p-message__content {
  margin-top: 2.3125rem;
}
@media screen and (min-width: 768px) {
  .p-message__content {
    width: 43.38125rem;
    margin-top: 2.7375rem;
    margin-left: 3.79375rem;
  }
}

.p-message__text {
  margin-left: 0.0625rem;
  color: #ffffff;
  font-weight: 500;
  letter-spacing: 0.03em;
  font-size: 0.9125rem;
  line-height: 1.625rem;
}
@media screen and (min-width: 768px) {
  .p-message__text {
    margin-left: 0;
    font-size: 1.3125rem;
    line-height: 2.3203125rem;
  }
}
.p-message__text p + p {
  margin-top: 1.625rem;
}
@media screen and (min-width: 768px) {
  .p-message__text p + p {
    margin-top: 2.3203125rem;
  }
}

.p-message__lead {
  font-weight: 900;
  font-size: 0.975rem;
  line-height: 1.6875rem;
}
@media screen and (min-width: 768px) {
  .p-message__lead {
    font-size: 1.40625rem;
    line-height: 1.76;
  }
}

@media screen and (min-width: 768px) {
  .p-message__text .p-message__lead + p {
    margin-top: 2.25625rem;
  }
}

.p-message__name {
  margin-top: 1.1875rem;
  margin-left: 0.3125rem;
  color: #ffffff;
  font-weight: 700;
  letter-spacing: 0.03em;
}
@media screen and (min-width: 768px) {
  .p-message__name {
    margin-top: 1.79375rem;
    margin-left: 0;
  }
}

.p-message__company {
  display: block;
  font-size: 0.9125rem;
  line-height: 1.625rem;
}
@media screen and (min-width: 768px) {
  .p-message__company {
    font-size: 1.3125rem;
    line-height: 2.3203125rem;
  }
}

.p-message__title {
  display: block;
  width: fit-content;
  margin-top: 0.19375rem;
  margin-left: -0.3125rem;
  min-width: 14.79375rem;
  padding-inline: 0.3125rem;
  border-radius: 0.21875rem;
  background-color: #ffffff;
  color: #1a2b5e;
  font-size: 1.125rem;
  line-height: 1.80625rem;
}
@media screen and (min-width: 768px) {
  .p-message__title {
    margin-top: 0.29375rem;
    margin-left: -0.41875rem;
    min-width: 21.30625rem;
    padding-inline: 0.41875rem;
    border-radius: 0.3125rem;
    font-size: 1.61875rem;
    line-height: 2.6rem;
  }
}

/* ========================================
  下層: company-outline
======================================== */
/* ========================================
  Company: COMPANY（会社概要の表）
======================================== */
.c-heading__label--company {
  padding-left: 1.05rem;
}
@media screen and (min-width: 768px) {
  .c-heading__label--company {
    padding-left: 1.5rem;
  }
}
.c-heading__label--company::before {
  background-image: url("../images/company/company-icon-company.svg");
}

.p-outline {
  margin-top: 3.25rem;
  padding-top: 1.125rem;
}
@media screen and (min-width: 768px) {
  .p-outline {
    margin-top: 6.328125rem;
    padding-top: 1.378125rem;
  }
}

@media screen and (min-width: 768px) {
  .p-outline__heading {
    margin-left: 10.69375rem;
  }
}
.p-outline__heading .c-heading__label {
  height: 1.16875rem;
  font-size: 1.0625rem;
  line-height: 1.16875rem;
}
@media screen and (min-width: 768px) {
  .p-outline__heading .c-heading__label {
    height: 1.65rem;
    font-size: 1.5rem;
    line-height: 1.65rem;
  }
}
.p-outline__heading .c-heading__en {
  height: 4.33125rem;
  margin-top: 0.69375rem;
  font-size: 3.9375rem;
  line-height: 4.33125rem;
}
@media screen and (min-width: 768px) {
  .p-outline__heading .c-heading__en {
    height: 6.6rem;
    margin-top: 1.05625rem;
    font-size: 6rem;
    line-height: 6.6rem;
  }
}

.p-outline__list {
  width: 21.95rem;
  margin-top: 2.24375rem;
  margin-left: 0.625rem;
}
@media screen and (min-width: 768px) {
  .p-outline__list {
    width: 74.8rem;
    margin-top: 3.821875rem;
    margin-left: 7.63125rem;
  }
}

.p-outline__row {
  display: grid;
  align-items: start;
  --bar-h: 51;
}
.p-outline__row + .p-outline__row {
  margin-top: 0.4125rem;
}
@media screen and (min-width: 768px) {
  .p-outline__row + .p-outline__row {
    margin-top: 1.55rem;
  }
}
@media screen and (min-width: 768px) {
  .p-outline__row:nth-child(n+7) {
    margin-top: 1.61875rem;
  }
}
.p-outline__row:nth-child(2) {
  --bar-h: 49.5;
}
.p-outline__row:nth-child(3) {
  --bar-h: 50;
}
.p-outline__row:nth-child(4) {
  --bar-h: 50;
}
.p-outline__row:nth-child(5) {
  --bar-h: 45.9;
}
.p-outline__row:nth-child(6) {
  --bar-h: 51;
}
.p-outline__row:nth-child(7) {
  --bar-h: 49.5;
}
.p-outline__row:nth-child(8) {
  --bar-h: 65.8;
}
@media screen and (min-width: 768px) {
  .p-outline__row:nth-child(n) {
    --bar-h: 76.5;
  }
  .p-outline__row:nth-child(5) {
    --bar-h: 70.9;
  }
}

.p-outline__term {
  position: relative;
  z-index: 1;
  grid-area: 1/1;
  display: flex;
  align-items: center;
  width: 4.75rem;
  min-height: 2.375rem;
  padding-left: 0.99375rem;
  border: 0.09375rem solid #ffffff;
  border-radius: 2.30625rem;
  background-color: #005078;
  color: #ffffff;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 700;
  letter-spacing: 0;
  font-size: 0.8625rem;
  line-height: 1.25;
}
.p-outline__row:nth-child(n+6) .p-outline__term {
  width: 5.375rem;
}
@media screen and (min-width: 768px) {
  .p-outline__term {
    width: 14.90625rem;
    min-height: 4.78125rem;
    padding-left: 2.10625rem;
    border-width: 0.1375rem;
    border-radius: 3.5125rem;
    font-size: 1.3125rem;
  }
  .p-outline__row:nth-child(n+6) .p-outline__term {
    width: 14.90625rem;
  }
}

@media screen and (min-width: 768px) {
  .p-outline__row:nth-child(5) .p-outline__term {
    min-height: 4.43125rem;
  }
}

.p-outline__desc {
  grid-area: 1/1;
  display: block;
  box-sizing: border-box;
  min-height: calc(var(--bar-h) / 16 * 1rem);
  margin-top: 1.6625rem;
  margin-left: 0.7rem;
  width: 21.25rem;
  padding-top: 1.15rem;
  padding-inline: 0.675rem;
  border-radius: 1.25rem;
  background-color: #ffffff;
  box-shadow: 0 0.184375rem 0.1875rem rgba(0, 0, 0, 0.25);
  color: #000000;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 0.90625rem;
  line-height: 1.24;
  overflow-wrap: anywhere;
}
@media screen and (min-width: 768px) {
  .p-outline__desc {
    display: flex;
    align-items: center;
    width: 74.675rem;
    margin-top: 0;
    margin-left: 0.125rem;
    padding-top: 0;
    padding-right: 1.5rem;
    padding-left: 16.99375rem;
    border-radius: 3.5125rem;
    box-shadow: 0 0.25rem 0.28125rem rgba(0, 0, 0, 0.25);
    font-size: 1.3125rem;
  }
}

.p-outline__desc--jp {
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.03em;
  line-height: 1.76;
  padding-top: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .p-outline__desc--jp {
    padding-top: 0;
  }
}

.p-outline__row:nth-child(1) .p-outline__desc {
  padding-top: 1.275rem;
}

.p-outline__row:nth-child(2) .p-outline__desc {
  padding-top: 0.8125rem;
}

.p-outline__row:nth-child(3) .p-outline__desc {
  margin-top: 1.2875rem;
  padding-top: 1.4rem;
}

.p-outline__row:nth-child(4) .p-outline__desc {
  margin-top: 1.5rem;
  padding-top: 1.0375rem;
}

.p-outline__row:nth-child(6) .p-outline__desc {
  padding-top: 1.3375rem;
}

.p-outline__row:nth-child(7) .p-outline__desc {
  padding-top: 1.0875rem;
}

@media not all and (min-width: 768px) {
  .p-outline__row:nth-child(7) .p-outline__desc {
    padding-inline: 0.4375rem;
  }
}
@media screen and (min-width: 768px) {
  .p-outline__row:nth-child(n) .p-outline__desc {
    margin-top: 0;
    padding-top: 0;
  }
}
.p-outline__desc-line {
  display: block;
}
@media screen and (min-width: 768px) {
  .p-outline__desc-line {
    display: inline;
  }
}

/* ========================================
  下層: company-contact
======================================== */
/* ========================================
  Company / Contact
======================================== */
.c-heading__label--contact::before {
  background-image: url("../images/company/icon-contact.svg");
  width: 1.39375rem;
  height: 1.39375rem;
  margin-left: -1.78125rem;
  margin-right: 0.3875rem;
}
@media screen and (min-width: 768px) {
  .c-heading__label--contact::before {
    width: 2.046875rem;
    height: 2.046875rem;
    margin-left: -2.5625rem;
    margin-right: 0.515625rem;
  }
}

.p-contact {
  margin-top: 3.25rem;
}
@media screen and (min-width: 768px) {
  .p-contact {
    margin-top: 6.325rem;
  }
}

.p-contact__heading {
  position: relative;
  left: -0.18125rem;
  width: 22.4375rem;
  margin-inline: auto;
  padding-top: 1rem;
  font-size: 0;
}
@media screen and (min-width: 768px) {
  .p-contact__heading {
    left: 0.40625rem;
    width: 68.625rem;
    padding-top: 1.34375rem;
  }
}
.p-contact__heading .c-heading__label {
  padding-left: 2.0375rem;
  height: 1.16875rem;
  font-size: 1.0625rem;
  line-height: 1.16875rem;
}
@media screen and (min-width: 768px) {
  .p-contact__heading .c-heading__label {
    padding-left: 1.5rem;
    height: 1.65rem;
    font-size: 1.5rem;
    line-height: 1.65rem;
  }
}
.p-contact__heading .c-heading__en {
  height: 4.33125rem;
  margin-top: 0.69375rem;
  font-size: 3.9375rem;
  line-height: 4.33125rem;
}
@media screen and (min-width: 768px) {
  .p-contact__heading .c-heading__en {
    height: 6.6rem;
    margin-top: 1.05625rem;
    font-size: 6rem;
    line-height: 6.6rem;
  }
}

.p-contact__lead {
  position: relative;
  left: -0.13125rem;
  margin-top: 0.99375rem;
  font-size: 0.83125rem;
}
@media screen and (min-width: 768px) {
  .p-contact__lead {
    left: 0.4125rem;
    margin-top: 1.4375rem;
    font-size: 1.375rem;
  }
}

.p-contact__form {
  width: 22.6875rem;
  margin: 3.075rem auto 0;
}
@media screen and (min-width: 768px) {
  .p-contact__form {
    width: 75rem;
    margin-top: 4.025rem;
  }
}

.p-contact__field + .p-contact__field {
  margin-top: 0.7125rem;
}
@media screen and (min-width: 768px) {
  .p-contact__field + .p-contact__field {
    margin-top: 1.0125rem;
  }
}
@media screen and (min-width: 768px) {
  .p-contact__field:first-of-type + .p-contact__field, .p-contact__field:first-of-type + .p-contact__field + .p-contact__field {
    margin-top: 0.8875rem;
  }
}

.p-contact__form .wpcf7-form-control-wrap {
  display: block;
}

.p-contact__form .wpcf7-not-valid-tip {
  margin-top: 0.375rem;
  color: #d63638;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .p-contact__form .wpcf7-not-valid-tip {
    font-size: 0.875rem;
  }
}

.p-contact__form .wpcf7-response-output {
  margin: 1.5rem 0 0;
  padding: 0.75rem 1rem;
  border-width: 1px;
  border-radius: 0.375rem;
  color: #303030;
  font-size: 0.8125rem;
  line-height: 1.6;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-contact__form .wpcf7-response-output {
    font-size: 0.9375rem;
  }
}

.p-contact__form .wpcf7-spinner {
  display: block;
  margin: 0.75rem auto 0;
}

.p-contact__field:has([required], [aria-required=true]) .p-contact__label::after {
  content: "*";
  margin-left: 0.3em;
  color: #e02020;
}

.p-contact__label {
  display: block;
  color: #303030;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.89375rem;
  font-weight: 700;
  line-height: 2.54375rem;
}
@media screen and (min-width: 768px) {
  .p-contact__label {
    font-size: 1.3125rem;
    line-height: 3.6875rem;
  }
}

.p-contact__input,
.p-contact__select,
.p-contact__textarea {
  display: block;
  width: 100%;
  margin: 0;
  color: #303030;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.7625rem;
  font-weight: 500;
  letter-spacing: 0;
  background-color: #ffffff;
  border: 0.05rem solid #005078;
  border-radius: 0.575rem;
  padding-inline: 0.81875rem;
  outline: 0;
  appearance: none;
  transition: border-color 0.15s ease-out, box-shadow 0.15s ease-out;
}
@media screen and (min-width: 768px) {
  .p-contact__input,
  .p-contact__select,
  .p-contact__textarea {
    font-size: 1.125rem;
    border-width: 0.06875rem;
    border-radius: 0.84375rem;
    padding-inline: 1.1125rem;
  }
}
.p-contact__input::placeholder,
.p-contact__select::placeholder,
.p-contact__textarea::placeholder {
  color: #aeaeae;
  opacity: 1;
}
.p-contact__input:focus-visible,
.p-contact__select:focus-visible,
.p-contact__textarea:focus-visible {
  border-color: #005078;
  box-shadow: 0 0 0 0.0875rem #005078;
}

.p-contact__input,
.p-contact__select {
  height: 2.125rem;
}
@media screen and (min-width: 768px) {
  .p-contact__input,
  .p-contact__select {
    height: 3.125rem;
  }
}

.p-contact__select {
  padding-right: 2rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15.8 7.9' fill='none' stroke='%23005078' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l6.9 5.8L14.8 1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.64375rem center;
  background-size: 0.66875rem 0.3375rem;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .p-contact__select {
    padding-right: 3.125rem;
    background-position: right 1.25625rem center;
    background-size: 0.9875rem 0.49375rem;
  }
}

.p-contact__textarea {
  height: 9.625rem;
  padding-top: 0.775rem;
  padding-bottom: 0.775rem;
  line-height: 1.5;
  resize: vertical;
}
@media screen and (min-width: 768px) {
  .p-contact__textarea {
    height: 14.125rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    border-radius: 1.40625rem;
  }
}
@media not all and (min-width: 768px) {
  .p-contact__textarea {
    border-radius: 0.95625rem;
  }
}

.p-contact__submit {
  position: relative;
  left: -0.2875rem;
  width: 22.24375rem;
  height: 3.06875rem;
  margin: 2.14375rem auto 0;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .p-contact__submit {
    left: 0.43125rem;
    width: 32.6875rem;
    height: 4.5125rem;
    margin-top: 3.84375rem;
  }
}

/* ========================================
  下層: company-recruit
======================================== */
/* ========================================
  Company / Recruit
======================================== */
.c-heading__label--recruit::before {
  background-image: url("../images/company/icon-recruit.svg");
  width: 1.5625rem;
  height: 1.5625rem;
  margin-left: -1.78125rem;
  margin-right: 0.21875rem;
}
@media screen and (min-width: 768px) {
  .c-heading__label--recruit::before {
    width: 2.25rem;
    height: 2.25rem;
    margin-left: -2.5625rem;
    margin-right: 0.3125rem;
  }
}

.p-recruit {
  position: relative;
  width: 23.41875rem;
  margin: 2.153125rem auto 0.865625rem;
  padding-top: 3.9375rem;
  min-height: 28.9375rem;
  padding-bottom: calc(3.97265625rem - 1px);
  background: url("../images/company/recruit-bg-sp.webp") center/100% 100% no-repeat;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-recruit {
    width: 86.8375rem;
    min-height: 34.7rem;
    padding-bottom: calc(5.0623046875rem - 1px);
    margin: 8.2rem auto 2.84375rem;
    padding-top: 4.40625rem;
    padding-right: 1.125rem;
    background-image: url("../images/company/recruit-bg.webp");
  }
}

.p-recruit__heading {
  position: relative;
  left: 0.25rem;
  width: 22.5rem;
  margin-inline: auto;
  font-size: 0;
}
@media screen and (min-width: 768px) {
  .p-recruit__heading {
    left: 0;
    width: 68.625rem;
  }
}
.p-recruit__heading .c-heading__label,
.p-recruit__heading .c-heading__en {
  color: #ffffff;
}
.p-recruit__heading .c-heading__label {
  height: 1.16875rem;
  font-size: 1.0625rem;
  line-height: 1.16875rem;
}
@media screen and (min-width: 768px) {
  .p-recruit__heading .c-heading__label {
    height: 1.65rem;
    font-size: 1.5rem;
    line-height: 1.65rem;
  }
}
.p-recruit__heading .c-heading__en {
  height: 4.33125rem;
  margin-top: 0.69375rem;
  font-size: 3.9375rem;
  line-height: 4.33125rem;
}
@media screen and (min-width: 768px) {
  .p-recruit__heading .c-heading__en {
    height: 6.6rem;
    margin-top: 1.05625rem;
    font-size: 6rem;
    line-height: 6.6rem;
  }
}

.p-recruit__text {
  padding-left: 0.4375rem;
  margin-top: 1.21875rem;
  color: #ffffff;
  font-size: 0.9125rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.76;
  line-break: strict;
}
@media screen and (min-width: 768px) {
  .p-recruit__text {
    padding-left: 0;
    margin-top: 1.5125rem;
    font-size: 1.3125rem;
  }
}

.p-recruit__br--pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-recruit__br--pc {
    display: inline;
  }
}

@media screen and (min-width: 768px) {
  .p-recruit__br--sp {
    display: none;
  }
}

.p-recruit__button {
  width: 17.44375rem;
  height: 3.125rem;
  margin: 2.46875rem auto 0;
}
@media screen and (min-width: 768px) {
  .p-recruit__button {
    width: 32.6875rem;
    height: 4.5125rem;
    margin-top: 2.975rem;
  }
}

.p-contact__submit,
.p-recruit__button {
  box-shadow: 0 0.17rem 0.04375rem #005078;
}
@media screen and (min-width: 768px) {
  .p-contact__submit,
  .p-recruit__button {
    box-shadow: 0 0.2225rem 0.0625rem #005078;
  }
}
.p-contact__submit:active,
.p-recruit__button:active {
  transform: translateY(0.17rem);
  box-shadow: 0 0 0 #005078;
}
@media screen and (min-width: 768px) {
  .p-contact__submit:active,
  .p-recruit__button:active {
    transform: translateY(0.2225rem);
  }
}
@media (any-hover: hover) {
  .p-contact__submit:hover,
  .p-recruit__button:hover {
    transform: translateY(0.17rem);
    box-shadow: 0 0 0 #005078;
  }
}
@media screen and (any-hover: hover) and (min-width: 768px) {
  .p-contact__submit:hover,
  .p-recruit__button:hover {
    transform: translateY(0.2225rem);
  }
}

/* ========================================
  下層: privacy
======================================== */
/* ========================================
  Privacy（プライバシーポリシー）
======================================== */
.p-privacy {
  padding-top: 7.4375rem;
  padding-bottom: 2.875rem;
}
@media screen and (min-width: 768px) {
  .p-privacy {
    padding-top: 12.5125rem;
    padding-bottom: 5.13125rem;
  }
}

.p-privacy__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 6.125rem;
  padding-block: calc(0.8955078125rem - 0.5px);
  color: #005078;
  font-weight: 900;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-privacy__head {
    min-height: 8.7875rem;
    padding-block: max(0px, 0.169140625rem - 0.5px);
  }
}

.p-privacy__title {
  position: relative;
  top: -0.1875rem;
  font-size: 2.125rem;
  font-weight: 900;
  line-height: 1.1003;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  .p-privacy__title {
    top: -0.2125rem;
    font-size: 5.0625rem;
  }
}

.p-privacy__sub {
  position: relative;
  top: 0.125rem;
  font-size: 1.04rem;
  line-height: 1.92;
}
@media screen and (min-width: 768px) {
  .p-privacy__sub {
    top: 0;
    font-size: 1.5rem;
  }
}

.p-privacy__body {
  width: calc(100% - 1.875rem);
  max-width: 74.2875rem;
  margin: 2rem auto 0;
  color: #000000;
  font-size: 0.90625rem;
  font-weight: 500;
  line-height: 1.7931034483;
  letter-spacing: 0.03em;
  line-break: strict;
}
@media screen and (min-width: 768px) {
  .p-privacy__body {
    margin-top: 4.21875rem;
    font-size: 1.265625rem;
    line-height: 1.7777777778;
  }
}

.p-privacy__clause {
  margin-top: 1.7931034483em;
}
@media screen and (min-width: 768px) {
  .p-privacy__clause {
    margin-top: 1.7777777778em;
  }
}

.p-privacy__heading {
  font-size: inherit;
  font-weight: 700;
}

.p-privacy__text--gap {
  margin-top: 1.7931034483em;
}
@media screen and (min-width: 768px) {
  .p-privacy__text--gap {
    margin-top: 1.7777777778em;
  }
}

.p-privacy__list {
  list-style: decimal inside;
}
.p-privacy__list li {
  text-indent: 1.03em;
}

.p-privacy__button {
  margin: 2rem auto 0;
  width: 20.1875rem;
  height: 3.125rem;
  font-size: 1.04rem;
  box-shadow: 0 0.173125rem 0.04375rem #005078;
}
@media screen and (min-width: 768px) {
  .p-privacy__button {
    padding-right: 0;
    padding-left: 0.125rem;
    margin-top: 4.35625rem;
    width: 32.6875rem;
    height: 4.5125rem;
    font-size: 1.5rem;
    box-shadow: 0 0.2225rem 0.0625rem #005078;
  }
}
.p-privacy__button:active {
  transform: translateY(0.173125rem);
  box-shadow: 0 0 0 #005078;
}
@media screen and (min-width: 768px) {
  .p-privacy__button:active {
    transform: translateY(0.2225rem);
  }
}
@media (any-hover: hover) {
  .p-privacy__button:hover {
    transform: translateY(0.173125rem);
    box-shadow: 0 0 0 #005078;
  }
}
@media screen and (any-hover: hover) and (min-width: 768px) {
  .p-privacy__button:hover {
    transform: translateY(0.2225rem);
  }
}

/* ========================================
  下層: thanks
======================================== */
/* ========================================
  Thanks（送信完了）
======================================== */
.p-thanks {
  padding-top: 7.375rem;
  padding-bottom: 3.23125rem;
}
@media screen and (min-width: 768px) {
  .p-thanks {
    padding-top: 12.44375rem;
    padding-bottom: 5.1375rem;
  }
}

.p-thanks__title {
  color: #005078;
  font-size: 1.525rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.03em;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-thanks__title {
    font-size: 2.18125rem;
    line-height: 1;
  }
}

.p-thanks__title .u-underline-dotted {
  text-underline-offset: 0.40625rem;
}
@media screen and (min-width: 768px) {
  .p-thanks__title .u-underline-dotted {
    text-decoration-thickness: 0.140625rem;
    text-underline-offset: 0.63125rem;
  }
}

.p-thanks__space {
  display: inline-block;
  width: 0.3em;
}

.p-thanks__br--pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-thanks__br--pc {
    display: inline;
  }
}

@media screen and (min-width: 768px) {
  .p-thanks__br--sp {
    display: none;
  }
}

.p-thanks__text {
  margin-bottom: calc(9.3125rem - 6lh);
  margin-top: 1.88125rem;
  color: #303030;
  font-size: 0.90625rem;
  font-weight: 500;
  line-height: 1.7931034483;
  letter-spacing: 0.03em;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-thanks__text {
    line-height: 1.7619047619;
    margin-bottom: 0;
    min-height: 11.31875rem;
    padding-bottom: calc(0.9125rem - 1px);
    margin-top: 2.66875rem;
    font-size: 1.4765625rem;
  }
}

.p-thanks__text-gap {
  margin-top: 1.7931034483em;
}
@media screen and (min-width: 768px) {
  .p-thanks__text-gap {
    margin-top: 1.7619047619em;
  }
}

.p-thanks__button {
  margin: 1.81875rem auto 0;
  width: 20.4375rem;
  padding-right: 0.4375rem;
  padding-left: 0;
  box-shadow: 0 0.175rem 0.04375rem #005078;
}
@media screen and (min-width: 768px) {
  .p-thanks__button {
    padding-right: 0;
    padding-left: 0.125rem;
    margin-top: 2.6rem;
    width: 32.6875rem;
    box-shadow: 0 0.2225rem 0.0625rem #005078;
  }
}
.p-thanks__button:active {
  transform: translateY(0.175rem);
  box-shadow: 0 0 0 #005078;
}
@media screen and (min-width: 768px) {
  .p-thanks__button:active {
    transform: translateY(0.2225rem);
  }
}
@media (any-hover: hover) {
  .p-thanks__button:hover {
    transform: translateY(0.175rem);
    box-shadow: 0 0 0 #005078;
  }
}
@media screen and (any-hover: hover) and (min-width: 768px) {
  .p-thanks__button:hover {
    transform: translateY(0.2225rem);
  }
}

/* ========================================
  下層: 統合時の調整（目視検査の指摘を画素実測で確かめて反映）
======================================== */
.p-contact__submit {
  padding-left: 1.10625rem;
}
.p-contact__submit .c-button__icon {
  margin-left: 0.8125rem;
}

@media screen and (min-width: 768px) {
  .p-contact__submit,
  .p-recruit__button {
    padding-left: 1.46875rem;
  }
  .p-contact__submit .c-button__icon,
  .p-recruit__button .c-button__icon {
    margin-left: 1.46875rem;
  }
}

@media screen and (min-width: 768px) {
  .p-philosophy .u-underline-dotted,
  .p-contact .c-heading-lead {
    text-decoration-thickness: 0.140625rem;
  }
}

@media screen and (min-width: 768px) {
  .p-philosophy .u-underline-dotted {
    text-underline-offset: 0.453125rem;
  }
}

@media screen and (min-width: 768px) {
  .p-contact .c-heading-lead {
    text-underline-offset: 0.40625rem;
  }
}

.is-company .l-page {
  background-position: 2.5rem 2.1875rem;
}
@media screen and (min-width: 768px) {
  .is-company .l-page {
    background-position: center 0.63125rem;
  }
}

.is-privacy .l-page {
  background-position: 2.5rem 2.375rem;
}
@media screen and (min-width: 768px) {
  .is-privacy .l-page {
    background-size: 2.953125rem 2.953125rem;
    background-position: -0.79125rem -0.703125rem;
  }
}

.is-thanks .l-page {
  background-position: 2.5rem 1.25rem;
}
@media screen and (min-width: 768px) {
  .is-thanks .l-page {
    background-size: 2.953125rem 2.953125rem;
    background-position: -0.79125rem 1.37125rem;
  }
}

/* ========================================
  広い画面（1920px超）
  10/8 本人「1440pxを超えると左右に白い余白が広がるだけ。インナー幅だけ固定で背景は自然と広がるようにしてほしい」
  「カンパニーページのmessage…そこだけ背景広がってる」→ 全セクションを MESSAGE と同じ扱いにそろえる
  - 中身は今までどおり 1920px 幅（1440基準 × 4/3）で中央に置く。位置の基準は変えない
  - 背景（方眼・帯・写真の列・フッター）だけを画面幅いっぱいに広げる
======================================== */
@media screen and (min-width: 1920px) {
  body {
    overflow-x: clip;
  }
  .l-page {
    max-width: none;
    padding-inline: calc((100% - 90rem) / 2);
    background-origin: content-box;
    overflow-x: clip;
  }
  .p-fv,
  .p-service,
  .p-workstyle,
  .p-company-intro {
    overflow-x: visible;
  }
  .p-story::before,
  .p-company-intro__bg,
  .p-sub-head__bg {
    right: auto;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
  }
  .p-company-intro__band,
  .p-sub-head {
    overflow: visible;
    clip-path: inset(0 -100vmax);
  }
  .p-fv__bg::before,
  .p-fv__bg::after {
    content: "";
    position: absolute;
    top: 0;
    width: 50vw;
    height: 100%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
  }
  .p-fv__bg::before {
    right: 100%;
    background-image: url("../images/fv/fv-bg-edge-left.png");
    background-image: image-set(url("../images/fv/fv-bg-edge-left.webp") type("image/webp"), url("../images/fv/fv-bg-edge-left.png") type("image/png"));
  }
  .p-fv__bg::after {
    left: 100%;
    background-image: url("../images/fv/fv-bg-edge-right.png");
    background-image: image-set(url("../images/fv/fv-bg-edge-right.webp") type("image/webp"), url("../images/fv/fv-bg-edge-right.png") type("image/png"));
  }
  .l-header {
    left: 0;
    max-width: none;
    transform: none;
  }
  .l-header__inner {
    padding-left: calc((100% - 90rem) / 2 + 5.0625rem);
    padding-right: calc((100% - 90rem) / 2 + 7.625rem);
  }
  .p-about::before,
  .p-about__bg {
    right: auto;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
  }
  .p-about__bg {
    background-position: center;
    background-size: cover;
  }
  .l-main__rest {
    margin-inline: calc((90rem - 100vw) / 2);
    padding-inline: calc((100vw - 90rem) / 2);
    background-origin: content-box;
  }
  .p-workstyle__photos,
  .p-company-intro__photos {
    left: auto;
    width: 100vw;
    margin-left: calc((90rem - 100vw) / 2);
  }
  .l-footer {
    box-shadow: 0 0 0 100vmax #1a2b5e;
    clip-path: inset(0 -100vmax);
  }
  .l-footer__copyright {
    box-shadow: 0 0 0 100vmax #f59e0b;
    clip-path: inset(0 -100vmax);
  }
}
/* ========================================
  文字の箱の幅の上限（10/20）
  画面いっぱいに広がっていた本文の箱に、左右の余白（SP）と幅の上限（PC）を付ける。文字が増えても際限なく横に広がらず、この幅で折り返す
  中央ぞろえの文は中心が変わらないように、左右の余白は「元のずらし分 ＋ 同じ量」で入れている（今の文言の見た目は変わらない）
======================================== */
.p-about__text {
  padding-inline: 1rem;
}
@media screen and (min-width: 768px) {
  .p-about__text {
    max-width: 40rem;
    margin-inline: auto;
    padding-inline: 0;
  }
}

.p-cta__text {
  padding-right: 1rem;
  padding-left: 1.20625rem;
}
@media screen and (min-width: 768px) {
  .p-cta__text {
    padding-inline: 0;
  }
}

.p-philosophy__closing {
  padding-right: 1rem;
  padding-left: 1.5rem;
}
@media screen and (min-width: 768px) {
  .p-philosophy__closing {
    padding-inline: 0;
  }
}

.p-recruit__text {
  padding-right: 1rem;
  padding-left: 1.4375rem;
}
@media screen and (min-width: 768px) {
  .p-recruit__text {
    max-width: 62.5rem;
    margin-inline: auto;
    padding-inline: 0;
  }
}

.p-thanks__title {
  padding-inline: 1rem;
}
@media screen and (min-width: 768px) {
  .p-thanks__title {
    max-width: 62.5rem;
    margin-inline: auto;
    padding-inline: 0;
  }
}

.p-thanks__text {
  padding-inline: 0.75rem;
}
@media screen and (min-width: 768px) {
  .p-thanks__text {
    max-width: 68.75rem;
    margin-inline: auto;
    padding-inline: 0;
  }
}
