@charset "UTF-8";

/* =====================
  Custom Property
===================== */
:root {
  /* debug */
  --debug: false;

  /* color */
  --black: #111;
  --color-text-primary: #47321d;
  --pink: #db99ac;
  --gray100: #dcdcdc;
  --bg: #f4f1eb;
  --form-input: #f0f3f7;
  --form-required: #b61024;
  --form-optional: #575757;
  --form-border: #b7b7b7;
  --form-input-placeholder: #bababa;

  /* font */
  --yumin: 'Yu Mincho Demibold', 'YuMincho Demibold', '游明朝', 'Yu Mincho Regular', 'Yu Mincho', 'YuMincho Medium', serif;
  --yugo: '游ゴシック', 'Yu Gothic', yugothic, 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'メイリオ', meiryo, 'ＭＳ ゴシック', sans-serif;
  --sanserif: 'Noto Sans JP', sans-serif;
  --forum: 'Forum', serif;
  --oooh: 'Oooh Baby', cursive;
  --serif: 'Shippori Mincho B1', serif;

  /* icon */
  --icon-arrow: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="26" height="8" viewBox="0 0 26 8" fill="none"> <path d="M23.0043 3.8488L6.21739 4.1512C5.59565 4.1512 4.67246 4.09622 3.44783 3.98625C2.24203 3.87629 1.36594 3.75716 0.819565 3.62887C0.273188 3.50057 0 3.2165 0 2.77663C0 2.2268 0.282609 1.95189 0.847826 1.95189C0.904348 1.95189 1.07391 1.97938 1.35652 2.03436C2.63768 2.34593 4.00362 2.50172 5.45435 2.50172C6.90507 2.50172 8.67609 2.48339 10.7674 2.44674C12.8775 2.41008 14.8087 2.37342 16.5609 2.33677C18.3319 2.28179 19.2739 2.2543 19.387 2.2543L17.8043 1.67698C17.2391 1.45705 16.9565 1.18213 16.9565 0.852233C16.9565 0.284077 17.2391 0 17.8043 0C17.9739 0 18.6428 0.229096 19.8109 0.687286C20.9978 1.14548 22.7783 1.75945 25.1522 2.52921C25.7174 2.71249 26 2.99656 26 3.38144C26 3.67469 25.9341 3.89462 25.8022 4.04124C25.6703 4.18786 25.4536 4.33448 25.1522 4.4811C24.0029 5.04926 22.7971 5.94731 21.5348 7.17526C20.9696 7.72509 20.5739 8 20.3478 8C19.7826 8 19.5 7.72509 19.5 7.17526C19.5 6.937 19.8957 6.43299 20.687 5.66323C21.4783 4.89347 22.2507 4.28866 23.0043 3.8488Z" fill="currentColor"/> </svg>');
  --icon-plus: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> <line y1="8" x2="16" y2="8" stroke="currentColor"/> <line x1="8" y1="16" x2="8" y2="2.18557e-08" stroke="currentColor"/> </svg>');
  --icon-blank: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11" fill="none"> <path d="M4.25 1.25C4.52614 1.25 4.75 1.47386 4.75 1.75C4.75 2.02614 4.52614 2.25 4.25 2.25H1V10H8.75V6.75C8.75 6.47386 8.97386 6.25 9.25 6.25C9.52614 6.25 9.75 6.47386 9.75 6.75V10.5C9.75 10.7761 9.52614 11 9.25 11H0.5C0.223858 11 0 10.7761 0 10.5V1.75C0 1.47386 0.223858 1.25 0.5 1.25H4.25ZM10.5 0C10.7761 0 11 0.223858 11 0.5V4.25C11 4.52614 10.7761 4.75 10.5 4.75C10.2239 4.75 10 4.52614 10 4.25V1.70703L5.85352 5.85352C5.65826 6.04876 5.34174 6.04875 5.14648 5.85352C4.95123 5.65826 4.95124 5.34175 5.14648 5.14648L9.29297 1H6.75C6.47386 1 6.25 0.776142 6.25 0.5C6.25 0.223858 6.47386 0 6.75 0H10.5Z" fill="currentColor"/> </svg>');
  --icon-forget: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M12 2C17.523 2 22 6.477 22 12C22 17.523 17.523 22 12 22C6.477 22 2 17.523 2 12C2 6.477 6.477 2 12 2ZM12 16C11.7348 16 11.4804 16.1054 11.2929 16.2929C11.1054 16.4804 11 16.7348 11 17C11 17.2652 11.1054 17.5196 11.2929 17.7071C11.4804 17.8946 11.7348 18 12 18C12.2652 18 12.5196 17.8946 12.7071 17.7071C12.8946 17.5196 13 17.2652 13 17C13 16.7348 12.8946 16.4804 12.7071 16.2929C12.5196 16.1054 12.2652 16 12 16ZM12 6.5C11.0386 6.5 10.1166 6.88192 9.43674 7.56174C8.75692 8.24156 8.375 9.16359 8.375 10.125C8.375 10.3902 8.48036 10.6446 8.66789 10.8321C8.85543 11.0196 9.10978 11.125 9.375 11.125C9.64022 11.125 9.89457 11.0196 10.0821 10.8321C10.2696 10.6446 10.375 10.3902 10.375 10.125C10.3753 9.83004 10.4559 9.54072 10.6082 9.28809C10.7604 9.03545 10.9786 8.82902 11.2392 8.69092C11.4998 8.55282 11.7932 8.48827 12.0877 8.50419C12.3822 8.52011 12.6669 8.61589 12.9111 8.78127C13.1553 8.94666 13.35 9.1754 13.4741 9.44297C13.5982 9.71054 13.6472 10.0069 13.6157 10.3001C13.5843 10.5934 13.4736 10.8726 13.2955 11.1078C13.1175 11.3429 12.8788 11.5252 12.605 11.635C11.929 11.905 11 12.597 11 13.75V14C11 14.2652 11.1054 14.5196 11.2929 14.7071C11.4804 14.8946 11.7348 15 12 15C12.2652 15 12.5196 14.8946 12.7071 14.7071C12.8946 14.5196 13 14.2652 13 14C13 13.756 13.05 13.634 13.261 13.53L13.348 13.49C14.1288 13.1759 14.776 12.6 15.1787 11.8609C15.5814 11.1219 15.7145 10.2658 15.5551 9.43938C15.3958 8.61299 14.9539 7.86776 14.3052 7.33147C13.6566 6.79518 12.8416 6.50122 12 6.5Z" fill="currentColor"/> </svg>');

  /* ease */
  --slideInBezier: cubic-bezier(0.16, 0.5, 0.43, 1);
  --easeOutQuart: cubic-bezier(0.25, 1, 0.5, 1);
  --easeOutExpo: cubic-bezier(0.87, 0, 0.13, 1);
  --easeOutBack: cubic-bezier(0.34, 1.56, 0.64, 1);
  --easeOutQuint: cubic-bezier(0.22, 1, 0.36, 1);
  --easeInCirc: cubic-bezier(0.55, 0, 1, 0.45);
  --easeInOutBack: cubic-bezier(0.68, -0.6, 0.32, 1.6);
  --easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
  --easeOutBounce: cubic-bezier(0.68, -0.55, 0.27, 1.55);

  /* ==== project ==== */
  --header-height: 124.45;
}

