/* 採用サイトの見た目。tools/wp/build-theme.mjs が site.css（SWELL に無い部品の形）と theme/brand.css から作る。直接は直さない */
/* 1. 変数 ---------------------------------------------------------------- */
:root {
  color-scheme: light;

  /* 色は会社ロゴの緑と、墨・灰だけを使う。コントラスト比はページの地（--color-bg）に対する値 */
  --color-logo: #20943C;       /* 図形用。コントラスト比 3.8 のため文字には使わない */
  --color-link: #1B7F33;       /* リンクとボタン。コントラスト比 4.9 */
  --color-link-hover: #146327; /* コントラスト比 7.1。囲みの地（--color-bg-sub）の上のリンクにも使う */
  --color-text: #252523;
  --color-text-sub: #5C6067;
  --color-line: #E0DDD5;
  --color-line-light: #EEEBE4;
  --color-bg: #FBF8F1;         /* 書籍用紙に近い、ごく淡いクリーム色 */
  --color-bg-sub: #F4F0E6;     /* 囲みの地 */

  /* BIZ UDPゴシック（本文）と BIZ UDP明朝（見出し・太字のみ）は fonts.css で読み込む */
  --font-gothic: "BIZ UDPGothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Segoe UI", system-ui, Meiryo, sans-serif;
  --font-mincho: "BIZ UDPMincho", "BIZ UDMincho", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;

  --content-width: 720px;  /* 本文17pxで1行およそ42文字 */
}


/* 補足の文 */
#body_wrap .post_content .note {
  font-size: .92rem;
  color: var(--color-text-sub);
}

/* 本文の中の囲み（連絡先・補足） */
#body_wrap .post_content .info-box {
  margin-top: 3rem;
  padding: 1.5rem;
  background: var(--color-bg-sub);
  border-left: 2px solid var(--color-logo);
}

#body_wrap .post_content .info-box h3 {
  margin-top: 0;
}

#body_wrap .post_content .info-box > :last-child {
  margin-bottom: 0;
}

/* 採用窓口のアドレスをコピーする・メールソフトを開く（応募ページ） */
#body_wrap .post_content .mail-assist {
  margin-top: 1rem;
}

#body_wrap .post_content .mail-assist__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}

#body_wrap .post_content .mail-assist__button {
  min-height: 44px;
  padding: .5rem 1.1rem;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid var(--color-text);
  border-radius: 2px;
  cursor: pointer;
}

#body_wrap .post_content .mail-assist__button:hover {
  color: #fff;
  background: var(--color-text);
}

#body_wrap .post_content .mail-assist__status {
  margin: .7rem 0 0;
  font-size: .9rem;
  color: var(--color-text-sub);
}

#body_wrap .post_content .mail-assist__status:empty {
  display: none;
}

/* 見出しと説明が組になった一覧（業務内容など） */
#body_wrap .post_content .item-list {
  padding: 0;
  list-style: none;
}

#body_wrap .post_content .item-list > li {
  position: relative;
  margin-bottom: .4rem;
  padding: .2rem 0 .6rem 1.1em;
}

#body_wrap .post_content .item-list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .95em;
  width: .6em;
  height: 1px;
  background: var(--color-text-sub);
}

#body_wrap .post_content .item-list__title {
  display: block;
  font-weight: 700;
}

#body_wrap .post_content .item-list__text {
  display: block;
  font-size: .93rem;
  color: var(--color-text-sub);
}

/* 引用（代表挨拶） */
#body_wrap .post_content .quote {
  margin: 3.6rem 0;
}

#body_wrap .post_content .quote blockquote {
  margin: 0 0 .4rem;
  font-family: var(--font-mincho);
  font-size: 1.2rem;
  font-weight: 700;
}

#body_wrap .post_content .quote blockquote p {
  margin: 0;
}

#body_wrap .post_content .quote figcaption {
  font-size: .9rem;
  color: var(--color-text-sub);
}

/* 署名（代表挨拶） */
#body_wrap .post_content .signature {
  margin-top: 3.6rem;
  text-align: right;
}


/* 13. 会社概要・組織図 --------------------------------------------------- */
#body_wrap .post_content .company-profile > p {
  padding-left: 1rem;
}

#body_wrap .post_content .org-chart__company {
  margin-bottom: 1.6rem;
  padding: 1rem 0 1.2rem;
  border-top: 2px solid var(--color-text);
}

