@charset "UTF-8";
:root {
  --container: 1470px;
  --main:#333;
  --main-sub:#383838;
  --primary:#159448;
  --gray: #f6f6f6;
  --sub: #d0e5d8;
  --inverse: #fff;
  --red: #cc0000;
  --color-def: #333;
  --color-catch: #f5f5f5;
  --color-link: #aa9986;
  --color-footer: #fff;
  --color-red: #dc143c;
  --inverse-def: #fff;
  --bg-blue: #dde2f1;
  --btn-bg: #333;
  --btn-color: #fff;
  --btn-border: #333;
  --btn-bg-h: #159448;
  --btn-color-h: #fff;
  --btn-border-h: #159448;
  --btn-w: calc(268em / 20);
  --btn-h: calc(64em / 20);
  --btn-round: 9999px;
  --btn-size: inherit;
  --header-h: 110px;
  --header-bg: transparent;
  --header-bg-scroll: transparent;
  --logo-h:auto;
  --logo-w:100%;
  --logo-h-s:var(--header-h);
  --logo-w-s:65%;
  --gnav-bg:#333;
  --gnav-bg_hv:#000;
  --gnav-color:#fff;
  --gnav-color-h:#515151;
  --gnav-h: 60px;
  --gnav-btn-h:30px;
  --gnav-btn-w:clamp(40px, calc(140vmin / 15), 46px);
  --gnav-btn-bg:#fff;
  --gnav-btn-active:#fff;
  --gnav-line-top:translate(0,-1.5em);
  --gnav-line-bottom:translate(0,1.5em);
  --svg-bg: var(--primary);
  --svg-color: #fff;
  --svg-w: 1em;
  --gra-base: rgba(0,129,155,1) 0%, rgba(0,130,180,1) 23%, rgba(0,74,147,1) 60%, rgba(66,94,164,1) 100%;
  --gra: linear-gradient(var(--gra-agl, 90deg), var(--gra-base));
  --table-head: #aa9986;
  --title-bottom: 1.5em;
  --lineheight: calc(36 / 18);
  --lineheight-title: 1.25;
  --letterspace-def: 0;
  --letterspace: 0.025em;
  --letterspace-narrow: 0.0em;
  --letterspace-wide: 0.17em;
  --size-def: clamp(13px, calc(13vmin / 4), 16px);
  --size-12: clamp(10px, calc(10vmin / 4), 12px);
  --size-14: clamp(12px, calc(10vmin / 4), 14px);
  --size-16: clamp(13px, calc(13vmin / 4), 16px);
  --size-18: clamp(14px, calc(13vmin / 4), 18px);
  --size-20: clamp(16px, calc(16vmin / 4), 20px);
  --size-21: clamp(16px, calc(16vmin / 4), 21px);
  --size-22: clamp(16px, calc(16vmin / 4), 22px);
  --size-24: clamp(18px, calc(16vmin / 4), 24px);
  --size-25: clamp(18px, calc(16vmin / 4), 25px);
  --size-26: clamp(18px, calc(18vmin / 4), 26px);
  --size-27: clamp(18px, calc(18vmin / 4), 27px);
  --size-28: clamp(18px, calc(18vmin / 4), 28px);
  --size-30: clamp(18px, calc(18vmin / 4), 30px);
  --size-32: clamp(18px, calc(18vmin / 4), 32px);
  --size-34: clamp(18px, calc(18vmin / 4), 34px);
  --size-35: clamp(18px, calc(18vmin / 4), 35px);
  --size-36: clamp(20px, calc(20vmin / 4), 36px);
  --size-38: clamp(22px, calc(20vmin / 4), 38px);
  --size-40: clamp(26px, calc(24vmin / 4), 40px);
  --size-42: clamp(26px, calc(24vmin / 4), 42px);
  --size-44: clamp(26px, calc(24vmin / 4), 44px);
  --size-48: clamp(30px, calc(26vmin / 4), 48px);
  --size-56: clamp(30px, calc(28vmin / 4), 56px);
  --size-60: clamp(30px, calc(34vmin / 4), 60px);
  --size-64: clamp(30px, calc(30vmin / 4), 64px);
  --size-68: clamp(30px, calc(34vmin / 4), 68px);
  --size-70: clamp(30px, calc(30vmin / 4), 70px);
  --size-72: clamp(30px, calc(30vmin / 4), 72px);
  --size-76: clamp(30px, calc(36vmin / 4), 76px);
  --size-80: clamp(40px, calc(40vmin / 4), 80px);
  --size-84: clamp(40px, calc(40vmin / 4), 84px);
  --size-88: clamp(48px, calc(48vmin / 4), 88px);
  --size-96: clamp(48px, calc(48vmin / 3.8), 96px);
  --size-108: clamp(40px, calc(60vmin / 4), 108px);
  --size-110: clamp(40px, calc(60vmin / 4), 110px);
  --size-120: clamp(40px, calc(60vmin / 4), 120px);
  --size-144: clamp(45px, calc(204vw / 14.4), 144px);
  --size-150: clamp(45px, calc(150vw / 16.8), 150px);
  --size-214: clamp(66px, calc(214vw / 16.8), 214px);
  --easing: cubic-bezier(0.37, 0, 0.63, 1);
  --easing-def: cubic-bezier(0.42, 0, 0.58, 1);
  --easing-slide: cubic-bezier(0.77, 0, 0.175, 1);
  --container: 1470px;
  --container-wide: 1430px;
  --container-slim: 1030px;
  --container-pad: min(calc(80% / 14.4), 15px);
  --container-pad_sp: min(calc(100% / 12.8), 15px);
  --sec-top:clamp(4em, calc(150% / 12.8), 90px);
  --sec-bottom:clamp(4em, calc(150% / 12.8), 90px);
  --thumb-aspect: 470 / 307;
  --font-gothic: 'Yu Gothic', 'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN', sans-serif;
  --font-mincho: 'Zen Old Mincho', 'YuMincho', 'Hiragino Mincho ProN', 'Yu Mincho', 'MS PMincho', serif;
  --font-en: 'Bebas Neue','Yu Gothic','ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN', sans-serif;
  --font-barlow: 'Barlow Condensed','Yu Gothic','ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN', sans-serif;
  --font-poppins: 'Poppins','Yu Gothic','ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN', sans-serif;
  --font-oswald: 'Oswald','Yu Gothic','ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN', sans-serif; }

