@charset "UTF-8";
/* Scss Document */
/* =========================================================
// reset
========================================================= */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video, main {
  margin: 0;
  padding: 0;
  border: 0;
  /* outline: 0;アクセシビリティ対応の為　focusを表示	*/
  font-size: 100%;
  font-style: normal;
  font-weight: normal;
  vertical-align: middle; }

sub, sup {
  font-size: 75%; }

ul, ol {
  list-style: none; }

a {
  margin: 0;
  padding: 0;
  border: 0;
  /*outline: 0;アクセシビリティ対応の為　focusを表示	*/
  text-decoration: none; }

table, th, td {
  border-collapse: collapse;
  border-spacing: 0; }

/* 画像の下にできる隙間をなくす */
img {
  vertical-align: bottom; }

span, em, strong {
  /* 上記リセットのspan,em,strong用カスタマイズ */
  vertical-align: baseline;
  /* spanのvertical-alignをデフォルトに(ずれ防止) */
  font-weight: inherit;
  /* spanのfont-weightを伝承に */
  opacity: inherit; }

/* box-sizing */
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box; }

/* =========================================================
// Font
========================================================= */
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Regular.ttf"); }
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Medium.ttf"); }
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/Zen_Kaku_Gothic_New/ZenKakuGothicNew-Bold.ttf"); }
@font-face {
  font-family: 'M PLUS 1';
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/M_PLUS_1/static/MPLUS1-Regular.ttf"); }
@font-face {
  font-family: 'M PLUS 1';
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/M_PLUS_1/static/MPLUS1-Bold.ttf"); }
/* jost-regular - latin */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/Jost/static/Jost-Regular.ttf"); }
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/Jost/static/Jost-Medium.ttf"); }
/* =========================================================
// Variables
========================================================= */
:root {
  --primary-font: "Zen Kaku Gothic New", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", "Yu Gothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  --sub-font: "Jost", sans-serif;
  --alpha-font: "M PLUS 1p", sans-serif;
  --text-color: #2d2a28;
  --brand-color: #fc7e82;
  --bg-color-base: #dfd1ca;
  --bg-color-contents: #e4d8d2;
  --bg-color-dark: #3f3937;
  --bg-color-about: #5d5552;
  --bg-color-sp: #1a1613;
  --border-color: #d9d9d9;
  --gray-color: #e6e6e6; }

/* =========================================================
//メディアクエリ
========================================================= */
/* =========================================================
 display
========================================================= */
@media screen and (width < 768px) {
  .sp-none {
    display: none !important; } }

@media print, screen and (768px <= width) {
  .pc-none {
    display: none !important; } }

/* =========================================================
 Structure Module
========================================================= */
html {
  font-size: 62.5%;
  /*
  scroll-behavior: smooth;	
  @include sp-screen() {
  	scroll-padding-top: 50px;
  }
  */ }
  html img {
    max-width: 100%;
    height: auto; }

body {
  line-height: 1.6;
  font-family: var(--primary-font);
  width: 100%;
  -webkit-text-size-adjust: 100%;
  /*iPhone や Android のブラウザの、縦向きと横向きの文字サイズを自動調整する機能をOFFにする*/
  background-color: var(--bg-color-base);
  color: var(--text-color);
  font-weight: 400; }
  @media screen and (width < 768px) {
    body {
      font-size: 1.6rem; } }
  @media print, screen and (768px <= width) {
    body {
      font-size: 1.6rem; } }
  body .fax a {
    text-decoration: none; }

@media screen and (768px <= width < 1200px) {
  /*幅768px～1200pxの間はスクロールを出す*/
  body {
    min-width: 1200px;
    overflow: scroll; } }
@media print, screen and (768px <= width) {
  body {
    min-width: 1200px; } }
/* =========================================================
 Text Module
========================================================= */
p.indent {
  text-indent: 0.7em; }

/*======================================================
 Text Color
========================================================= */
.red {
  color: #fd6e70; }

.blue {
  color: #00a0e9; }

.orange {
  color: #f98b03; }

/* =========================================================
 Link Module
========================================================= */
a:link, a:visited {
  text-decoration: underline;
  color: var(--text-color);
  text-underline-position: under;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(var(--text-color), 0.3); }

a:active, a:focus, a:hover, a.hover {
  text-decoration: none;
  color: var(--text-color); }

/* =========================================================
 Font
========================================================= */
@media screen and (width < 768px) {
  .font-small {
    font-size: 1.0rem; } }
@media print, screen and (768px <= width) {
  .font-small {
    font-size: 1.2rem; } }

@media screen and (width < 768px) {
  .font-big {
    font-size: 1.6rem; } }
@media print, screen and (768px <= width) {
  .font-big {
    font-size: 1.8rem; } }
@media screen and (width < 768px) {
  .font-big--lg {
    font-size: 1.8rem; } }
@media print, screen and (768px <= width) {
  .font-big--lg {
    font-size: 2.2rem; } }

.font-bold {
  font-weight: bold; }

.font-black {
  font-weight: 900; }

/* =========================================================
 Width
========================================================= */
.w-3em {
  width: 3em; }

.w-4em {
  width: 4em; }

.w-5em {
  width: 5em; }

.w-6em {
  width: 6em; }

.w-7em {
  width: 7em; }

.w-8em {
  width: 8em; }

.w-9em {
  width: 9em; }

.w-10em {
  width: 10em; }

.w-11em {
  width: 11em; }

.w-12em {
  width: 12em; }

.w-13em {
  width: 13em; }

.w-14em {
  width: 14em; }

.w-10p {
  width: 10%; }

.w-15p {
  width: 15%; }

.w-20p {
  width: 20%; }

.w-25p {
  width: 25%; }

.w-30p {
  width: 30%; }

.w-35p {
  width: 35%; }

.w-40p {
  width: 40%; }

.w-45p {
  width: 45%; }

.w-50p {
  width: 50%; }

.w-60p {
  width: 60%; }

.w-65p {
  width: 65%; }

.w-70p {
  width: 70%; }

.w-75p {
  width: 75%; }

.w-80p {
  width: 80%; }

.w-90p {
  width: 90%; }

.w-100p {
  width: 100%; }

.w-auto {
  width: auto !important; }

@media screen and (width < 768px) {
  .sp-w-10p {
    width: 10%; }

  .sp-w-20p {
    width: 20%; }

  .sp-w-30p {
    width: 30%; }

  .sp-w-30p {
    width: 30%; }

  .sp-w-40p {
    width: 40%; }

  .sp-w-50p {
    width: 50%; }

  .sp-w-60p {
    width: 60%; }

  .sp-w-70p {
    width: 70%; }

  .sp-w-80p {
    width: 80%; }

  .sp-w-90p {
    width: 90%; }

  .sp-w-100p {
    width: 100%; }

  .sp-maxw-100p {
    max-width: 100%; }

  .sp-w-auto {
    width: auto; } }
@media print, screen and (768px <= width) {
  .pc-w-3em {
    width: 3em; }

  .pc-w-4em {
    width: 4em; }

  .pc-w-5em {
    width: 5em; }

  .pc-w-6em {
    width: 6em; }

  .pc-w-7em {
    width: 7em; }

  .pc-w-8em {
    width: 8em; }

  .pc-w-9em {
    width: 9em; }

  .pc-w-10em {
    width: 10em; }

  .pc-w-11em {
    width: 11em; }

  .pc-w-12em {
    width: 12em; }

  .pc-w-13em {
    width: 13em; }

  .pc-w-14em {
    width: 14em; }

  .pc-w-20em {
    width: 20em; }

  .pc-w-10p {
    width: 10%; }

  .pc-w-15p {
    width: 15%; }

  .pc-w-20p {
    width: 20%; }

  .pc-w-25p {
    width: 25%; }

  .pc-w-30p {
    width: 30%; }

  .pc-w-35p {
    width: 35%; }

  .pc-w-40p {
    width: 40%; }

  .pc-w-45p {
    width: 45%; }

  .pc-w-50p {
    width: 50%; }

  .pc-w-60p {
    width: 60%; }

  .pc-w-65p {
    width: 65%; }

  .pc-w-70p {
    width: 70%; }

  .pc-w-75p {
    width: 75%; }

  .pc-w-80p {
    width: 80%; }

  .pc-w-90p {
    width: 90%; }

  .pc-w-100p {
    width: 100%; }

  .pc-w-auto {
    width: auto; }

  .pc-w-160 {
    width: 160px; }

  .pc-w-550 {
    width: 550px; }

  .pc-w-220 {
    width: 220px; }

  .pc-w-490 {
    width: 490px; }

  .pc-w-220 {
    width: 400px; }

  .pc-w-490 {
    width: 310px; } }
.marginTop-0 {
  margin-top: 0 !important; }

.marginTop-xxs {
  margin-top: .2em !important; }

.marginTop-xs {
  margin-top: .5em !important; }

.marginTop-sm {
  margin-top: .8em !important; }

.marginTop-md {
  margin-top: 1em !important; }

.marginTop-lg {
  margin-top: 2em !important; }

.marginTop-xl {
  margin-top: 3em !important; }

.marginTop-xxl {
  margin-top: 6em !important; }

.marginTop-3xl {
  margin-top: 8em !important; }

.marginTop-4xl {
  margin-top: 12em !important; }

.marginBottom-0 {
  margin-bottom: 0 !important; }

.marginBottom-md {
  margin-bottom: 1em !important; }

.marginBottom-xl {
  margin-bottom: 4em; }

.marginLRauto {
  margin-left: auto;
  margin-right: auto; }

/* =========================================================
 white-space
========================================================= */
.nowrap {
  white-space: nowrap; }

@media screen and (width < 768px) {
  .sp-nowrap {
    white-space: nowrap; } }
@media print, screen and (768px <= width) {
  .pc-nowrap {
    white-space: nowrap; } }
/* =========================================================
 input
========================================================= */
input[type="text" disabled] {
  background: #ccc; }

textarea[disabled] {
  background: #ccc; }

/* =========================================================
 img
========================================================= */
img.img-switch {
  /* smp-img-switch.js(PC・SPで画像切り替え) で仕様 */
  visibility: hidden; }

img.img-fluid {
  max-width: 100%;
  height: auto; }

/* =========================================================
 opacity
========================================================= */
.opacity:active, .opacity:focus, .opacity:hover, .opacity.hover {
  opacity: 0.7; }

/* =========================================================
 screenreader　スクリーンリーダー
========================================================= */
[class^="screenreader"] {
  position: absolute;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  overflow: hidden; }

/* =========================================================
 Font Awesomeのアイコンを設定する
$content:FontAwesomeのUnicode
$f-weight:font-weight
$par:padding-right    設定しない場合はnullを渡す
$pal:padding-left    設定しない場合はnullを渡す
========================================================= */
/* =========================================================
 sup 上付き文字
==================================================
======= */
sup {
  font-size: 60%;
  line-height: 0;
  position: relative;
  top: -0.5em; }

#wrap {
  position: relative;
  /* jquery.pagetop.jsで、.gotopを下部に固定するため */
  overflow: hidden;
  /* モバイル観覧での余白対策 */ }

/* pageTop
=================================*/
/* pageTop
=================================*/
@media screen and (width < 768px) {
  #pagetop {
    margin-top: 40px; } }

a.pageTop {
  display: block; }
  @media screen and (width < 768px) {
    a.pageTop {
      width: 43px;
      height: 46px;
      margin-inline: auto; } }
  @media print, screen and (768px <= width) {
    a.pageTop {
      width: 58px;
      height: 61px; } }
  a.pageTop img {
    width: 100%;
    height: auto; }
  a.pageTop:active, a.pageTop:focus, a.pageTop:hover, a.pageTop.hover {
    opacity: 0.7; }

.pagetop {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 1920px;
  height: 350px;
  z-index: 11; }

/* siteHeader
=================================*/
.preload {
  transition: none !important; }

.siteHeader {
  width: 100%;
  background-color: transparent;
  transition: 0.3s ease-in-out;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9998; }
  .siteHeader.hide {
    transform: translateY(-600px); }
  .siteHeader.bg-color {
    background-color: var(--bg-color-base); }
  .siteHeader.show {
    background-color: var(--bg-color-base); }
  @media screen and (width < 768px) {
    .siteHeader {
      height: 50px; } }
  @media print, screen and (768px <= width) {
    .siteHeader {
      height: 90px;
      display: flex;
      align-items: center; } }
  @media print, screen and (768px <= width) {
    .siteHeader__inner {
      min-width: 1200px;
      margin: 0 auto;
      padding: 0px 45px; } }
  .siteHeader__nav {
    width: 100%; }
    @media screen and (width < 768px) {
      .siteHeader__nav {
        height: 50px; } }
    @media print, screen and (768px <= width) {
      .siteHeader__nav {
        display: flex;
        align-items: center; } }
  .siteHeader__logo {
    flex-grow: 0;
    flex-shrink: 0; }
    @media screen and (width < 768px) {
      .siteHeader__logo {
        width: 150px;
        height: 50px;
        padding: 11px 15px 17px; } }
    @media print, screen and (768px <= width) {
      .siteHeader__logo {
        width: 148px;
        height: 42px;
        margin-right: 30px; } }
    .siteHeader__logoLink {
      display: block; }
      .siteHeader__logoLink:active, .siteHeader__logoLink:focus, .siteHeader__logoLink:hover, .siteHeader__logoLink.hover {
        opacity: 0.7; }
      .siteHeader__logoLink img {
        max-width: 100%;
        height: auto; }
  .siteHeader__navToggler {
    background-color: transparent; }
    @media screen and (width < 768px) {
      .siteHeader__navToggler {
        position: absolute;
        top: 0;
        right: 0;
        width: 50px;
        height: 50px;
        padding: 0px;
        border: none; } }
    @media print, screen and (768px <= width) {
      .siteHeader__navToggler {
        display: none; } }
  *[aria-expanded="false"] .siteHeader__navTogglerIcon {
    background-image: url(../images/btn-hamburger-open.png); }
  *[aria-expanded="true"] .siteHeader__navTogglerIcon {
    background-image: url(../images/btn-hamburger-close.png); }
  @media screen and (width < 768px) {
    .siteHeader__navTogglerIcon {
      display: block;
      background-size: 50px 50px;
      height: 50px;
      width: 50px; } }
  @media print, screen and (768px <= width) {
    .siteHeader__navTogglerIcon {
      display: none; } }
  @media screen and (width < 768px) {
    .siteHeader__navList {
      width: 100%;
      padding: 0 15px;
      background-color: var(--bg-color-sp);
      height: 100%;
      overflow: scroll; } }
  @media print, screen and (768px <= width) {
    .siteHeader__navList {
      display: flex;
      justify-content: flex-end;
      column-gap: 3.8rem; } }
  .siteHeader__navLink {
    display: flex;
    flex-direction: column;
    font-weight: 500;
    text-decoration: none !important;
    transition: 0.3s ease-in; }
    @media screen and (width < 768px) {
      .siteHeader__navLink span.jp {
        display: block;
        width: max-content;
        margin: 0 auto;
        padding: 0 0.5rem; } }
    .siteHeader__navLink span.en {
      color: var(--brand-color);
      font-family: var(--sub-font);
      text-transform: capitalize; }
      @media print, screen and (768px <= width) {
        .siteHeader__navLink span.en {
          font-size: 1.2rem; } }
    @media screen and (width < 768px) {
      .siteHeader__navLink {
        color: #fff !important;
        padding: 20px 30px;
        text-align: center; } }
    @media print, screen and (768px <= width) {
      .siteHeader__navLink {
        font-size: 1.4rem;
        align-items: center;
        width: 100%;
        position: relative; }
        .siteHeader__navLink::before {
          content: "";
          display: block;
          width: 120%;
          height: 0px;
          transition: 0.3s ease-in;
          background-color: var(--brand-color);
          position: absolute;
          left: -10%;
          top: -10px; } }
    @media screen and (width < 768px) {
      .siteHeader__navLink:hover span.jp, .siteHeader__navLink:focus span.jp, .siteHeader__navLink:active span.jp {
        background-color: var(--brand-color); } }
    @media print, screen and (768px <= width) {
      .siteHeader__navLink:hover::before, .siteHeader__navLink:focus::before, .siteHeader__navLink:active::before {
        height: 3px; } }
    @media print, screen and (768px <= width) {
      .siteHeader__navLink.active::before {
        height: 3px; } }

.menu-container {
  margin-left: auto; }

@media screen and (width < 768px) {
  .menu {
    display: none;
    overflow: scroll;
    max-height: calc(100svh - 50px);
    position: relative;
    		/*
    		::-webkit-full-page-media, :future, :root{
        		max-height: calc(100vh - 175px); 
    		}
    		*/ }
    .menu.show {
      display: block;
      z-index: 9999; } }

/* パンくず
=================================*/
@media screen and (width < 768px) {
  .topicpath {
    display: none; } }
@media print, screen and (768px <= width) {
  .topicpath {
    width: 100%; } }
@media print, screen and (768px <= width) {
  .topicpath__inner {
    width: 1200px;
    padding: 0 45px 30px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end; } }
@media print, screen and (768px <= width) {
  .topicpath__item {
    display: flex;
    align-items: center;
    font-size: 1.2rem; }
    .topicpath__item a {
      padding: 5px 16px;
      display: flex;
      align-items: center;
      color: #808080; }
      .topicpath__item a:active, .topicpath__item a.active {
        color: var(--text-color) !important; }
    .topicpath__item:first-child a {
      padding-left: 0; } }
.topicpath__item::after {
  content: "-";
  display: block;
  color: var(--brand-text-color); }
.topicpath__item:last-child {
  padding-left: 16px; }
  .topicpath__item:last-child::after {
    display: none; }

/* siteMain
=================================*/
@media print, screen and (768px <= width) {
  .siteMain {
    font-size: 1.6rem; } }
.siteMain__main > *:first-child, .siteMain__main > article > *:first-child {
  margin-top: 0 !important; }

/* siteContents
=================================*/
@media screen and (width < 768px) {
  .siteContents {
    padding: 0 15px; } }
.siteHeader + .siteContents {
  margin-top: 0;
  padding-top: 0; }
@media screen and (width < 768px) {
  .siteContents__inner {
    padding: 34px 0 80px; } }
@media print, screen and (768px <= width) {
  .siteContents__inner {
    width: 1200px;
    padding: 80px 45px 160px;
    margin: 0 auto; } }
@media print, screen and (768px <= width) {
  .siteContents__inner--index {
    width: 1200px;
    padding: 115px 45px 160px;
    margin: 0 auto; } }
@media print, screen and (768px <= width) {
  .siteContents__inner--service {
    width: 1200px;
    padding: 60px 45px 160px;
    margin: 0 auto; } }
@media print, screen and (768px <= width) {
  .siteContents__inner--sm {
    width: 1200px;
    padding: 80px 140px 160px;
    margin: 0 auto; } }
@media print, screen and (768px <= width) {
  .siteContents__inner--fluid {
    width: 100%;
    padding: 0;
    margin: 0 auto; } }
@media print, screen and (768px <= width) {
  .siteContents__inner--patS {
    padding-top: 20px; } }
.siteContents__inner > *:first-child, .siteContents__inner > article > *:first-child {
  margin-top: 0 !important; }

/* siteContents2col (2col)
=================================*/
@media screen and (width < 768px) {
  .siteContents2col__inner {
    padding: 0 15px 60px;
    margin-top: 24px; } }
@media print, screen and (768px <= width) {
  .siteContents2col__inner {
    width: 1200px;
    padding: 60px 45px 160px;
    margin-inline: auto;
    display: flex; } }
@media screen and (width < 768px) {
  .siteContents2col__main {
    margin-bottom: 70px; } }
@media print, screen and (768px <= width) {
  .siteContents2col__main {
    width: 825px; } }
.siteContents2col__main > *:first-child, .siteContents2col__main > article > *:first-child {
  margin-top: 0 !important; }
@media print, screen and (768px <= width) {
  .siteContents2col__side {
    width: 230px;
    margin-left: auto; }
    .siteContents2col__side > *:first-child {
      margin-top: 0 !important; } }
@media screen and (width < 768px) {
  .siteContents2col__side > * + * {
    margin-top: 10px; } }
@media print, screen and (768px <= width) {
  .siteContents2col__side > * + * {
    margin-top: 20px; } }

/* sideMenu
=================================*/
.sideMenu__menu > dt {
  font-weight: bold;
  background-color: var(--bg-color-dark);
  color: #fff; }
  @media screen and (width < 768px) {
    .sideMenu__menu > dt {
      padding: 10px;
      font-size: 1.6rem; } }
  @media print, screen and (768px <= width) {
    .sideMenu__menu > dt {
      padding: 15px;
      font-size: 1.8rem; } }
@media screen and (width < 768px) {
  .sideMenu__menu > dd a {
    padding: 15px 15px 15px 45px; } }
@media print, screen and (768px <= width) {
  .sideMenu__menu > dd a {
    padding: 20px 15px 20px 4.5rem; } }
.sideMenu__menu > dd a::before {
  font-family: "Font Awesome 6 Free";
  content: "";
  font-weight: 900;
  padding-left: 0;
  padding-right: 0;
  font-weight: 900; }
  @media screen and (width < 768px) {
    .sideMenu__menu > dd a::before {
      font-size: 0.8em;
      left: 23px;
      top: 18px; } }
  @media print, screen and (768px <= width) {
    .sideMenu__menu > dd a::before {
      font-size: 0.8em;
      left: 23px;
      top: 24px; } }
.sideMenu__menu a {
  position: relative;
  display: block;
  text-decoration: none;
  transition: 0.3s ease-out; }
  .sideMenu__menu a::before {
    position: absolute;
    color: var(--brand-color); }
  .sideMenu__menu a:active, .sideMenu__menu a:focus, .sideMenu__menu a:hover, .sideMenu__menu a.hover, .sideMenu__menu a.active {
    background-color: #e5ebf6; }
  .sideMenu__menu a[href$=".pdf"]::after {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 0.5rem;
    padding-right: 0; }
  .sideMenu__menu a[href*=".doc"]::after {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 0.5rem;
    padding-right: 0; }
  .sideMenu__menu a[href*=".xls"]::after {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 0.5rem;
    padding-right: 0; }
  .sideMenu__menu a[href^="http"]::after {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 0.5rem;
    padding-right: 0; }
  .sideMenu__menu a[href^="mailto"]::after {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 0.5rem;
    padding-right: 0; }

/* siteFooter
=================================*/
@media screen and (width < 768px) {
  .siteFooter__inner {
    padding: 70px 15px 30px; } }
@media print, screen and (768px <= width) {
  .siteFooter__inner {
    width: 1200px;
    padding: 135px 45px 25px;
    margin-inline: auto; } }
@media print, screen and (768px <= width) {
  .siteFooter__layout {
    display: flex;
    justify-content: space-between;
    align-items: flex-end; } }
.siteFooter__logoLink {
  display: block; }
  @media screen and (width < 768px) {
    .siteFooter__logoLink {
      margin-inline: auto;
      width: 202px;
      height: 57px; } }
  @media print, screen and (768px <= width) {
    .siteFooter__logoLink {
      width: 312px;
      height: 88px; } }
  .siteFooter__logoLink img {
    max-width: 100%;
    height: auto; }
.siteFooter__list {
  display: flex; }
  @media screen and (width < 768px) {
    .siteFooter__list {
      flex-direction: column;
      align-items: center;
      row-gap: 10px;
      margin-top: 19px;
      padding: 0 30px; } }
  @media print, screen and (768px <= width) {
    .siteFooter__list {
      flex-wrap: wrap;
      column-gap: 50px;
      margin-top: 48px; } }
  .siteFooter__list a {
    text-decoration: none; }
    .siteFooter__list a:hover, .siteFooter__list a:focus, .siteFooter__list a:active {
      text-decoration: underline; }
@media screen and (width < 768px) {
  .siteFooter__copyright {
    margin-top: 0.5em;
    font-size: 1.1rem;
    text-align: center; } }
@media print, screen and (768px <= width) {
  .siteFooter__copyright {
    margin-top: 55px;
    font-size: 1.2rem; } }

/* Scss Document */
 /* =========================================================
採用情報CTA
========================================================= */
.homeCta {
  position: fixed;
  background-color: #fff;
  color: #d8403f !important;
  font-weight: bold;
  text-decoration: none !important;
  z-index: 9997;
  transition: transform 0.3s ease-out; }
  @media screen and (width < 768px) {
    .homeCta {
      right: 15px;
      bottom: 50px;
      padding: 13px 25px;
      border-radius: 6px;
      width: 190px; } }
  @media print, screen and (768px <= width) {
    .homeCta {
      right: 140px;
      bottom: 50px;
      padding: 18px 35px;
      width: 255px;
      height: 87px;
      border-radius: 12px; } }
  .homeCta:hover, .homeCta:active, .homeCta:focus {
    transform: scale(1.05); }
  .homeCta__main {
    display: block; }
    @media screen and (width < 768px) {
      .homeCta__main {
        font-size: 1.35rem; } }
    @media print, screen and (768px <= width) {
      .homeCta__main {
        font-size: 1.8rem; } }
  .homeCta__sub {
    display: block; }
    @media screen and (width < 768px) {
      .homeCta__sub {
        font-size: 1.1rem; } }
    @media print, screen and (768px <= width) {
      .homeCta__sub {
        font-size: 1.4rem; } }
  .homeCta__image {
    position: absolute; }
    @media screen and (width < 768px) {
      .homeCta__image {
        width: 52px;
        right: 13px;
        top: 7px; } }
    @media print, screen and (768px <= width) {
      .homeCta__image {
        width: 70px;
        height: 93px;
        right: 10px;
        top: 10px; } }

 /* =========================================================
動画
========================================================= */
#home .topMv {
  position: relative; }
  @media screen and (width < 768px) {
    #home .topMv {
      margin-left: -15px;
      margin-right: -15px;
      height: 80vh;
      overflow: hidden; } }
  @media print, screen and (768px <= width) {
    #home .topMv {
      width: 100%;
      height: 650px; } }
  #home .topMv__inner {
    position: relative;
    overflow: hidden; }
    @media screen and (width < 768px) {
      #home .topMv__inner {
        width: 100%;
        height: 100%;
        padding: 0 15px; } }
    @media print, screen and (768px <= width) {
      #home .topMv__inner {
        width: 1200px;
        height: 100%;
        padding: 0 45px;
        margin: 0 auto; } }
  #home .topMv video {
    position: absolute; }
    @media screen and (width < 768px) {
      #home .topMv video {
        width: 100%;
        transform: translateY(-10%); } }
    @media print, screen and (768px <= width) {
      #home .topMv video {
        height: 100%;
        left: 50%;
        transform: translateX(-50%); } }
  #home .topMv__copy {
    width: 100%;
    position: absolute;
    text-align: center;
    font-weight: 700; }
    @media screen and (width < 768px) {
      #home .topMv__copy {
        font-size: 4.0rem;
        top: 30%;
        left: 0;
        right: 0;
        line-height: 1.35; } }
    @media print, screen and (768px <= width) {
      #home .topMv__copy {
        font-size: 5.0rem;
        top: 50%;
        transform: translateY(-50%); } }
    #home .topMv__copy span {
      font-family: var(--alpha-font);
      font-weight: 700; }
  #home .topMv__text {
    position: absolute; }
    @media screen and (width < 768px) {
      #home .topMv__text {
        top: 60%;
        font-size: 1.4rem; } }
    @media print, screen and (768px <= width) {
      #home .topMv__text {
        bottom: 53px;
        left: 45px; } }
  #home .topMv__play {
    display: flex;
    cursor: pointer;
    background-color: #fff;
    text-align: center;
    font-weight: bold;
    border-radius: calc(1px / 0);
    width: fit-content; }
    @media screen and (width < 768px) {
      #home .topMv__play {
        font-size: 1.2rem;
        padding: 5px 10px; } }
    @media print, screen and (768px <= width) {
      #home .topMv__play {
        font-size: 1.4rem;
        padding: 3px 15px; } }
    #home .topMv__play::before {
      content: "";
      display: block;
      font-family: "Font Awesome 6 Free";
      content: "";
      font-weight: 900;
      padding-left: 1rem;
      padding-right: 1rem; }
  #home .topMv .play::before {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 1rem;
    padding-right: 1rem; }
  #home .topMv .pause::before {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 1rem;
    padding-right: 1rem; }

