/*
Theme Name: kushida-office
version: 0.0.1
 */

/* ===== design tokens ===== */
:root {
  --color-primary: #f96801;
  --color-accent: #ffb200;
  --color-deep: #f25d01;
  --color-dark: #333e4e;
  --text-color: #444444;
  --color-line: #e3e2e0;
  --color-bg-soft: #f2f2f2;

  --heading-ja: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", sans-serif;
  --heading-en: "Marcellus", serif;
  --body-font: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", sans-serif;

  --gradient-orange: linear-gradient(
    142.354deg,
    #ffb200 8.5%,
    #f96801 51%,
    #f25d01 96%
  );
}

/* ===== cursor ===== */
@media (hover: hover) and (pointer: fine) {
  body {
    cursor: none;
  }

  .c-cursor,
  .c-cursor-follower {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10000;
    border-radius: 50%;
    pointer-events: none;
    user-select: none;
  }

  .c-cursor {
    width: 10px;
    height: 10px;
    background-color: var(--color-primary);
    transform: scale(1);
    transition: transform 0.3s cubic-bezier(0.75, -1.27, 0.3, 2.33),
      opacity 0.2s cubic-bezier(0.75, -0.27, 0.3, 1.33);
  }

  .c-cursor-follower {
    width: 30px;
    height: 30px;
    background: linear-gradient( 347deg, rgba(255, 178, 0, 0) 17.53%, rgba(249, 137, 1, 0.1) 53.19%, rgba(242, 93, 1, 0.16) 90.97% );
    transition: transform 0.6s cubic-bezier(0.75, -1.27, 0.3, 2.33),
      opacity 0.2s cubic-bezier(0.75, -0.27, 0.3, 1.33);
  }

  .c-cursor.is-active {
    transform: scale(2);
  }

  .c-cursor-follower.is-active {
    opacity: 0.9;
    transform: scale(4);
  }
}

/* ===== common ===== */

#wrapper {
  min-width: 1040px;
  overflow: hidden;
}

.flex-between {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.flex-start {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}

.ofi {
  font-family: "object-fit: cover;";
  -o-object-fit: cover;
  object-fit: cover;
}

.bold {
  font-weight: 700;
}

@media screen and (max-width: 767px) {
  #wrapper {
    min-width: 0;
    margin: 0 auto;
    box-shadow: 0 0 10px rgba(30, 30, 30, 0.3);
  }
}

/* ===== l-drawer（ドロワーメニュー） ===== */
.l-drawer {
  box-sizing: border-box;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: #ffffff;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition:
    opacity 0.4s ease,
    visibility 0.4s ease;
  z-index: 1000;
}

.l-drawer.is-open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

.l-drawer__inner {
  display: flex;
  align-items: stretch;
  width: 100%;
  height: 100%;
}

/* 左：画像（ホバーでクロスフェード） */
.l-drawer__visual {
  position: relative;
  flex: 0 0 44%;
  width: 44%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--color-bg-soft);
}

.l-drawer__img {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.04);
  transition:
    opacity 0.6s ease,
    transform 1.2s ease;
}

.l-drawer__img.is-active {
  opacity: 1;
  transform: scale(1);
}

/* 右：メニュー本体 */
.l-drawer__body {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 auto;
  padding: 96px 8% 48px;
  overflow-y: auto;
}

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

.l-drawer .menu-item {
  position: relative;
}

.l-drawer .menu-item > a {
  position: relative;
  display: inline-block;
  padding: 10px 0;
  font-family: var(--heading-ja);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.4;
  color: #222222;
  transition:
    color 0.3s ease,
    padding 0.3s ease;
}

.l-drawer .menu-item > a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--color-primary);
  transform: translateY(-50%);
  transition: width 0.3s ease;
}

/* .l-drawer .menu-item.is-hover > a {
  color: var(--color-primary);
  opacity: 1;
} */

.l-drawer .menu-item > a:hover {
  color: var(--color-primary);
  padding-left: 44px;
  opacity: 1;
}

.l-drawer .menu-item > a:hover::before {
  width: 32px;
}

/* リンク先を持たない見出し項目（「サービス」など）はホバー無効 */
.l-drawer .menu-item > a:not([data-mv]) {
  pointer-events: none;
}

/* 開いたときの段階表示 */
.l-drawer__list > .menu-item,
.l-drawer__contact {
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 0.4s ease,
    transform 0.4s ease;
}

.l-drawer.is-open .l-drawer__list > .menu-item,
.l-drawer.is-open .l-drawer__contact {
  opacity: 1;
  transform: translateY(0);
}

.l-drawer.is-open .l-drawer__list > .menu-item:nth-child(1) { transition-delay: 0.1s; }
.l-drawer.is-open .l-drawer__list > .menu-item:nth-child(2) { transition-delay: 0.15s; }
.l-drawer.is-open .l-drawer__list > .menu-item:nth-child(3) { transition-delay: 0.2s; }
.l-drawer.is-open .l-drawer__list > .menu-item:nth-child(4) { transition-delay: 0.25s; }
.l-drawer.is-open .l-drawer__list > .menu-item:nth-child(5) { transition-delay: 0.3s; }
.l-drawer.is-open .l-drawer__list > .menu-item:nth-child(6) { transition-delay: 0.35s; }
.l-drawer.is-open .l-drawer__list > .menu-item:nth-child(7) { transition-delay: 0.4s; }
.l-drawer.is-open .l-drawer__list > .menu-item:nth-child(8) { transition-delay: 0.45s; }
.l-drawer.is-open .l-drawer__contact { transition-delay: 0.5s; }

/* サブメニュー（常時表示） */
.l-drawer .sub-menu {
  display: block;
  margin: 0 0 8px;
  padding: 0;
  list-style: none;
}

.l-drawer .sub-menu .menu-item > a {
  position: relative;
  padding: 8px 0 8px 28px;
  font-size: 1.5rem;
  font-weight: 400;
  color: #444444;
}

.l-drawer .sub-menu .menu-item > a::before {
  content: "";
  width: 8px;
  height: 1px;
  left: 12px;
  background: var(--color-primary);
}

.l-drawer .sub-menu .menu-item.is-hover > a,
.l-drawer .sub-menu .menu-item > a:hover {
  padding-left: 28px;
  color: var(--color-primary);
}

.l-drawer .sub-menu .menu-item.is-hover > a::before,
.l-drawer .sub-menu .menu-item > a:hover::before {
  width: 8px;
}

/* お問い合わせボタン */
.l-drawer__contact {
  margin: 40px 0 0;
}

.l-drawer__contact::before {
  content: "CONTACT";
  display: block;
  margin: 0 0 12px;
  font-family: var(--heading-en);
  font-size: 1.3rem;
  line-height: 1;
  letter-spacing: 0.18em;
  color: var(--color-primary);
}

.l-drawer__contact a {
  position: relative;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 320px;
  min-height: 56px;
  padding: 12px 40px;
  background: var(--gradient-orange);
  border-radius: 4px;
  box-shadow: 0 10px 24px rgba(249, 104, 1, 0.25);
  color: #ffffff;
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
  transition:
    opacity 0.2s ease,
    box-shadow 0.2s ease;
}

.l-drawer__contact a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 7px;
  height: 7px;
  border-top: 2px solid #ffffff;
  border-right: 2px solid #ffffff;
  transform: translateY(-50%) rotate(45deg);
}

.l-drawer__contact a:hover {
  opacity: 0.85;
  box-shadow: 0 6px 16px rgba(249, 104, 1, 0.3);
}

