/* ============================================
   渡辺産業株式会社 採用サイト - First View
============================================ */

*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --primary: #0d3b8c;
  --primary-dark: #082b69;
  --primary-light: #3b86d6;
  --accent: #e94e1b;
  --text: #1a2538;
  --text-sub: #6b7785;
  --bg: #ffffff;
  --bg-soft: #eef4fb;
  --border: #d8e3f0;
}

html, body { height: 100%; }
html { overflow-x: clip; }
body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  width: 100%;
}
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
img, svg { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

/* ============================================
   Header
============================================ */
.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  height: 88px;
  background: transparent;
  transition: background-color .25s ease, box-shadow .25s ease;
}
.header.is-scrolled {
  background: rgba(255, 255, 255, 0.85);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 12px rgba(13, 59, 140, 0.08);
}
.header__inner {
  height: 100%;
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.header__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.header__logo-mark {
  width: 54px;
  height: 54px;
  display: block;
  object-fit: contain;
  object-position: center;
}
.header__logo-text {
  display: flex;
  align-items: baseline;
  gap: 14px;
}
.header__logo-jp {
  font-size: 22px;
  font-weight: 900;
  color: var(--primary);
  letter-spacing: .04em;
}
.header__logo-en {
  font-family: "Roboto", sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-light);
  letter-spacing: .15em;
}

.header__nav { margin-left: auto; }
.header__nav-list {
  display: flex;
  gap: 32px;
}
.header__nav-list a {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  position: relative;
  padding: 6px 0;
  transition: color .2s;
}
.header__nav-list a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 2px;
  background: var(--primary);
  transition: width .25s ease;
}
.header__nav-list a:hover { color: var(--primary); }
.header__nav-list a:hover::after { width: 100%; }

.header__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--primary);
  color: #fff;
  padding: 14px 28px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
  box-shadow: 0 6px 18px rgba(13,59,140,.25);
  transition: background .2s, transform .2s, box-shadow .2s;
}
.header__cta svg {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
}
.header__cta:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(13,59,140,.35);
}

.header__burger {
  display: none;
  width: 44px; height: 44px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  position: relative;
  z-index: 200;
  background: transparent;
  border: none;
  cursor: pointer;
}
.header__burger span {
  display: block;
  width: 26px;
  height: 2px;
  background: var(--primary);
  transition: transform .25s ease, opacity .25s ease;
}
.header__burger.is-open span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.header__burger.is-open span:nth-child(2) {
  opacity: 0;
}
.header__burger.is-open span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}
body.is-menu-open { overflow: hidden; }

/* ============================================
   Hero
============================================ */
.hero {
  position: relative;
  min-height: 920px;
  padding-top: 88px;
  overflow: hidden;
  background: linear-gradient(180deg, #eaf2fb 0%, #d6e6f5 100%);
}

/* Background photo + curve */
.hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.hero__slides {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.hero__slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 0;
  animation: heroFade 18s linear infinite;
  will-change: opacity, transform;
}
.hero__slide:nth-child(1) { animation-delay: 0s; }
.hero__slide:nth-child(2) { animation-delay: -12s; }
.hero__slide:nth-child(3) { animation-delay: -6s; }
@keyframes heroFade {
  0%       { opacity: 1; transform: scale(1.05); }
  27.78%   { opacity: 1; }
  33.33%   { opacity: 0; transform: scale(1.00); }
  94.44%   { opacity: 0; }
  100%     { opacity: 1; transform: scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
  .hero__slide { animation: none; }
  .hero__slide.is-active { opacity: 1; }
}
.hero__photo-fallback {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, #6ba9e0 0%, #4a8bcb 60%, #2a6ab0 100%),
    radial-gradient(circle at 70% 30%, rgba(255,255,255,.4), transparent 50%);
  z-index: -1;
}
.hero__nav {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 14px;
  z-index: 3;
  padding: 8px 14px;
  background: rgba(0, 30, 80, 0.35);
  border-radius: 999px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.hero__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255,255,255,.55);
  border: 2px solid rgba(255,255,255,.85);
  cursor: pointer;
  padding: 0;
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.hero__dot:hover {
  background: rgba(255,255,255,.95);
  transform: scale(1.15);
}
.hero__dot.is-active {
  background: #fff;
  border-color: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  transform: scale(1.25);
}
.hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    rgba(255,255,255,1) 0%,
    rgba(255,255,255,1) 10%,
    rgba(255,255,255,.8) 25%,
    rgba(255,255,255,.25) 55%,
    rgba(255,255,255,0) 65%);
  pointer-events: none;
}

/* Content */
.hero__inner {
  position: relative;
  z-index: 2;
  max-width: 1480px;
  margin: 0 auto;
  padding: 60px 32px 0;
}
.hero__copy {
  max-width: 780px;
}

.hero__sub {
  font-family: "Zen Kurenaido", "Yomogi", "Hiragino Maru Gothic ProN", "Yu Gothic", cursive;
  font-size: clamp(26px, 2.8vw, 38px);
  font-weight: 400;
  color: var(--primary);
  line-height: 1.7;
  margin-bottom: 22px;
  letter-spacing: .06em;
  font-style: italic;
  transform: rotate(-2.5deg);
  transform-origin: left center;
  display: inline-block;
}
.hero__sub span { display: block; }
.hero__sub--indent { padding-left: 2em; }

.hero__title {
  font-size: clamp(32px, 4.4vw, 56px);
  font-weight: 900;
  line-height: 1.4;
  color: var(--primary-dark);
  letter-spacing: .04em;
  margin-bottom: 22px;
  word-break: keep-all;
}
.hero__title span { display: block; }

.hero__divider {
  border: none;
  height: 2px;
  width: 100%;
  background: linear-gradient(90deg, var(--primary) 0%, var(--primary) 60%, transparent 100%);
  margin: 0 0 28px;
}

/* 4 features */
.hero__features {
  display: flex;
  gap: 32px;
  margin-bottom: 36px;
  flex-wrap: wrap;
}
.hero__feature {
  display: flex;
  align-items: center;
  gap: 12px;
}
.hero__feature-icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(13,59,140,.25);
}
.hero__feature-icon--img {
  width: 72px;
  height: 72px;
  background: transparent;
  box-shadow: none;
  padding: 0;
}
.hero__feature-icon--img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.hero__feature-text {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--text);
}

/* Big entry button */
.hero__entry {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: var(--primary);
  color: #fff;
  padding: 22px 60px 22px 32px;
  border-radius: 999px;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .04em;
  box-shadow: 0 14px 28px rgba(13,59,140,.3);
  border: 4px solid #fff;
  transition: background .25s, transform .25s, box-shadow .25s;
  min-width: 480px;
}
.hero__entry:hover {
  background: var(--primary-dark);
  transform: translateY(-3px);
  box-shadow: 0 18px 36px rgba(13,59,140,.4);
}
.hero__entry-tag {
  position: absolute;
  top: -14px;
  left: 30px;
  background: var(--primary-light);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: 999px;
  letter-spacing: .08em;
  border: 2px solid #fff;
}
.hero__entry-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.hero__entry-text { flex: 1; }
.hero__entry-arrow {
  font-size: 22px;
  transition: transform .25s ease;
}
.hero__entry:hover .hero__entry-arrow { transform: translateX(6px); }