/* =========================================================
homeTitle 見出し
========================================================= */
.homeTitle {
  display: grid; }
  @media screen and (width < 768px) {
    .homeTitle {
      margin-bottom: 20px; } }
  @media print, screen and (768px <= width) {
    .homeTitle {
      grid-template-columns: max-content max-content;
      grid-column-gap: 27px;
      align-items: center;
      margin-bottom: 13px; } }
  .homeTitle .main {
    font-weight: 700;
    line-height: 1.2; }
    @media screen and (width < 768px) {
      .homeTitle .main {
        font-size: 4.0rem; } }
    @media print, screen and (768px <= width) {
      .homeTitle .main {
        font-size: 4.4rem; } }
  .homeTitle .sub {
    font-size: 1.8rem;
    font-family: var(--sub-font);
    font-weight: 500;
    text-transform: capitalize;
    letter-spacing: 0.02em;
    margin-top: 5px; }
  .homeTitle--brand .main, .homeTitle--brand .sub {
    color: var(--brand-color); }
  .homeTitle--recruit {
    grid-template-columns: unset;
    grid-template-rows: 1fr auto; }
    @media screen and (width < 768px) {
      .homeTitle--recruit {
        margin-bottom: 32px; } }

 /* =========================================================
ボタン 
========================================================= */
.homeButtonLayout {
  margin-inline: auto; }
  @media screen and (width < 768px) {
    .homeButtonLayout {
      margin-top: 30px;
      width: 100%; } }
  @media print, screen and (768px <= width) {
    .homeButtonLayout {
      margin-top: 50px;
      width: 255px; } }
  @media print, screen and (768px <= width) {
    .homeButtonLayout--left {
      margin-left: 0;
      margin-right: auto; } }
  @media print, screen and (768px <= width) {
    .homeButtonLayout--right {
      margin-left: auto;
      margin-right: 0; } }
  @media print, screen and (768px <= width) {
    .homeButtonLayout--large {
      width: 380px; } }

.homeButton {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  color: currentColor !important;
  border: 1px solid currentColor;
  border-radius: calc(1px / 0);
  background-color: transparent;
  text-align: center;
  text-decoration: none !important;
  transition: 0.3s border ease-in; }
  @media screen and (width < 768px) {
    .homeButton {
      padding: 7px; } }
  @media print, screen and (768px <= width) {
    .homeButton {
      padding: 7px; } }
  .homeButton::before {
    display: block;
    content: "+";
    color: var(--brand-color);
    margin-right: 10px; }
  .homeButton:focus, .homeButton:hover, .homeButton:active {
    border-color: var(--brand-color); }
    .homeButton:focus::before, .homeButton:hover::before, .homeButton:active::before {
      transform: rotate(360deg);
      transition: 1s transform ease-in; }

.homeButtonContact {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  color: currentColor !important;
  border: 1px solid currentColor;
  border-radius: calc(1px / 0);
  background-color: transparent;
  font-weight: 500;
  text-align: center;
  text-decoration: none !important;
  transition: 0.3s border ease-in; }
  @media screen and (width < 768px) {
    .homeButtonContact {
      padding: 27px 15px;
      font-size: 1.8rem; } }
  @media print, screen and (768px <= width) {
    .homeButtonContact {
      padding: 36px 30px;
      font-size: 1.8rem; } }
  .homeButtonContact::before {
    display: block;
    content: "+";
    color: var(--brand-color);
    margin-right: 15px; }
  .homeButtonContact:focus, .homeButtonContact:hover, .homeButtonContact:active {
    border-color: var(--brand-color); }
    .homeButtonContact:focus::before, .homeButtonContact:hover::before, .homeButtonContact:active::before {
      transform: rotate(360deg);
      transition: 1s transform ease-in; }

.homeService {
  background-color: var(--bg-color-dark);
  color: #fff; }
  @media screen and (width < 768px) {
    .homeService {
      margin-left: -15px;
      margin-right: -15px;
      padding: 45px 15px 67px; } }
  @media print, screen and (768px <= width) {
    .homeService {
      padding: 105px 0 200px; } }
  @media print, screen and (768px <= width) {
    .homeService__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto; } }
  .homeService__layout {
    display: grid; }
    @media print, screen and (768px <= width) {
      .homeService__layout {
        grid-template-columns: 1fr 255px;
        align-items: center; } }
  @media screen and (width < 768px) {
    .homeService__text {
      order: 1;
      margin-bottom: 33px; } }
  @media screen and (width < 768px) {
    .homeService__button {
      order: 3; } }
  .homeService__list {
    opacity: 0; }
    @media screen and (width < 768px) {
      .homeService__list {
        order: 2; } }
    @media print, screen and (768px <= width) {
      .homeService__list {
        grid-column: span 2;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-column-gap: 30px;
        margin-top: 55px; } }

.cardService {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 5;
  flex-direction: column;
  color: currentColor !important;
  text-decoration: none !important;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.3); }
  @media screen and (width < 768px) {
    .cardService {
      padding: 27px 0 29px; } }
  @media print, screen and (768px <= width) {
    .cardService {
      padding: 35px 0 33px; }
      .cardService:nth-child(n+4) {
        border-top: none; } }
  .cardService__image {
    order: 1;
    overflow: hidden; }
    .cardService__image img {
      transition: 0.3s transform ease-in; }
    @media screen and (width < 768px) {
      .cardService__image {
        height: max-content;
        margin-bottom: 16px; } }
    @media print, screen and (768px <= width) {
      .cardService__image {
        margin-bottom: 18px; } }
  .cardService__title {
    order: 2;
    margin-bottom: 4px; }
    @media print, screen and (768px <= width) {
      .cardService__title {
        padding: 0 10px; } }
    .cardService__title .sub {
      color: var(--brand-color);
      text-transform: capitalize; }
    .cardService__title .main {
      font-size: 2.4rem;
      font-weight: 500; }
  .cardService__text {
    order: 3; }
    @media screen and (width < 768px) {
      .cardService__text {
        margin-bottom: 6px; } }
    @media print, screen and (768px <= width) {
      .cardService__text {
        padding: 0 10px;
        margin-bottom: 12px; } }
  .cardService__list {
    order: 4;
    margin-bottom: 12px; }
    @media print, screen and (768px <= width) {
      .cardService__list {
        padding: 0 15px; } }
    .cardService__list li {
      display: inline-block;
      font-size: 1.2rem;
      margin-right: 5px; }
      .cardService__list li::before {
        content: "";
        color: var(--brand-color);
        font-size: 0.8em;
        font-family: "Font Awesome 6 Free";
        content: "";
        font-weight: 900;
        padding-left: 0;
        padding-right: 0.3em; }
  .cardService__button {
    order: 5;
    margin-left: auto;
    display: flex;
    align-items: center; }
    .cardService__button::before {
      display: block;
      content: "+";
      margin-right: 10px; }
  .cardService:hover .cardService__image img, .cardService:focus .cardService__image img, .cardService:active .cardService__image img {
    transform: scale(1.05); }
  .cardService:hover .cardService__button, .cardService:focus .cardService__button, .cardService:active .cardService__button {
    color: var(--brand-color) !important; }
    .cardService:hover .cardService__button::before, .cardService:focus .cardService__button::before, .cardService:active .cardService__button::before {
      transform: rotate(360deg);
      transition: 1s transform ease-in; }

.homeSolution {
  background-color: var(--bg-color-contents); }
  @media screen and (width < 768px) {
    .homeSolution {
      margin-left: -15px;
      margin-right: -15px;
      padding: 61px 15px 72px; } }
  @media print, screen and (768px <= width) {
    .homeSolution {
      padding: 120px 0 107px; } }
  @media print, screen and (768px <= width) {
    .homeSolution__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto; } }
  .homeSolution__title {
    opacity: 0; }
  .homeSolution__list {
    display: grid; }
    @media screen and (width < 768px) {
      .homeSolution__list {
        grid-template-columns: repeat(2, 1fr);
        grid-column-gap: 50px;
        grid-row-gap: 50px;
        margin-top: 35px; } }
    @media print, screen and (768px <= width) {
      .homeSolution__list {
        grid-template-columns: repeat(4, 1fr);
        grid-column-gap: 30px;
        grid-row-gap: 70px;
        margin-top: 55px; } }
  .homeSolution__button {
    opacity: 0; }
    @media screen and (width < 768px) {
      .homeSolution__button {
        margin-top: 55px; } }
    @media print, screen and (768px <= width) {
      .homeSolution__button {
        margin-top: 57px; } }

.cardSolution {
  opacity: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none !important;
  position: relative;
  z-index: 1; }
  .cardSolution::before {
    content: "";
    position: absolute;
    z-index: -2;
    border-radius: 50%;
    border: 1px solid var(--brand-color);
    border-top-color: transparent;
    border-bottom-color: transparent; }
    @media screen and (width < 768px) {
      .cardSolution::before {
        width: 165px;
        height: 175px;
        top: -35px; } }
    @media print, screen and (768px <= width) {
      .cardSolution::before {
        width: 256px;
        height: 265px;
        top: -45px; } }
  .cardSolution::after {
    content: "";
    position: absolute;
    z-index: -1;
    background-color: var(--bg-color-contents); }
    @media screen and (width < 768px) {
      .cardSolution::after {
        width: 145px;
        height: 155px; } }
    @media print, screen and (768px <= width) {
      .cardSolution::after {
        width: 225px;
        height: 235px; } }
  .cardSolution__contents {
    display: flex;
    flex-direction: column-reverse;
    align-items: center; }
  .cardSolution__title {
    line-height: 1.2;
    text-align: center; }
    @media print, screen and (768px <= width) {
      .cardSolution__title {
        font-size: 1.8rem; } }
  @media screen and (width < 768px) {
    .cardSolution__icon {
      width: 73px;
      height: 68px; } }
  @media print, screen and (768px <= width) {
    .cardSolution__icon {
      width: 120px;
      height: 108px; } }
  .cardSolution__icon img {
    transition: 0.3s transform ease-in; }

a.cardSolution:hover .cardSolution__icon img, a.cardSolution:focus .cardSolution__icon img, a.cardSolution:active .cardSolution__icon img {
  transform: scale(1.1); }

@media screen and (width < 768px) {
  .homePickup {
    padding: 59px 0 62px; } }