#body_wrap .post_content .org-chart__company-name {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
}

#body_wrap .post_content .org-chart__office {
  margin-bottom: 1.2rem;
  padding: 1.5rem 0 1rem;
  border-top: 1px solid var(--color-line);
}

#body_wrap .post_content .org-chart__office-head {
  display: flex;
  align-items: baseline;
  gap: .9rem;
  margin-bottom: 1.1rem;
}

#body_wrap .post_content .org-chart__office-name {
  margin: 0;
  font-size: 1.1rem;
}

#body_wrap .post_content .org-chart__office-location {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--color-text-sub);
}

#body_wrap .post_content .org-chart__departments {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.3rem;
}

#body_wrap .post_content .org-chart__department {
  padding: .2rem 0 .2rem 1rem;
  border-left: 2px solid var(--color-line);
}

#body_wrap .post_content .org-chart__department.is-hiring {
  border-left-color: var(--color-text);
}

#body_wrap .post_content .org-chart__department-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin-bottom: .25rem;
}

#body_wrap .post_content .org-chart__department-name {
  margin: 0;
  font-size: 1rem;
}

#body_wrap .post_content .org-chart__badge {
  padding: .12rem .5rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
  white-space: nowrap;
  color: #fff;
  background: var(--color-text);
  border-radius: 1px;
}

#body_wrap .post_content .org-chart__badge--closed {
  color: var(--color-text-sub);
  background: none;
  border: 1px solid var(--color-line);
}

#body_wrap .post_content .org-chart__english {
  margin: 0 0 .5rem;
  font-size: .7rem;
  letter-spacing: .06em;
  color: var(--color-text-sub);
}

#body_wrap .post_content .org-chart__role {
  margin: 0 0 .35rem;
  font-size: .95rem;
  font-weight: 700;
}

#body_wrap .post_content .org-chart__detail {
  margin: 0;
  font-size: .85rem;
  color: var(--color-text-sub);
}

#body_wrap .post_content .org-chart__jobs {
  display: grid;
  gap: .4rem;
  margin: .8rem 0 0;
  padding: .8rem 0 0;
  list-style: none;
  border-top: 1px solid var(--color-line-light);
}

#body_wrap .post_content .org-chart__jobs li {
  position: relative;
  margin: 0;
  padding-left: 1em;
  font-size: .88rem;
}

#body_wrap .post_content .org-chart__jobs li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .9em;
  width: .5em;
  height: 1px;
  background: var(--color-text-sub);
}

/* 14. 企業理念 ----------------------------------------------------------- */
#body_wrap .post_content .philosophy-block {
  padding: 2.6rem 0 1.6rem;
  border-top: 1px solid var(--color-line);
}

#body_wrap .post_content .philosophy-block__label {
  margin-bottom: .6rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .24em;
  color: var(--color-text-sub);
}

#body_wrap .post_content .philosophy-block h2 {
  margin: 0 0 1.2rem;
  padding: 0;
  font-family: var(--font-gothic);
  font-size: .95rem;
  letter-spacing: .06em;
  color: var(--color-text-sub);
  border: 0;
}

#body_wrap .post_content .philosophy-block__statement {
  max-width: 26em;
  margin: 0;
  font-family: var(--font-mincho);
  font-size: clamp(1.3rem, 1.05rem + 1vw, 1.9rem);
  font-weight: 700;
  line-height: 1.75;
}

#body_wrap .post_content .philosophy-block__english {
  display: block;
  margin-top: .6rem;
  font-family: var(--font-gothic);
  font-size: .74rem;
  font-weight: 400;
  letter-spacing: .08em;
  color: var(--color-text-sub);
}

#body_wrap .post_content .philosophy-block__text {
  max-width: 38em;
  margin: 1.2rem 0 0;
  font-size: .95rem;
  color: var(--color-text-sub);
}

#body_wrap .post_content .philosophy-block__notes {
  display: grid;
  gap: .5rem;
  max-width: 34em;
  margin: 1.4rem 0 0;
  padding: 0;
  list-style: none;
}

#body_wrap .post_content .philosophy-block__notes li {
  margin: 0;
  padding: .15rem 0 .15rem .9rem;
  font-size: .92rem;
  color: var(--color-text-sub);
  border-left: 2px solid var(--color-line);
}

#body_wrap .post_content .philosophy-block__notes b {
  margin-right: .4em;
  color: var(--color-text);
}

