/* ============================================================
   サブスクラップ採用LP — design-tokens.css 準拠
   基準: FV 1699x926 / セクション 1672x941
   ============================================================ */

:root {
  --color-brand-blue: #2838e6;
  --color-brand-blue-deep: #0734ca;
  --color-brand-pink: #ec0e6a;
  --color-brand-green: #2bdd89;
  --color-brand-orange: #f99b22;
  --color-logo-blue: #5a9cb2;
  --color-ink: #121826;
  --color-ink-soft: #3f4756;
  --color-muted: #667085;
  --color-line: #e6eaf1;
  --color-bg: #f8fafc;
  --color-card: #ffffff;
  --container-max: 90rem;
  --radius-lg: 1.5rem;
  --radius-xl: 2.25rem;
  --radius-pill: 999px;
  --shadow-card: 0 1.25rem 3.5rem rgba(28, 50, 95, 0.09);
  --font-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --font-en: "Inter", "Noto Sans JP", sans-serif;
}

/* ===== Soft fade-in ===== */
[data-reveal] {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity .78s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay, 0ms),
    transform .78s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

[data-reveal].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
body {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-jp);
  font-size: 16px;
  line-height: 1.9;
  background: #fff;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}
.skip-link {
  position: fixed; left: 8px; top: -72px; z-index: 200;
  padding: 10px 18px; background: var(--color-brand-blue); color: #fff;
  border-radius: 8px; transition: top .2s;
}
.skip-link:focus, .skip-link:focus-visible { top: 8px; }

:focus-visible { outline: 3px solid var(--color-brand-blue); outline-offset: 2px; }

.container {
  width: min(100% - 48px, 1456px);
  margin-inline: auto;
  position: relative;
  z-index: 2;
}

.section { position: relative; isolation: isolate; overflow: hidden; }

/* icon via mask (currentColorの代替: background-colorで着色) */
.icon {
  display: inline-block; width: 100%; height: 100%;
  background-color: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}
.icon--pink { color: var(--color-brand-pink); }
.icon--green { color: var(--color-brand-green); }
.icon--blue { color: var(--color-brand-blue); }
.icon--orange { color: var(--color-brand-orange); }

/* 装飾ドット共通 */
.dot {
  position: absolute; width: 12px; height: 12px; border-radius: 50%;
  pointer-events: none;
}
.dot--sm { width: 9px; height: 9px; }
.dot--lg { width: 16px; height: 16px; }
.dot--pink { background: var(--color-brand-pink); }
.dot--green { background: var(--color-brand-green); }
.dot--blue { background: var(--color-brand-blue); }
.dot--orange { background: var(--color-brand-orange); }

/* 情報より装飾が目立つ小ドットのみ削る（意味のあるアイコンは表示する） */
.section .dot,
.work__row-dot {
  display: none;
}

/* 背景英字 */
.bg-word {
  position: absolute; z-index: 0; margin: 0;
  font-family: var(--font-en); font-weight: 300;
  color: rgba(18, 24, 38, 0.045);
  white-space: nowrap; pointer-events: none; line-height: 1;
  user-select: none;
}

/* 見出し脇のピンク3本線 */
.title-wrap { position: relative; display: inline-block; }
.title-wrap--center { display: block; text-align: center; }
.rays {
  display: none;
  position: absolute; left: -18px; top: -20px;
  width: 52px; height: 43px; pointer-events: none;
  background-color: var(--color-brand-pink);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M12 2v4M4.9 4.9l2.8 2.8M2 12h4%22/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M12 2v4M4.9 4.9l2.8 2.8M2 12h4%22/%3E%3C/svg%3E") center / contain no-repeat;
  transform: rotate(-12deg);
}
.title-wrap--center .rays { left: calc(50% - 200px); top: -24px; }

.section-label {
  font-family: var(--font-en); font-size: 15px; font-weight: 700;
  letter-spacing: .28em; margin-bottom: 14px;
  color: var(--color-brand-blue);
}
.section-label--green { color: var(--color-brand-blue); }
.section-label--blue { color: var(--color-brand-blue); }
.section-label--center { text-align: center; }
.section-label__bar { display: none; }

.about__title,
.work__title,
.points__title,
.career__title,
.schedule__title,
.req__title,
.jobs__title,
.env__title,
.faq__title,
.news__title {
  color: var(--color-ink);
  font-size: clamp(32px, 2.75vw, 46px);
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.3;
}

.about__title strong,
.work__title strong,
.points__title strong,
.career__title strong,
.schedule__title strong,
.req__title strong,
.jobs__title strong,
.env__title strong,
.faq__title strong,
.news__title strong {
  color: var(--color-brand-blue);
}

.about__title::after,
.work__title::after,
.points__title::after,
.career__title::after,
.req__title::after,
.jobs__title::after,
.env__title::after,
.faq__title::after,
.news__title::after {
  content: "";
  display: block;
  width: 46px;
  height: 5px;
  margin: 18px 0 0;
  border-radius: 999px;
  background: var(--color-brand-blue);
}

.title-wrap--center .jobs__title::after,
.career__title::after,
.req__title::after {
  margin-left: auto;
  margin-right: auto;
}