/* Bottom highlight cards */
.hero__highlights {
  position: relative;
  z-index: 2;
  max-width: 1480px;
  margin: 56px auto 0;
  padding: 0 32px 32px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.highlight {
  background: rgba(1, 97, 166, 0.817);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  min-height: 100px;
  border: 1px solid rgba(255,255,255,.15);
}
.highlight__image {
  width: 140px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  background: #2a4f8c;
}
.highlight__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.highlight__image.is-empty {
  background: linear-gradient(135deg, #4a76b3 0%, #1a3a72 100%);
}
.highlight__body {
  flex: 1;
  display: flex;
  align-items: center;
  padding: 16px 20px;
  font-size: 14px;
  line-height: 1.7;
}
.highlight__body strong {
  font-size: 16px;
  font-weight: 700;
}

/* ============================================
   Appeal Section (働く魅力)
============================================ */
.appeal {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 100px 0;
}
.appeal__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}

/* 上部：見出し＋写真 */
.appeal__top {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 0;
  align-items: stretch;
  margin-bottom: 80px;
  margin-right: -32px;
}
.appeal__head {
  padding: 40px 40px 40px 0;
  align-self: center;
}
.appeal__tag {
  display: flex;
  align-items: center;
  gap: 18px;
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .3em;
  color: var(--primary);
  margin-bottom: 22px;
}
.appeal__tag-line {
  display: inline-block;
  flex: 1;
  max-width: 200px;
  height: 1px;
  background: var(--primary);
}
.appeal__title {
  font-size: clamp(28px, 3.6vw, 48px);
  font-weight: 900;
  color: var(--primary-dark);
  letter-spacing: .06em;
  margin-bottom: 20px;
  line-height: 1.3;
}
.appeal__subtitle {
  font-size: clamp(15px, 1.4vw, 19px);
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 36px;
}
.appeal__desc {
  font-size: 14px;
  line-height: 2.1;
  color: var(--text);
}
.appeal__photo {
  position: relative;
  overflow: hidden;
  background: #d8e3f0;
  min-height: 380px;
  align-self: stretch;
  -webkit-clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.appeal__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.appeal__photo.is-empty {
  background: linear-gradient(135deg, #4a8bcb 0%, #1a3a72 100%);
}

/* 5つのカード */
.appeal__cards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}
.appeal-card {
  position: relative;
  background: #fff;
  border-radius: 12px;
  padding: 38px 22px 28px;
  text-align: center;
  box-shadow: 0 6px 20px rgba(13,59,140,.08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.appeal-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(13,59,140,.15);
}
.appeal-card__num {
  position: absolute;
  top: 20px;
  left: 24px;
  display: inline-block;
  font-family: "Roboto", sans-serif;
  font-size: 40px;
  font-weight: 900;
  font-style: italic;
  color: var(--primary);
  letter-spacing: .02em;
  line-height: 1;
  padding-bottom: 8px;
  isolation: isolate;
  z-index: 1;
}
.appeal-card__num::after {
  content: "";
  position: absolute;
  left: -4px;
  bottom: 6px;
  width: 72px;
  height: 14px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 14'><polygon points='0,14 72,0 0,9' fill='%23f5c34a'/></svg>") no-repeat left center / contain;
  z-index: -1;
}
.appeal-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100px;
  height: 100px;
  color: var(--primary);
  margin: 28px auto 20px;
}
.appeal-card__icon svg { width: 60px; height: 60px; }
.appeal-card__icon--img { width: 110px; height: 110px; }
.appeal-card__icon--img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.appeal-card__title {
  font-size: 17px;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px dashed #cdd9e8;
  letter-spacing: .04em;
}
.appeal-card__text {
  font-size: 13px;
  line-height: 1.85;
  color: var(--text);
}

/* CTA帯 */
.appeal__cta {
  position: relative;
  background: #eef4fb;
  border-top: 1px solid rgba(13,59,140,.1);
  padding: 56px 32px;
  margin: 0 -32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.appeal__cta-body {
  flex: 1;
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}
.appeal__cta-title {
  font-size: clamp(20px, 2.4vw, 30px);
  font-weight: 900;
  color: var(--primary-dark);
  letter-spacing: .04em;
  margin-bottom: 14px;
  line-height: 1.5;
}
.appeal__cta-lead {
  font-size: 14px;
  color: var(--text);
  margin-bottom: 26px;
}
.appeal__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background: var(--primary);
  color: #fff;
  padding: 18px 56px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 700;
  box-shadow: 0 8px 20px rgba(13,59,140,.3);
  transition: background .2s, transform .2s, box-shadow .2s;
  min-width: 320px;
}
.appeal__cta-btn:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(13,59,140,.4);
}
.appeal__cta-btn-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
  font-size: 18px;
  transition: transform .2s;
}
.appeal__cta-btn:hover .appeal__cta-btn-arrow { transform: translateX(4px); }

.appeal__cta-deco {
  flex-shrink: 0;
  width: 220px;
  height: 80px;
  align-self: flex-end;
}
.appeal__cta-deco svg { display: block; width: 100%; height: 100%; }

@media (max-width: 1100px) {
  .appeal__top { grid-template-columns: 1fr; gap: 32px; margin-right: 0; }
  .appeal__cards { grid-template-columns: repeat(3, 1fr); }
  .appeal__cta-deco { display: none; }
}
@media (max-width: 720px) {
  .appeal { padding-top: 70px; }
  .appeal__inner { padding: 0 20px; }
  .appeal__photo { border-radius: 0;
  -webkit-clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  clip-path: polygon(0% 10%, 100% 0%, 100% 100%, 0% 90%); }
  .appeal__head { padding: 0; }
  .appeal__cards { grid-template-columns: 1fr 1fr; gap: 14px; }
  .appeal-card { padding: 28px 18px 22px; }
  .appeal-card__icon { width: 64px; height: 64px; }
  .appeal-card__icon svg { width: 38px; height: 38px; }
  .appeal-card__title { font-size: 15px; }
  .appeal-card__text { font-size: 12px; }
  .appeal__cta { padding: 40px 24px; margin: 0 -20px; }
  .appeal__cta-btn { min-width: 0; width: 100%; padding: 16px 24px; }
}

/* ============================================
   Numbers Section
============================================ */
.numbers {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 100px 0;
}
.numbers__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}

