@charset "UTF-8";

/* ベース
==================================================== */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,800;1,800&family=Noto+Sans+JP:wght@700&display=swap");

:root {
  --font-montserrat: "Montserrat", var(--font-gothic-base);
  --color-main: #182341;
  --color-sub: #d8e0ee;
  --color-accent: #dff4ff;
  --color-caution: #cf2e2e;

  --color-hygiene: #16358f;
  --color-corp: #182341;
  --color-eco: #1b9844;
  --color-recruit: #00b5e2;

  --icon-arrow-white:url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9" fill="none" stroke="%23ffffff" stroke-width="1.5"/><path d="M10.5 16L14 12L10.5 8" fill="none" stroke="%23ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>');
  --icon-arrow-main:url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9" fill="none" stroke="%23182341" stroke-width="1.5"/><path d="M10.5 16L14 12L10.5 8" fill="none" stroke="%23182341" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>');
  --icon-tel:url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="25.931" height="32" viewBox="0 0 25.931 32"><path d="M24.5,24.4a7.855,7.855,0,0,0-2.828-2.831,3.55,3.55,0,0,0-3.557.222,7.757,7.757,0,0,0-2.5,2.476,13.852,13.852,0,0,1-6.423-5.506,12.665,12.665,0,0,1-2.42-8,8.352,8.352,0,0,0,3.438-1.008A3.16,3.16,0,0,0,12,6.855a7.41,7.41,0,0,0-1.43-3.648A7.872,7.872,0,0,0,7.747.374,3.552,3.552,0,0,0,4.19.6a8.084,8.084,0,0,0-3.155,3.7A6.8,6.8,0,0,0,.627,5.566,9.4,9.4,0,0,0,.156,7.492c-.576,4.161.375,8.709,4.03,14.22s7.573,8.315,11.793,9.651a10.989,10.989,0,0,0,2.15.452,8.14,8.14,0,0,0,1.09.155,8.886,8.886,0,0,0,4.918-1.014,3.159,3.159,0,0,0,1.794-2.9A7.388,7.388,0,0,0,24.5,24.4" transform="translate(0 0)" fill="%23182341"/></svg>');
}

p {
  line-height: 1.9;
}

strong {
  font-weight: 700;
}

/* 打ち消し
==================================================== */
.wp-block-cover,
.wp-block-cover-image {
  min-height: auto;
}

.wp-block-image{
  margin-bottom: 0;
}

/* 余白
==================================================== */
.pt-s {
  padding-top: 3rem;
}

.pt-m {
  padding-top: 7rem;
}

.pt-l {
  padding-top: 10rem;
}

.pt-xl {
  padding-top: 15rem;
}

.pb-s {
  padding-bottom: 3rem;
}

.pb-m {
  padding-bottom: 7rem;
}

.pb-l {
  padding-bottom: 10rem;
}

.pb-xl {
  padding-bottom: 15rem;
}

.py-s {
  padding: 3rem 0;
}

.py-m {
  padding: 7rem 0;
}

.py-l {
  padding: 10rem 0;
}

.py-xl {
  padding: 15rem 0;
}

.mt-s {
  margin-top: 3rem;
}

.mt-m {
  margin-top: 7rem;
}

.mt-l {
  margin-top: 10rem;
}

.mt-xl {
  margin-top: 15rem;
}

.mb-s {
  margin-bottom: 3rem;
}

.mb-m {
  margin-bottom: 7rem;
}

.mb-l {
  margin-bottom: 10rem;
}

.mb-xl {
  margin-bottom: 15rem;
}

@media screen and (max-width: 768px) {
  .pt-s {
    padding-top: 6vw;
  }

  .pt-m {
    padding-top: 10vw;
  }

  .pt-l {
    padding-top: 13vw;
  }

  .pt-xl {
    padding-top: 18vw;
  }

  .pb-s {
    padding-bottom: 6vw;
  }

  .pb-m {
    padding-bottom: 10vw;
  }

  .pb-l {
    padding-bottom: 13vw;
  }

  .pb-xl {
    padding-bottom: 18vw;
  }

  .py-s {
    padding: 6vw 0;
  }

  .py-m {
    padding: 10vw 0;
  }

  .py-l {
    padding: 13vw 0;
  }

  .py-xl {
    padding: 18vw 0;
  }

  .mt-s {
    margin-top: 6vw;
  }

  .mt-m {
    margin-top: 10vw;
  }

  .mt-l {
    margin-top: 13vw;
  }

  .mt-xl {
    margin-top: 18vw;
  }

  .mb-s {
    margin-bottom: 6vw;
  }

  .mb-m {
    margin-bottom: 10vw;
  }

  .mb-l {
    margin-bottom: 13vw;
  }

  .mb-xl {
    margin-bottom: 18vw;
  }
}