/**************************************

Hero Header

**************************************/
.hero {
  position: relative;
  width: 100%;
  min-height: 100vh;
  color: #fff;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat; }
  .hero__inner {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 150px;
    padding-bottom: 100px; }
  .hero__label {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 40px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 3px; }
  .hero__dot {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    background: #ea0003; }
  .hero__title {
    margin: 0;
    font-size: var(--size-108);
    line-height: 0.9;
    font-weight: 900;
    letter-spacing: 3px; }
  .hero__lead {
    margin-top: 40px;
    max-width: 600px; }
    .hero__lead h2 {
      margin: 0 0 30px;
      font-size: var(--size-30);
      line-height: 1.5;
      font-weight: 600; }
    .hero__lead p {
      margin: 0;
      font-size: var(--size-18);
      line-height: 2;
      opacity: 0.9; }
  @media (max-width: 767px) {
    .hero {
      min-height: 75vh;
      display: flex;
      align-items: center; }
      .hero__inner {
        padding: 0 20px; }
      .hero__label {
        gap: 10px;
        margin-bottom: 24px;
        font-size: 14px; }
      .hero__dot {
        width: 10px;
        height: 10px;
        flex: 0 0 10px; }
      .hero__title {
        font-size: 56px;
        line-height: 0.95; }
      .hero__lead {
        margin-top: 30px;
        max-width: 100%; }
        .hero__lead h2 {
          font-size: 18px;
          margin-bottom: 14px; }
        .hero__lead p {
          font-size: 14px;
          line-height: 1.9; }
          .hero__lead p br {
            display: none; } }

/**************************************

Mission

**************************************/
.mission {
  position: relative;
  width: 100%;
  padding: 100px 20px;
  background: linear-gradient(135deg, #000 0%, #0a2a1a 100%);
  color: #fff;
  text-align: center;
  overflow: hidden; }
  .mission__inner {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
    z-index: 2; }
  .mission::before {
    content: "MISSION";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: clamp(80px, 18vw, 200px);
    font-weight: 900;
    color: rgba(255, 255, 255, 0.05);
    letter-spacing: 0.1em;
    z-index: 1;
    pointer-events: none; }
  .mission__label {
    font-size: 16px;
    letter-spacing: 0.25em;
    color: #dc143c;
    margin-bottom: 20px;
    font-weight: 700; }
  .mission__title {
    font-size: clamp(28px, 4vw, 48px);
    font-weight: 800;
    line-height: 1.4;
    margin-bottom: 40px;
    font-family: var(--font-mincho); }
  .mission__text {
    font-size: clamp(14px, calc(13vmin / 4), 18px);
    line-height: 2.2;
    opacity: 0.85; }
  @media (max-width: 767px) {
    .mission {
      padding: 100px 20px; }
      .mission::before {
        font-size: 100px; }
      .mission__title {
        font-size: 24px; }
      .mission__text {
        font-size: 14px; } }

/**************************************

Value

**************************************/
.value {
  padding: var(--sec-top) 0 var(--sec-bottom); }
  .value__inner {
    margin: 0 auto; }
  .value__title {
    margin-bottom: 60px;
    font-size: var(--size-48);
    font-weight: 700;
    letter-spacing: var(--letterspace-wide); }
  .value__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px; }
    @media (max-width: 767px) {
      .value__list {
        grid-template-columns: 1fr;
        gap: 30px; } }
  .value__item {
    padding: 30px 0;
    border-top: 1px solid #ddd; }
  .value__en {
    margin: 0 0 10px;
    font-size: var(--size-24);
    letter-spacing: 0.15em;
    color: #aaa; }
  .value__jp {
    margin: 0 0 14px;
    font-size: var(--size-22);
    font-weight: 700;
    color: var(--main); }
  .value__text {
    margin: 0;
    font-size: var(--size-16);
    line-height: 1.9;
    color: var(--main-sub); }

/**************************************

Inner

**************************************/
.container .inner {
  max-width: 1200px;
  margin: 0 auto; }
@media (max-width: 767px) {
  .container {
    padding: 0 20px; } }

/**************************************

Company

**************************************/
.company {
  position: relative;
  padding: var(--sec-top) 0 var(--sec-bottom);
  color: var(--color-def); }
  .company__inner {
    width: min(100% - (var(--container-pad) * 2), var(--container));
    margin: 0 auto; }
  .company__head {
    margin-bottom: clamp(32px, calc(56vw / 14.4), 72px);
    position: relative;
    padding-left: 22px; }
    .company__head::before {
      content: "";
      position: absolute;
      top: 0.2em;
      left: 0;
      width: 4px;
      height: calc(100% - 0.4em);
      background: var(--color-red); }
  .company__sub {
    margin: 0 0 12px;
    font-family: var(--font-en);
    font-size: var(--size-24);
    line-height: 1;
    letter-spacing: 0.12em;
    color: var(--color-red); }
  .company__title {
    margin: 0 0 20px 0;
    font-size: var(--size-48);
    line-height: var(--lineheight-title);
    letter-spacing: var(--letterspace-wide);
    font-weight: 700;
    color: var(--main); }
  .company__list {
    border-top: 1px solid #ddd; }
  .company__row {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 30px;
    align-items: start;
    padding: 28px 0;
    border-bottom: 1px solid #ddd;
    transition: 0.3s; }
    .company__row:hover {
      background: #fafafa; }
  .company dt {
    margin: 0;
    font-size: var(--size-16);
    line-height: 1.8;
    letter-spacing: var(--letterspace);
    font-weight: 700;
    color: var(--main); }
  .company dd {
    margin: 0;
    font-size: var(--size-16);
    line-height: 2;
    letter-spacing: var(--letterspace);
    color: var(--main-sub); }
    .company dd .partners__grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 40px; }
      @media (max-width: 767px) {
        .company dd .partners__grid {
          grid-template-columns: 1fr;
          gap: 30px; } }
    .company dd .partners__head {
      font-size: var(--size-16);
      font-weight: 700;
      margin-bottom: 0px;
      color: var(--main); }
    .company dd .partners ul {
      margin: 0;
      padding: 0;
      list-style: none; }
    .company dd .partners li {
      font-size: var(--size-14);
      line-height: 1.8;
      color: var(--main-sub); }
  @media (max-width: 767px) {
    .company__inner {
      width: min(100% - (var(--container-pad_sp) * 2), var(--container)); }
    .company__head {
      margin-bottom: 28px; }
    .company__sub {
      margin-bottom: 8px;
      font-size: var(--size-20); }
    .company__title {
      font-size: var(--size-32); }
    .company__row {
      grid-template-columns: 1fr;
      gap: 6px;
      padding: 18px 0; }
    .company dt {
      font-size: var(--size-14); }
    .company dd {
      font-size: var(--size-14);
      line-height: 1.9; } }

.event {
  padding: 0 0 var(--sec-bottom); }
  .event__inner {
    width: min(100% - (var(--container-pad) * 2), var(--container));
    margin: 0 auto; }
  .event__head {
    max-width: 680px;
    margin-bottom: 40px; }
  .event__label {
    font-size: 12px;
    letter-spacing: .16em;
    color: var(--primary);
    margin-bottom: 10px; }
  .event__title {
    font-size: clamp(28px, 4vw, 44px);
    margin-bottom: 18px; }
  .event__lead {
    line-height: 2; }
  .event__list {
    display: grid;
    gap: 24px; }

.event-card {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  gap: 28px;
  align-items: center;
  padding: 10px 0;
  border-radius: 18px; }
  .event-card__images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px; }
    .event-card__images img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover; }
  .event-card__body h3 {
    font-size: 22px;
    margin-bottom: 12px; }
  .event-card__body p {
    line-height: 1.9; }

@media (max-width: 768px) {
  .event-card {
    grid-template-columns: 1fr;
    padding: 18px; }
    .event-card__images {
      gap: 8px; } }
/**************************************

History

**************************************/
.history {
  padding: 0 0 var(--sec-bottom); }
  .history__inner {
    width: min(100% - (var(--container-pad) * 2), var(--container));
    margin: 0 auto; }
  .history__title {
    margin: 0 0 50px;
    font-size: var(--size-48);
    font-weight: 700;
    color: var(--main);
    letter-spacing: var(--letterspace-wide); }
  .history__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px; }
  .history__card {
    padding: 28px 24px;
    background: var(--gray);
    border: 1px solid #ddd; }
  .history__year {
    margin: 0 0 20px;
    font-size: var(--size-24);
    letter-spacing: 0.1em;
    color: var(--main);
    position: relative;
    padding-bottom: 12px; }
    .history__year::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      width: 40px;
      height: 1px;
      background: #ccc; }
  .history__text {
    margin: 0;
    font-size: var(--size-16);
    line-height: 1.9;
    color: var(--main-sub); }
  @media (max-width: 767px) {
    .history__title {
      font-size: var(--size-26); }
    .history__cards {
      grid-template-columns: 1fr;
      gap: 14px; }
    .history__card {
      padding: 20px 16px; } }

/**************************************

Message

**************************************/
.message-block {
  padding: 0 0 var(--sec-bottom); }
  .message-block__inner {
    width: 100%; }
  .message-block__head {
    margin-bottom: clamp(36px, calc(56vw / 14.4), 72px);
    padding-bottom: 28px;
    border-bottom: 1px solid #ddd; }
  .message-block__label {
    margin-bottom: 60px;
    font-size: var(--size-48);
    font-weight: 700;
    letter-spacing: var(--letterspace-wide); }
  .message-block__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 350px;
    gap: clamp(40px, calc(100vw / 19.2), 100px);
    align-items: end; }
  .message-block__main {
    min-width: 0; }
  .message-block__title {
    margin: 0 0 42px;
    font-family: var(--font-mincho);
    font-size: var(--size-40);
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: 0.08em;
    color: var(--main); }
  .message-block__body {
    max-width: 820px; }
    .message-block__body p {
      margin: 0;
      font-size: var(--size-17);
      line-height: 2.4;
      letter-spacing: var(--letterspace);
      color: var(--main-sub); }
      .message-block__body p + p {
        margin-top: 1.6em; }
  .message-block__sign {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding-bottom: 12px; }
  .message-block__position {
    margin: 0 0 18px;
    font-size: var(--size-17);
    line-height: 1.6;
    letter-spacing: 0.08em;
    color: var(--main); }
  .message-block__signature {
    margin: 0;
    width: 100%;
    max-width: 300px; }
    .message-block__signature img {
      display: block;
      width: 100%;
      height: auto; }
  @media (max-width: 1024px) {
    .message-block__content {
      grid-template-columns: 1fr 220px;
      gap: 48px; }
    .message-block__title {
      margin-bottom: 32px; }
    .message-block__body p {
      line-height: 2.2; } }
  @media (max-width: 767px) {
    .message-block {
      padding: 70px 0; }
      .message-block__head {
        margin-bottom: 30px;
        padding-bottom: 18px; }
      .message-block__label {
        font-size: var(--size-56);
        letter-spacing: 0.08em; }
      .message-block__content {
        grid-template-columns: 1fr;
        gap: 30px; }
      .message-block__title {
        margin-bottom: 24px;
        font-size: var(--size-36);
        line-height: 1.55; }
        .message-block__title br {
          display: none; }
      .message-block__body {
        max-width: 100%; }
        .message-block__body p {
          font-size: var(--size-14);
          line-height: 2; }
          .message-block__body p + p {
            margin-top: 1.4em; }
      .message-block__sign {
        align-items: flex-end;
        padding-bottom: 0; }
      .message-block__position {
        margin-bottom: 10px;
        font-size: var(--size-16); }
      .message-block__signature {
        max-width: 180px; } }

/**************************************

Business

**************************************/
.business-section {
  padding: var(--sec-top) 0 var(--sec-bottom); }

.business-unit + .business-unit {
  margin-top: clamp(60px, calc(100vw / 14.4), 120px); }
.business-unit__head {
  position: relative;
  margin-bottom: 24px;
  padding-top: 18px; }
.business-unit__title {
  position: relative;
  z-index: 2;
  margin: 0 0 8px;
  font-family: var(--font-mincho);
  font-size: var(--size-30);
  line-height: 1.2;
  color: var(--main); }
  .business-unit__title::before {
    content: attr(data-en);
    position: absolute;
    top: -40px;
    left: 0;
    z-index: -1;
    font-size: var(--size-80);
    line-height: 1;
    color: rgba(0, 0, 0, 0.04);
    letter-spacing: 0.04em;
    pointer-events: none;
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap; }
.business-unit__image {
  position: relative;
  margin: 0 0 34px;
  overflow: hidden;
  background: #000;
  aspect-ratio: 16 / 6;
  width: 100%;
  max-width: 100%; }
  .business-unit__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(0, 0, 0, 0.15) 1px, transparent 0.5px);
    background-size: 4px 4px;
    pointer-events: none;
    transition: 0.4s; }
  .business-unit__image img,
  .business-unit__image video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover; }