/* ===== l-drawer（SP） ===== */
@media screen and (max-width: 600px) {
  .l-drawer__visual {
    flex-basis: 35%;
    width: 35%;
    /* SPはホバー切替なし → 1枚固定 */
    background-image: url("images/pages/hero-17.jpg");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  .l-drawer__img {
    display: none;
  }

  .l-drawer__body {
    justify-content: flex-start;
    padding: 68px 24px;
  }

  .l-drawer .menu-item > a {
    font-size: 1.6rem;
    padding: 8px 0;
  }

  .l-drawer__list > .menu-item > a::before {
    display: none;
  }

  .l-drawer__list > .menu-item.is-hover > a,
  .l-drawer__list > .menu-item > a:hover {
    padding-left: 0;
  }

  .l-drawer .sub-menu .menu-item > a {
    font-size: 1.3rem;
    padding: 6px 0 6px 24px;
  }

  .l-drawer__contact a {
    max-width: none;
  }
}

/* ===== c-hamburger ===== */
.c-hamburger {
  position: fixed;
  top: 34px;
  right: 40px;
  background: transparent;
  border: 0;
  padding: 0;
  width: 24px;
  height: 9px;
  z-index: 1001;
  cursor: pointer;
}

.c-hamburger__bar {
  position: absolute;
  left: 0;
  width: 24px;
  height: 2px;
  background: #444;
  transition:
    transform 0.25s ease,
    top 0.25s ease;
  z-index: 1;
}

.c-hamburger__bar:first-child {
  transform: rotate(0);
  top: 0;
}

.c-hamburger__bar:last-child {
  transform: rotate(0);
  top: 7px;
}

.c-hamburger.is-open .c-hamburger__bar:first-child {
  transform: rotate(45deg);
  top: 3.5px;
}

.c-hamburger.is-open .c-hamburger__bar:last-child {
  transform: rotate(-45deg);
  top: 3.5px;
}

@media screen and (max-width: 600px) {
  .c-hamburger {
    top: 23px;
    right: 16px;
  }
}

/* ===== l-header ===== */
.l-header {
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
}

.l-header--fixed {
  position: fixed;
}

.l-header--fixed ~ #main {
  margin-top: 76px;
}

.l-header__inner {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  width: 100%;
  min-height: 76px;
  padding: 8px 40px 8px;
  background: rgba(255, 255, 255, 0.4);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  border-bottom: 1px solid rgba(227, 226, 224, 0.3);
  transition: background 0.3s ease;
}

.l-header.is-open .l-header__inner {
  background: #ffffff;
  border-bottom-color: var(--color-line);
}

.l-header__logo {
  display: flex;
  align-items: center;
  gap: 16px;
}

.l-header__logo-ttl {
  margin: 0;
  font-size: 0;
  line-height: 1;
}

.l-header__logo-link {
  display: flex;
  align-items: center;
  gap: 16px;
}

.l-header__logo-img {
  width: 50px;
  height: auto;
}

.l-header__site-name {
  font-family:
    "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック Medium",
    "Yu Gothic Medium", sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.l-header__nav {
  display: flex;
  align-items: center;
  gap: 30px;
  flex-wrap: nowrap;
}

.l-header__nav-list {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.l-header__nav .menu-item {
  position: relative;
}

.l-header__nav .menu-item + .menu-item {
  margin: 0;
}

.l-header__nav .menu-item a {
  font-family:
    "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック Medium",
    "Yu Gothic Medium", sans-serif;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1;
  color: #222222;
  white-space: nowrap;
  padding: 8px 4px;
  display: inline-block;
  transition: color 0.2s ease;
}

.l-header__nav .menu-item > a:hover {
  color: var(--color-primary);
  opacity: 1;
}

/* アクセス中ページのメニュー */
.l-header__nav .current-menu-item > a,
.l-header__nav .current-menu-ancestor > a,
.l-header__nav .current_page_item > a,
.l-header__nav a[aria-current="page"],
.l-drawer__list .current-menu-item > a,
.l-drawer__list .current-menu-ancestor > a,
.l-drawer__list .current_page_item > a,
.l-drawer__list a[aria-current="page"] {
  color: var(--color-primary);
}

.l-header__nav .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 8px;
  vertical-align: middle;
  border-right: 1.5px solid #222222;
  border-bottom: 1.5px solid #222222;
  transform: translateY(-2px) rotate(45deg);
  transition: border-color 0.2s ease;
}

.l-header__nav .menu-item-has-children > a:hover::after {
  border-color: var(--color-primary);
}

.l-header__nav .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  min-width: 220px;
  margin: 0;
  padding: 8px 0;
  background: #ffffff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    visibility 0.2s ease;
  z-index: 10;
}

.l-header__nav .menu-item-has-children:hover > .sub-menu,
.l-header__nav .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.l-header__nav .sub-menu .menu-item {
  display: block;
}

.l-header__nav .sub-menu .menu-item a {
  display: block;
  padding: 10px 20px;
  color: #444444;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}

.l-header__nav .sub-menu .menu-item a:hover {
  background: #f5f5f5;
  opacity: 1;
}

/* sub-menu 内のアクセス中ページ (親メニューの色指定より特異度を上げる) */
.l-header__nav .sub-menu .current-menu-item > a,
.l-header__nav .sub-menu a[aria-current="page"],
.l-drawer__list .sub-menu .current-menu-item > a,
.l-drawer__list .sub-menu a[aria-current="page"] {
  color: var(--color-primary);
}

.l-header__cta {
  margin-left: 0;
}

.l-header__cta a {
  display: inline-flex;
  min-width: 120px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  background: var(--gradient-orange);
  text-align: center;
  color: #ffffff;
  font-family:
    "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック Medium",
    "Yu Gothic Medium", sans-serif;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  padding: 8px 24px;
}

@media screen and (max-width: 1000px) {
  .l-header__inner {
    padding: 12px 16px;
    min-height: 56px;
    gap: 16px;
  }

  .l-header--fixed ~ #main {
    margin-top: 56px;
  }

  .l-header__logo,
  .l-header__logo-link {
    gap: 5px;
  }

  .l-header__logo-img {
    width: 34px;
  }

  .l-header__site-name {
    font-size: 1.2rem;
  }

  .l-header__nav {
    gap: 0;
    margin-left: auto;
    font-size: 0;
  }

  .l-header__cta a {
    width: 81px;
    height: 30px;
    padding: 0;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1;
  }
}

@media screen and (max-width: 767px) {
  .l-header {
    margin: 0 auto;
    right: 0;
  }
}

/* ===== footer ===== */
.l-footer {
  background-color: #333e4e;
  color: #fff;
}

.l-footer__inner {
  width: 100%;
  max-width: 1512px;
  margin: 0 auto;
  padding: 61px 80px 85px;
  box-sizing: border-box;
}

.l-footer__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
}

.l-footer__brand-block {
  display: flex;
  flex-direction: column;
  gap: 39px;
  flex: 1 1 auto;
}

.l-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: inherit;
}

.l-footer__logo {
  display: block;
  width: 67px;
  height: 52px;
  flex: 0 0 67px;
}

.l-footer__brand-name {
  font-family: var(--heading-ja);
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
}

.l-footer__address {
  font-style: normal;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #fff;
}

.l-footer__address p {
  margin: 0;
}
.l-footer__address .tel {
  color: inherit;
}

.l-footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 144px;
}

.l-footer__nav-list a {
  display: block;
  font-family: var(--heading-ja);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  transition: opacity 0.2s ease;
}

.l-footer__nav-list a:hover {
  opacity: 0.7;
}

.l-footer__service {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.l-footer__service-head {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-family: var(--heading-ja);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  transition: opacity 0.2s ease;
}

.l-footer__service-head:hover {
  opacity: 0.7;
}

.l-footer__caret {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}

.l-footer__services {
  list-style: none;
  margin: 0 0 25px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: var(--heading-ja);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.8;
}

.l-footer__services a {
  color: #fff;
  transition: opacity 0.2s ease;
}

.l-footer__services a:hover {
  opacity: 0.7;
}

.l-footer__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 153px;
  padding: 8px 24px;
  box-sizing: border-box;
  background: var(--gradient-orange);
  color: #fff;
  font-family: var(--heading-ja);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  transition: opacity 0.2s ease;
}

.l-footer__cta:hover {
  opacity: 0.9;
}

.l-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 35px;
  font-family: "Marcellus", serif;
  font-size: 1.2rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.6);
}

.l-footer__copy {
  margin: 0;
}

.l-footer__policy {
  display: flex;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.l-footer__policy a {
  color: inherit;
  transition: opacity 0.2s ease;
}

.l-footer__policy a:hover {
  opacity: 1;
  color: #fff;
}

@media screen and (max-width: 1100px) {
  .l-footer__inner {
    padding: 48px 20px 24px;
  }
  .l-footer__top {
    flex-direction: column;
    gap: 32px;
  }
  .l-footer__nav-list {
    width: auto;
    gap: 32px;
    text-align: left;
  }
  .l-footer__services {
    gap: 6px;
  }
  .l-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 40px;
    font-size: 1rem;
  }
  .l-footer__logo {
    width: 56px;
    height: auto;
    flex: 0 0 56px;
  }
  .l-footer__brand-name {
    font-size: 1.4rem;
  }
}

/* ===== p-page-mv (固定ページ / アーカイブ 共通ヒーロー) ===== */
.p-page-mv {
  position: relative;
  width: 100%;
  height: 240px;
  background: #ffffff;
  overflow: hidden;
}