#body_wrap .post_content .philosophy-block .grid {
  margin-top: 1.8rem;
}

#body_wrap .post_content .value-list {
  display: grid;
  gap: .4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

#body_wrap .post_content .value-list li {
  position: relative;
  margin: 0;
  padding-left: 1.1em;
  font-size: .92rem;
  color: var(--color-text-sub);
}

#body_wrap .post_content .value-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .9em;
  width: .5em;
  height: 1px;
  background: var(--color-text-sub);
}

/* 社風ページの行動指針 */
#body_wrap .post_content .value-group {
  margin-bottom: 1.6rem;
}

/* 15. 会社の風景 --------------------------------------------------------- */
#body_wrap .post_content .photo {
  margin: 0 0 1.2rem;
  border-top: 2px solid var(--color-text);
}

#body_wrap .post_content .photo__caption {
  padding: 1.1rem 0 1.5rem;
}

#body_wrap .post_content .photo__title {
  margin: 0 0 .6rem;
  padding: 0;
  font-family: var(--font-gothic);
  font-size: 1.02rem;
  border: 0;
}

#body_wrap .post_content .photo__text {
  margin: 0;
  font-size: .95rem;
  color: var(--color-text-sub);
}


/* 17. 用語集 ------------------------------------------------------------- */
#body_wrap .post_content .glossary-index {
  margin-bottom: 2.4rem;
  padding: 1.1rem 1.3rem;
  background: var(--color-bg-sub);
  border-left: 2px solid var(--color-line);
}

#body_wrap .post_content .glossary-index__title {
  margin-bottom: .5rem;
  font-weight: 700;
  letter-spacing: .06em;
}

#body_wrap .post_content .glossary-index ul {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem .9rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

#body_wrap .post_content .glossary-index li {
  margin: 0;
}

#body_wrap .post_content .glossary-index a {
  display: inline-flex;
  color: var(--color-link-hover);
  align-items: center;
  min-height: 38px;
  font-size: .9rem;
  font-weight: 700;
}

#body_wrap .post_content .glossary-term {
  padding: 1.3rem 0;
  border-bottom: 1px solid var(--color-line-light);
}

#body_wrap .post_content .glossary-term__name {
  margin: 0 0 .4rem;
  font-size: 1.1rem;
  letter-spacing: 0;
}

#body_wrap .post_content .glossary-term__english {
  display: block;
  margin-top: .2rem;
  font-size: .74rem;
  font-weight: 400;
  letter-spacing: .04em;
  color: var(--color-text-sub);
}

#body_wrap .post_content .glossary-term__definition {
  margin-bottom: .5rem;
}

/* 18. 働き方が合うか確かめる --------------------------------------------- */
#body_wrap .post_content .fit-check-intro {
  margin-bottom: 2.4rem;
  padding: 1rem 1.2rem;
  background: var(--color-bg-sub);
  border-left: 2px solid var(--color-line);
}

#body_wrap .post_content .fit-check-intro p {
  margin: 0;
}

#body_wrap .post_content .fit-check-question {
  padding: 1.7rem 0 1.9rem;
  border-top: 1px solid var(--color-line);
}

#body_wrap .post_content .fit-check-question.is-different {
  border-top-color: var(--color-text-sub);
}

#body_wrap .post_content .fit-check-question__number {
  margin-bottom: .5rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  color: var(--color-text-sub);
}

#body_wrap .post_content .fit-check-question__scene {
  margin: 0 0 1.1rem;
  font-size: 1.05rem;
  line-height: 1.75;
  letter-spacing: 0;
}

#body_wrap .post_content .fit-check-question__options {
  display: grid;
  gap: .6rem;
}

@media (min-width: 768px) {
  #body_wrap .post_content .fit-check-question__options {
    grid-template-columns: 1fr 1fr;
  }
}

#body_wrap .post_content .fit-check-question__option {
  min-height: 56px;
  padding: .9rem 1rem;
  font-family: inherit;
  font-size: .95rem;
  line-height: 1.7;
  text-align: left;
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 2px;
  cursor: pointer;
}

#body_wrap .post_content .fit-check-question__option:hover:not(:disabled) {
  border-color: var(--color-link);
}

#body_wrap .post_content .fit-check-question__option:disabled {
  cursor: default;
  opacity: .5;
}