.business-unit__foot {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: clamp(24px, calc(70vw / 14.4), 80px);
  align-items: start; }
.business-unit__label {
  margin: 0;
  font-family: var(--font-gothic);
  font-size: var(--size-24);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: var(--main); }
.business-unit__text {
  max-width: 760px; }
  .business-unit__text p {
    margin: 0;
    font-size: var(--size-18);
    line-height: 2.2;
    letter-spacing: var(--letterspace);
    color: var(--main-sub); }
@media (max-width: 767px) {
  .business-unit {
    padding-bottom: 70px; }
    .business-unit + .business-unit {
      margin-top: 70px; }
    .business-unit__head {
      margin-bottom: 18px;
      padding-top: 10px; }
    .business-unit__title {
      margin-bottom: 6px;
      font-size: var(--size-36);
      line-height: 1.15; }
      .business-unit__title::before {
        top: -12px;
        font-size: var(--size-56); }
    .business-unit__image {
      margin-bottom: 20px;
      aspect-ratio: 4 / 3; }
    .business-unit__foot {
      grid-template-columns: 1fr;
      gap: 10px; }
    .business-unit__label {
      font-size: var(--size-18); }
    .business-unit__text p {
      font-size: var(--size-14);
      line-height: 2; } }

.business-unit:hover .business-unit__image::after {
  opacity: 0; }

