@charset "UTF-8";
/* =====================================================
   MIKADO RECRUIT - CSS
   akagi-theme design transplant
===================================================== */

:root {
  --r-accent: #c0392b;
  --r-dark: #222;
  --r-gray: #F7F7F7;
}

/* =====================================================
   Reset / Base
===================================================== */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  color: #333;
  line-height: 2;
  letter-spacing: 0.06em;
  font-size: 16px;
}
@media screen and (max-width: 375px) {
  html { font-size: 4.2666666667vw; }
}
body { min-height: 100vh; }
ul, ol { list-style: none; margin: 0; padding: 0; }
dl, dd, dt { margin: 0; padding: 0; }
h1, h2, h3, h4, h5, h6, p, figure, blockquote {
  margin: 0; padding: 0; border: 0;
  font: inherit; font-size: 100%;
}
img { display: block; max-width: 100%; height: auto; }
a { text-decoration: none; color: inherit; transition: opacity 0.3s; }
a:hover { opacity: 0.7; }
button { padding: 0; border: none; background: transparent; font: inherit; cursor: pointer; transition: opacity 0.3s; }
button:hover { opacity: 0.7; }
input, button, textarea, select {
  -webkit-appearance: none; appearance: none;
  background: transparent; border: none; border-radius: 0;
  font: inherit; outline: none;
}
textarea { resize: vertical; }
input[type=checkbox], input[type=radio] { display: none; }

/* =====================================================
   Utilities
===================================================== */
.u-pc { display: block; }
.u-sp { display: none; }
@media screen and (max-width: 767px) {
  .u-pc { display: none; }
  .u-sp { display: block; }
}

/* =====================================================
   Layout
===================================================== */
.l-inner {
  width: 100%; max-width: 1250px;
  padding-right: 25px; padding-left: 25px;
  margin-right: auto; margin-left: auto;
}
@media screen and (max-width: 767px) {
  .l-inner { padding-right: 20px; padding-left: 20px; }
}

.l-page { padding: 100px 0 80px; padding: 6.25rem 0 5rem; }
@media screen and (max-width: 767px) {
  .l-page { padding: 3.75rem 0 2.5rem; }
}

.l-main { overflow: hidden; }

/* =====================================================
   Header
===================================================== */
.header {
  position: fixed; left: 0; top: 0;
  width: 100%; z-index: 100;
}
.header__inner {
  display: flex; justify-content: space-between; align-items: center; padding-right: 20px; height: 90px;
}
.header__logo { width: 200px; max-width: 100%; }
.header__logo a { display: block; }
.header__nav { }
@media screen and (max-width: 767px) {
  .header__inner { height: 60px; }
  .header__logo { width: 120px; }
  .header__nav { display: none; }
}

/* =====================================================
   GNav
===================================================== */
.gnav {
  display: flex; gap: 40px; height: 60px;
  border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.08);
  background: rgba(255,255,255,.9); padding-left: 40px;
}
@media screen and (max-width: 1350px) {
  .gnav { padding-left: 20px; gap: 20px; }
}
.gnav__items { display: flex; align-items: center; gap: 30px; height: inherit; }
@media screen and (max-width: 1350px) {
  .gnav__items { gap: 15px; }
}
.gnav__item { display: flex; align-items: center; height: inherit; }
.gnav__item a {
  display: flex; align-items: center; height: inherit;
  font-weight: 700; letter-spacing: 0.06em;
  padding-left: 14px; position: relative; font-size: 14px;
}
@media screen and (max-width: 1350px) {
  .gnav__item a { font-size: 13px; }
}
.gnav__item a::before {
  position: absolute; content: "";
  width: 8px; height: 8px; top: 50%; transform: translateY(-50%);
  left: 0; border-radius: 50%; background: var(--r-accent);
}
.gnav__btn {
  display: flex; align-items: center; justify-content: center;
  height: inherit; width: 150px; max-width: 100%;
  font-family: "Poppins", sans-serif; font-size: 18px; color: #fff;
  font-weight: 500; letter-spacing: 0.04em;
  border-radius: 0 4px 4px 0; background: var(--r-accent); position: relative;
}
.gnav__btn::after {
  position: absolute; content: "›"; font-size: 22px; line-height: 1;
  right: 14px; top: 50%; transform: translateY(-50%);
}

/* =====================================================
   Hamburger (SP)
===================================================== */
.hamburger {
  position: absolute; z-index: 30; right: 10px; top: 10px;
  width: 40px; height: 40px; border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,.08);
  background: rgba(255,255,255,.9); cursor: pointer;
}
.hamburger.active .hamburger__border { top: 20px; }
.hamburger.active .hamburger__border:nth-child(1) { transform: rotate(-45deg); }
.hamburger.active .hamburger__border:nth-child(2),
.hamburger.active .hamburger__border:nth-child(3) { transform: rotate(45deg); }
.hamburger__border {
  display: block; position: absolute; width: 15px; height: 2px;
  left: 13px; background: var(--r-accent); border-radius: 10px;
  transition: 0.3s ease-in-out;
}
.hamburger__border:nth-child(1) { top: 14px; }
.hamburger__border:nth-child(2) { top: 20px; }
.hamburger__border:nth-child(3) { top: 26px; }