.p-page-mv.u-shading::before,
.p-page-mv.u-shading::after {
  clip-path: none;
  transition: none;
}

.p-page-mv.u-shading--right::before,
.p-page-mv.u-shading--right::after {
  left: 21%;
  right: auto;
  z-index: 10;
}

.p-page-mv.u-shading--right::before {
  top: -550px;
}

.p-page-mv.u-shading--right::after {
  top: -400px;
}

.p-page-mv__inner {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0 80px;
  display: flex;
  align-items: center;
}

.p-page-mv__txt {
  position: relative;
  z-index: 3;
}

.p-page-mv__ttl {
  font-family: var(--heading-ja);
  font-size: 4rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--text-color);
  line-height: 1.2;
  margin: 0;
}

.p-page-mv__en {
  font-family: var(--heading-en);
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--color-deep);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.4;
  margin: 12px 0 0;
}

.p-page-mv__img {
  position: absolute;
  top: 0;
  right: 0;
  width: 65.7%;
  height: 100%;
  margin: 0;
  z-index: 2;
  clip-path: polygon(420px 0, 100% 0, 100% 100%, 0 100%);
}

.p-page-mv__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width: 767px) {
  .p-page-mv {
    height: 160px;
  }
  .p-page-mv__inner {
    padding: 0 15px;
  }
  .p-page-mv__ttl {
    font-size: 2.4rem;
	-webkit-text-stroke: 2px #ffffff;
    text-stroke: 2px #ffffff;
    paint-order: stroke;
  }
  .p-page-mv__en {
    font-size: 1.2rem;
    margin-top: 8px;
  }
  .p-page-mv__img {
    width: 50%;
    clip-path: polygon(130px 0, 100% 0, 100% 100%, 0 100%);
  }
  .p-page-mv.u-shading--right::before,
  .p-page-mv.u-shading--right::after {
    left: -20%;
    transform: rotate(39deg);
    width: 300px;
  }
  .p-page-mv.u-shading--right::before {
    top: -353px;
  }
  .p-page-mv.u-shading--right::after {
    top: -253px;
  }
}

/* ===== section ===== */
.sec-inner {
  padding: 100px 0;
}

.sec-ttl {
  text-align: center;
  margin: 0;
}

.content-width {
  box-sizing: border-box;
  width: 1040px;
  padding: 0 20px;
  margin: 0 auto;
}

.content-box {
  margin: 50px 0 0;
}

@media screen and (max-width: 767px) {
  .sec-inner {
    padding: 40px 0 64px;
  }
  .content-width {
    width: 100%;
  }
}

/* ===== layout: l-container ===== */
.l-container {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-width: 1352px;
  padding: 0 40px;
  margin: 0 auto;
  z-index: 10;
}

.l-container.u-w-lg {
  max-width: 1432px;
}

.l-container.u-w-md {
  max-width: 1248px;
}

.l-container.u-w-sm {
  max-width: 1056px;
}

.l-container.u-w-xs {
  max-width: 880px;
}

@media screen and (max-width: 1000px) {
  .l-container {
    padding: 0 16px;
  }
}

/* ===== component: c-heading-section ===== */
.c-heading-section {
  position: relative;
  width: 100%;
  z-index: 1;
}

.c-heading-section__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.c-heading-section__ja {
  font-family: var(--heading-ja);
  font-size: 4rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.2;
  color: var(--text-color);
  margin: 0;
  z-index: 10;
}

.c-heading-section__en {
  font-family: var(--heading-en);
  font-size: 10rem;
  font-weight: 400;
  line-height: 0.7;
  letter-spacing: 0.02em;
  color: var(--color-line);
  margin: 0;
}

.c-heading-section__bar {
  position: relative;
  width: 100%;
  height: 2px;
  background: var(--color-line);
  overflow: hidden;
}

.c-heading-section__bar span {
  position: absolute;
  left: 0;
  top: 0;
  width: 76px;
  height: 100%;
  background: var(--gradient-orange);
}

.c-heading-section--small .c-heading-section__row {
  align-items: flex-start;
}

.c-heading-section--small .c-heading-section__ja {
  font-size: 3.2rem;
}

.c-heading-section--small .c-heading-section__en {
  font-size: 6.4rem;
  padding-top: 12px;
}

.c-heading-section--on-dark .c-heading-section__ja {
  color: #ffffff;
}

.c-heading-section--on-dark .c-heading-section__en {
  color: rgba(255, 255, 255, 0.18);
}

.c-heading-section--on-dark .c-heading-section__bar {
  background: rgba(255, 255, 255, 0.18);
}

.c-heading-section__ja,
.c-heading-section__en {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.9s ease-out,
    transform 0.9s ease-out;
  will-change: opacity, transform;
}

.c-heading-section__bar {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 1s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: clip-path;
}

.c-heading-section.is-inview .c-heading-section__ja {
  opacity: 1;
  transform: translateY(0);
}

.c-heading-section.is-inview .c-heading-section__en {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.15s;
}

.c-heading-section.is-inview .c-heading-section__bar {
  clip-path: inset(0);
  transition-delay: 0.35s;
}

.p-news__ttl,
.p-contact__lead {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.9s ease-out,
    transform 0.9s ease-out;
}

.p-news__ttl.is-inview,
.p-contact__lead.is-inview {
  opacity: 1;
  transform: translateY(0);
}

@media screen and (max-width: 1000px) {
  .c-heading-section__row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  .c-heading-section__ja {
    font-size: 2.4rem;
    order: 2;
    width: 100%;
    margin-top: -50px;
  }
  .c-heading-section__en {
    font-size: 5.6rem;
    order: 1;
    line-height: 0.9;
    width: 100%;
    text-align: right;
    white-space: nowrap;
  }
  .c-heading-section--small .c-heading-section__ja {
    font-size: 2.6rem;
  }
  .c-heading-section--small .c-heading-section__en {
    font-size: 5.6rem;
    padding-top: 0;
  }
  .c-heading-section__en-prefix {
    display: none;
  }
}

/* ===== component: c-num-card ===== */
.c-num-card-list {
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.c-num-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px;
}

.c-num-card__icon {
  flex: 0 0 138px;
  width: 138px;
  height: 138px;
  border-radius: 50%;
  background: linear-gradient(0deg, rgba(249, 104, 1, 0.05), rgba(249, 104, 1, 0.05)), #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-num-card__icon-img {
  width: 80px;
  height: 80px;
  object-fit: contain;
}

.c-num-card__body {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 4px;
}

.c-num-card__head {
  display: flex;
  gap: 8px;
  padding: 16px 0 12px;
  border-bottom: 1px solid rgba(68, 68, 68, 0.4);
}

.c-num-card__no {
  font-family: var(--heading-ja);
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1;
  color: #f96801;
  min-width: 40px;
}

.c-num-card__ttl {
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 500;
  color: #444;
  line-height: 1.6;
  margin: 0;
}

.c-num-card__txt {
  font-family: var(--body-font);
  font-size: 1.4rem;
  line-height: 1.6;
  color: #333e4e;
  margin: 0;
}

@media screen and (max-width: 1000px) {
  .c-num-card-list {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 767px) {
  .c-num-card {
    flex-wrap: wrap;
    align-items: center;
    text-align: left;
    padding: 0;
  }
  .c-num-card__icon {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
  }
  .c-num-card__icon-img {
    width: 40px;
    height: 40px;
  }
  .c-num-card__body {
    display: contents;
  }
  .c-num-card__head {
    flex: 1 1 0;
    min-width: 0;
  }
  .c-num-card__no {
    font-size: 2rem;
    min-width: 32px;
  }
  .c-num-card__txt {
    flex: 0 0 100%;
    width: 100%;
  }
}

/* ===== component: c-timeline（タイムライン: 日付 + 内容） ===== */
.c-timeline {
  margin: 48px 0 0;
  padding: 0;
  list-style: none;
}

.c-timeline__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 40px;
  padding-bottom: 48px;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s ease, transform .6s ease;
}

.c-timeline__item.is-inview {
  opacity: 1;
  transform: none;
}

.c-timeline__item:last-child {
  padding-bottom: 0;
}

.c-timeline__item::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(18% + 16px - 1px);
  width: 2px;
  background: #e3e2e0;
}

.c-timeline__item:first-child::before {
  top: 10px
}

.c-timeline__item:last-child::before {
  height: 10px;
}

.c-timeline__item::after {
  content: "";
  position: absolute;
  top: 6px;
  left: calc(18% + 14px - 5px);
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--gradient-orange);
}