/* 動画ありのカードだけ別制御 */
.js-hover-video .business-unit__video {
  display: none; }
@media (hover: hover) and (pointer: fine) {
  .js-hover-video .business-unit__img {
    display: none; }
  .js-hover-video .business-unit__video {
    display: block;
    position: absolute;
    inset: 0; } }
@media (max-width: 767px) {
  .js-hover-video .business-unit__img {
    display: block; }
  .js-hover-video .business-unit__video {
    display: none; } }

.business-unit {
  /* 初期：画像だけ */
  /* PCだけ動画表示 */ }
  .business-unit__image {
    position: relative;
    aspect-ratio: 16 / 6;
    overflow: hidden;
    background: #000; }
  .business-unit__img, .business-unit__video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block; }
  .business-unit__video {
    display: none; }
  @media (hover: hover) and (pointer: fine) {
    .business-unit__img {
      display: none; }
    .business-unit__video {
      display: block; } }

/**************************************

Recruit

**************************************/
.recruit-head {
  margin-bottom: clamp(28px, calc(48vw / 14.4), 56px); }
  .recruit-head--center {
    text-align: center; }
  .recruit-head__en {
    margin: 0 0 10px;
    font-family: var(--font-en);
    font-size: var(--size-20);
    line-height: 1;
    letter-spacing: 0.16em;
    color: var(--red); }
  .recruit-head__ja {
    margin: 0;
    font-family: var(--font-mincho);
    font-size: var(--size-40);
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: 0.08em;
    color: var(--main); }