/* 写真の上に乗る丸い金バッジ */
.numbers__photo { position: relative; }
.numbers__badge {
  position: absolute;
  top: 30px;
  right: 24px;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: 0 10px 24px rgba(13,59,140,.35);
  z-index: 2;
  border: 4px solid #fff;
}
.numbers__badge-leaves {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.numbers__badge-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.3;
  position: relative;
  z-index: 1;
}
.numbers__badge-text > span:first-child {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
}
.numbers__badge-text strong {
  display: block;
  font-family: "Roboto", sans-serif;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .02em;
  margin: 2px 0 6px;
}
.numbers__badge-sub {
  font-size: 10px;
  font-weight: 500;
  border-top: 1px solid rgba(255,255,255,.4);
  padding-top: 4px;
}

/* 数値グリッド（4列×2行） */
.numbers__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-bottom: 24px;
}
.num-card {
  background: #fff;
  border-radius: 12px;
  padding: 26px 22px 24px;
  box-shadow: 0 6px 20px rgba(13,59,140,.08);
  text-align: left;
  display: grid;
  grid-template-columns: 76px 1fr;
  grid-template-rows: auto auto auto;
  column-gap: 22px;
  row-gap: 0;
  align-items: center;
  transition: transform .25s ease, box-shadow .25s ease;
}
.num-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(13,59,140,.15);
}
.num-card__icon {
  grid-row: 1 / 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--primary);
}
.num-card__icon--img {
  width: 76px;
  height: 76px;
}
.num-card__icon--img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.num-card__label {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: .04em;
  margin: 0;
}
.num-card__value {
  font-size: 16px;
  font-weight: 700;
  color: var(--primary);
  margin: 0;
  line-height: 1;
  white-space: nowrap;
}
.num-card__value strong {
  font-family: "Roboto", sans-serif;
  font-size: 50px;
  font-weight: 900;
  letter-spacing: .02em;
  margin-right: 4px;
}
.num-card__value em {
  font-style: normal;
  font-size: 16px;
  font-weight: 700;
  color: var(--primary);
}
.num-card__note {
  grid-column: 1 / -1;
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid #e1e7ee;
  font-size: 12px;
  line-height: 1.6;
  color: var(--text-sub);
}

.numbers__note {
  font-size: 12px;
  color: var(--text-sub);
  margin-top: 14px;
}

@media (max-width: 1100px) {
  .numbers__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .numbers { padding: 70px 0; }
  .numbers__inner { padding: 0 20px; }
  .numbers__badge { width: 110px; height: 110px; top: 16px; right: 16px; }
  .numbers__badge-text strong { font-size: 18px; }
  .numbers__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .num-card {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
    text-align: center;
    justify-items: center;
    padding: 24px 16px 20px;
    row-gap: 4px;
    column-gap: 0;
  }
  .num-card__icon { grid-row: auto; }
  .num-card__icon--img { width: 64px; height: 64px; }
  .num-card__note { margin-top: 10px; font-size: 11px; }
  .num-card__value strong { font-size: 36px; }
  .num-card__label { font-size: 12px; }
}

/* ============================================
   Interview Section
============================================ */
.interview {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 100px 0;
}
.interview__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}

/* 写真の上の青い丸バッジ「未経験入社 多数活躍中!」 */
.interview__badge {
  position: absolute;
  top: 28px;
  right: 28px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: 0 10px 24px rgba(13,59,140,.4);
  z-index: 2;
  border: 4px solid #fff;
}
.interview__badge-leaf {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-bottom: 4px;
  color: #f5c34a;
}
.interview__badge-text {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}
.interview__badge-text > span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
}
.interview__badge-text strong {
  font-size: 17px;
  font-weight: 900;
  letter-spacing: .04em;
  margin-top: 2px;
}
.interview__badge-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(255,255,255,.4);
  width: 60%;
  color: rgba(255,255,255,.85);
}

/* 3カード */
.interview__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.iv-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 6px 22px rgba(13,59,140,.08);
  transition: transform .25s ease, box-shadow .25s ease;
  display: flex;
  flex-direction: column;
}
.iv-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(13,59,140,.15);
}
.iv-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 22px;
  background: #fff;
  border-bottom: 1px solid #e1e7ee;
}
.iv-card__role-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.iv-card__role {
  flex: 1;
  font-size: 16px;
  font-weight: 900;
  color: var(--primary-dark);
  letter-spacing: .04em;
  border-left: 1px solid #d8e3f0;
  padding-left: 12px;
}
.iv-card__year {
  font-family: "Roboto", sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-sub);
}
.iv-card__photo {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #4a8bcb 0%, #1a3a72 100%);
  overflow: hidden;
  position: relative;
}
.iv-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.iv-card__name {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 14px 18px 12px;
  color: #fff;
  background: linear-gradient(180deg, rgba(0,30,80,0) 0%, rgba(0,30,80,.75) 100%);
  width: 100%;
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  letter-spacing: .04em;
}
.iv-card__name span {
  font-size: 18px;
  font-weight: 900;
}
.iv-card__name small {
  font-family: "Roboto", sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .15em;
  opacity: .9;
}
.iv-card__body {
  padding: 24px 26px 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1;
}
.iv-card__quote {
  font-size: clamp(17px, 1.5vw, 21px);
  font-weight: 900;
  color: var(--primary-dark);
  letter-spacing: .04em;
  line-height: 1.5;
}
.iv-card__text {
  font-size: 13px;
  line-height: 1.9;
  color: var(--text);
  padding-top: 14px;
  border-top: 1px solid #e1e7ee;
}
.iv-card__meta {
  list-style: none;
  margin: 0;
  padding: 14px 0 0;
  border-top: 1px solid #e1e7ee;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.iv-card__meta li {
  display: grid;
  grid-template-columns: 24px 80px 1fr;
  gap: 10px;
  align-items: center;
  font-size: 12px;
  line-height: 1.5;
}
.iv-card__meta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--primary);
}
.iv-card__meta-label {
  font-weight: 700;
  color: var(--primary);
  border-right: 1px solid #d8e3f0;
  padding-right: 8px;
  font-size: 12px;
}
.iv-card__meta-text {
  color: var(--text);
}

