@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@200;300;400;500;700;900&;display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP&display=swap");
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

body {
  line-height: 1; }

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

ul, ol {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none; }

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold; }

del {
  text-decoration: line-through; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0; }

button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none;
  /* 1 */
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border: none;
  outline: none;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit;
  /* 2 */ }

/**
 * Reset radio and checkbox appearance to preserve their look in iOS.
 */
[type="checkbox"] {
  -webkit-appearance: checkbox;
  appearance: checkbox; }

[type="radio"] {
  -webkit-appearance: radio;
  appearance: radio; }

/**
 * Correct cursors for clickable elements.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer; }

button:disabled,
[type="button"]:disabled,
[type="reset"]:disabled,
[type="submit"]:disabled {
  cursor: default; }

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */
:-moz-focusring {
  outline: auto; }

select:disabled {
  opacity: inherit; }

/**
 * Remove padding
 */
option {
  padding: 0; }

/**
 * Reset to invisible
 */
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0; }

legend {
  padding: 0; }

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline; }

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto; }

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Correct the outline style in Safari.
 */
[type="search"] {
  outline-offset: -2px;
  /* 1 */ }

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

@font-face {
  font-family: 'utukushi';
  src: url("../font/utsukushi.eot?#iefix") format("embedded-opentype"), url("../font/utsukushi.woff") format("woff"), url("../font/utsukushi.ttf") format("truetype"); }
/* 青 */
/* 深緑 */
/* 薄い青 */
/* utility */
.mb1 {
  margin-bottom: min(max(8px, calc(0.5rem + ((1vw - 3.75px) * 1.2966))), 16px); }

.mb2 {
  margin-bottom: min(max(16px, calc(1rem + ((1vw - 3.75px) * 2.5932))), 32px); }

.mb3 {
  margin-bottom: min(max(24px, calc(1.5rem + ((1vw - 3.75px) * 3.8898))), 48px); }

.mb4 {
  margin-bottom: min(max(32px, calc(2rem + ((1vw - 3.75px) * 5.1864))), 64px); }

.mb5 {
  margin-bottom: min(max(40px, calc(2.5rem + ((1vw - 3.75px) * 6.483))), 80px); }

.mb6 {
  margin-bottom: min(max(48px, calc(3rem + ((1vw - 3.75px) * 7.7796))), 96px); }

.mb7 {
  margin-bottom: min(max(56px, calc(3.5rem + ((1vw - 3.75px) * 9.0762))), 112px); }

.mt2 {
  margin-top: min(max(16px, calc(1rem + ((1vw - 3.75px) * 2.5932))), 32px); }

.text-center {
  text-align: center; }

.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.lh-small {
  line-height: 1.4; }

.pc {
  display: block; }

.sp {
  display: none; }

.block-center {
  margin-left: auto;
  margin-right: auto; }

.block-left {
  margin-left: 0;
  margin-right: auto; }

.block-right {
  margin-left: auto;
  margin-right: 0; }

@media (max-width: 992px) {
  .pc {
    display: none; }

  .sp {
    display: block; } }
.lead {
  font-size: min(max(26px, calc(1.625rem + ((1vw - 9.93px) * 0.7278))), 31px); }
  @media (max-width: 993px) {
    .lead {
      font-size: min(max(14px, calc(0.875rem + ((1vw - 3.75px) * 0.8091))), 19px); } }

.rotate-90 {
  transform: rotate(90deg); }

.clearfix::after {
  content: "";
  display: block;
  clear: both; }

header {
  position: fixed;
  top: 0;
  z-index: 3;
  width: 100%;
  display: flex;
  align-items: center;
  background-color: #004861;
  padding-right: var(--header); }