/* =====================================================
   Drawer (SP)
===================================================== */
.drawer {
  position: fixed; z-index: 20; top: 0; right: 0;
  background: #fff; transform: translateX(100%);
  transition: all 0.6s; box-shadow: -5px 5px 20px rgba(0,0,0,.2);
  width: 300px; max-width: 100%; padding: 80px 25px 40px;
}
.drawer.active { transform: translateX(0); }
.drawer__item + .drawer__item { margin-top: 20px; }
.drawer__item a {
  display: inline-block; font-weight: 700;
  letter-spacing: 0.06em; padding-left: 14px; position: relative;
}
.drawer__item a::before {
  position: absolute; content: "";
  width: 8px; height: 8px; top: 50%; transform: translateY(-50%);
  left: 0; border-radius: 50%; background: var(--r-accent);
}
.drawer__btn {
  display: block; text-align: center; width: 200px; max-width: 100%;
  font-family: "Poppins", sans-serif; font-size: 20px; color: #fff;
  font-weight: 500; letter-spacing: 0.04em;
  background: var(--r-accent); margin: 40px auto 0; padding: 15px;
}

/* =====================================================
   Floating ENTRY Button
===================================================== */
.floating {
  position: fixed; left: 0; bottom: 0;
  width: 100%; z-index: 100;
  background: rgba(0,0,0,.4); padding: 10px;
}
.floating a {
  display: block; width: 720px; max-width: 100%;
  margin: 0 auto; text-align: center;
  font-family: "Poppins", sans-serif; font-size: 20px;
  font-weight: 500; letter-spacing: 0.04em;
  color: #fff; background: var(--r-accent); padding: 17px; position: relative;
}
@media screen and (max-width: 767px) {
  .floating a { padding: 15px; font-size: 16px; }
}
.floating a::after {
  position: absolute; content: "›"; font-size: 26px; line-height: 1;
  right: 20px; top: 50%; transform: translateY(-50%);
}

/* =====================================================
   Footer
===================================================== */
.footer {
  color: #fff; background: var(--r-accent);
  padding: 60px 0 120px;
}
@media screen and (max-width: 767px) { .footer { padding: 40px 0 100px; } }
.footer__inner { display: flex; justify-content: space-between; }
@media screen and (max-width: 767px) { .footer__inner { display: block; } }
.footer__logo { width: 150px; max-width: 100%; }
@media screen and (max-width: 767px) { .footer__logo { width: 100px; margin: 0 auto; } }
.footer__body { display: flex; flex-direction: column; }
@media screen and (max-width: 767px) { .footer__nav { margin-top: 35px; } }
.footer__copyright {
  text-align: right; font-size: 14px; letter-spacing: 0.06em;
  font-weight: 700; margin-top: auto;
}
@media screen and (max-width: 767px) { .footer__copyright { text-align: center; margin-top: 30px; } }

.fnav__items { display: flex; gap: 40px; }
@media screen and (max-width: 767px) { .fnav__items { display: block; text-align: center; } }
@media screen and (max-width: 767px) { .fnav__item + .fnav__item { margin-top: 20px; } }
.fnav__item a {
  display: inline-block; font-weight: 700; color: #fff;
  letter-spacing: 0.06em; padding-left: 14px; position: relative; font-size: 14px;
}
.fnav__item a::before {
  position: absolute; content: "";
  width: 8px; height: 8px; left: 0; top: 50%; transform: translateY(-50%);
  background: #fff; border-radius: 50%;
}

/* =====================================================
   Btn
===================================================== */
.btn {
  display: block; width: 230px; max-width: 100%;
  letter-spacing: 0.06em; border: 1px solid #000;
  padding: 17px 40px 17px 20px; position: relative; font-size: 16px;
}
@media screen and (max-width: 767px) {
  .btn { width: 160px; font-size: 14px; padding: 10px 30px 10px 15px; }
}
.btn::after {
  position: absolute; content: "›"; font-size: 20px; line-height: 1;
  right: 14px; top: 50%; transform: translateY(-50%);
}

/* =====================================================
   Title / Subtitle
===================================================== */
.title { font-size: 40px; font-size: 2.5rem; font-weight: 700; letter-spacing: 0.06em; }
@media screen and (max-width: 767px) { .title { font-size: 24px; font-size: 1.5rem; } }
.subtitle {
  font-size: 20px; font-size: 1.25rem; font-weight: 700; letter-spacing: 0.06em;
  color: var(--r-accent); margin-top: 10px; margin-top: 0.625rem;
}
@media screen and (max-width: 767px) { .subtitle { font-size: 0.875rem; margin-top: 0.4375rem; } }