.c-timeline__date {
  flex: 0 0 18%;
  min-width: 0;
  margin: 0;
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 500;
  color: #444;
  letter-spacing: .04em;
  line-height: 1.4;
  text-align: right;
}

.c-timeline__body {
  flex: 1 1 0;
  min-width: 0;
}

.c-timeline__ttl {
  font-family: var(--heading-ja);
  font-size: 1.8rem;
  font-weight: 500;
  color: #444;
  line-height: 1.4;
  margin: 0;
}

.c-timeline__txt {
  font-family: var(--body-font);
  font-size: 1.5rem;
  color: #444;
  line-height: 1.6;
  margin: 0;
}

.c-timeline__ttl + .c-timeline__txt {
  margin-top: 8px;
}

@media screen and (max-width: 767px) {
  .c-timeline__item {
    flex-direction: column;
    gap: 0;
    padding-left: 40px;
    padding-bottom: 32px;
  }
  .c-timeline__item::before {
    left: 7px;
  }
  .c-timeline__item::after {
    left: 0;
  }
  .c-timeline__date {
    flex: none;
    text-align: left;
    color: #f96801;
  }
  .c-timeline__body {
    margin-top: 8px;
  }
}

/* ===== component: c-btn-arrow ===== */
.c-btn-arrow {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  color: var(--text-color);
  font-family: "Marcellus", "Zen Kaku Gothic New", serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.c-btn-arrow:link,
.c-btn-arrow:visited {
  color: var(--text-color);
}

.c-btn-arrow:hover {
  opacity: 0.75;
}

.c-btn-arrow__circle {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 2px solid var(--color-accent);
  border-radius: 50%;
  background: transparent;
  flex: 0 0 auto;
  transition: background 0.2s ease;
}

.c-btn-arrow__circle img {
  display: block;
  width: 24px;
  height: 24px;
}

.c-btn-arrow:hover .c-btn-arrow__circle {
  background: rgba(249, 104, 1, 0.08);
}

.c-btn-arrow__label {
  font-family: inherit;
  font-size: 2rem;
  line-height: 1.4;
  letter-spacing: 0;
  white-space: nowrap;
}

.c-btn-arrow--small {
  gap: 8px;
}

.c-btn-arrow--small .c-btn-arrow__circle {
  width: 32px;
  height: 32px;
  border-width: 1.333px;
}

.c-btn-arrow--small .c-btn-arrow__circle img {
  width: 16px;
  height: 16px;
}

.c-btn-arrow--small .c-btn-arrow__label {
  font-size: 2rem;
  line-height: 1.4;
  letter-spacing: 0;
}

.c-btn-arrow--on-dark,
.c-btn-arrow--on-dark:link,
.c-btn-arrow--on-dark:visited {
  color: #ffffff;
}

/* ===== component: c-cta（light variant）/ c-pill-btn ===== */
.c-cta {
  box-sizing: border-box;
  text-align: center;
  padding: 0;
}

.c-cta__label {
  display: inline-block;
  font-family: var(--heading-en);
  font-size: 1.4rem;
  color: var(--color-primary);
  letter-spacing: 0.15em;
  border: 1px solid var(--color-primary);
  border-radius: 4px;
  padding: 6px 16px;
  margin: 0 0 24px;
  line-height: 1;
}

.c-cta__heading {
  font-family: var(--heading-ja);
  font-size: 2.8rem;
  font-weight: 500;
  color: var(--text-color);
  line-height: 1.6;
  margin: 0 0 16px;
}

.c-cta__txt {
  font-family: var(--body-font);
  font-size: 1.4rem;
  line-height: 1.8;
  color: var(--text-color);
  margin: 0 0 24px;
}

.c-cta__hours {
  font-family: var(--body-font);
  font-size: 1.3rem;
  color: rgba(68, 68, 68, 0.7);
  margin: 0 0 24px;
}

.c-cta__btns {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0;
}

.c-pill-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 240px;
  height: 60px;
  padding: 0 24px;
  border-radius: 60px;
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  border: 1px solid transparent;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
  box-sizing: border-box;
}

.c-pill-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.14);
  opacity: 1;
}

.c-pill-btn--white {
  background: #ffffff;
  color: var(--color-primary);
}

.c-pill-btn--white:link,
.c-pill-btn--white:visited {
  color: var(--color-primary);
}

.c-pill-btn--orange {
  background: var(--color-primary);
  color: #ffffff;
  border-color: var(--color-primary);
}

.c-pill-btn--orange:link,
.c-pill-btn--orange:visited {
  color: #ffffff;
}

.c-pill-btn__icon {
  width: 20px;
  height: 20px;
  background: url("images/common/icon_tel_01.svg") center / contain no-repeat;
  flex: 0 0 auto;
}

.c-pill-btn--white .c-pill-btn__icon {
  filter: invert(43%) sepia(99%) saturate(1656%) hue-rotate(13deg)
    brightness(99%) contrast(101%);
}

@media screen and (max-width: 767px) {
  .c-cta__heading {
    font-size: 2rem;
  }
  .c-cta__btns {
    flex-direction: column;
    align-items: center;
  }
  .c-cta__btns .c-pill-btn {
    width: 100%;
    max-width: 320px;
  }
}

/* ===== utility: u-vertical ===== */
.u-vertical {
  writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  text-orientation: upright;
}

/* ===== utility: u-shading ===== */
.u-shading {
  position: relative;
}

.u-shading::before,
.u-shading::after {
  content: "";
  position: absolute;
  width: 305px;
  height: 1081px;
  background: linear-gradient(
    347deg,
    rgba(255, 178, 0, 0) 17.53%,
    rgba(249, 137, 1, 0.1) 53.19%,
    rgba(242, 93, 1, 0.16) 90.97%
  );
  pointer-events: none;
  z-index: 1;
  clip-path: inset(0 0 100% 0);
  transition: clip-path 1.4s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: clip-path;
}

.u-shading.is-inview::before {
  clip-path: inset(0);
}

.u-shading.is-inview::after {
  clip-path: inset(0);
  transition-delay: 0.3s;
}

.u-shading--right::before,
.u-shading--right::after {
  transform: rotate(60deg);
  transform-origin: center;
}

.u-shading--right::before {
  top: -50px;
  right: 0%;
}

.u-shading--right::after {
  top: 100px;
  right: 0%;
}

.u-shading--left::before,
.u-shading--left::after {
  transform: rotate(-60deg);
  transform-origin: center;
}

.u-shading--left::before {
  top: -50px;
  left: 0%;
}

.u-shading--left::after {
  top: 100px;
  left: 0%;
}

@media screen and (max-width: 767px) {
  .u-shading::before,
  .u-shading::after {
    width: 180px;
    height: 700px;
  }
  .u-shading::before {
    top: -200px; 
  }
  .u-shading::after {
    top: -100px; 
  }
}

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

.u-sp-only {
  display: none;
}
@media screen and (max-width: 1000px) {
  .u-sp-only {
    display: revert;
  }
  .u-pc-only {
    display: none;
  }
}

/* ===== c-breadcrumb ===== */
.c-breadcrumb {
  background: var(--color-bg-soft);
  font-family: var(--body-font);
  font-size: 1.2rem;
  line-height: 1.6;
  color: var(--text-color);
}

.c-breadcrumb .l-container {
  padding: 12px 40px;
}

.c-breadcrumb a {
  color: var(--text-color);
  text-decoration: none;
  transition: color 0.2s ease;
}

.c-breadcrumb a:hover {
  color: var(--color-primary);
}

.c-breadcrumb .separator,
.c-breadcrumb .breadcrumb_last {
  color: rgba(68, 68, 68, 0.6);
}

@media screen and (max-width: 767px) {
  .c-breadcrumb .l-container {
    padding: 12px 20px;
  }
}

/* ===== project: p-news / p-blog 共通アイテム ===== */
.p-news__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.p-news__item a {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #444;
  transition: opacity 0.2s ease;
  padding: 4px 0;
}

.p-news__item a:hover {
  opacity: 0.7;
}

.p-news__date {
  font-family: var(--body-font);
  font-size: 1.4rem;
  color: rgba(68, 68, 68, 0.6);
  letter-spacing: 0.02em;
  flex: 0 0 auto;
}

.p-news__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #444;
  font-size: 1rem;
  font-weight: 500;
  padding: 4px 6px;
  min-width: 80px;
  line-height: 1;
  flex: 0 0 auto;
}