/* カラー差分 */
.iv-card--driver .iv-card__role-icon { background: #1976d2; }
.iv-card--driver .iv-card__quote     { color: #1976d2; }
.iv-card--driver .iv-card__role      { color: #1976d2; }

.iv-card--warehouse .iv-card__role-icon { background: #18a999; }
.iv-card--warehouse .iv-card__quote     { color: #0f8a7d; }
.iv-card--warehouse .iv-card__role      { color: #0f8a7d; }
.iv-card--warehouse .iv-card__meta-label,
.iv-card--warehouse .iv-card__meta-icon { color: #0f8a7d; }

.iv-card--process .iv-card__role-icon { background: #ef7b1b; }
.iv-card--process .iv-card__quote     { color: #ef7b1b; }
.iv-card--process .iv-card__role      { color: #ef7b1b; }
.iv-card--process .iv-card__meta-label,
.iv-card--process .iv-card__meta-icon { color: #ef7b1b; }

@media (max-width: 1100px) {
  .interview__cards { grid-template-columns: repeat(2, 1fr); max-width: 820px; margin: 0 auto; }
  .interview__badge { width: 120px; height: 120px; top: 16px; right: 16px; }
  .interview__badge-text strong { font-size: 14px; }
}
@media (max-width: 720px) {
  .interview { padding: 70px 0; }
  .interview__inner { padding: 0 20px; }
  .interview__cards { grid-template-columns: 1fr; max-width: 480px; }
  .iv-card__name span { font-size: 16px; }
  .iv-card__name small { font-size: 10px; }
}

/* ============================================
   Wanted Person Section
============================================ */
.wanted {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 100px 0;
}
.wanted__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}
.wanted__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 8px;
}
.wanted-item {
  background: #fff;
  border-radius: 14px;
  padding: 26px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 6px 18px rgba(13,59,140,.06);
  border: 1px solid rgba(13,59,140,.06);
  transition: transform .25s ease, box-shadow .25s ease;
}
.wanted-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(13,59,140,.12);
}
.wanted-item__icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.wanted-item__icon--img {
  width: 64px;
  height: 64px;
  background: transparent;
}
.wanted-item__icon--img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.wanted-item p {
  font-size: 15px;
  font-weight: 700;
  color: var(--primary-dark);
  line-height: 1.5;
  letter-spacing: .02em;
}
@media (max-width: 1100px) {
  .wanted__list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .wanted { padding: 70px 0; }
  .wanted__inner { padding: 0 20px; }
  .wanted__list { grid-template-columns: 1fr; gap: 12px; }
  .wanted-item { padding: 20px 18px; gap: 14px; }
  .wanted-item__icon { width: 44px; height: 44px; }
  .wanted-item__icon svg { width: 22px; height: 22px; }
  .wanted-item__icon--img { width: 56px; height: 56px; }
  .wanted-item p { font-size: 14px; }
}

/* ============================================
   Requirements Section
============================================ */
.reqs {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 100px 0;
}
.reqs__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}

/* 3カード */
.reqs__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.reqs-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 6px 22px rgba(13,59,140,.08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.reqs-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(13,59,140,.18);
}
.reqs-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.reqs-card__image {
  position: relative;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, #4a8bcb 0%, #1a3a72 100%);
  overflow: hidden;
}
.reqs-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.reqs-card__body {
  padding: 26px;
}
.reqs-card__title {
  font-size: 22px;
  font-weight: 900;
  color: var(--primary-dark);
  margin-bottom: 12px;
  letter-spacing: .04em;
}
.reqs-card__text {
  font-size: 13px;
  line-height: 1.85;
  color: var(--text);
  margin-bottom: 18px;
}
.reqs-card__meta {
  border-top: 1px dashed #d8e3f0;
  border-bottom: 1px dashed #d8e3f0;
  padding: 14px 0;
  margin-bottom: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.reqs-card__meta li {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
}
.reqs-card__meta li span {
  font-size: 11px;
  font-weight: 700;
  color: var(--primary);
  background: #eef4fb;
  border-radius: 4px;
  padding: 3px 8px;
  text-align: center;
  letter-spacing: .04em;
  align-self: start;
}
.reqs-card__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: var(--primary);
  color: #fff;
  padding: 14px 22px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  transition: background .2s ease;
}
.reqs-card:hover .reqs-card__btn {
  background: var(--primary-dark);
}
.reqs-card__btn-arrow {
  font-size: 18px;
  transition: transform .2s ease;
}
.reqs-card:hover .reqs-card__btn-arrow { transform: translateX(4px); }

.reqs__note {
  max-width: 1080px;
  margin: 24px auto 0;
  font-size: 12px;
  color: var(--text-sub);
  text-align: center;
}

@media (max-width: 1100px) {
  .reqs__cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .reqs { padding: 70px 0; }
  .reqs__inner { padding: 0 20px; }
  .reqs__cards { grid-template-columns: 1fr; gap: 18px; }
  .reqs-card__title { font-size: 19px; }
}

/* ============================================
   FAQ Section
============================================ */
.faq {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 100px 0;
}
.faq__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}

/* FAQ list */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 1080px;
  margin: 0 auto;
}
.faq-item {
  background: #fff;
  border: 1px solid #d8e3f0;
  border-radius: 12px;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
.faq-item:hover { border-color: var(--primary-light); }
.faq-item details[open] { box-shadow: 0 6px 18px rgba(13,59,140,.08); }

.faq-item summary {
  list-style: none;
  cursor: pointer;
  display: grid;
  grid-template-columns: 50px 1fr 28px;
  gap: 16px;
  align-items: center;
  padding: 22px 26px;
  transition: background .2s;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { background: #f4f9fd; }

.faq-item__q {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: var(--primary);
  color: #fff;
  border-radius: 50%;
  font-family: "Roboto", sans-serif;
  font-size: 18px;
  font-weight: 900;
  flex-shrink: 0;
}
.faq-item__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.6;
}
.faq-item__toggle {
  width: 24px;
  height: 24px;
  position: relative;
  justify-self: end;
  flex-shrink: 0;
}
.faq-item__toggle::before,
.faq-item__toggle::after {
  content: "";
  position: absolute;
  background: var(--primary);
  border-radius: 1px;
  transition: transform .25s ease, opacity .25s ease;
}
.faq-item__toggle::before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  transform: translateY(-50%);
}
.faq-item__toggle::after {
  top: 0;
  left: 50%;
  width: 2px;
  height: 100%;
  transform: translateX(-50%);
}
.faq-item details[open] .faq-item__toggle::after {
  transform: translateX(-50%) rotate(90deg);
  opacity: 0;
}

.faq-item__answer {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 16px;
  padding: 24px 26px 28px;
  background: #fafcff;
  border-top: 1px solid #eef1f5;
  animation: faqOpen .25s ease;
}
@keyframes faqOpen {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.faq-item__a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #fff;
  color: var(--primary);
  border: 2px solid var(--primary);
  border-radius: 50%;
  font-family: "Roboto", sans-serif;
  font-size: 18px;
  font-weight: 900;
  flex-shrink: 0;
}
.faq-item__answer p {
  font-size: 14px;
  line-height: 1.95;
  color: var(--text);
  margin: 0;
}

/* もっと聞く */
.faq__more {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  margin-top: 56px;
  padding: 36px 24px;
  background: linear-gradient(135deg, #eef4fb 0%, #ffffff 100%);
  border-radius: 14px;
  text-align: center;
}
.faq__more-text {
  font-size: 15px;
  font-weight: 700;
  color: var(--primary-dark);
}
.faq__more-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: var(--primary);
  color: #fff;
  padding: 16px 40px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(13,59,140,.25);
  transition: background .2s, transform .2s, box-shadow .2s;
  min-width: 320px;
  justify-content: center;
}
.faq__more-btn:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 12px 22px rgba(13,59,140,.35);
}
.faq__more-arrow {
  font-size: 20px;
  transition: transform .2s;
}
.faq__more-btn:hover .faq__more-arrow { transform: translateX(4px); }

@media (max-width: 720px) {
  .faq { padding: 70px 0; }
  .faq__inner { padding: 0 20px; }
  .faq-item summary {
    grid-template-columns: 36px 1fr 22px;
    padding: 18px 18px;
    gap: 12px;
  }
  .faq-item__q { width: 32px; height: 32px; font-size: 15px; }
  .faq-item__title { font-size: 14px; }
  .faq-item__answer {
    grid-template-columns: 36px 1fr;
    padding: 18px 18px 22px;
    gap: 12px;
  }
  .faq-item__a { width: 32px; height: 32px; font-size: 15px; }
  .faq__more-btn { min-width: 0; width: 100%; padding: 14px 20px; font-size: 14px; }
}

/* ============================================
   Family Section
============================================ */
.family {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 100px 0;
}
.family__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}

.family__points {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 1080px;
  margin: 0 auto 56px;
}
.family-point {
  display: flex;
  align-items: flex-start;
  gap: 22px;
  background: #fff;
  border: 1px solid #d8e3f0;
  border-radius: 12px;
  padding: 26px 28px;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.family-point__body {
  flex: 1;
  min-width: 0;
}
.family-point:hover {
  border-color: var(--primary-light);
  box-shadow: 0 8px 22px rgba(13,59,140,.08);
  transform: translateY(-3px);
}
.family-point__icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #eef4fb;
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.family-point__icon--img {
  background: transparent;
  width: 90px;
  height: 90px;
}
.family-point__icon--img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.family-point h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--primary-dark);
  margin: 6px 0 10px;
  letter-spacing: .04em;
}
.family-point p {
  font-size: 13px;
  line-height: 1.85;
  color: var(--text);
}

.family__message {
  max-width: 1080px;
  margin: 0 auto;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: #fff;
  border-radius: 14px;
  padding: 44px 40px;
  text-align: center;
}
.family__message-title {
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: 900;
  letter-spacing: .04em;
  margin-bottom: 16px;
  line-height: 1.5;
}
.family__message p {
  font-size: 14px;
  line-height: 2;
  color: rgba(255,255,255,.92);
}

@media (max-width: 900px) {
  .family__points { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .family { padding: 70px 0; }
  .family__inner { padding: 0 20px; }
  .family-point {
    grid-template-columns: 56px 1fr;
    gap: 14px;
    padding: 20px 22px;
  }
  .family-point__icon { width: 56px; height: 56px; }
  .family-point__icon svg { width: 28px; height: 28px; }
  .family-point h3 { font-size: 16px; }
  .family__message { padding: 32px 22px; text-align: left; }
  .family__message p br { display: none; }
}

/* ============================================
   Entry CTA Section
============================================ */
.entry-cta {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 100px 0;
}
.entry-cta__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}

/* features：appeal__top の下に独立配置 */
.entry-cta__features {
  display: flex;
  gap: 48px;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 0 48px;
}
.entry-cta__features li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
}
.entry-cta__feature-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #d8e3f0;
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(13,59,140,.08);
}

/* 矢印型エントリーボタン */
.entry-arrow {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: #fff;
  padding: 30px 80px 30px 40px;
  margin: 0 auto 56px;
  max-width: 920px;
  text-align: center;
  -webkit-clip-path: polygon(0 0, calc(100% - 50px) 0, 100% 50%, calc(100% - 50px) 100%, 0 100%, 50px 50%);
  clip-path: polygon(0 0, calc(100% - 50px) 0, 100% 50%, calc(100% - 50px) 100%, 0 100%, 50px 50%);
  transition: transform .25s ease, filter .25s ease;
}
.entry-arrow:hover {
  transform: translateY(-3px);
  filter: brightness(1.05);
}
.entry-arrow__sub {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  opacity: .9;
}
.entry-arrow__main {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 900;
  letter-spacing: .04em;
  margin: 4px 0;
}
.entry-arrow__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  flex-shrink: 0;
  transition: transform .25s ease, background .25s ease;
}
.entry-arrow:hover .entry-arrow__icon {
  transform: translateX(4px);
  background: rgba(255,255,255,.3);
}
.entry-arrow__note {
  font-size: 13px;
  font-weight: 500;
  opacity: .9;
}

