/* Zen Maru Gothic の定義。これと併せて、function.php 等で head 要素内にフォントファイルをプレロードするlinkも付けること。 */
@font-face {
  font-family: "Zen Maru Gothic";
  src: url("../fonts/Zen_Maru_Gothic/ZenMaruGothic-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
  line-height: 1.75;
}

/** ***********************************************************
google reCaptcha アイコンを非表示にする

！ただし、2つのリンクを含む次の文章を、お問い合わせフォームなどに載せなければならないので注意！

「このサイトは reCAPTCHA によって保護されており、Google の<a href="https://policies.google.com/privacy" target="_blank">プライバシーポリシー</a>と
<a href="https://policies.google.com/terms" target="_blank">利用規約</a>が適用されます。」
*/
.grecaptcha-badge {
  visibility: hidden;
}

/** ***********************************************************
Contact form 7 のスタイルを微調整。
*/
/* input(submit type を除く) と text-area は全幅  */
input.wpcf7-form-control:not(.wpcf7-submit),
textarea.wpcf7-form-control {
  width: 100%;
  display: block;
}

/* input(text type) のフォントサイズを大きく。最大幅も指定 */
input.wpcf7-form-control.wpcf7-text {
  font-size: 18px;
  max-width: 640px;
}

/* select の高さをテキストエリアと合わせる */
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-select {
  height: 48px;
}

/*
カスタムロゴ(get_custom_logo())の出力タグのスタイル。
テーマサポートでcustom-logoを有効化し、管理画面の「外観」→「カスタマイズ」→「サイト基本情報」から画像を登録しなければならない。
*/
.custom-logo-link {
  display: block;
  width: 100%;
  height: 100%;
}
.custom-logo-link > .custom-logo {
  display: block;
  width: 100%;
  height: auto;
}

/** ************************************************************
wordpress 標準のページネーションのスタイル
*/
.pagination {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: center;
}
.nav-links {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.5rem;
}
/* ページ番号基礎 */
.page-numbers {
  text-decoration-line: none;
  font-weight: bold;
  font-size: 1rem;
  display: grid;
  place-items: center;
  width: 48px;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 24px;
  background-color: var(--bs-textSecondary);
  color: white;
}
/* カレントなページ番号 */
.page-numbers.current {
  background-color: white;
  color: var(--bs-textSecondary);
  border: 1px solid var(--bs-textSecondary);
}

/** ************************************************************
グローバルヘッダーの、グローバルなロゴマーク h1
*/
.ly_logoMark {
  display: block;
  width: 125px;
  height: auto;
  font-size: 1rem;
}

@media (min-width: 992px) {
  .ly_logoMark {
    width: 170px;
  }
}

/*
ヘッダーナビゲーションメニューの a のスタイル
*/
.ly_HeaderNavMenu a,
.js_topFixedMenuPanel a {
  color: inherit;
  text-decoration: none;
  position: relative;
}
.ly_HeaderNavMenu a[aria-current="page"],
.js_topFixedMenuPanel a[aria-current="page"] {
  text-decoration: underline;
}
/* 下線のアニメーション用の疑似要素 */
.ly_HeaderNavMenu a::after,
.js_topFixedMenuPanel a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.ly_HeaderNavMenu a:not([aria-current="page"]):hover::after,
.js_topFixedMenuPanel a:not([aria-current="page"]):hover::after {
  transform: scaleX(1);
}

/*
ヘッダーメニューのサブメニューのスタイル
*/

/* サブメニューの親 */
.ly_HeaderNavMenu li.menu-item-has-children,
.js_topFixedMenuPanel li.menu-item-has-children {
  position: relative;
}
/* サブメニューの親項目のアンカーの矢印 */
.ly_HeaderNavMenu li.menu-item-has-children > a::before,
.js_topFixedMenuPanel li.menu-item-has-children > a::before {
  content: "▼";
  position: absolute;
  font-size: 0.6rem;
  top: 50%;
  right: -0.6rem;
  transform: translateY(-50%);
}
/* サブメニューのパネル */
.ly_HeaderNavMenu li.menu-item-has-children > ul.sub-menu,
.js_topFixedMenuPanel li.menu-item-has-children > ul.sub-menu {
  background-color: none;
  list-style: none;
  padding-inline: 0.5rem;
  padding-block: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
/* アンカー */
.ly_HeaderNavMenu li.menu-item-has-children > ul.sub-menu > li > a,
.js_topFixedMenuPanel li.menu-item-has-children > ul.sub-menu > li > a {
  text-decoration: none !important;
  display: inline-block;
  width: max-content;
}
@media (min-width: 1024px) {
  /* サブメニューの親項目のアンカーの矢印 */
  .ly_HeaderNavMenu li.menu-item-has-children > a::before,
  .js_topFixedMenuPanel li.menu-item-has-children > a::before {
    display: inline-block;
  }
  /* サブメニューのパネル */
  .ly_HeaderNavMenu li.menu-item-has-children > ul.sub-menu,
  .js_topFixedMenuPanel li.menu-item-has-children > ul.sub-menu {
    background-color: #fff9;
    /* border: 1px dotted gray; */
    position: absolute;
    /* width: 7rem; */
    visibility: hidden;
    opacity: 0;
    transition:
      opacity 0.3s,
      visibility 0.3s;
  }
  /* サブメニューの表示 */
  .ly_HeaderNavMenu li.menu-item-has-children:hover > ul.sub-menu,
  .js_topFixedMenuPanel.js_isActive li.menu-item-has-children:hover > ul.sub-menu {
    opacity: 1;
    visibility: visible;
  }
}

/*
ドロワーメニュー関連スタイル
*/
.bl_drawerMenuButton {
  width: 72px;
  aspect-ratio: 1/1;
  border-bottom: 1px solid white;
  border-left: 1px solid white;
  display: grid;
  place-items: center;
}

/* ドロワーメニューのボタンのバー部分 */
.bl_drawerMenuButton_bars {
  display: block;
  width: 50%;
  height: auto;
  aspect-ratio: 1 / 1;
  position: relative;
  /* bar の移動距離のための変数 */
  --bars-translate-y: 10.5px;
}

/* バーの共通スタイル */
.bl_drawerMenuButton_bars > span {
  position: absolute;
  height: 2px;
  width: 100%;
  left: 0;
  right: 0;
  background-color: white;
}

.bl_drawerMenuButton_bars > span {
  transition:
    transform 0.2s ease-in-out,
    opacity 0.2s ease-in-out;
}
/* バーの上段 */
.bl_drawerMenuButton_bars > span:nth-child(1) {
  top: 0;
}
.bl_drawerMenuButton[aria-expanded="true"] > .bl_drawerMenuButton_bars > span:nth-child(1) {
  transform: translate(0, var(--bars-translate-y)) rotate(45deg);
}

/* バーの中段 */
.bl_drawerMenuButton_bars > span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}
.bl_drawerMenuButton[aria-expanded="true"] > .bl_drawerMenuButton_bars > span:nth-child(2) {
  opacity: 0;
}

/* バーの下段 */
.bl_drawerMenuButton_bars > span:nth-child(3) {
  bottom: 0;
}
.bl_drawerMenuButton[aria-expanded="true"] > .bl_drawerMenuButton_bars > span:nth-child(3) {
  transform: translate(0, calc(-1 * var(--bars-translate-y))) rotate(-45deg);
}

/* ドロワーメニューボタンのスタイル終了 */

/*
ドロワーメニューのパネル。ヘッダーメニューも兼ねる。
*/
.bl_drawerMenuPanel {
  position: fixed;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-block: 3rem;
  background-color: #fffc;
  transition:
    opacity 0.2s ease-in-out,
    visibility 0.2s ease-in-out,
    transform 0.2s ease-in-out;
}

/* アクティブ */
.bl_drawerMenuPanel.js_isActive {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

@media (min-width: 1024px) {
  .bl_drawerMenuPanel {
    position: static;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    height: auto;
    padding-block: 0;
    background-color: transparent;
    transition: none;
  }
}

/*
ドロワーメニューパネル
*/
.ly_drawerMenuPanel {
  position: fixed;
  /* z-index: 1; */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-block: 3rem;
  background-color: #fffc;
  transition:
    opacity 0.2s ease-in-out,
    visibility 0.2s ease-in-out,
    transform 0.2s ease-in-out;
}
.ly_drawerMenuPanel.js_isActive {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  overflow-y: auto;
}
@media (min-width: 1024px) {
  .ly_drawerMenuPanel {
    position: static;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    width: fit-content;
    height: auto;
    padding-block: 0;
    background-color: transparent;
    transition: none;
  }
}

/*
SP版のみ表示するロゴマークアンカー
*/
.ly_drawerMenuPanel_spLogoMark {
  display: block;
  width: 125px;
  height: auto;
  margin-inline: auto;
}

/* SP版のみ表示するロゴマーク画像 */
.ly_drawerMenuPanel_spLogoMark > img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

@media (min-width: 1024px) {
  .ly_drawerMenuPanel_spLogoMark {
    display: none;
  }
}

/**************************************************************
  ページ冒頭の、背景画像付きの見出し(h1を想定)
*/
/* 見出しラップ */
.ly_pageHeader {
}
/* 見出し */
.ly_pageHeaderHeading {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 7.5%;
  text-shadow:
    -1px -1px 0 #fff,
    1px -1px 0 #fff,
    -1px 1px 0 #fff,
    1px 1px 0 #fff;
}
@media (min-width: 768px) {
  .ly_pageHeaderHeading {
    left: 10%;
  }
}
@media (min-width: 992px) {
  .ly_pageHeaderHeading {
    left: 10%;
  }
}
/* 見出し > サブ文字列 */
.ly_pageHeaderHeading_subTxt {
  /* font-size: 66%; */
  color: var(--bs-textPrimary);
}
/* 見出し > メイン文字列 */
.ly_pageHeaderHeading_mainTxt {
  /* font-size: 100%; */
  color: var(--bs-textSecondary);
}

/*************************************************************
フッター
*/
.ly_footerFlexBox {
}
.ly_footerFlexItem {
  width: 100%;
  max-width: unset;
}
@media (min-width: 1024px) {
  .ly_footerFlexItem {
    width: 33.33%;

    max-width: 300px;
  }
}

/*
footer 左列
*/
.ly_footerLogo {
  width: 150px;
  height: auto;
}

/** ***********************************************************
フッター中列メニュー
*/
.bl_footerNavMenu {
  width: 100%;
}
@media (min-width: 1024px) {
  .bl_footerNavMenu {
    margin-inline: auto;
    max-width: 300px;
  }
}
/* フッター中列メニューのアイテム */
.bl_footerNavMenu li {
  width: 100%;
}
.bl_footerNavMenu a {
  display: block;
  width: 100%;
  text-decoration: none;
  color: var(--bs-textSecondary);
  border-color: var(--bs-textSecondary);
  border-bottom: 1px solid;
  position: relative;
}
/* 末尾の矢印 */
.bl_footerNavMenu a::before {
  content: "→";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
/* ホバーで伸びる下線 */
.bl_footerNavMenu a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: 2;
}
.bl_footerNavMenu a:hover::after {
  transform: scaleX(1);
}
.bl_footerNavMenu .sub-menu {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
  list-style: none;
  padding-inline-start: 1rem;
}

/*
フッター後列メニュー
*/
.bl_footerFacilitiesMenu {
  display: grid;
}
@media (min-width: 1024px) {
  .bl_footerFacilitiesMenu {
    max-width: 300px;
    margin-inline-start: auto;
  }
}
/* フッター事業所メニューのアイテム */
.bl_footerFacilitiesMenu__item {
  color: var(--bs-textSecondary);
}
.bl_footerFacilitiesMenu__item::before {
  content: "-";
  margin-inline-end: 0.5rem;
}
.bl_footerFacilitiesMenu__item a {
  color: inherit;
  text-decoration: none;
  position: relative;
}
/* ホバー時のアニメ下線(a) */
.bl_footerFacilitiesMenu__item a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.bl_footerFacilitiesMenu__item a.isCurrent::after {
  transition: unset;
  transform: scaleX(1);
}

/* ホバー時のアニメ下線(b) */
.bl_footerFacilitiesMenu__item a:hover::after {
  transform: scaleX(1);
}

.bl_footerFacilitiesMenu .sub-menu {
  margin-top: 0.5rem;
  padding-inline-start: 1rem;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/*
見出しレベル3　装飾付き
*/
.bl_decoratedH3 > .bl_decoratedH3__upperSpan {
  width: 40px;
}
@media (min-width: 1024px) {
  .bl_decoratedH3 > .bl_decoratedH3__upperSpan {
    width: 60px;
  }
}

/*
section の幅を、画面幅いっぱいにするか、しないかを変更するクラス
*/
.bl_fullWidthBgSection {
  position: relative;
  /* containerクラスによる幅制限はそのまま */
}
.bl_fullWidthBgSection::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 100%;
  background-color: inherit;
  z-index: -1;
}

/** ************************************************************************
トップページ
************************************************************************ **/

/** ************************************************************
HOME > 挨拶(わたしたちについて)セクション
*/
.ly_greetingSection {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
.ly_greetingSection__txt {
  max-width: 100%;
}
.ly_greetingSection__imgs {
  max-width: 100%;
}

@media (min-width: 992px) {
  .ly_greetingSection {
    flex-direction: row;
    justify-content: space-between;
  }
  .ly_greetingSection__txt {
    max-width: 50%;
  }
  .ly_greetingSection__imgs {
    max-width: 50%;
  }
}

/** ************************************************************
サイト全体にわたって共有するリンクボタンスタイル。
モディファイアでサイズを変更する。
*/
/* 共通ボタン */
.bl_commonLinkButton {
  max-width: var(--max-width);
  width: 100%;
  height: var(--height);
  border-radius: var(--height);
  font-size: 18px;
  display: grid;
  place-items: center;
  text-decoration: none;
  border-width: 1px;
  border-style: solid;
  border-color: var(--bs-textSecondary);
  color: var(--bs-white);
  background-color: var(--bs-textSecondary);
  transition:
    border-color 0.1s,
    color 0.1s,
    background-color 0.1s;
}
/* 共通ボタン・ホバー時の色 */
.bl_commonLinkButton:hover {
  border-color: var(--bs-textSecondary);
  color: var(--bs-textSecondary);
  background-color: var(--bs-white);
}

/* 共通ボタン(リバース版)・通常色 */
.bl_commonLinkButton.bl_commonLinkButton__reverse {
  border-color: var(--bs-textSecondary);
  color: var(--bs-textSecondary);
  background-color: var(--bs-white);
}
/* 共通ボタン(リバース版)・ホバー時の色 */
.bl_commonLinkButton.bl_commonLinkButton__reverse:hover {
  border-color: var(--bs-textSecondary);
  color: var(--bs-white);
  background-color: var(--bs-textSecondary);
}

.bl_commonLinkButton.bl_commonLinkButton__homeGreetingSection {
  --max-width: 400px;
  --height: 4rem;
}
.bl_commonLinkButton.bl_commonLinkButton__homeNoticeListSection {
  --max-width: 360px;
  --height: 3.5rem;
}
.bl_commonLinkButton.bl_commonLinkButton__homeCareersSection {
  --max-width: 360px;
  --height: 3.5rem;
}
.bl_commonLinkButton.bl_commonLinkButton__homeOverviewSection {
  --max-width: 160px;
  --height: 3.5rem;
}
.bl_commonLinkButton.bl_commonLinkButton__homeNoticeListFooter {
  --max-width: 360px;
  --min-width: 160px;
  --height: 3.5rem;
}
.bl_commonLinkButton.bl_commonLinkButton__careers {
  --max-width: 360px;
  --min-width: 160px;
  --height: 3.5rem;
  /* display: grid;
  place-items: center; */
}

/** ************************************************************
HOME > 挨拶(わたしたちについて)セクション > 回転する画像2枚のラップ
*/
.ly_rotatedImagesWrap {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
@media (min-width: 992px) {
  .ly_rotatedImagesWrap {
    gap: 7rem;
  }
}

/* 回転画像全体ラップ */

.bl_rotatedImg {
  position: relative;
  --rotated-deg: 0deg;
}
@media (min-width: 992px) {
  .bl_rotatedImg {
    --rotated-deg: 5deg;
  }
}

.bl_rotatedImg_imgWrap {
  border-radius: 1rem;
  overflow: hidden;
}
.bl_rotatedImg.bl_rotatedImg__right > .bl_rotatedImg_imgWrap,
.bl_rotatedImg.bl_rotatedImg__right > .bl_rotatedImg_shiftedBorder {
  transform: rotate(var(--rotated-deg));
}
.bl_rotatedImg.bl_rotatedImg__left > .bl_rotatedImg_imgWrap,
.bl_rotatedImg.bl_rotatedImg__left > .bl_rotatedImg_shiftedBorder {
  transform: rotate(calc(var(--rotated-deg) * -1));
}

.bl_rotatedImg_shiftedBorder {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 100%;
  height: 100%;
  border: 1px solid var(--bs-textPrimary); /* 線の太さと色 */
  border-radius: 1rem; /* 親要素のborder-radiusを継承 */
  z-index: -1; /* 元の要素の背面に表示 */
}

/** ************************************************************
HOME > 事業内容セクション
************************************************************ **/
/*
HOME > 事業内容 > 1枚の事業カード
*/
.bl_homeBussinessCard {
  --border-radius-value: 1rem;
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: var(--border-radius-value);
  overflow: hidden;
}

/* カード画像上の薄黒いオーバーレイ */
.bl_homeBussinessCard_imgOverlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: black;
  opacity: 0.25;
  transition: opacity 0.1s ease;
}

/* 事業カード > 文字列 */
.bl_homeBussinessCard_txt {
  color: white;
}
.bl_commonLinkButton:hover ~ .bl_homeBussinessCard_imgOverlay {
  opacity: 0.1;
}

/* 事業内容セクションの absolute 表示イラスト */
.bl_homeOverviewAbsImg01_wrap {
  width: 30%;
  right: 12px !important;
}
.bl_homeOverviewAbsImg02_wrap {
  width: 40%;
  right: 12px !important;
}
@media (min-width: 992px) {
  .bl_homeOverviewAbsImg01_wrap {
    width: 20%;
    right: unset;
  }
  .bl_homeOverviewAbsImg02_wrap {
    width: 25%;
    right: unset;
  }
}

/** ************************************************************
HOME > 事業所一覧 > カード
************************************************************ **/
/* 空き人数 */
.el_vacancyNumber {
  /* --strokeColor: #0b5f59;
  --strokeColor: #43311f; */
  /* --strokeColor: #0e7f78; */
  --strokeColor: var(--bs-textSecondary);
  color: var(--bs-textSecondary);
  font-weight: bold;
  -webkit-text-stroke: 1px var(--strokeColor);
  text-stroke: 1px var(--strokeColor);
  paint-order: stroke;
}

/** ************************************************************
HOME > お知らせリストセクション
************************************************************ **/
.ly_homeNoticesSection {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  column-gap: 2rem;
}
.ly_homeNoticesSection_list {
  width: 100%;
}
.ly_homeNoticesSection_footer {
  width: 100%;
}

@media (min-width: 1280px) {
  .ly_homeNoticesSection {
    flex-direction: row-reverse;
  }
  .ly_homeNoticesSection_list {
    width: 75%;
  }
  .ly_homeNoticesSection_footer {
    width: 25%;
  }
}

/** ************************************************************
home > お知らせリスト > footer(左側の一覧ボタンとイラスト)
*/
.bl_homeNoticeListFooter {
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 1rem;
}
.bl_homeNoticeListFooter_illust {
  width: 120px;
}
@media (min-width: 1280px) {
  .bl_homeNoticeListFooter {
    align-items: flex-start;
    justify-content: space-between;
    height: 100%;
  }
  .bl_homeNoticeListFooter_illust {
    width: 200px;
  }
}

/** ************************************************************
HOME > 採用情報の一覧セクション
************************************************************ **/
/* absolute 表示のイラストのラップ */
.bl_careersAbsImgWrap {
  width: 25%;
  right: 12px !important;
}
@media (min-width: 992px) {
  .bl_careersAbsImgWrap {
    width: 15%;
    right: unset;
  }
}

/** ************************************************************
about > 法人概要セクション
************************************************************ **/
/*
「法人概要」テーブル
*/
.bl_aboutOverviewTable {
  --border-values: 1px solid var(--bs-gray-500);
  width: 100%;
  border-collapse: collapse;
  --cell-py-bigger: 0.75rem;
  --cell-py-smaller: 0.25rem;
}
@media (min-width: 992px) {
  .bl_aboutOverviewTable {
    --cell-py-bigger: 1.5rem;
    --cell-py-smaller: 0.25rem;
  }
}

.bl_aboutOverviewTable_tr {
  border-bottom: var(--border-values);
  display: flex;
  flex-direction: column;
}
.bl_aboutOverviewTable_tr:first-child {
  border-top: var(--border-values);
}
@media (min-width: 992px) {
  .bl_aboutOverviewTable_tr {
    display: table-row;
  }
}

.bl_aboutOverviewTable_th {
  white-space: nowrap;
  padding-inline-start: 0;
  --cell-pt: var(--cell-py-bigger);
  --cell-pb: var(--cell-py-smaller);
  padding-block-start: var(--cell-pt);
  padding-block-end: var(--cell-pb);
}
@media (min-width: 992px) {
  .bl_aboutOverviewTable_th {
    --cell-pt: var(--cell-py-bigger);
    --cell-pb: var(--cell-py-bigger);
    padding-inline-start: var(--cell-py-smaller);
    vertical-align: top;
  }
}

.bl_aboutOverviewTable_th > span::before {
  content: "";
  display: none;
  width: 6px;
  height: 6px;
  background-color: var(--bs-textSecondary);
  border-radius: 50%;
  margin-right: 0.5rem;
  vertical-align: middle;
}
@media (min-width: 992px) {
  .bl_aboutOverviewTable_th > span::before {
    display: inline-block;
  }
}

.bl_aboutOverviewTable_td {
  --cell-pt: var(--cell-py-smaller);
  --cell-pb: var(--cell-py-bigger);
  padding-block: var(--cell-py);
  padding-block-start: var(--cell-pt);
  padding-block-end: var(--cell-pb);
}
@media (min-width: 992px) {
  .bl_aboutOverviewTable_td {
    --cell-pt: var(--cell-py-bigger);
    --cell-pb: var(--cell-py-bigger);
  }
}

/* gmap 用 */
.bl_aboutOverviewTable_td iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
}
@media (min-width: 776px) {
  .bl_aboutOverviewTable_td iframe {
    aspect-ratio: 2/1;
  }
}

/** ************************************************************
「沿革」セクション
*/
/* 沿革テーブル */
.bl_aboutHistoryTable {
  --border-values: 1px solid var(--bs-gray-500);
  border-collapse: collapse;
}
.bl_aboutHistoryTable_tr {
  border-bottom: var(--border-values);
}
.bl_aboutHistoryTable_tr:first-child {
  border-top: var(--border-values);
}

/** ************************************************************
「事業紹介」セクション
*/
.bl_overviewElectionItem_anchor {
  aspect-ratio: 3/1;
}
@media (min-width: 992px) {
  .bl_overviewElectionItem_anchor {
    aspect-ratio: 2/1;
  }
}
/* 分野選択セクションのホバー時の挙動 */
.bl_overviewElectionItem:has(a:hover) {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  transform: translateY(-4px);
  transition:
    box-shadow 0.3s ease,
    transform 0.3s ease;
}

/* 要望への回答一件 */
/* 下端の破線 */
.bl_overviewResponseItem {
  position: relative;
}
.bl_overviewResponseItem:after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-image: repeating-linear-gradient(
    to right,
    #333 0,
    #333 3px,
    transparent 3px,
    transparent 6px
  );
}
.bl_overviewResponseItem:last-child::after {
  display: none;
}

/** ************************************************************************
事業所投稿ページ
************************************************************************ **/
.ly_facilityListCard:has(a:hover) {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  transform: translateY(-4px);
  transition:
    box-shadow 0.3s ease,
    transform 0.3s ease;
}

/*
事業所ページの最初のセクションの先頭の白丸
*/
.ly_facilityStartingSection {
  position: relative;
  padding-top: 0 !important;
  --circle-diameter: 150px;
  margin-block-start: calc(var(--circle-diameter) / 2.5) !important;
}
.ly_facilityStartingSection::before {
  content: "";
  display: block;
  width: var(--circle-diameter);
  height: var(--circle-diameter);
  z-index: -1;
  background-color: var(--bs-white);
  position: absolute;
  top: calc(var(--circle-diameter) / 3 * -1);
  left: 50%;
  transform: translateX(-50%);
  border-radius: 50%;
}
@media (min-width: 992px) {
  .ly_facilityStartingSection {
    --circle-diameter: 242px;
  }
}

/*
事業所のキービジュアルと挨拶文
*/
.bl_facilityGreetingSection {
}
.bl_facilityGreetingSection_imgWrapper {
  /* aspect-ratio: 1140 / 500; */
}

/*
事業所のサービス内容
*/

/*
事業所のサービス内容： サービス名リスト
*/
.bl_facilityServiceDetailsSection__programNames > li::marker {
  color: var(--bs-textSecondary);
}
/*
事業所サービス内容 > Table
*/
.bl_facilityServiceDetailsTable {
  --border-values: 1px solid var(--bs-gray-500);
  width: 100%;
  border-collapse: collapse;
}
.bl_facilityServiceDetailsTable_row {
  border-bottom: var(--border-values);
  display: flex;
  flex-direction: column;
}
.bl_facilityServiceDetailsTable_row:first-child {
  border-top: var(--border-values);
}
.bl_facilityServiceDetailsTable_th {
}
.bl_facilityServiceDetailsTable_td {
}
@media (min-width: 992px) {
  .bl_facilityServiceDetailsTable_row {
    display: table-row;
  }
  .bl_facilityServiceDetailsTable_th {
  }
  .bl_facilityServiceDetailsTable_td {
  }
}

/*
「事業所」>「一日の流れ」
*/
/* バルーンラベル本体 */
.bl_baloonLabel {
  --baloon-label-width: 16rem;
  --multiple: 0.75;
  min-width: calc(var(--baloon-label-width) * var(--multiple));
  position: relative;
}
@media (min-width: 992px) {
  .bl_baloonLabel {
    --multiple: 1;
  }
}
/* バルーンの吹き出し */
.bl_baloonLabel__arrow {
  display: block;
  width: 36px;
  height: 24px; /* 高さを調整して鋭角にする */
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -12px; /* 高さ変更に合わせて位置調整 */
  clip-path: polygon(50% 100%, 20% 0%, 80% 0%); /* 鋭角な三角形 */
}

/*
時間割のスタイル
*/
.bl_timetable {
  --borderColor: var(--bs-gray-500);
  width: 100%;
  font-size: 18px;
}
.bl_timetable_row:first-child {
  border-top: 1px solid var(--borderColor);
}
.bl_timetable_row {
  border-bottom: 1px solid var(--borderColor);
  display: flex;
  flex-direction: column;
}
@media (min-width: 992px) {
  .bl_timetable_row {
    display: table-row;
  }
}

.bl_timetable_th {
}
.bl_timetable_td {
}

/*
facilities 共通テーブル
*/
/* table */
.ly_facilityCommonTable {
  --borderColor: var(--bs-gray-500);
  width: 100%;
  border-collapse: collapse;
}
/* tr */
.ly_facilityCommonTable_row {
  border-bottom: 1px solid var(--borderColor);
  display: flex;
  flex-direction: column;
}
.ly_facilityCommonTable_row:first-child {
  border-top: 1px solid var(--borderColor);
}
/* th */
.ly_facilityCommonTable_row > th {
  padding-block-start: 0.75rem;
  padding-block-end: 0;
}
/* td */
.ly_facilityCommonTable_row > td {
  padding-block-start: 0;
  padding-block-end: 0.75rem;
}
@media (min-width: 992px) {
  /* tr */
  .ly_facilityCommonTable_row {
    display: table-row;
  }
  /* th */
  .ly_facilityCommonTable_row > th {
    padding-block-start: 0.75rem;
    padding-block-end: 0.75rem;
  }
  /* td */
  .ly_facilityCommonTable_row > td {
    padding-block-start: 0.75rem;
    padding-block-end: 0.75rem;
  }
}

/*
活動内容セクション
*/
.ly_activitiesList {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  column-gap: 1rem;
  row-gap: 3rem;
}
@media (min-width: 768px) {
  .ly_activitiesList {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 2rem;
  }
}
@media (min-width: 992px) {
  .ly_activitiesList {
    grid-template-columns: repeat(4, 1fr);
    row-gap: 2rem;
  }
}

/*
google map 埋め込み
*/
/* wrapper */
.ly_googleMap {
  --height: 400px;
  max-height: var(--height);
  overflow: hidden;
}
/* iframe */
.ly_googleMap > iframe {
  width: 100%;
  height: var(--height);
}
@media (min-width: 992px) {
  /* wrapper */
  .ly_googleMap {
    --height: 600px;
  }
}

/*
セクションのabsolute表示のイラスト
*/
.bl_sectionAbsIllustWrapper {
  position: absolute;
  z-index: 1;
  bottom: 0;
  width: 125px;
  height: auto;
  pointer-events: none;
  user-select: none;
}
@media (min-width: 768px) {
  .bl_sectionAbsIllustWrapper {
    width: 150px;
  }
}
@media (min-width: 992px) {
  .bl_sectionAbsIllustWrapper {
    width: 200px;
  }
}
.bl_sectionAbsIllustWrapper.bl_sectionAbsIllustWrapper__house {
}

/** ************************************************************
お便りカード
************************************************************ **/
.ly_newsletterCard {
}
.ly_newsletterCard_heading {
}
.ly_newsletterCard_anchor {
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}
.ly_newsletterCard_anchor:hover {
  transform: translateY(-0.25rem);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/**
採用情報の表
*/
.ly_careerTable {
  --border-values: 1px solid var(--bs-gray-500);
  width: 100%;
  border-collapse: collapse;
}
.ly_careerTable_row {
  border-bottom: var(--border-values);
}
.ly_careerTable_row:first-child {
  border-top: var(--border-values);
}

/*
採用情報の一件分のカード表示
*/
.ly_singleCareerCard {
  --border-values: 1px solid var(--bs-gray-300);
  border: var(--border-values);
  border-radius: 1rem;
  background-color: white;
}
.ly_singleCareerCard:hover {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  transform: translateY(-4px);
  transition:
    box-shadow 0.3s ease,
    transform 0.3s ease;
}

/*
カテゴリーの絞り込みボタン。汎用
*/
.bl_categoryFilterButton {
  --color: var(--bs-textSecondary);
  border: 1px solid var(--color);
  background-color: var(--color);
  color: white;
  line-height: 1;
  padding-block: 0.5rem;
  padding-inline: 1rem;
  text-decoration: none;
}
.bl_categoryFilterButton.bl_categoryFilterButton__isCurrent {
  background-color: white;
  color: var(--color);
}
.bl_categoryFilterButton:hover {
  background-color: white;
  color: var(--color);
  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}
.bl_categoryFilterButton_label {
  color: inherit;
  font-weight: bold;
}

/*
「お知らせ」リストアイテム
*/
.bl_noticesListItem {
}
.bl_noticesListItem_dateTagPart {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.bl_noticesListItem_titlePart {
}
@media (min-width: 992px) {
  .bl_noticesListItem_dateTagPart {
    min-width: 13rem;
  }
}

/*
お知らせの絞り込みボタン
*/
.bl_noticePostTypeButton {
  /* --color: color-mix(in srgb, var(--base-color) 90%, black 10%); */
  --color: var(--base-color);
  border: 1px solid var(--color);
  color: white;
  background-color: var(--color);
  padding-block: 0.5rem;
  line-height: 1;
  padding-inline: 1rem;
  white-space: nowrap;
  text-decoration: none;
}
/* カレントなら色は最初から反転 */
.bl_noticePostTypeButton.bl_noticePostTypeButton__isCurrent {
  background-color: white;
  color: var(--color);
}
/* ホバー時は色を反転、アニメつき */
.bl_noticePostTypeButton:hover {
  background-color: white;
  color: var(--color);
  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}

/* 「お知らせ」投稿リストアイテムの、参照投稿タイプタグ */
.bl_referencedPostTypeTag {
  display: inline-block;
  border-width: 1px;
  border-style: solid;
  padding-inline: 1rem;
  padding-block: 0.25rem;
  line-height: 1;
  text-decoration: none;
}
.bl_referencedPostTypeTag:hover {
  background-color: var(--bs-gray-100);
  transition: background-color 0.2s ease;
}

/*
サイトマップのメニュー, 404 ページのメニュー
*/
.bl_sitemapNav a {
  color: var(--bs-textSecondary);
  text-decoration: none;
  position: relative;
}
.bl_sitemapNav a:hover {
  /* text-decoration: underline; */
}
.bl_sitemapNav a:not(:hover)::after {
}

.bl_sitemapNav a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.bl_sitemapNav a:hover::after {
  transform: scaleX(1);
}