/* 見出し
==================================================== */
h2[data-sub] {
  padding-bottom: 4.2rem;
  font-weight: 700;
  font-size: 100%;
  letter-spacing: 0.1em;
  line-height: 1.5;
  display: flex;
  flex-direction: column;
}

h2[data-sub]::before {
  font-family: var(--font-montserrat);
  font-size: 275%;
  color: var(--color-hygiene);
  content: attr(data-sub);
  display: block;
  order: 1;
  opacity: 1;
}

h2[data-sub][data-sub-position="bottom"]:before {
  content: attr(data-sub);
}

h2[data-sub="MESSAGE"]:before,
h2[data-sub="PHILOSOPHY"]:before,
h2[data-sub="EMAIL"]:before {
  color: var(--color-white) !important;
}

h2[data-sub="PHONE"]:before {
  color: var(--color-main) !important;
}

h2[data-sub]::after {
  order: 2;
  display: block;
  width: 50px;
  height: 6px;
  margin-top: 1.5rem;
  background-color: var(--color-sub);
}

h2[data-sub][data-sub-position=bottom]:after{
  content: "";
}

h3.wp-block-heading {
  position: relative;
  z-index: 1;
  line-height: 1.5;
  font-size: 150%;
  letter-spacing: 0.1em;
  font-weight: 700;
}

.common-head,
.post-content h2 {
  font-size: 150%;
  display: flex;
  align-items: center;
  margin-bottom: 1em;
  line-height: 1.5;
}

.common-head:before,
.post-content h2:before {
  height: 3rem;
  width: 8px;
  background-color: var(--color-main);
}

@media screen and (max-width: 768px) {
  h2[data-sub] {
    padding-bottom: 7.2vw
  }

  h2[data-sub]::before {
    font-size: 200%;
  }

  h2[data-sub]::after {
    width: 50px;
    height: 4px;
    margin-top: 2vw;
  }

  .common-head,
  .post-content h2 {
    font-size: 120%;
  }

  .common-head:before,
  .post-content h2:before {
    height: 7vw;
  }
}

/* ボタン
==================================================== */
.wp-block-button,
.nav-link,
.cta-list__item {
  min-width: 32rem;
  padding-top: 4.8rem;
}

.wp-block-button__link,
.cta-list__item,
.nav-link__link {
  border: 1px solid var(--color-main);
  background-color: transparent;
  font-weight: 700;
  color: var(--color-main);
  padding: 1em 2em;
  border-radius: 0;
  font-size: 110%;
  transition:
    0.2s color,
    0.2s background-color;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
}

.wp-block-button__link::after,
.cta-list__item::after {
  content: "";
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  flex-shrink: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: background-image 0.2s ease;
  background-image: var(--icon-arrow-main);
}

.nav-link__link--archive:after {
  content: none;
}

.nav-link__link:hover{
  opacity: 1;
}

.wp-block-button__link:focus-visible,
.cta-list__item:focus-visible,
.nav-link__link:focus-visible,
.header__contact__link:focus-visible {
  background-color: var(--color-white);
  color: var(--color-main);
}

.related .menu-item.current-menu-item a {
  background-color: var(--color-main);
  color: var(--color-white) !important;
  pointer-events: none;
}

.cta-list__item {
  display: inline-flex;
  background-color: var(--color-white);
  width: auto;
  margin-top: 4.8rem;
}

.cta-list__item__text {
  font-weight: 700;
}

@media (any-hover: hover) {
  .wp-block-button__link:hover,
  .cta-list__item:hover,
  .nav-link__link:hover,
  .header__contact__link:hover{
    background-color: var(--color-corp);
    color: var(--color-white);
  }

  .wp-block-button__link:hover::after,
  .cta-list__item:hover::after,
  .nav-link__link:hover::after,
  .header__contact__link:hover::after{
    background-image: var(--icon-arrow-white);
  }
}

@media screen and (max-width: 768px) {
  .wp-block-button,
  .nav-link,
  .cta-list__item {
    padding-top: 8vw;
    min-width: 50vw;
  }

  .wp-block-button__link,
  .cta-list__item{
    padding: 1.2em 1em;
    font-size: 90%;
  }

  .cta-list__item{
    margin-top: 8vw;
  }

  .nav-link__link{
    padding: 3.5vw 2vw;
    font-size: 86%;
    gap: 0;
  }
}

/* リスト
==================================================== */
.wp-block-list {
  line-height: 1.9;
}

.wp-block-list {
  padding-left: 1.5em;
}

ul.wp-block-list li {
  display: list-item;
  list-style-type: disc;
  list-style-position: outside;
}

ul.wp-block-list li strong {
  display: block;
}

ul.wp-block-list li br{
  display: none;
}

.wp-block-list li::marker{
  color: var(--color-main);
}

ul.wp-block-list li:last-child {
  margin-bottom: 0;
}

.wp-block-list a:after{
  top: -4px;
  position: relative;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .wp-block-list a:after{
    top: -.4vw;
  }
}