.p-news__headline {
  font-size: 1.4rem;
  font-weight: 400;
  color: #444;
  line-height: 1.6;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.p-blog__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-blog__item a {
  display: grid;
  grid-template-columns: 1fr 160px;
  gap: 24px;
  align-items: start;
  height: 100px;
  color: #444;
  transition: opacity 0.2s ease;
}

.p-blog__item a:hover {
  opacity: 0.75;
}

.p-blog__text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  padding: 2px 0;
}

.p-blog__meta {
  display: flex;
  align-items: center;
  gap: 0;
  font-size: 1.4rem;
  line-height: 1;
  color: rgba(68, 68, 68, 0.6);
}

.p-blog__date {
  font-family: var(--body-font);
  letter-spacing: 0.02em;
  min-width: 50px;
}

.p-blog__cat {
  border-left: 1px solid rgba(68, 68, 68, 0.3);
  padding-left: 12px;
  margin-left: 12px;
}

.p-blog__ttl {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  color: #444;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.p-blog__excerpt {
  font-size: 1.2rem;
  line-height: 1.6;
  color: #444;
  margin: 0;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.p-blog__thumb {
  width: 160px;
  height: 100px;
  background: #d9d9d9;
  overflow: hidden;
  flex: 0 0 160px;
}

.p-blog__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media screen and (max-width: 1000px) {
  .p-news__item a {
    flex-wrap: wrap;
  }
  .p-news__headline {
    flex: 0 0 100%;
    width: 100%;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
  .p-blog__item a {
    grid-template-columns: 1fr 100px;
    height: auto;
    gap: 8px;
  }
  .p-blog__ttl {
    font-size: 1.4rem;
    margin: 8px 0 2px;
  }
  .p-blog__excerpt {
    -webkit-line-clamp: 1;
    line-clamp: 1;
  }
  .p-blog__thumb {
    width: 100px;
    height: auto;
    aspect-ratio: 8 / 5;
    flex-basis: 100px;
  }
  .p-blog__meta {
    font-size: 1rem;
  }
  .p-blog__cat {
    margin-left: 16px;
  }
}

/* ===== project: p-archive ===== */
.p-archive .l-container {
  max-width: 1120px;
  padding-top: 80px;
  padding-bottom: 80px;
}

.p-archive--knowledge .p-blog__list,
.p-archive--column .p-blog__list {
  background: #fff;
  padding: 80px 67px;
  gap: 48px;
}

.p-archive--news .p-news__list {
  gap: 22px;
}

.m-archive-empty {
  text-align: center;
  padding: 80px 0;
  color: rgba(68, 68, 68, 0.7);
}

.m-pagenavi {
  margin-top: 40px;
  text-align: center;
}

@media screen and (max-width: 1000px) {
  .p-archive .l-container {
    padding-top: 48px;
  }
  .p-archive--knowledge .p-blog__list,
  .p-archive--column .p-blog__list {
    padding: 32px 24px;
  }
  .c-btn-arrow {
    gap: 12px;
  }
  .c-btn-arrow__circle {
    width: 32px;
    height: 32px;
    border-width: 1.333px;
  }
  .c-btn-arrow__circle img {
    width: 16px;
    height: 16px;
  }
  .c-btn-arrow__label {
    font-size: 1.6rem;
  }
  .c-btn-arrow--small {
    gap: 6px;
  }
  .c-btn-arrow--small .c-btn-arrow__circle {
    width: 24px;
    height: 24px;
    border-width: 1px;
  }
  .c-btn-arrow--small .c-btn-arrow__circle img {
    width: 12px;
    height: 12px;
  }
  .c-btn-arrow--small .c-btn-arrow__label {
    font-size: 1.4rem;
  }
}

/* ===== pagenavi ===== */
.wp-pagenavi {
  clear: both;
  margin: 40px 0 0;
  font-size: 1.6rem;
  text-align: center;
}

.wp-pagenavi a,
.wp-pagenavi span {
  display: inline-block;
  width: 2.6em;
  height: 2.6em;
  margin: 0 0.5em;
  font-weight: bold;
  line-height: 2.6;
  color: var(--color-primary);
  text-align: center;
  vertical-align: middle;
  transition: all 0.3s ease;
}

.wp-pagenavi a:hover,
.wp-pagenavi span.current {
  background: var(--gradient-orange);
  color: #fff;
  border-color: transparent;
  opacity: 1;
  text-decoration: none;
}

.wp-pagenavi .extend {
  width: 1em;
  color: var(--color-primary);
  background: transparent;
  border: medium none;
}

.wp-pagenavi .extend::after {
  content: "…";
}

.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
  position: relative;
  width: 3em;
  height: 3em;
  background: #fff;
  text-indent: -999999px;
  vertical-align: middle;
}

.wp-pagenavi .previouspostslink::after,
.wp-pagenavi .nextpostslink::after {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  content: "";
  display: block;
  width: 5px;
  height: 5px;
  border-top: 2px solid var(--color-primary);
  border-right: 2px solid var(--color-primary);
}

.wp-pagenavi .previouspostslink::after {
  transform: rotate(225deg);
}

.wp-pagenavi .nextpostslink::after {
  transform: rotate(45deg);
}

.wp-pagenavi .previouspostslink:hover::after,
.wp-pagenavi .nextpostslink:hover::after {
  border-color: #fff;
}

.result_count {
  margin-bottom: 15px;
  text-align: center;
  font-size: 1.4rem;
  color: #999;
}

/* ===== post parts ===== */
.post-date {
  font-size: 1.5rem;
  min-width: 70px;
}

.post-cats {
  line-height: 1;
  margin: 0 0 0 20px;
}

.post-cats.flex-start {
  justify-content: flex-start;
  align-items: center;
}

.post-cat {
  display: block;
  background-color: #111;
  color: #fff;
  font-size: 1.4rem;
  padding: 4px 10px;
  width: 120px;
  text-align: center;
}

.post-cat + .post-cat {
  margin: 0 0 0 10px;
}

.post-cat:link {
  color: #fff;
}

.post-cat:visited {
  color: #fff;
}

/* ===== news list ===== */
.news-item {
  padding: 20px 0;
}

.news-item + .news-item {
  border-top: 1px solid #1e1e1e;
}

.news-item .post-ttl {
  font-size: 1.5rem;
  margin: 0 0 0 20px;
}

@media screen and (max-width: 767px) {
  .news-item .post-meta {
    width: 100%;
  }
  .news-item .post-ttl {
    margin-left: 0;
  }
}

/* ===== card list ===== */
.card-list {
  margin-top: -30px;
  margin-left: -80px;
}

.card-item {
  width: 280px;
  margin-top: 30px;
  margin-left: 80px;
}

.card-item .post-thumb img {
  width: 100%;
}

.card-item .post-info {
  margin-top: 20px;
}

.card-item .post-ttl {
  font-size: 1.5rem;
  margin: 20px 0 0;
}

@media screen and (max-width: 767px) {
  .card-item {
    width: 100%;
  }
}

/* ===== contact form ===== */

/* ===== 404 ===== */
#error-404 .content-box p {
  text-align: center;
}

.l-header__nav-list,
.l-header__cta {
  display: none;
}

/* ===== p-contact ===== */
.p-contact {
  position: relative;
  width: 100%;
  height: 662px;
  overflow: hidden;
}

.p-contact__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: 207px;
  height: 455px;
  background: linear-gradient(
    132.033deg,
    #ffb200 8.5%,
    #f96801 51%,
    #f25d01 96%
  );
  z-index: 0;
}

.p-contact__label {
  position: absolute;
  top: 111px;
  left: calc(50% - 545px);
  font-family: "Marcellus", serif;
  font-size: 2.4rem;
  font-weight: 400;
  color: #f96801;
  line-height: 1;
  letter-spacing: 0.04em;
  margin: 0;
  z-index: 2;
}

.p-contact__lead {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  margin: 0;
  z-index: 2;
}

.p-contact__pill {
  position: absolute;
  display: inline-flex;
  align-items: center;
  background: #fff;
  font-family: var(--heading-ja);
  font-size: 5.6rem;
  font-weight: 500;
  color: #444;
  line-height: 1;
  height: 107px;
  padding: 0 40px;
  border-radius: 4px;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.p-contact__pill--1 {
  top: 155px;
  left: calc(50% - 545px);
  width: 710px;
}

.p-contact__pill--2 {
  top: 261px;
  left: calc(50% - 284px);
  width: 830px;
}

.p-contact__pill-accent {
  color: #f96801;
}

.p-contact__subtxt {
  position: absolute;
  top: 408px;
  left: 0;
  right: 0;
  text-align: center;
  font-family: var(--heading-ja);
  font-size: 2rem;
  font-weight: 500;
  color: #fff;
  line-height: 1.8;
  margin: 0;
  z-index: 2;
}

.p-contact__btns {
  position: absolute;
  top: 520px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 16px;
  z-index: 2;
}

.p-contact__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 240px;
  height: 60px;
  padding: 0 24px;
  border-radius: 60px;
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 500;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease;
  border: 1px solid transparent;
}