/* ボタン */
.btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-width: 320px; min-height: 58px; padding: 8px 34px;
  background: var(--color-brand-blue); color: #fff;
  border-radius: var(--radius-pill);
  font-weight: 700; font-size: 16px; letter-spacing: .08em;
  box-shadow: 0 12px 26px rgba(40, 56, 230, .25);
  transition: background-color .2s, transform .2s;
}
.btn-primary:hover { background: var(--color-brand-blue-deep); transform: translateY(-2px); }
.btn-primary--block { width: 100%; min-width: 0; }
.btn-outline {
  display: inline-flex; align-items: center; gap: 12px;
  min-height: 50px; padding: 6px 32px;
  border: 1.5px solid var(--color-brand-blue); color: var(--color-brand-blue);
  background: #fff; border-radius: var(--radius-pill);
  font-weight: 700; letter-spacing: .08em;
  transition: background-color .2s, color .2s;
}
.btn-outline:hover { background: var(--color-brand-blue); color: #fff; }

/* ============ header ============ */
.site-header {
  position: absolute; inset: 0 0 auto; z-index: 50;
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 18px 26px 0 30px;
}
.site-logo img { width: 88px; height: auto; display: block; }
.menu-button {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  width: 80px; height: 80px; border: 0; border-radius: 50%;
  background: var(--color-brand-blue); color: #fff;
}
.menu-button__bars { display: grid; gap: 5px; }
.menu-button__bars i { display: block; width: 26px; height: 2.5px; background: #fff; border-radius: 2px; }
.menu-button__label { font-family: var(--font-en); font-size: 11px; font-weight: 700; letter-spacing: .08em; }

.nav-overlay {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(14, 22, 36, .5); backdrop-filter: blur(8px);
}
.nav-overlay__panel {
  margin-left: auto; width: min(430px, 100%); min-height: 100%;
  background: #fff; padding: 36px 38px 48px; overflow: auto;
}
.nav-overlay__close {
  display: block; margin: 0 0 26px auto;
  border: 1px solid var(--color-line); background: #fff;
  border-radius: var(--radius-pill); padding: 8px 20px; font-weight: 700; font-size: 13px;
}
.nav-overlay nav li { border-top: 1px solid var(--color-line); }
.nav-overlay nav li:last-child { border-bottom: 1px solid var(--color-line); }
.nav-overlay nav a {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 56px; font-weight: 700; font-size: 16px;
}
.nav-overlay nav a::after { content: "→"; color: var(--color-brand-blue); font-family: var(--font-en); }

/* ============ 01 about ============ */
.about { background: #fff; padding: clamp(90px, 10vw, 168px) 0 clamp(64px, 5.7vw, 96px); }
.bg-word--about { left: 6%; top: 22px; font-size: clamp(64px, 8.6vw, 145px); }
.bg-word--about { color: rgba(18, 24, 38, 0.022); }
.about__decor { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.about__orange-circle {
  position: absolute; left: -4%; top: 42%; width: 172px; height: 172px; border-radius: 50%;
  background: conic-gradient(from 90deg, rgba(249, 155, 34, .68) 0 75%, transparent 75%);
}
.about__orange-dotted {
  position: absolute; right: -2%; bottom: 7%; width: 138px; height: 138px; border-radius: 50%;
  background-image: radial-gradient(circle, rgba(249, 155, 34, .62) 2px, transparent 2.6px);
  background-size: 10px 10px;
  background-color: rgba(249, 155, 34, .62);
}
.about__dots { position: absolute; background-image: radial-gradient(circle, #c9d6e8 1.8px, transparent 2.4px); background-size: 12px 12px; opacity: .18; }
.about__dots--left { left: 0; top: 8%; width: 7%; height: 46%; }
.about__dots--right { right: 0; top: 2%; width: 13%; height: 30%; }
.about__band { position: absolute; right: 14%; top: -10%; width: 72px; height: 70%; background: rgba(224, 235, 247, .34); transform: skewX(-24deg); }
.about__lead-row {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(520px, 1fr);
  align-items: center; gap: clamp(42px, 5.2vw, 86px);
  width: min(100%, 1300px); margin-inline: auto;
}
.about__copy { max-width: 575px; }
.about__title { font-size: clamp(34px, 2.75vw, 46px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; margin-bottom: 30px; }
.about__text { font-size: clamp(15px, 1.15vw, 19px); font-weight: 400; letter-spacing: .045em; }
.about__text + .about__text { margin-top: 26px; }
.about__photo { aspect-ratio: 1280 / 750; overflow: hidden; border-radius: 18px; box-shadow: 0 8px 18px rgba(10, 26, 50, .2); }
.about__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.about__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
.about__card {
  min-height: 286px; padding: 32px 28px 28px;
  background: rgba(255, 255, 255, .95); border: 1px solid rgba(225, 229, 235, .85);
  border-radius: 18px; box-shadow: var(--shadow-card);
}
.about__card-head { display: flex; align-items: center; justify-content: flex-start; min-height: 52px; }
.about__num { font-family: var(--font-en); font-size: 50px; font-weight: 400; line-height: 1; }
.about__num--pink { color: var(--color-brand-pink); }
.about__num--green { color: var(--color-brand-green); }
.about__num--blue { color: var(--color-brand-blue); }
.about__num--orange { color: var(--color-brand-orange); }
.icon--card { width: 52px; height: 52px; opacity: .78; }
.about__card h3 {
  margin: 20px 0 16px; padding-bottom: 15px; border-bottom: 1px solid var(--color-line);
  font-size: 20px; font-weight: 700; letter-spacing: .025em; line-height: 1.55;
}
.about__card p { font-size: 15px; font-weight: 400; letter-spacing: .015em; }

/* ============ 02 work ============ */
.work { background: #fff; padding: clamp(60px, 5.7vw, 96px) 0; }
.bg-word--work { right: -1%; top: 10px; font-size: clamp(70px, 9.6vw, 160px); font-style: italic; }
.work__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.work__dots { position: absolute; background-image: radial-gradient(circle, #d5dbe6 2px, transparent 2.5px); background-size: 11px 11px; opacity: .5; }
.work__dots--left { left: 0; top: 0; width: 5%; height: 70%; }
.work__dots--right { right: 0; top: 34%; width: 4%; height: 66%; }
.work__orange-circle {
  position: absolute; right: -2%; bottom: 4%; width: 170px; height: 170px; border-radius: 50%;
  background: var(--color-brand-orange);
}
.work__title { font-size: clamp(34px, 2.75vw, 46px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; }
.work__title strong { color: var(--color-brand-blue); }
.work__subtitle { margin-top: 10px; font-size: 15px; font-weight: 700; letter-spacing: .14em; color: var(--color-ink-soft); }
.work__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 30px; }
.work__card {
  background: #fff; border: 1px solid var(--color-line); border-radius: 18px;
  box-shadow: var(--shadow-card); padding-bottom: 26px; overflow: hidden;
}
.work__card-photo { position: relative; aspect-ratio: 640 / 300; margin-bottom: 32px; }
.work__card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.work__badge {
  position: absolute; left: 22px; bottom: -22px; width: 52px; height: 52px;
  display: grid; place-items: center; border-radius: 50%;
  background: #fff; box-shadow: 0 6px 16px rgba(28, 50, 95, .16);
}
.work__badge .icon { width: 26px; height: 26px; }
.work__badge--pink { color: var(--color-brand-pink); }
.work__badge--green { color: var(--color-brand-green); }
.work__badge--blue { color: var(--color-brand-blue); }
.work__card h3 {
  padding: 0 22px; font-size: 18px; font-weight: 700; letter-spacing: .04em;
  margin-bottom: 10px; position: relative;
}
.work__card h3::after { content: ""; display: block; width: 30px; height: 2px; background: var(--color-brand-blue); margin-top: 10px; opacity: .35; }
.work__card p { padding: 0 22px; font-size: 13px; color: var(--color-ink-soft); line-height: 1.9; }
.work__career {
  margin-top: 30px; background: #fff; border: 1px solid var(--color-line);
  border-radius: 18px; box-shadow: var(--shadow-card); padding: 24px 30px 10px;
}
.work__career-title { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 700; letter-spacing: .08em; margin-bottom: 10px; }
.work__career-icon {
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
  background: rgba(40, 56, 230, .08); color: var(--color-brand-blue);
}
.work__career-icon .icon { width: 22px; height: 22px; }
.work__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.work__table thead th {
  text-align: left; font-size: 13px; color: var(--color-muted); font-weight: 700;
  padding: 10px 14px; border-bottom: 1px solid var(--color-line); letter-spacing: .1em;
}
.work__table tbody th, .work__table tbody td { padding: 11px 14px; border-bottom: 1px dashed var(--color-line); text-align: left; vertical-align: top; }
.work__table tbody tr:last-child th, .work__table tbody tr:last-child td { border-bottom: 0; }
.work__table tbody th { width: 30%; font-weight: 700; white-space: nowrap; }
.work__table tbody td { color: var(--color-ink-soft); }
.work__row-dot { width: 9px; height: 9px; border-radius: 50%; margin-right: 12px; vertical-align: 2px; }
.work__row-dot--pink { background: var(--color-brand-pink); }
.work__row-dot--green { background: var(--color-brand-green); }
.work__row-dot--blue { background: var(--color-brand-blue); }
.work__row-dot--orange { background: var(--color-brand-orange); }

/* ============ 03 points ============ */
.points { background: var(--color-bg); padding: clamp(70px, 6.7vw, 112px) 0; }
.bg-word--points { left: -1%; top: 8px; font-size: clamp(80px, 10.7vw, 180px); font-style: italic; }
.points__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.points__orange-circle { position: absolute; left: 2%; top: 16%; width: 130px; height: 130px; border-radius: 50%; background: var(--color-brand-orange); }
.points__green-square { position: absolute; left: 6%; bottom: 6%; width: 88px; height: 88px; background: var(--color-brand-green); }
.points__dots { position: absolute; right: 0; top: 0; width: 17%; height: 55%; background-image: radial-gradient(circle, #d5dbe6 2px, transparent 2.5px); background-size: 11px 11px; opacity: .5; }
.points__grid {
  display: grid; grid-template-columns: minmax(0, 47%) minmax(0, 1fr);
  gap: clamp(40px, 4.8vw, 80px); align-items: center;
}
.points__photo { border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-card); aspect-ratio: 880 / 660; }
.points__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.points__title { font-size: clamp(32px, 2.75vw, 46px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; margin-bottom: 30px; }
.points__list > li {
  display: grid; grid-template-columns: 34px 64px 1fr; align-items: start; gap: 14px;
  padding: 20px 0;
}
.points__list > li:not(:last-child) { border-bottom: 1px solid var(--color-line); }
.points__check { color: var(--color-brand-green); width: 34px; height: 34px; margin-top: 4px; }
.points__no {
  font-family: var(--font-en); font-weight: 500; font-size: 33px; line-height: 1.1;
  color: var(--color-brand-green); position: relative; padding-right: 16px;
}
.points__no::after { content: ""; position: absolute; right: 0; top: 2px; bottom: 2px; width: 1.5px; background: var(--color-line); }
.points__item-body h3 { font-size: 18px; font-weight: 700; letter-spacing: .08em; margin-bottom: 6px; }
.points__item-body p { font-size: 14.5px; color: var(--color-ink-soft); }

/* ============ 04 career ============ */
.career { background: #fff; padding: clamp(82px, 7.2vw, 112px) 0 clamp(72px, 6vw, 96px); }
.career > .container { width: min(calc(100% - 48px), 1236px); }
.bg-word--career { left: 50%; transform: translateX(-50%); top: 4px; font-size: clamp(80px, 10.7vw, 180px); font-style: italic; }
.career__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.career__dots { position: absolute; right: 0; bottom: 0; width: 15%; height: 34%; background-image: radial-gradient(circle, #d5dbe6 2px, transparent 2.5px); background-size: 11px 11px; opacity: .5; }
.career__title { text-align: center; font-size: clamp(32px, 2.5vw, 38px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; }
.career__title strong { color: var(--color-brand-blue); }
.career__lead { text-align: center; margin-top: 14px; color: var(--color-ink-soft); font-size: 15px; }
.career__card {
  margin-top: 38px; background: #fff; border: 1px solid var(--color-line);
  border-radius: 24px; box-shadow: 0 16px 42px rgba(28, 50, 95, .08);
  padding: 52px 80px 60px;
}
.career__steps { display: grid; grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr) 42px minmax(0, 1fr); gap: 0; }
.career__step { min-width: 0; position: relative; }
.career__step:nth-child(1), .career__step:nth-child(3) { border-right: 1px solid var(--color-line); padding-right: 44px; }
.career__step:nth-child(3), .career__step:nth-child(5) { padding-left: 44px; }
.career__step-head { margin-bottom: 14px; }
.career__step-no { font-family: var(--font-en); font-size: 34px; font-weight: 700; color: var(--color-brand-blue); line-height: 1; }
.career__step-main { display: flex; align-items: center; gap: 22px; min-height: 72px; }
.career__step-icon { display: grid; place-items: center; flex: 0 0 68px; width: 68px; height: 68px; border-radius: 50%; background: #f4f7fd; }
.career__step-icon .icon--step { width: 32px; height: 32px; color: var(--color-brand-blue); }
.career__step h3 { font-size: 20px; font-weight: 700; letter-spacing: .08em; line-height: 1.4; margin-bottom: 4px; white-space: nowrap; }
.career__tag {
  display: inline-block; background: #fff; border: 1px solid #d9dde6; color: var(--color-ink-soft);
  font-size: 12px; font-weight: 500; letter-spacing: .04em;
  border-radius: 999px; padding: 3px 13px; margin: 0;
}
.career__step ul li {
  position: relative; padding-left: 18px; font-size: 14px; color: var(--color-ink-soft);
  line-height: 1.8; margin-bottom: 8px;
}
.career__step ul li::before {
  content: ""; position: absolute; left: 0; top: .65em; width: 7px; height: 7px;
  border-radius: 50%; background: var(--color-brand-blue);
}
.career__step ul { border-top: 1px dashed #9eb8ec; margin-top: 26px; padding-top: 22px; min-height: 168px; }
.career__arrow { align-self: start; margin-top: 103px; color: var(--color-brand-blue); font-size: 30px; text-align: center; font-family: var(--font-en); }
.career__note { text-align: center; margin-top: 34px; color: var(--color-ink-soft); font-size: 15px; }
.career__cta-wrap { text-align: center; margin-top: 26px; }

/* ============ 05 schedule ============ */
.schedule { position: relative; isolation: isolate; overflow: hidden; background: var(--color-bg); padding: clamp(56px, 5.7vw, 96px) 0; }
.schedule__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.schedule__circle { position: absolute; border-radius: 50%; }
.schedule__circle--blue { left: 3%; top: 4%; width: 150px; height: 150px; background: var(--color-brand-blue); opacity: .9; }
.schedule__circle--orange { right: -4%; top: 42%; width: 250px; height: 250px; background: var(--color-brand-orange); opacity: .85; }
.schedule__circle--beige { left: -3%; bottom: -12%; width: 260px; height: 260px; background: #f4e3cf; }
.schedule__dots { position: absolute; background-image: radial-gradient(circle, #d5dbe6 2px, transparent 2.5px); background-size: 11px 11px; opacity: .55; }
.schedule__dots--tl { left: 0; top: 0; width: 30%; height: 26%; }
.schedule__dots--br { right: 0; bottom: 0; width: 26%; height: 30%; }
.schedule__card {
  width: min(100%, 1120px); margin-inline: auto;
  background: #fff; border-radius: var(--radius-xl); box-shadow: var(--shadow-card);
  padding: clamp(28px, 3.2vw, 48px) clamp(22px, 4.4vw, 74px);
}
.schedule__title { text-align: center; font-size: clamp(28px, 2.3vw, 38px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; }
.schedule__bar { display: block; width: 46px; height: 5px; background: var(--color-brand-blue); border-radius: 3px; margin: 18px auto 20px; }
.schedule__lead { text-align: center; font-size: 14.5px; color: var(--color-ink-soft); margin-bottom: 22px; }
.schedule__list > li {
  display: grid; grid-template-columns: 110px 40px 1fr; align-items: start;
  padding: 13px 0; position: relative;
}
.schedule__list > li:not(:last-child) { border-bottom: 1px dashed var(--color-line); }
.schedule__time { font-family: var(--font-en); font-size: 27px; font-weight: 700; color: var(--color-brand-blue); line-height: 1.3; }
.schedule__node { position: relative; display: block; height: 100%; }
.schedule__node::before {
  content: ""; position: absolute; left: 50%; top: .62em; width: 11px; height: 11px;
  border-radius: 50%; background: var(--color-brand-blue); transform: translateX(-50%);
}
.schedule__list > li:not(:last-child) .schedule__node::after {
  content: ""; position: absolute; left: 50%; top: calc(.62em + 14px); bottom: -20px;
  width: 2px; background: rgba(40, 56, 230, .35); transform: translateX(-50%);
}
.schedule__body h3 { font-size: 18px; font-weight: 700; letter-spacing: .06em; margin-bottom: 4px; }
.schedule__body p { font-size: 14.5px; color: var(--color-ink-soft); }

/* ============ 06 requirements ============ */
.req { background: #fff; padding: clamp(60px, 5.7vw, 96px) 0; }
.req__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.req__orange-circle { position: absolute; border-radius: 50%; background: var(--color-brand-orange); }
.req__orange-circle--left { left: -3%; top: 34%; width: 210px; height: 210px; }
.req__orange-circle--right { right: -3%; bottom: 8%; width: 230px; height: 230px; }
.req__dots { position: absolute; right: 0; top: 0; width: 22%; height: 34%; background-image: radial-gradient(circle, #d5dbe6 2px, transparent 2.5px); background-size: 11px 11px; opacity: .5; }
.req__band { position: absolute; left: -4%; top: -12%; width: 130px; height: 68%; background: rgba(224, 235, 247, .6); transform: skewX(-24deg); }
.req__title { text-align: center; font-size: clamp(32px, 2.75vw, 46px); font-weight: 700; letter-spacing: .12em; line-height: 1.3; }
.req__lead { text-align: center; margin-top: 14px; font-size: 15px; color: var(--color-ink-soft); }
.req__card {
  display: grid; grid-template-columns: 210px 1fr; gap: 20px;
  width: min(100%, 1240px); margin: 26px auto 0;
  background: #fff; border: 1px solid var(--color-line); border-radius: 20px;
  box-shadow: var(--shadow-card); padding: clamp(22px, 2.4vw, 40px);
}
.req__role { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 18px; padding-top: 18px; }
.req__role-icon {
  display: grid; place-items: center; width: 76px; height: 76px; border-radius: 18px;
  background: rgba(40, 56, 230, .055); color: var(--color-brand-blue);
}
.req__role-icon .icon { width: 36px; height: 36px; }
.req__role-icon img { display: block; width: 38px; height: 38px; }
.req__role h3 { font-size: 26px; font-weight: 700; letter-spacing: .18em; color: var(--color-brand-blue); }
.req__table div { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 9px 6px; }
.req__table div:not(:last-child) { border-bottom: 1px dashed var(--color-line); }
.req__table dt { color: var(--color-brand-blue); font-weight: 700; font-size: 14.5px; }
.req__table dd { font-size: 14.5px; color: var(--color-ink-soft); }
.req__cta-wrap { text-align: center; margin-top: 30px; }

/* ============ 07 jobs ============ */
.jobs { background: var(--color-bg); padding: clamp(60px, 5.7vw, 96px) 0; }
.jobs__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.jobs__orange-circle { position: absolute; left: -2%; top: 22%; width: 150px; height: 150px; border-radius: 50%; background: var(--color-brand-orange); }
.jobs__blue-circle { position: absolute; right: -4%; bottom: 4%; width: 210px; height: 210px; border-radius: 50%; background: var(--color-brand-blue); opacity: .9; }
.jobs__dots { position: absolute; right: 0; top: 44%; width: 12%; height: 40%; background-image: radial-gradient(circle, #d5dbe6 2px, transparent 2.5px); background-size: 11px 11px; opacity: .5; }
.jobs__title { text-align: center; font-size: clamp(32px, 2.75vw, 46px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; }
.jobs__title strong { color: var(--color-brand-blue); }
.jobs__lead { text-align: center; margin-top: 16px; font-size: 15px; color: var(--color-ink-soft); }
.jobs__carousel { position: relative; margin-top: 44px; }
.jobs__list {
  display: flex;
  gap: 24px;
  width: min(100%, 1240px);
  margin-inline: auto;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding-bottom: 8px;
}
.jobs__list::-webkit-scrollbar {
  display: none;
}
.jobs__card {
  background: #fff; border: 1px solid var(--color-line); border-radius: 20px;
  box-shadow: var(--shadow-card); overflow: hidden;
  display: flex; flex-direction: column;
  flex: 0 0 calc((100% - 48px) / 3);
  scroll-snap-align: start;
}
.jobs__photo { aspect-ratio: 720 / 380; margin: 14px 14px 0; border-radius: 12px; overflow: hidden; }
.jobs__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jobs__card-body { display: flex; flex-direction: column; flex: 1; padding: 24px 24px 26px; }
.jobs__card h3 { font-size: 19px; font-weight: 700; letter-spacing: .04em; line-height: 1.55; margin-bottom: 14px; }
.jobs__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.tag {
  display: inline-block; border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 700; padding: 4px 13px; line-height: 1.5;
}
.tag--pink { color: var(--color-brand-pink); background: rgba(236, 14, 106, .09); }
.tag--green { color: #0da864; background: rgba(43, 221, 137, .13); }
.tag--blue { color: var(--color-brand-blue); background: rgba(40, 56, 230, .08); }
.tag--orange { color: #c67208; background: rgba(249, 155, 34, .14); }
.jobs__checks li {
  position: relative; padding-left: 24px; font-size: 13px; color: var(--color-ink-soft);
  margin-bottom: 7px; line-height: 1.65;
}
.jobs__checks li::before {
  content: ""; position: absolute; left: 0; top: .35em; width: 16px; height: 16px;
  background-color: var(--color-brand-blue);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22m8 12 2.6 2.6L16.5 9%22/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22m8 12 2.6 2.6L16.5 9%22/%3E%3C/svg%3E") center / contain no-repeat;
}
.jobs__meta {
  display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; margin: 10px 0 18px;
  border: 1px solid var(--color-line); border-radius: 12px;
}
.jobs__meta p { display: flex; align-items: center; justify-content: flex-start; gap: 8px; font-size: 13px; font-weight: 700; flex: 1 1 0; }
.jobs__meta p + p { border-left: 0; border-top: 1px solid var(--color-line); padding-top: 8px; }
.icon--meta { width: 16px; height: 16px; flex: 0 0 16px; opacity: .85; }
.jobs__nav {
  position: absolute; top: 42%; z-index: 3;
  width: 52px; height: 52px; border-radius: 50%;
  border: 1.5px solid var(--color-brand-blue); background: #fff; color: var(--color-brand-blue);
  display: grid; place-items: center;
  transition: background-color .2s, color .2s;
}
.jobs__nav .icon { width: 18px; height: 18px; }
.jobs__nav:hover { background: var(--color-brand-blue); color: #fff; }
.jobs__nav--prev { left: clamp(4px, 2vw, 40px); }
.jobs__nav--next { right: clamp(4px, 2vw, 40px); }
.jobs__pager { display: flex; justify-content: center; gap: 10px; margin-top: 30px; }
.jobs__pager span { width: 9px; height: 9px; border-radius: 50%; background: #c8cfdd; display: inline-block; }
.jobs__pager span.is-active { background: var(--color-brand-blue); }

/* ============ 08 environment ============ */
.env { background: linear-gradient(255deg, #fdf3e4 0%, #fff 46%); padding: clamp(64px, 5.7vw, 96px) 0; }
.bg-word--env { left: 1%; top: 10px; font-size: clamp(60px, 7.8vw, 130px); font-style: italic; }
.env__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.env__beige-circle { position: absolute; right: -12%; top: 4%; width: 56vw; height: 56vw; max-width: 960px; max-height: 960px; border-radius: 50%; background: rgba(250, 227, 194, .55); }
.env__orange-circle { position: absolute; right: 24%; top: -7%; width: 170px; height: 170px; border-radius: 50%; background: var(--color-brand-orange); opacity: .9; }
.env__dots { position: absolute; background-image: radial-gradient(circle, #e3cfae 2.2px, transparent 2.8px); background-size: 11px 11px; opacity: .55; }
.env__dots--left { left: 0; top: 20%; width: 4%; height: 60%; }
.env__dots--bottom { left: 12%; bottom: 0; width: 60%; height: 10%; }
.env__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 46%); gap: clamp(40px, 4.6vw, 76px); align-items: center; }
.env__title { font-size: clamp(32px, 2.75vw, 46px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; }
.env__lead { margin-top: 18px; font-size: 15px; color: var(--color-ink-soft); margin-bottom: 30px; }
.env__list {
  background: #fff; border-radius: 18px; box-shadow: var(--shadow-card);
  padding: 6px 28px;
}
.env__list > li {
  display: grid; grid-template-columns: 50px 205px 1fr; gap: 16px; align-items: center;
  padding: 16px 0;
}
.env__list > li:not(:last-child) { border-bottom: 1px solid rgba(18, 24, 38, .09); }
.env__icon {
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px;
}
.env__icon--pink { background: rgba(236, 14, 106, .1); }
.env__icon--green { background: rgba(43, 221, 137, .14); }
.env__icon--blue { background: rgba(40, 56, 230, .08); }
.env__icon--orange { background: rgba(249, 155, 34, .14); }
.env__icon .icon { width: 21px; height: 21px; }
.env__icon--pink { color: var(--color-brand-pink); }
.env__icon--green { color: var(--color-brand-green); }
.env__icon--blue { color: var(--color-brand-blue); }
.env__icon--orange { color: var(--color-brand-orange); }
.env__list h3 { font-size: 18px; font-weight: 700; letter-spacing: .05em; }
.env__list p { font-size: 13.5px; color: var(--color-ink-soft); line-height: 1.8; }
.env__photo { border-radius: 20px; overflow: hidden; box-shadow: var(--shadow-card); aspect-ratio: 880 / 990; }
.env__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; display: block; }

/* ============ 09 message ============ */
.msg { background: var(--color-bg); padding: clamp(80px, 6.7vw, 112px) 0; }
.bg-word--msg { left: 0; top: 0; font-size: clamp(90px, 12.5vw, 210px); font-style: italic; }
.msg__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.msg__circle { position: absolute; border-radius: 50%; }
.msg__circle--blue { right: 4%; top: 6%; width: 120px; height: 120px; background: var(--color-brand-blue); }
.msg__circle--green { right: -3%; bottom: -8%; width: 220px; height: 220px; background: var(--color-brand-green); }
.msg__circle--orange { left: -2%; bottom: 12%; width: 120px; height: 120px; background: var(--color-brand-orange); }
.msg__circle--pink { left: 30%; bottom: -3%; width: 44px; height: 44px; background: var(--color-brand-pink); opacity: .85; }
.msg__card {
  width: min(100%, 1340px); margin-inline: auto;
  background: #fff; border-radius: 72px; box-shadow: var(--shadow-card);
  padding: clamp(36px, 4.4vw, 72px) clamp(26px, 5.6vw, 96px);
}
.msg__profile { display: block; margin-bottom: 34px; }
.msg__avatar { width: 132px; height: 132px; border-radius: 50%; object-fit: cover; flex: 0 0 132px; }
.msg__label { color: var(--color-brand-pink); font-size: 14px; font-weight: 700; letter-spacing: .18em; margin-bottom: 6px; }
.msg__name { font-size: 28px; font-weight: 700; letter-spacing: .14em; line-height: 1.4; }
.msg__org { color: var(--color-muted); font-size: 13.5px; letter-spacing: .1em; }
.msg__heading-wrap { position: relative; display: inline-block; }
.msg__heading { font-size: clamp(24px, 2vw, 32px); font-weight: 700; letter-spacing: .1em; margin-bottom: 24px; }
.msg__spark { position: absolute; right: -44px; top: -18px; width: 34px; height: 34px; color: var(--color-brand-green); transform: scaleX(-1) rotate(-10deg); }
.msg__body p { font-size: 15px; color: var(--color-ink-soft); line-height: 1.9; }
.msg__body p + p { margin-top: 20px; }

/* ============ 10 faq / news / footer ============ */
.faq { background: #fff; padding: clamp(70px, 5.7vw, 96px) 0; }
.bg-word--faq { left: 3%; top: 6px; font-size: clamp(70px, 8.4vw, 140px); font-style: italic; }
.faq__decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.faq__green-circle { position: absolute; left: -2%; top: 42%; width: 110px; height: 110px; border-radius: 50%; background: var(--color-brand-green); }
.faq__blue-circle { position: absolute; right: -3%; top: auto; bottom: 6%; width: 120px; height: 120px; border-radius: 50%; background: var(--color-brand-blue); opacity: .9; }
.faq__grid { display: grid; grid-template-columns: minmax(0, 30%) 1fr; gap: clamp(30px, 3.8vw, 64px); align-items: start; }
.faq__title { font-size: clamp(28px, 2.3vw, 38px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; margin: 44px 0 20px; }
.faq__intro p { font-size: 14px; color: var(--color-ink-soft); }
.faq__item { border: 1px solid var(--color-line); border-radius: 14px; background: #fff; box-shadow: 0 8px 22px rgba(28, 50, 95, .05); }
.faq__item + .faq__item { margin-top: 14px; }
.faq__item h3 { font-size: inherit; font-weight: inherit; }
.faq__q {
  display: flex; align-items: center; gap: 16px; width: 100%;
  background: none; border: 0; text-align: left;
  padding: 19px 22px; font-size: 15.5px; font-weight: 700; color: var(--color-ink);
}
.faq__item.is-open .faq__q { color: var(--color-brand-blue); }
.faq__q-icon { position: relative; flex: 0 0 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--color-brand-blue); }
.faq__q-icon::before, .faq__q-icon::after {
  content: ""; position: absolute; left: 50%; top: 50%; background: var(--color-brand-blue);
  transform: translate(-50%, -50%);
}
.faq__q-icon::before { width: 11px; height: 1.8px; }
.faq__q-icon::after { width: 1.8px; height: 11px; }
.faq__item.is-open .faq__q-icon { background: var(--color-brand-blue); }
.faq__item.is-open .faq__q-icon::before { background: #fff; }
.faq__item.is-open .faq__q-icon::after { display: none; }
.faq__chev {
  margin-left: auto; flex: 0 0 14px; height: 14px;
  background-color: var(--color-muted);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22m5 9 7 7 7-7%22/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22m5 9 7 7 7-7%22/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .25s;
}
.faq__item.is-open .faq__chev { transform: rotate(180deg); }
.faq__a { padding: 16px 24px 18px 64px; background: #f3f6fb; border-radius: 0 0 14px 14px; }
.faq__a p { font-size: 14.5px; color: var(--color-ink-soft); }

.news { position: relative; isolation: isolate; overflow: hidden; background: var(--color-bg); padding: clamp(56px, 5.7vw, 96px) 0; }
.bg-word--news { left: 3%; top: 4px; font-size: clamp(70px, 8.4vw, 140px); font-style: italic; }
.news__grid { display: grid; grid-template-columns: minmax(0, 30%) 1fr; gap: clamp(30px, 3.8vw, 64px); align-items: start; }
.news__title { font-size: clamp(28px, 2.3vw, 38px); font-weight: 700; letter-spacing: .08em; line-height: 1.3; margin: 40px 0 18px; }
.news__intro p { font-size: 14px; color: var(--color-ink-soft); }
.news__list li { border-bottom: 1px solid var(--color-line); }
.news__list li:first-child { border-top: 1px solid var(--color-line); }
.news__list a {
  display: grid; grid-template-columns: 96px 88px 1fr 20px; gap: 20px; align-items: center;
  padding: 19px 6px; transition: background-color .2s;
}
.news__list a:hover { background: rgba(40, 56, 230, .04); }
.news__list time { font-family: var(--font-en); font-size: 14px; color: var(--color-ink-soft); }
.tag--blue-fill { background: var(--color-brand-blue); color: #fff; text-align: center; }
.tag--green-fill { background: var(--color-brand-green); color: #fff; text-align: center; }
.news__item-title { font-size: 14.5px; font-weight: 500; }
.icon--news { width: 14px; height: 14px; color: var(--color-brand-blue); }
.news__more-wrap { text-align: center; margin-top: 28px; }

.footer { background: var(--color-brand-blue); color: #fff; padding: 44px 0 0; position: relative; }
.footer__grid { display: grid; grid-template-columns: 300px 1fr 250px; gap: clamp(24px, 3.4vw, 60px); align-items: start; }
.footer__logo { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.footer__logo-mark { display: grid; place-items: center; width: 64px; height: 64px; background: #fff; border-radius: 12px; padding: 6px; } .footer__logo-mark img { width: 100%; height: auto; }
.footer__logo-text { font-size: 19px; font-weight: 900; letter-spacing: .1em; line-height: 1.3; }
.footer__logo-text small { display: block; font-family: var(--font-en); font-size: 10px; font-weight: 600; letter-spacing: .28em; opacity: .8; }
.footer__tagline { font-size: 14px; line-height: 2; opacity: .95; margin-bottom: 18px; }
.footer__arrow {
  display: block; width: 46px; height: 54px;
  background: var(--color-brand-green);
  clip-path: polygon(0 0, 45% 0, 100% 50%, 45% 100%, 0 100%, 52% 50%);
}
.footer__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.footer__col-title { font-size: 14.5px; font-weight: 700; letter-spacing: .08em; margin-bottom: 14px; }
.footer__col ul li { margin-bottom: 9px; }
.footer__col ul a { font-size: 13px; opacity: .82; transition: opacity .2s; }
.footer__col ul a:hover { opacity: 1; text-decoration: underline; }
.footer__cta a {
  display: grid; grid-template-columns: 30px 1fr 34px; align-items: center; gap: 12px;
  background: #fff; color: var(--color-brand-blue);
  border-radius: 14px; padding: 18px 18px; font-size: 15px; font-weight: 700;
  line-height: 1.5; box-shadow: 0 12px 26px rgba(7, 20, 90, .3);
  transition: transform .2s;
}
.footer__cta a:hover { transform: translateY(-2px); }
.icon--mail { width: 24px; height: 24px; }
.footer__cta-arrow {
  display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
  background: var(--color-brand-blue); color: #fff;
}
.footer__cta-arrow .icon { width: 12px; height: 12px; }
.footer__copy { text-align: center; font-size: 12px; opacity: .75; padding: 30px 0 22px; margin-top: 26px; }

/* ============ responsive ============ */
@media (max-width: 1279px) {
  .fv__inner { grid-template-columns: 1fr 1fr; }
  .about__lead-row { grid-template-columns: 1fr 1fr; gap: 40px; }
  .about__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .points__grid { grid-template-columns: 1fr; }
  .points__green-square { display: none; }
  .env__grid { grid-template-columns: 1fr; }
  .env__photo { max-width: 640px; margin-inline: auto; }
  .faq__grid, .news__grid { grid-template-columns: 1fr; }
  .faq__title, .news__title { margin-top: 20px; }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__cta a { max-width: 340px; }
}

/* タブレット帯域の調整 */
@media (min-width: 768px) and (max-width: 1099px) {
  .jobs__nav { display: none; }
  .jobs__card { flex-basis: calc((100% - 24px) / 2); }
}
@media (min-width: 768px) and (max-width: 991px) {
  .career__steps { grid-template-columns: 1fr; max-width: 640px; margin-inline: auto; }
  .career__step:nth-child(1), .career__step:nth-child(3), .career__step:nth-child(5) {
    border-right: 0; padding-left: 0; padding-right: 0;
  }
  .career__step ul { min-height: 0; }
  .career__arrow {
    width: 32px; height: 32px; justify-self: center;
    transform: rotate(90deg); margin: 6px 0; padding: 4px 0;
  }
}

@media (max-width: 767px) {
  body { font-size: 15px; }
  .container { width: min(100% - 40px, 1456px); }
  .site-header { padding: 12px 14px 0 16px; }
  .site-logo img { width: 64px; }
  .menu-button { width: 64px; height: 64px; }

  .fv { min-height: 0; }
  .fv__inner { grid-template-columns: 1fr; padding-block: 96px 48px; gap: 30px; }
  .fv__collage { order: -1; }
  .fv__title { font-size: clamp(36px, 10.2vw, 44px); }
  .fv__kicker { font-size: 17px; }
  .fv__lead { justify-content: center; white-space: normal; }
  .fv__lead::before, .fv__lead::after { flex-basis: 20px; }
  .fv__copy { text-align: center; }
  .fv__features { margin-bottom: 34px; }
  .fv__feature-icon { width: 48px; height: 48px; }
  .fv__feature-icon .icon { width: 24px; height: 24px; }
  .fv__feature-text { font-size: 12px; }
  .fv__cta { margin-inline: auto; width: 100%; }
  .fv__city { opacity: .3; }

  .about__lead-row { grid-template-columns: 1fr; }
  .about__photo { order: -1; }
  .about__text br, .about__card p br, .env__lead br, .jobs__lead br { display: none; }
  .about__cards { grid-template-columns: 1fr; gap: 16px; }
  .about__card { min-height: 0; padding: 26px 24px; }
  .rays { left: -10px; top: -18px; width: 40px; height: 33px; }
  .title-wrap--center .rays { left: calc(50% - 155px); top: -20px; }

  .work__cards { grid-template-columns: 1fr; }
  .work__career { padding: 22px 18px 10px; }
  .work__table thead { position: absolute; clip-path: inset(50%); }
  .work__table tbody tr { display: block; padding: 12px 0; }
  .work__table tbody th, .work__table tbody td { display: block; width: auto; padding: 2px 4px; border: 0; }
  .work__table tbody tr:not(:last-child) { border-bottom: 1px dashed var(--color-line); }

  .points__list > li { grid-template-columns: 26px 46px 1fr; gap: 12px; }
  .points__no { font-size: 26px; }
  .points__check { width: 26px; height: 26px; }

  .career__steps { grid-template-columns: 1fr; }
  .career > .container { width: min(100% - 40px, 1236px); }
  .career__card { margin-top: 28px; padding: 28px 20px 34px; border-radius: 20px; }
  .career__step:nth-child(1), .career__step:nth-child(3), .career__step:nth-child(5) {
    border-right: 0; padding-left: 0; padding-right: 0;
  }
  .career__step-head { margin-bottom: 10px; }
  .career__step-no { font-size: 32px; }
  .career__step-main { gap: 16px; min-height: 64px; }
  .career__step-icon { flex-basis: 60px; width: 60px; height: 60px; }
  .career__step-icon .icon--step { width: 28px; height: 28px; }
  .career__step h3 { font-size: 19px; }
  .career__step ul { min-height: 0; margin-top: 22px; padding-top: 18px; }
  .career__arrow {
    width: 32px; height: 32px; justify-self: center;
    transform: rotate(90deg); margin: 6px 0; padding: 4px 0;
  }

  .schedule__card { padding: 30px 18px; }
  .schedule__list > li { grid-template-columns: 64px 26px 1fr; }
  .schedule__time { font-size: 18px; }

  .req__card { grid-template-columns: 1fr; }
  .req__role { flex-direction: row; justify-content: flex-start; gap: 0; padding-top: 0; }
  .req__role-icon { width: 64px; height: 64px; border-radius: 16px; }
  .req__role-icon .icon { width: 32px; height: 32px; }
  .req__role-icon img { width: 34px; height: 34px; }
  .req__role h3 { font-size: 21px; }
  .req__table div { grid-template-columns: 1fr; gap: 2px; }

  .jobs__list { gap: 16px; }
  .jobs__card { flex: 0 0 88%; scroll-snap-align: center; }
  .jobs__nav { display: none; }
  .jobs__pager { margin-top: 20px; }

  .env__list > li { grid-template-columns: 46px 1fr; gap: 10px 12px; }
  .env__list > li h3 { grid-column: 2; }
  .env__list > li p { grid-column: 1 / -1; }

  .msg__card { border-radius: 34px; }
  .msg__profile { margin-bottom: 24px; }
  .msg__spark { right: -30px; }

  .faq__a { padding-left: 24px; }
  .news__list a { grid-template-columns: 84px 1fr 16px; }
  .news__list .tag { grid-column: 1; justify-self: start; }
  .news__item-title { grid-column: 1 / -1; }

  .footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .btn-primary { min-width: 0; width: 100%; }
}

/* icon defs (CSSファイル基準でURL解決するためクラス化) */
.i-bag { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M6 8V6a6 6 0 0 1 12 0v2%22/%3E%3Crect x=%223%22 y=%228%22 width=%2218%22 height=%2213%22 rx=%222%22/%3E%3Cpath d=%22M9 12h6%22/%3E%3C/svg%3E"); }
.i-balance { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M12 3v18M5 6h14M7 6 3 13h8L7 6ZM17 6l-4 7h8l-4-7ZM5 17h14%22/%3E%3C/svg%3E"); }
.i-beginner { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M12 20c-3.5-2.5-6-5.7-6-10V4l6 3 6-3v6c0 4.3-2.5 7.5-6 10Z%22/%3E%3Cpath d=%22M12 7v10%22/%3E%3C/svg%3E"); }
.i-briefcase { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Crect x=%223%22 y=%227%22 width=%2218%22 height=%2212%22 rx=%222%22/%3E%3Cpath d=%22M8 7V5h8v2M3 12h18M10 12v2h4v-2%22/%3E%3C/svg%3E"); }
.i-calendar { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2216%22 rx=%222%22/%3E%3Cpath d=%22M7 3v4M17 3v4M3 10h18%22/%3E%3Cpath d=%22M8 14h.01M12 14h.01M16 14h.01M8 17h.01M12 17h.01%22/%3E%3C/svg%3E"); }
.i-chart-up { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M4 20V10M10 20V14M16 20V8M22 20V4%22/%3E%3Cpath d=%22m3 8 6-4 5 3 7-5%22/%3E%3Cpath d=%22M17 2h4v4%22/%3E%3C/svg%3E"); }
.i-chat { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M4 4h16v11H9l-5 5V4Z%22/%3E%3Cpath d=%22M8 9h.01M12 9h.01M16 9h.01%22/%3E%3C/svg%3E"); }
.i-check-circle { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22m8 12 2.6 2.6L16.5 9%22/%3E%3C/svg%3E"); }
.i-chevron-left { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22m15 5-7 7 7 7%22/%3E%3C/svg%3E"); }
.i-chevron-right { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22m9 5 7 7-7 7%22/%3E%3C/svg%3E"); }
.i-crown { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22m3 7 4 4 5-7 5 7 4-4-2 11H5L3 7Z%22/%3E%3Cpath d=%22M6 21h12%22/%3E%3C/svg%3E"); }
.i-devices { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Crect x=%223%22 y=%224%22 width=%2212.5%22 height=%2210%22 rx=%221.5%22/%3E%3Cpath d=%22M7 18h4.5M9.2 14v4%22/%3E%3Crect x=%2216.5%22 y=%228%22 width=%224.5%22 height=%2210%22 rx=%221%22/%3E%3Cpath d=%22M18 15.8h1.5%22/%3E%3C/svg%3E"); }
.i-diamond { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22m12 21 9-11-4-6H7l-4 6 9 11Z%22/%3E%3Cpath d=%22M3 10h18M7 4l5 17 5-17M7 4l5 6 5-6%22/%3E%3C/svg%3E"); }
.i-handshake { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22m4 12 4-4 3 2 2-2 7 6-3 3-2-2-2 2-2-2-2 1-5-4Z%22/%3E%3Cpath d=%22m8 8-2-2-3 3 3 3M16 9l2-2 3 3-2 2%22/%3E%3C/svg%3E"); }
.i-mail { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2214%22 rx=%222%22/%3E%3Cpath d=%22m4 7 8 6 8-6%22/%3E%3C/svg%3E"); }
.i-map-pin { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M20 10c0 6-8 11-8 11S4 16 4 10a8 8 0 1 1 16 0Z%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%222.5%22/%3E%3C/svg%3E"); }
.i-people { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Ccircle cx=%228%22 cy=%228%22 r=%223%22/%3E%3Ccircle cx=%2217%22 cy=%229%22 r=%222.5%22/%3E%3Cpath d=%22M2.5 20c.4-4 2.2-6 5.5-6s5.1 2 5.5 6M13 20c.3-3.2 1.8-4.8 4-4.8 2.5 0 4 1.6 4.5 4.8%22/%3E%3C/svg%3E"); }
.i-people-chat { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Ccircle cx=%228%22 cy=%2210%22 r=%223%22/%3E%3Ccircle cx=%2216%22 cy=%2211%22 r=%222.5%22/%3E%3Cpath d=%22M2 21c.4-4 2.3-6 6-6s5.6 2 6 6M13 21c.2-3 1.8-4.5 4-4.5 2.5 0 4 1.5 4.5 4.5%22/%3E%3Cpath d=%22M13 3h8v5h-4l-2 2V8h-2V3Z%22/%3E%3C/svg%3E"); }
.i-person { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Ccircle cx=%2212%22 cy=%227%22 r=%223%22/%3E%3Cpath d=%22M5 21c.4-5 2.7-8 7-8s6.6 3 7 8%22/%3E%3C/svg%3E"); }
.i-person-star { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Ccircle cx=%229%22 cy=%227%22 r=%223%22/%3E%3Cpath d=%22M3 21c.4-5 2.7-8 7-8 2 0 3.6.7 4.8 2%22/%3E%3Cpath d=%22m18 13 1 2 2.2.3-1.6 1.6.4 2.1-2-1-2 1 .4-2.1-1.6-1.6 2.2-.3 1-2Z%22/%3E%3C/svg%3E"); }
.i-shield-award { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M12 3 4.5 6v5.5c0 4.6 3.2 7.5 7.5 9.5 4.3-2 7.5-4.9 7.5-9.5V6L12 3Z%22/%3E%3Ccircle cx=%2212%22 cy=%2211%22 r=%222.6%22/%3E%3Cpath d=%22m10.4 13.2-1 3.2 2.6-1.3 2.6 1.3-1-3.2%22/%3E%3C/svg%3E"); }
.i-spark { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M12 2v4M4.9 4.9l2.8 2.8M2 12h4%22/%3E%3C/svg%3E"); }
.i-storefront { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22M3 9h18l-2-5H5L3 9Z%22/%3E%3Cpath d=%22M5 9v10h14V9%22/%3E%3Cpath d=%22M9 19v-6h6v6%22/%3E%3Cpath d=%22M3 9c0 2 3 2 3 0 0 2 3 2 3 0 0 2 3 2 3 0 0 2 3 2 3 0 0 2 3 2 3 0%22/%3E%3C/svg%3E"); }
.i-yen { --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22currentColor%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 aria-hidden=%22true%22%3E%3Cpath d=%22m7 3 5 7 5-7M12 10v11M7 12h10M7 16h10%22/%3E%3C/svg%3E"); }

@media (max-width: 767px) {
  /* SPでは大型の装飾円を非表示（テキスト背面のノイズ除去） */
  .about__orange-circle, .about__orange-dotted,
  .work__orange-circle,
  .points__orange-circle, .points__green-square,
  .schedule__circle--blue, .schedule__circle--orange, .schedule__circle--beige,
  .req__orange-circle,
  .jobs__orange-circle, .jobs__blue-circle,
  .env__beige-circle, .env__orange-circle,
  .msg__circle--blue, .msg__circle--green, .msg__circle--orange,
  .faq__green-circle, .faq__blue-circle {
    display: none;
  }
}

/* 見出しの折返し制御: 語の途中で改行させない */
.u-keep { display: inline-block; }

/* 1文字だけの行を防ぐ（対応ブラウザのみ・段階的強化） */
p, .env__item p, .about__card p { text-wrap: pretty; }
h3 { text-wrap: balance; }

/* ===== 実績数字バンド（FV直下） ===== */
.stats-band {
  background:
    radial-gradient(circle at 88% 0%, rgba(224, 238, 255, .55) 0, rgba(224, 238, 255, 0) 55%),
    linear-gradient(180deg, #f3f8ff 0%, #eaf2fd 100%);
  border-top: 1px solid rgba(37, 99, 235, .08);
  border-bottom: 1px solid rgba(37, 99, 235, .10);
  padding: 34px 0;
}
.stats-band__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.stats-band__item { text-align: center; padding: 0 12px; }
.stats-band__item + .stats-band__item { border-left: 1px solid rgba(37, 99, 235, .14); }
.stats-band__label { font-size: 13px; letter-spacing: .12em; color: var(--color-muted); margin-bottom: 6px; }
.stats-band__value { font-size: 20px; font-weight: 700; color: var(--color-ink); line-height: 1.2; }
.stats-band__value strong { font-family: "Inter", "Noto Sans JP", sans-serif; font-size: 40px; font-weight: 700; color: var(--color-brand-blue); letter-spacing: .01em; margin: 0 2px; }
.stats-band__sub { display: block; font-size: 12.5px; font-weight: 500; color: var(--color-muted); margin-top: 4px; }

/* ===== CTAバンド ===== */
.cta-band { padding: clamp(72px, 6vw, 100px) 0; background: transparent; }
.cta-band__inner { text-align: center; }
.cta-band__copy { font-size: 17px; font-weight: 700; color: var(--color-ink); margin-bottom: 26px; letter-spacing: .06em; }
.cta-band__note { text-align: center; margin-top: 14px; font-size: 12.5px; color: var(--color-muted); letter-spacing: .08em; }

/* ===== 追従CTA ===== */
.float-cta {
  position: fixed; right: 20px; bottom: 20px; z-index: 150;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 16px 28px; border-radius: 999px;
  background: var(--color-brand-blue); color: #fff;
  font-size: 15px; font-weight: 700; letter-spacing: .1em; text-decoration: none;
  box-shadow: 0 10px 28px rgba(40, 56, 230, .35);
  opacity: 0; transform: translateY(16px); pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}
.float-cta.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.float-cta:hover { background: #1d2ac9; }

@media (max-width: 767px) {
  .stats-band { padding: 26px 0; }
  .stats-band__grid { grid-template-columns: 1fr; gap: 18px; }
  .stats-band__item + .stats-band__item { border-left: 0; border-top: 1px solid rgba(37, 99, 235, .14); padding-top: 18px; }
  .stats-band__value strong { font-size: 34px; }
  .float-cta {
    right: 12px; left: 12px; bottom: 12px; justify-content: center;
    padding: 15px 20px; border-radius: 12px; font-size: 15px;
  }
}

/* ===== CTAバナー（cta_banner_pc_design_assets 準拠・ブランド色に統一） ===== */
.recruit-cta {
  position: relative; min-height: 275px; max-width: 1210px; margin-inline: auto;
  overflow: hidden; border: 1px solid #e5eaf2; border-radius: 17px;
  background: #fff; box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}
.recruit-cta__photo { position: absolute; inset: 0 0 0 auto; width: 50.3%; height: 100%; object-fit: cover; }
.recruit-cta::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,#fff 0%,#fff 47%,rgba(255,255,255,.95) 58%,rgba(255,255,255,.18) 76%,rgba(255,255,255,0) 100%); }
.recruit-cta::after { content: ""; position: absolute; right: 0; bottom: 0; z-index: 1; width: 52%; height: 44%; background: linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.58)); }
.recruit-cta__content { position: relative; z-index: 2; padding: 31px 37px 26px; }
.recruit-cta__eyebrow { margin: 0 0 12px; color: var(--color-brand-blue); font-size: 15px; font-weight: 700; letter-spacing: .04em; }
.recruit-cta__title { font-size: clamp(24px, 2.2vw, 29px); font-weight: 700; line-height: 1.5; letter-spacing: .02em; }
.recruit-cta__title em { color: var(--color-brand-blue); font-style: normal; }
.recruit-cta__benefits { display: flex; gap: 34px; margin-top: 25px; }
.benefit { display: grid; grid-template-columns: 58px auto; align-items: center; column-gap: 10px; }
.benefit__icon { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid #e8edf5; border-radius: 50%; background: #fff; box-shadow: 0 3px 12px rgba(71,85,105,.10); }
.benefit__icon img { width: 32px; height: 32px; }
.benefit strong { display: block; font-size: 15px; line-height: 1.4; }
.benefit > span:last-child > span { display: block; margin-top: 4px; color: var(--color-muted); font-size: 12.5px; line-height: 1.4; }
.recruit-cta__button {
  position: absolute; z-index: 3; right: 50px; bottom: 28px;
  display: flex; align-items: center; justify-content: center; gap: 17px;
  width: 421px; height: 70px; border-radius: 999px; color: #fff;
  background: linear-gradient(135deg, #3d4cf0, var(--color-brand-blue) 55%, var(--color-brand-blue-deep));
  box-shadow: 0 8px 24px rgba(40, 56, 230, .25);
  font-size: 22px; font-weight: 700; letter-spacing: .04em;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.recruit-cta__button:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 12px 28px rgba(40, 56, 230, .32); }
.recruit-cta__button img:first-child, .recruit-cta__button img:last-child { filter: brightness(0) invert(1); }
.recruit-cta__button img:first-child { width: 32px; height: 32px; }
.recruit-cta__button img:last-child { width: 20px; height: 20px; }

/* CTAバナー: タブレット幅はボタン重なり回避のため魅力リストを縦積みに */
@media (min-width: 768px) and (max-width: 1099px) {
  .recruit-cta__content { max-width: 60%; padding-bottom: 104px; }
  .recruit-cta__benefits { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 18px; }
  .recruit-cta__button { right: 26px; bottom: 24px; width: 340px; height: 62px; font-size: 18px; gap: 12px; }
  .recruit-cta__button img:first-child { width: 28px; height: 28px; }
}

@media (max-width: 767px) {
  .recruit-cta { min-height: 0; }
  .recruit-cta__photo { position: absolute; top: 0; left: 0; width: 100%; height: 235px; object-position: 52% center; }
  .recruit-cta::before { background: linear-gradient(180deg,rgba(255,255,255,.12) 0%,#fff 42%,#fff 100%); }
  .recruit-cta::after { display: none; }
  .recruit-cta__content { padding: 215px 22px 104px; }
  .recruit-cta__eyebrow { font-size: 13px; }
  .recruit-cta__title { font-size: 21px; line-height: 1.55; }
  .recruit-cta__benefits { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 20px; }
  .benefit { grid-template-columns: 46px auto; }
  .benefit__icon { width: 46px; height: 46px; }
  .benefit__icon img { width: 26px; height: 26px; }
  .recruit-cta__button { right: 22px; bottom: 24px; width: calc(100% - 44px); height: 60px; font-size: 17px; gap: 12px; }
  .recruit-cta__button img:first-child { width: 26px; height: 26px; }
}

/* ============================================================
   日本語の「変な改行」対策（全幅共通）
   - word-break: auto-phrase … 文節（意味の区切り）単位で折り返し、語の途中で切れない
   - text-wrap: pretty … 末尾に1文字だけ残る孤立行を抑制
   - line-break: strict … 禁則処理を厳格化
   本文コピー全般に適用。見出しは既存の balance / u-keep を優先。
   ============================================================ */
p, li, dd, dt, figcaption,
.jobs__lead, .career__lead, .req__lead, .schedule__lead,
.about__text, .recruit-cta__title, .store-network__addr,
.jobs__checks li, .points__list p, .env__item p, .msg__body p,
.faq__a, .work__subtitle {
  word-break: auto-phrase;
  text-wrap: pretty;
  line-break: strict;
}

/* 見出しも文節で折り返す（balance は維持） */
h2, h3, .jobs__card h3 { word-break: auto-phrase; }

/* CTA②の前書き: 900px以上は1行、それ未満は読点で改行 */
.recruit-cta__eyebrow br { display: none; }
@media (max-width: 899px) {
  .recruit-cta__eyebrow br { display: inline; }
}

/* 固定の手動改行が特定幅で孤立行を生むため、自動折り返しに任せる */
.recruit-cta__title br,
.about__text br,
.jobs__lead br { display: none; }

/* auto-phrase 導入により手動の語まとめ(u-keep)は不要（かえって孤立行を生むため無効化） */
.u-keep { display: inline; }

/* ===== セクション見出しの統一 ===== */
.rays {
  display: none !important;
}

.section-label {
  margin: 0 0 14px;
  color: var(--color-brand-blue) !important;
  font-family: var(--font-en);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .28em;
}

.section-label__bar {
  display: none !important;
}

.about__title,
.work__title,
.points__title,
.career__title,
.schedule__title,
.req__title,
.jobs__title,
.env__title,
.faq__title,
.news__title {
  color: var(--color-ink);
  font-size: clamp(32px, 2.75vw, 46px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .08em;
}

.about__title strong,
.work__title strong,
.points__title strong,
.career__title strong,
.schedule__title strong,
.req__title strong,
.jobs__title strong,
.env__title strong,
.faq__title strong,
.news__title strong {
  color: var(--color-brand-blue);
}

.about__title::after,
.work__title::after,
.points__title::after,
.career__title::after,
.req__title::after,
.jobs__title::after,
.env__title::after,
.faq__title::after,
.news__title::after {
  content: "";
  display: block;
  width: 46px;
  height: 5px;
  margin: 18px 0 0;
  border-radius: 999px;
  background: var(--color-brand-blue);
}

.title-wrap--center .jobs__title::after,
.career__title::after,
.req__title::after,
.schedule__bar {
  margin-left: auto;
  margin-right: auto;
}

.schedule__bar {
  display: block;
  width: 46px;
  height: 5px;
  margin-top: 18px;
  margin-bottom: 20px;
  border-radius: 999px;
  background: var(--color-brand-blue);
}

.work__subtitle,
.career__lead,
.req__lead,
.jobs__lead,
.env__lead,
.faq__intro p,
.news__intro p {
  margin-top: 20px;
}

.faq__title,
.news__title {
  margin: 0;
}

@media (max-width: 767px) {
  .section-label {
    font-size: 13px;
    letter-spacing: .22em;
    margin-bottom: 10px;
  }

  .about__title,
  .work__title,
  .points__title,
  .career__title,
  .schedule__title,
  .req__title,
  .jobs__title,
  .env__title,
  .faq__title,
  .news__title {
    font-size: clamp(25px, 7vw, 30px);
    line-height: 1.38;
    letter-spacing: .06em;
  }

  .about__title::after,
  .work__title::after,
  .points__title::after,
  .career__title::after,
  .req__title::after,
  .jobs__title::after,
  .env__title::after,
  .faq__title::after,
  .news__title::after,
  .schedule__bar {
    width: 38px;
    height: 4px;
    margin-top: 14px;
  }
}

/* ===== Final SP pass: readable text, compact rhythm, soft CTA ===== */
@media (max-width: 767px) {
  .container { width: min(100% - 32px, 1456px) !important; }

  .about,
  .work,
  .points,
  .career,
  .schedule,
  .env,
  .msg,
  .req,
  .jobs,
  .faq,
  .news {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  .section-label {
    font-size: 12px !important;
    letter-spacing: .18em !important;
    margin-bottom: 10px !important;
  }

  .about__title,
  .work__title,
  .points__title,
  .career__title,
  .schedule__title,
  .req__title,
  .jobs__title,
  .env__title,
  .faq__title,
  .news__title {
    font-size: clamp(23px, 6.2vw, 27px) !important;
    line-height: 1.42 !important;
    letter-spacing: .035em !important;
  }

  .about__title::after,
  .work__title::after,
  .points__title::after,
  .career__title::after,
  .req__title::after,
  .jobs__title::after,
  .env__title::after,
  .faq__title::after,
  .news__title::after,
  .schedule__bar {
    width: 34px !important;
    height: 4px !important;
    margin-top: 12px !important;
  }

  .about__text,
  .work__subtitle,
  .career__lead,
  .schedule__lead,
  .req__lead,
  .jobs__lead,
  .env__lead,
  .faq__intro p,
  .news__intro p,
  .points__list p,
  .work__card p,
  .career__step li,
  .schedule__body p,
  .req__table dd,
  .jobs__checks li,
  .env__list p,
  .msg__body p {
    font-size: 13.5px !important;
    line-height: 1.75 !important;
    letter-spacing: .01em !important;
  }

  .about__card h3,
  .work__card h3,
  .points__list h3,
  .schedule__body h3,
  .env__list h3 {
    font-size: 16.5px !important;
    line-height: 1.55 !important;
    letter-spacing: .025em !important;
  }

  .work__career-title,
  .msg__heading {
    font-size: 20px !important;
    line-height: 1.55 !important;
    letter-spacing: .04em !important;
  }

  .about__lead-row,
  .work__cards,
  .points__grid,
  .env__grid {
    gap: 28px !important;
  }

  .about__cards,
  .work__cards,
  .points__list,
  .career__card,
  .schedule__card,
  .req__card,
  .jobs__carousel {
    margin-top: 28px !important;
  }

  .about__card,
  .work__card,
  .work__career,
  .career__card,
  .schedule__card,
  .req__card,
  .msg__card {
    border-radius: 18px !important;
  }

  .about__card,
  .work__career,
  .schedule__card,
  .req__card {
    padding: 22px 18px !important;
  }

  .career__lead,
  .schedule__lead,
  .req__lead,
  .jobs__lead,
  .env__lead {
    margin-top: 14px !important;
  }

  .career__title {
    max-width: 310px;
    margin-inline: auto;
  }

  .schedule__title {
    max-width: 300px;
    margin-inline: auto;
  }

  .req__role h3 {
    font-size: 19px !important;
    line-height: 1.5 !important;
  }

  .req__table dt {
    font-size: 13px !important;
  }

  .jobs__card h3 {
    font-size: 17px !important;
    line-height: 1.55 !important;
    letter-spacing: .025em !important;
  }

  .jobs__card-body {
    padding: 20px 18px 22px !important;
  }

  .jobs__meta p {
    font-size: 12.5px !important;
    line-height: 1.6 !important;
  }

  .faq__q {
    gap: 12px !important;
    padding: 17px 0 !important;
  }

  .faq__q-text {
    font-size: 14px !important;
    line-height: 1.65 !important;
  }

  .float-cta {
    right: 14px !important;
    left: auto !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 11px 18px !important;
    border-radius: 999px !important;
    font-size: 13px !important;
    letter-spacing: .06em !important;
    box-shadow: 0 8px 22px rgba(40, 56, 230, .26) !important;
  }

  .cta-band {
    padding: 34px 0 !important;
  }

  .recruit-cta {
    min-height: 0 !important;
    border-radius: 18px !important;
  }

  .recruit-cta__photo,
  .recruit-cta::before,
  .recruit-cta::after {
    display: none !important;
  }

  .recruit-cta__content {
    padding: 22px 18px 18px !important;
  }

  .recruit-cta__eyebrow {
    margin-bottom: 8px !important;
    font-size: 12px !important;
    line-height: 1.6 !important;
  }

  .recruit-cta__title {
    font-size: 18px !important;
    line-height: 1.65 !important;
    letter-spacing: .015em !important;
  }

  .recruit-cta__benefits {
    display: none !important;
  }

  .recruit-cta__button {
    position: static !important;
    width: calc(100% - 36px) !important;
    height: 50px !important;
    margin: 0 18px 18px !important;
    border-radius: 12px !important;
    font-size: 14.5px !important;
    gap: 10px !important;
  }

  .recruit-cta__button img:first-child {
    width: 22px !important;
    height: 22px !important;
  }

  .recruit-cta__button img:last-child {
    width: 14px !important;
    height: 14px !important;
  }
}

/* ===== SP polish 2026-07-16: heading rhythm, FAQ/News spacing ===== */
@media (max-width: 767px) {
  .title-wrap,
  .title-wrap--center,
  .section-label--center,
  .career__title,
  .schedule__title,
  .req__title,
  .jobs__title,
  .faq__title,
  .news__title,
  .career__lead,
  .schedule__lead,
  .req__lead,
  .jobs__lead,
  .faq__intro p,
  .news__intro p {
    text-align: left !important;
  }

  .title-wrap {
    display: block !important;
  }

  .career__title,
  .schedule__title {
    max-width: none !important;
    margin-inline: 0 !important;
    font-size: clamp(22px, 5.85vw, 25px) !important;
    line-height: 1.42 !important;
    letter-spacing: .018em !important;
  }

  .career__title .u-keep,
  .schedule__title .u-keep {
    white-space: nowrap;
  }

  .title-wrap--center .jobs__title::after,
  .career__title::after,
  .req__title::after,
  .schedule__bar {
    margin-left: 0 !important;
    margin-right: auto !important;
  }

  .schedule__bar {
    margin-inline: 0 auto !important;
  }

  .schedule__lead br {
    display: none;
  }

  .req__role {
    flex-direction: row !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 14px !important;
    padding-top: 0 !important;
    margin-bottom: 14px !important;
  }

  .req__role-icon {
    flex: 0 0 56px !important;
    width: 56px !important;
    height: 56px !important;
    border-radius: 14px !important;
  }

  .req__role-icon img {
    width: 30px !important;
    height: 30px !important;
  }

  .req__role h3 {
    margin: 0 !important;
    font-size: 20px !important;
    letter-spacing: .08em !important;
  }

  .jobs__meta p:first-child {
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .faq__item {
    border-radius: 16px !important;
  }

  .faq__q {
    gap: 14px !important;
    padding: 18px 16px !important;
  }

  .faq__q-icon {
    flex-basis: 30px !important;
    width: 30px !important;
    height: 30px !important;
  }

  .faq__q-text {
    flex: 1 1 auto;
    min-width: 0;
    padding-left: 2px;
    padding-right: 10px;
    color: inherit;
    font-size: 15px !important;
    line-height: 1.62 !important;
  }

  .faq__chev {
    flex: 0 0 16px !important;
    width: 16px !important;
    height: 16px !important;
    margin-left: 0 !important;
  }

  .faq__a {
    padding: 18px 20px 20px 60px !important;
  }

  .news__list a {
    grid-template-columns: minmax(0, 1fr) 18px !important;
    column-gap: 14px !important;
    row-gap: 12px !important;
    padding: 20px 14px !important;
  }

  .news__list time,
  .news__list .tag,
  .news__item-title {
    grid-column: 1 !important;
  }

  .news__item-title {
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: anywhere;
    line-height: 1.55;
  }

  .icon--news {
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    align-self: center !important;
    justify-self: end !important;
    margin-right: 2px;
  }
}