/* 下部：電話カード */
.entry-cta__contact {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(13,59,140,.08);
  padding: 36px 40px;
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}
.entry-cta__tel {
  display: inline-flex;
  align-items: center;
  gap: 22px;
  text-align: left;
}
.entry-cta__tel-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 6px 16px rgba(13,59,140,.25);
}
.entry-cta__tel-icon svg { width: 32px; height: 32px; }
.entry-cta__tel-body {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}
.entry-cta__tel-label {
  font-size: 12px;
  color: var(--text-sub);
  margin-bottom: 4px;
}
.entry-cta__tel-num {
  font-family: "Roboto", sans-serif;
  font-size: 34px;
  font-weight: 900;
  color: var(--primary-dark);
  letter-spacing: .02em;
  line-height: 1.1;
  margin-bottom: 6px;
  white-space: nowrap;
}
.entry-cta__tel-hours {
  font-size: 12px;
  color: var(--text-sub);
}
.entry-cta__tel-hours strong {
  color: var(--primary);
  font-weight: 700;
}
.entry-cta__mail-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 4px;
  padding: 12px 22px;
  border: 2px solid var(--primary);
  border-radius: 8px;
  color: var(--primary);
  font-size: 14px;
  font-weight: 700;
  background: #fff;
  transition: background .2s, color .2s;
}
.entry-cta__mail-btn:hover {
  background: var(--primary);
  color: #fff;
}
.entry-cta__mail-arrow {
  font-size: 18px;
  transition: transform .2s;
}
.entry-cta__mail-btn:hover .entry-cta__mail-arrow { transform: translateX(4px); }

@media (max-width: 1100px) {
  .entry-cta__features { gap: 24px; }
}
@media (max-width: 720px) {
  .entry-cta { padding: 70px 0; }
  .entry-cta__inner { padding: 0 20px; }
  .entry-cta__features { gap: 18px; justify-content: space-around; }
  .entry-cta__feature-icon { width: 64px; height: 64px; }
  .entry-cta__feature-icon svg { width: 26px; height: 26px; }
  .entry-arrow {
    padding: 22px 50px 22px 30px;
    -webkit-clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 50%, calc(100% - 24px) 100%, 0 100%, 24px 50%);
    clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 50%, calc(100% - 24px) 100%, 0 100%, 24px 50%);
  }
  .entry-arrow__main { font-size: 20px; gap: 12px; }
  .entry-arrow__icon { width: 36px; height: 36px; }
  .entry-cta__contact { padding: 24px; }
  .entry-cta__tel-num { font-size: 24px; }
}