/* テーブル
==================================================== */
.wp-block-table {
  max-width: 1000px;
  margin: 0 auto;
}

.wp-block-table thead {
  background-color: var(--color-sub);
  border-bottom: 1px solid var(--color-main);
}

.wp-block-table thead th {
  font-weight: 700;
}

.wp-block-table tr {
  border-bottom: 1px solid var(--color-gray);
  padding: 1em 0;
  display: flex;
}

.wp-block-table td,
.wp-block-table th {
  line-height: 1.9;
  border: none;
  padding: 0;
}

.wp-block-table th,
.wp-block-table tr > td:first-child {
  color: var(--color-main);
  width: 17rem;
  font-weight: 700;
  flex-shrink: 0;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .wp-block-table td,
  .wp-block-table th {
    padding: 0.2em;
  }

  .wp-block-table tr {
    flex-direction: column;
  }

  .wp-block-table th,
  .wp-block-table tr > td:first-child {
    width: auto;
  }

  .p-technical + .wp-block-table tr {
    flex-direction: row;
  }
}

/* バナー
==================================================== */
.wp-block-group__inner-container .banner-list__item {
  border: 1px solid var(--color-sub);
}

@media screen and (max-width: 768px) {
  .banner-list__item {
    width: calc((100% - var(--gap-base)) / 2);
  }
}

/* ヘッダー
==================================================== */
.header[data-fixed] {
  z-index: 10;
}

.menu-header-top-container .menu a {
  display: flex;
  align-items: center;
  gap: 0.5em;
  text-decoration: none;
}

.menu-header-top-container .menu a::before {
  content: "";
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  flex-shrink: 0;
  border-radius: 50%;
  background-image: var(--icon-arrow-white);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: opacity 0.3s ease;
}

.menu-header-top-container .menu a:hover::before {
  opacity: 0.7;
}

.header__tel__text {
  gap: 0;
}

.header__tel__number,
.cta__tel__number {
  font-family: var(--font-montserrat);
  font-size: 230%;
  display: flex;
  align-items: center;
  text-decoration: none;
  gap: 0.2em;
}

.header__tel__number::before,
.cta__tel__number::before,
.p-tel .wp-block-group a::before {
  content: "";
  display: inline-block;
  width: 22px;
  height: 28px;
  flex-shrink: 0;
  background-image: var(--icon-tel);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.p-tel .wp-block-group a::before {
  width: 42px;
  height: 39px;
}

.header__tel__number:hover::before,
.cta__tel__number:hover::before,
.p-tel .wp-block-group a:hover::before {
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

#menu-header .menu-item {
  border-left: 1px solid var(--color-gray);
}

#menu-header {
  border-right: 1px solid var(--color-gray);
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
}

/* フッター
==================================================== */
.footer__info {
  line-height: 1.9;
}

.footer__banners h2 {
  color: var(--color-white);
  font-weight: 700;
  padding-bottom: 1em;
}

.footer__col{
  width: auto;
}

.footer__nav .footer__col:nth-of-type(1) .footer__nav-list {
  display: grid !important;
  grid-template-columns: repeat(2, 10rem);
  grid-template-rows: repeat(4, auto);
  grid-auto-flow: column;
  row-gap: 2.5em;
  column-gap: 1em;
}

.footer__nav .footer__col:nth-of-type(1) .footer__nav-list li{
  width: 10rem;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .footer__banners {
    display: none;
  }

  .footer__middle {
    margin-bottom: 0;
  }

  .footer__banners {
    padding-top: 5vw;
  }
}

/* 下層ページヘッダー
==================================================== */
.page-title-wrap__inner {
  height: 33rem;
}

@media screen and (max-width: 1304px) {
  .page-title{
    font-size: 3.6rem;
  }
}

@media screen and (max-width: 768px) {
  .page-title-wrap__inner {
    height: 40vw;
  }

  .page-title {
    font-size: 140%;
  }

  .page-title[data-slug]:before{
    font-size: 60%;
    font-family: var(--font-montserrat);
  }
}