#body_wrap .post_content .fit-check-question__option.is-selected {
  font-weight: 700;
  background: var(--color-bg-sub);
  border: 2px solid var(--color-link);
  opacity: 1;
}

#body_wrap .post_content .fit-check-question__answer {
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-line-light);
}

#body_wrap .post_content .fit-check-question__answer-title {
  margin-bottom: .4rem;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--color-text-sub);
}

#body_wrap .post_content .fit-check-question__difference {
  margin: 0;
  padding: .7rem 1rem;
  font-size: .92rem;
  background: var(--color-bg-sub);
  border-left: 2px solid var(--color-text-sub);
}

#body_wrap .post_content .fit-check-result {
  margin-top: 3rem;
  padding-top: 1.8rem;
  border-top: 2px solid var(--color-text);
}


/* ==========================================================================
   専門教育出版 採用サイト：SWELL の上に重ねる見た目
   モチーフは会社ロゴの緑と「」（正方形のマスで描くカギ括弧）。ほかは SWELL の部品の形を生かす。
   ========================================================================== */

:root {
  --rs-green: #1B7F33;        /* 文字・ボタン。白地でのコントラスト比 4.9 */
  --rs-green-logo: #20943C;   /* 飾り（「」のマス・線）。文字には使わない */
  --rs-green-dark: #146327;   /* ボタンを押したとき */
  --rs-green-tint: #F2F7F3;   /* 帯の地 */
  --rs-ink: #252523;
  --rs-sub: #5C6067;
  --rs-line: #E3E6E2;

  /* SWELL の書体を、自社で配信する BIZ UDP ゴシックにする（本文）。見出しは BIZ UDP 明朝 */
  --swl-font_family: "BIZ UDPGothic", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", Meiryo, sans-serif;
  --rs-font-mincho: "BIZ UDPMincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

body {
  font-feature-settings: "palt" 1;
}

/* ---- 「」のマス -------------------------------------------------------------------
   左上は「右へ1マス・下へ2マス」、右下はその向きを反対にした形。マスの大きさは --bracket-cell */
.heading-text,
.c-pageTitle__inner,
.rs-hero__title,
.c-headLogo .brand__sub,
.rs-cta__title {
  --bracket-cell: 6px;
  position: relative;
  display: inline-block;
}

.heading-text::before,
.heading-text::after,
.c-pageTitle__inner::before,
.c-pageTitle__inner::after,
.rs-hero__title::before,
.rs-hero__title::after,
.c-headLogo .brand__sub::before,
.c-headLogo .brand__sub::after,
.rs-cta__title::before,
.rs-cta__title::after {
  content: "";
  position: absolute;
  width: var(--bracket-cell);
  height: var(--bracket-cell);
  background: var(--rs-green-logo);
}

.heading-text::before,
.c-pageTitle__inner::before,
.rs-hero__title::before,
.c-headLogo .brand__sub::before,
.rs-cta__title::before {
  left: 0;
  top: 0;
  box-shadow:
    var(--bracket-cell) 0 0 var(--rs-green-logo),
    0 var(--bracket-cell) 0 var(--rs-green-logo),
    0 calc(var(--bracket-cell) * 2) 0 var(--rs-green-logo);
}

.heading-text::after,
.c-pageTitle__inner::after,
.rs-hero__title::after,
.c-headLogo .brand__sub::after,
.rs-cta__title::after {
  right: 0;
  bottom: 0;
  box-shadow:
    calc(var(--bracket-cell) * -1) 0 0 var(--rs-green-logo),
    0 calc(var(--bracket-cell) * -1) 0 var(--rs-green-logo),
    0 calc(var(--bracket-cell) * -2) 0 var(--rs-green-logo);
}

/* ---- ヘッダー ---------------------------------------------------------------------- */
.l-header,
.l-fixHeader {
  border-top: 3px solid var(--rs-green-logo);
  border-bottom: 1px solid var(--rs-line);
  box-shadow: none;
}

/* ヘッダーの中身は、ページの幅（SWELL の container_size）にそろえる。画面いっぱいに広げない */
#header .l-header__inner,
#fix_header .l-fixHeader__inner {
  max-width: calc(var(--container_size, 1200px) + 96px);
  margin-left: auto;
  margin-right: auto;
}

.c-headLogo__link {
  font-family: var(--rs-font-mincho);
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: .08em;
  color: var(--rs-ink);
  white-space: nowrap;
}