/* ============================================
   Footer
============================================ */
.footer {
  position: relative;
  background: #0a1f4a;
  color: #fff;
  padding: 80px 0 0;
  border-top: 1px solid rgba(255,255,255,.08);
  overflow: hidden;
}
.footer::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: rgba(255,255,255,.15);
}
.footer__inner {
  position: relative;
  z-index: 2;
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1.2fr;
  gap: 64px;
  padding-bottom: 64px;
}

/* ----- Brand ----- */
.footer__col--brand .footer__logo {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}
.footer__logo img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}
.footer__logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.footer__logo-jp {
  font-size: 22px;
  font-weight: 900;
  color: #fff;
  letter-spacing: .06em;
}
.footer__logo-en {
  font-family: "Roboto", sans-serif;
  font-size: 11px;
  font-weight: 500;
  color: rgba(255,255,255,.55);
  letter-spacing: .15em;
  margin-top: 4px;
}
.footer__desc {
  font-size: 14px;
  line-height: 1.9;
  color: rgba(255,255,255,.85);
  margin-bottom: 22px;
}
.footer__info {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer__info li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 13px;
  color: rgba(255,255,255,.85);
  line-height: 1.6;
}
.footer__info-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(59,134,214,.25);
  color: #6fb3ed;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ----- Column title ----- */
.footer__col-title {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,.18);
  position: relative;
}
.footer__col-title::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 48px;
  height: 2px;
  background: var(--primary-light);
}

/* ----- Site links ----- */
.footer__links {
  display: flex;
  flex-direction: column;
  margin-top: 8px;
}
.footer__links li {
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer__links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 4px;
  font-size: 14px;
  color: #fff;
  transition: color .2s, padding-left .2s;
}
.footer__links a::after {
  content: "›";
  font-size: 18px;
  color: var(--primary-light);
  transition: transform .2s;
}
.footer__links a:hover {
  color: var(--primary-light);
  padding-left: 6px;
}
.footer__links a:hover::after { transform: translateX(4px); }

/* ----- Contact ----- */
.footer__contact-lead {
  font-size: 14px;
  line-height: 1.85;
  color: rgba(255,255,255,.85);
  margin-bottom: 18px;
}
.footer__cta {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--primary-light);
  color: #fff;
  padding: 18px 24px;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 26px;
  box-shadow: 0 8px 18px rgba(59,134,214,.25);
  transition: background .2s, transform .2s, box-shadow .2s;
}
.footer__cta:hover {
  background: #2c6cb8;
  transform: translateY(-2px);
  box-shadow: 0 12px 22px rgba(59,134,214,.35);
}
.footer__cta-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.footer__cta-text { flex: 1; }
.footer__cta-arrow {
  font-size: 22px;
  transition: transform .2s;
}
.footer__cta:hover .footer__cta-arrow { transform: translateX(4px); }

.footer__tel {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 8px;
}
.footer__tel-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--primary-light);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.footer__tel-body {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.footer__tel-label {
  font-size: 12px;
  color: rgba(255,255,255,.7);
  margin-bottom: 4px;
}
.footer__tel-num {
  font-family: "Roboto", sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .02em;
}
.footer__hours {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: rgba(255,255,255,.85);
  padding-left: 62px;
}
.footer__hours-tag {
  display: inline-block;
  padding: 3px 10px;
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 4px;
  font-size: 11px;
  letter-spacing: .04em;
}

/* ----- Silhouette decoration ----- */
.footer__silhouette {
  position: relative;
  margin-top: 24px;
  pointer-events: none;
}
.footer__silhouette svg {
  display: block;
  width: 100%;
  height: 90px;
}

/* ----- Bottom bar ----- */
.footer__bottom {
  background: #051433;
  padding: 18px 0;
}
.footer__bottom-inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.footer__copy {
  font-family: "Roboto", sans-serif;
  font-size: 12px;
  color: rgba(255,255,255,.6);
}
.footer__bottom-links {
  display: flex;
  gap: 0;
  align-items: center;
}
.footer__bottom-links li {
  position: relative;
  padding: 0 16px;
}
.footer__bottom-links li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 12px;
  background: rgba(255,255,255,.3);
}
.footer__bottom-links a {
  font-size: 12px;
  color: rgba(255,255,255,.85);
  transition: color .2s;
}
.footer__bottom-links a:hover { color: #fff; }

/* ============================================
   Responsive
============================================ */
@media (max-width: 1100px) {
  .header__nav-list { gap: 22px; font-size: 14px; }
  .hero__entry { min-width: 0; width: 100%; padding: 20px 28px; font-size: 18px; }
  .hero__features { gap: 20px; }
}

@media (max-width: 900px) {
  .header__nav {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,.97);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    z-index: 150;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
  }
  .header__nav-list {
    flex-direction: column;
    gap: 28px;
    text-align: center;
    font-size: 18px;
  }
  .header__nav-list a {
    font-size: 18px;
    font-weight: 700;
    color: var(--primary-dark);
    padding: 10px 24px;
  }
  .header__nav-list a::after { display: none; }
  .header.is-menu-open .header__nav {
    opacity: 1;
    visibility: visible;
  }
  .header__cta {
    position: fixed;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 160;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
    padding: 16px 36px;
    font-size: 15px;
    white-space: nowrap;
  }
  .header.is-menu-open .header__cta {
    opacity: 1;
    visibility: visible;
  }
  .header__burger { display: flex; margin-left: auto; }
  .header__logo-jp { font-size: 18px; }
  .header__logo-en { font-size: 11px; }
  .hero {
    min-height: 0;
    padding-bottom: 30px;
  }
  .hero__bg {
    bottom: auto;
    height: 540px;
  }
  .hero__inner {
    padding: 40px 20px 0;
    box-sizing: border-box;
  }
  .hero__copy {
    max-width: 100%;
  }
  .hero__sub { font-size: 22px; }
  .hero__sub--indent { padding-left: 1em; }
  .hero__title {
    font-size: 26px;
    margin-top: 280px;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0,30,80,.45);
  }
  .hero__divider {
    background: #fff;
    border-color: #fff;
  }
  .hero__features { display: none; }
  .hero__entry {
    font-size: 16px;
    padding: 18px 22px;
    gap: 10px;
    margin-top: 50px;
  }
  .hero__entry-icon { width: 30px; height: 30px; }
  .hero__highlights {
    grid-template-columns: 1fr;
    padding: 0 20px;
    margin-top: 30px;
    gap: 12px;
  }
  .highlight { min-height: 80px; }
  .highlight__image { width: 90px; }
  .hero__bg::after {
    background: linear-gradient(180deg,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.95) 15%,
      rgba(255,255,255,.7) 25%,
      rgba(255,255,255,.25) 35%,
      rgba(255,255,255,0) 50%);
  }
  .hero__nav {
    bottom: auto;
    top: 500px;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
}