.p-contact__btn:hover {
  transform: translateY(-2px);
  opacity: 1;
}

.p-contact__btn--tel {
  background: #fff;
  color: #f96801 !important;
  letter-spacing: 0.08em;
}

.p-contact__btn--mail {
  background: #f96801;
  color: #fff !important;
  border-color: #fff;
}

.p-contact__btn--line {
  background: #06c755;
  color: #fff !important;
  border-color: #fff;
}

.p-contact__btn-icon {
  display: block;
  width: 20px;
  height: 20px;
}

@media screen and (max-width: 1200px) {
  .p-contact {
    height: 642px;
  }
  .p-contact__pill {
    font-size: 4.4rem;
    padding: 0 32px;
    height: 88px;
  }
  .p-contact__pill--1 {
    top: 190px;
    left: 40px;
    width: auto;
  }
  .p-contact__pill--2 {
    top: 278px;
    left: auto;
    right: 40px;
    width: min(68vw, 760px);
  }
  .p-contact__label {
    left: 40px;
    top: 120px;
  }
  .p-contact__subtxt {
    top: 400px;
    padding: 0 15px 24px;
  }
  .p-contact__btns {
    top: 490px;
  }
}

@media screen and (max-width: 1000px) {
  .p-contact {
    height: auto;
    background: linear-gradient(132deg, #ffb200 0%, #f96801 50%, #f25d01 100%);
    padding: 60px 0;
  }
  .p-contact__bg {
    display: none;
  }
  .p-contact__label {
    position: static;
    text-align: center;
    color: #fff;
    margin: 0 0 32px;
  }
  .p-contact__lead {
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: auto;
    margin: 0 0 20px;
  }
  .p-contact__pill {
    position: static;
    width: auto;
    max-width: 100%;
    height: auto;
    font-size: 2rem;
    padding: 16px 8px;
    white-space: normal;
    text-align: center;
    box-shadow: none;
  }
  .p-contact__pill--2 {
    align-self: center;
  }
  .p-contact__subtxt {
    position: static;
    font-size: 1.4rem;
  }
  .p-contact__btns {
    position: static;
    transform: none;
    flex-direction: column;
    align-items: center;
  }
  .p-contact__btn {
    width: 100%;
    max-width: 320px;
  }
}

/* ===== component: c-info-list ===== */
.c-info-list {
  margin: 0;
}

.c-info-list__row {
  display: flex;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid #e3e2e0;
}

.c-info-list__row:first-child {
  border-top: 1px solid #e3e2e0;
}

.c-info-list dt {
  flex-shrink: 0;
  width: 200px;
  font-family: var(--heading-ja);
  font-size: 1.5rem;
  font-weight: 500;
  color: #444;
  line-height: 1.8;
}

.c-info-list dd {
  flex: 1;
  margin: 0;
  font-family: var(--body-font);
  font-size: 1.5rem;
  color: #555;
  line-height: 1.8;
}

@media screen and (max-width: 767px) {
  .c-info-list__row {
    flex-direction: column;
    gap: 0;
    padding: 12px 0;
  }
  .c-info-list dt {
    width: auto;
    font-size: 1.4rem;
  }
  .c-info-list dd {
    font-size: 1.4rem;
  }
}

/* ===== component: c-table ===== */
.c-table-wrap {
  margin-top: 48px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.c-table {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
  margin: 0;
}

.c-table thead th {
  height: 53px;
  padding: 12px 24px;
  background: var(--color-primary);
  color: #fff;
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

.c-table thead th + th {
  border-left: 1px solid #fff;
}

.c-table thead th span {
  display: block;
  font-size: 1.1rem;
  font-weight: 400;
  margin-top: 2px;
}

.c-table thead th.c-table__th-blank {
  background: transparent;
}

.c-table tbody th,
.c-table tbody td {
  height: 50px;
  padding: 16px 24px;
  font-family: var(--body-font);
  font-size: 1.6rem;
  line-height: 1.6;
  color: #444;
  background: #fff;
  vertical-align: middle;
  border-top: 1px solid rgba(68, 68, 68, 0.4);
  border-bottom: 1px solid rgba(68, 68, 68, 0.4);
}

.c-table tbody th {
  border-left: 1px solid #dcdddd;
  text-align: left;
  font-weight: 400;
}

.c-table tbody td {
  text-align: center;
  font-weight: 500;
}

.c-table tbody td + td,
.c-table tbody th + td {
  border-left: 1px solid #fff;
}

.c-table tbody th.c-table__cell--primary,
.c-table tbody td.c-table__cell--primary {
  background:
    linear-gradient(0deg, rgba(249, 104, 1, 0.1), rgba(249, 104, 1, 0.1)), #fff;
}

.c-table tbody tr.is-set th,
.c-table tbody tr.is-set td {
  background: #fef4ea;
  color: var(--color-primary);
  font-weight: 700;
}

.c-table--start thead th,
.c-table--start tbody th,
.c-table--start tbody td {
  text-align: left;
}

@media screen and (max-width: 767px) {
  .c-table-wrap {
    margin-top: 32px;
  }
  .c-table thead th,
  .c-table tbody th,
  .c-table tbody td {
    height: auto;
    padding: 12px;
    font-size: 1.4rem;
  }
  .c-table thead th span {
    font-size: 1rem;
  }

  .c-table tbody th.c-table__cell--primary,
  .c-table tbody td.c-table__cell--primary {
    background: #fff;
  }

  /* ===== c-table--card: SP はカード型表示 ===== */
  .c-table--card {
    min-width: 0;
  }
  .c-table--card thead {
    display: none;
  }
  .c-table--card tbody,
  .c-table--card tbody tr,
  .c-table--card tbody th,
  .c-table--card tbody td {
    display: block;
    width: 100%;
    border: none;
  }
  .c-table--card tbody tr {
    border: 1px solid rgba(68, 68, 68, 0.4);
    /* border-radius: 8px; */
    overflow: hidden;
    margin-bottom: 16px;
  }
  .c-table--card tbody tr:last-child {
    margin-bottom: 0;
  }
  .c-table--card tbody th,
  .c-table--card tbody th.c-table__cell--primary {
    background: var(--color-primary);
    color: #fff;
    font-weight: 700;
    text-align: center;
  }
  .c-table--card tbody td {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    text-align: right;
    border-top: 1px solid rgba(68, 68, 68, 0.2);
  }
  .c-table--card tbody td::before {
    content: attr(data-label);
    order: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 500;
    text-align: left;
    color: #444;
    white-space: normal;
  }
  /* グループ見出し (顧問契約あり/なし 等) を行頭にフル幅で表示 */
  .c-table--card tbody td[data-group]::after {
    content: attr(data-group);
    order: -1;
    flex: 0 0 100%;
    margin: 4px -12px 8px;
    padding: 4px 12px;
    background: #fef4ea;
    color: var(--color-primary);
    font-size: 1.3rem;
    font-weight: 700;
    text-align: left;
    white-space: normal;
  }
}

/* ===== component: c-flow ===== */
.c-flow__list {
  list-style: none;
  margin: 48px 0 0;
  padding: 0 0 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 56px 24px;
}

.c-flow__item {
  position: relative;
  flex: 0 1 calc((100% - 48px) / 3);
  max-width: calc((100% - 48px) / 3);
  padding: 56px 32px 40px;
  background: #fff;
  filter: drop-shadow(8px 8px 0 #f98901);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  border-radius: 16px;
}

.c-flow__step {
  position: absolute;
  left: 1px;
  top: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 98px;
  height: 38px;
  padding: 10px 16px;
  background: linear-gradient(
    151deg,
    #ffb200 20.2%,
    #f98901 38.3%,
    #f25d01 100.2%
  );
  color: #fff;
  font-family: var(--heading-ja);
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1;
  border-radius: 16px 0 16px 0;
}

.c-flow__step-no {
  font-size: 1.8rem;
}

.c-flow__ttl {
  font-family: var(--heading-ja);
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.2;
  color: #f96801;
  margin: 0;
}

.c-flow__visual {
  width: 100%;
  max-width: 240px;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-flow__list--col4 .c-flow__visual {
  max-width: 160px;
}

.c-flow__list--col4 .c-flow__item {
  padding: 56px 32px 24px;
}

.c-flow__visual-img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}

.c-flow__txt {
  font-family: var(--body-font);
  font-size: 1.6rem;
  line-height: 1.6;
  color: #4a5565;
  margin: 0;
}

@media screen and (min-width: 1101px) {
  .c-flow__list--col4 .c-flow__item {
    flex-basis: calc((100% - 72px) / 4);
    max-width: calc((100% - 72px) / 4);
  }
  .c-flow__list--col6 .c-flow__item {
    flex-basis: calc((100% - 120px) / 6);
    max-width: calc((100% - 120px) / 6);
  }
}

@media screen and (max-width: 1100px) {
  .c-flow__item {
    flex-basis: calc((100% - 24px) / 2);
    max-width: calc((100% - 24px) / 2);
  }
}

@media screen and (max-width: 767px) {
  .c-flow__list {
    gap: 32px;
  }
  .c-flow__item {
    flex-basis: 100%;
    max-width: 100%;
    padding: 44px 20px 24px !important;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 16px;
    row-gap: 16px;
  }
  .c-flow__ttl {
    font-size: 2rem;
    text-align: left;
  }
  .c-flow__visual {
    max-width: 96px;
    height: 96px;
    margin: 0;
  }
  .c-flow__txt {
    grid-column: 1 / -1;
    font-size: 1.4rem;
    line-height: 1.5;
  }
}

/* ===== component: c-faq ===== */
.c-faq__layout {
  display: grid;
  grid-template-columns: 436px minmax(0, 1fr);
  column-gap: 100px;
  row-gap: 0;
  align-items: start;
}

.c-faq__head {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
}

.c-faq__body {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.c-faq__foot {
  grid-column: 1;
  grid-row: 2;
}

.c-faq__lead {
  font-family: var(--body-font);
  font-size: 1.6rem;
  line-height: 1.8;
  color: #333e4e;
}

.c-faq__foot {
  margin-top: 32px;
}

.c-faq__list {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.c-faq__item {
  background: #fff;
  border-bottom: 1px solid rgba(68, 68, 68, 0.1);
}

.c-faq__item[open] {
  border-bottom-color: transparent;
}

.c-faq__q {
  list-style: none;
  cursor: pointer;
  display: flex;
  gap: 16px;
  padding: 16px;
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.4;
  color: #444;
}

.c-faq__q::-webkit-details-marker {
  display: none;
}

.c-faq__mark {
  flex: 0 0 auto;
  font-family: var(--heading-ja);
  font-weight: 700;
  color: #f96801;
}

.c-faq__q-txt {
  flex: 1 1 0;
  min-width: 0;
}

.c-faq__toggle {
  position: relative;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
}

.c-faq__toggle::before,
.c-faq__toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 2px;
  background: #444;
  transform: translate(-50%, -50%);
  transition: transform 0.2s ease;
}

.c-faq__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.c-faq__item[open] .c-faq__toggle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.c-faq__a {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px;
  background:
    linear-gradient(0deg, rgba(249, 104, 1, 0.05), rgba(249, 104, 1, 0.05)),
    #fff;
}

.c-faq__a .c-faq__mark {
  font-size: 1.6rem;
  line-height: 1.6;
}

.c-faq__a p {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  font-family: var(--body-font);
  font-size: 1.6rem;
  line-height: 1.6;
  color: #444;
}

@media screen and (max-width: 1100px) {
  .c-faq__layout {
    grid-template-columns: 1fr;
    row-gap: 32px;
  }
  .c-faq__head,
  .c-faq__body,
  .c-faq__foot {
    grid-column: 1;
    grid-row: auto;
  }
  .c-faq__foot {
    text-align: right;
  }
  .c-faq__foot,
  .c-faq__foot .c-btn-arrow {
    margin-top: 0;
  }
}

@media screen and (max-width: 767px) {
  .c-faq__lead {
    font-size: 1.4rem;
    margin-top: 0;
  }
  .c-faq__q {
    font-size: 1.4rem;
  }
  .c-faq__a p {
    font-size: 1.2rem;
  }
  /* FAQ セクション（mod-faq）の下余白を SP で少し広げる */
  #faq .l-container {
    padding-bottom: 64px;
  }
}

/* ===== c-icon-card  ===== */
.c-icon-card-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.c-icon-card {
  background: #fff;
  border: 1px solid #e3e2e0;
  border-radius: 8px;
  padding: 28px 32px;
  border-left: 4px solid #f96801;
}

.c-icon-card__eyebrow {
  font-family: var(--heading-ja);
  font-size: 1.2rem;
  font-weight: 500;
  color: #888;
  letter-spacing: .04em;
  line-height: 1;
  margin: 0 0 8px;
}

.c-icon-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.c-icon-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ffb200, #f96801);
  color: #fff;
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  flex: 0 0 32px;
}

.c-icon-card__ttl {
  font-family: var(--heading-ja);
  font-size: 1.8rem;
  font-weight: 500;
  color: #444;
  line-height: 1.4;
  margin: 0;
}

.c-icon-card__txt {
  font-family: var(--body-font);
  font-size: 1.3rem;
  line-height: 1.8;
  color: #555;
  margin: 0;
}

@media screen and (max-width: 767px) {
  .c-icon-card-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .c-icon-card {
    padding: 20px;
  }
  .c-icon-card__head {
    gap: 10px;
    margin-bottom: 10px;
  }
  .c-icon-card__icon {
    width: 28px;
    height: 28px;
    font-size: 1.4rem;
    flex: 0 0 28px;
  }
  .c-icon-card__ttl {
    font-size: 1.6rem;
  }
}

/* ===== c-media-cards : 画像 + 縦積みアイコンカードの横並び ===== */
.c-media-cards {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 48px;
  align-items: flex-start;
}

/* PCで画像とカードを左右反転 */
.c-media-cards--reverse {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
}

.c-media-cards--reverse .c-media-cards__image {
  order: 2;
}

.c-media-cards__image {
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
}

.c-media-cards__image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}

@media screen and (max-width: 900px) {
  .c-media-cards {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .c-media-cards--reverse .c-media-cards__image {
    order: 0;
  }

  .c-media-cards__image img {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }
}

/* ===== c-check-list : チェック + 見出し + 本文 のフラットなリスト ===== */
.c-check-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 2カラム表示（画像なしで単独利用する場合） */
.c-check-list--cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 40px;
}

.c-check-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 12px 4px;
  border-bottom: 1px solid rgba(68, 68, 68, .2);
}

/* 画像横並び時は先頭を画像の上端に揃える */
.c-media-cards .c-check-card:first-child {
  padding-top: 0;
}

.c-media-cards .c-check-card:last-child {
  border-bottom: none;
}

.c-check-card__icon {
  flex: 0 0 22px;
  position: relative;
  width: 22px;
  height: 22px;
  margin-top: 2px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ffb200, #f96801);
}

.c-check-card__icon::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 46%;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}

