@charset "utf-8";
/* ==========================================
   recruit page styles
   ========================================== */
@layer base {
body { margin: 0; background: #fff; -webkit-font-smoothing: antialiased; }
  a { color: inherit; text-decoration: none; transition: opacity .2s ease; }
  a { transition: transform .28s cubic-bezier(.34,1.3,.64,1), box-shadow .28s ease, background .28s ease, opacity .2s ease; }
  a:hover { opacity: .78; }
  @media (min-width: 768px) { .om-spc { display: none !important; } }
  html, body { overflow-x: clip; }
  @media all {
    .bleed { position: relative; }
    .bleed::before, .bleed::after { content: ""; position: absolute; top: 0; bottom: 0; width: 4000px; background: inherit; pointer-events: none; }
    .bleed::before { right: 100%; }
    .bleed::after { left: 100%; }
  }
  a[style*="border-radius: 999px"]:hover, a[style*="border-radius: 10px"]:hover, a[style*="border: 1px solid #fff"]:hover { opacity: 1; transform: translateY(-4px); box-shadow: 0 10px 24px rgba(66,178,145,.26); }
  span[style*="cursor: pointer"] { transition: transform .28s cubic-bezier(.34,1.3,.64,1), box-shadow .28s ease, background .2s ease, color .2s ease, border-color .2s ease; }
  span[style*="cursor: pointer"]:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgba(66,178,145,.26); }
  span[style*="border-radius: 999px"] { transition: transform .3s cubic-bezier(.34,1.3,.64,1), box-shadow .3s ease; }
  span[style*="icons/i58"], span[style*="icons/i59"] { transition: transform .3s cubic-bezier(.34,1.3,.64,1), filter .3s ease; }
  a:hover span[style*="icons/i58"], a:hover span[style*="icons/i59"] { transform: translateY(-4px); filter: drop-shadow(0 7px 10px rgba(66,178,145,.35)); }
  a:hover span[style*="border: 1px solid #cfe3d9"] { transform: translateY(-4px); box-shadow: 0 8px 18px rgba(66,178,145,.28); }
  a:hover span[style*="rgba(255,255,255,.8)"] { transform: translateY(-4px); box-shadow: 0 8px 18px rgba(0,0,0,.18); }
  a:hover span[style*="letter-spacing: .1em"] { text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 1px; }
  input, textarea { font-family: 'Noto Sans JP', sans-serif; }
  input::placeholder, textarea::placeholder { color: #b9c5c0; }
  @media (max-width: 767px) {
    .sp-body { padding: 0 36px !important; }
    .sp-h1 { font-size: 24px !important; line-height: 42px !important; letter-spacing: .08em !important; }
    .sp-intro { padding: 49px 23px 0 !important; grid-template-columns: minmax(0, 1fr) !important; gap: 39px !important; }
    .sp-intro > div:first-child { padding-top: 0 !important; }
    .sp-vlogo { transform: scale(.7); transform-origin: top center; margin-bottom: -73px; }
    .sp-mission { padding-left: 23px !important; grid-template-columns: minmax(0, 1fr) !important; margin-top: 49px !important; }
    .sp-mission > div:first-child { padding-top: 0 !important; padding-right: 23px; font-size: 16px !important; line-height: 38px !important; letter-spacing: .1em !important; gap: 24px !important; }
    .sp-hero-img { height: 244px !important; margin-top: 24px !important; margin-right: 23px !important; border-radius: 13px !important; }
    .sp-g2 { grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; margin-top: 81px !important; }
    .sp-bleed { height: 195px !important; margin: 0 23px !important; border-radius: 13px !important; }
    .sp-sched-img { height: 179px !important; border-radius: 13px !important; }
    .sp-padr { padding: 0 36px !important; }
    .sp-sec { margin-top: 89px !important; padding: 0 36px !important; }
    .sp-sched { grid-template-columns: minmax(0, 1fr) !important; gap: 37px !important; margin-top: 41px !important; }
    .sp-sched-row { grid-template-columns: 90px minmax(0, 1fr) !important; padding-bottom: 24px !important; }
    .sp-sched-row > div:first-child { font-size: 22px !important; }
    .sp-padr, .sp-sec { padding-left: 20px !important; padding-right: 20px !important; }
    .sp-sched-row { grid-template-columns: 74px minmax(0, 1fr) !important; }
    .sp-sched-row > div:nth-child(2) { padding-left: 18px !important; }
    .sp-sched-row > div:nth-child(2) div { padding-left: 0 !important; }
    .sp-traits { margin-top: 89px !important; padding: 41px 16px 65px !important; }
    .sp-traits-h { font-size: 24px !important; }
    .sp-traits-card { padding: 41px 18px 46px !important; margin-top: 36px !important; }
    .sp-trait { font-size: 16px !important; gap: 11px !important; letter-spacing: .06em !important; }
    .sp-traits-lead { font-size: 17px !important; line-height: 34px !important; letter-spacing: .08em !important; }
    .sp-terms-wrap { padding: 10px 10px 41px !important; }
    .sp-terms-card { padding: 46px 18px 52px !important; border-radius: 20px !important; }
    .sp-terms-card h2 { font-size: 24px !important; }
    .sp-terms { grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; padding: 18px 0 20px !important; }
    .sp-terms > div:first-child { padding-left: 0 !important; }
    .sp-field { grid-template-columns: minmax(0, 1fr) !important; gap: 11px !important; }
    .sp-field > div:first-child { padding-top: 0 !important; }
    .sp-label { font-size: 21px !important; }
    .sp-btn { width: 100% !important; height: 44px !important; }
    [style*="font-size: 16px"][style*="line-height"]:not(.om-keep *):not(.sp-keep16):not(a):not(a *):not(label):not(label *):not([style*="font-weight: 500"]):not([style*="font-weight: 700"]):not([style*="font-weight: 800"]):not([style*="Montserrat"]) { font-size: 13px !important; }
    .sp-h1:not(.om-keep *), .sp-h2:not(.om-keep *), .om-h2:not(.om-keep *), .sp-traits-h:not(.om-keep *), [style*="font-size: 32px"]:not(.om-keep *) { font-size: 22px !important; line-height: 1.5 !important; font-weight: 400 !important; -webkit-text-stroke: 0.5px currentColor; paint-order: stroke fill; }
    [style*="font-size: 19px"]:not(.om-keep *), [style*="font-size: 20px"]:not(.om-keep *), [style*="font-size: 21px"]:not(.om-keep *), [style*="font-size: 22px"]:not(.om-keep *) { font-size: 17px !important; }
    a:is(:has([style*="i58.svg"]), :has([style*="i59.svg"]), [style*="border: 1px solid #fff"], [style*="background: #42b291"]):not(.om-keep *) [style*="font-size: 16px"], button:not(.om-keep *) { font-size: 13px !important; }
    .sp-sched-row > div:first-child { font-size: 16px !important; }
    h2[style*="100vw / 360"], [style*="font-size: calc(21 * 100vw / 360)"] { font-family: heisei-maru-gothic-std, 'Zen Maru Gothic', 'Hiragino Maru Gothic ProN', sans-serif !important; font-size: calc(22 * 100vw / 360) !important; font-weight: 400 !important; line-height: 1.3 !important; -webkit-text-stroke: 0.5px currentColor; paint-order: stroke fill; }
    [style*="margin: 0 calc(20 * 100vw / 360)"] { margin-left: 15px !important; margin-right: 15px !important; }
    [style*="padding: calc("][style*="360) 15px calc("]:not([style*="position: relative"]) { padding-top: calc(50 * 100vw / 360) !important; padding-bottom: calc(50 * 100vw / 360) !important; }
    .om-keep { width: 480px !important; zoom: var(--spz) !important; }
    .om-inner > :not(.om-keep):not(.om-spc) { display: none !important; }
  }
}

.cgv { padding: 0px 15px calc(13.8889vw); }
.cgw { display: flex; flex-direction: column; align-items: center; gap: calc(1.66667vw); }
.cgx { width: calc(17.7778vw); display: block; }
.cgy { width: calc(25vw); display: block; }
.cgz { margin: calc(8.33333vw) 0px 0px; text-align: center; font-family: "Noto Sans JP", sans-serif; font-size: calc(5vw); line-height: 1.6; font-weight: 500; letter-spacing: 0.02em; color: rgb(34, 34, 34); }
.ch0 { margin-top: calc(2.77778vw); text-align: center; font-family: Montserrat, sans-serif; font-weight: 700; font-size: calc(2.5vw); line-height: 1.7; letter-spacing: 0.04em; color: rgb(66, 178, 145); }
.ch1 { margin: 0px; font-family: "Noto Sans JP", sans-serif; font-size: calc(5vw); line-height: 1.4; font-weight: 500; letter-spacing: 0.02em; color: rgb(34, 34, 34); }
.ch2 { margin-top: calc(4.16667vw); font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(7.5vw); letter-spacing: 0.06em; color: rgb(51, 51, 51); }
.ch3 { margin: calc(8.33333vw) 0px 0px; font-family: "Noto Sans JP", sans-serif; font-size: calc(5vw); line-height: 1.6; font-weight: 500; letter-spacing: 0.02em; color: rgb(34, 34, 34); }
.ch4 { margin-left: -0.5em; }
.ch5 { display: inline-flex; align-items: center; height: calc(5.55556vw); padding: 0px calc(2.22222vw); background: rgb(66, 178, 145); color: rgb(255, 255, 255); font-family: "Noto Sans JP", sans-serif; font-size: calc(3.05556vw); font-weight: 500; letter-spacing: 0.06em; }
.ch6 { margin: calc(2.77778vw) 0px 0px; font-family: "Noto Sans JP", sans-serif; font-size: calc(5vw); line-height: 1.5; font-weight: 500; letter-spacing: 0.02em; color: rgb(34, 34, 34); }
.ch7 { position: relative; margin-top: calc(8.33333vw); }
.ch8 { position: absolute; left: calc(1.11111vw); top: calc(2.77778vw); bottom: calc(2.77778vw); width: 1px; background: rgb(66, 178, 145); display: block; }
.ch9 { display: flex; flex-direction: column; gap: calc(5vw); }
.cha { position: relative; display: grid; grid-template-columns: calc(14.4444vw) minmax(0px, 1fr); gap: calc(2.22222vw); padding-left: calc(5vw); }
.chb { position: absolute; left: 0px; top: calc(1.38889vw); width: calc(2.5vw); height: calc(2.5vw); border-radius: 999px; background: rgb(66, 178, 145); display: block; }
.chc { font-family: Montserrat, sans-serif; font-weight: 700; font-size: calc(3.61111vw); line-height: calc(5.55556vw); color: rgb(66, 178, 145); }
.chd { font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(5.55556vw); font-weight: 500; letter-spacing: 0.06em; color: rgb(34, 34, 34); }
.che { margin-top: calc(1.11111vw); font-family: "Noto Sans JP", sans-serif; font-size: calc(3.05556vw); line-height: calc(5.55556vw); letter-spacing: 0.04em; color: rgb(85, 85, 85); }
.chf { position: absolute; left: 0px; top: calc(1.38889vw); width: calc(2.5vw); height: calc(2.5vw); border-radius: 999px; background: rgb(141, 154, 149); display: block; }
.chg { font-family: Montserrat, sans-serif; font-weight: 700; font-size: calc(3.61111vw); line-height: calc(5.55556vw); color: rgb(141, 154, 149); }
.chh { font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(5.55556vw); font-weight: 400; letter-spacing: 0.06em; color: rgb(34, 34, 34); }
.chi { text-align: center; font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: 1.6; font-weight: 500; letter-spacing: 0.04em; color: rgb(255, 255, 255); white-space: nowrap; }
.chj { margin: calc(2.77778vw) 0px 0px; text-align: center; font-family: "Noto Sans JP", sans-serif; font-size: calc(5vw); line-height: 1.4; font-weight: 500; letter-spacing: 0.02em; color: rgb(255, 255, 255); white-space: nowrap; }
.chk { position: relative; margin-top: calc(5.55556vw); background: rgb(243, 248, 243); border-radius: calc(4.44444vw); padding: calc(8.33333vw) calc(5.55556vw); }
.chl { display: flex; flex-direction: column; gap: calc(3.33333vw); width: max-content; margin: 0px auto; }
.chm { display: flex; align-items: center; gap: calc(3.33333vw); }
.chn { font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: 1.5; letter-spacing: 0.06em; color: rgb(34, 34, 34); }
.cho { margin-top: calc(5.55556vw); text-align: center; font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(6.11111vw); letter-spacing: 0.04em; color: rgb(51, 51, 51); }
.chp { position: absolute; left: 50%; bottom: calc(-4.44444vw); transform: translateX(-50%); width: 0px; height: 0px; border-left: calc(3.05556vw) solid transparent; border-right: calc(3.05556vw) solid transparent; border-top: calc(4.72222vw) solid rgb(243, 248, 243); display: block; }
.chq { margin-top: calc(8.33333vw); text-align: center; font-family: "Noto Sans JP", sans-serif; font-size: calc(3.88889vw); line-height: calc(7.5vw); font-weight: 500; letter-spacing: 0.06em; color: rgb(255, 255, 255); }
.chr { margin-top: calc(4.16667vw); text-align: left; font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(7.5vw); letter-spacing: 0.06em; color: rgb(255, 255, 255); }
.chs { margin: 0px; font-family: "Noto Sans JP", sans-serif; font-size: calc(5vw); line-height: 1.2; font-weight: 500; letter-spacing: 0.02em; color: rgb(34, 34, 34); }
.cht { border-top: 1px solid rgb(223, 232, 228); padding: calc(4.16667vw) 0px; }
.chu { font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: 1.5; font-weight: 500; letter-spacing: 0.06em; color: rgb(66, 178, 145); }
.chv { margin-top: calc(1.11111vw); font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(7.5vw); letter-spacing: 0.06em; color: rgb(51, 51, 51); white-space: pre-line; }
.chw { border-top: 1px solid rgb(223, 232, 228); }
.chx { margin-top: calc(8.33333vw); height: calc(13.8889vw); display: flex; align-items: center; justify-content: center; background: rgb(66, 178, 145); color: rgb(255, 255, 255); font-family: "Noto Sans JP", sans-serif; font-size: calc(3.61111vw); font-weight: 500; letter-spacing: 0.06em; }
.chy { padding: 90px 182px 0px 80px; display: grid; grid-template-columns: minmax(0px, 1fr) 256px; gap: 40px; align-items: start; }
.chz { padding-top: 42px; }
.ci0 { font-family: "Noto Sans JP", sans-serif; font-size: 32px; font-weight: 500; line-height: 58px; letter-spacing: 0.14em; color: rgb(34, 34, 34); }
.ci1 { margin-top: 24px; font-family: Montserrat, sans-serif; font-weight: 600; font-size: 16px; line-height: 28px; letter-spacing: 0.04em; color: rgb(66, 178, 145); }
.ci2 { display: flex; flex-direction: column; align-items: center; gap: 22px; }
.ci3 { margin-top: 120px; padding-left: 80px; display: grid; grid-template-columns: minmax(0px, 1fr) 580px; gap: 40px; align-items: center; }
.ci4 { padding-top: 0px; font-family: "Noto Sans JP", sans-serif; font-size: 16px; font-weight: 400; line-height: 34px; letter-spacing: 0.06em; color: rgb(51, 51, 51); display: flex; flex-direction: column; gap: 49px; }
.ci5 { margin-bottom: -25px; font-family: heisei-maru-gothic-std, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif; font-size: 32px; font-weight: 400; line-height: 58px; letter-spacing: 0.06em; color: rgb(51, 51, 51); }
.ci6 { margin-top: 150px; display: grid; grid-template-columns: 580px minmax(0px, 1fr); gap: 80px; align-items: center; }
.ci7 { padding-right: 140px; padding-left: 0px; }
.ci8 { margin-top: 24px; font-size: 16px; line-height: 34px; letter-spacing: 0.06em; color: rgb(68, 68, 68); }
.ci9 { margin-top: 170px; padding: 0px 80px; }
.cia { font-family: heisei-maru-gothic-std, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif; font-size: 21px; font-weight: 500; letter-spacing: 0.08em; color: rgb(66, 178, 145); }
.cib { margin-top: 32px; font-family: heisei-maru-gothic-std, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif; font-size: 32px; font-weight: 400; letter-spacing: 0.06em; }
.cic { margin-top: 80px; display: grid; grid-template-columns: 560px minmax(0px, 1fr); gap: 80px; align-items: start; }
.cid { font-size: 16px; line-height: 34px; letter-spacing: 0.06em; color: rgb(68, 68, 68); display: flex; flex-direction: column; gap: 38px; }
.cie { display: grid; grid-template-columns: 120px minmax(0px, 1fr); gap: 0px; padding-bottom: 40px; position: relative; }
.cif { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 22px; letter-spacing: 0.02em; color: rgb(66, 178, 145); }
.cig { border-left: 1px solid rgb(207, 227, 217); padding: 0px 0px 0px 30px; }
.cih { margin-top: 16px; font-size: 16px; line-height: 34px; letter-spacing: 0.06em; color: rgb(102, 102, 102); }
.cii { margin-top: 160px; background: rgb(66, 178, 145); padding: 110px 180px; color: rgb(255, 255, 255); }
.cij { text-align: center; font-size: 16px; line-height: 34px; letter-spacing: 0.06em; }
.cik { margin: 14px 0px 0px; text-align: center; font-family: heisei-maru-gothic-std, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif; font-size: 32px; font-weight: 400; letter-spacing: 0.04em; line-height: 1.3; }
.cil { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 66px; margin: 0px 6px; vertical-align: -4px; }
.cim { margin-top: 56px; position: relative; background: rgb(243, 248, 243); color: rgb(51, 51, 51); padding: 106px 60px 100px; display: flex; flex-direction: column; align-items: center; }
.cin { display: flex; flex-direction: column; gap: 26px; }
.cio { display: flex; align-items: center; gap: 26px; font-family: "Noto Sans JP", sans-serif; font-size: 21px; font-weight: 400; letter-spacing: 0.14em; }
.cip { position: relative; width: 42px; height: 38px; flex: 0 0 auto; display: block; }
.ciq { position: absolute; left: 8px; top: 8px; width: 28px; height: 28px; border: 1px solid rgb(154, 154, 154); box-sizing: border-box; display: block; }
.cir { position: absolute; left: 14px; top: -6px; width: 14px; height: 30px; border-right: 4px solid rgb(66, 178, 145); border-bottom: 4px solid rgb(66, 178, 145); transform: rotate(40deg); display: block; border-radius: 1px; }
.cis { margin-top: 50px; text-align: center; font-size: 16px; line-height: 34px; letter-spacing: 0.06em; }
.cit { position: absolute; left: 50%; bottom: -52px; transform: translateX(-50%); width: 0px; height: 0px; border-left: 30px solid transparent; border-right: 30px solid transparent; border-top: 52px solid rgb(243, 248, 243); display: block; }
.ciu { margin-top: 104px; text-align: center; font-family: "Noto Sans JP", sans-serif; font-size: 21px; font-weight: 700; line-height: 44px; letter-spacing: 0.16em; }
.civ { margin-top: 30px; max-width: 1080px; margin-left: auto; margin-right: auto; text-align: center; font-size: 16px; line-height: 34px; letter-spacing: 0.06em; color: rgb(255, 255, 255); text-wrap: pretty; }
.ciw { background: rgb(243, 248, 243); padding: 20px 20px 160px; }
.cix { background: rgb(255, 255, 255); border-radius: 40px; padding: 104px 160px 130px; }
.ciy { margin: 0px; font-family: "Noto Sans JP", sans-serif; font-size: 32px; font-weight: 500; letter-spacing: 0.1em; color: rgb(17, 17, 17); }
.ciz { margin-top: 78px; border-top: 1px solid rgb(226, 226, 226); }
.cj0 { display: grid; grid-template-columns: 315px minmax(0px, 1fr); gap: 0px; padding: 44px 0px; border-bottom: 1px solid rgb(226, 226, 226); align-items: start; }
.cj1 { font-size: 16px; font-weight: 700; letter-spacing: 0.06em; padding-left: 27px; color: rgb(66, 178, 145); line-height: 34px; }
.cj2 { font-size: 16px; line-height: 34px; letter-spacing: 0.06em; color: rgb(34, 34, 34); white-space: pre-line; }
.cj3 { width: 816px; max-width: 100%; height: 104px; background: rgb(66, 178, 145); color: rgb(255, 255, 255); display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; letter-spacing: 0.16em; }