@media (max-width: 600px) {
  .header { height: 70px; }
  .header__inner { padding: 0 16px; }
  .header__logo-mark { width: 40px; height: 40px; }
  .header__logo-text { flex-direction: column; gap: 0; align-items: flex-start; line-height: 1.1; }
  .header__logo-en { font-size: 10px; margin-top: 2px; }
  .hero { min-height: 0; padding-top: 70px; }
  .hero__bg { height: 500px; }
  .hero__title { margin-top: 170px; }
  .hero__title { font-size: 22px; line-height: 1.5; }
  .hero__entry-tag { font-size: 10px; padding: 3px 10px; left: 16px; }
  .hero__nav { top: 490px; }
}

@media (max-width: 980px) {
  .footer { padding-top: 56px; }
  .footer__grid { grid-template-columns: 1fr; gap: 40px; padding-bottom: 40px; }
  .footer__col-title::after { width: 36px; }
  .footer__tel-num { font-size: 24px; }
  .footer__bottom-inner { flex-direction: column; gap: 10px; }
}

/* ============================================
   Sub Page Common (求人詳細・エントリー)
============================================ */
.page-hero {
  position: relative;
  padding: 180px 0 70px;
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 60%, var(--primary-light) 100%);
  color: #fff;
  overflow: hidden;
}
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.15), transparent 40%),
    radial-gradient(circle at 20% 80%, rgba(255,255,255,.1), transparent 35%);
  pointer-events: none;
}
.page-hero__inner {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}
.page-hero__tag {
  font-family: "Roboto", sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .25em;
  opacity: .85;
  display: inline-block;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid rgba(255,255,255,.6);
}
.page-hero__title {
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 900;
  letter-spacing: .04em;
  line-height: 1.4;
  margin-bottom: 16px;
}
.page-hero__sub {
  font-size: clamp(14px, 1.4vw, 17px);
  line-height: 1.8;
  opacity: .95;
}

.breadcrumb {
  background: #f3f7fc;
  border-bottom: 1px solid #dfe7f1;
}
.breadcrumb__list {
  max-width: 1280px;
  margin: 0 auto;
  padding: 14px 32px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  font-size: 12px;
  color: var(--text-sub);
}
.breadcrumb__list li:not(:last-child)::after {
  content: "›";
  margin-left: 12px;
  color: var(--primary-light);
}
.breadcrumb__list a { color: var(--primary); transition: color .2s; }
.breadcrumb__list a:hover { color: var(--primary-dark); text-decoration: underline; }

/* 求人詳細 */
.job-detail {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 80px 0;
}
.job-detail__inner {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 32px;
}
.job-detail__lead {
  background: #fff;
  border-left: 5px solid var(--primary);
  padding: 22px 26px;
  border-radius: 0 10px 10px 0;
  font-size: 15px;
  line-height: 1.9;
  margin-bottom: 40px;
  box-shadow: 0 4px 14px rgba(13,59,140,.06);
}
.job-detail__table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 22px rgba(13,59,140,.08);
}
.job-detail__table th,
.job-detail__table td {
  padding: 22px 26px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid #e1e7ee;
  font-size: 14px;
  line-height: 1.8;
}
.job-detail__table tr:last-child th,
.job-detail__table tr:last-child td {
  border-bottom: none;
}
.job-detail__table th {
  background: var(--bg-soft);
  color: var(--primary-dark);
  font-weight: 700;
  width: 200px;
  letter-spacing: .04em;
}
.job-detail__table td strong {
  color: var(--primary-dark);
  font-weight: 900;
  font-size: 16px;
}
.job-detail__cta {
  margin-top: 50px;
  text-align: center;
}
.job-detail__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: var(--primary);
  color: #fff;
  padding: 22px 56px;
  border-radius: 999px;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: .05em;
  box-shadow: 0 14px 28px rgba(13,59,140,.3);
  transition: background .25s, transform .25s, box-shadow .25s;
}
.job-detail__cta-btn:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 18px 36px rgba(13,59,140,.4);
}
.job-detail__cta-note {
  margin-top: 14px;
  font-size: 13px;
  color: var(--text-sub);
}

/* 関連求人ナビ */
.job-related {
  background: #fff;
  padding: 70px 0;
  border-top: 1px solid #eaeef3;
}
.job-related__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}
.job-related__title {
  text-align: center;
  font-size: 22px;
  font-weight: 900;
  color: var(--primary-dark);
  margin-bottom: 28px;
  letter-spacing: .06em;
}
.job-related__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.job-related__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 22px 24px;
  background: var(--bg-soft);
  border-radius: 12px;
  transition: background .2s, transform .2s;
  color: var(--primary-dark);
  font-weight: 700;
}
.job-related__item:hover {
  background: var(--primary);
  color: #fff;
  transform: translateY(-2px);
}
.job-related__item-arrow { margin-left: auto; }