@media print, screen and (768px <= width) {
  .homePickup {
    padding: 106px 0 145px; } }
.homePickup__inner {
  opacity: 0; }
  @media print, screen and (768px <= width) {
    .homePickup__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto; } }

.homeAbout {
  color: #fff; }
  @media screen and (width < 768px) {
    .homeAbout {
      margin-left: -15px;
      margin-right: -15px; } }
  @media print, screen and (768px <= width) {
    .homeAbout {
      padding: 138px 0 139px;
      background: linear-gradient(90deg, var(--bg-color-dark) 50%, var(--bg-color-about) 50%); } }
  @media print, screen and (768px <= width) {
    .homeAbout__inner {
      width: 1390px;
      padding: 0 45px;
      margin-inline: auto;
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      grid-column-gap: 160px; } }
  .homeAbout__title {
    font-size: 2.4rem; }
    @media screen and (width < 768px) {
      .homeAbout__title {
        margin-bottom: 20px; } }
    @media print, screen and (768px <= width) {
      .homeAbout__title {
        margin: 15px 0 38px; } }
  @media screen and (width < 768px) {
    .homeAbout__button {
      margin-top: 42px; } }
  @media print, screen and (768px <= width) {
    .homeAbout__button {
      margin-top: 40px; } }
  .homeAbout__about {
    opacity: 0; }
    @media screen and (width < 768px) {
      .homeAbout__about {
        background-color: var(--bg-color-dark);
        padding: 60px 15px 70px; } }
  @media screen and (width < 768px) {
    .homeAbout__point {
      background-color: var(--bg-color-about);
      padding: 60px 15px 20px; } }

.pointList__item {
  opacity: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  display: grid;
  grid-template-areas: "number title" "number text"; }
  .pointList__item:first-child {
    padding-top: 0; }
  @media screen and (width < 768px) {
    .pointList__item {
      padding: 22px 0 29px; }
      .pointList__item:last-child {
        border-bottom: none; } }
  @media print, screen and (768px <= width) {
    .pointList__item {
      padding: 27px 0 25px; } }
  .pointList__item .number {
    grid-area: number;
    color: var(--bg-color-about);
    font-family: var(--sub-font);
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #fff;
    line-height: 1.0; }
    @media screen and (width < 768px) {
      .pointList__item .number {
        font-size: 8rem;
        padding-inline: 10px;
        margin-right: 17px; } }
    @media print, screen and (768px <= width) {
      .pointList__item .number {
        font-size: 10rem;
        padding-inline: 25px;
        margin-right: 20px; } }
  .pointList__item .title {
    grid-area: title;
    font-size: 2.4rem; }
  .pointList__item .text {
    font-size: 1.4rem;
    grid-area: text; }

@media screen and (width < 768px) {
  .homeOffice {
    margin-left: -15px;
    margin-right: -15px; } }
@media print, screen and (768px <= width) {
  .homeOffice__inner {
    width: 1200px;
    padding: 0 45px;
    margin-inline: auto;
    position: relative; } }

.swiperOfficeImg {
  position: relative; }
  @media print, screen and (768px <= width) {
    .swiperOfficeImg .swiper-pagination-bullets {
      width: fit-content !important;
      right: 0;
      margin-left: auto; } }
  .swiperOfficeImg .swiper-pagination-bullet {
    background-color: rgba(255, 255, 255, 0.8);
    border-radius: 0;
    width: 28px;
    height: 4px; }
  .swiperOfficeImg .swiper-pagination-bullet-active {
    background-color: rgba(252, 126, 130, 0.8);
    width: 56px;
    height: 4px; }
  .swiperOfficeImg .swiper-slide img {
    width: 100%;
    max-width: none;
    object-fit: cover; }
    @media screen and (width < 768px) {
      .swiperOfficeImg .swiper-slide img {
        aspect-ratio: 3 / 2; } }

 /* =========================================================
 homeRecruit 採用情報
========================================================= */
.homeRecruit {
  background-color: #fff; }
  @media screen and (width < 768px) {
    .homeRecruit {
      margin-left: -15px;
      margin-right: -15px;
      padding: 92px 15px 70px; } }
  @media print, screen and (768px <= width) {
    .homeRecruit {
      padding: 125px 0 195px; } }
  @media print, screen and (768px <= width) {
    .homeRecruit__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto;
      position: relative;
      z-index: 1; } }
  .homeRecruit__title {
    opacity: 0; }
  .homeRecruit__text {
    opacity: 0; }
    @media screen and (width < 768px) {
      .homeRecruit__text {
        margin: 30px 0; } }
    @media print, screen and (768px <= width) {
      .homeRecruit__text {
        width: 400px;
        margin: 36px 0 30px; } }
  .homeRecruit__list {
    opacity: 0;
    display: grid; }
    @media screen and (width < 768px) {
      .homeRecruit__list {
        grid-template-columns: repeat(2, 1fr);
        grid-row-gap: 15px;
        grid-column-gap: 40px;
        padding: 0 15px; } }
    @media print, screen and (768px <= width) {
      .homeRecruit__list {
        grid-row-gap: 15px;
        margin-left: 33px; } }
  .homeRecruit__link {
    display: flex;
    align-items: center;
    font-weight: 700;
    text-decoration: none !important;
    width: fit-content; }
    .homeRecruit__link::before {
      display: block;
      content: "+";
      color: var(--brand-color);
      margin-right: 21px; }
    .homeRecruit__link:focus, .homeRecruit__link:hover, .homeRecruit__link:active {
      color: var(--brand-color) !important; }
      .homeRecruit__link:focus::before, .homeRecruit__link:hover::before, .homeRecruit__link:active::before {
        transform: rotate(360deg);
        transition: 1s transform ease-in; }
  .homeRecruit__button {
    opacity: 0; }
  .homeRecruit__image {
    opacity: 0; }
    @media screen and (width < 768px) {
      .homeRecruit__image {
        margin-top: 36px;
        margin-right: -15px;
        padding-left: 15px; } }
    @media print, screen and (768px <= width) {
      .homeRecruit__image {
        position: absolute;
        z-index: -1;
        top: 0;
        right: 0;
        width: 825px;
        height: 480px; } }

 /* =========================================================
 homeNews お知らせ
========================================================= */
@media screen and (width < 768px) {
  .homeNews {
    margin-top: 88px;
    margin-bottom: 100px; } }
@media print, screen and (768px <= width) {
  .homeNews {
    margin-top: 110px;
    margin-bottom: 87px; } }
.homeNews__inner {
  opacity: 0; }
  @media print, screen and (768px <= width) {
    .homeNews__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto;
      display: grid;
      grid-template-columns: 350px 1fr;
      grid-template-rows: 110px 1fr;
      grid-template-areas: "title news" "btn news";
      grid-column-gap: 40px; } }
@media print, screen and (768px <= width) {
  .homeNews__title {
    grid-area: title; } }
@media print, screen and (768px <= width) {
  .homeNews__button {
    margin-top: 40px !important;
    grid-area: btn; } }
@media print, screen and (768px <= width) {
  .homeNews__news {
    margin-top: 20px;
    grid-area: news; } }

/* =========================================================
 homeContact お問い合わせ
========================================================= */
.homeContact {
  background-position: center;
  background-size: cover;
  color: #fff; }
  @media screen and (width < 768px) {
    .homeContact {
      margin-left: -15px;
      margin-right: -15px;
      background-image: url(../images/home/bg-contact_sp.webp); } }
  @media print, screen and (768px <= width) {
    .homeContact {
      background-image: url(../images/home/bg-contact_pc.webp); } }
  .homeContact__inner {
    opacity: 0;
    position: relative; }
    @media screen and (width < 768px) {
      .homeContact__inner {
        padding: 69px 15px 107px; } }
    @media print, screen and (768px <= width) {
      .homeContact__inner {
        width: 1200px;
        padding: 150px 45px 180px;
        margin-inline: auto; } }
    .homeContact__inner::before {
      content: "contact";
      position: absolute;
      color: var(--bg-color-base);
      font-family: var(--sub-font);
      font-weight: 500;
      line-height: 1.0;
      letter-spacing: 0.02em;
      text-transform: capitalize; }
      @media screen and (width < 768px) {
        .homeContact__inner::before {
          font-size: 7.5rem;
          bottom: -14px;
          right: 15px; } }
      @media print, screen and (768px <= width) {
        .homeContact__inner::before {
          font-size: 17rem;
          bottom: -33px;
          right: 68px; } }
  .homeContact__title {
    font-weight: 500; }
    @media screen and (width < 768px) {
      .homeContact__title {
        font-size: 3.0rem;
        margin-bottom: 25px; } }
    @media print, screen and (768px <= width) {
      .homeContact__title {
        font-size: 3.6rem;
        margin-bottom: 35px; } }
  .homeContact__text {
    font-weight: 500;
    font-size: 1.8rem; }
  .homeContact__layout {
    display: grid; }
    @media screen and (width < 768px) {
      .homeContact__layout {
        margin-top: 27px; } }
    @media print, screen and (768px <= width) {
      .homeContact__layout {
        margin-top: 60px;
        grid-template-columns: repeat(2, 445px);
        grid-column-gap: 30px;
        justify-content: center; } }
  .homeContact__tel {
    text-align: center; }
    .homeContact__tel .number {
      font-weight: 500;
      line-height: 1.0; }
      @media screen and (width < 768px) {
        .homeContact__tel .number {
          font-size: 5.5rem; } }
      @media print, screen and (768px <= width) {
        .homeContact__tel .number {
          font-size: 6.0rem; } }
    @media screen and (width < 768px) {
      .homeContact__tel .text {
        margin-top: 5px; } }
  @media screen and (width < 768px) {
    .homeContact__button {
      margin-top: 26px; } }

 /* =========================================================
 homeBanner
========================================================= */
@media screen and (width < 768px) {
  .homeBanner {
    padding: 50px 0 35px; } }
@media print, screen and (768px <= width) {
  .homeBanner {
    padding: 110px 0 70px; } }
@media print, screen and (768px <= width) {
  .homeBanner__inner {
    width: 1200px;
    padding: 0 45px;
    margin-inline: auto; } }

.animate-delay {
  animation-duration: 0.8s;
  /* アニメーションの時間 */
  animation-delay: 0.5s;
  /* アニメーション開始時間 */ }

.animate-delay2 {
  animation-duration: 0.8s;
  /* アニメーションの時間 */
  animation-delay: 1.0s;
  /* アニメーション開始時間 */ }

.animate-delay3 {
  animation-duration: 0.8s;
  /* アニメーションの時間 */
  animation-delay: 1.5s;
  /* アニメーション開始時間 */ }

.animate-delay4 {
  animation-duration: 0.8s;
  /* アニメーションの時間 */
  animation-delay: 2.0s;
  /* アニメーション開始時間 */ }

.animate-delay5 {
  animation-duration: 0.8s;
  /* アニメーションの時間 */
  animation-delay: 2.5s;
  /* アニメーション開始時間 */ }

.animate-delay6 {
  animation-duration: 0.8s;
  /* アニメーションの時間 */
  animation-delay: 3.0s;
  /* アニメーション開始時間 */ }

.animate-delay7 {
  animation-duration: 0.8s;
  /* アニメーションの時間 */
  animation-delay: 3.5s;
  /* アニメーション開始時間 */ }

/* Scss Document */
/*
$category01-color: #efedc8;
$category02-color: #c1e0ea;
$category03-color: #d6e7d2;
$category04-color: var(--brand-color);
$category05-color: var(--brand-color);
*/
.homeLayoutNews > li {
  display: grid;
  align-items: flex-start;
  grid-template-columns: 82px 1fr;
  border-bottom: 1px solid currentcolor; }
  @media screen and (width < 768px) {
    .homeLayoutNews > li {
      padding: 17px 0 25px; } }
  @media print, screen and (768px <= width) {
    .homeLayoutNews > li {
      padding: 25px 0 27px; } }
  @media print, screen and (768px <= width) {
    .homeLayoutNews > li:first-child {
      padding-top: 0; } }
  .homeLayoutNews > li:last-child {
    border: none; }
  .homeLayoutNews > li.new > .homeLayoutNews__text::after {
    color: #ff6571;
    content: "NEW";
    display: inline-block;
    margin-left: 5px; }
.homeLayoutNews__cat {
  line-height: 1.3;
  text-align: center;
  background-color: #e5e5e5;
  border-radius: calc(1px / 0); }
  @media screen and (width < 768px) {
    .homeLayoutNews__cat {
      font-size: 1.2rem;
      width: 110px;
      padding: 4px;
      grid-column: 2;
      margin-left: 5px; } }
  @media print, screen and (768px <= width) {
    .homeLayoutNews__cat {
      font-size: 1.4rem;
      padding: 1px 3px;
      width: 140px; } }
.homeLayoutNews__text {
  grid-column: span 2;
  font-family: 500;
  font-size: 1.8rem; }
  @media screen and (width < 768px) {
    .homeLayoutNews__text {
      margin-top: 10px; } }
  @media print, screen and (768px <= width) {
    .homeLayoutNews__text {
      margin-top: 10px; } }

.layoutNews {
  display: grid; }
  @media screen and (width < 768px) {
    .layoutNews {
      margin-bottom: 15px; } }
  @media print, screen and (768px <= width) {
    .layoutNews {
      grid-template-columns: 110px 140px 1fr;
      padding: unset;
      list-style-type: ''; } }
  .layoutNews > li {
    display: grid;
    align-items: flex-start;
    border-bottom: 1px solid currentcolor; }
    @media screen and (width < 768px) {
      .layoutNews > li {
        grid-template-columns: 120px 1fr;
        border-bottom: 1px solid #e5e5e5;
        padding-block: 1lh; } }
    @media print, screen and (768px <= width) {
      .layoutNews > li {
        grid-template-columns: subgrid;
        grid-column: span 3;
        column-gap: 30px;
        padding-block: 1lh; } }
    .layoutNews > li.new > .layoutNews__text::after {
      color: #ff6571;
      content: "NEW";
      display: inline-block;
      margin-left: 5px; }
  .layoutNews__cat {
    line-height: 1.3;
    text-align: center;
    background-color: #e5e5e5;
    border-radius: calc(1px / 0);
    		/*
            &--01 {
    			background-color: $category01-color;
            }
            &--02 {
    			background-color: $category02-color;
            }
            &--03 {
    			background-color: $category03-color;
            }
    		&--04 {
    			background-color: $category04-color;
            }
            &--05 {
    			background-color: $category05-color;
            }
    		*/ }
    @media screen and (width < 768px) {
      .layoutNews__cat {
        font-size: 1.2rem;
        width: 80px;
        padding: 2px;
        grid-column: 2; } }
    @media print, screen and (768px <= width) {
      .layoutNews__cat {
        font-size: 1.4rem;
        padding: 3px;
        width: 120px; } }
  @media screen and (width < 768px) {
    .layoutNews__text {
      grid-column: span 2; } }
  @media print, screen and (768px <= width) {
    .layoutNews__text {
      margin-left: 25px; } }

.newsSets {
  display: flex;
  align-items: center;
  width: auto; }
  @media print, screen and (768px <= width) {
    .newsSets {
      align-content: center; } }
  .newsSets__date {
    display: block;
    letter-spacing: 0; }
    @media screen and (width < 768px) {
      .newsSets__date {
        width: 5em; } }
    @media print, screen and (768px <= width) {
      .newsSets__date {
        width: 5em;
        margin-right: 5px; } }
  .newsSets__cat {
    line-height: 1.3;
    text-align: center;
    background-color: #e5e5e5;
    border-radius: calc(1px / 0);
    		/*
            &--01 {
    			background-color: $category01-color;
            }
            &--02 {
    			background-color: $category02-color;
            }
            &--03 {
    			background-color: $category03-color;
            }
    		&--04 {
    			background-color: $category04-color;
            }
            &--05 {
    			background-color: $category05-color;
            }
            &--06 {
    			background-color: $category06-color;
            }
    		&--07 {
    			background-color: $category07-color;
            }
    		*/ }
    @media screen and (width < 768px) {
      .newsSets__cat {
        font-size: 1.2rem;
        width: 80px;
        padding: 2px;
        grid-column: 2; } }
    @media print, screen and (768px <= width) {
      .newsSets__cat {
        font-size: 1.4rem;
        padding: 3px;
        width: 120px; } }
  .newsSets--flexEnd {
    justify-content: flex-end; }
    @media print, screen and (768px <= width) {
      .newsSets--flexEnd .newsSets__date {
        margin-right: 10px; } }

/* Scss Document */
body:not(#home, #service.index) .siteContents,
body:not(#home, #service.index) .siteContents2col {
  background-color: var(--bg-color-contents); }

body#service.index .siteContents {
  background-color: var(--bg-color-dark);
  color: #fff; }

body#service.index .siteContents__inner {
  position: relative; }
  body#service.index .siteContents__inner::before {
    content: "";
    display: block;
    position: absolute;
    background-image: url(../images/service/img-service.png);
    background-size: contain; }
    @media screen and (width < 768px) {
      body#service.index .siteContents__inner::before {
        width: 200px;
        height: 176px;
        right: 0;
        top: -130px; } }
    @media print, screen and (768px <= width) {
      body#service.index .siteContents__inner::before {
        width: 401px;
        height: 352px;
        right: 207px;
        top: -253px; } }

body#recruit.index .siteContents__inner {
  position: relative; }
  body#recruit.index .siteContents__inner::before {
    content: "";
    display: block;
    position: absolute;
    background-image: url(../images/recruit/img-recruit.png);
    background-size: contain; }
    @media screen and (width < 768px) {
      body#recruit.index .siteContents__inner::before {
        width: 200px;
        height: 151px;
        right: 0;
        top: -95px; } }
    @media print, screen and (768px <= width) {
      body#recruit.index .siteContents__inner::before {
        width: 602px;
        height: 456px;
        right: 161px;
        top: -186px; } }

/* =========================================================
 textLink icon
========================================================= */
main a:not([class*="button"]):link, main a:not([class*="button"]):visited, main a:not([class*="Button"]):link, main a:not([class*="Button"]):visited {
  color: var(--text-color); }
main a:not([class*="button"]):hover, main a:not([class*="button"]):active, main a:not([class*="button"]):focus, main a:not([class*="button"]).hover, main a:not([class*="Button"]):hover, main a:not([class*="Button"]):active, main a:not([class*="Button"]):focus, main a:not([class*="Button"]).hover {
  color: var(--text-color); }
main a:not([class])[href$=".pdf"]:after, main a[class^="homeButton"][href$=".pdf"]:after, main a[class^="button"][href$=".pdf"]:after, main a.pdf:after {
  font-family: "Font Awesome 6 Free";
  content: "";
  font-weight: 400;
  padding-left: 0.5rem;
  padding-right: 0; }
main a:not([class])[href*=".doc"]:after, main a[class^="homeButton"][href$=".doc"]:after, main a[class^="button"][href*=".doc"]:after {
  font-family: "Font Awesome 6 Free";
  content: "";
  font-weight: 400;
  padding-left: 0.5rem;
  padding-right: 0; }
main a:not([class])[href*=".xls"]:after, main a[class^="homeButton"][href*=".xls"]:after, main a[class^="button"][href*=".xls"]:after {
  font-family: "Font Awesome 6 Free";
  content: "";
  font-weight: 400;
  padding-left: 0.5rem;
  padding-right: 0; }