.c-check-card__body {
  flex: 1 1 0;
}

.c-check-card__ttl {
  font-family: var(--heading-ja);
  font-size: 1.6rem;
  font-weight: 500;
  color: #444;
  line-height: 1.5;
  margin: 0 0 6px;
}

.c-check-card__txt {
  font-family: var(--body-font);
  font-size: 1.4rem;
  line-height: 1.7;
  color: #555;
  margin: 0;
}

@media screen and (max-width: 767px) {
  .c-check-list--cols {
    grid-template-columns: 1fr;
    column-gap: 0;
  }
}

/* ===== c-page-hero ===== */
.c-page-hero__en {
  display: inline-block;
  font-family: 'Marcellus', serif;
  font-size: 1.4rem;
  color: #f96801;
  text-transform: uppercase;
  letter-spacing: .08em;
  border: 1px solid #ffb200;
  border-radius: 4px;
  padding: 4px 12px;
  margin: 0 0 24px;
  line-height: 1;
}

.c-page-hero__ttl {
  font-family: var(--heading-ja);
  font-size: 3.6rem;
  font-weight: 500;
  color: #444;
  line-height: 1.4;
  letter-spacing: .02em;
  margin: 0 0 24px;
}

.c-page-hero__lead {
  font-family: var(--body-font);
  font-size: 1.5rem;
  line-height: 1.8;
  color: #555;
  margin: 24px 0 0;
}