/* エントリーフォーム */
.entry-form {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 80px 0 100px;
}
.entry-form__inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 32px;
}
.entry-form__lead {
  text-align: center;
  font-size: 15px;
  line-height: 1.9;
  margin-bottom: 40px;
}
.entry-form__steps {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 40px;
  flex-wrap: wrap;
}
.entry-form__step {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 22px;
  background: #fff;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-sub);
  box-shadow: 0 4px 14px rgba(13,59,140,.06);
}
.entry-form__step.is-active {
  background: var(--primary);
  color: #fff;
}
.entry-form__step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(255,255,255,.25);
  font-family: "Roboto", sans-serif;
  font-size: 13px;
  font-weight: 900;
}
.entry-form__step:not(.is-active) .entry-form__step-num {
  background: var(--bg-soft);
  color: var(--primary);
}
.entry-form__form {
  background: #fff;
  border-radius: 14px;
  padding: 48px 56px;
  box-shadow: 0 8px 28px rgba(13,59,140,.08);
}
.entry-form__row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid #eaeef3;
  align-items: start;
}
.entry-form__row:first-child { padding-top: 0; }
.entry-form__row:last-of-type { border-bottom: none; padding-bottom: 0; }
.entry-form__label {
  font-weight: 700;
  color: var(--primary-dark);
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 12px;
  font-size: 14px;
}
.entry-form__required {
  background: #d92846;
  color: #fff;
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 4px;
  font-weight: 700;
  letter-spacing: .05em;
}
.entry-form__optional {
  background: var(--bg-soft);
  color: var(--primary);
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 4px;
  font-weight: 700;
  letter-spacing: .05em;
}
.entry-form__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.entry-form__field input[type="text"],
.entry-form__field input[type="tel"],
.entry-form__field input[type="email"],
.entry-form__field input[type="date"],
.entry-form__field select,
.entry-form__field textarea {
  width: 100%;
  border: 1px solid #d8e3f0;
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 14px;
  font-family: inherit;
  background: #fafcff;
  transition: border-color .2s, box-shadow .2s;
}
.entry-form__field input:focus,
.entry-form__field select:focus,
.entry-form__field textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(13,59,140,.1);
  background: #fff;
}
.entry-form__field-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.entry-form__field-row > * { flex: 1; min-width: 140px; }
.entry-form__field textarea { min-height: 140px; resize: vertical; }
.entry-form__hint {
  font-size: 12px;
  color: var(--text-sub);
}
.entry-form__radio-group {
  display: flex;
  gap: 24px;
  padding-top: 8px;
  flex-wrap: wrap;
}
.entry-form__radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 14px;
}
.entry-form__radio input { accent-color: var(--primary); width: 18px; height: 18px; }
.entry-form__privacy {
  background: var(--bg-soft);
  border-radius: 10px;
  padding: 22px 24px;
  margin-top: 32px;
  font-size: 13px;
  line-height: 1.8;
  color: var(--text);
}
.entry-form__agree {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}
.entry-form__agree input { accent-color: var(--primary); width: 18px; height: 18px; }
.entry-form__submit-wrap {
  text-align: center;
  margin-top: 36px;
}
.entry-form__submit {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: var(--primary);
  color: #fff;
  padding: 20px 64px;
  border-radius: 999px;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: .05em;
  box-shadow: 0 14px 28px rgba(13,59,140,.3);
  transition: background .25s, transform .25s, box-shadow .25s;
  border: none;
  cursor: pointer;
}
.entry-form__submit:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 18px 36px rgba(13,59,140,.4);
}
.entry-form__tel-alt {
  text-align: center;
  margin-top: 36px;
  padding-top: 32px;
  border-top: 1px solid #e1e7ee;
}
.entry-form__tel-alt p { font-size: 14px; color: var(--text-sub); margin-bottom: 10px; }
.entry-form__tel-num {
  font-family: "Roboto", sans-serif;
  font-size: 32px;
  font-weight: 900;
  color: var(--primary);
  letter-spacing: .04em;
}

@media (max-width: 980px) {
  .page-hero { padding: 130px 0 50px; }
  .job-detail__table th { width: 130px; padding: 18px 16px; font-size: 13px; }
  .job-detail__table td { padding: 18px 16px; }
  .job-related__list { grid-template-columns: 1fr; }
  .entry-form__form { padding: 32px 24px; }
  .entry-form__row { grid-template-columns: 1fr; gap: 8px; padding: 16px 0; }
  .entry-form__label { padding-top: 0; }
}
@media (max-width: 720px) {
  .page-hero__inner { padding: 0 20px; }
  .breadcrumb__list { padding: 12px 20px; }
  .job-detail__inner { padding: 0 20px; }
  .job-detail__cta-btn { width: 100%; padding: 18px 20px; font-size: 15px; }
  .job-related__inner { padding: 0 20px; }
  .entry-form__inner { padding: 0 20px; }
  .entry-form__submit { width: 100%; padding: 18px 20px; font-size: 15px; }
  .entry-form__tel-num { font-size: 26px; }
}

/* ============================================
   Legal (Privacy Policy)
============================================ */
.legal {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 80px 0 100px;
}
.legal__inner {
  max-width: 880px;
  margin: 0 auto;
  padding: 0 32px;
}
.legal__lead {
  background: #fff;
  border-left: 5px solid var(--primary);
  padding: 22px 26px;
  border-radius: 0 10px 10px 0;
  font-size: 15px;
  line-height: 1.9;
  margin-bottom: 50px;
  box-shadow: 0 4px 14px rgba(13,59,140,.06);
}
.legal__article {
  background: #fff;
  border-radius: 12px;
  padding: 32px 36px;
  margin-bottom: 18px;
  box-shadow: 0 4px 14px rgba(13,59,140,.06);
}
.legal__h2 {
  font-size: 18px;
  font-weight: 900;
  color: var(--primary-dark);
  letter-spacing: .04em;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--primary-light);
}
.legal__article p {
  font-size: 14px;
  line-height: 1.9;
  color: var(--text);
  margin-bottom: 12px;
}
.legal__article p:last-child { margin-bottom: 0; }
.legal__list {
  margin: 8px 0 16px 0;
  padding-left: 0;
}
.legal__list li {
  position: relative;
  padding-left: 22px;
  font-size: 14px;
  line-height: 1.9;
  color: var(--text);
}
.legal__list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 13px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary-light);
}
.legal__contact {
  background: var(--bg-soft);
  border-radius: 10px;
  padding: 18px 22px;
  margin-top: 12px;
}
.legal__contact p {
  margin-bottom: 6px;
  font-size: 14px;
}
.legal__contact a {
  color: var(--primary);
  font-weight: 700;
  text-decoration: underline;
}
.legal__updated {
  text-align: right;
  font-size: 12px;
  color: var(--text-sub);
  margin-top: 30px;
  line-height: 1.8;
}

/* ============================================
   Sitemap
============================================ */
.sitemap {
  background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
  padding: 80px 0 100px;
}
.sitemap__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}
.sitemap__group {
  background: #fff;
  border-radius: 14px;
  padding: 30px 32px 26px;
  box-shadow: 0 4px 14px rgba(13,59,140,.06);
}
.sitemap__h2 {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 18px;
  font-weight: 900;
  color: var(--primary-dark);
  letter-spacing: .05em;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--primary-light);
}
.sitemap__h2-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
  color: #fff;
  flex-shrink: 0;
}
.sitemap__list { display: flex; flex-direction: column; gap: 4px; }
.sitemap__list a {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 8px;
  transition: background .2s, transform .2s, color .2s;
  border-left: 3px solid transparent;
}
.sitemap__list a span {
  font-size: 15px;
  font-weight: 700;
  color: var(--primary-dark);
}
.sitemap__list a small {
  font-size: 12px;
  color: var(--text-sub);
}
.sitemap__list a:hover {
  background: var(--bg-soft);
  border-left-color: var(--primary);
  transform: translateX(4px);
}
.sitemap__list a:hover span { color: var(--primary); }

@media (max-width: 980px) {
  .sitemap__inner { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 720px) {
  .legal__inner { padding: 0 20px; }
  .legal__article { padding: 24px 22px; }
  .legal__h2 { font-size: 16px; }
  .sitemap__inner { padding: 0 20px; }
  .sitemap__group { padding: 24px 22px 20px; }
}
