@charset "UTF-8";
/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
CSS information

file name  : _settings.scss
author     : Abilive
style info : Forwarder for all foundation settings
=================================================================== */
/* ===================================================================
   foundation/_variables.scss
   style info : Design tokens — all Sass variables
=================================================================== */
:root {
  --base: 14;
  --bp-tab: 1199px;
  --bp-sp: 767px;
  --column-width: 1280px;
  --base-size: 14px;
  --base-size-sp: 12px;
  --width-container: 1200px;
  --width-container-large: 1320px;
  --max-width-contaimer: 1596px;
  --space-screen: 60px;
}
@media only screen and (min-width: 1561px) {
  :root {
    --space-screen: 80px;
  }
}
:root {
  --space-section: calc(80/var(--base) * 1em);
}
@media screen and (min-width: 768px) and (max-width: 1199px) {
  :root {
    --space-section: calc(60/var(--base) * 1em);
  }
}
@media screen and (max-width: 767px) {
  :root {
    --space-section: calc(48/var(--base) * 1em);
  }
}
:root {
  --c-base: #333;
  --c-base-black: #000;
  --c-base-rgb: 0, 0, 0;
  --c-base-white: #fff;
  --c-base-white-rgb: 255, 255, 255;
  --c-base-primary: #600E0F;
  --c-base-secondary: #3A0708;
  --c-base-light-gray: #F1EDED;
  --c-base-gray: #E6E6E6;
  /* color text */
  --c-txt-primary: #000;
  --c-txt-secondary: #333;
  --c-txt-cvr: #fff;
  --c-txt-red: #600E0F;
  /*--c-txt-gradient: linear-gradient(
                  180deg,
                  #E52224 0%,
                  #931517 73%,
                  #861415 79%,
                  #801314 82%,
                  #7A1213 85%,
                  #600E0F 100%
  );*/
  --c-txt-gradient: linear-gradient(180deg,
          #E52224 0%,
          #931517 83%,
          #861415 89%,
          #801314 92%,
          #7A1213 95%,
          #600E0F 100%);
  --c-txt-gradient-vertical: linear-gradient(-90deg,
          #E52224 0%,
          #931517 83%,
          #861415 89%,
          #801314 92%,
          #7A1213 95%,
          #600E0F 100%);
  /* color border */
  --c-line-gray: #CCCCCC;
  --c-line-light-gray: #FAFAFA;
  --c-line-white: #fff;
  --c-line-dark: #333333;
  --c-line-red: #600E0F;
  /* color conversion */
  --c-cvr: #E52224;
  --c-cvr2: #941113;
  --c-cvr3: #A71E41;
  --c-cvr4: #1A1817;
  /* color background */
  --c-bg-primary: #600E0F;
  --c-bg-secondary: #1A1817;
  --c-bg-red1-image: url("../images/common/bg_red1.png");
  --c-bg-red2-image: url("../images/common/bg_red2.png");
  --c-bg-red: #3A0708;
  --c-bg-gradient: linear-gradient(180deg,
          #E52224 0%,
          #931517 73%,
          #861415 79%,
          #801314 82%,
          #7A1213 85%,
          #600E0F 100%);
  /* color button */
  --c-btn-bg: #BF191B;
  --c-btn-border: #BF191B;
  --c-btn-txt: #fff;
  --c-error-msg: #5F211A;
  --lh-100: 1;
  --lh-160: 1.6;
  --lh-200: 2;
  --fw-body: 400;
  --fw-lead: 600;
  --fw-body-en: 400;
  --fw-lead-en: 600;
  --link-hover-opacity: 0.75;
  /* shadow */
  --shadow-red-light: 0 0 200px 0 rgba(229, 34, 36, 0.1);
}

/* ===================================================================
CSS information

file name  : _settings.scss
author     : Abilive
style info : Forwarder for all foundation settings
=================================================================== */
/* ===================================================================
   foundation/_breakpoints.scss
   style info : Breakpoint variables + mq() mixin
=================================================================== */
/* ===================================================================
CSS information

file name  : _settings.scss
author     : Abilive
style info : Forwarder for all foundation settings
=================================================================== */
/* ===================================================================
   foundation/_functions.scss
   style info : Sass utility functions
=================================================================== */
/* ===================================================================
CSS information

file name  : _settings.scss
author     : Abilive
style info : Forwarder for all foundation settings
=================================================================== */
/* ===================================================================
   foundation/_mixins.scss
   style info : All reusable Sass mixins
=================================================================== */
/* ===================================================================
CSS information

file name  : _settings.scss
author     : Abilive
style info : Forwarder for all foundation settings
=================================================================== */
/* ===================================================================
   foundation/_placeholders.scss
   style info : Sass placeholders (%)
=================================================================== */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes splideLoading {
  0% {
    transform: rotateZ(0);
  }
  100% {
    transform: rotateZ(360deg);
  }
}
@keyframes scrollLine {
  0% {
    background-position: 0 -100%;
  }
  100% {
    background-position: 0 100%;
  }
}
@keyframes slideDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes marqueeRightToLeft {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
/* ==========================================================
Utility: Spacing
-------------------------------------------------------------
Margin
  .u-m-{size}   -> margin
  .u-mx-{size}  -> margin-left + margin-right
  .u-my-{size}  -> margin-top + margin-bottom
  .u-mt-{size}  -> margin-top
  .u-mr-{size}  -> margin-right
  .u-mb-{size}  -> margin-bottom
  .u-ml-{size}  -> margin-left

Padding
  .u-p-{size}   -> padding
  .u-px-{size}  -> padding-left + padding-right
  .u-py-{size}  -> padding-top + padding-bottom
  .u-pt-{size}  -> padding-top
  .u-pr-{size}  -> padding-right
  .u-pb-{size}  -> padding-bottom
  .u-pl-{size}  -> padding-left

Example:
  <div class="u-px-20 u-py-10 u-mb-30">
    Content
  </div>
========================================================== */
/* Margin */
.u-m-0 {
  margin: calc(0 / var(--base) * 1em);
}

.u-mx-0 {
  margin-left: calc(0 / var(--base) * 1em);
  margin-right: calc(0 / var(--base) * 1em);
}

.u-my-0 {
  margin-top: calc(0 / var(--base) * 1em);
  margin-bottom: calc(0 / var(--base) * 1em);
}

.u-mt-0 {
  margin-top: calc(0 / var(--base) * 1em);
}

.u-mr-0 {
  margin-right: calc(0 / var(--base) * 1em);
}

.u-mb-0 {
  margin-bottom: calc(0 / var(--base) * 1em);
}

.u-ml-0 {
  margin-left: calc(0 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n0 {
  margin: calc(0 / var(--base) * -1em);
}

.u-mx-n0 {
  margin-left: calc(0 / var(--base) * -1em);
  margin-right: calc(0 / var(--base) * -1em);
}

.u-my-n0 {
  margin-top: calc(0 / var(--base) * -1em);
  margin-bottom: calc(0 / var(--base) * -1em);
}

.u-mt-n0 {
  margin-top: calc(0 / var(--base) * -1em);
}

.u-mr-n0 {
  margin-right: calc(0 / var(--base) * -1em);
}

.u-mb-n0 {
  margin-bottom: calc(0 / var(--base) * -1em);
}

.u-ml-n0 {
  margin-left: calc(0 / var(--base) * -1em);
}

/* Padding */
.u-p-0 {
  padding: calc(0 / var(--base) * 1em);
}

.u-px-0 {
  padding-left: calc(0 / var(--base) * 1em);
  padding-right: calc(0 / var(--base) * 1em);
}

.u-py-0 {
  padding-top: calc(0 / var(--base) * 1em);
  padding-bottom: calc(0 / var(--base) * 1em);
}

.u-pt-0 {
  padding-top: calc(0 / var(--base) * 1em);
}

.u-pr-0 {
  padding-right: calc(0 / var(--base) * 1em);
}

.u-pb-0 {
  padding-bottom: calc(0 / var(--base) * 1em);
}

.u-pl-0 {
  padding-left: calc(0 / var(--base) * 1em);
}

/* Margin */
.u-m-4 {
  margin: calc(4 / var(--base) * 1em);
}

.u-mx-4 {
  margin-left: calc(4 / var(--base) * 1em);
  margin-right: calc(4 / var(--base) * 1em);
}

.u-my-4 {
  margin-top: calc(4 / var(--base) * 1em);
  margin-bottom: calc(4 / var(--base) * 1em);
}

.u-mt-4 {
  margin-top: calc(4 / var(--base) * 1em);
}

.u-mr-4 {
  margin-right: calc(4 / var(--base) * 1em);
}

.u-mb-4 {
  margin-bottom: calc(4 / var(--base) * 1em);
}

.u-ml-4 {
  margin-left: calc(4 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n4 {
  margin: calc(4 / var(--base) * -1em);
}

.u-mx-n4 {
  margin-left: calc(4 / var(--base) * -1em);
  margin-right: calc(4 / var(--base) * -1em);
}

.u-my-n4 {
  margin-top: calc(4 / var(--base) * -1em);
  margin-bottom: calc(4 / var(--base) * -1em);
}

.u-mt-n4 {
  margin-top: calc(4 / var(--base) * -1em);
}

.u-mr-n4 {
  margin-right: calc(4 / var(--base) * -1em);
}

.u-mb-n4 {
  margin-bottom: calc(4 / var(--base) * -1em);
}

.u-ml-n4 {
  margin-left: calc(4 / var(--base) * -1em);
}

/* Padding */
.u-p-4 {
  padding: calc(4 / var(--base) * 1em);
}

.u-px-4 {
  padding-left: calc(4 / var(--base) * 1em);
  padding-right: calc(4 / var(--base) * 1em);
}

.u-py-4 {
  padding-top: calc(4 / var(--base) * 1em);
  padding-bottom: calc(4 / var(--base) * 1em);
}

.u-pt-4 {
  padding-top: calc(4 / var(--base) * 1em);
}

.u-pr-4 {
  padding-right: calc(4 / var(--base) * 1em);
}

.u-pb-4 {
  padding-bottom: calc(4 / var(--base) * 1em);
}

.u-pl-4 {
  padding-left: calc(4 / var(--base) * 1em);
}

/* Margin */
.u-m-8 {
  margin: calc(8 / var(--base) * 1em);
}

.u-mx-8 {
  margin-left: calc(8 / var(--base) * 1em);
  margin-right: calc(8 / var(--base) * 1em);
}

.u-my-8 {
  margin-top: calc(8 / var(--base) * 1em);
  margin-bottom: calc(8 / var(--base) * 1em);
}

.u-mt-8 {
  margin-top: calc(8 / var(--base) * 1em);
}

.u-mr-8 {
  margin-right: calc(8 / var(--base) * 1em);
}

.u-mb-8 {
  margin-bottom: calc(8 / var(--base) * 1em);
}

.u-ml-8 {
  margin-left: calc(8 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n8 {
  margin: calc(8 / var(--base) * -1em);
}

.u-mx-n8 {
  margin-left: calc(8 / var(--base) * -1em);
  margin-right: calc(8 / var(--base) * -1em);
}

.u-my-n8 {
  margin-top: calc(8 / var(--base) * -1em);
  margin-bottom: calc(8 / var(--base) * -1em);
}

.u-mt-n8 {
  margin-top: calc(8 / var(--base) * -1em);
}

.u-mr-n8 {
  margin-right: calc(8 / var(--base) * -1em);
}

.u-mb-n8 {
  margin-bottom: calc(8 / var(--base) * -1em);
}

.u-ml-n8 {
  margin-left: calc(8 / var(--base) * -1em);
}

/* Padding */
.u-p-8 {
  padding: calc(8 / var(--base) * 1em);
}

.u-px-8 {
  padding-left: calc(8 / var(--base) * 1em);
  padding-right: calc(8 / var(--base) * 1em);
}

.u-py-8 {
  padding-top: calc(8 / var(--base) * 1em);
  padding-bottom: calc(8 / var(--base) * 1em);
}

.u-pt-8 {
  padding-top: calc(8 / var(--base) * 1em);
}

.u-pr-8 {
  padding-right: calc(8 / var(--base) * 1em);
}

.u-pb-8 {
  padding-bottom: calc(8 / var(--base) * 1em);
}

.u-pl-8 {
  padding-left: calc(8 / var(--base) * 1em);
}

/* Margin */
.u-m-12 {
  margin: calc(12 / var(--base) * 1em);
}

.u-mx-12 {
  margin-left: calc(12 / var(--base) * 1em);
  margin-right: calc(12 / var(--base) * 1em);
}

.u-my-12 {
  margin-top: calc(12 / var(--base) * 1em);
  margin-bottom: calc(12 / var(--base) * 1em);
}

.u-mt-12 {
  margin-top: calc(12 / var(--base) * 1em);
}

.u-mr-12 {
  margin-right: calc(12 / var(--base) * 1em);
}

.u-mb-12 {
  margin-bottom: calc(12 / var(--base) * 1em);
}

.u-ml-12 {
  margin-left: calc(12 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n12 {
  margin: calc(12 / var(--base) * -1em);
}

.u-mx-n12 {
  margin-left: calc(12 / var(--base) * -1em);
  margin-right: calc(12 / var(--base) * -1em);
}

.u-my-n12 {
  margin-top: calc(12 / var(--base) * -1em);
  margin-bottom: calc(12 / var(--base) * -1em);
}

.u-mt-n12 {
  margin-top: calc(12 / var(--base) * -1em);
}

.u-mr-n12 {
  margin-right: calc(12 / var(--base) * -1em);
}

.u-mb-n12 {
  margin-bottom: calc(12 / var(--base) * -1em);
}

.u-ml-n12 {
  margin-left: calc(12 / var(--base) * -1em);
}

/* Padding */
.u-p-12 {
  padding: calc(12 / var(--base) * 1em);
}

.u-px-12 {
  padding-left: calc(12 / var(--base) * 1em);
  padding-right: calc(12 / var(--base) * 1em);
}

.u-py-12 {
  padding-top: calc(12 / var(--base) * 1em);
  padding-bottom: calc(12 / var(--base) * 1em);
}

.u-pt-12 {
  padding-top: calc(12 / var(--base) * 1em);
}

.u-pr-12 {
  padding-right: calc(12 / var(--base) * 1em);
}

.u-pb-12 {
  padding-bottom: calc(12 / var(--base) * 1em);
}

.u-pl-12 {
  padding-left: calc(12 / var(--base) * 1em);
}

/* Margin */
.u-m-16 {
  margin: calc(16 / var(--base) * 1em);
}

.u-mx-16 {
  margin-left: calc(16 / var(--base) * 1em);
  margin-right: calc(16 / var(--base) * 1em);
}

.u-my-16 {
  margin-top: calc(16 / var(--base) * 1em);
  margin-bottom: calc(16 / var(--base) * 1em);
}

.u-mt-16 {
  margin-top: calc(16 / var(--base) * 1em);
}

.u-mr-16 {
  margin-right: calc(16 / var(--base) * 1em);
}

.u-mb-16 {
  margin-bottom: calc(16 / var(--base) * 1em);
}

.u-ml-16 {
  margin-left: calc(16 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n16 {
  margin: calc(16 / var(--base) * -1em);
}

.u-mx-n16 {
  margin-left: calc(16 / var(--base) * -1em);
  margin-right: calc(16 / var(--base) * -1em);
}

.u-my-n16 {
  margin-top: calc(16 / var(--base) * -1em);
  margin-bottom: calc(16 / var(--base) * -1em);
}

.u-mt-n16 {
  margin-top: calc(16 / var(--base) * -1em);
}

.u-mr-n16 {
  margin-right: calc(16 / var(--base) * -1em);
}

.u-mb-n16 {
  margin-bottom: calc(16 / var(--base) * -1em);
}

.u-ml-n16 {
  margin-left: calc(16 / var(--base) * -1em);
}

/* Padding */
.u-p-16 {
  padding: calc(16 / var(--base) * 1em);
}

.u-px-16 {
  padding-left: calc(16 / var(--base) * 1em);
  padding-right: calc(16 / var(--base) * 1em);
}

.u-py-16 {
  padding-top: calc(16 / var(--base) * 1em);
  padding-bottom: calc(16 / var(--base) * 1em);
}

.u-pt-16 {
  padding-top: calc(16 / var(--base) * 1em);
}

.u-pr-16 {
  padding-right: calc(16 / var(--base) * 1em);
}

.u-pb-16 {
  padding-bottom: calc(16 / var(--base) * 1em);
}

.u-pl-16 {
  padding-left: calc(16 / var(--base) * 1em);
}

/* Margin */
.u-m-20 {
  margin: calc(20 / var(--base) * 1em);
}

.u-mx-20 {
  margin-left: calc(20 / var(--base) * 1em);
  margin-right: calc(20 / var(--base) * 1em);
}

.u-my-20 {
  margin-top: calc(20 / var(--base) * 1em);
  margin-bottom: calc(20 / var(--base) * 1em);
}

.u-mt-20 {
  margin-top: calc(20 / var(--base) * 1em);
}

.u-mr-20 {
  margin-right: calc(20 / var(--base) * 1em);
}

.u-mb-20 {
  margin-bottom: calc(20 / var(--base) * 1em);
}

.u-ml-20 {
  margin-left: calc(20 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n20 {
  margin: calc(20 / var(--base) * -1em);
}

.u-mx-n20 {
  margin-left: calc(20 / var(--base) * -1em);
  margin-right: calc(20 / var(--base) * -1em);
}

.u-my-n20 {
  margin-top: calc(20 / var(--base) * -1em);
  margin-bottom: calc(20 / var(--base) * -1em);
}

.u-mt-n20 {
  margin-top: calc(20 / var(--base) * -1em);
}

.u-mr-n20 {
  margin-right: calc(20 / var(--base) * -1em);
}

.u-mb-n20 {
  margin-bottom: calc(20 / var(--base) * -1em);
}

.u-ml-n20 {
  margin-left: calc(20 / var(--base) * -1em);
}

/* Padding */
.u-p-20 {
  padding: calc(20 / var(--base) * 1em);
}

.u-px-20 {
  padding-left: calc(20 / var(--base) * 1em);
  padding-right: calc(20 / var(--base) * 1em);
}

.u-py-20 {
  padding-top: calc(20 / var(--base) * 1em);
  padding-bottom: calc(20 / var(--base) * 1em);
}

.u-pt-20 {
  padding-top: calc(20 / var(--base) * 1em);
}

.u-pr-20 {
  padding-right: calc(20 / var(--base) * 1em);
}

.u-pb-20 {
  padding-bottom: calc(20 / var(--base) * 1em);
}

.u-pl-20 {
  padding-left: calc(20 / var(--base) * 1em);
}

/* Margin */
.u-m-24 {
  margin: calc(24 / var(--base) * 1em);
}

.u-mx-24 {
  margin-left: calc(24 / var(--base) * 1em);
  margin-right: calc(24 / var(--base) * 1em);
}

.u-my-24 {
  margin-top: calc(24 / var(--base) * 1em);
  margin-bottom: calc(24 / var(--base) * 1em);
}

.u-mt-24 {
  margin-top: calc(24 / var(--base) * 1em);
}

.u-mr-24 {
  margin-right: calc(24 / var(--base) * 1em);
}

.u-mb-24 {
  margin-bottom: calc(24 / var(--base) * 1em);
}

.u-ml-24 {
  margin-left: calc(24 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n24 {
  margin: calc(24 / var(--base) * -1em);
}

.u-mx-n24 {
  margin-left: calc(24 / var(--base) * -1em);
  margin-right: calc(24 / var(--base) * -1em);
}

.u-my-n24 {
  margin-top: calc(24 / var(--base) * -1em);
  margin-bottom: calc(24 / var(--base) * -1em);
}

.u-mt-n24 {
  margin-top: calc(24 / var(--base) * -1em);
}

.u-mr-n24 {
  margin-right: calc(24 / var(--base) * -1em);
}

.u-mb-n24 {
  margin-bottom: calc(24 / var(--base) * -1em);
}

.u-ml-n24 {
  margin-left: calc(24 / var(--base) * -1em);
}

/* Padding */
.u-p-24 {
  padding: calc(24 / var(--base) * 1em);
}

.u-px-24 {
  padding-left: calc(24 / var(--base) * 1em);
  padding-right: calc(24 / var(--base) * 1em);
}

.u-py-24 {
  padding-top: calc(24 / var(--base) * 1em);
  padding-bottom: calc(24 / var(--base) * 1em);
}

.u-pt-24 {
  padding-top: calc(24 / var(--base) * 1em);
}

.u-pr-24 {
  padding-right: calc(24 / var(--base) * 1em);
}

.u-pb-24 {
  padding-bottom: calc(24 / var(--base) * 1em);
}

.u-pl-24 {
  padding-left: calc(24 / var(--base) * 1em);
}

/* Margin */
.u-m-28 {
  margin: calc(28 / var(--base) * 1em);
}

.u-mx-28 {
  margin-left: calc(28 / var(--base) * 1em);
  margin-right: calc(28 / var(--base) * 1em);
}

.u-my-28 {
  margin-top: calc(28 / var(--base) * 1em);
  margin-bottom: calc(28 / var(--base) * 1em);
}

.u-mt-28 {
  margin-top: calc(28 / var(--base) * 1em);
}

.u-mr-28 {
  margin-right: calc(28 / var(--base) * 1em);
}

.u-mb-28 {
  margin-bottom: calc(28 / var(--base) * 1em);
}

.u-ml-28 {
  margin-left: calc(28 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n28 {
  margin: calc(28 / var(--base) * -1em);
}

.u-mx-n28 {
  margin-left: calc(28 / var(--base) * -1em);
  margin-right: calc(28 / var(--base) * -1em);
}

.u-my-n28 {
  margin-top: calc(28 / var(--base) * -1em);
  margin-bottom: calc(28 / var(--base) * -1em);
}

.u-mt-n28 {
  margin-top: calc(28 / var(--base) * -1em);
}

.u-mr-n28 {
  margin-right: calc(28 / var(--base) * -1em);
}

.u-mb-n28 {
  margin-bottom: calc(28 / var(--base) * -1em);
}

.u-ml-n28 {
  margin-left: calc(28 / var(--base) * -1em);
}

/* Padding */
.u-p-28 {
  padding: calc(28 / var(--base) * 1em);
}

.u-px-28 {
  padding-left: calc(28 / var(--base) * 1em);
  padding-right: calc(28 / var(--base) * 1em);
}

.u-py-28 {
  padding-top: calc(28 / var(--base) * 1em);
  padding-bottom: calc(28 / var(--base) * 1em);
}

.u-pt-28 {
  padding-top: calc(28 / var(--base) * 1em);
}

.u-pr-28 {
  padding-right: calc(28 / var(--base) * 1em);
}

.u-pb-28 {
  padding-bottom: calc(28 / var(--base) * 1em);
}

.u-pl-28 {
  padding-left: calc(28 / var(--base) * 1em);
}

/* Margin */
.u-m-32 {
  margin: calc(32 / var(--base) * 1em);
}

.u-mx-32 {
  margin-left: calc(32 / var(--base) * 1em);
  margin-right: calc(32 / var(--base) * 1em);
}

.u-my-32 {
  margin-top: calc(32 / var(--base) * 1em);
  margin-bottom: calc(32 / var(--base) * 1em);
}

.u-mt-32 {
  margin-top: calc(32 / var(--base) * 1em);
}

.u-mr-32 {
  margin-right: calc(32 / var(--base) * 1em);
}

.u-mb-32 {
  margin-bottom: calc(32 / var(--base) * 1em);
}

.u-ml-32 {
  margin-left: calc(32 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n32 {
  margin: calc(32 / var(--base) * -1em);
}

.u-mx-n32 {
  margin-left: calc(32 / var(--base) * -1em);
  margin-right: calc(32 / var(--base) * -1em);
}

.u-my-n32 {
  margin-top: calc(32 / var(--base) * -1em);
  margin-bottom: calc(32 / var(--base) * -1em);
}

.u-mt-n32 {
  margin-top: calc(32 / var(--base) * -1em);
}

.u-mr-n32 {
  margin-right: calc(32 / var(--base) * -1em);
}

.u-mb-n32 {
  margin-bottom: calc(32 / var(--base) * -1em);
}

.u-ml-n32 {
  margin-left: calc(32 / var(--base) * -1em);
}

/* Padding */
.u-p-32 {
  padding: calc(32 / var(--base) * 1em);
}

.u-px-32 {
  padding-left: calc(32 / var(--base) * 1em);
  padding-right: calc(32 / var(--base) * 1em);
}

.u-py-32 {
  padding-top: calc(32 / var(--base) * 1em);
  padding-bottom: calc(32 / var(--base) * 1em);
}

.u-pt-32 {
  padding-top: calc(32 / var(--base) * 1em);
}

.u-pr-32 {
  padding-right: calc(32 / var(--base) * 1em);
}

.u-pb-32 {
  padding-bottom: calc(32 / var(--base) * 1em);
}

.u-pl-32 {
  padding-left: calc(32 / var(--base) * 1em);
}

/* Margin */
.u-m-48 {
  margin: calc(48 / var(--base) * 1em);
}

.u-mx-48 {
  margin-left: calc(48 / var(--base) * 1em);
  margin-right: calc(48 / var(--base) * 1em);
}

.u-my-48 {
  margin-top: calc(48 / var(--base) * 1em);
  margin-bottom: calc(48 / var(--base) * 1em);
}

.u-mt-48 {
  margin-top: calc(48 / var(--base) * 1em);
}

.u-mr-48 {
  margin-right: calc(48 / var(--base) * 1em);
}

.u-mb-48 {
  margin-bottom: calc(48 / var(--base) * 1em);
}

.u-ml-48 {
  margin-left: calc(48 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n48 {
  margin: calc(48 / var(--base) * -1em);
}

.u-mx-n48 {
  margin-left: calc(48 / var(--base) * -1em);
  margin-right: calc(48 / var(--base) * -1em);
}

.u-my-n48 {
  margin-top: calc(48 / var(--base) * -1em);
  margin-bottom: calc(48 / var(--base) * -1em);
}

.u-mt-n48 {
  margin-top: calc(48 / var(--base) * -1em);
}

.u-mr-n48 {
  margin-right: calc(48 / var(--base) * -1em);
}

.u-mb-n48 {
  margin-bottom: calc(48 / var(--base) * -1em);
}

.u-ml-n48 {
  margin-left: calc(48 / var(--base) * -1em);
}

/* Padding */
.u-p-48 {
  padding: calc(48 / var(--base) * 1em);
}

.u-px-48 {
  padding-left: calc(48 / var(--base) * 1em);
  padding-right: calc(48 / var(--base) * 1em);
}

.u-py-48 {
  padding-top: calc(48 / var(--base) * 1em);
  padding-bottom: calc(48 / var(--base) * 1em);
}

.u-pt-48 {
  padding-top: calc(48 / var(--base) * 1em);
}

.u-pr-48 {
  padding-right: calc(48 / var(--base) * 1em);
}

.u-pb-48 {
  padding-bottom: calc(48 / var(--base) * 1em);
}

.u-pl-48 {
  padding-left: calc(48 / var(--base) * 1em);
}

/* Margin */
.u-m-64 {
  margin: calc(64 / var(--base) * 1em);
}

.u-mx-64 {
  margin-left: calc(64 / var(--base) * 1em);
  margin-right: calc(64 / var(--base) * 1em);
}

.u-my-64 {
  margin-top: calc(64 / var(--base) * 1em);
  margin-bottom: calc(64 / var(--base) * 1em);
}

.u-mt-64 {
  margin-top: calc(64 / var(--base) * 1em);
}

.u-mr-64 {
  margin-right: calc(64 / var(--base) * 1em);
}

.u-mb-64 {
  margin-bottom: calc(64 / var(--base) * 1em);
}

.u-ml-64 {
  margin-left: calc(64 / var(--base) * 1em);
}

/* Margin negative */
.u-m-n64 {
  margin: calc(64 / var(--base) * -1em);
}

.u-mx-n64 {
  margin-left: calc(64 / var(--base) * -1em);
  margin-right: calc(64 / var(--base) * -1em);
}

.u-my-n64 {
  margin-top: calc(64 / var(--base) * -1em);
  margin-bottom: calc(64 / var(--base) * -1em);
}

.u-mt-n64 {
  margin-top: calc(64 / var(--base) * -1em);
}

.u-mr-n64 {
  margin-right: calc(64 / var(--base) * -1em);
}

.u-mb-n64 {
  margin-bottom: calc(64 / var(--base) * -1em);
}

.u-ml-n64 {
  margin-left: calc(64 / var(--base) * -1em);
}

/* Padding */
.u-p-64 {
  padding: calc(64 / var(--base) * 1em);
}

.u-px-64 {
  padding-left: calc(64 / var(--base) * 1em);
  padding-right: calc(64 / var(--base) * 1em);
}

.u-py-64 {
  padding-top: calc(64 / var(--base) * 1em);
  padding-bottom: calc(64 / var(--base) * 1em);
}

.u-pt-64 {
  padding-top: calc(64 / var(--base) * 1em);
}

.u-pr-64 {
  padding-right: calc(64 / var(--base) * 1em);
}

.u-pb-64 {
  padding-bottom: calc(64 / var(--base) * 1em);
}

.u-pl-64 {
  padding-left: calc(64 / var(--base) * 1em);
}

.u-color-cvr {
  color: var(--c-cvr);
}

.u-bg-cvr {
  background-color: var(--c-cvr);
}

.u-border-cvr {
  border-color: var(--c-cvr);
}

.u-color-cvr2 {
  color: var(--c-cvr2);
}

.u-bg-cvr2 {
  background-color: var(--c-cvr2);
}

.u-border-cvr2 {
  border-color: var(--c-cvr2);
}

.u-color-cvr3 {
  color: var(--c-cvr3);
}

.u-bg-cvr3 {
  background-color: var(--c-cvr3);
}

.u-border-cvr3 {
  border-color: var(--c-cvr3);
}

.u-color-cvr4 {
  color: var(--c-cvr4);
}

.u-bg-cvr4 {
  background-color: var(--c-cvr4);
}

.u-border-cvr4 {
  border-color: var(--c-cvr4);
}

.u-color-cvr5 {
  color: var(--c-cvr5);
}

.u-bg-cvr5 {
  background-color: var(--c-cvr5);
}

.u-border-cvr5 {
  border-color: var(--c-cvr5);
}

.u-color-txt-primary {
  color: var(--c-txt-primary);
}

.u-bg-txt-primary {
  background-color: var(--c-txt-primary);
}

.u-border-txt-primary {
  border-color: var(--c-txt-primary);
}

.u-color-txt-secondary {
  color: var(--c-txt-secondary);
}

.u-bg-txt-secondary {
  background-color: var(--c-txt-secondary);
}

.u-border-txt-secondary {
  border-color: var(--c-txt-secondary);
}

.u-color-txt-cvr {
  color: var(--c-txt-cvr);
}

.u-bg-txt-cvr {
  background-color: var(--c-txt-cvr);
}

.u-border-txt-cvr {
  border-color: var(--c-txt-cvr);
}

.u-color-txt-red {
  color: var(--c-txt-red);
}

.u-bg-txt-red {
  background-color: var(--c-txt-red);
}

.u-border-txt-red {
  border-color: var(--c-txt-red);
}

.bg-red1 {
  background-image: var(--c-bg-red1-image);
  background-color: var(--c-bg-red);
  background-blend-mode: overlay, normal;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: var(--c-txt-cvr);
}

.bg-red2 {
  background-image: var(--c-bg-red2-image);
  background-color: var(--c-bg-red);
  background-blend-mode: overlay, normal;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: var(--c-txt-cvr);
}

/* ==========================================================================
   foundation/_fonts.scss
   Font Face Definitions
   ========================================================================== */
@font-face {
  font-family: "Outfit";
  src: url("../fonts/Outfit-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Outfit";
  src: url("../fonts/Outfit-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* ===================================================================
CSS information

file name  : default.css
author     : Abilive
style info : 汎用リセット記述
=================================================================== */
html,
article,
aside,
audio,
blockquote,
body,
dd,
dialog,
div,
dl,
dt,
fieldset,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
input,
li,
mark,
menu,
nav,
ol,
p,
pre,
section,
td,
textarea,
th,
time,
ul,
video,
main {
  margin: 0;
  padding: 0;
  word-wrap: break-word;
  overflow-wrap: break-word;
  font-feature-settings: "palt";
}

address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption,
th {
  text-align: left;
}

q:after,
q:before {
  content: "";
}

embed,
object {
  vertical-align: top;
}

hr,
legend {
  display: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
}

abbr,
acronym,
fieldset,
img {
  border: 0;
}

li {
  list-style-type: none;
}

sup {
  vertical-align: super;
  font-size: 0.5em;
}

img {
  vertical-align: top;
}

i {
  font-style: normal;
}

svg {
  vertical-align: middle;
}

article,
aside,
dialog,
figure,
footer,
header,
hgroup,
nav,
section,
main {
  display: block;
}

nav,
ul {
  list-style: none;
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
   foundation/_base.scss
   style info : Base element defaults (html, body, a, img, inputs)
=================================================================== */
html {
  font-size: small;
  line-height: 1.8;
}

body {
  color: var(--c-base);
  background: #fff;
  -webkit-text-size-adjust: none;
  font-size: 108%;
}
@media only screen and (max-width: 767px) {
  body {
    font-size: 93%;
  }
}
@media only screen and (min-width: 1561px) {
  body {
    font-size: 139%;
  }
}
@media print {
  body {
    font-size: 139%;
  }
}
body a {
  color: var(--c-base);
  text-decoration: underline;
}
body a:hover {
  text-decoration: none;
}
body img {
  max-width: 100%;
  height: auto;
  -webkit-touch-callout: none;
  line-height: 1;
}

body,
pre,
input,
textarea,
select {
  font-family: "Hiragino Kaku Gothic Pro", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
}

input,
select,
textarea {
  font-size: 100%;
}

html.ie8 .view_tab,
html.ie8 .view_tab_sp,
html.ie8 .view_sp {
  display: none !important;
}
html.ie8 #abi_page {
  min-width: 1280px !important;
  margin: auto;
  font-size: 100% !important;
}

.en {
  font-family: "Outfit", sans-serif;
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
   foundation/_typography.scss
   style info : Font-face declarations & type scale
=================================================================== */
/*
 * Usage:
 * .u-txt--r14-160   → font-weight: 300 (regular)
 * .u-txt--s14-160   → font-weight: 600 (semibold)
 *
 * Format:
 * .u-txt--{weight}{font-size}-{line-height}
 * weight: r = 400, s = 600
 *
 * Examples:
 * .u-txt--r14-120 → font-size: 14px, font-weight: 400, line-height: 1.2
 * .u-txt--s13-160 → font-size: 13px, font-weight: 600, line-height: 1.6
 */
.u-txt--r12-100 {
  font-size: 86%;
  font-weight: var(--fw-body);
  line-height: 1;
}

.u-txt--r12-120 {
  font-size: 86%;
  font-weight: var(--fw-body);
  line-height: 1.2;
}

.u-txt--r12-160 {
  font-size: 86%;
  font-weight: var(--fw-body);
  line-height: 1.6;
}

.u-txt--r12-280 {
  font-size: 86%;
  font-weight: var(--fw-body);
  line-height: 2.8;
}

.u-txt--r13-100 {
  font-size: 93%;
  font-weight: var(--fw-body);
  line-height: 1;
}

.u-txt--r13-120 {
  font-size: 93%;
  font-weight: var(--fw-body);
  line-height: 1.2;
}

.u-txt--r13-160 {
  font-size: 93%;
  font-weight: var(--fw-body);
  line-height: 1.6;
}

.u-txt--r13-280 {
  font-size: 93%;
  font-weight: var(--fw-body);
  line-height: 2.8;
}

.u-txt--r14-100 {
  font-size: 100%;
  font-weight: var(--fw-body);
  line-height: 1;
}

.u-txt--r14-120 {
  font-size: 100%;
  font-weight: var(--fw-body);
  line-height: 1.2;
}

.u-txt--r14-160 {
  font-size: 100%;
  font-weight: var(--fw-body);
  line-height: 1.6;
}

.u-txt--r14-280 {
  font-size: 100%;
  font-weight: var(--fw-body);
  line-height: 2.8;
}

.u-txt--s12-100 {
  font-size: 86%;
  font-weight: var(--fw-lead);
  line-height: 1;
}

.u-txt--s12-120 {
  font-size: 86%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
}

.u-txt--s12-160 {
  font-size: 86%;
  font-weight: var(--fw-lead);
  line-height: 1.6;
}

.u-txt--s12-280 {
  font-size: 86%;
  font-weight: var(--fw-lead);
  line-height: 2.8;
}

.u-txt--s13-100 {
  font-size: 93%;
  font-weight: var(--fw-lead);
  line-height: 1;
}

.u-txt--s13-120 {
  font-size: 93%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
}

.u-txt--s13-160 {
  font-size: 93%;
  font-weight: var(--fw-lead);
  line-height: 1.6;
}

.u-txt--s13-280 {
  font-size: 93%;
  font-weight: var(--fw-lead);
  line-height: 2.8;
}

.u-txt--s14-100 {
  font-size: 100%;
  font-weight: var(--fw-lead);
  line-height: 1;
}

.u-txt--s14-120 {
  font-size: 100%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
}

.u-txt--s14-160 {
  font-size: 100%;
  font-weight: var(--fw-lead);
  line-height: 1.6;
}

.u-txt--s14-280 {
  font-size: 100%;
  font-weight: var(--fw-lead);
  line-height: 2.8;
}

/*
 * Usage:
 * .u-lead--jp16-100
 *
 * Format:
 * .u-lead--jp{font-size}-{line-height}
 *
 * Examples:
 * .u-lead--jp16-100 -> font-size: 16px, line-height: 1
 * .u-lead--jp20-180 -> font-size: 20px, line-height: 1.8
 */
.u-lead--jp12-100 {
  font-size: 86%;
  font-weight: var(--fw-lead);
  line-height: 1;
  letter-spacing: 0.04em;
}

.u-lead--jp12-120 {
  font-size: 86%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.u-lead--jp12-180 {
  font-size: 86%;
  font-weight: var(--fw-lead);
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.u-lead--jp14-100 {
  font-size: 100%;
  font-weight: var(--fw-lead);
  line-height: 1;
  letter-spacing: 0.04em;
}

.u-lead--jp14-120 {
  font-size: 100%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.u-lead--jp14-180 {
  font-size: 100%;
  font-weight: var(--fw-lead);
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.u-lead--jp16-100 {
  font-size: 115%;
  font-weight: var(--fw-lead);
  line-height: 1;
  letter-spacing: 0.04em;
}

.u-lead--jp16-120 {
  font-size: 115%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.u-lead--jp16-180 {
  font-size: 115%;
  font-weight: var(--fw-lead);
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.u-lead--jp20-100 {
  font-size: 143%;
  font-weight: var(--fw-lead);
  line-height: 1;
  letter-spacing: 0.04em;
}

.u-lead--jp20-120 {
  font-size: 143%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.u-lead--jp20-180 {
  font-size: 143%;
  font-weight: var(--fw-lead);
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.u-lead--jp24-100 {
  font-size: 172%;
  font-weight: var(--fw-lead);
  line-height: 1;
  letter-spacing: 0.04em;
}

.u-lead--jp24-120 {
  font-size: 172%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.u-lead--jp24-180 {
  font-size: 172%;
  font-weight: var(--fw-lead);
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.u-lead--jp32-100 {
  font-size: 229%;
  font-weight: var(--fw-lead);
  line-height: 1;
  letter-spacing: 0.04em;
}

.u-lead--jp32-120 {
  font-size: 229%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.u-lead--jp32-180 {
  font-size: 229%;
  font-weight: var(--fw-lead);
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.u-lead--jp80-100 {
  font-size: 572%;
  font-weight: var(--fw-lead);
  line-height: 1;
  letter-spacing: 0.04em;
}

.u-lead--jp80-120 {
  font-size: 572%;
  font-weight: var(--fw-lead);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.u-lead--jp80-180 {
  font-size: 572%;
  font-weight: var(--fw-lead);
  line-height: 1.8;
  letter-spacing: 0.04em;
}

/*
 * Usage:
 * .u-lead--en14-100
 *
 * Format:
 * .u-lead--en{font-size}-{line-height}
 *
 * Examples:
 * .u-lead--en-r14-100 -> font-weight: 400, font-size: 14px, line-height: 1
 * .u-lead--en-s14-100 -> font-weight: 600, font-size: 14px, line-height: 1
 */
.u-lead--en-r14-100 {
  font-size: 100%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r16-100 {
  font-size: 115%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r24-100 {
  font-size: 172%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r32-100 {
  font-size: 229%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r36-100 {
  font-size: 258%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r40-100 {
  font-size: 286%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r48-100 {
  font-size: 343%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r58-100 {
  font-size: 415%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r64-100 {
  font-size: 458%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r80-100 {
  font-size: 572%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-r96-100 {
  font-size: 686%;
  font-weight: var(--fw-body-en);
  line-height: 1;
}

.u-lead--en-s14-100 {
  font-size: 100%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s16-100 {
  font-size: 115%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s24-100 {
  font-size: 172%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s32-100 {
  font-size: 229%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s36-100 {
  font-size: 258%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s40-100 {
  font-size: 286%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s48-100 {
  font-size: 343%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s58-100 {
  font-size: 415%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s64-100 {
  font-size: 458%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s80-100 {
  font-size: 572%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

.u-lead--en-s96-100 {
  font-size: 686%;
  font-weight: var(--fw-lead-en);
  line-height: 1;
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
   layout/_container.scss
   style info : Page wrapper, inner container helpers
=================================================================== */
.l-container {
  width: 83.3333333333%;
  max-width: var(--max-width-contaimer);
  margin-inline: auto;
  box-sizing: border-box;
}
@media only screen and (max-width: 1199px) {
  .l-container {
    width: 90%;
  }
}
.l-container.container-no-mw {
  max-width: 100%;
}
.l-container.wide-no-mw {
  width: 94.4444444444%;
  max-width: 100%;
}
@media only screen and (max-width: 1199px) {
  .l-container.wide-no-mw {
    width: 90%;
  }
}
.l-container.wide {
  width: 94.4444444444%;
}
@media only screen and (max-width: 1199px) {
  .l-container.wide {
    width: 90%;
  }
}
.l-container.large {
  width: 91.6666666667%;
}
@media only screen and (max-width: 1199px) {
  .l-container.large {
    width: 90%;
  }
}
.l-container.medium {
  width: 75%;
  max-width: calc(var(--max-width-contaimer) - 2 * var(--space-screen));
}
@media only screen and (min-width: 1561px) {
  .l-container.medium {
    width: 90%;
    max-width: 1400px;
  }
}
@media print {
  .l-container.medium {
    width: 90%;
    max-width: 1400px;
  }
}
@media only screen and (min-width: 1200px) and (max-width: 1400px) {
  .l-container.medium {
    min-width: 1080px;
  }
}
@media only screen and (max-width: 1199px) {
  .l-container.medium {
    width: 90%;
  }
}
.l-container.small {
  width: 66.6666666667%;
  max-width: calc(var(--max-width-contaimer) - 4 * var(--space-screen));
}
@media only screen and (max-width: 1199px) {
  .l-container.small {
    width: 90%;
  }
}
.l-container.smaller {
  width: 62.5%;
  max-width: calc(var(--max-width-contaimer) - 4 * var(--space-screen));
}
@media only screen and (max-width: 1199px) {
  .l-container.smaller {
    width: 90%;
  }
}
.l-container.extra-small {
  width: 52.7777777778%;
  max-width: calc(var(--max-width-contaimer) - 4 * var(--space-screen));
}
@media only screen and (max-width: 1199px) {
  .l-container.extra-small {
    width: 90%;
  }
}
.l-container.fluid {
  width: 100%;
  max-width: none;
}
@media only screen and (max-width: 767px) {
  .l-container.fluid-sp {
    width: 100%;
    max-width: none;
  }
}
.l-container.fluid-right {
  margin-right: 0;
  margin-left: auto;
  max-width: none;
}
@media only screen and (min-width: 1200px) {
  .l-container.fluid-right {
    width: calc(50% + min(83.3333333333%, var(--max-width-contaimer)) / 2);
  }
}
@media print {
  .l-container.fluid-right {
    width: calc(50% + min(83.3333333333%, var(--max-width-contaimer)) / 2);
  }
}
@media only screen and (max-width: 1199px) {
  .l-container.fluid-right {
    width: 95%;
    padding-inline: 0;
  }
}
@media only screen and (max-width: 767px) {
  .l-container.fluid-right.fluid-sp {
    width: 100%;
    max-width: none;
  }
}
@media only screen and (min-width: 1200px) {
  .l-container.fluid-right.medium {
    width: calc(50% + min(75%, var(--max-width-contaimer) - 2 * var(--space-screen)) / 2);
  }
}
@media print {
  .l-container.fluid-right.medium {
    width: calc(50% + min(75%, var(--max-width-contaimer) - 2 * var(--space-screen)) / 2);
  }
}
.l-container.fluid-left {
  margin-left: 0;
  margin-right: auto;
  max-width: none;
}
@media only screen and (min-width: 1200px) {
  .l-container.fluid-left {
    width: calc(50% + min(83.3333333333%, var(--max-width-contaimer)) / 2);
  }
}
@media print {
  .l-container.fluid-left {
    width: calc(50% + min(83.3333333333%, var(--max-width-contaimer)) / 2);
  }
}
@media only screen and (max-width: 1199px) {
  .l-container.fluid-left {
    width: 95%;
    padding-inline: 0;
  }
}
@media only screen and (min-width: 1200px) {
  .l-container.fluid-left.medium {
    width: calc(50% + min(75%, var(--max-width-contaimer) - 2 * var(--space-screen)) / 2);
  }
}
@media print {
  .l-container.fluid-left.medium {
    width: calc(50% + min(75%, var(--max-width-contaimer) - 2 * var(--space-screen)) / 2);
  }
}

.p-section {
  padding-block: var(--space-section);
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
body.is-modal-open {
  overflow: hidden;
}

.l-header {
  --color-header-text: var(--c-txt-primary);
  position: relative;
  z-index: 1000;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
.l-header--logo {
  color: var(--color-header-text);
}
.l-header__nav {
  display: flex;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .l-header__nav {
    display: none;
  }
}
@media only screen and (max-width: 767px) {
  .l-header__nav {
    display: none;
  }
}
.l-header__nav {
  align-items: center;
  margin-left: auto;
}
.l-header__nav-link {
  font-size: 93%;
  line-height: 1;
  color: var(--color-header-text);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  padding: calc(20 / var(--base) * 1em) calc(10 / var(--base) * 1em);
  display: block;
  transition: color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.l-header__nav-link span {
  padding-bottom: 2px;
  border-bottom: 1px solid transparent;
  transition: border-color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.l-header__nav-link:hover span {
  border-color: transparent;
  text-decoration: none;
}
.l-header__nav-link.is-parent-link:hover span {
  border-color: transparent;
}
.l-header__nav-btn {
  font-size: 93%;
  line-height: 1;
  text-decoration: none;
  background: var(--c-base-primary);
  color: var(--c-txt-cvr);
  border-radius: calc(4 / var(--base) * 1em);
  padding: calc(4 / var(--base) * 1em) calc(22 / var(--base) * 1em);
  cursor: pointer;
}
.l-header__nav-btn.u-bg-cvr2 {
  background: var(--c-cvr2);
}
.l-header__nav-item {
  list-style: none;
  position: relative;
}
.l-header__nav-item.is-wide-sub {
  position: static;
}
.l-header__nav-item.is-wide-sub .l-header__nav-sub {
  left: auto;
  right: 0;
  transform: none;
}
.l-header__nav-item:hover .l-header__nav-link {
  background: var(--c-base-white);
  color: var(--c-base-primary);
}
.l-header__nav-list {
  display: flex;
  align-items: center;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  gap: calc(4 / var(--base) * 1em);
}
.l-header__nav-sub {
  display: flex;
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  max-height: 0;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: -webkit-max-content;
  width: max-content;
  background: var(--c-base-white);
  padding: 0 calc(40 / var(--base) * 1em);
  border-radius: calc(8 / var(--base) * 1em);
  gap: calc(20 / var(--base) * 1em);
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), padding 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.l-header__nav-sub-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: calc(8 / var(--base) * 1em);
  text-decoration: none;
  max-width: calc(150 / var(--base) * 1em);
}
.l-header__nav-sub-item .img {
  border-radius: calc(4 / var(--base) * 1em);
  overflow: hidden;
  width: 100%;
}
.l-header__nav-sub-item .img img {
  width: 100%;
  height: auto;
}
.l-header__nav-sub-item .name {
  font-size: 93%;
  line-height: 1;
  display: flex;
  justify-content: space-between;
  position: relative;
  padding-left: 8px;
}
.l-header__nav-sub-item .name:before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--c-cvr);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.l-header__nav-sub-item .name .txt-name {
  padding-bottom: 2px;
  border-bottom: 1px solid transparent;
  transition: border-color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.l-header__nav-sub-item .name .u-color--cvr {
  color: var(--c-cvr);
}
.l-header__nav-sub-item:hover .name .txt-name {
  border-color: var(--c-txt-primary);
}
.l-header__nav-sub.u-bg-cvr {
  background: var(--c-cvr);
  color: var(--c-base-white);
}
.l-header__nav-sub.u-bg-cvr .l-header__nav-sub-item .name {
  color: var(--c-base-white);
}
.l-header__nav-sub.u-bg-cvr .l-header__nav-sub-item .name:before {
  background: var(--c-base-white);
}
.l-header__nav-sub.u-bg-cvr .l-header__nav-sub-item:hover .name .txt-name {
  border-color: var(--c-base-white);
}
.l-header__nav-sub.u-bg-base-primary {
  background: var(--c-base-primary);
  color: var(--c-base-white);
}
.l-header__nav-sub.u-bg-base-primary .l-header__nav-sub-item .name {
  color: var(--c-base-white);
}
.l-header__nav-sub.u-bg-base-primary .l-header__nav-sub-item .name:before {
  background: var(--c-base-white);
}
.l-header__nav-sub.u-bg-base-primary .l-header__nav-sub-item:hover .name .txt-name {
  border-color: var(--c-base-white);
}
.l-header__nav-list {
  position: relative;
}
.l-header__nav-item.has-nav-sub:hover .l-header__nav-sub {
  max-height: 250px;
  opacity: 1;
  visibility: visible;
  padding: calc(20 / var(--base) * 1em) calc(40 / var(--base) * 1em);
}
.l-header__nav-item.has-nav-sub:hover .is-parent-link {
  background: var(--c-base-white);
  color: var(--c-base-primary);
}
.l-header__default {
  width: 100%;
  z-index: 100;
  padding-block: calc(15 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-header__default {
    padding-block: calc(8 / var(--base) * 1em);
  }
}
.l-header__default-inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2em;
  position: relative;
}
.l-header.l-header-sticky {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: var(--c-base-white);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.l-header.l-header-sticky .l-header__default {
  position: relative;
  top: 0;
  --color-header-text: var(--c-txt-primary);
  padding-block: 0;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .l-header.l-header-sticky .l-header__default {
    padding-block: calc(12 / var(--base) * 1em);
  }
}
@media only screen and (max-width: 767px) {
  .l-header.l-header-sticky .l-header__default {
    padding-block: calc(8 / var(--base) * 1em);
  }
}
.l-header.l-header-sticky .l-header__nav-btn {
  padding-block: calc(12 / var(--base) * 1em);
}
.l-header.is-sticky-visible {
  animation: slideDown 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.l-header__logo-link {
  display: flex;
  gap: calc(16 / var(--base) * 1em);
  align-items: center;
  text-decoration: none;
  font-size: 100%;
}
.l-header__logo-link svg {
  height: calc(46 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-header__logo-link svg {
    height: calc(32 / var(--base) * 1em);
  }
}
.l-header__logo-link svg {
  max-height: calc(46 / var(--base) * 1em);
  width: auto;
  padding-bottom: calc(1 / var(--base) * 1em);
}
.l-header__logo-link svg path {
  fill: currentColor;
  transition: fill 0.3s ease;
}
.l-header__logo-text {
  text-transform: uppercase;
  line-height: 1;
  font-size: 100%;
  font-weight: var(--fw-lead);
  color: var(--c-cvr);
  background: var(--c-txt-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.l-header__controls {
  display: none;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .l-header__controls {
    display: flex;
  }
}
@media only screen and (max-width: 767px) {
  .l-header__controls {
    display: flex;
  }
}
.l-header__controls {
  margin-left: auto;
}
.l-header__modal-close, .l-header__menu-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(4 / var(--base) * 1em);
  border: none;
  cursor: pointer;
  padding: 0;
  width: calc(48 / var(--base) * 1em);
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: var(--c-bg-primary);
  color: var(--c-base-white);
  font-size: 100%;
}
.l-header__modal-close .menu__line, .l-header__menu-btn .menu__line {
  width: calc(14 / var(--base) * 1em);
  height: calc(1 / var(--base) * 1em);
  background: var(--c-base-white);
  margin-block: calc(5 / var(--base) * 1em);
  position: relative;
  transition: background-color 0.3s ease;
}
.l-header__modal-close .menu__line:before, .l-header__modal-close .menu__line:after, .l-header__menu-btn .menu__line:before, .l-header__menu-btn .menu__line:after {
  content: "";
  width: 100%;
  height: calc(1 / var(--base) * 1em);
  background: var(--c-base-white);
  position: absolute;
  right: 0;
  transition: transform 0.3s ease, top 0.3s ease, bottom 0.3s ease;
}
.l-header__modal-close .menu__line:before, .l-header__menu-btn .menu__line:before {
  top: calc(-5 / var(--base) * 1em);
}
.l-header__modal-close .menu__line:after, .l-header__menu-btn .menu__line:after {
  bottom: calc(-5 / var(--base) * 1em);
}
.l-header__modal-close .menu__text, .l-header__menu-btn .menu__text {
  font-size: 72%;
  font-weight: var(--fw-lead);
  line-height: 1;
}
.l-header__modal-close.is-active .menu__line, .l-header__menu-btn.is-active .menu__line {
  background: transparent;
}
.l-header__modal-close.is-active .menu__line:before, .l-header__menu-btn.is-active .menu__line:before {
  top: 0;
  transform: rotate(45deg);
}
.l-header__modal-close.is-active .menu__line:after, .l-header__menu-btn.is-active .menu__line:after {
  bottom: 0;
  transform: rotate(-45deg);
}

.l-header__modal {
  --modal-space: calc(20/var(--base) * 1em) calc(32/var(--base) * 1em);
  --modal-space-inline: calc(32/var(--base) * 1em);
  --modal-space-block: calc(20/var(--base) * 1em);
  position: fixed;
  top: calc(var(--header-height) - 1px);
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1001;
  display: flex;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.35s cubic-bezier(0.4, 0, 0.2, 1), top 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
@media only screen and (min-width: 1200px) {
  .l-header__modal {
    display: none;
  }
}
@media print {
  .l-header__modal {
    display: none;
  }
}
@media only screen and (max-width: 767px) {
  .l-header__modal {
    --modal-space: calc(20/var(--base) * 1em);
  }
}
.l-header__modal.is-sticky {
  top: var(--height-header-sticky);
}
.l-header__modal.is-open {
  pointer-events: auto;
  visibility: visible;
  opacity: 1;
}
.l-header__modal-image {
  overflow: hidden;
  cursor: pointer;
  width: calc(100% - 500px);
}
@media only screen and (max-width: 767px) {
  .l-header__modal-image {
    display: none;
  }
}
.l-header__modal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.l-header__modal-content {
  width: 500px;
  background: var(--c-base-white);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  transform: translateX(40px);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.l-header__modal.is-open .l-header__modal-content {
  transform: translateX(0);
}
.l-header__modal-content-inner {
  width: 100%;
}
.l-header__modal-close {
  position: absolute;
  top: calc(18 / var(--base) * 1em);
  right: 5%;
  cursor: pointer;
  display: none;
}
.l-header__modal-btn {
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  padding: var(--modal-space);
}
.l-header__modal-btn-label {
  color: var(--c-base-white);
  display: block;
  margin-bottom: calc(10 / var(--base) * 1em);
}
.l-header__modal-btn .control__items {
  display: flex;
  gap: 4%;
}
.l-header__modal-btn .control__link {
  flex: 1;
  display: block;
  width: 48%;
}
.l-header__modal-btn .control__link .c-button {
  padding: 0.9em 0.5em;
  width: 100%;
  position: relative;
}
.l-header__modal-btn .control__link .c-button__label {
  white-space: nowrap;
}
.l-header__modal-btn .control__link .c-button.c-accordion__action:hover {
  color: #fff;
  background: var(--c-base-primary);
  border-color: var(--c-base-primary);
}
.l-header__modal-btn .control__link .c-accordion__title {
  display: flex;
  font-weight: var(--fw-lead);
}
.l-header__modal-btn .control__link .c-accordion__title:before, .l-header__modal-btn .control__link .c-accordion__title:after {
  content: "";
  position: absolute;
  background: #fff;
  border-radius: 1px;
  right: 2em;
  bottom: 0;
  top: 0;
  margin: auto 0;
}
.l-header__modal-btn .control__link .c-accordion__title:after {
  width: 13px;
  height: 1px;
  right: 14px;
}
.l-header__modal-btn .control__link .c-accordion__title:before {
  width: 1px;
  height: 13px;
  right: 20px;
  transform: rotate(0deg);
  transform-origin: center center;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.l-header__modal-btn details.c-accordion.is-closing .c-accordion__action,
.l-header__modal-btn details.c-accordion[open] .c-accordion__action {
  background: #fff !important;
  color: var(--c-base-primary) !important;
}
.l-header__modal-btn details.c-accordion.is-closing .c-accordion__title::before,
.l-header__modal-btn details.c-accordion[open] .c-accordion__title::before {
  transform: rotate(90deg);
}
.l-header__modal-btn details.c-accordion[open] .c-accordion__title::before, .l-header__modal-btn details.c-accordion[open] .c-accordion__title::after {
  background: var(--c-base-primary);
}
.l-header__modal-btn .control__target {
  padding-top: 0.75em;
}
.l-header__modal-btn .control__target > li:nth-child(n+2) {
  margin-top: 0.5em;
}
.l-header__modal-btn .control__target > li > a {
  font-size: 86%;
  text-align: left;
  border-bottom: 1px solid #fff;
  padding: 0.25em 0;
  color: #fff !important;
  text-decoration: none;
  display: block;
  position: relative;
  padding-right: 1.5em;
}
.l-header__modal-btn .control__target > li > a svg {
  position: absolute;
  right: 0.25em;
  top: 0;
  bottom: 0;
  margin: auto 0;
}
.l-header__modal-nav {
  padding-inline: var(--modal-space-inline);
  padding-top: calc(24 / var(--base) * 1em);
}
.l-header__modal-nav-link {
  display: flex;
  justify-content: space-between;
  text-decoration: none;
  align-self: flex-start;
}
.l-header__modal-nav-link.disabled-sp {
  pointer-events: none !important;
  cursor: default !important;
}
.l-header__modal-nav-item {
  width: 100%;
  padding-bottom: calc(16 / var(--base) * 1em);
  margin-bottom: calc(24 / var(--base) * 1em);
  border-bottom: 1px solid var(--c-line-gray);
}
.l-header__modal-nav-item.is-half-part-item {
  width: 47%;
}
.l-header__modal-nav-item.has-nav-sub {
  display: grid;
  grid-template-columns: 44% 49%;
  gap: 6%;
}
.l-header__modal-nav-item.has-nav-sub .l-header__nav-sub {
  display: flex;
  flex-direction: column;
  position: static;
  opacity: 1;
  visibility: visible;
  max-height: unset;
  transform: translateX(0);
  padding: 0;
  max-width: 100%;
  border-radius: 0;
}
.l-header__modal-nav-item.has-nav-sub .l-header__nav-sub-item {
  max-width: 100%;
}
.l-header__modal-nav-item .c-title-set .jp {
  font-size: 86%;
  font-weight: var(--fw-body);
  color: var(--c-base);
}
.l-header__modal-nav-list {
  display: flex;
  flex-wrap: wrap;
  column-gap: 6%;
}
.l-header__modal-rec {
  padding: var(--modal-space);
}
.l-header__modal-rec .l-header__modal-nav-item {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}
.l-header__modal-rec .l-header__nav-sub {
  border-radius: 0;
  background: unset;
}
.l-header__modal-rec .l-header__nav-sub-item {
  color: var(--c-base-white);
}
.l-header__modal-rec .l-header__nav-sub-item .name:before {
  background: var(--c-base-white);
}
.l-header__modal-external-links {
  padding: var(--modal-space);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: calc(22 / var(--base) * 1em);
  align-items: center;
  justify-content: center;
}

.l-header.is-sticky-visible .l-header__modal-content {
  height: calc(100dvh - var(--header-height));
  overflow-y: auto;
}

.l-header__backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(var(--c-base-rgb), 0);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  display: none;
}
.l-header__backdrop.is-visible {
  display: block;
}
.l-header__backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
.c-social {
  display: flex;
  align-items: center;
  gap: calc(8 / var(--base) * 1em);
  flex-wrap: wrap;
}
.c-social__item {
  display: flex;
  align-items: center;
  gap: calc(4 / var(--base) * 1em);
  line-height: 1;
}
.c-social__item a:hover {
  opacity: 0.85;
}

@media only screen and (max-width: 767px) {
  .l-footer {
    text-align: center;
  }
}
.l-footer__contact {
  display: flex;
  flex-direction: row;
}
@media only screen and (max-width: 767px) {
  .l-footer__contact {
    flex-direction: column;
  }
}
.l-footer__contact {
  align-items: center;
  gap: calc(14 / var(--base) * 1em);
}
.l-footer__contact .logo {
  width: calc(90 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-footer__contact .logo {
    width: calc(110 / var(--base) * 1em);
    margin-bottom: calc(10 / var(--base) * 1em);
  }
}
.l-footer__contact .logo svg {
  max-width: 100%;
  height: auto;
}
.l-footer__contact .contact-info {
  display: flex;
  flex-direction: column;
  gap: calc(4 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-footer__contact .contact-info {
    justify-content: center;
  }
}
.l-footer__links {
  max-width: 64.1666666667%;
}
@media only screen and (min-width: 768px) {
  .l-footer__links {
    border-left: 1px solid rgba(241, 237, 237, 0.6);
    padding-left: calc(40 / var(--base) * 1em);
  }
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .l-footer__links {
    max-width: 54.1666666667%;
  }
}
@media only screen and (max-width: 767px) {
  .l-footer__links {
    max-width: 100%;
    border-top: 1px solid rgba(241, 237, 237, 0.6);
    padding-top: calc(28 / var(--base) * 1em);
  }
}
.l-footer__nav-list {
  display: flex;
  flex-wrap: wrap;
  column-gap: calc(16 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-footer__nav-list {
    justify-content: center;
  }
}
.l-footer__nav-item a {
  color: var(--c-txt-cvr);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.l-footer__nav-item a:hover {
  border-color: var(--c-txt-cvr);
}
.l-footer__recruitment {
  margin-top: calc(6 / var(--base) * 1em);
}
.l-footer__recruitment .recruitment_info {
  display: flex;
  gap: calc(8 / var(--base) * 1em);
  margin-top: calc(8 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-footer__recruitment .recruitment_info {
    justify-content: center;
  }
}
.l-footer__about-us {
  display: flex;
  flex-wrap: wrap;
  gap: calc(16 / var(--base) * 1em);
  margin-top: calc(16 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-footer__about-us {
    justify-content: center;
  }
}
.l-footer__copyright {
  font-size: 72%;
  line-height: 1;
  text-align: center;
  color: var(--c-txt-cvr);
  margin-top: calc(48 / var(--base) * 1em);
}
.l-footer__top, .l-footer__bottom {
  padding-block: calc(90 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-footer__top, .l-footer__bottom {
    padding-block: calc(60 / var(--base) * 1em);
  }
}
.l-footer__top {
  color: var(--c-txt-cvr);
  position: relative;
}
.l-footer__top:before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/footer/bg_footer_top.png");
  background-repeat: no-repeat;
  background-position: top left;
  background-size: contain;
}
.l-footer__top a {
  color: inherit;
  text-decoration: none;
}
.l-footer__top-content {
  display: flex;
  flex-direction: row;
}
@media only screen and (max-width: 767px) {
  .l-footer__top-content {
    flex-direction: column;
  }
}
.l-footer__top-content {
  justify-content: space-between;
  gap: calc(20 / var(--base) * 1em);
  position: relative;
  z-index: 2;
}
.l-footer__bottom {
  background: var(--c-bg-secondary);
}
.l-footer__socials {
  margin-top: calc(16 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .l-footer__socials .c-social {
    justify-content: center;
  }
}

.hotel-group {
  margin: 0 auto;
  max-width: 1000px;
  display: flex;
  flex-wrap: wrap;
}
@media only screen and (min-width: 768px) {
  .hotel-group {
    border-top: 1px solid #403534;
    border-left: 1px solid #403534;
  }
}
.hotel-group li {
  width: calc(20% - 1px);
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .hotel-group li {
    width: calc(20% - 1px);
  }
}
@media only screen and (max-width: 767px) {
  .hotel-group li {
    width: calc(33.3333333333% - 1px);
  }
}
.hotel-group li {
  height: 150px;
  padding: 1.5em 0 0;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .hotel-group li {
    border-right: 1px solid #403534;
    border-bottom: 1px solid #403534;
  }
}
.hotel-group li a {
  transition: all 0.3s ease;
}
.hotel-group li a:hover {
  opacity: 0.7;
}
.hotel-group li a img {
  max-width: 105px;
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
   components/_breadcrumb.scss
   Breadcrumb navigation styling
=================================================================== */
.c-breadcrumb {
  padding-block: calc(24 / var(--base) * 1em);
}
.c-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-breadcrumb__item {
  display: flex;
  align-items: center;
}
.c-breadcrumb__link {
  color: var(--c-base);
  text-decoration: none;
  transition: color 0.3s ease;
  border-bottom: 1px solid transparent;
  font-size: 86%;
  line-height: 1;
}
.mouse .c-breadcrumb__link:hover, .touch .c-breadcrumb__link.touchstart {
  border-color: var(--c-base);
}
.touch .c-breadcrumb__link {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .c-breadcrumb__link.touchend {
  transition-delay: 200ms;
}
.c-breadcrumb__separator {
  margin: 0 0.8em;
  flex-shrink: 0;
}
.c-breadcrumb__text {
  font-size: 86%;
  line-height: 1;
}
.c-breadcrumb__text--current {
  color: var(--c-base);
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
   components/_icon.scss
   style info : SVG icon sizing system
=================================================================== */
.c-icon {
  width: var(--icon-width, 1em);
  min-width: var(--icon-width, 1em);
  aspect-ratio: 1/1;
  height: auto;
}

.c-icon--xs {
  --icon-width: 0.75em;
}

.c-icon--sm {
  --icon-width: 1em;
}

.c-icon--md {
  --icon-width: calc(16/var(--base) * 1em);
}

.c-icon--lg {
  --icon-width: calc(20/var(--base) * 1em);
}

.c-icon--xl {
  --icon-width: calc(24/var(--base) * 1em);
}

.c-icon--primary {
  color: var(--c-cvr);
}

.c-icon--muted {
  color: rgba(var(--c-base-rgb), 0.5);
}

.c-icon--white {
  color: #fff;
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
   File        : components/_title.scss
   Description : Anchor component styles
   Author      : Abilive
   Version     : 1.0.0
   Created     : 2026-05-19
   Updated     : 2026-05-19

   Dependencies:
   - ../settings

   Notes:
   - Base anchor component
   - Use BEM naming convention
=================================================================== */
/* =========================================================
 *
 * TITLE PAGE (H1) COMPONENTS
 *
 * Usage:
 *
 * <h1 class="c-title-page">
 *     <span class="en">English page title</span>
 *     <span class="jp">日本語ページタイトル</span>
 * </h1>
 *
 * ======================================================= */
@media only screen and (min-width: 768px) {
  .u-txt-vertical {
    writing-mode: vertical-lr;
  }
}

.c-title-page {
  display: flex;
  flex-direction: column;
  gap: calc(8 / var(--base) * 1em);
}
.c-title-page .en {
  font-size: 686%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-title-page .en {
    font-size: 686%;
  }
}
@media only screen and (max-width: 767px) {
  .c-title-page .en {
    font-size: 343%;
  }
}
.c-title-page .en {
  line-height: 1.2;
  font-weight: var(--fw-lead);
  color: var(--c-cvr);
  background: var(--c-txt-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.c-title-page .jp {
  font-size: 115%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-title-page .jp {
    font-size: 115%;
  }
}
@media only screen and (max-width: 767px) {
  .c-title-page .jp {
    font-size: 100%;
  }
}
.c-title-page .jp {
  line-height: 1;
  font-weight: var(--fw-lead);
  color: var(--c-txt-primary);
  display: flex;
  align-items: center;
  gap: calc(4 / var(--base) * 1em);
}
.c-title-page .jp:before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-cvr);
}
.c-title-page.u-align--c .jp {
  justify-content: center;
}

/* =========================================================
 *
 * Section title components
 *
 * Usage:
 *
 * <div class="c-title-set c-title-set--lg">
 *     <span class="en">ARCDEF</span>
 *     <span class="jp">補足テキスト</span>
 * </div>
 *
 * ======================================================= */
.c-title-set {
  display: flex;
  flex-direction: column;
}
.c-title-set .en {
  font-size: 572%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-title-set .en {
    font-size: 458%;
  }
}
@media only screen and (max-width: 767px) {
  .c-title-set .en {
    font-size: 343%;
  }
}
.c-title-set .en {
  /* default size xl */
  line-height: 1.2;
  font-weight: var(--fw-lead);
  background: var(--c-txt-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.c-title-set .jp {
  line-height: 1;
  font-weight: var(--fw-lead);
  color: var(--c-txt-primary);
  display: flex;
  align-items: center;
  gap: calc(4 / var(--base) * 1em);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.c-title-set .jp:before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-bg-primary);
}
.c-title-set .jp.no-has-dot:before {
  display: none;
}
.c-title-set.u-align--c {
  align-items: center;
}
.c-title-set.u-txt-vertical {
  flex-direction: column-reverse;
}
@media only screen and (min-width: 768px) {
  .c-title-set.u-txt-vertical .en {
    background-image: var(--c-txt-gradient-vertical);
  }
}
.c-title-set.u-color--cvr .en {
  background-color: var(--c-txt-cvr);
  background-image: none;
}
.c-title-set.u-color--cvr .jp {
  color: var(--c-txt-cvr);
}
.c-title-set.u-color--cvr .jp:before {
  background: var(--c-txt-cvr);
}
.c-title-set {
  /* ========================================
   * LARGE
   * ====================================== */
}
.c-title-set--lg .en {
  font-size: 458%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-title-set--lg .en {
    font-size: 386%;
  }
}
@media only screen and (max-width: 767px) {
  .c-title-set--lg .en {
    font-size: 286%;
  }
}
.c-title-set {
  /* ========================================
   * MEDIUM
   * ====================================== */
}
.c-title-set--md .en {
  font-size: 343%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-title-set--md .en {
    font-size: 315%;
  }
}
@media only screen and (max-width: 767px) {
  .c-title-set--md .en {
    font-size: 229%;
  }
}
.c-title-set {
  /* ========================================
   * SMALL
   * ====================================== */
}
.c-title-set--sm .en {
  font-size: 286%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-title-set--sm .en {
    font-size: 258%;
  }
}
@media only screen and (max-width: 767px) {
  .c-title-set--sm .en {
    font-size: 172%;
  }
}
.c-title-set--sm .jp2 {
  font-size: 172%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-title-set--sm .jp2 {
    font-size: 172%;
  }
}
@media only screen and (max-width: 767px) {
  .c-title-set--sm .jp2 {
    font-size: 143%;
  }
}
.c-title-set--sm .jp2 {
  font-weight: var(--fw-lead);
  line-height: 1;
  letter-spacing: 0.04em;
}
.c-title-set {
  /* ========================================
   * Extra SMALL
   * ====================================== */
}
.c-title-set--xs .en {
  font-size: 200%;
}

.c-title-box {
  background-image: var(--c-bg-red2-image);
  background-color: var(--c-bg-red);
  background-blend-mode: overlay, normal;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: var(--c-txt-cvr);
  font-size: 229%;
  /* default size xl */
  line-height: 1.8;
  font-weight: var(--fw-lead);
  padding: calc(8 / var(--base) * 1em) calc(20 / var(--base) * 1em);
  border-radius: calc(4 / var(--base) * 1em);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  box-sizing: border-box;
}
.c-title-box.fluid {
  width: 100%;
}
.c-title-box--lg {
  font-size: 172%;
}
.c-title-box--md {
  font-size: 143%;
}
.c-title-box--sm {
  font-size: 115%;
}

.c-title-line {
  padding: 0 calc(20 / var(--base) * 1em) calc(8 / var(--base) * 1em) calc(20 / var(--base) * 1em);
  color: var(--c-line-red);
  border-bottom: 1px solid var(--c-line-red);
  font-size: 229%;
  /* default size xl */
  line-height: 1.8;
  font-weight: var(--fw-lead);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  box-sizing: border-box;
}
.c-title-line.fluid {
  width: 100%;
}
.c-title-line--lg {
  font-size: 172%;
}
.c-title-line--md {
  font-size: 143%;
}
.c-title-line--sm {
  font-size: 115%;
}

.c-txt-lead {
  font-size: 229%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-txt-lead {
    font-size: 200%;
  }
}
@media only screen and (max-width: 767px) {
  .c-txt-lead {
    font-size: 143%;
  }
}
.c-txt-lead {
  line-height: 1.8;
  font-weight: var(--fw-lead);
}
.c-txt-lead--lg {
  font-size: 172%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-txt-lead--lg {
    font-size: 158%;
  }
}
@media only screen and (max-width: 767px) {
  .c-txt-lead--lg {
    font-size: 129%;
  }
}
.c-txt-lead--md {
  font-size: 143%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-txt-lead--md {
    font-size: 129%;
  }
}
@media only screen and (max-width: 767px) {
  .c-txt-lead--md {
    font-size: 115%;
  }
}
.c-txt-lead--sm {
  font-size: 115%;
}

.c-title-card {
  font-size: 115%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-title-card {
    font-size: 115%;
  }
}
@media only screen and (max-width: 767px) {
  .c-title-card {
    font-size: 100%;
  }
}
.c-title-card {
  line-height: 1.8;
  font-weight: var(--fw-lead);
}

.c-txt-caption {
  font-size: 86%;
  line-height: 1.6;
  font-weight: var(--fw-body);
}

.c-txt-set {
  display: flex;
  flex-direction: column;
  gap: calc(16 / var(--base) * 1em);
}
.c-txt-set__title {
  font-size: 229%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-txt-set__title {
    font-size: 200%;
  }
}
@media only screen and (max-width: 767px) {
  .c-txt-set__title {
    font-size: 143%;
  }
}
.c-txt-set__title {
  line-height: 1.8;
  font-weight: var(--fw-lead);
}
.c-txt-set__info {
  font-size: 100%;
  line-height: 1.8;
  font-weight: var(--fw-body);
}
.c-txt-set--lg .c-txt-set__title {
  font-size: 172%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-txt-set--lg .c-txt-set__title {
    font-size: 172%;
  }
}
@media only screen and (max-width: 767px) {
  .c-txt-set--lg .c-txt-set__title {
    font-size: 143%;
  }
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ==========================================================
   File        : components/_anchor.scss
   Description : Anchor component styles
   Author      : Abilive
   Version     : 1.0.0
   Created     : 2026-05-19
   Updated     : 2026-05-19

   Dependencies:
   - ../settings

   Notes:
   - Base anchor component
   - Use BEM naming convention
========================================================== */
.c-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 1.5em 4em;
  border: 2px solid var(--c-btn-border);
  border-radius: 99px;
  box-sizing: border-box;
  background: var(--c-btn-bg);
  color: var(--c-btn-txt);
  cursor: pointer;
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: opacity 0.3s ease, background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  font-size: 100%;
  line-height: 1;
  font-weight: var(--fw-lead);
  min-width: calc(310 / var(--base) * 1em);
}
.c-button__icon {
  flex-shrink: 0;
}
.c-button--primary {
  --c-btn-bg: var(--c-base-primary);
  --c-btn-border: var(--c-base-primary);
}
.c-button--primary:hover {
  --c-btn-bg: #fff;
  --c-btn-txt: var(--c-base-primary);
}
.c-button--secondary {
  --c-btn-bg: var(--c-bg-red);
  --c-btn-border: var(--c-bg-red);
}
.c-button--secondary:hover {
  --c-btn-bg: #fff;
  --c-btn-txt: var(--c-bg-red);
}
.c-button--tertiary {
  --c-btn-bg: #941113;
  --c-btn-border: #941113;
}
.c-button--tertiary:hover {
  --c-btn-bg: #fff;
  --c-btn-txt: #941113;
}
.c-button--quaternary {
  --c-btn-bg: #600E0F;
  --c-btn-border: #600E0F;
}
.c-button--quaternary:hover {
  --c-btn-bg: #fff;
  --c-btn-txt: #600E0F;
}
.c-button--black {
  --c-btn-bg: #1A1817;
  --c-btn-border: #1A1817;
}
.c-button--black:hover {
  --c-btn-bg: #fff;
  --c-btn-txt: #1A1817;
}
.c-button--sm {
  padding: 1em 2em;
  font-size: 86%;
}
.c-button--lg {
  padding: 1.8em 5em;
  font-size: 115%;
}
.c-button--full {
  width: 100%;
}
.c-button--fit {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  min-width: unset;
}

.c-link {
  font-size: 100%;
  line-height: 1.4;
  font-weight: var(--fw-lead);
  display: flex;
  gap: calc(8 / var(--base) * 1em);
  align-items: center;
  text-decoration: none;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.c-link--sm {
  font-size: 86%;
}
.c-link__icon {
  width: calc(40 / var(--base) * 1em);
  min-width: calc(40 / var(--base) * 1em);
  aspect-ratio: 1/1;
  border: 1px solid transparent;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease, background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
@media only screen and (max-width: 767px) {
  .c-link__icon {
    width: calc(30 / var(--base) * 1em);
    min-width: calc(30 / var(--base) * 1em);
  }
}
.c-link__icon svg {
  flex: 1;
}
.c-link--primary .c-link__icon {
  color: transparent;
  border-color: var(--c-cvr2);
  background: var(--c-base-white);
  position: relative;
  transition: opacity 0.3s ease, background 0.3s ease, color 0.3s ease;
}
.c-link--primary .c-link__icon:before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--c-cvr2);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
.c-link--primary:hover .c-link__icon {
  color: var(--c-base-white);
  background: var(--c-cvr2);
}
.c-link--primary:hover .c-link__icon:before {
  z-index: -1;
}
.c-link--secondary .c-link__icon {
  color: var(--c-base-white);
  background: var(--c-cvr2);
}
.c-link--secondary:hover .c-link__icon {
  color: var(--c-cvr2);
  border-color: var(--c-cvr2);
  background: var(--c-base-white);
}
.c-link--base {
  font-weight: var(--fw-body);
  color: var(--c-txt-primary);
}
.c-link--base:hover {
  opacity: 0.85;
}
.c-link--outline {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  border: 1px solid var(--c-line-white);
  padding: calc(4 / var(--base) * 1em) calc(22 / var(--base) * 1em);
  border-radius: calc(20 / var(--base) * 1em);
  font-weight: var(--fw-body);
}
.c-link--outline:hover {
  background: var(--c-line-white);
  color: var(--c-line-red);
}
.c-link__wrapper.u-align--c .c-link {
  justify-content: center;
}
.c-link__wrapper.u-align--r .c-link {
  justify-content: flex-end;
}

.has-circle-icon .c-icon--circle {
  width: calc(40 / var(--base) * 1em);
  min-width: calc(40 / var(--base) * 1em);
  aspect-ratio: 1/1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: transparent;
  border: 1px solid var(--c-cvr2);
  background: var(--c-base-white);
  position: relative;
  transition: opacity 0.3s ease, background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
@media only screen and (max-width: 767px) {
  .has-circle-icon .c-icon--circle {
    width: calc(30 / var(--base) * 1em);
    min-width: calc(20 / var(--base) * 1em);
  }
}
.has-circle-icon .c-icon--circle:before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--c-cvr2);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
.has-circle-icon:hover .c-icon--circle {
  color: var(--c-base-white);
  background: var(--c-cvr2);
}
.has-circle-icon:hover .c-icon--circle:before {
  z-index: -1;
}

.c-action {
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 / var(--base) * 1em);
  font-size: 86%;
  font-weight: var(--fw-body);
  line-height: 1.2;
  cursor: pointer;
  color: var(--c-base);
}
.c-action__icon {
  display: flex;
  align-items: center;
  color: var(--c-base-black);
}
.c-action__icon svg[aria-hidden=true] {
  display: none;
}
.c-action__icon svg[aria-hidden=false] {
  display: block;
}
.c-action--icon {
  position: relative;
}
.c-action--icon:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
   File        : components/_job-card.scss
   Description : Recruitment Job Card Component with 3 distinct layouts
                 - Style 1: Wide horizontal card (image left, content right)
                 - Style 2: Compact horizontal card (tags & title top, image & desc middle, location left, action bottom-right)
                 - Style 3: Vertical standard card (image top full-width, content bottom)
   =================================================================== */
.c-job-card {
  width: 100%;
  box-sizing: border-box;
}
.c-job-card a {
  text-decoration: none;
}
.c-job-card__inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background-color: var(--c-base-white);
  border: 1px solid var(--c-line-gray);
  border-radius: calc(12 / var(--base) * 1em);
  padding: calc(32 / var(--base) * 1em) calc(36 / var(--base) * 1em);
}
@media only screen and (max-width: 767px) {
  .c-job-card__inner {
    padding: calc(16 / var(--base) * 1em);
  }
}
.c-job-card__inner {
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.c-job-card__inner.is-link:hover {
  border-color: var(--c-cvr2);
}
.c-job-card__inner.is-link:hover .c-job-card__title {
  opacity: 0.85;
}
.c-job-card__img {
  border-radius: calc(8 / var(--base) * 1em);
  overflow: hidden;
  flex-shrink: 0;
  background-color: var(--c-base-light-gray);
}
.c-job-card__img img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.c-job-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: calc(4 / var(--base) * 1em);
}
.c-job-card__tag {
  font-size: 86%;
  line-height: 1;
  padding: calc(4 / var(--base) * 1em) calc(10 / var(--base) * 1em) calc(2 / var(--base) * 1em);
  border-radius: calc(40 / var(--base) * 1em);
  color: var(--c-base-secondary);
  border: 1px solid var(--c-base-secondary);
}
.c-job-card__hashtags {
  display: flex;
  flex-wrap: wrap;
  gap: calc(4 / var(--base) * 1em);
  margin-top: calc(8 / var(--base) * 1em);
}
.c-job-card__hashtag {
  color: var(--c-txt-red);
  font-size: 86%;
  line-height: 1;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.c-job-card__hashtag.is-link:hover {
  opacity: var(--link-hover-opacity);
}
.c-job-card__title {
  display: flex;
  align-items: center;
}
.c-job-card__title-txt {
  color: var(--c-txt-red);
  font-weight: var(--fw-lead);
  font-size: 172%;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-job-card__title-txt {
    font-size: 172%;
  }
}
@media only screen and (max-width: 767px) {
  .c-job-card__title-txt {
    font-size: 143%;
  }
}
.c-job-card__title-txt {
  line-height: 1.4;
  word-break: break-word;
  transition: opacity 0.3s ease;
}
.c-job-card__title-txt.is-link:hover {
  opacity: var(--link-hover-opacity);
}
.c-job-card__desc {
  color: var(--c-txt-primary);
  font-size: 100%;
  line-height: 1.8;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}
.c-job-card__location {
  display: flex;
  align-items: flex-start;
  color: var(--c-txt-red);
}
.c-job-card__location-icon {
  flex-shrink: 0;
  width: calc(20 / var(--base) * 1em);
  height: calc(20 / var(--base) * 1em);
}
.c-job-card__location-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0 calc(8 / var(--base) * 1em);
  flex: 1;
  min-width: 0;
}
.c-job-card__location-item {
  color: var(--c-txt-red);
  font-size: 93%;
  line-height: 1.6;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.c-job-card__location-item.is-link:hover {
  opacity: var(--link-hover-opacity);
}
.c-job-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(12 / var(--base) * 1em);
  margin-top: auto;
  padding-top: calc(8 / var(--base) * 1em);
}
.c-job-card__action {
  display: inline-flex;
  align-items: center;
  gap: calc(8 / var(--base) * 1em);
  margin-left: auto;
}
.c-job-card__btn-text {
  font-size: 93%;
  font-weight: var(--fw-lead, 600);
  color: var(--c-txt-primary, #000000);
  line-height: 1;
}
@media only screen and (max-width: 767px) {
  .c-job-card__btn-text {
    font-size: 86%;
  }
}
.c-job-card__arrow {
  flex-shrink: 0;
}
.c-job-card {
  /* ===================================================================
     Style 1: Wide Horizontal Layout
     =================================================================== */
}
.c-job-card--style-1 .c-job-card__inner {
  padding: calc(32 / var(--base) * 1em);
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-job-card--style-1 .c-job-card__inner {
    padding: calc(24 / var(--base) * 1em);
  }
}
@media only screen and (max-width: 767px) {
  .c-job-card--style-1 .c-job-card__inner {
    padding: calc(16 / var(--base) * 1em);
  }
}
.c-job-card--style-1 .c-job-card__inner {
  display: grid;
  grid-template-columns: calc(230 / var(--base) * 1em) 1fr;
}
@media only screen and (max-width: 767px) {
  .c-job-card--style-1 .c-job-card__inner {
    grid-template-columns: 1fr;
  }
}
.c-job-card--style-1 .c-job-card__inner {
  align-items: flex-start;
  gap: calc(20 / var(--base) * 1em);
}
.c-job-card--style-1 .c-job-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: calc(8 / var(--base) * 1em);
}
.c-job-card--style-1 .c-job-card__desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.c-job-card--style-1 .c-job-card__footer {
  padding-top: 0;
}
.c-job-card--style-1 .c-job-card__hashtags {
  margin-top: 0;
}
.c-job-card {
  /* ===================================================================
     Style 2: Compact Horizontal Layout (Top Title, Image + Desc Middle)
     =================================================================== */
}
.c-job-card--style-2 .c-job-card__header {
  width: 100%;
  margin-bottom: calc(24 / var(--base) * 1em);
}
.c-job-card--style-2 .c-job-card__middle {
  display: grid;
  grid-template-columns: 50.4385964912% 45.1754385965%;
  align-items: stretch;
  gap: 4.3859649123%;
}
.c-job-card--style-2 .c-job-card__col-left {
  display: flex;
  flex-direction: column;
}
.c-job-card--style-2 .c-job-card__col-left .c-job-card__img {
  width: 100%;
}
.c-job-card--style-2 .c-job-card__col-right {
  display: flex;
  flex-direction: column;
  gap: calc(8 / var(--base) * 1em);
}
.c-job-card--style-2 .c-job-card__title {
  margin: calc(24 / var(--base) * 1em) 0 0;
}
.c-job-card--style-2 .c-job-card__title-txt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.c-job-card--style-2 .c-job-card__location {
  margin-top: auto;
}
.c-job-card--style-2 .c-job-card__footer {
  margin-top: calc(24 / var(--base) * 1em);
  padding-top: 0;
}
.c-job-card {
  /* ===================================================================
     Style 3: Vertical Layout
     =================================================================== */
}
@media only screen and (max-width: 767px) {
  .c-job-card--style-3 {
    max-width: 100%;
  }
}
.c-job-card--style-3 .c-job-card__inner {
  flex-direction: column;
}
.c-job-card--style-3 .c-job-card__img {
  width: 100%;
  aspect-ratio: 16/10;
  margin-bottom: calc(16 / var(--base) * 1em);
}
.c-job-card--style-3 .c-job-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.c-job-card--style-3 .c-job-card__tags {
  margin-bottom: calc(20 / var(--base) * 1em);
}
.c-job-card--style-3 .c-job-card__title {
  margin-bottom: calc(20 / var(--base) * 1em);
}
.c-job-card--style-3 .c-job-card__footer {
  padding-top: calc(12 / var(--base) * 1em);
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: calc(16 / var(--base) * 1em);
}

.c-job-card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: calc(20 / var(--base) * 1em);
  margin-block: calc(20 / var(--base) * 1em);
  align-items: stretch;
}
.c-job-card-grid .c-job-card {
  width: 100%;
}
.c-job-card-grid--col-2 {
  grid-template-columns: repeat(2, 1fr);
}
@media only screen and (max-width: 767px) {
  .c-job-card-grid--col-2 {
    grid-template-columns: 1fr;
  }
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ==========================================================
   File        : components/_animation.scss
   Description : JS Scroll Animation
   Author      : Abilive
   Version     : 1.0.0
   Created     : 2026-07-13
   Updated     : 2026-07-13

   Dependencies:
   - ../settings

   Notes:
   - Base anchor component
   - Use BEM naming convention
========================================================== */
.js-animate-on-scroll {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition: opacity 1.5s cubic-bezier(0.22, 1, 0.36, 1), transform 1s cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.js-animate-on-scroll.is-animate-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* ===================================================================
CSS information

file name   : common.css
author      : Abilive
style info  : 基本・共通設定
=================================================================== */
/* ===================================================================
   components/_float-banner.scss
   style info : Fixed floating recruitment banner
=================================================================== */
.c-float-banner {
  position: fixed;
  z-index: 100;
  right: calc(4 / var(--base) * 1em);
  bottom: calc(20 / var(--base) * 1em);
  box-sizing: border-box;
  background: var(--c-base-white);
  border-radius: calc(8 / var(--base) * 1em);
  box-shadow: 0 4px 8px 4px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), height 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s ease, box-shadow 0.4s ease;
}
.c-float-banner.is-shrunk {
  width: auto;
  height: auto;
  border-radius: calc(100 / var(--base) * 1em);
  background: transparent;
}
.c-float-banner.is-shrunk .c-float-banner__content {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}
.c-float-banner.is-shrunk .c-float-banner__open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: scale(1);
  background: none;
  position: relative;
  width: auto;
  height: auto;
  padding: calc(12 / var(--base) * 1em);
  aspect-ratio: 1/1;
}
.c-float-banner__content {
  transition: opacity 0.3s ease, visibility 0.3s ease;
  opacity: 1;
  visibility: visible;
}
.c-float-banner__open {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: url("../images/common/bg_recruitment.webp") center/cover no-repeat;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transform: scale(0.8);
  cursor: pointer;
  padding: 0;
}
.c-float-banner__open::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--c-base-primary);
  border-radius: 50%;
  transition: background 0.3s ease;
}
.mouse .c-float-banner__open:hover .c-float-banner__open-text, .touch .c-float-banner__open.touchstart .c-float-banner__open-text {
  opacity: var(--link-hover-opacity);
}
.touch .c-float-banner__open {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .c-float-banner__open.touchend {
  transition-delay: 200ms;
}
.c-float-banner__open-text {
  position: relative;
  z-index: 1;
  font-family: "Outfit", sans-serif;
  font-size: 100%;
  color: var(--c-base-white);
  letter-spacing: 0.05em;
}
.c-float-banner__close {
  position: absolute;
  top: calc(7 / var(--base) * 1em);
  right: calc(6 / var(--base) * 1em);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(22 / var(--base) * 1em);
  height: calc(22 / var(--base) * 1em);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--c-bg-secondary);
  color: var(--c-base-white);
  cursor: pointer;
  font-size: 100%;
}
.c-float-banner__close svg {
  width: calc(8 / var(--base) * 1em);
  height: calc(8 / var(--base) * 1em);
}
.mouse .c-float-banner__close:hover svg, .touch .c-float-banner__close.touchstart svg {
  opacity: var(--link-hover-opacity);
}
.touch .c-float-banner__close {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .c-float-banner__close.touchend {
  transition-delay: 200ms;
}
.c-float-banner__inner {
  display: flex;
  flex-direction: column;
}
.c-float-banner__head {
  padding: calc(32 / var(--base) * 1em) calc(12 / var(--base) * 1em) calc(4 / var(--base) * 1em);
  text-align: center;
  background: url("../images/common/bg_recruitment.webp") center/cover no-repeat;
}
.c-float-banner__title {
  margin: 0;
  text-align: center;
}
.c-float-banner__title .en {
  margin: 0;
  font-size: 215%;
  line-height: 1;
  font-weight: var(--fw-lead);
  color: var(--c-txt-red);
  background: url("../images/common/bgr_ttl_recruitment.webp") center/cover no-repeat;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.c-float-banner__title .jp {
  font-size: 115%;
  font-weight: var(--fw-lead);
  line-height: 1.8;
  color: var(--c-txt-primary);
}
.c-float-banner__media {
  width: 100%;
  overflow: hidden;
}
.c-float-banner__image {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 235/132;
  object-fit: cover;
}
.c-float-banner__body {
  padding: calc(12 / var(--base) * 1em) calc(8 / var(--base) * 1em) calc(24 / var(--base) * 1em);
  text-align: center;
}
.c-float-banner__date {
  margin: 0;
  font-size: 100%;
  line-height: 1.8;
  font-weight: var(--fw-lead);
  color: var(--c-txt-primary);
}
.c-float-banner__places {
  margin: calc(8 / var(--base) * 1em) 0 0;
  padding: 0;
  list-style: none;
  font-size: 86%;
  line-height: 1.2;
  font-weight: var(--fw-lead);
  color: var(--c-txt-red);
  gap: calc(8 / var(--base) * 1em);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.c-float-banner__places-item {
  white-space: nowrap;
}
.c-float-banner .c-link {
  gap: calc(4 / var(--base) * 1em);
}

body {
  background-image: url("../images/common/body_bg.webp");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100% auto;
}
@media only screen and (min-width: 1200px) {
  body .view_tab-sp,
  body .view_tab {
    display: none !important;
  }
}
@media print {
  body .view_tab-sp,
  body .view_tab {
    display: none !important;
  }
}
@media only screen and (min-width: 768px) {
  body .view_sp {
    display: none !important;
  }
}
@media only screen and (max-width: 1199px) {
  body .view_pc {
    display: none !important;
  }
}
@media only screen and (max-width: 767px) {
  body .view_pc-tab,
  body .view_tab {
    display: none !important;
  }
}

.mouse .over {
  transition: opacity 0.3s ease-in;
}
.mouse .over:hover, .touch .over.touchstart {
  opacity: 0.7;
}
.touch .over {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .over.touchend {
  transition-delay: 200ms;
}

.u-align--c {
  text-align: center;
}
.u-align--r {
  text-align: right;
}
@media only screen and (min-width: 768px) {
  .u-align--pt {
    text-align: center;
  }
}

@media only screen and (max-width: 767px) {
  .u-align--c-sp {
    text-align: center;
  }
}

.u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.c-note {
  font-size: 86%;
  line-height: 1;
}

.c-label {
  background: var(--c-gray-dark);
  color: var(--c-white);
  padding: calc(6 / var(--base) * 1em) calc(12 / var(--base) * 1em);
}

.u-list-disc-outside {
  list-style: none;
  padding-left: 20px;
}
.u-list-disc-outside li {
  list-style-position: outside;
  list-style-type: disc;
}
.u-list-disc-outside li::marker {
  font-size: 80%;
}

.c-img-round {
  border-radius: calc(8 / var(--base) * 1em);
  overflow: hidden;
}
.c-img-round--sm {
  border-radius: calc(4 / var(--base) * 1em);
}

.is-link {
  cursor: pointer;
}
.is-link:hover {
  opacity: var(--link-hover-opacity);
}

@media only screen and (min-width: 1200px) {
  #abi_page {
    width: 100%;
    margin: auto;
  }
}
@media print {
  #abi_page {
    width: 100%;
    margin: auto;
  }
}
@media only screen and (min-width: 768px) {
  #abi_page {
    font-size: 100% !important;
  }
}

#contents {
  min-height: 500px;
}
/*# sourceMappingURL=common.css.map */