@media only screen and (width <= 768px) {
  :root {
    --header-height: calc((100 / 390) * 96.25 * 1vw);
  }
}

/* =====================
  animate
===================== */

/* 左から右 */
@keyframes loop-list {
  from {
    transform: translateX(0%);
  }

  to {
    transform: translateX(-100%);
  }
}

/* =====================
  container context
===================== */
@container style(--debug:true) {
  * {
    outline: 1px solid tomato;

    &::before,
    &::after {
      outline: 1px solid tomato;
    }

    &:focus {
      outline: 2px solid var(--blue);
      outline-offset: 2px;
    }
  }
}

/* =====================
  animation
===================== */
@keyframes marquee {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-100%);
  }
}

@keyframes scrollable {
  0% {
    opacity: 0;
    transform: translateX(0);
  }

  5% {
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  80% {
    opacity: 1;
  }

  90% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform: translateX(-25%);
  }
}

@keyframes loop-list {
  from {
    transform: translateX(0%);
  }

  to {
    transform: translateX(-100%);
  }
}

@layer style {
  /* =====================
    common
  ===================== */
  html,
  body {
    font-family: var(--serif);
    font-size: 16px;
    line-height: 1.8;
    color: var(--color-text-primary);
    background: var(--bg);

    @media (width <= 768px) {
      font-size: calc((100 / 390) * 14 * 1vw);
    }
  }

  body {
    @media (width > 768px) {
      min-inline-size: 1440px;
    }
  }

  @media (width > 768px) {
    .sp {
      display: none;
    }
  }

  @media (width <= 768px) {
    .pc {
      display: none;
    }
  }

  ::selection {
    background: color-mix(in srgb, var(--pink) 40%, white 60%);
  }

  /* =====================
    main
  ===================== */
  .main {
    min-block-size: 100svh;
    margin-block-start: calc(var(--header-height) * -1);
  }

  /* p */
  :where(p, li, dt, dd, th, td) {
    line-height: 2.2;
  }

  body:not([data-page='recruit/top'], [data-page='recruit/entry'])::after {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    block-size: 100dvh;
    pointer-events: none;
    content: '';
    background: var(--bg);
    opacity: 1;
    transition: all 600ms ease-in-out 100ms;
  }

  .pageshow body::before {
    opacity: 0;
  }

  .pageshow body::after {
    opacity: 0;
  }

  /* =====================
    error
  ===================== */
  [data-page='error'] {
    main {
      @media (width <= 768px) {
        .u-mv {
          hgroup {
            span[lang='en'] {
              font-size: 11vw;
            }
          }
        }

        padding-block-end: 20vw;
      }

      .form-text {
        padding-block: 7em 3em;
        text-align: center;

        @media (width <= 768px) {
          padding-block: 3em;
          text-align-last: left;
        }
      }

      .u-anchor {
        margin-block: 1em;
        margin-inline: auto;
      }
    }
  }
}