/* =====================================================
   Page Title
===================================================== */
.page-title {
  text-align: center; font-size: 40px;
  font-weight: 700; letter-spacing: 0.06em;
}
@media screen and (max-width: 767px) { .page-title { font-size: 24px; } }

/* =====================================================
   Form
===================================================== */
.form__items { display: block; }
.form__item { display: flex; justify-content: space-between; }
@media screen and (max-width: 767px) { .form__item { display: block; } }
.form__item + .form__item { margin-top: 40px; }
@media screen and (max-width: 767px) { .form__item + .form__item { margin-top: 30px; } }

.form__item-label { width: 28%; padding-top: 10px; }
@media screen and (max-width: 767px) { .form__item-label { width: 100%; padding-top: 0; } }
.form__item-label label {
  display: inline-block; font-size: 18px; font-weight: 700; letter-spacing: 0.06em;
}
@media screen and (max-width: 767px) { .form__item-label label { font-size: 16px; } }
.form__item-label span {
  display: inline-block; font-size: 14px; color: var(--r-accent);
  letter-spacing: 0.06em; margin-left: 8px;
}

.form__item-input { width: 72%; }
@media screen and (max-width: 767px) { .form__item-input { width: 100%; margin-top: 10px; } }
.form__item-input input[type=text],
.form__item-input input[type=tel],
.form__item-input input[type=email],
.form__item-input input[type=date],
.form__item-input select,
.form__item-input textarea {
  width: 100%; font-size: 18px; letter-spacing: 0.06em;
  border: 1px solid #ccc; padding: 10px 15px; background: #fff;
}
@media screen and (max-width: 767px) {
  .form__item-input input[type=text],
  .form__item-input input[type=tel],
  .form__item-input input[type=email],
  .form__item-input input[type=date],
  .form__item-input select,
  .form__item-input textarea { font-size: 16px; }
}
.form__item-input input[type=text]::placeholder,
.form__item-input input[type=tel]::placeholder,
.form__item-input input[type=email]::placeholder,
.form__item-input textarea::placeholder { color: #B3B3B3; }
.form__item-input input[type=text],
.form__item-input input[type=tel],
.form__item-input input[type=email],
.form__item-input input[type=date] { height: 48px; }
.form__item-input textarea { resize: vertical; height: 160px; }
.form__item-input select {
  height: 48px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 12px center;
  padding-right: 30px; cursor: pointer;
}
.form__item-input input.is-error,
.form__item-input textarea.is-error,
.form__item-input select.is-error { border-color: var(--r-accent); }
.form__item-text { font-size: 14px; color: #666; margin-top: 4px; }

/* Radio */
.form__radio label { display: inline-block; }
.form__radio label:not(:last-child) { margin-bottom: 10px; }
.form__radio input[type=radio] + span {
  cursor: pointer; display: inline-block;
  font-size: 18px; letter-spacing: 0.06em;
  padding-left: 30px; position: relative;
}
@media screen and (max-width: 767px) { .form__radio input[type=radio] + span { font-size: 16px; } }
.form__radio input[type=radio] + span::before,
.form__radio input[type=radio] + span::after { position: absolute; content: ""; }
.form__radio input[type=radio] + span::before {
  display: block; background: #fff; border-radius: 50%;
  border: 1px solid #ccc; top: 50%; transform: translateY(-50%);
  left: 0; width: 24px; height: 24px;
}
.form__radio input[type=radio] + span::after {
  height: 12px; width: 12px; background: #000;
  border-radius: 50%; opacity: 0; transition: all 0.3s;
  left: 6px; top: 8px;
}
@media screen and (max-width: 767px) { .form__radio input[type=radio] + span::after { top: 6px; } }
.form__radio input[type=radio]:checked + span::after { opacity: 1; }

/* Checkbox */
.form__check { text-align: center; margin-top: 40px; }
.form__check input[type=checkbox] + span {
  cursor: pointer; display: inline-block;
  font-size: 18px; letter-spacing: 0.06em;
  padding-left: 34px; position: relative;
}
@media screen and (max-width: 767px) { .form__check input[type=checkbox] + span { font-size: 15px; } }
.form__check input[type=checkbox] + span::before,
.form__check input[type=checkbox] + span::after { position: absolute; content: ""; }
.form__check input[type=checkbox] + span::before {
  transform: translateY(-50%); width: 24px; height: 24px;
  left: 0; top: 50%; border: 1px solid #CFCFCF;
}
.form__check input[type=checkbox] + span::after {
  border-bottom: 3px solid #000; border-left: 3px solid #000;
  height: 8px; width: 13px; opacity: 0;
  transform: rotate(-45deg); transition: all 0.3s;
  left: 6px; top: 8px;
}
@media screen and (max-width: 767px) { .form__check input[type=checkbox] + span::after { top: 6px; } }
.form__check input[type=checkbox]:checked + span::after { opacity: 1; }
.form__check a { text-decoration: underline; color: var(--r-accent); }

/* Error */
.form__error { display: block; margin-top: 4px; color: var(--r-accent); font-size: 14px; }

/* Button */
.form__button {
  display: block; width: 320px; max-width: 100%;
  font-size: 18px; font-weight: 700; color: #fff;
  background: #C3C3C3; letter-spacing: 0.06em;
  margin: 40px auto 0; padding: 26px; position: relative; text-align: center;
}
@media screen and (max-width: 767px) { .form__button { font-size: 16px; padding: 20px; margin-top: 30px; } }
.form__button::after {
  position: absolute; content: "›"; font-size: 26px; line-height: 1;
  right: 28px; top: 50%; transform: translateY(-50%);
}
.form__button.is-active,
#js-do-submit { background: var(--r-accent); }
.form__button--back { background: #999; }
.form__button--back::after { content: "‹"; left: 28px; right: auto; }
.form__actions {
  display: flex; justify-content: center; gap: 20px; margin-top: 40px;
}
.form__actions .form__button { margin: 0; }
@media screen and (max-width: 767px) {
  .form__actions { flex-direction: column; align-items: center; gap: 15px; }
}

/* Entry */
.entry__content {
  background: #fff; box-shadow: 0 0 16px rgba(65,60,60,.08);
  padding: 60px 150px; margin-top: 80px;
}
@media screen and (max-width: 767px) { .entry__content { padding: 40px 20px; margin-top: 40px; } }
.entry__step[hidden] { display: none; }
.entry__complete-text {
  text-align: center; font-size: 18px; line-height: 2.2; padding: 60px 0;
}

/* =====================================================
   Recruit Page Header
===================================================== */
.recruit-page-header {
  background: #1a1a2e; padding: 120px 0 50px;
  text-align: center; color: #fff; position: relative;
}
.recruit-page-header__bg {
  position: absolute; inset: 0;
}
.recruit-page-header__bg img {
  width: 100%; height: 100%; object-fit: cover; opacity: 0.3;
}
.recruit-page-header__inner { position: relative; z-index: 1; }
.recruit-page-header__en {
  font-size: 13px; letter-spacing: 0.1em;
  text-transform: uppercase; opacity: 0.8;
}
.recruit-page-header__title {
  font-size: 40px; font-weight: 700; letter-spacing: 0.06em; margin-top: 8px;
}
@media screen and (max-width: 767px) {
  .recruit-page-header { padding: 90px 0 35px; }
  .recruit-page-header__title { font-size: 26px; }
}

/* =====================================================
   Recruit TOP
===================================================== */
.recruit-mv {
  background: #1a1a2e; min-height: 500px;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden; padding-top: 100px;
}
.recruit-mv__bg { position: absolute; inset: 0; }
.recruit-mv__bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.4; }
.recruit-mv__body { position: relative; z-index: 1; text-align: center; color: #fff; padding: 40px 20px; }
.recruit-mv__title { font-size: 52px; font-weight: 700; letter-spacing: 0.06em; line-height: 1.3; }
.recruit-mv__subtitle { font-size: 22px; margin-top: 20px; opacity: 0.9; }
.recruit-mv__catch { font-size: 18px; margin-top: 15px; opacity: 0.85; line-height: 1.8; }
@media screen and (max-width: 767px) {
  .recruit-mv { min-height: 300px; }
  .recruit-mv__title { font-size: 30px; }
  .recruit-mv__subtitle { font-size: 16px; }
  .recruit-mv__catch { font-size: 14px; }
}

/* Job cards */
.recruit-jobs { padding: 80px 0; padding: 5rem 0; background: #f5f5f5; }
.recruit-jobs__title-wrap { text-align: center; }
.recruit-jobs__cards {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 30px; margin-top: 50px;
}
@media screen and (max-width: 767px) {
  .recruit-jobs__cards { grid-template-columns: 1fr; gap: 20px; margin-top: 30px; }
}
.recruit-job-card {
  background: #fff; display: block; padding: 40px 30px;
  text-align: center; box-shadow: 0 2px 8px rgba(0,0,0,.08);
  transition: box-shadow 0.3s;
}
.recruit-job-card:hover { opacity: 1; box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.recruit-job-card__en {
  font-size: 12px; color: var(--r-accent); font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
}
.recruit-job-card__title { font-size: 22px; font-weight: 700; margin-top: 8px; letter-spacing: 0.06em; }
.recruit-job-card__text { font-size: 15px; color: #666; margin-top: 15px; line-height: 1.7; }
.recruit-job-card__btn {
  display: inline-block; margin-top: 25px;
  border: 1px solid #ddd; padding: 10px 30px;
  font-size: 14px; letter-spacing: 0.06em; color: var(--r-accent);
  position: relative;
}

/* 組織図 */
.recruit-org { padding: 80px 0; padding: 5rem 0; background: #f5f5f5; }
.recruit-org__img { margin-top: 50px; text-align: center; }
.recruit-org__img img { max-width: 900px; width: 100%; margin: 0 auto; }

/* 数字で見るミカド */
.recruit-numbers { padding: 80px 0; padding: 5rem 0; }
.recruit-numbers__lead {
  margin-top: 30px; margin-top: 1.875rem;
  font-size: 18px; font-size: 1.125rem; line-height: 2; text-align: center;
}
.recruit-numbers__cards {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 24px; margin-top: 50px;
}
.recruit-numbers__cards--6 {
  grid-template-columns: repeat(3, 1fr);
}
@media screen and (max-width: 1024px) {
  .recruit-numbers__cards--6 { grid-template-columns: repeat(2, 1fr); }
}
.recruit-numbers__cards--all {
  grid-template-columns: repeat(5, 1fr);
}
@media screen and (max-width: 1024px) {
  .recruit-numbers__cards--all { grid-template-columns: repeat(3, 1fr); }
}
@media screen and (max-width: 767px) {
  .recruit-numbers__cards--all { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 767px) {
  .recruit-numbers__cards { grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 30px; }
}
.recruit-number-card {
  background: #fff;
  box-shadow: 0px 0px 16px rgba(65,60,60,.08);
  text-align: center; padding: 32px 16px 28px; padding: 2rem 1rem 1.75rem;
}
.recruit-number-card__num {
  font-size: 56px; font-size: 3.5rem; font-weight: 700; color: var(--r-accent);
  line-height: 1; font-family: "Poppins", sans-serif; letter-spacing: 0.02em;
}
.recruit-number-card__num span {
  font-size: 22px; font-size: 1.375rem; font-weight: 700;
}
.recruit-number-card__label {
  font-size: 13px; font-size: 0.8125rem; margin-top: 12px; margin-top: 0.75rem;
  color: #555; letter-spacing: 0.04em; line-height: 1.6;
}
.recruit-number-card__label small {
  display: block; font-size: 11px; font-size: 0.6875rem; color: #888; margin-top: 4px;
}
.recruit-number-card__num--ratio { font-size: 56px; font-size: 3.5rem; letter-spacing: 0.05em; }
.recruit-number-card__num--ratio span { font-size: inherit; }
@media screen and (max-width: 767px) {
  .recruit-number-card__num { font-size: 2rem; }
  .recruit-number-card__num span { font-size: 1rem; }
  .recruit-number-card { padding: 1.375rem 0.75rem 1.25rem; }
  .recruit-number-card__num--ratio { font-size: 2rem; }
}

/* 本社機能 */
.recruit-hq { padding: 80px 0; padding: 5rem 0; background: #f5f5f5; }
.recruit-hq__intro {
  margin-top: 30px; margin-top: 1.875rem;
  font-size: 18px; font-size: 1.125rem; line-height: 2;
}
.recruit-hq__depts {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 24px; margin-top: 50px;
}
@media screen and (max-width: 767px) {
  .recruit-hq__depts { grid-template-columns: 1fr; gap: 16px; margin-top: 30px; }
}
.recruit-hq-dept {
  background: #fff; padding: 30px 30px 35px; border-top: 4px solid var(--r-accent);
}
.recruit-hq-dept__name {
  font-size: 20px; font-size: 1.25rem; font-weight: 700; letter-spacing: 0.06em;
}
.recruit-hq-dept__text {
  font-size: 16px; font-size: 1rem; color: #555; line-height: 2; margin-top: 14px; margin-top: 0.875rem;
}
@media screen and (max-width: 767px) {
  .recruit-hq-dept { padding: 22px 22px 28px; }
}

/* Appeal / Mission section */
.recruit-appeal { padding: 80px 0; padding: 5rem 0; }
.recruit-appeal__body {
  margin-top: 40px; margin-top: 2.5rem;
  line-height: 2;
}
.recruit-appeal__body p { margin-bottom: 1.5em; }
.recruit-appeal__lead {
  font-size: 22px; font-size: 1.375rem; font-weight: 700;
  margin-top: 40px; margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .recruit-appeal__lead { font-size: 1.0625rem; }
}

/* Voice / Message cards */
.recruit-voices { padding: 80px 0; padding: 5rem 0; background: #f9f9f9; }
.recruit-voices__grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 40px; gap: 2.5rem; margin-top: 50px; margin-top: 3.125rem;
}
@media screen and (max-width: 767px) {
  .recruit-voices__grid { grid-template-columns: 1fr; gap: 1.875rem; margin-top: 1.875rem; }
}
.recruit-voice-card {
  background: #fff; display: block; transition: opacity 0.3s;
}
.recruit-voice-card:hover { opacity: 0.7; }
.recruit-voice-card__img img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: top center;
}
.recruit-voice-card__body { padding: 24px 0 0; padding: 1.5rem 0 0; }
.recruit-voice-card__text {
  font-size: 18px; font-size: 1.125rem; font-weight: 700;
  letter-spacing: 0.06em; line-height: 1.7;
}
.recruit-voice-card__meta {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 16px; margin-top: 1rem;
}
.recruit-voice-card__name {
  font-size: 15px; font-size: 0.9375rem;
  color: var(--r-accent); font-weight: 700; letter-spacing: 0.06em;
}
.recruit-voice-card__arrow {
  font-size: 20px; color: var(--r-accent); line-height: 1;
}
.recruit-voice-card__job {
  font-size: 13px; font-size: 0.8125rem; color: #999;
  margin-top: 4px; margin-top: 0.25rem; letter-spacing: 0.04em;
}

/* Article body for staff pages */
.recruit-article { margin-top: 40px; margin-top: 2.5rem; max-width: 860px; }
.recruit-article h3 {
  font-size: 22px; font-size: 1.375rem; font-weight: 700; letter-spacing: 0.06em;
  padding-left: 16px; border-left: 4px solid var(--r-accent);
  margin-bottom: 16px; margin-bottom: 1rem;
  margin-top: 40px; margin-top: 2.5rem;
}
.recruit-article h3:first-child { margin-top: 0; }
.recruit-article p { line-height: 2; margin-bottom: 1.5em; }
@media screen and (max-width: 767px) {
  .recruit-article h3 { font-size: 1.125rem; }
}

/* Requirements table */
.recruit-section { padding: 60px 0; }
.recruit-section + .recruit-section { border-top: 1px solid #eee; }
.recruit-requirements__table {
  width: 100%; border-collapse: collapse; margin-top: 40px;
}
.recruit-requirements__table th {
  width: 25%; background: #f0f0f0; border: 1px solid #ddd;
  padding: 16px 20px; font-weight: 700; font-size: 16px;
  text-align: left; vertical-align: top; letter-spacing: 0.06em;
}
.recruit-requirements__table td {
  border: 1px solid #ddd; padding: 16px 20px;
  font-size: 16px; line-height: 1.8; background: #fff;
}
@media screen and (max-width: 767px) {
  .recruit-requirements__table th,
  .recruit-requirements__table td { font-size: 14px; padding: 12px 15px; }
  .recruit-requirements__table th { width: 35%; }
}

/* Entry CTA */
.recruit-entry-cta {
  background: var(--r-accent); padding: 60px 20px; padding: 3.75rem 1.25rem;
  text-align: center; color: #fff;
}
.recruit-entry-cta__title { font-size: 32px; font-size: 2rem; font-weight: 700; letter-spacing: 0.06em; }
@media screen and (max-width: 767px) { .recruit-entry-cta__title { font-size: 1.375rem; } }
.recruit-entry-cta__btn {
  display: inline-block; background: #fff; color: var(--r-accent);
  font-size: 18px; font-size: 1.125rem; font-weight: 700; letter-spacing: 0.06em;
  padding: 20px 60px; padding: 1.25rem 3.75rem; margin-top: 30px; margin-top: 1.875rem;
}
.recruit-entry-cta__btn:hover { opacity: 0.85; }
@media screen and (max-width: 767px) { .recruit-entry-cta__btn { padding: 0.9375rem 2.5rem; font-size: 1rem; } }

/* Breadcrumb */
.r-breadcrumb { padding: 15px 0; font-size: 14px; color: #888; }
.r-breadcrumb a { color: #888; }
.r-breadcrumb span + span::before { content: " › "; }

/* =====================================================
   Message Single — Profile
===================================================== */
.message-profile {
  display: flex; gap: 50px; align-items: flex-start;
  background: #f5f5f5; padding: 50px; margin-top: 60px;
}
@media screen and (max-width: 767px) {
  .message-profile { flex-direction: column; gap: 24px; padding: 30px 20px; margin-top: 40px; }
}
.message-profile__photo { flex-shrink: 0; width: 260px; }
.message-profile__photo img { width: 100%; height: 320px; object-fit: cover; }
@media screen and (max-width: 767px) {
  .message-profile__photo { width: 100%; }
  .message-profile__photo img { height: 240px; }
}
.message-profile__body { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.message-profile__store { font-size: 14px; color: #777; letter-spacing: 0.04em; }
.message-profile__job {
  display: inline-block; font-size: 13px; font-weight: 700;
  color: #fff; background: var(--r-accent);
  padding: 4px 12px; letter-spacing: 0.06em;
  align-self: flex-start; margin-top: 8px;
}
.message-profile__name {
  font-size: 32px; font-size: 2rem; font-weight: 700; letter-spacing: 0.06em; margin-top: 16px;
}
@media screen and (max-width: 767px) { .message-profile__name { font-size: 24px; } }
.message-profile__catch {
  font-size: 20px; font-size: 1.25rem; font-weight: 700; line-height: 1.6;
  color: var(--r-accent); margin-top: 20px; letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) { .message-profile__catch { font-size: 17px; } }

/* =====================================================
   Message Single — Q&A
===================================================== */
.message-qa-list { margin-top: 70px; }
.message-qa-item {
  display: flex; gap: 30px; align-items: flex-start;
  padding: 40px 0; border-bottom: 1px solid #e8e8e8;
}
.message-qa-item:first-child { border-top: 1px solid #e8e8e8; }
@media screen and (max-width: 767px) {
  .message-qa-item { flex-direction: column; gap: 12px; padding: 30px 0; }
}
.message-qa-item__head {
  flex-shrink: 0; width: 80px; text-align: center;
  display: flex; flex-direction: column; align-items: center; line-height: 1;
}
.message-qa-item__q-label {
  font-size: 20px; font-weight: 900; color: var(--r-accent); letter-spacing: 0.05em; line-height: 1;
}
.message-qa-item__q-num {
  font-size: 48px; font-size: 3rem; font-weight: 900; color: var(--r-accent); line-height: 1; letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .message-qa-item__head { width: auto; flex-direction: row; align-items: baseline; gap: 2px; }
  .message-qa-item__q-num { font-size: 32px; }
}
.message-qa-item__body { flex: 1; }
.message-qa-item__question {
  font-size: 20px; font-size: 1.25rem; font-weight: 700;
  line-height: 1.5; letter-spacing: 0.06em; margin-bottom: 16px;
}
@media screen and (max-width: 767px) { .message-qa-item__question { font-size: 17px; } }
.message-qa-item__answer {
  font-size: 16px; line-height: 2; letter-spacing: 0.04em; color: #444;
}
@media screen and (max-width: 767px) { .message-qa-item__answer { font-size: 15px; } }

.message-back { margin-top: 60px; }

/* =====================================================
   Message Single — Other Voices
===================================================== */
.message-others { background: #f9f9f9; padding: 80px 0; padding: 5rem 0; margin-top: 80px; }
@media screen and (max-width: 767px) { .message-others { padding: 60px 0; margin-top: 60px; } }

/* =====================================================
   News Block (TOP page)
===================================================== */
.recruit-news-block {
  padding: 80px 0; padding: 5rem 0;
}
.recruit-news-block__inner {
  display: flex; justify-content: space-between; align-items: flex-start;
}
@media screen and (max-width: 767px) {
  .recruit-news-block__inner { flex-direction: column; gap: 2rem; }
}
.recruit-news-block__head {
  width: 18%; display: flex; flex-direction: column;
}
@media screen and (max-width: 767px) {
  .recruit-news-block__head { width: 100%; }
}
.recruit-news-block__title {
  font-size: 40px; font-size: 2.5rem; font-weight: 700; letter-spacing: 0.06em;
}
.recruit-news-block__subtitle {
  font-size: 20px; font-size: 1.25rem; font-weight: 700;
  color: var(--r-accent); margin-top: 10px; margin-top: 0.625rem; letter-spacing: 0.06em;
}
.recruit-news-block__more {
  margin-top: 40px; margin-top: 2.5rem;
}
.recruit-news-block__body {
  width: 78%;
}
@media screen and (max-width: 767px) {
  .recruit-news-block__body { width: 100%; }
}
.recruit-news-block__empty {
  font-size: 15px; font-size: 0.9375rem; color: #999; padding: 20px 0;
}

/* News list - akagi-theme style */
.recruit-news-list { }
.recruit-news-item + .recruit-news-item {
  margin-top: 20px; margin-top: 1.25rem;
}
@media screen and (max-width: 767px) {
  .recruit-news-item + .recruit-news-item { margin-top: 0.625rem; }
}
.recruit-news-item a {
  display: flex; align-items: center;
  background: #fff;
  box-shadow: 0px 0px 16px rgba(65,60,60,.08);
  padding: 28px 40px; padding: 1.75rem 2.5rem;
  gap: 20px; gap: 1.25rem;
  transition: opacity 0.3s;
}
@media screen and (max-width: 767px) {
  .recruit-news-item a {
    display: block;
    padding: 1.125rem 1.25rem;
  }
}
.recruit-news-item a:hover { opacity: 0.7; }
.recruit-news-item__date {
  display: inline-block; min-width: 127px; min-width: 7.9375rem;
  flex-shrink: 0; font-weight: 700; letter-spacing: 0.06em;
  color: var(--r-accent);
}
@media screen and (max-width: 767px) {
  .recruit-news-item__date { font-size: 0.9375rem; }
}
.recruit-news-item__title {
  letter-spacing: 0.06em; flex: 1;
}
@media screen and (max-width: 767px) {
  .recruit-news-item__title { font-size: 0.9375rem; margin-top: 0.1875rem; }
}
.recruit-news-item__arrow {
  margin-left: auto; flex-shrink: 0;
  font-size: 20px; font-size: 1.25rem;
  color: var(--r-accent); line-height: 1;
}
@media screen and (max-width: 767px) {
  .recruit-news-item__arrow { display: none; }
}

/* News archive */
.recruit-news-archive {}
.recruit-news-list--archive { margin-top: 40px; margin-top: 2.5rem; }

/* Pagination */
.recruit-pagination {
  display: flex; justify-content: center; gap: 8px;
  margin-top: 50px; margin-top: 3.125rem;
}
.recruit-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border: 1px solid #ddd;
  font-size: 15px; font-weight: 700; color: #333;
}
.recruit-pagination .page-numbers.current {
  background: var(--r-accent); color: #fff; border-color: var(--r-accent);
}
.recruit-pagination .page-numbers:hover { opacity: 0.7; }

/* =====================================================
   Requirements Tab (募集要項)
===================================================== */
.recruit-jobs-page { padding: 120px 0; padding: 7.5rem 0; }
@media screen and (max-width: 767px) {
  .recruit-jobs-page { padding: 2.5rem 0; }
}
.recruit-requirements__tab {
  display: flex; justify-content: center;
  margin-top: 20px; margin-top: 1.25rem;
  position: relative; z-index: 1;
}
@media screen and (max-width: 767px) {
  .recruit-requirements__tab { margin-top: 1.875rem; }
}
.recruit-requirements__tab-item.current button {
  color: #fff; background: var(--r-accent);
}
.recruit-requirements__tab-item button {
  text-align: center; display: block;
  width: 320px; width: 20rem; max-width: 100%;
  font-size: 18px; font-size: 1.125rem; font-weight: 700;
  background: #fff; color: #000;
  letter-spacing: 0.06em;
  padding: 26px; padding: 1.625rem;
  cursor: pointer; transition: opacity 0.2s;
  border: none; font-family: inherit;
}
@media screen and (max-width: 767px) {
  .recruit-requirements__tab-item button {
    width: 9.375rem; font-size: 0.875rem; padding: 0.625rem;
  }
}
.recruit-requirements__tab-item button:hover { opacity: 0.8; }
.recruit-requirements__contents {
  background: #FAFAFA;
  padding: 80px 80px; padding: 5rem 5rem;
  margin-top: -40px; margin-top: -2.5rem;
}
@media screen and (max-width: 767px) {
  .recruit-requirements__contents {
    padding: 2.5rem 1.25rem; margin-top: -1.25rem;
  }
}
.recruit-requirements__content { display: none; }
.recruit-requirements__content.active {
  display: block;
  animation: recruitTabFade 0.5s forwards;
}
@keyframes recruitTabFade {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Requirements table */
.recruit-req-table {
  width: 100%; border-collapse: collapse; margin-top: 40px; margin-top: 2.5rem;
}
.recruit-req-table th {
  width: 22%; background: #f0f0f0; border: 1px solid #ddd;
  padding: 16px 20px; padding: 1rem 1.25rem;
  font-weight: 700; font-size: 15px; font-size: 0.9375rem;
  text-align: left; vertical-align: top; letter-spacing: 0.06em;
  white-space: nowrap;
}
.recruit-req-table td {
  border: 1px solid #ddd; padding: 16px 20px; padding: 1rem 1.25rem;
  font-size: 15px; font-size: 0.9375rem; line-height: 2; background: #fff;
  letter-spacing: 0.04em;
}
.recruit-req-table th[colspan="2"] {
  width: auto; text-align: center; background: var(--r-accent); color: #fff;
  font-size: 16px; font-size: 1rem;
}
@media screen and (max-width: 767px) {
  .recruit-req-table th,
  .recruit-req-table td { font-size: 0.875rem; padding: 0.75rem 0.9375rem; }
  .recruit-req-table th { white-space: normal; width: 30%; }
  .recruit-req-table th[colspan="2"] { width: auto; }
}

/* 見出し・タイトルを明朝体 */
.title,
.subtitle,
.page-title,
.recruit-page-header__title,
.recruit-mv__title,
.recruit-mv__subtitle,
.recruit-job-card__title,
.recruit-entry-cta__title,
.recruit-news-block__title,
.recruit-hq-dept__name,
.recruit-appeal__lead,
.recruit-voice-card__text,
.message-profile__name,
.message-profile__catch,
.message-qa-item__question,
h1, h2, h3, h4 {
  font-family: "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif !important;
}