.header {
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: var(--header); }
  .header__logo {
    background-color: #fff;
    width: 265px;
    align-self: strech;
    display: grid;
    place-items: center; }
  .header__list {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin: 0;
    padding: 0; }
  .header__list-item {
    text-decoration: none;
    margin-right: 1.2em;
    padding-right: 1.2em;
    border-right: 1px solid #fff; }
    .header__list-item:last-child {
      margin-right: 0;
      border-right: none; }
  .header__list-link {
    color: #fff;
    display: block;
    text-decoration: none;
    margin: 10px 0;
    position: relative; }
    .header__list-link > img {
      vertical-align: middle; }
  .header__right {
    position: fixed;
    top: 0;
    right: 0;
    width: 57px;
    background-color: #fff; }
  .header .list-right {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%; }

.drawer-menu {
  position: relative; }

@media screen and (max-width: 992px) {
  header {
    padding-right: 0;
    background-color: #fff; }

  .header {
    padding: 0 10px 0 0; }
    .header__logo {
      width: 220px; }
      .header__logo > img {
        widath: 85%;
        max-width: 202px; }
    .header__list-item {
      border-right: 0; }
    .header__list-link::after {
      content: attr(title);
      color: #004861; }
    .header__list-link > img {
      display: none; }
    .header__right {
      width: 100%;
      position: fixed;
      top: auto;
      bottom: 0;
      right: 0; }
    .header .list-right {
      width: 100%;
      display: flex;
      flex-direction: row;
      background: #004861;
      text-align: center;
      align-items: center; }
      .header .list-right__item:nth-child(1) {
        display: none; }
      .header .list-right__item:nth-child(2) {
        width: 50%;
        background-color: #0071bd; }
      .header .list-right__item:nth-child(3) {
        width: 50%;
        background-color: #66a7cd; }
      .header .list-right__link {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 40px; }

  .drawer-menu__list {
    background-color: #fff;
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    left: 0;
    padding: 2rem;
    position: absolute;
    transform: translateX(-100%);
    transition: 0.3s;
    top: 100%;
    width: 100%;
    padding-bottom: min(33vw, 250px); }

  #drawer:checked ~ .drawer-menu__list {
    transform: translateX(0%);
    transition: 0.3s; } }
.drawer-menu__input {
  display: none; }

.drawer-menu__bg {
  background-color: #fff;
  cursor: pointer;
  display: none;
  height: auto;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1; }

#drawer:checked ~ .drawer-menu__bg {
  display: block; }

.drawer-menu__button {
  display: none; }

@media screen and (max-width: 992px) {
  .drawer-menu__button {
    align-items: center;
    appearance: none;
    background-color: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 7px;
    height: 57px;
    justify-content: center;
    width: 32px; }

  .drawer-menu__button-mark {
    background-color: #004861;
    display: block;
    height: 1px;
    transition: 0.3s;
    width: 32px; }

  #drawer:checked
  ~ .drawer-menu__button
  .drawer-menu__button-mark:nth-of-type(1) {
    transform: translate(1px, -2px) rotate(45deg);
    transform-origin: 0%; }

  #drawer:checked
  ~ .drawer-menu__button
  .drawer-menu__button-mark:nth-of-type(2) {
    opacity: 0; }

  #drawer:checked
  ~ .drawer-menu__button
  .drawer-menu__button-mark:nth-of-type(3) {
    transform: translate(1px, 4px) rotate(-45deg);
    transform-origin: 0%; } }
footer {
  background: #0071bd;
  color: #fff;
  padding: calc(var(--base-size) * 1.9) 0; }

.footer {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: calc(var(--base-size) * 4.625); }
  @media screen and (max-width: 574px) {
    .footer {
      column-gap: var(--base-size); } }
  .footer__logo {
    width: 22vw;
    max-width: 132px; }
  .footer__h1 {
    display: flex;
    align-items: center;
    column-gap: 10px; }
    .footer__h1 span {
      font-size: calc(var(--base-size) * 1.125); }
    .footer__h1 strong {
      font-size: calc(var(--base-size) * 2); }

.privacy-policy {
  text-align: right; }
  .privacy-policy > a {
    color: #fff;
    font-size: var(--small);
    line-height: 1; }
    .privacy-policy > a:hover {
      color: #b3d3e6; }

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
/* 変数 */
:root {
  /* 20px @ 375px increasing to 35px @ 750px */
  --large: min(max(20px, calc(1.25rem + ((1vw - 3.75px) * 4))), 35px);
  /* 8px @ 375px increasing to 15px @ 750px */
  --small: min(max(8px, calc(0.5rem + ((1vw - 3.75px) * 1.8667))), 15px);
  /* 25px @ 375px increasing to 50px @ 750px */
  --large-margin:min(max(25px, calc(1.5625rem + ((1vw - 3.75px) * 6.6667))), 50px);
  --w-100: min(max(50px, calc(3.125rem + ((1vw - 3.75px) * 13.3333))), 100px);
  /* 12px @ 375px increasing to 16px @ 750px */
  --base-size:min(max(12px, calc(0.75rem + ((1vw - 3.75px) * 1.0667))), 16px);
  /* 12px @ 375px increasing to 16px @ 1200px */
  --base: min(max(12px, calc(0.75rem + ((1vw - 3.75px) * 0.4848))), 16px);
  /* 40px @ 375px increasing to 120px @ 993px */
  --section-margin:min(max(40px, calc(2.5rem + ((1vw - 3.75px) * 12.945))), 120px);
  /* 18px @ 375px increasing to 29px @ 992px */
  --midashi: min(max(18px, calc(1.125rem + ((1vw - 3.75px) * 1.7828))), 29px);
  /* 9px @ 375px increasing to 12px @ 767px */
  --label:min(max(9px, calc(0.5625rem + ((1vw - 3.75px) * 0.7653))), 12px);
  --header: 57px;
  scroll-padding: calc(var(--header) + 30px);
  scroll-behavior: smooth; }

*, *:before, *:after {
  box-sizing: border-box; }

* {
  font-feature-settings: "palt" 1; }

body {
  color: #251e1c;
  margin: 0;
  padding: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: var(--base-size);
  min-height: 100vh;
  position: relative;
  line-height: 1.7;
  padding-top: 57px; }
  @media screen and (max-width: 992px) {
    body {
      padding-bottom: 40px; } }

img, picture > img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom; }

a {
  color: #1f1f1f;
  transition: all 0.3s ease-in;
  text-decoration: none; }

a:hover, a:active, a:focus {
  color: #0071bd;
  outline: none; }

a > img,
a > picture > img {
  transition: all 0.3s ease-in; }

a:hover > img,
a:hover > picture > img {
  opacity: .75;
  filter: saturate(0); }

/* width */
.content-wrap {
  width: 100%; }

.content-inner {
  width: 100%;
  max-width: 1086px;
  margin: 0 auto; }

@media screen and (min-width: 993px) {
  .content-x-padding {
    padding-left: 57px;
    padding-right: 57px; } }
@media screen and (max-width: 992px) {
  .content-wrap-sp {
    width: 93.333%;
    margin: 0 auto; } }
@media (min-width: 751px) {
  a[href^="tel:"] {
    pointer-events: none; }
    a[href^="tel:"].anchor {
      display: block;
      padding-top: 90px;
      margin-top: -90px; } }
.anchor-link {
  padding-top: 80px;
  margin-top: 80px; }

.anchor-link-features {
  padding-top: 120px;
  margin-top: 120px; }

/*
	heading style
*/
.square-logo {
  display: flex;
  justify-content: center;
  margin-bottom: .5em; }
  .square-logo > img {
    width: 25%;
    max-width: 173px; }

.rotate-title {
  background: #66a7cd;
  display: flex;
  justify-content: center; }
  .rotate-title h2 {
    font-size: var(--large-margin);
    font-family: "Noto Serif JP", serif;
    color: #fff;
    font-weight: normal;
    width: 10.5em;
    letter-spacing: .05em;
    text-align: center;
    background-color: #0071bd;
    transform: rotate(-4deg); }

/*
	点線ボックス
*/
.dot-box {
  background-image: linear-gradient(to right, #004861, #004861 8px, transparent 8px, transparent 13px), linear-gradient(to bottom, #004861, #004861 8px, transparent 8px, transparent 13px), linear-gradient(to left, #004861, #004861 8px, transparent 8px, transparent 13px), linear-gradient(to top, #004861, #004861 8px, transparent 8px, transparent 13px);
  /* 左の線 */
  background-size: 18px 2px, 2px 18px, 18px 2px, 2px 18px;
  /* 左の線 */
  background-position: left top, right top, right bottom, left bottom;
  /* 左の線 */
  background-repeat: repeat-x, repeat-y, repeat-x, repeat-y;
  /* 左の線 */
  padding: 8px; }

.page-home {
  /* ------------------------
  	#hero
  --------------------------- */
  /* ------------------------
  	#philosophy
  --------------------------- */
  /* ------------------------
  	#spirit
  --------------------------- */
  /* ------------------------
  	#noto-support
  --------------------------- */
  /* ------------------------
  	#features
  --------------------------- */
  /* ------------------------
  	#message
  --------------------------- */
  /* ------------------------
  	#recruit
  --------------------------- */
  /* ------------------------
  	#overview
  --------------------------- */ }
  .page-home #hero {
    width: 100%;
    margin-bottom: var(--section-margin); }
    .page-home #hero h1 > img {
      width: 100%;
      height: auto; }
  .page-home .style {
    display: grid;
    grid-template-columns: 45.58% 49.9%;
    grid-template-rows: auto auto 1fr;
    grid-template-areas: "title  img" "text   img" "badge  img";
    justify-content: space-between;
    margin-bottom: 3.875em; }
    .page-home .style h2 {
      grid-are: title; }
    .page-home .style__text {
      grid-area: text; }
    .page-home .style__copy {
      grid-area: badge;
      position: relative; }
      .page-home .style__copy > img {
        position: absolute;
        right: 0;
        top: -2em; }
    .page-home .style__img {
      grid-area: img; }
  @media screen and (min-width: 751px) {
    .page-home .style.rewarding, .page-home .style.social-contributions {
      grid-template-columns: 49.9% 45.58%;
      grid-template-areas: "img  title" "img  text" "img  badge"; }
    .page-home .style.social-contributions .style__copy > img {
      top: 0; } }
  @media screen and (max-width: 750px) {
    .page-home .style {
      grid-template-columns: 100%;
      grid-template-areas: "title" "img" "badge" "text"; }
      .page-home .style h2 {
        text-align: center; }
        .page-home .style h2 > img {
          width: 80vw;
          max-width: 494px; }
      .page-home .style__copy {
        top: -7em; }
      .page-home .style__img {
        text-align: center;
        margin-bottom: 1.5em; }
        .page-home .style__img > img {
          width: 100%;
          max-width: 542px; } }
  .page-home #spirit {
    background: url("../img/index/spirit_bg.jpg") center center no-repeat;
    width: 100%;
    height: 100%;
    min-height: 418px;
    margin-bottom: var(--section-margin); }
    .page-home #spirit .spirit-contents {
      width: 100%;
      height: 100%;
      padding: 2.625em 3.75em; }
      .page-home #spirit .spirit-contents h2 {
        margin-bottom: 2em; }
      .page-home #spirit .spirit-contents p {
        margin-bottom: 1em; }
        .page-home #spirit .spirit-contents p:last-child {
          margin-bottom: 0; }
  .page-home #noto-support {
    background: linear-gradient(to bottom, #c2ddef 50px, #072467 50px, #072467 195px, #c2ddef 195px, #c2ddef 100%);
    margin-bottom: var(--section-margin); }
  .page-home .support {
    display: grid;
    grid-template-columns: 49.72% 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas: "img h2" "img text";
    column-gap: 1.875em;
    padding-top: 102px;
    padding-bottom: 50px; }
    .page-home .support > h2 {
      grid-area: h2;
      font-family: "Noto Serif JP", serif;
      font-size: min(max(20px, calc(1.25rem + ((1vw - 3.75px) * 2.7586))), 40px);
      font-weight: normal;
      color: #fff;
      letter-spacing: .05em;
      line-height: 1;
      margin-bottom: 1.7em; }
    .page-home .support__text {
      grid-area: text; }
    .page-home .support__img {
      grid-area: img; }
  @media screen and (max-width: 992px) {
    .page-home #noto-support {
      background: linear-gradient(to bottom, #c2ddef 3em, #072467 3em, #072467 10em, #c2ddef 10em, #c2ddef 100%); }
    .page-home .support {
      display: block;
      padding-top: 5.5em;
      padding-bottom: 3em; }
      .page-home .support > * {
        display: block; }
      .page-home .support__img {
        display: grid;
        place-content: center;
        margin-bottom: 1em; } }
  .page-home .features {
    background-color: #e8f2f8;
    margin-bottom: var(--section-margin);
    padding: 3.75em 0; }
  .page-home .job {
    margin-bottom: 3.75em; }
    .page-home .job:last-of-type {
      margin-bottom: 0; }
    .page-home .job__title {
      display: flex;
      flex-direction: column;
      max-width: 454px; }
      .page-home .job__title span {
        display: inline-block;
        width: 41.85%;
        max-width: 190px;
        margin-bottom: .5em; }
    .page-home .job__img {
      display: grid;
      place-content: center; }
  @media screen and (min-width: 993px) {
    .page-home .job {
      display: grid;
      grid-template-rows: auto 1fr;
      gap: 2em; }
      .page-home .job__title {
        grid-area: h2; }
      .page-home .job__img {
        grid-area: img;
        align-self: start; }
      .page-home .job__text {
        grid-area: text; }
      .page-home .job.job-r {
        grid-template-columns: 49.9% 1fr;
        grid-template-areas: "img h2" "img text"; }
      .page-home .job.job-l {
        grid-template-columns: 1fr 49.9%;
        grid-template-areas: "h2 img" "text img"; } }
  @media screen and (max-width: 992px) {
    .page-home .job__title {
      width: 100%;
      max-width: initial;
      flex-direction: row-reverse;
      justify-content: center;
      align-items: center;
      margin-bottom: 1em; }
      .page-home .job__title span {
        width: 25.3%;
        max-width: 190px;
        margin-bottom: 0; }
      .page-home .job__title h2 {
        width: 60%;
        max-width: 454px;
        margin-right: 1em; }
    .page-home .job__img {
      margin-bottom: 4em; } }
  .page-home #message {
    background-color: #c2d3d9;
    padding: 2.4em 0;
    margin-bottom: var(--section-margin); }
  .page-home .message {
    position: relative;
    background-color: #fff;
    padding: 3em;
    display: grid;
    grid-template-columns: repeat(2, 50%);
    grid-template-rows: 8em auto auto 1fr;
    grid-template-areas: "copy copy" "text title" "text photo" "sign photo";
    column-gap: 1em; }
    .page-home .message__copy {
      grid-area: copy; }
    .page-home .message h2 {
      grid-area: title; }
    .page-home .message__ph {
      grid-area: photo; }
    .page-home .message__text {
      grid-area: text; }
    .page-home .message__sign {
      grid-area: sign; }
  .page-home .message__copy h3 {
    position: absolute;
    top: -48px;
    left: -20px;
    transform: rotate(-4deg); }
  .page-home .message h2 {
    text-align: right; }
  .page-home .message__ph {
    text-align: right; }
  .page-home .message__text p {
    margin-bottom: 1em; }
    .page-home .message__text p::last-child {
      margin-bottom: 0; }
  .page-home .message__sign {
    display: grid;
    justify-content: flex-end; }
    .page-home .message__sign strong > img {
      display: inline-block;
      margin-left: .5em;
      vertical-align: middle; }
  @media screen and (max-width: 992px) {
    .page-home .message {
      grid-template-columns: 45% 1fr;
      grid-template-rows: min(max(32px, calc(2rem + ((1vw - 3.75px) * 14.2626))), 120px) auto auto 1fr;
      grid-template-areas: "copy copy" "title photo" "sign photo" "text text"; }
    .page-home .message__copy h3 {
      position: absolute;
      top: -1em;
      left: 40%;
      transform: translateX(-30%) rotate(-4deg); }
    .page-home .message h2 {
      display: grid;
      place-content: center; }
      .page-home .message h2 img {
        width: 35vw;
        max-width: 189px; }
    .page-home .message__ph {
      margin-bottom: 2em; } }
  @media screen and (max-width: 750px) {
    .page-home .message {
      grid-template-areas: "copy copy" "title photo" "text text" "sign sign"; } }
  .page-home #recruit {
    background: linear-gradient(to bottom, #fef8f1 50px, #7a6a56 50px, #7a6a56 195px, #fef8f1 195px, #fef8f1 100%);
    margin-bottom: var(--section-margin); }
  .page-home .recruit {
    display: grid;
    grid-template-columns: 49.9% 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas: "h2 img" "text img";
    column-gap: 1.875em;
    padding-top: 70px;
    padding-bottom: 50px; }
    .page-home .recruit > h2 {
      grid-area: h2;
      margin-bottom: 3em; }
      .page-home .recruit > h2 img {
        width: 55vw;
        max-width: 476px; }
    .page-home .recruit__text {
      grid-area: text; }
      .page-home .recruit__text p:nth-of-type(1) {
        margin-bottom: 1em; }
      .page-home .recruit__text p:nth-of-type(2) {
        font-size: calc(var(--base-size) * 1.3125);
        font-weight: 700;
        margin-bottom: 1em; }
    .page-home .recruit__img {
      grid-area: img;
      align-self: center; }
  @media screen and (max-width: 992px) {
    .page-home #recruit {
      background: linear-gradient(to bottom, #fef8f1 2em, #7a6a56 2em, #7a6a56 10em, #fef8f1 10em, #fef8f1 100%); }
    .page-home .recruit {
      display: block;
      padding-top: 3.1em;
      padding-bottom: 3em; }
      .page-home .recruit > * {
        display: block; }
      .page-home .recruit__img {
        display: grid;
        place-content: center;
        margin-bottom: 1em; }
      .page-home .recruit__button {
        text-align: right; } }
  @media screen and (max-width: 550px) {
    .page-home #recruit {
      background: linear-gradient(to bottom, #fef8f1 2em, #7a6a56 2em, #7a6a56 8.3em, #fef8f1 8.3em, #fef8f1 100%); } }
  .page-home #overview {
    margin-bottom: var(--section-margin); }
  .page-home .square-logo-company {
    display: flex;
    justify-content: center;
    margin-bottom: .5em; }
    .page-home .square-logo-company > img {
      width: 44%;
      max-width: 305px; }
  .page-home .overview-title {
    display: flex;
    justify-content: center;
    margin-bottom: 3em; }
    .page-home .overview-title h2 {
      font-size: var(--midashi);
      font-family: "Noto Serif JP", serif;
      color: #fff;
      font-weight: normal;
      width: 10.5em;
      letter-spacing: .05em;
      text-align: center;
      background-color: #004861;
      transform: rotate(-3deg); }
  @media screen and (min-width: 993px) {
    .page-home .overview {
      width: 100%;
      max-width: 945px;
      margin-left: auto;
      margin-right: 0; } }
  .page-home .overview__dl {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start; }
    .page-home .overview__dl dt {
      width: 7em;
      color: #004861; }
    .page-home .overview__dl dd {
      width: calc(100% - 7em);
      border-left: 1px solid #004861;
      padding-left: 2em; }
  .page-home dl.history {
    display: flex;
    flex-wrap: wrap; }
    .page-home dl.history dt {
      width: 6em;
      color: initial; }
    .page-home dl.history dd {
      width: calc(100% - 6em);
      border-left: none;
      padding-left: 0; }
  @media screen and (max-width: 767px) {
    .page-home dl.history {
      display: block; }
      .page-home dl.history dt {
        width: 100%; }
      .page-home dl.history dd {
        width: 100%;
        padding-left: 1em; } }

/* ------------------------
	#contact
--------------------------- */
#contact {
  background: #b3d3e6;
  padding-top: var(--large); }

.contact-title-en {
  text-align: center; }

.contact {
  position: relative;
  background-color: #fff;
  width: 100%;
  max-width: 895px;
  margin: 50px auto 0;
  padding-bottom: 2em; }
  .contact__title {
    display: flex;
    justify-content: center;
    margin-bottom: 2em; }
    .contact__title h2 {
      margin-top: -30px;
      font-size: var(--midashi);
      font-family: "Noto Serif JP", serif;
      color: #fff;
      font-weight: normal;
      width: 10.5em;
      letter-spacing: .05em;
      text-align: center;
      background-color: #0071bd;
      transform: rotate(-3deg); }
  .contact__guide {
    background-color: #004861;
    color: #fff;
    font-weight: 500;
    display: flex;
    justify-content: center;
    font-size: calc(var(--base-size) * 1.3);
    padding: .5em 0;
    margin-bottom: 2em; }
    .contact__guide h3 {
      margin-right: .3em; }
  .contact__guide-phone {
    padding-left: 25px; }
    .contact__guide-phone::before {
      display: inline-block;
      content: '';
      width: 20px;
      height: 18px;
      background: url("../img/ico-phone.png") center center no-repeat;
      background-size: contain;
      margin-right: 5px; }
    .contact__guide-phone > a {
      color: #fff; }

/* --------------------------
	form 
--------------------------- */
#contact-area {
  width: 90%;
  margin: 0 auto; }

.contact__dl {
  display: flex;
  flex-wrap: wrap;
  column-gap: 1em;
  row-gap: 1.5em;
  align-items: flex-start;
  margin-bottom: 2em; }
  .contact__dl dt {
    width: 12.22em;
    display: flex;
    align-items: center;
    justify-content: space-between; }
  .contact__dl dd {
    width: calc(100% - 13.22em); }
  @media screen and (max-width: 574px) {
    .contact__dl {
      display: block; }
      .contact__dl dt {
        width: 100%; }
      .contact__dl dd {
        width: 100%;
        margin-bottom: 1em; } }

@media screen and (max-width: 574px) {
  .confirm-section > .contact__dl dd {
    border-bottom: 1px solid #f0f0f0;
    padding: 0 0 .5em 1em; } }
.form {
  height: calc(var(--base-size) * 1.8125);
  width: 100%;
  padding: 18px 7px;
  border-radius: 3px;
  border: none;
  box-shadow: 0 0 0 1px #000 inset;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none; }
  .form.form-textarea {
    height: auto;
    padding: 8px 7px; }

.form:focus {
  outline: 0;
  box-shadow: 0 0 0 1px #0071bd inset; }

.form.error {
  outline: 0;
  box-shadow: 0 0 0 1px #e20011 inset; }

.error-message {
  color: #e20011;
  font-size: var(--small); }

.error-alert {
  border-radius: 3px;
  color: #e20011;
  background-color: #ffe1e1;
  line-height: 2em;
  padding-left: 1em;
  margin-bottom: 1em; }

input[type="checkbox"] {
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

input[type="checkbox"].form-check {
  position: relative;
  width: 18px;
  height: 18px;
  border: 1px solid #0071bd;
  vertical-align: -5px;
  cursor: pointer; }
  input[type="checkbox"].form-check + label {
    cursor: pointer;
    margin-left: .5em; }

input[type="checkbox"].form-check.error {
  border: 1px solid #e20011; }
  input[type="checkbox"].form-check.error + label {
    color: #e20011; }

input[type="checkbox"].form-check:checked:before {
  position: absolute;
  top: 0px;
  left: 5px;
  transform: rotate(50deg);
  width: 7px;
  height: 14px;
  border-right: 2px solid #0071bd;
  border-bottom: 2px solid #0071bd;
  content: ''; }

input[type="checkbox"].form-check.error:before {
  border-right: 2px solid #e20011;
  border-bottom: 2px solid #e20011; }

.form-radio:first-child {
  margin-right: 3em; }

.visibility-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0; }

.radio-text {
  cursor: pointer;
  display: inline-block;
  padding: 0 0 0px 30px;
  position: relative; }

input[type=radio]:checked + .radio-text::after {
  opacity: 1; }

.radio-text::before {
  content: '';
  display: block;
  width: 18px;
  height: 18px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  border: 1px solid #0071bd; }

.radio-text::after {
  content: '';
  display: block;
  position: absolute;
  left: 5px;
  top: 50%;
  transform: translateY(-50%) rotate(50deg);
  width: 7px;
  height: 14px;
  border-right: 2px solid #0071bd;
  border-bottom: 2px solid #0071bd;
  opacity: 0; }

.form-layout.error .form-radio label span.radio-text {
  color: #e20011; }
  .form-layout.error .form-radio label span.radio-text::before {
    border: 1px solid #e20011; }
  .form-layout.error .form-radio label span.radio-text::after {
    border-right: 2px solid #e20011;
    border-bottom: 2px solid #e20011; }

.form-buttons {
  display: flex;
  justify-content: space-evenly; }

.label-required::after {
  display: inline-block !important;
  padding: 2px 5px;
  margin-right: 5px;
  color: #fff;
  border-radius: 3px;
  font-size: var(--label);
  font-weight: normal;
  line-height: normal;
  text-align: center;
  vertical-align: middle;
  background-color: #e20011;
  content: "必須"; }

.label-optional::after {
  display: inline-block !important;
  padding: 2px 5px;
  margin-right: 5px;
  color: #fff;
  border-radius: 3px;
  font-size: var(--label);
  font-weight: normal;
  line-height: normal;
  text-align: center;
  vertical-align: middle;
  background-color: #a9a9a9;
  content: "任意"; }

/* thanks */
.contact-thanks {
  text-align: center; }
  .contact-thanks h3 {
    font-size: calc(var(--large) * 0.8);
    margin-bottom: .5em; }
  .contact-thanks p > i {
    color: #84c9b6;
    font-size: var(--large); }
  .contact-thanks p:last-of-type {
    margin-bottom: var(--large-margin); }

.form-buttons {
  display: flex;
  justify-content: space-evenly; }

.button {
  display: grid;
  width: 10em;
  height: 2.5em;
  border-radius: 4px;
  place-content: center; }
  .button.button-send {
    background-color: #e20011;
    color: #fff; }
  .button.button-back {
    background-color: #808080;
    color: #fff; }

/* thanks */
.contact-thanks {
  text-align: center; }
  .contact-thanks h3 {
    font-size: var(--midashi);
    margin-bottom: .5em; }
  .contact-thanks p > svg {
    width: var(--large); }
  .contact-thanks p:last-of-type {
    margin-bottom: var(--large-margin); }

.page-recruit {
  /* ------------------------
  	#job
  --------------------------- */
  /* ------------------------
  	#interview
  --------------------------- */
  /* ------------------------
  	#ideal
  --------------------------- */ }
  .page-recruit .page-title {
    height: 13vw;
    max-height: 150px;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin-bottom: var(--base-size); }
    .page-recruit .page-title > img {
      width: 32vw;
      max-width: 302px; }
  .page-recruit #rectuit-hero {
    width: 100%;
    margin-bottom: var(--section-margin); }
    .page-recruit #rectuit-hero h2 > img {
      width: 100%;
      height: auto; }
  .page-recruit #job {
    background: linear-gradient(to bottom, #c2d3d9 3em, #94b2bc 3em, #94b2bc 307px, #c2d3d9 307px, #c2d3d9 100%);
    padding: 3em 0;
    margin-bottom: var(--section-margin); }
  .page-recruit .occupation {
    display: grid; }
    .page-recruit .occupation__title {
      grid-area: title;
      padding-top: var(--base-size); }
      .page-recruit .occupation__title > h2 {
        text-align: center; }
    .page-recruit .occupation__type {
      grid-area: type;
      background: #fff;
      width: 100%;
      max-width: 515px;
      margin: 0 auto; }
      .page-recruit .occupation__type > img {
        display: block;
        margin-bottom: calc(var(--base-size) * 2); }
      .page-recruit .occupation__type > .type-inner {
        padding: 0 1.5em 5em; }
        .page-recruit .occupation__type > .type-inner > h3 {
          font-family: "Noto Serif JP", serif;
          color: #66a7cd;
          font-size: var(--midashi);
          font-weight: normal;
          text-align: center;
          margin-bottom: 1em; }
    .page-recruit .occupation__description {
      grid-area: description; }
      .page-recruit .occupation__description > dl {
        display: flex;
        flex-wrap: wrap; }
        .page-recruit .occupation__description > dl dt {
          width: 8em; }
        .page-recruit .occupation__description > dl dd {
          width: calc(100% - 8em); }
  @media screen and (min-width: 993px) {
    .page-recruit .occupation {
      grid-template-columns: 47.42% 1fr;
      grid-template-rows: 120px 1fr;
      gap: calc(var(--base-size) * 1.8) calc(var(--base-size) * 2.5);
      grid-template-areas: "title title" "type  description"; }
      .page-recruit .occupation__description {
        align-self: flex-end; } }
  @media screen and (max-width: 992px) {
    .page-recruit .occupation {
      grid-template-columns: 1fr;
      grid-template-rows: auto 1fr;
      gap: calc(var(--base-size) * 1.8) 0;
      grid-template-areas: "title" "type" "description"; }
      .page-recruit .occupation__title h2 img {
        width: 50vw;
        max-width: 302px; }
      .page-recruit .occupation__type > .type-inner {
        padding: 0 1.5em 2em; }
      .page-recruit .occupation__description {
        width: 100%;
        max-width: 515px;
        margin: 0 auto; } }
  @media screen and (max-width: 574px) {
    .page-recruit .occupation__description > dl {
      display: block; }
      .page-recruit .occupation__description > dl dt, .page-recruit .occupation__description > dl dd {
        width: 100%; }
      .page-recruit .occupation__description > dl dt {
        font-weight: 500; }
      .page-recruit .occupation__description > dl dd {
        padding-left: 1em; } }
  .page-recruit #interview .rotate-title {
    background: #c3ba9b; }
    .page-recruit #interview .rotate-title h2 {
      width: 12.5em;
      background-color: #756a57; }
  .page-recruit .interview {
    background-color: #f6f5f0;
    margin-bottom: var(--section-margin);
    padding: 3.75em 0; }
  .page-recruit .lead-text {
    font-size: calc(var(--base-size) * 1.175);
    text-align: center;
    margin-bottom: var(--large-margin); }
  .page-recruit .senpai {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    margin-bottom: var(--large-margin); }
    .page-recruit .senpai li > a {
      display: flex;
      align-items: center; }
    .page-recruit .senpai__photo {
      width: 28vw;
      max-width: 140px;
      margin-right: 1em; }
      .page-recruit .senpai__photo > img {
        aspect-ratio: 1 / 1;
        border-radius: 50%;
        object-fit: cover;
        object-position: top center; }
    .page-recruit .senpai__name {
      line-height: 1.4;
      font-size: calc(var(--base-size) * 1.25); }
      .page-recruit .senpai__name > span {
        display: block;
        font-size: calc(var(--base-size) * 1.125); }
  @media screen and (max-width: 992px) {
    .page-recruit .senpai {
      align-items: flex-start; }
      .page-recruit .senpai li > a {
        display: flex;
        flex-direction: column;
        text-align: center; }
      .page-recruit .senpai__photo {
        margin-right: 0; }
      .page-recruit .senpai__name {
        font-size: var(--base-size); } }
  .page-recruit .introduction {
    position: relative;
    background: #fff;
    margin-bottom: var(--section-margin); }
    .page-recruit .introduction:last-of-type {
      margin-bottom: calc(var(--section-margin) - 3.75em); }
    .page-recruit .introduction__photo {
      position: absolute;
      top: 0;
      right: 0;
      width: 46.6%;
      max-width: 507px; }
    .page-recruit .introduction__inner {
      width: 53.4%;
      max-width: 580px;
      padding: 38px; }
    .page-recruit .introduction__card {
      background-color: #f3f1eb;
      padding: 8px;
      text-align: center;
      transform: rotate(-3deg);
      margin-bottom: calc(var(--base-size) * 2);
      width: 90.56%;
      max-width: 451px; }
      .page-recruit .introduction__card .department {
        font-size: calc(var(--base-size) * 1.215); }
      .page-recruit .introduction__card .name {
        font-family: "Noto Serif JP", serif;
        font-size: min(max(25px, calc(1.5625rem + ((1vw - 3.75px) * 4.0453))), 50px);
        font-weight: normal;
        margin-bottom: calc(var(--base-size) * 1.215); }
        .page-recruit .introduction__card .name > .name-en {
          display: block;
          font-size: initial;
          width: 32%;
          max-width: 186px;
          margin: 0 auto; }
        .page-recruit .introduction__card .name.font-utukushi {
          font-family: "utukushi", "Noto Serif JP", serif; }
        .page-recruit .introduction__card .name.name-narrow {
          line-height: 1.0;
          font-size: min(max(23px, calc(1.4375rem + ((1vw - 3.75px) * 3.7217))), 46px); }
      .page-recruit .introduction__card .join {
        font-size: calc(var(--base-size) * 1.215); }
    .page-recruit .introduction .interview-dl dt {
      color: #bc9e66;
      font-size: calc(var(--base-size) * 1.125); }
    .page-recruit .introduction .interview-dl dd {
      margin-bottom: 1em; }
    .page-recruit .introduction .dot-box {
      background-image: linear-gradient(to right, #251e1c, #251e1c 8px, transparent 8px, transparent 13px), linear-gradient(to bottom, #251e1c, #251e1c 8px, transparent 8px, transparent 13px), linear-gradient(to left, #251e1c, #251e1c 8px, transparent 8px, transparent 13px), linear-gradient(to top, #251e1c, #251e1c 8px, transparent 8px, transparent 13px);
      /* 左の線 */
      padding: 1em 1em 1.5em; }
  @media screen and (max-width: 768px) {
    .page-recruit .introduction__photo {
      position: relative;
      width: 65%;
      margin: 0 0 2em auto; }
    .page-recruit .introduction__inner {
      width: 100%;
      margin: 0 auto;
      padding: var(--midashi); }
    .page-recruit .introduction__card {
      position: absolute;
      top: 48vw;
      left: 3vw;
      width: 60vw;
      max-width: 400px; }
      .page-recruit .introduction__card .name {
        line-height: 1.2;
        margin-bottom: var(--base-size); } }
  .page-recruit #ideal {
    background-color: #004861;
    color: #fff;
    font-family: "utukushi", "Noto Serif JP", serif;
    padding: min(max(30px, calc(1.875rem + ((1vw - 3.75px) * 8.0906))), 80px) 0;
    text-align: center; }
  .page-recruit .ideal__logo {
    width: 22%;
    max-width: 131px;
    margin: 0 auto calc(var(--base-size) * 2.75); }
  .page-recruit .ideal__copy {
    font-size: min(max(18px, calc(1.125rem + ((1vw - 3.75px) * 3.6364))), 48px);
    line-height: 1.39;
    margin-bottom: calc(var(--base-size) * 2.75); }
  .page-recruit .ideal__title {
    background-color: #cddadd;
    color: #004861;
    width: 10em;
    text-align: center;
    transform: rotate(-3deg);
    margin: 0 auto calc(var(--large-margin) * 1.4);
    font-size: min(max(15px, calc(0.9375rem + ((1vw - 3.75px) * 1.697))), 29px); }
  .page-recruit .ideal__list {
    display: flex;
    justify-content: center;
    margin-bottom: calc(var(--section-margin) * 0.8); }
    .page-recruit .ideal__list li {
      color: #004861;
      width: 240px;
      display: flex;
      justify-content: center; }
      .page-recruit .ideal__list li > div {
        width: 170px;
        height: 170px;
        transform: rotate(45deg);
        font-size: min(max(13px, calc(0.8125rem + ((1vw - 3.75px) * 0.7273))), 19px);
        display: grid;
        place-content: center; }
        .page-recruit .ideal__list li > div span {
          transform: rotate(-45deg); }
      .page-recruit .ideal__list li:nth-last-of-type(odd) > div {
        background-color: #cddadd; }
      .page-recruit .ideal__list li:nth-last-of-type(even) > div {
        background-color: #dddbd7; }
  .page-recruit .ideal__text {
    font-size: min(max(16px, calc(1rem + ((1vw - 3.75px) * 1.3333))), 27px);
    margin-bottom: .8em; }
  .page-recruit .ideal .form-buttons > div > a {
    display: block;
    width: 54.9vw;
    max-width: 355px; }
  @media screen and (max-width: 992px) {
    .page-recruit .ideal__list li {
      width: 172px; }
      .page-recruit .ideal__list li > div {
        width: 121px;
        height: 121px;
        font-size: 13px; } }
  @media screen and (max-width: 575px) {
    .page-recruit .ideal__list {
      display: grid;
      grid-template-columns: 172px 172px;
      grid-template-rows: 172px 172px;
      margin-bottom: 1em; } }

.page-privacy .page-title {
  font-family: "utukushi", "Noto Serif JP", serif;
  color: #004861;
  font-size: var(--large);
  height: 4em;
  display: grid;
  place-content: center; }
.page-privacy #privacy {
  background: #fef8f1;
  padding: 2em 0; }
.page-privacy .privacy {
  width: 100%;
  max-width: 850px;
  margin: 0 auto;
  background: #fff;
  padding: 2em; }
  .page-privacy .privacy__list li {
    margin-bottom: 1em; }
    .page-privacy .privacy__list li p {
      padding-left: 1em;
      text-indent: initial; }
  .page-privacy .privacy__inner-list {
    padding-left: 1em; }
    .page-privacy .privacy__inner-list li {
      margin-bottom: 0; }