.c-headLogo .brand__sub {
  --bracket-cell: 4px;
  margin-left: .45em;
  padding: 0 .7em;
}

.c-gnav .ttl {
  font-weight: 700;
  letter-spacing: .04em;
}

/* メニューの最後（応募する）はボタンにする。いつでも応募へ進めるように */
.c-gnav > li:last-child {
  display: flex;
  align-items: center;
}

.c-gnav > li:last-child > a {
  height: auto;
  line-height: 1.4;
  margin-left: .6rem;
  padding: .55rem 1.3rem;
  border-radius: 999px;
  background: var(--rs-green);
  color: #fff;
}

.c-gnav > li:last-child > a:hover {
  background: var(--rs-green-dark);
  color: #fff;
}

.c-gnav > li:last-child > a::after {
  content: none;
}

.c-gnav .sub-menu a::before {
  content: none;
}

.c-gnav .sub-menu {
  width: 21rem;
}

/* スマホ：ヘッダーの右の「応募」ボタン（SWELL のカスタムボタン）と、メニューを開くボタン */
.l-header__customBtn {
  border-radius: 4px;
}

.l-header__menuBtn {
  background: none;
  color: var(--rs-ink);
}

.l-header__menuBtn .c-iconBtn {
  color: var(--rs-ink);
}

/* スマホ：画面の下に常に出るメニュー（募集職種・よくある質問・応募する） */
#fix_bottom_menu {
  background: #fff;
  border-top: 1px solid var(--rs-line);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, .06);
  color: var(--rs-green);
}

#fix_bottom_menu .menu-item a {
  color: var(--rs-green);
  font-weight: 700;
}

#fix_bottom_menu a[href$="/apply/"] {
  background: var(--rs-green);
  color: #fff;
}

/* ---- ページの見出し（h1） ------------------------------------------------------------ */
#body_wrap .c-pageTitle[data-style] {
  border: 0;
  background: none;
}

#body_wrap .c-pageTitle .c-pageTitle__inner {
  --bracket-cell: 7px;
  float: none;
  display: inline-block;
  margin-left: -20px;
  padding: 4px 20px;
  border: 0;
  background: none;
  font-family: var(--rs-font-mincho);
  font-weight: 700;
  line-height: 1.5;
}

/* トップページは、見出しの帯（rs-hero）がページの名前を兼ねるので、ページ見出しは出さない */
.home .c-pageTitle,
.home .p-breadcrumb {
  display: none;
}

/* ---- 本文の見出し ------------------------------------------------------------------- */
.post_content h2 {
  margin: 3.6em 0 1.2em;
  padding: 0 0 .55em;
  background: none;
  color: var(--rs-ink);
  border: 0;
  border-bottom: 1px solid var(--rs-line);
  font-family: var(--rs-font-mincho);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .03em;
}

.post_content h2::before,
.post_content h2::after {
  content: none;
}

.post_content h2 .heading-text {
  margin-left: -16px;
  padding: 2px 16px;
}

.post_content h3 {
  margin: 2.4em 0 .8em;
  padding: .1em 0 .1em .8em;
  background: none;
  border: 0;
  border-left: 4px solid var(--rs-green-logo);
  font-weight: 700;
  line-height: 1.5;
}

.post_content h3::before,
.post_content h3::after {
  content: none;
}

/* ---- ボタンの並び --------------------------------------------------------------------- */
.post_content .rs-actions {
  margin: 1.8em 0;
}

/* グループのブロックは、中に wp-block-group__inner-container の枠が入る。並べるのはその枠の中 */
.post_content .rs-actions > .wp-block-group__inner-container,
.post_content .rs-actions:not(:has(> .wp-block-group__inner-container)) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8rem 1rem;
}

.post_content .rs-actions .swell-block-button {
  margin: 0;
}

/* ---- トップ：見出しの帯 ---------------------------------------------------------------- */
.rs-hero .rs-hero__label {
  margin: 0 0 1rem;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .2em;
  color: var(--rs-green);
}