@media screen and (max-width: 767px) {
  .c-page-hero__ttl {
    font-size: 2.2rem;
  }
  .c-page-hero__lead {
    font-size: 1.3rem;
  }
}

/* ===== p-service__matrix（共通） ===== */
.p-service__matrix-base,
.p-service__matrix-hl {
  display: block;
  width: 100%;
  height: auto;
}

.p-service__matrix-hl {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.p-service__matrix-area {
  position: absolute;
  display: block;
  z-index: 1;
}

.p-service__matrix-area:focus-visible {
  outline: 2px solid #333e4e;
  outline-offset: 2px;
}

.p-service__matrix-area[data-area="work-rules"]:hover ~ .p-service__matrix-hl[data-area="work-rules"],
.p-service__matrix-area[data-area="work-rules"]:focus-visible ~ .p-service__matrix-hl[data-area="work-rules"],
.p-service__matrix-area[data-area="recruitment-support"]:hover ~ .p-service__matrix-hl[data-area="recruitment-support"],
.p-service__matrix-area[data-area="recruitment-support"]:focus-visible ~ .p-service__matrix-hl[data-area="recruitment-support"],
.p-service__matrix-area[data-area="payroll"]:hover ~ .p-service__matrix-hl[data-area="payroll"],
.p-service__matrix-area[data-area="payroll"]:focus-visible ~ .p-service__matrix-hl[data-area="payroll"],
.p-service__matrix-area[data-area="subsidy-support"]:hover ~ .p-service__matrix-hl[data-area="subsidy-support"],
.p-service__matrix-area[data-area="subsidy-support"]:focus-visible ~ .p-service__matrix-hl[data-area="subsidy-support"],
.p-service__matrix-area[data-area="advisor-contract"]:hover ~ .p-service__matrix-hl[data-area="advisor-contract"],
.p-service__matrix-area[data-area="advisor-contract"]:focus-visible ~ .p-service__matrix-hl[data-area="advisor-contract"],
.p-service__matrix-area[data-area="labor-inspection"]:hover ~ .p-service__matrix-hl[data-area="labor-inspection"],
.p-service__matrix-area[data-area="labor-inspection"]:focus-visible ~ .p-service__matrix-hl[data-area="labor-inspection"],
.p-service__matrix-area[data-area="other-services"]:hover ~ .p-service__matrix-hl[data-area="other-services"],
.p-service__matrix-area[data-area="other-services"]:focus-visible ~ .p-service__matrix-hl[data-area="other-services"] {
  opacity: 1;
}

/* ===== p-service（共通：front-page / page-service） ===== */
.p-service {
  background: #333e4e;
}

.p-service.u-shading--right::before,
.p-service.u-shading--right::after {
  top: auto;
}

.p-service.u-shading--right::before {
  bottom: -50px;
}

.p-service.u-shading--right::after {
  bottom: 100px;
}

.p-service .l-container {
  position: relative;
  z-index: 2;
  padding-top: 120px;
  padding-bottom: 120px;
}

.p-service__head {
  margin-top: 56px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.p-service__lead {
  font-size: 1.6rem;
  color: #fff;
  max-width: 800px;
  line-height: 1.6;
  margin: 0;
}

.p-service__matrix {
  position: relative;
  max-width: 1217px;
  margin: 80px auto 0;
  padding: 0;
}

#service .p-service__matrix.u-sp-only {
  margin: 0 0 24px;
}

.p-service__matrix img {
  display: block;
  width: 100%;
  height: auto;
}

.p-service__list {
  margin: 40px auto 0;
  padding: 0;
  list-style: none;
  max-width: 1192px;
}

.p-service__row {
  position: relative;
  border-bottom: 1px solid #e3e2e0;
  color: #fff;
  scroll-margin-top: 100px;
}

.p-service__row::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, #ffb200, #f96801, #f25d01);
  box-shadow: 0 0 10px rgba(249, 104, 1, .55);
  transform: scaleX(0);
  transform-origin: left center;
  pointer-events: none;
}

.p-service__row.is-revealed::after {
  animation: p-service-row-line .8s cubic-bezier(.22, .61, .36, 1) forwards;
}

@keyframes p-service-row-line {
  0%   { transform: scaleX(0); transform-origin: left center; }
  50%  { transform: scaleX(1); transform-origin: left center; }
  50.01% { transform: scaleX(1); transform-origin: right center; }
  100% { transform: scaleX(0); transform-origin: right center; }
}

.p-service__row-inner {
  padding: 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  color: #fff;
  text-decoration: none;
}

.p-service__row-head {
  display: flex;
  align-items: center;
  gap: 0;
  color: #fff;
  text-decoration: none;
}

.p-service__row-no {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 700;
  font-size: 1.6rem;
  color: #fff;
  border-left: 1.9px solid #f96801;
  padding-left: 12px;
  margin-right: 8px;
  line-height: 1.4;
  width: 60px;
}

.p-service__row-ttl {
  font-size: 2rem;
  font-weight: 500;
  color: #fff;
  margin: 0;
  line-height: 1.6;
}

.p-service__row-txt {
  font-size: 1.4rem;
  line-height: 1.6;
  color: #fff;
  text-align: justify;
  margin: 0;
}

/* ===== p-service__list--cards（トップのみ：アイコン付きカード） ===== */
.p-service__list--cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.p-service__list--cards .p-service__row {
  border-bottom: none;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 16px;
  background: rgba(255, 255, 255, .03);
  overflow: hidden;
  transition: border-color .3s ease, background .3s ease, transform .3s ease;
}

.p-service__list--cards .p-service__row::after {
  content: none;
}

.p-service__list--cards .p-service__row:hover {
  border-color: rgba(249, 104, 1, .6);
  background: rgba(255, 255, 255, .06);
  transform: translateY(-4px);
}

.p-service__list--cards .p-service__row-inner {
  padding: 32px;
  gap: 16px;
}

.p-service__list--cards .p-service__row-icon {
  flex: 0 0 auto;
  height: 52px;
  margin-right: 16px;
}

.p-service__list--cards .p-service__row-icon img {
  display: block;
  width: auto;
  height: 100%;
  max-width: 72px;
  object-fit: contain;
}

.p-service__list--cards .p-service__row--cta {
  display: grid;
  place-items: center;
  padding: 32px;
  border-style: dashed;
}

@media screen and (max-width: 1100px) {
  .p-service__matrix {
    max-width: 100%;
  }
}

@media screen and (max-width: 1000px) {
  .p-service .l-container {
    padding-top: 80px;
    padding-bottom: 80px;
    display: flex;
    flex-direction: column;
  }
  .p-service__head {
    display: contents;
  }
  .p-service__lead {
    order: 2;
    margin-top: 32px;
    font-size: 1.4rem;
  }
  .p-service__row-ttl {
	 font-size: 1.6rem;
  }
  .p-service__row-no {
	  margin-right: 0;
  }
  .p-service__matrix {
    order: 3;
    margin-top: 48px;
  }
  .p-service__head > .c-btn-arrow {
    order: 4;
    align-self: flex-end;
    margin-top: 24px;
  }
  .p-service__list {
    order: 5;
    margin-top: 0;
  }
  .p-service__row-inner {
    padding: 24px 0;
    gap: 16px;
  }
  .p-service__row-no {
    width: 40px;
    padding-left: 8px;
  }
  .p-service__row-txt {
    font-size: 1.2rem;
  }
  .p-service__list--cards {
    margin-top: 32px;
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .p-service__list--cards .p-service__row-inner {
    padding: 20px;
  }
  .p-service__list--cards .p-service__row-icon {
    height: 44px;
    margin-right: 12px;
  }
  .p-service__list--cards .p-service__row-icon img {
    max-width: 48px;
  }
}

/* ===== c-guide-card ===== */
.c-guide-card {
  list-style: none;
}

.c-guide-card__link {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: 100%;
  padding: 28px 32px;
  background: var(--color-bg-soft);
  border-radius: 8px;
  color: var(--text-color);
  text-decoration: none;
  transition: background 0.2s ease;
}

.c-guide-card__link:hover {
  background: #ebe9e3;
}

.c-guide-card__ttl {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
}

.c-guide-card__arrow {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1.5px solid var(--color-primary);
  border-radius: 50%;
  flex: 0 0 auto;
}

.c-guide-card__arrow img {
  display: block;
  width: 13px;
  height: 13px;
}

@media screen and (max-width: 1000px) {
  .c-guide-card__link {
    padding: 20px 20px;
  }
  .c-guide-card__ttl {
    font-size: 1.5rem;
  }
}