main a:not([class])[href^="http"]:after, main a[class^="homeButton"][href^="http"]:after, main a[class^="homeButton"][class^="button"][href^="http"]:after, main a[class^="button"][href^="http"]:after, main a.http:after {
  font-family: "Font Awesome 6 Free";
  content: "";
  font-weight: 900;
  padding-left: 0.5rem;
  padding-right: 0; }
main a:not([class])[href^="mailto"]:after, main a[class^="homeButton"][href^="mailto"]:after, main a[class^="homeButton"][class^="button"][href^="mailto"]:after, main a[class^="button"][href^="mailto"]:after {
  font-family: "Font Awesome 6 Free";
  content: "";
  font-weight: 400;
  padding-left: 0.5rem;
  padding-right: 0; }

/* =========================================================
 text-a
========================================================= */
.text-center {
  text-align: center !important; }

.text-right {
  text-align: right !important; }

.text-left {
  text-align: left; }

/* =========================================================
 p
========================================================= */
main p:not([class]) {
  margin-bottom: 0.8em;
  margin-top: 0.8em; }

main p:not([class]):empty {
  height: 1em; }

/* =========================================================
 strong
========================================================= */
main strong:not([class]) {
  font-weight: bold; }

/* a opacity
--------------------------------------------------------- */
/* =========================================================
 aspectContainer aspect-ratio
========================================================= */
.aspectWrap16-9 {
  width: 100%;
  aspect-ratio: 16 / 9; }
  .aspectWrap16-9 iframe {
    width: 100%;
    height: 100%; }
  .aspectWrap16-9 img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.aspectWrap4-3 {
  width: 100%;
  aspect-ratio: 4 / 3; }
  .aspectWrap4-3 iframe {
    width: 100%;
    height: 100%; }
  .aspectWrap4-3 img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.aspectWrap3-2 {
  width: 100%;
  aspect-ratio: 3 / 2; }
  .aspectWrap3-2 iframe {
    width: 100%;
    height: 100%; }
  .aspectWrap3-2 img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.aspectWrap21-9 {
  width: 100%;
  aspect-ratio: 21 / 9; }
  .aspectWrap21-9 iframe {
    width: 100%;
    height: 100%; }
  .aspectWrap21-9 img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.aspectWrap1-1 {
  width: 100%;
  aspect-ratio: 1 / 1; }
  .aspectWrap1-1 iframe {
    width: 100%;
    height: 100%; }
  .aspectWrap1-1 img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

/* =========================================================
 spectImageBox アスペクト比固定画像
========================================================= */
.aspectImageBox {
  width: 100%;
  display: block;
  border: 1px solid #eee;
  aspect-ratio: 4 / 3; }
  .aspectImageBox--0322 {
    aspect-ratio: 3 / 2; }
  .aspectImageBox--1609 {
    aspect-ratio: 16 / 9; }
  .aspectImageBox img {
    width: 100%;
    height: 100%;
    object-fit: scale-down; }

/* =========================================================
 Ul
========================================================= */
.baseUl {
  --_icon-size: 0.4em;
  --_icon-offset: 1.6em;
  margin-bottom: 0.8em;
  margin-top: 0.8em; }
  .baseUl li {
    padding-left: var(--_icon-offset);
    padding-right: 0.8em; }
    .baseUl li + li {
      padding-right: 0.8em; }
    .baseUl li::before {
      content: "";
      display: block;
      aspect-ratio: 1;
      border-radius: 50%;
      background-color: var(--text-color);
      position: absolute; }
  .baseUl > li {
    position: relative; }
    .baseUl > li ol, .baseUl > li ul {
      padding-left: 1.0em; }
    .baseUl > li > ul > li {
      position: relative; }
      .baseUl > li > ul > li:before {
        block-size: calc(var(--_icon-size) * 0.8);
        top: calc((1lh - var(--_icon-size)) / 2);
        left: calc((var(--_icon-offset) - var(--_icon-size)) / 2); }
  .baseUl > li:before {
    block-size: var(--_icon-size);
    top: calc((1lh - var(--_icon-size)) / 2);
    left: calc((var(--_icon-offset) - var(--_icon-size)) / 2); }
  .baseUl--inline li {
    display: inline-block; }
  .baseUl--0201col {
    display: grid;
    margin: 0.8em 0; }
    @media screen and (width < 768px) {
      .baseUl--0201col {
        row-gap: 10px; } }
    @media print, screen and (768px <= width) {
      .baseUl--0201col {
        width: 100%;
        grid-template-columns: repeat(2, 1fr);
        gap: 5px 30px; } }
  .baseUl--0301col {
    display: grid;
    margin: 0.8em 0; }
    @media screen and (width < 768px) {
      .baseUl--0301col {
        row-gap: 10px; } }
    @media print, screen and (768px <= width) {
      .baseUl--0301col {
        width: 100%;
        grid-template-columns: repeat(3, 1fr);
        gap: 5px 25px; } }

/* =========================================================
 数字リスト
========================================================= */
.baseOl {
  --_icon-offset: 1.6em;
  margin-bottom: 0.8em;
  margin-top: 0.8em;
  list-style: none;
  counter-reset: section; }
  .baseOl li + li {
    margin-top: 0.2em; }
  .baseOl > li ol, .baseOl > li ul {
    margin-top: 0.2em; }
  .baseOl > li {
    position: relative;
    padding-right: 0.8em;
    padding-left: var(--_icon-offset); }
    .baseOl > li::before {
      counter-increment: section;
      content: counter(section);
      color: var(--text-color);
      position: absolute;
      left: calc((var(--_icon-offset) - 1em ) / 2);
      top: 0;
      font-weight: 700; }

/* =========================================================
 numberUl 順序が関係ない数字リスト
========================================================= */
.numberUl {
  --_icon-offset: 1.6em;
  margin-bottom: 0.8em;
  margin-top: 0.8em;
  list-style: none;
  counter-reset: section; }
  .numberUl li + li {
    margin-top: 0.2em; }
  .numberUl > li ol, .numberUl > li ul {
    margin-top: 0.2em; }
  .numberUl > li {
    position: relative;
    padding-right: 0.8em;
    padding-left: var(--_icon-offset); }
    .numberUl > li::before {
      counter-increment: section;
      content: counter(section) ".";
      color: var(--text-color);
      position: absolute;
      left: calc((var(--_icon-offset) - 1em ) / 2);
      top: 0;
      font-weight: 700; }

/* =========================================================
 Ul　注釈
========================================================= */
.asteriskUl {
  --_icon-offset: 1.6em;
  list-style: none;
  margin-left: var(--_icon-offset);
  margin-bottom: 0.8em;
  margin-top: 0.8em; }
  .asteriskUl > li:before {
    display: inline-block;
    width: 1.2em;
    margin-left: -1.2em;
    content: "※"; }
  .asteriskUl li + li {
    margin-top: 0.2em; }
  .asteriskUl--sm {
    font-size: 80%; }