.rs-hero .rs-hero__title {
  --bracket-cell: 9px;
  margin: 0 0 1.2rem -26px;
  padding: 6px 26px;
  font-family: var(--rs-font-mincho);
  font-size: clamp(1.7rem, 1.2rem + 2.2vw, 2.6rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .03em;
  color: var(--rs-ink);
}

.rs-hero .rs-hero__lead {
  max-width: 38em;
  font-size: 1.05rem;
  line-height: 1.95;
  color: var(--rs-sub);
}

/* 最初の画面は、左に文、右に自社の写真 */
.rs-hero .rs-hero__cols {
  align-items: center;
}

.rs-hero .rs-hero__photo,
.rs-hero .rs-hero__photo img {
  margin: 0;
  width: 100%;
}

.rs-hero .rs-hero__photo img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 6px;
}

/* 事実の札（累計申込者数・実施国数） */
.rs-hero .rs-hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .6rem;
  margin: 0 0 1.4rem;
}

.rs-hero .rs-fact {
  display: inline-flex;
  align-items: baseline;
  gap: .45em;
  padding: .35em .9em;
  background: #fff;
  border: 1px solid var(--rs-line);
  border-radius: 999px;
  font-size: .82rem;
  color: var(--rs-sub);
}

.rs-hero .rs-fact b {
  font-family: var(--rs-font-mincho);
  font-size: 1.12rem;
  color: var(--rs-green);
}

/* 仕事の現場（自社の写真と、実際の用途の説明） */
.post_content .rs-scenes .wp-block-image {
  margin: 0;
}

.post_content .rs-scenes .wp-block-image img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 4px;
}

.post_content .rs-scenes figcaption,
.post_content .rs-job__photo figcaption {
  margin-top: .6em;
  font-size: .86rem;
  line-height: 1.7;
  text-align: left;
  color: var(--rs-sub);
}

.post_content .rs-scenes figcaption strong,
.post_content .rs-job__photo figcaption strong {
  color: var(--rs-ink);
}

/* 募集要項：仕事に関係する場所の写真 */
.post_content .rs-job__photo {
  margin: 1.6em 0 2em;
}

.post_content .rs-job__photo img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 4px;
}

/* ---- トップ：当社で働くということ（求める人の上） --------------------------------------- */
.post_content .rs-working {
  margin: 0 0 1.6em;
}

.post_content .rs-working h3.rs-working__title {
  margin: 0 0 .6em;
}

.post_content .rs-working p {
  margin: 0 0 .8em;
  line-height: 1.9;
}

/* ---- トップ：求める人（募集職種のカードの上） ------------------------------------------- */
.post_content .rs-ideal {
  margin: 0 0 2em;
  padding: 1.4rem 1.5rem 1.3rem;
  background: #fff;
  border: 1px solid var(--rs-line);
  border-radius: 4px;
}

.post_content .rs-ideal .rs-ideal__intro {
  margin: 0 0 .6em;
  font-weight: 700;
}

.post_content .rs-ideal ul {
  margin: 0 0 1em;
}

.post_content .rs-ideal .rs-ideal__workstyle {
  margin: 0;
  padding-top: .8rem;
  border-top: 1px solid var(--rs-line);
  font-weight: 700;
}

/* 当社が合わない方（求める人のすぐ下。求める人と同じ箱の形） */
.post_content .rs-notfit {
  margin: 0 0 2em;
  padding: 1.4rem 1.5rem 1.3rem;
  background: #fff;
  border: 1px solid var(--rs-line);
  border-radius: 4px;
}

.post_content .rs-notfit .rs-notfit__title {
  margin: 0 0 .6em;
  font-weight: 700;
}

.post_content .rs-notfit ul {
  margin: 0;
}

/* ---- トップ：募集職種のカード ----------------------------------------------------------- */
.rs-cards .swell-block-column {
  display: flex;
  flex-direction: column;
  padding: 1.4rem 1.3rem 1.3rem;
  background: #fff;
  border: 1px solid var(--rs-line);
  border-top: 3px solid var(--rs-green-logo);
  border-radius: 4px;
}

.rs-cards .rs-card__label {
  margin: 0 0 .4rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--rs-green);
}

.post_content .rs-cards h3.rs-card__title {
  margin: 0 0 .6rem;
  padding: 0;
  border: 0;
  font-size: 1.05rem;
  line-height: 1.55;
}

.rs-cards .rs-card__title a {
  color: var(--rs-ink);
  text-decoration: none;
}

.rs-cards .rs-card__text {
  margin: 0 0 1rem;
  font-size: .92rem;
  color: var(--rs-sub);
}

.rs-cards .rs-card__pay {
  margin: auto 0 1rem;
  padding-top: .8rem;
  border-top: 1px solid var(--rs-line);
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.7;
}