/* 下層 - お問い合わせ - 電話
==================================================== */
.p-tel {
  border: 1px solid var(--color-main);
  border-radius: 10px;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.p-tel .wp-block-group a {
  font-family: var(--font-montserrat);
  font-size: 330%;
  color: var(--color-main);
  font-weight: bold;
  border-bottom: 1px solid var(--color-main);
  margin-bottom: .5em;
}

.p-tel .wp-block-group strong {
  color: var(--color-main);
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .p-tel > .wp-block-group__inner-container {
    padding: 2rem;
  }

  .p-tel .wp-block-group a {
    font-size: 260%;
  }
}

/* 下層 - お問い合わせ - フォーム
==================================================== */
.snow-monkey-form,
.snow-monkey-form + p {
  max-width: 60rem;
  margin: 0 auto;
}

.snow-monkey-form + p {
  padding-top: 2rem;
}

.smf-item {
  margin-bottom: 4.5rem;
}

.smf-item__col--label {
  display: flex;
  align-items: center;
  margin-bottom: 2rem;
  gap: 2rem;
}

.smf-item__label__text {
  font-weight: bold;
  font-size: 110%;
}

.smf-control-description {
  font-size: 80%;
  margin-top: 1em;
  color: var(--color-white);
}

.smf-item__description {
  margin-top: 0;
  background-color: var(--color-caution);
  color: var(--color-black);
  font-size: 80%;
  padding: 0.5rem 1rem;
  line-height: 1;
  color: var(--color-white);
}

.smf-form .smf-text-control__control,
.smf-form .smf-textarea-control__control,
.smf-form .smf-select-control__control {
  font-size: 100%;
  width: 100%;
  padding: 1em;
}

.smf-form .smf-checkbox-control {
  align-items: center;
  gap: 0.5em;
}

.smf-text-control__control::placeholder,
.smf-textarea-control__control::placeholder {
  color: var(--color-gray);
}

.smf-checkboxes-control__control {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 1rem;
}

.snow-monkey-form textarea {
  min-height: 24rem;
}

.smf-button-control button {
  border: 1px solid var(--color-white) !important;
  color: var(--color-main) !important;
  font-weight: 700;
  text-align: center;
  padding: 1em 2em !important;
  background-image: none !important;
  background-color: var(--color-white) !important;
  font-size: 100%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  text-decoration: none;
  transition: all 0.3s ease;
}

.smf-button-control button::after {
  content: "";
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  flex-shrink: 0;
  border-radius: 50%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: background-image 0.3s ease;
  background-image: var(--icon-arrow-main);
}

.smf-button-control button:hover {
  background-color: var(--color-main) !important;
  color: var(--color-white) !important;
}

.smf-button-control button:hover::after {
  background-image: var(--icon-arrow-white);
}

.smf-select-control__control {
  color: var(--color-black);
}

.smf-select-control__control:invalid {
  color: var(--color-gray);
}

/* .smf-select-control__control option {
  color: var(--color-black);
} */

.smf-form .smf-select-control__toggle:before{
  border-color: var(--color-gray);
}

/* 4. （お好みで）開いた時の「都道府県を選択」という選択肢自体は「グレー」にする */
/* .smf-select-control__control option[value=""] {
  color: var(--color-gray);
} */

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .snow-monkey-form + p {
    padding: 6vw 0;
  }

  .smf-item {
    margin-bottom: 12vw;
  }

  .smf-item__col--label {
    margin-bottom: 4vw;
    gap: 2vw;
  }

  .smf-checkboxes-control__control {
    grid-template-columns: 1fr;
    gap: 4vw 0;
  }

  .smf-form .smf-text-control__control {
    padding: 4vw 2vw;
  }

  .smf-control-description {
    margin-top: 4vw;
  }

  .snow-monkey-form {
    padding: 0;
  }

  .smf-button-control__control {
    width: 100%;
    min-width: auto;
  }
}

/* 下層 - サイトマップ
==================================================== */
.sitemap-wrap {
  padding: 10rem 0;
  gap: 5rem var(--gap-base);
}

.sitemap-wrap section + section {
  margin-top: 0;
}

.sitemap-text {
  margin-bottom: 1.5em;
}

.sitemap-section .sub-menu > .menu-item::before {
  position: relative;
  bottom: 0.2em;
}

.common-head--site-corporate::before {
  background-color: var(--color-corp);
}

.common-head--site-corporate::after {
  border-bottom-color: var(--color-corp);
}

#menu-site-corporate > .menu-item::before,
#menu-site-corporate .sub-menu > .menu-item::before {
  color: var(--color-corp);
}

.common-head--site-recruit::before {
  background-color: var(--color-recruit);
}

.common-head--site-recruit::after {
  border-bottom-color: var(--color-recruit);
}

#menu-site-recruit > .menu-item::before,
#menu-site-recruit .sub-menu > .menu-item::before {
  color: var(--color-recruit);
}

.common-head--site-hygiene::before {
  background-color: var(--color-hygiene);
}

.common-head--site-hygiene::after {
  border-bottom-color: var(--color-hygiene);
}

#menu-site-hygiene > .menu-item::before,
#menu-site-hygiene .sub-menu > .menu-item::before {
  color: var(--color-hygiene);
}

.common-head--site-eco::before {
  background-color: var(--color-eco);
}

.common-head--site-eco::after {
  border-bottom-color: var(--color-eco);
}

#menu-site-eco > .menu-item::before,
#menu-site-eco .sub-menu > .menu-item::before {
  color: var(--color-eco);
}

.common-head--site-media::before {
  background-color: var(--color-gray);
}

.common-head--site-media::after {
  border-bottom-color: var(--color-gray);
}