/* =========================================================
 anchorUl
==================================b======================= */
.anchorUl {
  background-color: #e9c6c2; }
  @media screen and (width < 768px) {
    .anchorUl {
      margin-top: 2.4em;
      padding: 2px 5px 7px 16px;
      border-radius: 3px;
      margin-bottom: 40px; } }
  @media print, screen and (768px <= width) {
    .anchorUl {
      margin-top: 2em;
      padding: 6px 41px 16px;
      border-radius: 6px;
      margin-bottom: 80px; } }
  .anchorUl li {
    display: inline-block; }
    @media screen and (width < 768px) {
      .anchorUl li {
        margin-top: 0.4em;
        margin-right: 20px; } }
    @media print, screen and (768px <= width) {
      .anchorUl li {
        margin-top: 0.5em;
        margin-right: 2.0em; } }
  .anchorUl > li ol, .anchorUl > li ul {
    margin-top: 0.2em; }
  .anchorUl > li > a {
    text-decoration: none; }
    .anchorUl > li > a:after {
      content: "";
      display: inline-block;
      font-family: "Font Awesome 6 Free";
      content: "";
      font-weight: 900;
      padding-left: 0.5em;
      padding-right: 0;
      color: var(--brand-color);
      font-size: 1.2em; }
    .anchorUl > li > a:hover, .anchorUl > li > a:focus, .anchorUl > li > a:active {
      text-decoration: underline; }

/* =========================================================
 Ol　注釈数字
========================================================= */
.asteriskOl {
  counter-reset: number;
  list-style: none;
  margin-left: 2.2em;
  margin-bottom: 0.8em;
  margin-top: 0.8em; }
  .asteriskOl--sm {
    font-size: 80%; }
  .asteriskOl > li:before {
    display: inline-block;
    width: 2.2em;
    margin-left: -2.2em;
    counter-increment: number;
    content: "※" counter(number) " "; }
  .asteriskOl li + li {
    margin-top: 0.2em; }

/* =========================================================
 linkUl
========================================================= */
.linkUl {
  margin-bottom: 0.8em;
  margin-top: 0.8em; }
  .linkUl li + li {
    margin-top: 0.5em; }
  .linkUl li a {
    display: block;
    position: relative; }
    @media screen and (width < 768px) {
      .linkUl li a {
        padding-left: 22px; } }
    @media print, screen and (768px <= width) {
      .linkUl li a {
        padding-left: 26px; } }
    .linkUl li a::before {
      content: "";
      display: inline-block;
      font-family: "Font Awesome 6 Free";
      content: "";
      font-weight: 900;
      padding-left: 0;
      padding-right: 0;
      position: absolute;
      top: 0;
      left: 0;
      color: var(--brand-text-color); }
    .linkUl li a:hover, .linkUl li a:active, .linkUl li a:focus {
      text-decoration: none; }
  .linkUl--mat0 {
    margin-top: 0; }

/* =========================================================
 Dl
========================================================= */
.baseDl {
  margin-bottom: 0.8em;
  margin-top: 0.8em; }
  .baseDl dt {
    font-weight: 500; }
  .baseDl dd dl, .baseDl dd ul {
    padding-left: 1.0em; }
  .baseDl dd + dt {
    margin-top: 0.8em; }
  .baseDl * {
    margin-top: 0;
    margin-bottom: 0; }

/* =========================================================
 inlineDl
========================================================= */
.inlineDl {
  margin-bottom: 0.8em;
  margin-top: 0.8em;
  display: grid;
  grid-template-columns: 10em 1fr;
  grid-row-gap: 5px; }
  .inlineDl--sm {
    grid-template-columns: 6em 1fr; }
  .inlineDl--mat0 {
    margin-top: 0;
    margin-bottom: 0; }

/* =========================================================
 Table
========================================================= */
/*------- table用スクロール-------------- */
.scroll {
  overflow-x: auto !important;
  overflow-y: hidden;
  margin-bottom: 1.5em; }
  .scroll::-webkit-scrollbar {
    /* スクロールバー本体 */
    width: 15px;
    height: 15px;
    background: #ccc; }
  .scroll::-webkit-scrollbar:horizontal {
    /* 横方向のスクロールバー本体 */
    width: 12px;
    height: 12px;
    background: #ccc; }
  .scroll::-webkit-scrollbar-thumb {
    /* スクロールバーの動く部分 */
    background: #999;
    border: #666 solid 1px;
    border-radius: 0; }
  .scroll::-webkit-scrollbar-thumb:horizontal {
    /* 横方向のスクロールバーの動く部分 */
    background: #999;
    border: #666 solid 1px;
    border-radius: 0; }
  .scroll::-webkit-scrollbar-track-piece:start {
    /* スクロールバーの動く部分の前 */
    background: #ccc; }
  .scroll::-webkit-scrollbar-track-piece:end {
    /* スクロールバーの動く部分の後ろ */
    background: #ccc; }
  .scroll::-webkit-scrollbar-corner {
    /* スクロールバー角 */
    background: transparent; }
  .scroll > * {
    margin: 0 !important; }

/* table.baseTable(tableタグのみ)
--------------------------------------------------------- */
table.baseTable {
  margin-bottom: 0.8em;
  margin-top: 0.8em;
  border-bottom: 1px solid #c1c1c1;
  border-right: 1px solid #c1c1c1;
  white-space: nowrap; }
  table.baseTable--fluid {
    width: 100%; }
  table.baseTable--min100 {
    min-width: 100%; }
  table.baseTable--fixed {
    width: 0px;
    table-layout: fixed; }
  @media screen and (width < 768px) {
    table.baseTable--sp100 {
      white-space: normal;
      width: 100%; } }
  table.baseTable caption {
    caption-side: top;
    text-align: left;
    font-weight: bold;
    margin-bottom: 5px;
    color: var(--text-color); }
  table.baseTable thead {
    background-color: #f1f1f1; }
  table.baseTable thead tr + tr th {
    border-left: 1px solid #c1c1c1 !important;
    border-top: 1px solid #c1c1c1; }
  table.baseTable th, table.baseTable td {
    border-top: 1px solid #c1c1c1;
    border-left: 1px solid #c1c1c1; }
    @media screen and (width < 768px) {
      table.baseTable th, table.baseTable td {
        padding: 0.5em; } }
    @media print, screen and (768px <= width) {
      table.baseTable th, table.baseTable td {
        padding: 0.8em; } }
    table.baseTable th.txal-l, table.baseTable td.txal-l {
      text-align: left !important; }
    table.baseTable th.txal-c, table.baseTable td.txal-c {
      text-align: center !important; }
    table.baseTable th.txal-r, table.baseTable td.txal-r {
      text-align: right !important; }
    @media screen and (width < 768px) {
      table.baseTable th.w-2em, table.baseTable td.w-2em {
        width: calc( 0.6em + 1px + 2em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-2em, table.baseTable td.w-2em {
        width: calc( 40px + 1px + 2em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-3em, table.baseTable td.w-3em {
        width: calc( 0.6em + 1px + 3em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-3em, table.baseTable td.w-3em {
        width: calc( 40px + 1px + 3em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-4em, table.baseTable td.w-4em {
        width: calc( 0.6em + 1px + 4em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-4em, table.baseTable td.w-4em {
        width: calc( 40px + 1px + 4em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-5em, table.baseTable td.w-5em {
        width: calc( 0.6em + 1px + 5em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-5em, table.baseTable td.w-5em {
        width: calc( 40px + 1px + 5em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-6em, table.baseTable td.w-6em {
        width: calc( 0.6em + 1px + 6em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-6em, table.baseTable td.w-6em {
        width: calc( 40px + 1px + 6em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-7em, table.baseTable td.w-7em {
        width: calc( 0.6em + 1px + 7em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-7em, table.baseTable td.w-7em {
        width: calc( 40px + 1px + 7em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-8em, table.baseTable td.w-8em {
        width: calc( 0.6em + 1px + 8em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-8em, table.baseTable td.w-8em {
        width: calc( 40px + 1px + 8em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-9em, table.baseTable td.w-9em {
        width: calc( 0.6em + 1px + 9em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-9em, table.baseTable td.w-9em {
        width: calc( 40px + 1px + 9em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-10em, table.baseTable td.w-10em {
        width: calc( 0.6em + 1px + 10em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-10em, table.baseTable td.w-10em {
        width: calc( 40px + 1px + 10em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-11em, table.baseTable td.w-11em {
        width: calc( 0.6em + 1px + 11em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-11em, table.baseTable td.w-11em {
        width: calc( 40px + 1px + 11em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-12em, table.baseTable td.w-12em {
        width: calc( 0.6em + 1px + 12em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-12em, table.baseTable td.w-12em {
        width: calc( 40px + 1px + 12em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-13em, table.baseTable td.w-13em {
        width: calc( 0.6em + 1px + 13em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-13em, table.baseTable td.w-13em {
        width: calc( 40px + 1px + 13em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-14em, table.baseTable td.w-14em {
        width: calc( 0.6em + 1px + 14em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-14em, table.baseTable td.w-14em {
        width: calc( 40px + 1px + 14em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-15em, table.baseTable td.w-15em {
        width: calc( 0.6em + 1px + 15em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-15em, table.baseTable td.w-15em {
        width: calc( 40px + 1px + 15em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-16em, table.baseTable td.w-16em {
        width: calc( 0.6em + 1px + 16em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-16em, table.baseTable td.w-16em {
        width: calc( 40px + 1px + 16em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-17em, table.baseTable td.w-17em {
        width: calc( 0.6em + 1px + 17em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-17em, table.baseTable td.w-17em {
        width: calc( 40px + 1px + 17em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-18em, table.baseTable td.w-18em {
        width: calc( 0.6em + 1px + 18em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-18em, table.baseTable td.w-18em {
        width: calc( 40px + 1px + 18em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-19em, table.baseTable td.w-19em {
        width: calc( 0.6em + 1px + 19em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-19em, table.baseTable td.w-19em {
        width: calc( 40px + 1px + 19em); } }
    @media screen and (width < 768px) {
      table.baseTable th.w-20em, table.baseTable td.w-20em {
        width: calc( 0.6em + 1px + 20em); } }
    @media print, screen and (768px <= width) {
      table.baseTable th.w-20em, table.baseTable td.w-20em {
        width: calc( 40px + 1px + 20em); } }
  table.baseTable th {
    border-left: 1px solid #c1c1c1;
    border-top: 1px solid #c1c1c1;
    background-color: #f1f1f1; }
  table.baseTable th[scope="row"] {
    text-align: left; }
  table.baseTable th[scope="col"] {
    text-align: center !important; }
  table.baseTable td {
    background-color: transparent; }
  table.baseTable .nowrap {
    white-space: nowrap; }
  @media screen and (width < 768px) {
    table.baseTable--narrow th, table.baseTable--narrow td {
      padding: 0.3em; } }
  @media print, screen and (768px <= width) {
    table.baseTable--narrow th, table.baseTable--narrow td {
      padding: 0.4em; } }

.tableLayout01 {
  display: block;
  width: 100%; }
  .tableLayout01 .item {
    display: flex;
    gap: 1rem; }
    @media screen and (width < 768px) {
      .tableLayout01 .item {
        padding-block: 15px; } }
    @media print, screen and (768px <= width) {
      .tableLayout01 .item {
        padding-block: 30px; } }
  .tableLayout01 .title {
    flex-shrink: 0;
    flex-grow: 0;
    font-weight: 500; }
    @media screen and (width < 768px) {
      .tableLayout01 .title {
        width: 25%;
        font-weight: 500; } }
    @media print, screen and (768px <= width) {
      .tableLayout01 .title {
        width: 12em; }
        .tableLayout01 .title--xs {
          width: 8em; }
        .tableLayout01 .title--sm {
          width: 10em; }
        .tableLayout01 .title--md {
          width: 14em; }
        .tableLayout01 .title--lg {
          width: 16em; }
        .tableLayout01 .title--xl {
          width: 18em; }
        .tableLayout01 .title--xxl {
          width: 20em; } }
  .tableLayout01 .text {
    flex-grow: 1; }
  @media screen and (width < 768px) {
    .tableLayout01--sm .item {
      padding-block: 8px; } }
  @media print, screen and (768px <= width) {
    .tableLayout01--sm .item {
      padding-block: 16px; } }
  .tableLayout01--dot .item {
    border: none;
    background-image: url(../images/bg_dot.png);
    background-position: bottom;
    background-repeat: repeat-x; }
    @media screen and (width < 768px) {
      .tableLayout01--dot .item {
        padding: 15px 0 16px; } }
    @media print, screen and (768px <= width) {
      .tableLayout01--dot .item {
        padding: 30px 0 31px; } }

.tableLayout02 {
  display: block;
  width: 100%;
  margin: 0.8em 0; }
  @media print, screen and (768px <= width) {
    .tableLayout02 .item {
      display: flex;
      gap: 1rem;
      border-bottom: 1px solid var(--border-color);
      padding-block: 30px; } }
  @media screen and (width < 768px) {
    .tableLayout02 .title, .tableLayout02 .text {
      padding-block: 10px;
      padding-inline: 5px; } }
  @media screen and (width < 768px) {
    .tableLayout02 .title {
      background-color: #f1f1f1; } }
  @media print, screen and (768px <= width) {
    .tableLayout02 .title {
      flex-shrink: 0;
      flex-grow: 0;
      width: 12em; }
      .tableLayout02 .title--xs {
        width: 8em; }
      .tableLayout02 .title--sm {
        width: 10em; }
      .tableLayout02 .title--md {
        width: 14em; }
      .tableLayout02 .title--lg {
        width: 16em; }
      .tableLayout02 .title--xl {
        width: 18em; }
      .tableLayout02 .title--xxl {
        width: 20em; } }
  @media print, screen and (768px <= width) {
    .tableLayout02 .text {
      flex-grow: 1; } }
  @media screen and (width < 768px) {
    .tableLayout02--sm .item {
      padding-block: 8px; } }
  @media print, screen and (768px <= width) {
    .tableLayout02--sm .item {
      padding-block: 15px; } }
  @media print, screen and (768px <= width) {
    .tableLayout02--dot .item {
      border: none;
      background-image: url(../images/bg_dot.png);
      background-position: bottom;
      background-repeat: repeat-x;
      padding: 30px 0 31px; } }

/* =========================================================
 テキストレイアウト　textLayout
========================================================= */
/* 画像左
--------------------------------------------------------- */
.textLayout {
  --_gap: 30px;
  margin-bottom: 1.5em;
  margin-top: 1.5em; }
  @media screen and (width < 768px) {
    .textLayout {
      display: block; } }
  @media print, screen and (768px <= width) {
    .textLayout {
      display: flex;
      gap: 30px; } }
  @media screen and (width < 768px) {
    .textLayout__image {
      margin-bottom: 0.8em; } }
  @media print, screen and (768px <= width) {
    .textLayout__image {
      width: 475px;
      flex-grow: 0;
      flex-shrink: 0;
      text-align: center; }
      .textLayout__image--sm {
        width: 38%; }
      .textLayout__image--xs {
        width: 20%; } }
  .textLayout__image img {
    max-width: 100%;
    height: auto; }
  .textLayout__figcaption {
    text-align: center;
    margin-bottom: 0.3em;
    margin-top: 0.3em;
    font-weight: 500; }
    @media screen and (width < 768px) {
      .textLayout__figcaption {
        font-size: 1.8rem; } }
    @media print, screen and (768px <= width) {
      .textLayout__figcaption {
        font-size: 2.0rem; } }
    @media screen and (width < 768px) {
      .textLayout__figcaption span {
        font-size: 1.4rem; } }
    @media print, screen and (768px <= width) {
      .textLayout__figcaption span {
        font-size: 1.6rem; } }
  @media print, screen and (768px <= width) {
    .textLayout__text {
      flex-grow: 1; }
      .textLayout__text > *:first-child {
        margin-top: 0 !important; } }
  @media print, screen and (768px <= width) {
    .textLayout--reverse {
      flex-direction: row-reverse; } }
  .textLayout + .textLayout {
    margin-top: 3em; }

/* =========================================================
 テキストレイアウト　textLayoutAround　テキスト回り込み
========================================================= */
/* 画像左
--------------------------------------------------------- */
.textLayoutAround {
  display: block;
  margin-bottom: 1.5em;
  margin-top: 1.5em; }
  .textLayoutAround::after {
    content: "";
    display: block;
    clear: both; }
  @media print, screen and (768px <= width) {
    .textLayoutAround__imageArea {
      margin-right: 30px;
      margin-bottom: 0.8em;
      width: 50%;
      float: left; }
      .textLayoutAround__imageArea--xxs {
        width: 20%; }
      .textLayoutAround__imageArea--xs {
        width: 30%; }
      .textLayoutAround__imageArea--sm {
        width: 40%; } }
  .textLayoutAround__imageArea > img {
    width: 100%;
    height: auto; }
  @media print, screen and (768px <= width) {
    .textLayoutAround__textArea > *:first-child {
      margin-top: 0 !important; } }
  .textLayoutAround__figcaption {
    text-align: center;
    margin-bottom: 0.3em;
    margin-top: 0.3em; }

/* 画像右
--------------------------------------------------------- */
.textLayoutAroundRight {
  display: block;
  margin-bottom: 1.5em;
  margin-top: 1.5em; }
  .textLayoutAroundRight::after {
    content: "";
    display: block;
    clear: both; }
  @media print, screen and (768px <= width) {
    .textLayoutAroundRight__imageArea {
      margin-left: 30px;
      margin-bottom: 0.8em;
      width: 50%;
      float: right; }
      .textLayoutAroundRight__imageArea--xxs {
        width: 20%; }
      .textLayoutAroundRight__imageArea--xs {
        width: 30%; }
      .textLayoutAroundRight__imageArea--sm {
        width: 40%; } }
  .textLayoutAroundRight__imageArea > img {
    width: 100%;
    height: auto; }
  @media print, screen and (768px <= width) {
    .textLayoutAroundRight__textArea > *:first-child {
      margin-top: 0 !important; } }
  .textLayoutAroundRight__figcaption {
    text-align: center;
    margin-bottom: 0.3em;
    margin-top: 0.3em; }

/* =========================================================
 ボタンレイアウト　buttonLayout　ボタン一個　センター寄せ
========================================================= */
.buttonLayout {
  display: block;
  margin-bottom: 0.8em;
  margin-top: 0.8em; }
  .buttonLayout__inner {
    margin: 0.8em auto; }
    @media screen and (width < 768px) {
      .buttonLayout__inner {
        max-width: 280px; } }
    @media print, screen and (768px <= width) {
      .buttonLayout__inner {
        width: calc(1140px/12*4);
        padding-left: 15px;
        padding-right: 15px; } }
    @media print, screen and (768px <= width) {
      .buttonLayout__inner--lg {
        width: calc(1140px/12*5); } }
    @media screen and (width < 768px) {
      .buttonLayout__inner--sm {
        width: calc(280px/12*8); } }
    @media print, screen and (768px <= width) {
      .buttonLayout__inner--sm {
        width: calc(1140px/12*3); } }
    @media screen and (width < 768px) {
      .buttonLayout__inner--xs {
        width: calc(280px/12*6); } }
    @media print, screen and (768px <= width) {
      .buttonLayout__inner--xs {
        width: calc(1140px/12*2); } }
  @media screen and (width < 768px) {
    .buttonLayout__innerLeft {
      margin: 0.8em auto;
      width: 100%; } }
  @media print, screen and (768px <= width) {
    .buttonLayout__innerLeft {
      width: calc(1140px/12*4);
      padding-left: 15px;
      padding-right: 15px;
      margin: 0.8em auto 0.8em -15px; } }
  @media print, screen and (768px <= width) {
    .buttonLayout__innerLeft--lg {
      width: calc(1140px/12*5); } }
  @media screen and (width < 768px) {
    .buttonLayout__innerLeft--sm {
      width: calc(280px/12*8); } }
  @media print, screen and (768px <= width) {
    .buttonLayout__innerLeft--sm {
      width: calc(1140px/12*3); } }
  @media screen and (width < 768px) {
    .buttonLayout__innerLeft--xs {
      width: calc(280px/12*6); } }
  @media print, screen and (768px <= width) {
    .buttonLayout__innerLeft--xs {
      width: calc(1140px/12*2); } }
  .buttonLayout--matL {
    margin-top: 5em; }

/* =========================================================
 columnLayout
 ========================================================= */
.columnLayout {
  display: grid;
  margin: 0.8em 0; }
  @media screen and (width < 768px) {
    .columnLayout--0201 {
      row-gap: 15px; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0201 {
      grid-template-columns: repeat(2, 1fr);
      gap: 15px 30px; } }
  @media screen and (width < 768px) {
    .columnLayout--0201gap0 {
      row-gap: 0; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0201gap0 {
      grid-template-columns: repeat(2, 1fr);
      gap: 15px 30px; } }
  @media screen and (width < 768px) {
    .columnLayout--0202 {
      grid-template-columns: repeat(2, 1fr);
      gap: 15px; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0202 {
      grid-template-columns: repeat(2, 1fr);
      gap: 15px 30px; } }
  @media screen and (width < 768px) {
    .columnLayout--0301 {
      row-gap: 20px; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0301 {
      grid-template-columns: repeat(3, 1fr);
      gap: 50px 30px; } }
  @media screen and (width < 768px) {
    .columnLayout--0301wide {
      row-gap: 40px; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0301wide {
      grid-template-columns: repeat(3, 1fr);
      gap: 50px 30px; } }
  @media screen and (width < 768px) {
    .columnLayout--0302 {
      grid-template-columns: repeat(2, 1fr);
      gap: 15px 15px; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0302 {
      grid-template-columns: repeat(3, 1fr);
      gap: 15px 30px; } }
  @media screen and (width < 768px) {
    .columnLayout--0401 {
      row-gap: 15px; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0401 {
      grid-template-columns: repeat(4, 1fr);
      gap: 15px 30px; } }
  @media screen and (width < 768px) {
    .columnLayout--0402 {
      grid-template-columns: repeat(2, 1fr);
      gap: 15px 15px; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0402 {
      grid-template-columns: repeat(4, 1fr);
      gap: 30px 15px; } }
  @media screen and (width < 768px) {
    .columnLayout--0403 {
      grid-template-columns: repeat(3, 1fr);
      gap: 30px 15px; } }
  @media print, screen and (768px <= width) {
    .columnLayout--0403 {
      grid-template-columns: repeat(4, 1fr);
      gap: 15px 30px; } }
  .columnLayout__item > figure > img {
    width: 100%;
    height: auto; }
  .columnLayout__item > a[class^="button"]:first-child {
    height: 100%; }
  .columnLayout__item > *:first-child {
    margin-top: 0 !important; }
  .columnLayout--matL {
    margin: 1.6em 0; }

/* =========================================================
 title
========================================================= */
/* pageTitle ページタイトル
--------------------------------------------------------- */
.pageTitle {
  display: flex;
  align-items: center;
  font-family: var(--primary-font); }
  @media screen and (width < 768px) {
    .pageTitle {
      min-height: 205px;
      padding: 0 15px; } }
  @media print, screen and (768px <= width) {
    .pageTitle {
      min-height: 360px;
      padding-top: 102px; } }
  @media print, screen and (768px <= width) {
    .pageTitle__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto;
      display: flex;
      align-items: center; } }
  .pageTitle__main {
    font-weight: 700;
    line-height: 1.4; }
    @media screen and (width < 768px) {
      .pageTitle__main {
        font-size: 3.4rem;
        letter-spacing: 0.03em; } }
    @media print, screen and (768px <= width) {
      .pageTitle__main {
        font-size: 7.0rem; } }
  .pageTitle__sub {
    font-family: var(--sub-font);
    font-weight: 500;
    text-transform: capitalize; }
    @media screen and (width < 768px) {
      .pageTitle__sub {
        font-size: 2.0rem;
        line-height: 1.5; } }
    @media print, screen and (768px <= width) {
      .pageTitle__sub {
        font-size: 2.4rem;
        margin-left: 1rem; } }

/* pageTitle2 下層ページタイトル
--------------------------------------------------------- */
.pageTitle2 {
  display: flex;
  align-items: center;
  font-family: var(--primary-font); }
  @media screen and (width < 768px) {
    .pageTitle2 {
      min-height: 170px;
      padding: 0 15px; } }
  @media print, screen and (768px <= width) {
    .pageTitle2 {
      min-height: 300px;
      padding-top: 102px; } }
  @media print, screen and (768px <= width) {
    .pageTitle2__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto; } }
  .pageTitle2__main {
    font-weight: 500;
    line-height: 1.4; }
    @media screen and (width < 768px) {
      .pageTitle2__main {
        font-size: 2.4rem; } }
    @media print, screen and (768px <= width) {
      .pageTitle2__main {
        font-size: 4.6rem; } }
  .pageTitle2__sub {
    text-transform: capitalize; }
    @media screen and (width < 768px) {
      .pageTitle2__sub {
        font-size: 1.8rem; } }
    @media print, screen and (768px <= width) {
      .pageTitle2__sub {
        font-size: 2.4rem; } }

/* =========================================================
 title
========================================================= */
/* title01 
--------------------------------------------------------- */
.title01 {
  color: var(--brand-text-color);
  font-weight: bold;
  line-height: 1.4; }
  @media screen and (width < 768px) {
    .title01 {
      margin-top: 65px;
      margin-bottom: 10px;
      font-size: 2.5rem; } }
  @media print, screen and (768px <= width) {
    .title01 {
      margin-top: 150px;
      margin-bottom: 30px;
      font-size: 3.6rem; } }
  .title01--mat0 {
    margin-top: 0; }
  .title01 + *[class*="title"] {
    margin-top: 0; }

/* ------------------------------------------------------
title02　
--------------------------------------------------------- */
.title02 {
  border-top: 1px solid var(--text-color);
  border-bottom: 1px solid var(--text-color);
  font-weight: 500;
  line-height: 1.4;
  /*
  & ~ *:not([class*="title"]) {
		padding-left: 0.5em;
	}
  */
  /*
  & ~ * {
		padding-left: 0.5em;
	}
  */ }
  @media screen and (width < 768px) {
    .title02 {
      font-size: 2.0rem;
      margin: 50px 0 15px;
      padding: 0 10px 4px; } }
  @media print, screen and (768px <= width) {
    .title02 {
      font-size: 2.0rem;
      margin: 56px 0 16px;
      padding: 2px 12px 4px; } }
  .title02--mat0 {
    margin-top: 0; }
  .title02 + *[class*="title"] {
    margin-top: 0; }

/* ------------------------------------------------------
title03
--------------------------------------------------------- */
.title03 {
  display: flex;
  font-weight: 500;
  line-height: 1.4;
  padding-left: 0.2em;
  /*
	& ~ *:not([class*="title"]) {
		padding-left: 0.5em;
	}*/
  /*
  & ~ * {
		padding-left: 0.5em;
	}
  */ }
  @media screen and (width < 768px) {
    .title03 {
      font-size: 1.8rem;
      margin-top: 35px;
      margin-bottom: 10px; } }
  @media print, screen and (768px <= width) {
    .title03 {
      font-size: 1.8rem;
      margin-top: 35px;
      margin-bottom: 15px; } }
  .title03::before {
    content: "";
    background-color: var(--text-color);
    border-radius: 3px;
    flex-shrink: 0; }
    @media screen and (width < 768px) {
      .title03::before {
        margin-right: 10px;
        width: 7px;
        height: 1.5em; } }
    @media print, screen and (768px <= width) {
      .title03::before {
        margin-right: 10px;
        width: 7px; } }
  .title03--mat0 {
    margin-top: 0; }
  .title03 + *[class*="title"] {
    margin-top: 0; }

/* ------------------------------------------------------
title04
--------------------------------------------------------- */
.title04 {
  font-weight: 500;
  line-height: 1.4; }
  @media screen and (width < 768px) {
    .title04 {
      font-size: 1.6rem;
      margin-top: 15px;
      margin-bottom: 10px; } }
  @media print, screen and (768px <= width) {
    .title04 {
      font-size: 1.6rem;
      margin-top: 20px;
      margin-bottom: 15px; } }
  .title04--mat0 {
    margin-top: 0; }
  .title04 + *[class*="title"] {
    margin-top: 0; }

/* =========================================================
 
chphrase キャッチフレーズ 縦書き
========================================================= */
.catchphrase-rl {
  font-weight: bold;
  margin-top: 0.2em;
  -webkit-writing-mode: vertical-rl;
  /* Safari */
  writing-mode: vertical-rl;
  margin-block: auto; }
  @media screen and (width < 768px) {
    .catchphrase-rl {
      font-size: 3.0rem;
      margin-bottom: 10px; } }
  @media print, screen and (768px <= width) {
    .catchphrase-rl {
      font-size: 4.8rem;
      margin-bottom: 80px;
      padding-top: 40px; } }

/* =========================================================
 catchphrase キャッチフレーズ
========================================================= */
.catchphrase {
  font-weight: 700;
  margin-top: 1.5em;
  color: currentColor;
  line-height: 1.4; }
  @media screen and (width < 768px) {
    .catchphrase {
      font-size: 2.0rem;
      margin-bottom: 10px; } }
  @media print, screen and (768px <= width) {
    .catchphrase {
      font-size: 3.0rem;
      margin-bottom: 15px; } }
  .catchphrase--mat0 {
    margin-top: 0; }

/* =========================================================
 button
========================================================= */
/* button01 右にアイコンあり
--------------------------------------------------------- */
a.button01, .button01 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  color: currentColor !important;
  border: 1px solid currentColor;
  border-radius: calc(1px / 0);
  background-color: transparent;
  text-align: center;
  text-decoration: none !important;
  transition: 0.3s border ease-in; }
  @media screen and (width < 768px) {
    a.button01, .button01 {
      padding: 20px; } }
  @media print, screen and (768px <= width) {
    a.button01, .button01 {
      padding: 26px; } }
  a.button01::before, .button01::before {
    display: block;
    content: "+";
    color: var(--brand-color);
    margin-right: 10px; }
  a.button01:focus, a.button01:hover, a.button01:active, .button01:focus, .button01:hover, .button01:active {
    border-color: var(--brand-color); }
    a.button01:focus::before, a.button01:hover::before, a.button01:active::before, .button01:focus::before, .button01:hover::before, .button01:active::before {
      transform: rotate(360deg);
      transition: 1s transform ease-in; }

/* button02 アイコンなし
--------------------------------------------------------- */
a.button02, .button02 {
  width: 100%;
  display: inline grid;
  grid-template-columns: 1fr auto 1fr;
  column-gap: 1em;
  align-items: center;
  text-decoration: none !important;
  border: 1px solid var(--text-color);
  border-radius: calc(1px / 0);
  transition: background-color 0.3s ease-out; }
  @media screen and (width < 768px) {
    a.button02, .button02 {
      padding: 15px 30px; } }
  @media print, screen and (768px <= width) {
    a.button02, .button02 {
      padding: 16px 30px; } }
  a.button02::before, .button02::before {
    content: ""; }
  a.button02::after, .button02::after {
    content: "";
    justify-self: end; }
  a.button02:hover, a.button02:focus, a.button02:active, .button02:hover, .button02:focus, .button02:active {
    background-color: var(--bg-color-base); }

/* button03
--back モディファイヤでお知らせ詳細用の戻るボタン
--------------------------------------------------------- */
a.button03, .button03 {
  display: block;
  width: 100%;
  border: 1px solid #d2d2d2;
  text-align: center;
  text-decoration: none;
  line-height: 1.2;
  transition: 0.3s ease-out; }
  @media screen and (width < 768px) {
    a.button03, .button03 {
      padding: 16px; } }
  @media print, screen and (768px <= width) {
    a.button03, .button03 {
      padding: 18px; } }
  a.button03:active, a.button03:focus, a.button03:hover, .button03:active, .button03:focus, .button03:hover {
    background-color: #e5e5e5; }
  a.button03--back::before, .button03--back::before {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 0;
    padding-right: 0;
    margin-right: 1em;
    color: #707070; }

/*----------------------------------------
アコーディオン
-----------------------------------------*/
/* summaryのデフォルトリセット*/
summary::-webkit-details-marker {
  display: none;
  /* Safariで表示されるデフォルトの三角形アイコンを消す */ }

details::details-content {
  content-visibility: unset;
  display: block grid; }

/* 開閉の設定 */
@media (prefers-reduced-motion: no-preference) {
  details::details-content {
    transition-duration: 300ms;
    transition-property: grid-template-rows; } }
details:not([open])::details-content {
  grid-template-rows: 0fr; }

details[open]::details-content {
  grid-template-rows: 1fr; }

.content-wrap {
  overflow: hidden; }

.modAccordion {
  display: grid;
  grid-row-gap: 0.8rem; }
  @media screen and (width < 768px) {
    .modAccordion {
      padding-bottom: 55px; } }
  .modAccordion details {
    border: 2px solid var(--bg-color-dark);
    margin-bottom: 1rem;
    overflow: hidden; }
    @media screen and (width < 768px) {
      .modAccordion details {
        border-radius: 3px; } }
    @media print, screen and (768px <= width) {
      .modAccordion details {
        border-radius: 7px; } }
  .modAccordion details[open] summary > .icon::after {
    opacity: 0; }
  .modAccordion summary {
    display: grid;
    /* display: list-item;以外を指定してデフォルトの三角形アイコンを消す */
    column-gap: 5px;
    align-items: center;
    cursor: pointer;
    font-weight: bold;
    background-color: var(--bg-color-dark);
    color: #fff; }
    @media screen and (width < 768px) {
      .modAccordion summary {
        grid-template-columns: 1fr 1.5em;
        padding: 6px 15px 8px;
        font-size: 1.8rem; } }
    @media print, screen and (768px <= width) {
      .modAccordion summary {
        grid-template-columns: 1fr 1.5em;
        padding: 12px 24px;
        font-size: 2.6rem; } }
    .modAccordion summary .icon {
      display: block;
      position: relative;
      transform-origin: center 43%;
      transition: transform 0.4s; }
      .modAccordion summary .icon::before, .modAccordion summary .icon::after {
        content: "";
        position: absolute;
        display: block;
        width: 25px;
        height: 4px;
        background-color: #fff;
        border-radius: 2px; }
        @media screen and (width < 768px) {
          .modAccordion summary .icon::before, .modAccordion summary .icon::after {
            width: 16px;
            height: 3px; } }
        @media print, screen and (768px <= width) {
          .modAccordion summary .icon::before, .modAccordion summary .icon::after {
            width: 25px;
            height: 4px; } }
      .modAccordion summary .icon::before {
        left: 0; }
      .modAccordion summary .icon::after {
        right: 0;
        left: 0;
        transform: rotate(-90deg);
        transition: opacity 0.3s; }
  .modAccordion .content {
    transition: grid-template-rows 0.5s;
    margin-bottom: 2em; }
    @media screen and (width < 768px) {
      .modAccordion .content {
        padding: 0 1em; } }
    @media print, screen and (768px <= width) {
      .modAccordion .content {
        padding: 0 1.5em; } }
  .modAccordion .content-inner {
    overflow: hidden; }

/* =========================================================
 タブ
modTab 
========================================================= */
.modTab {
  margin-top: 1.2em; }
  @media screen and (width < 768px) {
    .modTab {
      margin-bottom: 15px; } }
  @media print, screen and (768px <= width) {
    .modTab {
      margin-bottom: 40px; } }
  .modTab__navTabs {
    display: flex;
    flex-wrap: wrap; }
    @media screen and (width < 768px) {
      .modTab__navTabs {
        column-gap: 5px; } }
    @media print, screen and (768px <= width) {
      .modTab__navTabs {
        column-gap: 10px;
        justify-content: center; } }
  @media screen and (width < 768px) {
    .modTab__navItem {
      width: calc((100% - 10px) / 3); } }
  @media print, screen and (768px <= width) {
    .modTab__navItem {
      width: fit-content; } }
  .modTab a.modTab__navLink {
    display: block;
    text-decoration: none;
    text-align: center;
    border-bottom: 2px solid #808080;
    transition: 0.3s ease-out; }
    @media screen and (width < 768px) {
      .modTab a.modTab__navLink {
        padding: 5px;
        font-size: 1.4rem; } }
    @media print, screen and (768px <= width) {
      .modTab a.modTab__navLink {
        padding: 10px 5px;
        font-size: 1.4rem; } }
    .modTab a.modTab__navLink:hover, .modTab a.modTab__navLink:active, .modTab a.modTab__navLink:focus, .modTab a.modTab__navLink.active {
      border-color: var(--brand-color); }
  .modTab__panel {
    display: none; }
    .modTab__panel.show {
      display: block; }
    .modTab__panel > *:first-child {
      margin-top: 0 !important; }

 /* =========================================================
 modCard 画像　＋　タイトル　インデックスページ用
========================================================= */
.modCardIndex {
  display: flex;
  flex-direction: column; }
  .modCardIndex__title {
    order: 2;
    font-weight: 500; }
    @media screen and (width < 768px) {
      .modCardIndex__title {
        text-align: center;
        font-size: 2.0rem; } }
    @media print, screen and (768px <= width) {
      .modCardIndex__title {
        font-size: 2.4rem; } }
  .modCardIndex__image {
    order: 1; }
    @media print, screen and (768px <= width) {
      .modCardIndex__image {
        margin-bottom: 5px; } }
    .modCardIndex__image img {
      max-width: 100%;
      height: auto; }

a.modCardIndex {
  text-decoration: none; }
  a.modCardIndex .modCardIndex__title {
    /*&::before{
    	@include iconFontA("\f138",900,0,0.3em);
    	color: var(--brand-text-color);
    	display: inline-block;
    	font-size: 0.8em;
    }*/ }
  a.modCardIndex .modCardIndex__image {
    overflow: hidden; }
    a.modCardIndex .modCardIndex__image img {
      transition: 0.3s ease-out; }
  a.modCardIndex:hover .modCardIndex__image img, a.modCardIndex:active .modCardIndex__image img, a.modCardIndex:focus .modCardIndex__image img, a.modCardIndex.hover .modCardIndex__image img {
    transform: scale(1.05, 1.05); }

 /* =========================================================
 modCard 画像 + タイトル　＋　説明テキスト
========================================================= */
.modCard {
  display: flex;
  flex-direction: column; }
  .modCard__title {
    order: 2;
    font-weight: 500;
    padding: 0 1rem; }
    @media screen and (width < 768px) {
      .modCard__title {
        font-size: 1.6rem;
        margin-bottom: 15px; } }
    @media print, screen and (768px <= width) {
      .modCard__title {
        font-size: 1.8rem; } }
  .modCard__image {
    order: 1; }
    @media screen and (width < 768px) {
      .modCard__image {
        margin-bottom: 5px; } }
    @media print, screen and (768px <= width) {
      .modCard__image {
        margin-bottom: 5px; } }
    .modCard__image img {
      max-width: 100%;
      height: auto; }
  .modCard__text {
    order: 3; }

a.modCard {
  text-decoration: none; }
  a.modCard .modCard__title {
    display: flex; }
    a.modCard .modCard__title::before {
      display: block;
      content: "+";
      color: var(--brand-color);
      margin-right: 10px; }
  a.modCard .modCard__image {
    overflow: hidden; }
    a.modCard .modCard__image img {
      transition: 0.3s ease-out; }
  a.modCard:hover .modCard__image img, a.modCard:active .modCard__image img, a.modCard:focus .modCard__image img, a.modCard.hover .modCard__image img {
    transform: scale(1.05, 1.05); }
  a.modCard:hover .modCard__title::before, a.modCard:active .modCard__title::before, a.modCard:focus .modCard__title::before, a.modCard.hover .modCard__title::before {
    transform: rotate(360deg);
    transition: 1s transform ease-in; }
  a.modCard[href^="http"] .modCard__title:after {
    font-family: "Font Awesome 6 Free";
    content: "";
    font-weight: 900;
    padding-left: 0.5rem;
    padding-right: 0; }

 /* =========================================================
 modCard02 画像 + タイトル　＋　説明テキスト
========================================================= */
.modCard02 {
  display: flex;
  flex-direction: column; }
  .modCard02__title {
    order: 2;
    font-weight: 500;
    padding: 0 5px; }
    @media screen and (width < 768px) {
      .modCard02__title {
        font-size: 1.6rem; } }
    @media print, screen and (768px <= width) {
      .modCard02__title {
        font-size: 1.8rem; } }
  .modCard02__image {
    order: 1; }
    .modCard02__image img {
      max-width: 100%;
      height: auto; }
  .modCard02__text {
    order: 3;
    padding: 0 5px;
    line-height: 1.4; }

a.modCard02 {
  text-decoration: none; }
  a.modCard02 .modCard02__image {
    overflow: hidden; }
    a.modCard02 .modCard02__image img {
      transition: 0.3s ease-out; }
  a.modCard02:hover .modCard02__image img, a.modCard02:active .modCard02__image img, a.modCard02:focus .modCard02__image img, a.modCard02.hover .modCard02__image img {
    transform: scale(1.05, 1.05); }

/* =========================================================
 modContact　お問い合わせ
========================================================= */
.modContact {
  background-image: url("../images/solution/bg-contact.jpg");
  background-size: cover;
  background-position: center; }
  @media screen and (width < 768px) {
    .modContact {
      margin-left: -15px;
      margin-right: -15px; } }
  @media print, screen and (768px <= width) {
    .modContact {
      height: 340px;
      display: flex;
      align-items: center; } }
  @media screen and (width < 768px) {
    .modContact__inner {
      padding: 50px 15px; } }
  @media print, screen and (768px <= width) {
    .modContact__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto; } }
  @media screen and (width < 768px) {
    .modContact__layout {
      text-align: center; } }
  @media print, screen and (768px <= width) {
    .modContact__layout {
      display: grid;
      grid-template-columns: 1fr 445px;
      grid-column-gap: 30px;
      align-items: center; } }
  .modContact__title {
    font-weight: 500; }
    @media screen and (width < 768px) {
      .modContact__title {
        font-size: 3.0rem;
        margin-bottom: 15px; } }
    @media print, screen and (768px <= width) {
      .modContact__title {
        font-size: 3.6rem;
        margin-bottom: 35px; } }
  .modContact__text {
    font-weight: 500; }
    @media screen and (width < 768px) {
      .modContact__text {
        font-size: 1.6rem; } }
    @media print, screen and (768px <= width) {
      .modContact__text {
        font-size: 1.8rem; } }
  @media screen and (width < 768px) {
    .modContact__button {
      width: 280px;
      margin-inline: auto;
      margin-top: 15px; } }
  @media print, screen and (768px <= width) {
    .modContact__button {
      width: 100%; } }
  .modContact__button a {
    display: block;
    border: 1px solid;
    border-radius: calc(1px / 0);
    text-decoration: none !important;
    text-align: center;
    font-weight: 500; }
    @media screen and (width < 768px) {
      .modContact__button a {
        padding: 10px;
        font-size: 1.6rem; } }
    @media print, screen and (768px <= width) {
      .modContact__button a {
        padding: 35px;
        font-size: 1.8rem; } }

.historyList {
  position: relative; }
  .historyList:before {
    display: block;
    content: "";
    position: absolute;
    bottom: 0;
    width: 1px;
    background-color: var(--brand-color); }
    @media screen and (width < 768px) {
      .historyList:before {
        top: 22px;
        left: 10px; } }
    @media print, screen and (768px <= width) {
      .historyList:before {
        top: 20px;
        left: 21px; } }
  .historyList__item {
    position: relative; }
    @media screen and (width < 768px) {
      .historyList__item {
        padding: 15px 0 0 25px; } }
    @media print, screen and (768px <= width) {
      .historyList__item {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 1rem;
        padding: 15px 50px; } }
    .historyList__item:first-child {
      padding-top: 0; }
  .historyList__time {
    display: flex;
    align-items: center; }
    @media screen and (width < 768px) {
      .historyList__time {
        margin-bottom: 3px; } }
    @media print, screen and (768px <= width) {
      .historyList__time {
        width: 217px; } }
    .historyList__time::before {
      position: absolute;
      display: block;
      content: "";
      width: 15px;
      height: 15px;
      background: var(--brand-color);
      border-radius: 50%;
      z-index: 1;
      margin-block: calc((1lh - 15px) / 2); }
      @media screen and (width < 768px) {
        .historyList__time::before {
          left: calc(((25px - 18px) / 2)); } }
      @media print, screen and (768px <= width) {
        .historyList__time::before {
          left: calc(((43px - 15px) / 2)); } }
    .historyList__time .ad {
      font-weight: 500;
      font-style: italic;
      font-size: 3.2rem;
      line-height: 1.0; }
      @media screen and (width < 768px) {
        .historyList__time .ad {
          margin-right: 15px; } }
      @media print, screen and (768px <= width) {
        .historyList__time .ad {
          margin-right: 28px; } }
  @media print, screen and (768px <= width) {
    .historyList__action {
      width: calc(100% - (1rem + 250px)); } }

/*------------------------------
ページネーション
--------------------------------*/
.pageNation {
  display: flex;
  justify-content: center;
  text-align: center; }
  @media screen and (width < 768px) {
    .pageNation {
      margin: 30px 0; } }
  @media print, screen and (768px <= width) {
    .pageNation {
      margin: 40px 0; } }
  .pageNation > li > a::after {
    content: none !important; }
  @media screen and (width < 768px) {
    .pageNation__item {
      padding: 0 2px; } }
  @media print, screen and (768px <= width) {
    .pageNation__item {
      padding: 0 5px; } }
  .pageNation__link {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    border: 1px solid #ccc;
    width: 40px;
    height: 40px;
    border-radius: 50%; }
    .pageNation__link.active {
      background-color: #ccc; }
    .pageNation__link.prev, .pageNation__link.next {
      width: 80px;
      height: 40px;
      border-radius: 20px;
      opacity: 0.6; }
    @media screen and (width < 768px) {
      .pageNation__link.prev {
        margin-right: 6px; } }
    @media print, screen and (768px <= width) {
      .pageNation__link.prev {
        margin-right: 10px; } }
    @media screen and (width < 768px) {
      .pageNation__link.next {
        margin-left: 6px; } }
    @media print, screen and (768px <= width) {
      .pageNation__link.next {
        margin-left: 10px; } }
  .pageNation a.pageNation__link:hover, .pageNation a.pageNation__link:focus, .pageNation a.pageNation__link:active, .pageNation a.pageNation__link.active {
    background-color: #ccc; }
  .pageNation a.pageNation__link.prev,
  .pageNation a.pageNation__link.next {
    opacity: 1.0; }

 /* =========================================================
 img-container 1枚画像用
========================================================= */
.img-container {
  text-align: center;
  margin: 0.8em 0; }
  @media screen and (width < 768px) {
    .img-container {
      width: 100%;
      margin: 25px auto; } }
  @media print, screen and (768px <= width) {
    .img-container {
      width: 100%;
      margin: 50px auto; } }
  @media print, screen and (768px <= width) {
    .img-container--sm {
      width: 80%; } }
  @media print, screen and (768px <= width) {
    .img-container--xs {
      width: 50%; } }

.pageNav {
  background-color: var(--bg-color-dark); }
  @media screen and (width < 768px) {
    .pageNav {
      margin-left: -15px;
      margin-right: -15px;
      padding: 30px 15px; } }
  @media print, screen and (768px <= width) {
    .pageNav {
      padding: 95px 0 105px; } }
  @media print, screen and (768px <= width) {
    .pageNav__inner {
      width: 1200px;
      padding: 0 45px;
      margin-inline: auto; } }

@media screen and (width < 768px) {
  .pagenavList {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-column-gap: 10px;
    grid-row-gap: 10px; } }
@media print, screen and (768px <= width) {
  .pagenavList {
    display: flex;
    column-gap: 50px; } }
.pagenavList a {
  display: flex;
  align-items: center;
  color: #fff !important;
  font-weight: 500;
  text-decoration: none; }
  @media print, screen and (768px <= width) {
    .pagenavList a {
      font-size: 1.8rem; } }
  .pagenavList a::before {
    display: block;
    content: "+";
    color: var(--brand-color);
    margin-right: 10px; }
  .pagenavList a:focus, .pagenavList a:hover, .pagenavList a:active {
    transform: scale(1.1);
    transition: 0.3s transform ease-in; }
    .pagenavList a:focus::before, .pagenavList a:hover::before, .pagenavList a:active::before {
      transform: rotate(360deg);
      transition: 1s transform ease-in; }

@media screen and (width < 768px) {
  .serviceNav {
    margin-left: -15px;
    margin-right: -15px; } }
@media print, screen and (768px <= width) {
  .serviceNav {
    height: 480px; } }

.servicenavList {
  display: grid; }
  @media print, screen and (768px <= width) {
    .servicenavList {
      height: 100%;
      grid-template-columns: repeat(2, 1fr); } }

a.servicenavLink {
  color: #fff !important;
  text-decoration: none; }
  a.servicenavLink span {
    color: var(--brand-color); }

.servicenavLink {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 10;
  overflow: hidden;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  font-weight: 500; }
  @media screen and (width < 768px) {
    .servicenavLink {
      font-size: 1.8rem;
      padding: 15px; } }
  @media print, screen and (768px <= width) {
    .servicenavLink {
      font-size: 2.4rem; } }
  @media screen and (width < 768px) {
    .servicenavLink span {
      font-size: 1.4rem; } }
  @media print, screen and (768px <= width) {
    .servicenavLink span {
      font-size: 1.6rem; } }
  .servicenavLink::before {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    background-color: rgba(63, 57, 55, 0.8);
    mix-blend-mode: multiply;
    z-index: -1; }
  .servicenavLink::after {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-size: cover;
    background-position: center;
    transition: 0.3s ease-out;
    z-index: -2; }
  .servicenavLink--si::after {
    background-image: url(../images/home/img-si.jpg); }
  .servicenavLink--system::after {
    background-image: url(../images/home/img-system.jpg); }
  .servicenavLink--network::after {
    background-image: url(../images/home/img-network.jpg); }
  .servicenavLink--mobile::after {
    background-image: url(../images/home/img-mobile.jpg); }
  .servicenavLink--docomo::after {
    background-image: url(../images/home/img-docomo.jpg); }
  .servicenavLink:hover::after, .servicenavLink:focus::after, .servicenavLink:active::after {
    transform: scale(1.1); }

.recruitNav {
  display: grid; }
  @media screen and (width < 768px) {
    .recruitNav {
      grid-row-gap: 80px;
      margin-top: 70px; } }
  @media print, screen and (768px <= width) {
    .recruitNav {
      grid-template-columns: repeat(3, 1fr);
      grid-column-gap: 30px;
      margin-top: 140px; } }

.recruitIndex {
  text-align: center;
  text-decoration: none !important;
  background-color: #fff;
  position: relative;
  z-index: 10; }
  @media screen and (width < 768px) {
    .recruitIndex {
      padding: 35px 0 20px; } }
  @media print, screen and (768px <= width) {
    .recruitIndex {
      padding: 35px 0 29px; } }
  .recruitIndex::before {
    content: "";
    background-color: #fff;
    width: 110px;
    aspect-ratio: 1 / 1;
    border-radius: calc(1px / 0);
    position: absolute;
    top: -47px;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1; }
  .recruitIndex::after {
    content: "";
    width: 30px;
    aspect-ratio: 1;
    clip-path: polygon(0 100%, 100% 0, 100% 100%);
    background-color: var(--brand-color);
    position: absolute;
    bottom: 0;
    right: 0; }
  .recruitIndex__icon {
    color: var(--brand-color);
    font-size: 4rem;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -40px; }
  .recruitIndex__title {
    font-weight: 500; }
    @media screen and (width < 768px) {
      .recruitIndex__title {
        font-size: 2.0rem; } }
    @media print, screen and (768px <= width) {
      .recruitIndex__title {
        font-size: 2.4rem; } }
  .recruitIndex__text {
    color: var(--brand-color);
    font-weight: 500; }
  .recruitIndex:active, .recruitIndex:focus, .recruitIndex:hover, .recruitIndex.hover {
    opacity: 0.7; }

.modLayout {
  display: grid; }
  @media screen and (width < 768px) {
    .modLayout {
      grid-row-gap: 30px; } }
  @media print, screen and (768px <= width) {
    .modLayout {
      grid-template-columns: 285px 1fr;
      grid-column-gap: 68px; } }
  @media screen and (width < 768px) {
    .modLayout + .modLayout {
      margin-top: 50px; } }
  @media print, screen and (768px <= width) {
    .modLayout + .modLayout {
      margin-top: 150px; } }

.anchorSolution {
  display: grid; }
  @media screen and (width < 768px) {
    .anchorSolution {
      grid-template-columns: repeat(2, 1fr);
      grid-column-gap: 10px;
      grid-row-gap: 6px; } }
  @media print, screen and (768px <= width) {
    .anchorSolution {
      grid-template-columns: repeat(4, 1fr);
      grid-column-gap: 30px;
      grid-row-gap: 12px; } }
  .anchorSolution a {
    display: grid;
    align-items: center;
    border: 1px solid #eee5e0;
    font-weight: 500;
    text-decoration: none;
    line-height: 1.4; }
    @media screen and (width < 768px) {
      .anchorSolution a {
        border-radius: 5px;
        grid-template-columns: 30px 1fr;
        grid-column-gap: 5px;
        padding: 5px;
        font-size: 1.2rem; } }
    @media print, screen and (768px <= width) {
      .anchorSolution a {
        border-radius: 10px;
        grid-template-columns: 47px 1fr;
        grid-column-gap: 15px;
        padding: 15px 20px; } }
    .anchorSolution a:hover, .anchorSolution a:focus, .anchorSolution a:active {
      text-decoration: underline; }

.solutionTitle {
  display: grid;
  align-items: center;
  font-weight: 500;
  line-height: 1.4; }
  @media screen and (width < 768px) {
    .solutionTitle {
      grid-template-columns: 50px 1fr;
      grid-column-gap: 10px;
      font-size: 1.8rem;
      margin: 40px 0 0px; } }
  @media print, screen and (768px <= width) {
    .solutionTitle {
      grid-template-columns: 90px 1fr;
      grid-column-gap: 10px;
      font-size: 3.0rem;
      margin: 60px 0 10px; } }

.philosophyTitle {
  font-weight: 500; }
  @media screen and (width < 768px) {
    .philosophyTitle {
      font-size: 2.6rem; } }
  @media print, screen and (768px <= width) {
    .philosophyTitle {
      font-size: 3.6rem; } }
  .philosophyTitle span {
    display: block; }
    @media screen and (width < 768px) {
      .philosophyTitle span {
        font-size: 1.8rem; } }
    @media print, screen and (768px <= width) {
      .philosophyTitle span {
        font-size: 2.4rem; } }

.philosophyContents01 {
  display: grid; }
  @media screen and (width < 768px) {
    .philosophyContents01 {
      grid-row-gap: 30px; } }
  @media print, screen and (768px <= width) {
    .philosophyContents01 {
      grid-row-gap: 105px; } }
  .philosophyContents01 dt {
    font-weight: 500;
    display: inline-flex;
    position: relative; }
    @media screen and (width < 768px) {
      .philosophyContents01 dt {
        font-size: 2.2rem;
        padding: 20px 25px;
        margin-bottom: 10px; } }
    @media print, screen and (768px <= width) {
      .philosophyContents01 dt {
        font-size: 2.6rem;
        padding: 40px 45px;
        margin-bottom: 13px; } }
    .philosophyContents01 dt::before {
      font-family: "Font Awesome 6 Free";
      content: "";
      font-weight: 900;
      padding-left: 0;
      padding-right: 0;
      color: var(--brand-color);
      position: absolute;
      left: 0; }
      @media screen and (width < 768px) {
        .philosophyContents01 dt::before {
          top: 5px; } }
      @media print, screen and (768px <= width) {
        .philosophyContents01 dt::before {
          top: 15px; } }
    .philosophyContents01 dt::after {
      font-family: "Font Awesome 6 Free";
      content: "";
      font-weight: 900;
      padding-left: 0;
      padding-right: 0;
      color: var(--brand-color);
      position: absolute;
      right: 0; }
      @media screen and (width < 768px) {
        .philosophyContents01 dt::after {
          bottom: 5px; } }
      @media print, screen and (768px <= width) {
        .philosophyContents01 dt::after {
          bottom: 7px; } }
  @media print, screen and (768px <= width) {
    .philosophyContents01 dd {
      width: 635px; } }

.philosophyContents02 {
  display: grid; }
  @media screen and (width < 768px) {
    .philosophyContents02 {
      grid-row-gap: 10px; } }
  @media print, screen and (768px <= width) {
    .philosophyContents02 {
      grid-row-gap: 20px; } }
  .philosophyContents02 div {
    background-color: #e7e1dc; }
    @media screen and (width < 768px) {
      .philosophyContents02 div {
        padding: 20px 15px; } }
    @media print, screen and (768px <= width) {
      .philosophyContents02 div {
        padding: 33px 28px 40px 37px; } }
  .philosophyContents02 dt {
    font-weight: 500;
    color: var(--brand-color); }
    @media screen and (width < 768px) {
      .philosophyContents02 dt {
        font-size: 2.0rem;
        margin-bottom: 5px; } }
    @media print, screen and (768px <= width) {
      .philosophyContents02 dt {
        font-size: 2.4rem;
        margin-bottom: 12px; } }
  .philosophyContents02 dd.copy {
    font-weight: 500; }
    @media screen and (width < 768px) {
      .philosophyContents02 dd.copy {
        font-size: 2.2rem;
        margin-bottom: 5px; } }
    @media print, screen and (768px <= width) {
      .philosophyContents02 dd.copy {
        font-size: 2.6rem;
        margin-bottom: 8px; } }
  .philosophyContents02 dd.text + .copy {
    margin-top: 25px; }

/* =========================================================
 サービス　テキストレイアウト　serviceLayout
========================================================= */
/* 画像右
--------------------------------------------------------- */
.serviceLayout {
  display: grid; }
  @media screen and (width < 768px) {
    .serviceLayout {
      grid-row-gap: 30px; } }
  @media print, screen and (768px <= width) {
    .serviceLayout {
      grid-template-columns: 1fr 445px;
      grid-column-gap: 60px; } }
  .serviceLayout__figcaption {
    text-align: center;
    margin-bottom: 0.3em;
    margin-top: 0.3em;
    font-weight: 500; }
    @media screen and (width < 768px) {
      .serviceLayout__figcaption {
        font-size: 1.8rem; } }
    @media print, screen and (768px <= width) {
      .serviceLayout__figcaption {
        font-size: 2.0rem; } }
    @media screen and (width < 768px) {
      .serviceLayout__figcaption span {
        font-size: 1.4rem; } }
    @media print, screen and (768px <= width) {
      .serviceLayout__figcaption span {
        font-size: 1.6rem; } }
  @media print, screen and (768px <= width) {
    .serviceLayout__text > *:first-child {
      margin-top: 0 !important; } }

.cardServiceIndex {
  display: grid;
  flex-direction: column;
  color: currentColor !important;
  text-decoration: none !important; }
  @media print, screen and (768px <= width) {
    .cardServiceIndex:nth-child(n+4) {
      border-top: none; } }
  .cardServiceIndex__image {
    order: 1;
    overflow: hidden; }
    .cardServiceIndex__image img {
      transition: 0.3s transform ease-in; }
    @media screen and (width < 768px) {
      .cardServiceIndex__image {
        height: max-content;
        margin-bottom: 5px; } }
    @media print, screen and (768px <= width) {
      .cardServiceIndex__image {
        margin-bottom: 10px; } }
  .cardServiceIndex__title {
    order: 2;
    margin-bottom: 4px; }
    @media print, screen and (768px <= width) {
      .cardServiceIndex__title {
        padding: 0 10px; } }
    .cardServiceIndex__title .sub {
      color: var(--brand-color);
      text-transform: capitalize; }
    .cardServiceIndex__title .main {
      font-weight: 500; }
      @media screen and (width < 768px) {
        .cardServiceIndex__title .main {
          font-size: 1.8rem; } }
      @media print, screen and (768px <= width) {
        .cardServiceIndex__title .main {
          font-size: 2.4rem; } }
  .cardServiceIndex:hover .cardServiceIndex__image img, .cardServiceIndex:focus .cardServiceIndex__image img, .cardServiceIndex:active .cardServiceIndex__image img {
    transform: scale(1.05); }

/* =========================================================
 modDetail  製品詳細　より詳しい製品情報を見る
========================================================= */
.modDetail {
  background-color: var(--bg-color-base); }
  @media screen and (width < 768px) {
    .modDetail {
      margin-top: 35px;
      padding: 30px 15px 40px !important; } }
  @media print, screen and (768px <= width) {
    .modDetail {
      margin-top: 65px;
      padding: 45px 65px 60px !important;
      width: 1110px;
      display: flex;
      align-items: center;
      justify-content: center; } }
  @media print, screen and (768px <= width) {
    .modDetail__layout {
      display: grid;
      grid-template-columns: 1fr 380px;
      grid-column-gap: 30px;
      align-items: center; } }
  .modDetail__title {
    display: flex;
    font-weight: 500; }
    @media screen and (width < 768px) {
      .modDetail__title {
        font-size: 2.0rem;
        margin-bottom: 5px; } }
    @media print, screen and (768px <= width) {
      .modDetail__title {
        font-size: 2.0rem;
        margin-bottom: 5px; } }
    .modDetail__title::before {
      content: "";
      background-color: var(--brand-color);
      border-radius: 3px; }
      @media screen and (width < 768px) {
        .modDetail__title::before {
          margin-right: 10px;
          width: 7px; } }
      @media print, screen and (768px <= width) {
        .modDetail__title::before {
          margin-right: 10px;
          width: 7px; } }
  @media screen and (width < 768px) {
    .modDetail__text {
      margin-bottom: 30px; } }
  @media screen and (width < 768px) {
    .modDetail__button {
      width: 280px;
      margin-inline: auto;
      margin-top: 10px; } }
  @media print, screen and (768px <= width) {
    .modDetail__button {
      width: 100%; } }
  .modDetail__button a {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid;
    border-radius: calc(1px / 0);
    text-decoration: none !important; }
    .modDetail__button a::before {
      display: block;
      content: "+";
      color: var(--brand-color);
      margin-right: 10px; }
    @media screen and (width < 768px) {
      .modDetail__button a {
        padding: 7px; } }
    @media print, screen and (768px <= width) {
      .modDetail__button a {
        padding: 7px; } }
    .modDetail__button a:focus, .modDetail__button a:hover, .modDetail__button a:active {
      border-color: var(--brand-color); }
      .modDetail__button a:focus::before, .modDetail__button a:hover::before, .modDetail__button a:active::before {
        transform: rotate(360deg);
        transition: 1s transform ease-in; }
  .modDetail__button + .modDetail__button {
    margin-top: 15px; }

/* =========================================================
 cardContact  お問い合わせ
========================================================= */
.cardContact {
  background-color: #f0ece9;
  display: grid;
  place-content: center;
  height: 100%;
  text-decoration: none !important;
  position: relative; }
  @media screen and (width < 768px) {
    .cardContact {
      grid-template-rows: 88px 1fr;
      padding: 29px 10px 20px; } }
  @media print, screen and (768px <= width) {
    .cardContact {
      grid-template-rows: 160px 1fr;
      padding: 70px 22px 30px; } }
  .cardContact__title {
    font-weight: 500;
    order: 2; }
    @media screen and (width < 768px) {
      .cardContact__title {
        font-size: 2.0rem;
        text-align: center; } }
    @media print, screen and (768px <= width) {
      .cardContact__title {
        font-size: 2.4rem; } }
  .cardContact__image {
    order: 1;
    margin-inline: auto; }
    @media screen and (width < 768px) {
      .cardContact__image {
        width: 111px;
        height: 101px; } }
    @media print, screen and (768px <= width) {
      .cardContact__image {
        width: 210px;
        height: 154px; } }
  .cardContact__text {
    position: absolute;
    font-weight: 500;
    background-color: var(--brand-color);
    border-radius: calc(1px / 0);
    padding: 3px 15px; }
    @media screen and (width < 768px) {
      .cardContact__text {
        top: -15px;
        left: 50%;
        transform: translateX(-50%);
        white-space: nowrap; } }
    @media print, screen and (768px <= width) {
      .cardContact__text {
        left: 22px;
        top: 25px; } }
  .cardContact:active, .cardContact:focus, .cardContact:hover, .cardContact.hover {
    opacity: 0.7; }

/* =========================================================
LINEWORKS
========================================================= */
.lw-bnr {
  display: block; }
  @media screen and (width < 768px) {
    .lw-bnr {
      width: 345px;
      margin-top: 30px; } }
  @media print, screen and (768px <= width) {
    .lw-bnr {
      width: 460px;
      margin-top: 50px; } }
  .lw-bnr:active, .lw-bnr:focus, .lw-bnr:hover, .lw-bnr.hover {
    opacity: 0.7; }
  .lw-bnr img {
    width: 100%;
    height: auto; }

.lineCat {
  display: flex;
  column-gap: 5px; }
  .lineCat li {
    width: 7em;
    padding: 2px 5px;
    font-size: 1.4rem;
    color: #fff;
    font-weight: 500;
    text-align: center;
    border-radius: 5px; }
    .lineCat li.free {
      background-color: #00C85F; }
    .lineCat li.standard {
      background-color: #00C85F; }
    .lineCat li.advanced {
      background-color: #00C85F; }
    .lineCat li.option {
      background-color: #bf4852; }

.ws-service__label-lite {
  background-color: #f3b300; }

.ws-service__label-lite:before {
  content: "\30E9\30A4\30C8"; }

.ws-service__label-basic {
  background-color: #00c73c; }

.ws-service__label-basic:before {
  content: "\30D9\30FC\30B7\30C3\30AF"; }

.ws-service__label-premium {
  background-color: #796dd7; }

.ws-price__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center; }

.ws-price__item {
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #cacaca;
  border-radius: .2em;
  background-color: #fff; }

.ws-price__item:nth-child(n+3) {
  margin-top: 5em; }

.ws-price__item--label {
  display: none; }

.ws-price__item--lite .ws-price__spec-item:before {
  content: ""; }

.ws-price__item--lite .ws-price__spec-item--share {
  letter-spacing: -.03em; }

.ws-price__item--lite .ws-price__spec-item--share02 {
  letter-spacing: -.03em; }

.ws-price__item--lite .ws-price__spec-item--available:before {
  background-image: url("../images/service/icon-line-lite.png");
  background-color: #00C85F;
  width: 1em;
  height: 1em;
  border-radius: calc(1px / 0);
  margin: 0 0.5em; }

.ws-price__item--lite .ws-price__spec-item--drive, .ws-price__item--lite .ws-price__spec-item--mail {
  display: none; }

.ws-price__item--free .ws-price__detail-list {
  background-color: #999; }

.ws-price__item--free .ws-price__spec-item:before {
  content: ""; }

.ws-price__item--free .ws-price__spec-item--available:before {
  background-image: url("../images/service/icon-line-free.png");
  background-color: #00C85F;
  width: 1em;
  height: 1em;
  border-radius: calc(1px / 0);
  margin: 0 0.5em; }

.ws-price__item--basic .ws-price__spec-item:before {
  content: ""; }

.ws-price__item--basic .ws-price__spec-item--available:before {
  background-image: url("../images/service/icon-line-basic.png");
  background-color: #00C85F;
  width: 1em;
  height: 1em;
  border-radius: calc(1px / 0);
  margin: 0 0.5em; }

.ws-price__item--premium .ws-price__spec-item:before {
  content: ""; }

.ws-price__item--premium .ws-price__spec-item--available:before {
  background-image: url("../images/service/icon-line-premium.png");
  background-color: #00C85F;
  width: 1em;
  height: 1em;
  border-radius: calc(1px / 0);
  margin: 0 0.5em; }

.ws-price__detail-item {
  display: block;
  box-sizing: border-box;
  text-align: center;
  width: 100%; }

.ws-price__detail-item--name {
  color: #fff;
  background-color: #00C85F;
  font-size: 2.0rem;
  font-weight: 700;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  height: 2.25em; }

.ws-price__detail-item--price {
  padding: 2em 0; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price {
    height: 11.35402vw;
    padding: 0; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price {
    height: 117px;
    padding: 0; } }
.ws-price__detail-item--price .mobile-only {
  font-size: 1.5rem; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .mobile-only {
    display: none; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .mobile-only {
    display: none; } }
.ws-price__detail-item--price .wrap {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  box-sizing: border-box;
  padding-left: 2em;
  padding-right: 2em; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .wrap {
    padding: 0; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .wrap {
    padding: 0; } }
.ws-price__detail-item--price .wrap:after {
  content: "";
  width: 100%;
  padding-bottom: 1em;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15); }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .wrap:after {
    display: none; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .wrap:after {
    display: none; } }
.ws-price__detail-item--price .month, .ws-price__detail-item--price .year {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 100%; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .month .price, .ws-price__detail-item--price .year .price {
    font-family: Open Sans; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .month .price, .ws-price__detail-item--price .year .price {
    font-family: Open Sans; } }
.ws-price__detail-item--price .year {
  height: 3.6em; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .year {
    height: 7.37526vw;
    border-bottom: 1px solid rgba(0, 0, 0, 0.15); } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .year {
    height: 76px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.15); } }
.ws-price__detail-item--price .year .price {
  font-size: 1.8rem;
  font-weight: 700; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .year .price {
    font-size: 2.6rem;
    font-weight: 400;
    margin-left: .48521vw;
    margin-right: .48521vw; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .year .price {
    font-size: 3.4rem;
    font-weight: 400;
    margin-left: 5px;
    margin-right: 5px;
    font-size: 34px; } }
.ws-price__detail-item--price .year .prefix, .ws-price__detail-item--price .year .suffix {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .year .prefix, .ws-price__detail-item--price .year .suffix {
    font-size: 1.2rem;
    font-weight: 400; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .year .prefix, .ws-price__detail-item--price .year .suffix {
    font-size: 1.25em;
    font-weight: 400;
    font-size: 15px; } }
.ws-price__detail-item--price .year .suffix:after {
  content: "\FF08\5E74\984D\30D7\30E9\30F3\FF09"; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .year .suffix:after {
    display: none; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .year .suffix:after {
    display: none; } }
.ws-price__detail-item--price .month {
  height: 3em; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .month {
    height: 3.88172vw; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .month {
    height: 40px; } }
.ws-price__detail-item--price .month .price {
  font-size: 1.5rem; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .month .price {
    font-size: 1.5rem;
    margin-left: .29113vw;
    margin-right: .29113vw; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .month .price {
    font-size: 2.0rem;
    margin-left: 3px;
    margin-right: 3px;
    font-size: 20px; } }
.ws-price__detail-item--price .month .prefix, .ws-price__detail-item--price .month .suffix {
  display: inline-block;
  font-size: 1.4rem; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .month .prefix, .ws-price__detail-item--price .month .suffix {
    font-size: 1.0rem; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .month .prefix, .ws-price__detail-item--price .month .suffix {
    font-size: 1.3rem;
    font-size: 13px; } }
.ws-price__detail-item--price .month .suffix:after {
  content: "\FF08\6708\984D\30D7\30E9\30F3\FF09"; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--price .month .suffix:after {
    display: none; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--price .month .suffix:after {
    display: none; } }
.ws-price__detail-item--desc {
  font-size: 1.1rem;
  font-weight: 700;
  text-align: left;
  box-sizing: border-box;
  padding: 0 1.5em 2em;
  width: 100%; }

@media only screen and (min-width: 641px) {
  .ws-price__detail-item--desc {
    height: 18em; } }
@media only screen and (min-width: 980px) {
  .ws-price__detail-item--desc {
    height: 18em; } }
.ws-price__detail-item--desc > span {
  position: relative;
  display: block;
  padding-left: 1em;
  width: 100%;
  box-sizing: border-box; }

.ws-price__detail-item--desc > span:before {
  content: "\30FB";
  display: inline-block;
  position: absolute;
  left: 0;
  top: 0; }

.ws-price__spec-list {
  padding: 2em 0; }

.ws-price__spec-item {
  display: none;
  min-height: 2em;
  box-sizing: border-box;
  padding: .3em 1.6em;
  color: #333;
  text-align: left;
  font-size: 1.1rem; }

@media only screen and (min-width: 641px) {
  .ws-price__spec-item {
    font-size: 1.1rem;
    height: 4.85214vw; } }
@media only screen and (min-width: 980px) {
  .ws-price__spec-item {
    font-size: 1.16em;
    height: 50px;
    font-size: 14px; } }
.ws-price__spec-item:after {
  display: inline-block;
  vertical-align: middle;
  white-space: pre; }

@media only screen and (min-width: 641px) {
  .ws-price__spec-item--talk, .ws-price__spec-item--talk01 {
    height: 7.76343vw; } }
@media only screen and (min-width: 980px) {
  .ws-price__spec-item--talk, .ws-price__spec-item--talk01 {
    height: 80px; } }
.ws-price__spec-item--talk:after {
  content: "\30C8\30FC\30AF\A\FF08\97F3\58F0/\30D3\30C7\30AA\901A\8A71\3001\753B\9762\5171\6709\3001\30CE\30FC\30C8\3001\4E88\5B9A\3001\A\30D5\30A9\30EB\30C0\FF09";
  display: inline; }

@media only screen and (min-width: 641px) {
  .ws-price__spec-item--talk:after {
    display: inline-block;
    text-align: center;
    content: "\30C8\30FC\30AF\A\FF08\97F3\58F0/\30D3\30C7\30AA\901A\8A71\3001\753B\9762\5171\6709\3001\A\30CE\30FC\30C8\3001\4E88\5B9A\3001\30D5\30A9\30EB\30C0\FF09"; }

  .ws-price__spec-item--talk01:after {
    display: none; } }
@media only screen and (min-width: 980px) {
  .ws-price__spec-item--talk, .ws-price__spec-item--talk01:after {
    display: inline-block;
    text-align: center;
    content: "\30C8\30FC\30AF\A\FF08\97F3\58F0/\30D3\30C7\30AA\901A\8A71\3001\753B\9762\5171\6709\3001\A\30CE\30FC\30C8\3001\4E88\5B9A\3001\30D5\30A9\30EB\30C0\FF09"; } }
.ws-price__spec-item--home:after {
  content: "\30DB\30FC\30E0   (\63B2\793A\677F)"; }

.ws-price__spec-item--address:after {
  content: "\30A2\30C9\30EC\30B9\5E33   (\7D44\7E54\5BFE\5FDC\578B)"; }

.ws-price__spec-item--mail:after {
  content: "\30E1\30FC\30EB"; }

.ws-price__spec-item--calendar:after {
  content: "\30AB\30EC\30F3\30C0\30FC"; }

.ws-price__spec-item--form:after {
  content: "\30A2\30F3\30B1\30FC\30C8"; }

.ws-price__spec-item--drive:after {
  content: "Drive"; }

.ws-price__spec-item--security:after {
  content: "\7BA1\7406\30FB\30BB\30AD\30E5\30EA\30C6\30A3\6A5F\80FD"; }

.ws-price__spec-item--security01:after {
  display: none; }

.ws-price__spec-item--monitoring:after {
  content: "\76E3\67FB\30ED\30B0\30FB\30E2\30CB\30BF\30EA\30F3\30B0"; }

.ws-price__spec-item--monitoring01:after {
  display: none; }

.ws-price__spec-item--sla:after {
  content: "SLA\4FDD\8A3C\FF0A"; }

.ws-price__spec-item--archive:after {
  content: "\30A2\30FC\30AB\30A4\30D6"; }

.ws-price__spec-item--share {
  letter-spacing: -.01em;
  border-bottom: 1px solid #eee; }

.ws-price__spec-item--share02 {
  letter-spacing: -.01em;
  border-bottom: 1px solid #eee; }

.ws-price__spec-item--available {
  display: block; }

.ws-price__spec-item--available:before {
  content: "";
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  width: 1.2em;
  height: 2em;
  background-position: 0 50%;
  background-repeat: no-repeat;
  background-size: .5em .5em; }

.ws-price__spec-item--drive:after, .ws-price__spec-item--mail:after {
  display: none; }

.ws-price__annotation {
  font-size: 1.1em;
  line-height: 2em;
  color: #8c8c8c;
  padding: 2em 0 5em; }

.ws-price__trial {
  position: relative;
  text-align: center;
  margin: 3em 0 5em; }

.ws-price__trial .ws-price__btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  width: 100%;
  height: 3em;
  font-size: 1.2em;
  color: #fff;
  background-color: #00c73c;
  border-radius: .2em;
  position: relative; }

.ws-price__qna {
  position: relative;
  padding-top: 5em;
  padding-bottom: 5em; }

.ws-price__sub-head {
  color: #333;
  font-size: 2em;
  margin-bottom: 1em; }

.ws-price__sub-head > span {
  display: inline-block; }

.ws-price__qna-list {
  position: relative;
  border-top: 1px solid #333;
  border-bottom: 1px solid #333;
  margin: 0; }

.ws-price__qna-term {
  position: relative;
  padding: 1em 0;
  color: #000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 1.3em;
  font-weight: 700; }

.ws-price__qna-term:after {
  content: "";
  display: inline-block;
  width: 4.5em;
  -webkit-align-self: stretch;
  -ms-flex-item-align: stretch;
  -ms-grid-row-align: stretch;
  align-self: stretch;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  cursor: pointer;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: 1.5em .75em;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAARCAYAAADKZhx3AAABi0lEQVRIibXUv0tWYRjG8c85/iAk8N+xTfxVClLQoItQwzvYoNAQORgUL9ogSFAoFBjkkIEWuLi52ZSLW0EtDaYuQoUIosO5jaO96jnle8HhwH1fz/U95+Z5nqRarSYYwWvsqq9acRfPGvEATzGAHvysE/QqVtCGKylmsY5rWEZLHaAtkd0WrJlUNt4b2EA7FtF8idBmLEX2RrB202huoxtforGApkuANuEdrkd2T7CkOdMPdOAbbuENGv4D2hAZNyOzA5vHzfSU+Tu64j2Al0j+AZrgVWTkM//oNBi+ohNbsq3/vCQ8wQvciYzOyDyhWmD4HF+5g3uYKgGewnCs7Yqsv3QWmNwOxH08LgB9Et78Samp88DwCX34hUd4eI53DOPh7Y21Z+oiMKyhH78xidEanlFMhKcfHy8KLQKGVdzGPqZRyfUqUdsPz2qRwMaCYLJ7dlB2IcxgL+qzOJAdnZWiYWXA8B5DmMdc1A6j9qFMUNFR5/VWNt40nkrUSqnsHx9rTjbeQ9m1WFpHcPNYpPKhzxMAAAAASUVORK5CYII=");
  -webkit-transform: rotate(0);
  transform: rotate(0);
  transition: transform .2s ease-out 0; }

.ws-price__qna-term--open:after {
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
  transition: transform .2s ease-out 0; }

.ws-price__qna-term--open + .ws-price__qna-definition {
  height: auto;
  border-top: 1px solid #ddd;
  padding: 1em 0; }

.ws-price__qna-definition {
  color: #737373;
  font-size: 1.2em;
  line-height: 2em;
  height: 0;
  overflow: hidden;
  margin-left: 0; }

.ws-price__qna-definition + .ws-price__qna-term {
  border-top: 1px solid #ddd; }

.ws-price__box {
  margin: 3em 0;
  text-align: right; }

.ws-price__link {
  color: #157efb;
  font-size: 1.4em; }

.ws-price__link, .ws-price__link:link {
  text-decoration: underline; }

@media only screen and (max-width: 320px) {
  .ws-price {
    width: 320px; } }
@media only screen and (min-width: 641px) {
  .ws-price__anchor {
    margin-bottom: 3em; }

  .ws-price__anchor p {
    font-size: 1.5em; }

  .ws-price__anchor p a {
    color: #157efb;
    text-decoration: underline; }

  .ws-price__anchor-block {
    margin-top: -10em;
    padding-top: 10em; }

  .ws-price__list {
    text-align: center;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-align-self: stretch;
    -ms-flex-item-align: stretch;
    -ms-grid-row-align: stretch;
    align-self: stretch; }

  .ws-price__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    border: none;
    width: 23.47%;
    box-sizing: border-box;
    border-radius: 0; }

  .ws-price__item:nth-child(n+2) {
    border-left: 1px solid #cacaca; }

  .ws-price__item:nth-child(n+3) {
    margin-top: 0; }

  .ws-price__item--label {
    width: 29.6%;
    background-color: #f6f6f6; }

  .ws-price__item--label .ws-price__detail-item {
    font-weight: 400;
    color: #4c4c4c;
    text-align: center;
    background-color: #f6f6f6; }

  .ws-price__item--label .ws-price__detail-item--name span {
    font-size: .73em; }

  .ws-price__item--label .ws-price__detail-item--price {
    position: relative;
    padding: 0;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row; }

  .ws-price__item--label .ws-price__detail-item--price > div {
    width: 50%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    box-sizing: border-box; }

  .ws-price__item--label .ws-price__detail-item--price > div:first-child {
    border-right: 1px solid #ddd; }

  .ws-price__item--label .ws-price__detail-item--price > div:first-child > span {
    font-size: 1.4rem; }

  .ws-price__item--label .ws-price__detail-item--price .month, .ws-price__item--label .ws-price__detail-item--price .year {
    font-weight: 400; } }
@media only screen and (min-width: 641px) and (min-width: 641px) {
  .ws-price__item--label .ws-price__detail-item--price .month .plan, .ws-price__item--label .ws-price__detail-item--price .year .plan {
    font-size: 1.2rem; } }
@media only screen and (min-width: 641px) and (min-width: 980px) {
  .ws-price__item--label .ws-price__detail-item--price .month .plan, .ws-price__item--label .ws-price__detail-item--price .year .plan {
    font-size: 1.33em;
    font-size: 16px; } }
@media only screen and (min-width: 641px) {
  .ws-price__item--label .ws-price__spec-item:after {
    display: block; }

  .ws-price__item--lite {
    background-color: #fff; }

  .ws-price__item--basic {
    background-color: #fff; }

  .ws-price__item--premium {
    background-color: #fff; }

  .ws-price__item--lite .ws-price__spec-item:before {
    content: ""; }

  .ws-price__item--lite .ws-price__spec-item--drive, .ws-price__item--lite .ws-price__spec-item--mail {
    display: block; }

  .ws-price__item--free .ws-price__spec-item:before, .ws-price__item--basic .ws-price__spec-item:before, .ws-price__item--premium .ws-price__spec-item:before {
    content: ""; }

  .ws-price__detail-list {
    border-top: 3px solid #cacaca;
    border-bottom: 1px solid #cacaca; }

  .ws-price__detail-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    box-sizing: border-box;
    font-weight: 400; }

  .ws-price__detail-item:nth-child(2) {
    border-top: 1px solid #cacaca; }

  .ws-price__detail-item:nth-child(n+3) {
    border-top: 1px solid rgba(0, 0, 0, 0.15); }

  .ws-price__detail-item--name {
    color: #fff;
    font-size: 1.6rem;
    height: 2.05em; }

  .ws-price__detail-item--desc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    font-size: 1.0rem;
    text-align: left;
    box-sizing: border-box;
    padding: 1.33em 1em; }

  .ws-price__detail-item--desc > span {
    position: relative;
    display: block;
    padding-left: 1em; }

  .ws-price__detail-item--desc > span:before {
    content: "\30FB";
    display: inline-block;
    position: absolute;
    left: 0;
    top: 0; }

  .ws-price__spec-list {
    padding: 0;
    border-top: 1px solid #cacaca;
    border-bottom: 3px solid #cacaca; }

  .ws-price__spec-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    box-sizing: border-box;
    color: #333;
    padding: 0; }

  .ws-price__spec-item em {
    display: none; }

  .ws-price__spec-item span {
    display: block;
    text-align: center; }

  .ws-price__spec-item:after {
    display: none; }

  .ws-price__spec-item:before {
    display: block; }

  .ws-price__spec-item--available:before {
    content: "";
    display: block;
    text-align: center;
    width: 100%;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 1em; }

  .ws-price__spec-item--share {
    height: 5em; }

  .ws-price__spec-item--mail {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 5em;
    position: relative;
    padding-left: 0; }

  .ws-price__spec-item--mail:before {
    position: relative;
    left: 0; }

  .ws-price__spec-item--drive {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 5em;
    position: relative;
    padding-left: 0; }

  .ws-price__spec-item--drive:before {
    position: relative;
    left: 0; }

  .ws-price__annotation {
    font-size: 1em;
    padding-bottom: 7.5em; }

  .ws-price__qna {
    position: relative;
    padding-top: 7.5em;
    padding-bottom: 7.5em; }

  .ws-price__sub-head {
    color: #333;
    font-size: 2.5em;
    margin-bottom: 1em; }

  .ws-price__qna-list {
    position: relative;
    border-top: 1px solid #333;
    border-bottom: 1px solid #333; }

  .ws-price__qna-term {
    position: relative;
    font-size: 1.16em;
    line-height: 2em;
    min-height: 3.5em;
    box-sizing: border-box;
    font-weight: 700;
    color: #000;
    padding: 1em 0 0 5em; }

  .ws-price__qna-term:before {
    content: "";
    display: inline-block;
    position: absolute;
    width: 4.25em;
    height: 4.42em;
    top: 0;
    left: 0;
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAARCAYAAAACCvahAAABEUlEQVQ4jYWToZKDQBBEH1REJBKZqjaRSD4BGXmSzzoZeRKZT0CexEwVEonEcSK7qckSuK5aM9O9NdvTm63rSgpJV6BMyoOZTb6QebGkCmiA8+bGJ0agM7P5TSypAeodkccC3M1syt2YdUJ4AHfgBxhc7wx8AZxCoXHNGfg2s8XVBkm14xWSqlxSCRSO+EiEAJhZHy6OuObAJSH5EVP8pmLv7Hgg3PTzf8iHSMXFR9ZO/wT41BSSihgCgGBow3N1F8edcrbvfK1NUgG0QdQCleMNeVjLm4uSbpKikXFt3tgZ6GNI4kjxTVU4I59z3pvZ4rNdAje2v2kPXZZ+yRDDKrlkDlOUrt5vxEcIPrTAZGbdH0A5Y9XLuhUGAAAAAElFTkSuQmCC") no-repeat 50% 50%; }

  .ws-price__qna-term:after {
    content: "";
    display: none;
    height: 1em;
    border-bottom: 1px solid #e0e0e0; }

  .ws-price__qna-definition {
    position: relative;
    font-size: 1.16em;
    line-height: 2em;
    min-height: 3.5em;
    box-sizing: border-box;
    height: auto;
    color: #6a6a6a;
    padding: 1em 0 2.5em 5em; }

  .ws-price__qna-definition:before {
    content: "";
    display: inline-block;
    position: absolute;
    width: 4.25em;
    height: 4em;
    top: 0;
    left: 0;
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAsElEQVQ4jZWTUQ0DIRBEX5v+9yRUwkmohEpAQqVUwko4CScBCUioA/pxkC6UBTrJJsewMyyT44SNW6qMkGoaGxBVyT/ipRJH4J34AmfDwDW4K/CYncCrk4P69jPilXL01roLUc1b4nSg0hMvHGHlZpd4xyBMjMaR8Q90eL1qhlmHNaoVyv/AHMvAsyb0HcUQCe2MivAicDcM6mu6vBEs5wb0pP7C8WQD36e6DwxeesIPS9NdKt5v4/gAAAAASUVORK5CYII=") no-repeat 50% 50%; }

  .ws-price__qna-definition + .bs-price__qna-term {
    border-top: 1px solid #e0e0e0; }

  .ws-price__trial {
    position: relative;
    text-align: center;
    margin: 3em 0 5em; }

  .ws-price__trial .ws-price__btn {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    width: 18em;
    height: 2.5em;
    font-size: 1.66em;
    color: #fff;
    background-color: #00c73c;
    border-radius: .2em;
    position: relative;
    margin: 0 auto; } }
@media only screen and (min-width: 980px) {
  .ws-price__wrapper {
    width: 980px;
    margin: 0 auto;
    padding-left: 0;
    padding-right: 0; }

  .ws-price__detail-item--desc {
    font-size: 1.2rem; }

  .ws-price__detail-item--name {
    font-size: 2.1rem; } }
@media screen and (width < 768px) {
  .mouse-stalker {
    display: none; } }
@media print, screen and (768px <= width) {
  .mouse-stalker {
    pointer-events: none;
    /* Make it transparent to clicks */
    position: fixed;
    top: 0;
    left: 0;
    width: 30px;
    height: 30px;
    background-color: #fff;
    /* Base color for inversion */
    border-radius: 50%;
    z-index: 9999;
    mix-blend-mode: difference;
    /* This creates the inverted color effect */
    transition: transform 0.1s ease-out, width 0.3s ease, height 0.3s ease;
    transform: translate(-50%, -50%);
    will-change: transform; } }

/* Hover effect classes */
.mouse-stalker.active {
  width: 50px;
  height: 50px; }