.rs-cards .rs-card__btn {
  margin: 0;
}

/* 想定年収の注記（カードのすぐ下に1回） */
.post_content .rs-cards__note {
  margin: .8em 0 0;
  font-size: .82rem;
  line-height: 1.7;
  color: var(--rs-sub);
}

/* 入社してからの働き方（具体的な運用） */
.post_content .rs-workstyle .swell-block-column {
  padding: 1.2rem 1.3rem;
  background: var(--rs-green-tint);
  border-radius: 4px;
}

.post_content .rs-workstyle h3 {
  margin: 0 0 .5rem;
  font-size: 1.02rem;
}

.post_content .rs-workstyle p {
  margin: 0;
  font-size: .93rem;
  color: var(--rs-sub);
}

/* ---- トップ：数字 ----------------------------------------------------------------------- */
.rs-stats .rs-stat__value {
  margin: 0;
  font-family: var(--rs-font-mincho);
  font-size: clamp(2rem, 1.5rem + 1.8vw, 2.8rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--rs-green);
}

.rs-stats .rs-stat__unit {
  margin-left: .2em;
  font-family: var(--swl-font_family);
  font-size: .9rem;
  color: var(--rs-ink);
}

.rs-stats .rs-stat__label {
  margin: .4rem 0 0;
  font-size: .85rem;
  line-height: 1.6;
  color: var(--rs-sub);
}

.rs-stats-band {
  border-top: 1px solid var(--rs-line);
  border-bottom: 1px solid var(--rs-line);
}

/* ---- トップ：特徴 ----------------------------------------------------------------------- */
.post_content .rs-features h3.rs-feature__title {
  margin: 0 0 .6rem;
  font-size: 1.02rem;
}

.rs-features .rs-feature__text {
  font-size: .95rem;
  color: var(--rs-sub);
}

/* ---- トップ：応募への案内（緑の帯） ------------------------------------------------------- */
.rs-cta {
  text-align: center;
}

.rs-cta .rs-cta__title {
  --bracket-cell: 7px;
  margin: 0 0 1rem;
  padding: 4px 22px;
  font-family: var(--rs-font-mincho);
  font-size: 1.6rem;
  font-weight: 700;
  color: #fff;
}

.rs-cta .rs-cta__title::before,
.rs-cta .rs-cta__title::after {
  --rs-green-logo: #fff;
  background: #fff;
}

.rs-cta .rs-cta__steps {
  font-weight: 700;
  line-height: 1.9;
}

.rs-cta .rs-cta__note {
  font-size: .9rem;
  opacity: .9;
}

.rs-cta .rs-actions > .wp-block-group__inner-container {
  justify-content: center;
}

.rs-cta .is-style-btn_normal a {
  background: #fff;
  color: var(--rs-green);
}

.rs-cta .is-style-btn_line a {
  border-color: #fff;
  color: #fff;
}

/* ---- 募集要項：要点 ------------------------------------------------------------------- */
.rs-job__catch {
  font-family: var(--rs-font-mincho);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--rs-green);
}

/* 左に項目名、右に中身の2列（求人票として一目で比べられるように）。スマホでは縦に積む */
.post_content .rs-summary {
  display: grid;
  grid-template-columns: 8.5em 1fr;
  margin: 1.4em 0 1.6em;
  border-top: 2px solid var(--rs-green-logo);
  font-size: .95rem;
}

.post_content .rs-summary .swell-block-dl__dt,
.post_content .rs-summary .swell-block-dl__dd {
  margin: 0;
  padding: .8rem .9rem;
  border-bottom: 1px solid var(--rs-line);
}

.post_content .rs-summary .swell-block-dl__dt {
  background: var(--rs-green-tint);
  font-weight: 700;
  color: var(--rs-ink);
}

.post_content .rs-summary .swell-block-dl__dt::before {
  content: none;
}

.post_content .rs-summary .swell-block-dl__dd p {
  margin: 0;
}

/* 選考の流れ（同期パターン）の直後に置く、職種ごとの補足（例：実技課題には英語の試験を含みます） */
.post_content .swell-block-step + .wp-block-list {
  margin: -.4em 0 1.6em;
  padding: .8em 1.1em;
  list-style: none;
  background: var(--rs-green-tint);
  border-left: 3px solid var(--rs-green-logo);
}

.post_content .swell-block-step + .wp-block-list > li {
  margin: 0;
}