.recruit-hero {
  padding: clamp(140px, calc(220vw / 14.4), 120px) 0 clamp(80px, calc(120vw / 14.4), 120px); }
  .recruit-hero__inner {
    width: min(100% - 40px, var(--container-slim));
    margin: 0 auto; }
  .recruit-hero__label {
    margin: 0 0 22px;
    font-family: var(--font-en);
    font-size: var(--size-20);
    line-height: 1;
    letter-spacing: 0.18em;
    color: var(--red); }
  .recruit-hero__title {
    margin: 0 0 28px;
    font-family: var(--font-mincho);
    font-size: var(--size-60);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: var(--main); }
  .recruit-hero__text {
    max-width: 760px;
    margin: 0;
    font-size: var(--size-18);
    line-height: 2.2;
    letter-spacing: var(--letterspace);
    color: var(--main-sub); }

.recruit-message,
.recruit-info {
  padding: var(--sec-top) 0; }
  .recruit-message__inner,
  .recruit-info__inner {
    width: min(100% - 40px, var(--container-slim));
    margin: 0 auto; }

.recruit-message {
  border-top: 1px solid #e8e8e8; }
  .recruit-message__body p {
    margin: 0;
    font-size: var(--size-18);
    line-height: 2.4;
    letter-spacing: var(--letterspace);
    color: var(--main-sub); }
    .recruit-message__body p + p {
      margin-top: 1.8em; }

.recruit-person {
  padding: var(--sec-top) 0; }
  .recruit-person__inner {
    width: min(100% - 40px, var(--container));
    margin: 0 auto; }
  .recruit-person__list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid #ddd; }
  .recruit-person__item {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: clamp(20px, calc(40vw / 14.4), 48px);
    padding: 32px 0;
    border-bottom: 1px solid #ddd; }
  .recruit-person__num {
    display: block;
    font-family: var(--font-en);
    font-size: var(--size-48);
    line-height: 1;
    letter-spacing: 0.08em;
    color: rgba(0, 0, 0, 0.14); }
  .recruit-person__content h3 {
    margin: 0 0 12px;
    font-size: var(--size-24);
    font-weight: 700;
    line-height: 1.6;
    color: var(--main); }
  .recruit-person__content p {
    margin: 0;
    font-size: var(--size-16);
    line-height: 2;
    color: var(--main-sub); }

.recruit-info__list {
  border-top: 1px solid #ddd; }
.recruit-info__row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 28px;
  padding: 24px 0;
  border-bottom: 1px solid #ddd; }
.recruit-info dt {
  margin: 0;
  font-size: var(--size-16);
  font-weight: 700;
  line-height: 1.8;
  color: var(--main); }
.recruit-info dd {
  margin: 0;
  font-size: var(--size-16);
  line-height: 2;
  color: var(--main-sub); }

.recruit-entry {
  padding: 0 0 clamp(60px, calc(100vw / 14.4), 100px);
  background: linear-gradient(to bottom, #f8f8f8 0%, #f3f3f3 100%);
  text-align: center; }
  .recruit-entry__inner {
    width: min(100% - 40px, var(--container-slim));
    margin: 0 auto; }
  .recruit-entry__text {
    margin: 0 0 34px;
    font-size: var(--size-16);
    line-height: 2;
    color: var(--main-sub); }
  .recruit-entry__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 240px;
    min-height: 60px;
    padding: 0 32px;
    border: 1px solid var(--main);
    color: var(--main);
    text-decoration: none;
    font-family: var(--font-en);
    font-size: var(--size-18);
    letter-spacing: 0.12em;
    transition: .3s ease; }
    .recruit-entry__btn:hover {
      background: var(--main);
      color: var(--inverse); }

@media (max-width: 767px) {
  .recruit-head {
    margin-bottom: 28px; }
    .recruit-head__en {
      margin-bottom: 8px;
      font-size: var(--size-18); }
    .recruit-head__ja {
      font-size: var(--size-32);
      line-height: 1.5; }

  .recruit-hero {
    padding: 120px 0 70px; }
    .recruit-hero__label {
      margin-bottom: 16px; }
    .recruit-hero__title {
      margin-bottom: 20px;
      font-size: var(--size-40);
      line-height: 1.55; }
      .recruit-hero__title br {
        display: none; }
    .recruit-hero__text {
      font-size: var(--size-14);
      line-height: 2; }
      .recruit-hero__text br {
        display: none; }

  .recruit-message__inner,
  .recruit-info__inner,
  .recruit-person__inner,
  .recruit-entry__inner {
    width: min(100% - 30px, var(--container)); }

  .recruit-message__body p {
    font-size: var(--size-14);
    line-height: 2.1; }

  .recruit-person__item {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 22px 0; }
  .recruit-person__num {
    font-size: var(--size-28); }
  .recruit-person__content h3 {
    margin-bottom: 8px;
    font-size: var(--size-18); }
  .recruit-person__content p {
    font-size: var(--size-14); }

  .recruit-info__row {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 18px 0; }
  .recruit-info dt,
  .recruit-info dd {
    font-size: var(--size-14); }

  .recruit-entry__text {
    margin-bottom: 24px;
    font-size: var(--size-14); }
    .recruit-entry__text br {
      display: none; }
  .recruit-entry__btn {
    min-width: 220px;
    min-height: 54px;
    font-size: var(--size-16); } }
.entryform {
  min-height: 30vh; }
  .entryform .hero__lead {
    display: none; }
  .entryform .hero__inner {
    padding-bottom: 150px; }

.entry-form {
  max-width: 1200px;
  padding: 100px 0; }
  .entry-form__section {
    padding-bottom: 36px;
    margin-bottom: 36px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
    .entry-form__section h3 {
      position: relative;
      font-size: 20px;
      margin-bottom: 24px;
      padding-bottom: 10px;
      font-family: var(--font-mincho);
      letter-spacing: .06em; }
      .entry-form__section h3::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 40px;
        height: 2px;
        background: #ba2636; }
    .entry-form__section label {
      display: block;
      line-height: 1.7; }
      .entry-form__section label .required {
        display: inline-block;
        margin-left: 8px;
        padding: 2px 8px;
        font-size: 11px;
        color: #fff;
        background: #ba2636;
        border-radius: 999px; }
  .entry-form__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5px 28px; }
  .entry-form input,
  .entry-form select,
  .entry-form textarea {
    width: 100%;
    margin-top: 8px;
    padding: 14px 16px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 8px;
    background: #fafafa; }
    .entry-form input:focus,
    .entry-form select:focus,
    .entry-form textarea:focus {
      outline: none;
      border-color: var(--primary);
      background: #fff; }
  .entry-form textarea {
    min-height: 180px;
    resize: vertical; }
  .entry-form__note {
    margin-top: 8px;
    color: #777; }
  .entry-form__privacy {
    margin-bottom: 32px;
    text-align: center; }
  .entry-form__submit {
    text-align: center; }
    .entry-form__submit input {
      width: auto;
      min-width: 260px;
      padding: 16px 40px;
      color: #fff;
      background: var(--red);
      border: none;
      border-radius: 999px;
      cursor: pointer;
      transition: opacity .2s ease;
      margin-right: 10px; }
      .entry-form__submit input:hover {
        opacity: .82; }
  .entry-form .wpcf7-radio {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin-top: 8px;
    margin-bottom: 25px; }
    .entry-form .wpcf7-radio .wpcf7-list-item {
      display: inline-block;
      margin: 0; }
    .entry-form .wpcf7-radio .wpcf7-list-item label {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      width: auto;
      white-space: nowrap;
      line-height: 1.4;
      cursor: pointer; }
    .entry-form .wpcf7-radio input[type="radio"] {
      width: auto;
      margin: 0;
      padding: 0; }
    .entry-form .wpcf7-radio .wpcf7-list-item-label {
      display: inline-block;
      white-space: nowrap; }

.entry-form__label {
  margin-bottom: 0 !important; }

@media (max-width: 768px) {
  .entry-form {
    padding: 28px 20px;
    border-radius: 14px; }
    .entry-form__grid {
      grid-template-columns: 1fr;
      gap: 20px; }
    .entry-form__submit input {
      width: 100%;
      min-width: 0; } }
.confirm-list {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08); }
  .confirm-list dt,
  .confirm-list dd {
    padding: 16px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    line-height: 1.8; }
  .confirm-list dt {
    font-weight: 600;
    color: #555; }
  .confirm-list dd {
    margin: 0; }

.entry-form--confirm .entry-form__submit {
  display: flex;
  justify-content: center;
  gap: 16px; }
  .entry-form--confirm .entry-form__submit input {
    margin-top: 0; }
  .entry-form--confirm .entry-form__submit input[name="previous"] {
    color: var(--primary);
    background: #fff;
    border: 1px solid var(--primary); }

@media (max-width: 768px) {
  .confirm-list {
    grid-template-columns: 1fr; }
    .confirm-list dt {
      padding-bottom: 4px;
      border-bottom: none; }
    .confirm-list dd {
      padding-top: 0; }

  .entry-form--confirm .entry-form__submit {
    flex-direction: column; } }
.thanks {
  padding: clamp(80px, 10vw, 10px) 0;
  text-align: center; }
  .thanks__inner {
    width: min(720px, calc(100% - 40px));
    margin: 0 auto; }
  .thanks__label {
    font-size: 12px;
    letter-spacing: .2em;
    color: var(--red);
    margin-bottom: 16px; }
  .thanks__title {
    font-size: clamp(28px, 4vw, 42px);
    margin-bottom: 24px;
    font-family: var(--font-mincho); }
  .thanks__text {
    line-height: 2;
    margin-bottom: 24px; }
  .thanks__note {
    font-size: 13px;
    color: #777;
    margin-bottom: 40px; }
  .thanks__btn .btnthanks {
    display: inline-block;
    padding: 14px 36px;
    background: var(--red);
    color: #fff;
    border-radius: 999px;
    text-decoration: none;
    transition: opacity .2s; }
    .thanks__btn .btnthanks:hover {
      opacity: .85; }