#menu-site-media > .menu-item::before {
  color: var(--color-gray);
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .sitemap-wrap {
    grid-template-columns: 1fr;
    gap: 10vw;
    padding: 10vw 0;
  }

  .sitemap-text {
    margin-bottom: 1.5em;
  }

  .sitemap-section .sub-menu > .menu-item::before {
    bottom: 0.2em;
  }
}

/* ページネーション
==================================================== */
.pagination {
  padding-top: 10rem;
  padding-bottom: 0;
}

.pagination__link--current {
  background-color: var(--color-main);
  color: var(--color-white);
  border: 1px solid var(--color-main);
}

.pagination__link {
  border: 1px solid var(--color-main);
  min-height: 3.2rem;
}

.pagination__link:hover {
  background-color: var(--color-main);
  color: var(--color-white);
}

.pagination__link--first,
.pagination__link--prev,
.pagination__link--next,
.pagination__link--last {
  border: none;
}

.pagination__link--first:hover,
.pagination__link--prev:hover,
.pagination__link--next:hover,
.pagination__link--last:hover {
  background-color: transparent;
  color: var(--color-black);
  opacity: 0.3;
}

@media screen and (max-width: 1304px) {
  .pagination__item,
  .pagination__link {
    font-size: 1em;
  }

  .pagination {
    overflow-x: visible;
  }
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .pagination {
    padding-top: 10vw;
    padding-bottom: 0;
  }

  .pagination__link--first:after,
  .pagination__link--first:before,
  .pagination__link--last:after,
  .pagination__link--last:before,
  .pagination__link--next:after,
  .pagination__link--next:before,
  .pagination__link--prev:after,
  .pagination__link--prev:before {
    width: 0.5em;
    height: 0.5em;
  }

  .pagination__link {
    min-height: 3.2vw;
  }
}

/* 投稿一覧
==================================================== */
.post-list{
  gap: 1.5rem;
}

.post-list__link {
  transition: 0.2s opacity;
  gap: 1.2rem !important;
}

.post-list__link:focus-visible {
  opacity: 0.6;
}

@media (any-hover: hover) {
  .post-list__link:hover {
    opacity: 0.6;
  }
}

.post-list__link img {
  border-radius: 1em;
}

.post-list__body {
  position: relative;
  gap: 1rem;
}

.post-list__categories {
  position: absolute;
  right: 0;
  justify-content: flex-end;
  top: -.5rem;
}

.post-list__date {
  font-size: 75%;
  color: var(--color-gray);
}

.post-list__category {
  color: var(--color-white);
  background-color: var(--color-gray2);
  padding: 0.4em 0.8em;
  border-radius: 100vmax;
  font-size: 75%;
}

.post-list__head {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--color-main);
  font-weight: 700;
  line-height: 1.7;
  padding-bottom: 1em;
  border-bottom: 1px solid var(--color-main);
}

.post-list__excerpt {
  font-size: 75%;
}

@media screen and (max-width: 1304px) {
  .box-side {
    width: 33%;
  }

  .select-side{
    font-size: 100%;
  }
}

@media screen and (max-width: 992px) {
  .post-list {
    gap: 8vw 5vw;
  }
}

@media screen and (max-width: 768px) {
  .post-list{
    padding-top: 6vw;
    gap: 4vw;
  }

  .post-list__link {
    gap: 0.2em !important;
  }

  .post-list__head {
    white-space: normal;
    padding-bottom: 2vw;
  }

  .post-list__body {
    gap: 0.7em;
  }

  .post-list__categories {
    top: -1vw;
  }

  .select-side{
    font-size: 100%;
  }
}

/* 投稿詳細
==================================================== */
.post-article {
  gap: 0;
  margin-bottom: 7rem;
}

.post-header {
  gap: 1em;
  padding-bottom: 1em;
  border-bottom: 1px solid var(--color-main);
}

.post-header__date {
  font-size: 75%;
  color: var(--color-gray);
}

.post-header__title {
  font-size: 175%;
}

.post-content{
  padding-top: 3rem;
}

.post-content h2{
  padding-top: 3rem;
}

.post-article + div {
  padding-bottom: 7rem;
}

.post-content a{
  color: var(--color-recruit);
  border-bottom: var(--color-recruit);
}

.post-content table {
  width: 100%;
  margin-bottom: 7rem;
}

.wp-block-embed.is-type-video iframe {
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .post-container{
    padding: 6vw 0 13vw;
    row-gap: 10vw;
  }

  .post-article {
    margin-bottom: 13vw;
  }

  .post-content{
    padding-top: 6vw;
  }

  .post-header__date {
    font-size: 90%;
  }

  .post-header__title {
    font-size: 150%;
  }

  .post-content h2{
    padding-top: 10vw;
  }

  .post-article + div {
    padding-bottom: 10vw;
  }

  .post-content table {
    margin-bottom: 10vw;
  }
}