/* 要点の表は、職種ごとの行（部署・給与）と全職種共通の行（同期パターン）の2つで1つに見せる */
.post_content .rs-summary--job {
  margin-bottom: 0;
}

.post_content .rs-summary--job + .rs-summary--common {
  margin-top: 0;
  border-top: 0;
}

@media (max-width: 599.98px) {
  .post_content .rs-summary {
    grid-template-columns: 1fr;
  }

  .post_content .rs-summary .swell-block-dl__dt {
    padding-bottom: .5rem;
    border-bottom: 0;
  }
}

/* ---- タブ（会社について・社風） ------------------------------------------------------------
   SWELL のタブの見出しを、左寄せ・大きめの文字・選んでいるタブに緑の下線にする */
.post_content .swell-block-tab .c-tabList {
  justify-content: flex-start;
  gap: .2rem;
  margin-bottom: 1.6em;
  border-bottom: 1px solid var(--rs-line);
}

.post_content .swell-block-tab .c-tabList__item {
  flex: 0 0 auto;
}

.post_content .swell-block-tab .c-tabList__button {
  padding: .8rem 1.3rem;
  background: none;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--rs-sub);
}

.post_content .swell-block-tab .c-tabList__button[aria-selected="true"] {
  background: none;
  color: var(--rs-green);
  border-bottom-color: var(--rs-green-logo);
}

.post_content .swell-block-tab .c-tabList__button::before,
.post_content .swell-block-tab .c-tabList__button::after {
  content: none;
}

.post_content .swell-block-tab .c-tabBody {
  padding: 0;
  border: 0;
}

/* ---- スマホ ----------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  .c-headLogo__link {
    font-size: .98rem;
  }

  #body_wrap .c-pageTitle .c-pageTitle__inner {
    --bracket-cell: 5px;
    margin-left: -14px;
    padding: 4px 14px;
  }

  .post_content h2 .heading-text {
    --bracket-cell: 5px;
    margin-left: -14px;
    padding: 2px 14px;
  }

  .rs-hero .rs-hero__title {
    --bracket-cell: 6px;
    margin-left: -16px;
    padding: 4px 16px;
  }
}

/* ---- フッター（カスタムHTMLのウィジェットに、3列の一覧と下段を入れる） ---------------------- */
.l-footer {
  border-top: 3px solid var(--rs-green-logo);
}

.l-footer,
.l-footer__widgetArea,
.l-footer__foot {
  background: #F7F9F7;
  color: var(--rs-ink);
}

.l-footer__widgetArea {
  padding: 2.6rem 0 1.6rem;
}

/* トップページは最後が緑の帯なので、帯とフッターのあいだを空けない */
.home .l-content {
  margin-bottom: 0;
  padding-bottom: 0;
}

.home .post_content > .rs-cta:last-child {
  margin-bottom: 0;
}

.w-footer:has(.site-footer__columns) {
  display: block;
}

.w-footer:has(.site-footer__columns) .w-footer__box {
  width: 100%;
  max-width: none;
  padding: 0;
}

.l-footer:has(.site-footer__copyright) .l-footer__foot {
  display: none;
}

.l-footer .site-footer__columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1.8rem 2.4rem;
}

.l-footer .link-list-heading {
  margin: 0 0 .7rem;
  padding-bottom: .5rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  color: var(--rs-green);
  border-bottom: 1px solid var(--rs-line);
}

.l-footer .link-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.l-footer .link-list li {
  margin: 0;
  font-size: .88rem;
  line-height: 1.7;
}

.l-footer .link-list li::before {
  content: none;
}

.l-footer .link-list a {
  display: inline-block;
  padding-block: .25rem;
  color: var(--rs-ink);
  text-decoration: none;
}

.l-footer .link-list a:hover {
  color: var(--rs-green);
  text-decoration: underline;
}

.l-footer .site-footer__apply {
  margin-top: 1.6rem;
}

.l-footer .site-footer__note {
  margin: 0 0 .4rem;
  font-size: .82rem;
  line-height: 1.8;
  color: var(--rs-sub);
}

.l-footer .site-footer__bottom {
  margin-top: 1.8rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--rs-line);
}

.l-footer .site-footer__copyright {
  margin-top: 1rem;
  font-size: .76rem;
  letter-spacing: .08em;
  text-align: center;
  color: var(--rs-sub);
}