/* CTA（コーポレート）
==================================================== */
.cta-contact {
  flex-flow: nowrap;
}

.cta-contact__img {
  width: 70rem;
}

.cta-contact__img img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.cta__tel {
  padding-top: 8rem;
}

.cta__tel__title {
  padding-bottom: 1.2em;
  font-weight: 700;
  font-size: 100%;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.cta__tel__number {
  font-family: var(--font-montserrat);
  font-size: 300%;
  color: var(--color-main);
}

.cta__tel__number::before{
  width: 30px;
  height: 38px;
}

@media screen and (max-width: 1304px) {
  .cta-list {
    flex-direction: column;
    align-items: center;
    gap: 4rem;
  }
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .cta-list {
    flex-direction: column;
    gap: 5vw;
  }

  .cta-list__item:nth-child(1) {
    padding: 5vw 8vw;
    gap: 3.5vw;
    align-items: flex-start;
  }

  .cta-list__item:nth-child(1) a {
    height: 14vw;
  }

  .cta-list__item:nth-child(1) p:nth-child(1) {
    font-size: 90%;
  }

  .cta-list__item:nth-child(1) .cta-list__item__text{
    font-size: 100%;
  }

  .cta-list__item:nth-child(2) {
    height: 48vw;
  }

  .cta-list__item:nth-child(2) > .cta-list__item {
    min-height: 0;
  }

  .cta-list__item:nth-child(2) .cta-list__item__text {
    font-size: 280%;
    gap: 0.1em;
  }

  .cta-list__item:nth-child(2) .cta-list__item__text::before {
    width: 0.6em;
    height: 0.8em;
  }

  .cta-contact {
    flex-direction: column;
  }

  .cta-contact__img {
    width: 100%;
    padding-top: 10vw;
  }

  .cta__tel {
    padding-top: 10vw;
  }
}

/* サービス一覧（衛生）
==================================================== */
.service-list {
  gap: 4rem 3rem;
}

.service-list__data-source {
  display: none;
}

.service-list__link {
  transition: 0.2s opacity;
  background-color: var(--color-white);
}

.service-list__link:focus-visible {
  opacity: 0.6;
}

@media (any-hover: hover) {
  .service-list__link:hover {
    opacity: 0.6;
  }
}

.service-list__header {
  gap: 1em 2em;
  position: relative;
  grid-template-areas: "thumbnail title";
}

.service-list__title {
  font-size: 150%;
  position: absolute;
  line-height: 1.7;
  top: 0;
  bottom: 0;
  margin: auto 0;
}

.service-list__price {
  font-size: 200%;
  color: var(--color-caution);
}

.service-list__overview {
  padding-bottom: 1.5em;
}

.service-list__detail {
  background-color: var(--color-main);
  width: 33rem;
  color: var(--color-white);
  text-align: center;
  padding: 0.5em;
  border-radius: 10px 0 7px 0;
}

.service-list__price__note {
  font-size: 70%;
}

.service-list__hygiene .service-list__link {
  border: 2px solid var(--color-hygiene);
}

.service-list__hygiene .service-list__detail {
  background-color: var(--color-hygiene);
}

.service-list__eco .service-list__link {
  border: 2px solid var(--color-eco);
}

.service-list__eco .service-list__detail {
  background-color: var(--color-eco);
}

.p-hygiene h2[data-sub]::before {
  color: var(--color-hygiene)
}

.p-hygiene .common-head:before {
  background-color: var(--color-hygiene)
}

.p-eco h2[data-sub]::before {
  color: var(--color-eco)
}

.p-eco .common-head:before {
  background-color: var(--color-eco)
}

@media screen and (max-width: 768px) {
  .service-list {
    gap: 10vw;
    grid-template-columns: auto;
  }

  .service-list__link{
    padding: 5vw 3vw;
  }

  .service-list__header {
    gap: 1em;
    grid-template-columns: 8em 1fr;
  }

  .service-list__thumbnail {
    width: 8em;
    height: 8em;
  }

  .service-list__title {
    font-size: 120%;
  }

  .service-list__price {
    font-size: 180%;
  }

  .service-list__overview {
    padding-bottom: 0;
  }

  .service-list__detail {
    position: relative;
    width: auto;
    border-radius: 100vmax;
    padding: 0.8em 0;
  }

  .service-list__price__note {
    font-size: 60%;
  }
}

/* トップ - 事業紹介（コーポレート）
==================================================== */
.p-business .wp-block-hsmt-heading-with-sub{
  width: 1240px;
}

.p-business .wp-block-columns{
  max-width: 1000px;
  margin: 0 auto;
}

.p-business .wp-block-columns {
  align-items: stretch !important;
}

.p-business .wp-block-column {
  display: flex !important;
  flex-direction: column;
  flex-basis: 0 !important;
  flex-grow: 1 !important;
}

.p-business .wp-block-column > .wp-block-group,
.p-business .wp-block-column .wp-block-group__inner-container {
  display: flex !important;
  flex-direction: column;
  flex-grow: 1 !important;
  height: 100% !important;
}

.p-business .wp-block-cover {
  flex-grow: 1 !important;
  height: 100% !important;
  width: 100%;
  position: relative !important;
  transition: opacity 0.3s ease;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

.p-business .wp-block-cover__inner-container {
  display: flex;
  flex-direction: column;
  justify-content: flex-start !important;
  height: 100%;
}

.p-business > .wp-block-cover__inner-container .wp-block-cover__inner-container {
  padding-top: 20rem;
}

.p-business h3 a,
.p-business p {
  color: var(--color-white);
}

.p-business p {
  padding: 2em;
}

.p-business .wp-block-cover__inner-container,
.p-business .wp-block-cover h3,
.p-business .wp-block-cover h3 a {
  position: static !important;
  transform: none !important;
}

.p-business .wp-block-columns .wp-block-cover:hover {
  opacity: 0.7;
  cursor: pointer;
}

.p-business .wp-block-columns .wp-block-cover h3 a:hover{
  opacity: 1;
}

.p-business .wp-block-columns .wp-block-cover h3 a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
}

.p-business .wp-block-cover p,
.p-business .wp-block-button {
  position: relative;
  z-index: 10;
}

.p-business .wp-block-cover__background{
  background-color: transparent !important;
}

@media screen and (max-width: 992px) {
  .p-business .wp-container-core-columns-is-layout-9d6595d7 {
    padding-top: 4rem;
  }

  .p-business .wp-block-cover__inner-container {
    padding-top: 0;
  }

  .p-business{
    margin: 0;
  }

  .p-business .container{
    padding: 0;
  }

  .p-business p {
    padding: 1em;
  }
}

@media screen and (max-width: 768px) {
  .p-business.wp-block-cover{
    padding-right: 0;
    padding-left: 0;
  }

  .p-business .wp-container-core-columns-is-layout-9d6595d7 {
    padding-top: 4vw;
  }

  .p-business > .wp-block-cover__inner-container .wp-block-cover__inner-container {
    padding-top: 30vw;
  }

  .p-business .wp-block-cover {
    min-height: auto;
  }

  .p-business p {
    padding: 6vw;
  }
}

/* トップ - 会社情報（コーポレート）
==================================================== */
.wp-block-group:nth-of-type(2) .corp-flex .wp-container-core-columns-is-layout-9d6595d7 {
  flex-direction: row-reverse;
}

.wp-block-group .corp-flex .wp-container-core-columns-is-layout-9d6595d7 .wp-block-column:nth-child(1) {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.wp-block-group > .wp-block-group__inner-container > .wp-block-cover{
  padding: 0;
}

.wp-block-group .corp-flex .wp-container-core-columns-is-layout-9d6595d7 h3,
.wp-block-group .corp-flex .wp-container-core-columns-is-layout-9d6595d7 p {
  max-width: 54rem;
  width: 100%;
}

.wp-block-group .corp-flex .wp-container-core-columns-is-layout-9d6595d7 h3 {
  padding: 0 2rem;
}

.wp-block-group .corp-flex .wp-container-core-columns-is-layout-9d6595d7 p {
  padding: 3rem 2rem 0;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .wp-block-group .corp-flex .wp-container-core-columns-is-layout-9d6595d7 h3 {
    padding: 0 7vw;
  }

  .wp-block-group .corp-flex .wp-container-core-columns-is-layout-9d6595d7 p {
    padding: 5vw 7vw 10vw;
  }

  .wp-block-group:nth-of-type(2) .corp-flex .wp-container-core-columns-is-layout-9d6595d7,
  .wp-block-group .corp-flex .wp-container-core-columns-is-layout-9d6595d7 {
    flex-direction: column-reverse;
  }
}

/* CTA - リクルート（コーポレート）
==================================================== */
.section--recruit{
  background-image: url(https://corp.bouken7.com/wp-content/uploads/cta.jpg);
  background-repeat: no-repeat;
  background-size: cover;
}

.section--recruit h2[data-sub]::before {
  color: #7cffff;
}

.section--recruit h2[data-sub]::after {
  background-color: var(--color-white);
}

.section--recruit h2 {
  color: var(--color-white);
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .section--recruit{
    background-position: center;
  }
}

/* 下層 - 会社情報 - ごあいさつ（コーポレート）
==================================================== */
.p-message{
  margin-bottom: -15rem;
}

.p-message .wp-block-cover {
  height: 35rem;
}

.p-message p{
  max-width: 920px;
  margin: 0 auto;
}

.p-message h2[data-sub]::before,
.p-philosophy h2[data-sub]::before {
  color: var(--custom-secondary-color);
}

.p-message h3 {
  font-weight: 700;
  color: var(--custom-primary-color);
  font-size: 175%;
  padding-top: 2em;
}

.p-message figure {
  padding-top: 5rem;
}

.p-message strong {
  font-size: 150%;
}

.p-message .wp-block-cover + .wp-block-group {
  position: relative;
  top: -15rem;
}

.p-message h3 {
  padding-bottom: 1em;
  line-height: 1.7;
}

.p-message p + p {
  margin-top: 1em;
}

.p-message .has-text-align-right + .has-text-align-right {
  margin-top: 0;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .p-message{
    margin-bottom: -30vw;
  }

  .p-message .wp-block-cover {
    height: 55vw;
  }

  .p-message .wp-block-cover + .wp-block-group {
    top: -30vw;
  }

  .p-message figure{
    padding-top: 19vw;
  }

  .p-message figure img{
    object-fit: cover;
    object-position: right;
    height: 64vw !important;
  }

  .p-message h3 {
    text-align: left;
    font-size: 122%;
  }

  .p-message strong {
    font-size: 110%;
  }
}

/* 下層 - 会社情報 - 企業理念（コーポレート）
==================================================== */
.p-philosophy{
  padding: 0;
}

.p-philosophy .wp-block-column-is-layout-flow .wp-block-list li::before {
  background-color: var(--color-white);
}

.p-philosophy .wp-block-column-is-layout-flow p:nth-of-type(1) {
  color: var(--color-accent);
  font-size: 220%;
  line-height: 1.75;
}

.p-philosophy .wp-block-column-is-layout-flow .wp-block-heading {
  font-weight: 700;
  color: var(--color-accent);
  border-left: 6px solid var(--color-accent);
  padding-bottom: 0;
  margin-bottom: 0.8em;
  padding-left: 0.3em;
  margin-top: 6rem;
}

.p-philosophy .wp-block-list{
  padding-left: 0;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .p-philosophy .wp-block-column-is-layout-flow p:nth-of-type(1) {
    font-size: 200%;
  }

  .p-philosophy .wp-block-column-is-layout-flow .wp-block-heading{
    margin-top: 10vw;
    margin-bottom: 2vw;
  }
}

/* 下層 - 会社情報 - 技術資格（コーポレート）
==================================================== */
.p-technical + .wp-block-table{
  max-width: 100%;
}

.p-technical + .wp-block-table th,
.p-technical + .wp-block-table td {
  width: 25% !important;
  padding: 0 1em;
}

.p-technical + .wp-block-table td a {
  display: flex;
  align-items: center;
}

.p-technical + .wp-block-table th:nth-child(1),
.p-technical + .wp-block-table tr td:nth-child(1) {
  flex: 0 0 30% !important;
  width: 30% !important;
}

.p-technical + .wp-block-table th:nth-child(2),
.p-technical + .wp-block-table tr td:nth-child(2) {
  flex: 0 0 32% !important;
  width: 32% !important;
}

.p-technical + .wp-block-table th:nth-child(3),
.p-technical + .wp-block-table tr td:nth-child(3) {
  flex: 0 0 15% !important;
  width: 15% !important;
}

.p-technical + .wp-block-table th:nth-child(4),
.p-technical + .wp-block-table tr td:nth-child(4) {
  flex: 0 0 23% !important;
  width: 23% !important;
}

.p-technical + .wp-block-table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.p-technical + .wp-block-table table {
  min-width: 1240px !important;
  width: 100% !important;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
  .p-technical + .wp-block-table table {
    min-width: 1030px !important;
  }

  .p-technical + .wp-block-table th:nth-child(1),
  .p-technical + .wp-block-table tr td:nth-child(1) {
    flex: 0 0 27% !important;
    width: 27% !important;
  }
}

/* 下層 - 会社情報 - 営業所案内（コーポレート）
==================================================== */
.office-list {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem 2%;
}

.office-list__item {
  width: 32%;
  background-color: var(--color-white);
  padding: 0 2rem 2rem;
  border-radius: 10px;
}

.office__media {
  margin-top: 1em;
  width: 100%;
  height: 20rem;
}

.office__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.office__name {
  margin-top: 2rem;
}

.office__address p {
  font-style: normal;
}

@media screen and (max-width: 992px) {
  .office-list__item {
    width: 49%;
    background-color: var(--color-white);
  }
}

@media screen and (max-width: 768px) {
  .office-list__item {
    width: 100%;
    background-color: var(--color-white);
    padding: 0 4vw 4vw;
  }

  .office__media {
    height: 45vw;
  }
}

/* 下層 - プライバシーポリシー（コーポレート）
==================================================== */
.page-id-3 [data-layout="1column"] {
  max-width: 900px;
  margin: 0 auto;
}

.page-id-3 ol.wp-block-list li {
  display: list-item;
  list-style-type: decimal;
  list-style-position: outside;
}

@media screen and (max-width: 992px) {
}

@media screen and (max-width: 768px) {
}
