@charset "UTF-8";
:root {
  /* Color Theme Swatches in Hex */
  --color-base: #ffffff;
  --color-base-rgb: 255, 255, 255;
  --color-text: #1c2622;
  /* 2026-07-29: メインカラー変更 #00a73c → #8dc556 に伴い調整。
     この前の配色案が採用になった場合は、下記4行を以下に差し替えて復元:
     --color-main: #00a73c;
     --color-sub: #2e8b57;
     --color-btn-default: #7ed6a8;
     --color-btn-hover: #9be5c2;
  */
  --color-main: #8dc556;
  --color-sub: #5c8a29;
  --color-btn-default: #add289;
  --color-btn-hover: #c2e0a3;
  --color-bg-pattern: #faf9f5;
  --color-accent: #f58642;
  --color-btn-default-2: #273b2b;
  --color-btn-hover-2: #479569;
  /* Typography */
  --font-base: "Inter", "Noto Sans JP", sans-serif;
  --font-en: "Inter", sans-serif;
  --font-ja: "Noto Sans JP", sans-serif;
}

/* ==========================================================================
   Breakpoints (Based on Bootstrap 5.3)
   Mobile:  < 768px (max-width: 767.98px)
   Tablet: >= 768px (min-width: 768px)
   PC:     >= 992px (min-width: 992px)
   ========================================================================== */
/* ==========================================================================
   Base Styles & Resets
   ========================================================================== */
body {
  background-color: var(--color-base);
  color: var(--color-text);
  font-family: var(--font-base);
}

a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s ease;
}

a:hover {
  opacity: 0.7;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Line break active only on wide screens (>= 1400px) */
.u-br-xl {
  display: none;
}
@media (min-width: 1400px) {
  .u-br-xl {
    display: inline;
  }
}

/* ==========================================================================
   Header Layout
   ========================================================================== */
.c-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(var(--color-base-rgb), 0.4);
  z-index: 1000;
  transition: background-color 0.5s ease;
  /* Background becomes fully opaque once scrolled past 100px (toggled by JS) */
}
.c-header.is-scrolled {
  background-color: rgba(var(--color-base-rgb), 1);
}
.c-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  padding: 0 40px;
  width: 100%;
}
@media (max-width: 991.98px) {
  .c-header__inner {
    height: 64px;
    padding: 0 16px;
  }
}
.c-header__logo img {
  height: 40px;
  width: auto;
  vertical-align: middle;
}
@media (max-width: 991.98px) {
  .c-header__logo img {
    height: 32px;
  }
}
.c-header__nav {
  display: flex;
  align-items: center;
  gap: 40px;
}
.c-header__list {
  display: flex;
  gap: 24px;
}
.c-header__item {
  position: relative;
}
.c-header__item a {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--color-text);
}
.c-header__item:has(> a[href="/partners/"]) {
  display: none;
}
.c-header__item--has-dropdown > a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.c-header__item--has-dropdown > a::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-top: -2px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.3s ease;
}
.c-header__item--has-dropdown:hover > a::after {
  margin-top: 2px;
  transform: rotate(225deg);
}
.c-header__item--has-dropdown:hover .c-header__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
.c-header__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 8px);
  min-width: 220px;
  margin: 0;
  padding: 12px 0;
  list-style: none;
  background-color: var(--color-base);
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  z-index: 100;
}
.c-header__dropdown a {
  display: block;
  padding: 10px 24px;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  color: var(--color-text);
  letter-spacing: 0.05em;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.c-header__dropdown a:hover {
  background-color: var(--color-bg-pattern);
  color: var(--color-sub);
}
.c-header__action {
  margin-left: 8px;
}
.c-header__action .c-btn {
  gap: 8px;
}
.c-header__action-icon {
  flex-shrink: 0;
}
.c-header__toggle {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 32px;
  height: 24px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  z-index: 1010;
}
.c-header__toggle-line {
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--color-text);
  border-radius: 2px;
  transition: all 0.3s ease;
}
.c-header__toggle.is-active .c-header__toggle-line:nth-child(1) {
  transform: translateY(11px) rotate(45deg);
}
.c-header__toggle.is-active .c-header__toggle-line:nth-child(2) {
  opacity: 0;
}
.c-header__toggle.is-active .c-header__toggle-line:nth-child(3) {
  transform: translateY(-11px) rotate(-45deg);
}

/* ==========================================================================
   Mobile Navigation Overlay
   ========================================================================== */
.c-mobile-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: var(--color-base);
  z-index: 1005;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s ease;
  overflow-y: auto;
}
.c-mobile-nav.is-active {
  opacity: 1;
  visibility: visible;
}
.c-mobile-nav__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 100%;
  padding: 80px 24px 40px;
}
.c-mobile-nav__list {
  width: 100%;
  margin-bottom: 32px;
}
.c-mobile-nav__item {
  width: 100%;
  border-bottom: 1px solid #e6e4df;
}
.c-mobile-nav__item:first-child {
  border-top: 1px solid #e6e4df;
}
.c-mobile-nav__item > a {
  display: block;
  width: 100%;
  padding: 18px 4px;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.05em;
  text-align: center;
}
.c-mobile-nav__item:has(> a[href="/partners/"]) {
  display: none;
}
.c-mobile-nav__item--has-dropdown .c-mobile-nav__item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.c-mobile-nav__item--has-dropdown .c-mobile-nav__item-head > a {
  flex: 1;
  /* left padding matches the toggle width so the label centers on the full row */
  padding: 18px 4px 18px 56px;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.05em;
  text-align: center;
}
.c-mobile-nav__item--has-dropdown .c-mobile-nav__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  padding: 0;
  background: transparent;
  border: none;
  color: var(--color-text);
  cursor: pointer;
}
.c-mobile-nav__item--has-dropdown .c-mobile-nav__toggle svg {
  width: 18px;
  height: 18px;
  transition: transform 0.3s ease;
}
.c-mobile-nav__item--has-dropdown.is-open .c-mobile-nav__toggle svg {
  transform: rotate(180deg);
}
.c-mobile-nav__item--has-dropdown.is-open .c-mobile-nav__dropdown {
  max-height: 500px;
  margin-top: -8px;
  padding-bottom: 16px;
}
.c-mobile-nav__dropdown {
  max-height: 0;
  margin: 0;
  padding: 0 4px;
  list-style: none;
  overflow: hidden;
  text-align: center;
  transition: max-height 0.4s ease, margin-top 0.4s ease, padding-bottom 0.4s ease;
}
.c-mobile-nav__dropdown li {
  margin-bottom: 12px;
}
.c-mobile-nav__dropdown li:last-child {
  margin-bottom: 0;
}
.c-mobile-nav__dropdown a {
  font-size: 14px;
  font-weight: 400;
  color: var(--color-text);
  opacity: 0.9;
}
.c-mobile-nav__action {
  width: 100%;
  text-align: center;
}
.c-mobile-nav__action .c-btn {
  width: 100%;
  max-width: 320px;
  gap: 8px;
}
.c-mobile-nav__action-icon {
  flex-shrink: 0;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.l-footer__main {
  background-color: #ffffff;
  color: var(--color-text);
  padding: 80px 0 32px;
  border-top: 1px solid #e5e5e5;
}
@media (max-width: 767.98px) {
  .l-footer__main {
    padding: 56px 0 24px;
  }
}
.l-footer__inner {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  padding-bottom: 64px;
  margin-bottom: 32px;
  border-bottom: 1px solid #e5e5e5;
}
@media (max-width: 991.98px) {
  .l-footer__inner {
    flex-direction: column;
    gap: 40px;
  }
}
.l-footer__brand {
  flex: 0 0 auto;
  width: 260px;
}
@media (max-width: 991.98px) {
  .l-footer__brand {
    width: 100%;
  }
}
.l-footer__logo {
  display: block;
  width: 180px;
  margin-bottom: 20px;
}
.l-footer__logo img {
  width: 100%;
  height: auto;
}
.l-footer__catch {
  font-family: var(--font-en);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
  color: var(--color-text);
  margin-bottom: 20px;
}
.l-footer__address {
  font-size: 13px;
  line-height: 1.8;
  color: var(--color-text);
}
.l-footer__license-main {
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.8;
  color: var(--color-text);
}
.l-footer__cols {
  flex: 1 1 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 32px 24px;
}
.l-footer__col {
  flex: 1 1 140px;
  min-width: 140px;
}
@media (min-width: 992px) and (max-width: 1399.98px) {
  .l-footer__col:last-child {
    flex: 1.6 1 160px;
  }
}
.l-footer__col-title {
  margin: 0 0 16px;
  padding-top: 12px;
  border-top: 2px solid var(--color-main);
}
.l-footer__col-title a {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.l-footer__col-title a:hover {
  opacity: 0.7;
}
.l-footer__col-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.l-footer__col-list li {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.l-footer__col-list li::before {
  content: "–";
  color: #b0b0b0;
  flex-shrink: 0;
}
.l-footer__col-list a {
  font-size: 13px;
  color: var(--color-text);
  opacity: 0.75;
  text-decoration: none;
  line-height: 1.6;
  transition: opacity 0.3s ease;
}
.l-footer__col-list a:hover {
  opacity: 1;
  color: var(--color-main);
}
.l-footer__action {
  display: flex;
  margin-bottom: 32px;
}
.l-footer__cta {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 276px;
  padding: 16px 32px;
  background-color: var(--color-main);
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
  border-radius: 4px;
  transition: opacity 0.3s ease;
}
.l-footer__cta:hover {
  opacity: 0.8;
}
.l-footer__copyright {
  margin: 0;
  text-align: center;
  font-size: 12px;
  letter-spacing: 0.15em;
  color: var(--color-text);
  opacity: 0.6;
}

/* ==========================================================================
   Main Visual
   ========================================================================== */
.c-mv {
  position: relative;
  width: 100%;
  height: 100svh; /* Use svh for better mobile support */
  min-height: 600px;
  overflow: hidden;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-mv {
    height: 75svh;
    min-height: 0;
  }
}
.c-mv__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  /* Static image shown while the video is delayed/fading in */
}
.c-mv__bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.c-mv__bg img,
.c-mv__bg video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  display: block;
}
.c-mv__bg video {
  opacity: 0; /* Hidden until JS starts delayed playback with fade-in */
}
@media (min-width: 768px) {
  .c-mv__bg video {
    /* Wide/short PC viewports crop the video top & bottom under "cover";
       "contain" keeps the full frame, letterboxing left/right with the base color */
    -o-object-fit: contain;
       object-fit: contain;
  }
}
.c-mv__content {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 100%;
  height: 100%;
  padding: 0 24px;
  padding-top: 80px; /* Offset for header */
}
.c-mv__copy {
  position: relative;
  top: -80px; /* Raise the intro copy above the vertical center */
  margin-bottom: 4px;
  color: #000000;
  /* Fluid size so the 11-char copy fits on one line on narrow screens */
  font-size: clamp(20px, 7vw, 32px);
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  letter-spacing: 0.1em;
}
.c-mv__copy .js-char {
  display: inline-block;
  opacity: 0; /* Hidden initially to prevent FOUC before GSAP loads */
}
@media (min-width: 992px) {
  .c-mv__copy {
    font-size: 64px;
  }
}
.c-mv__copy {
  /* Fixed copy shown in the top-left space when the video shifts */
}
.c-mv__copy--side {
  top: 0; /* Cancel the intro-copy offset; positioned by the __side wrapper */
  text-align: left;
  opacity: 0; /* Shown by GSAP after the video shift starts */
}
.c-mv {
  /* Top-left block (copy + logo) revealed while the video shifts */
}
.c-mv__side {
  position: absolute;
  top: 14%;
  left: 10%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
@media (min-width: 1400px) {
  .c-mv__side {
    left: 14%;
  }
}
.c-mv__logo {
  opacity: 0; /* Hidden until copy animation completes */
  text-align: center;
  padding: 8px 16px;
  background-color: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(1px); /* Frosted-glass effect to calm the busy video behind */
  border-radius: 4px;
}
@media (min-width: 992px) {
  .c-mv__logo {
    padding: 16px 32px;
  }
}
.c-mv__logo img {
  max-width: 124px;
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  /* filter: brightness(0) invert(1); */ /* White logo for dark background */
}
@media (min-width: 992px) {
  .c-mv__logo img {
    max-width: 240px;
  }
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 32px;
  border-radius: 4px;
  font-weight: 700;
  font-size: 15px;
  transition: all 0.3s ease;
  line-height: 1;
}
.c-btn--accent {
  background-color: var(--color-accent);
  color: #fff;
}
.c-btn--accent:hover {
  background-color: #E07335;
  opacity: 1;
  color: #fff;
}
.c-btn--default {
  background-color: var(--color-btn-default);
  color: #fff;
}
.c-btn--default:hover {
  background-color: var(--color-btn-hover);
  opacity: 1;
  color: #fff;
}

/* ==========================================================================
   Section Titles
   ========================================================================== */
.c-section-header {
  text-align: center;
  margin-bottom: 56px;
}
@media (max-width: 767.98px) {
  .c-section-header {
    margin-bottom: 40px;
  }
}
.c-section-header--flex {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  text-align: left;
}
@media (max-width: 991.98px) {
  .c-section-header--flex {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (min-width: 768px) {
  .c-section-header--left {
    text-align: left;
  }
}

.c-section-title {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}
.c-section-title--left {
  align-items: flex-start;
}
.c-section-title .en {
  font-family: var(--font-en);
  font-size: 40px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.05em;
  line-height: 1.2;
  margin-bottom: 8px;
}
@media (max-width: 767.98px) {
  .c-section-title .en {
    font-size: 32px;
  }
}
.c-section-title .ja {
  font-family: var(--font-ja);
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.1em;
}

/* ==========================================================================
   Block Head (large watermark-style heading used by Concept / Works / News)
   ========================================================================== */
.c-block-head {
  margin-bottom: 56px;
}
@media (max-width: 767.98px) {
  .c-block-head {
    margin-bottom: 40px;
  }
}
.c-block-head__en {
  font-family: var(--font-en);
  font-size: 80px;
  font-weight: 800;
  color: #d9d9d9;
  letter-spacing: 0.08em;
  line-height: 1.2;
  margin-bottom: 8px;
}
@media (max-width: 767.98px) {
  .c-block-head__en {
    font-size: 40px;
  }
}
.c-block-head__row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 40px;
}
.c-block-head__title {
  font-family: var(--font-ja);
  font-size: 32px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.15em;
}
@media (max-width: 767.98px) {
  .c-block-head__title {
    font-size: 24px;
  }
}
.c-block-head__lead {
  font-size: 15px;
  color: var(--color-text);
  letter-spacing: 0.05em;
}
@media (max-width: 767.98px) {
  .c-block-head__lead {
    font-size: 13px;
  }
}
.c-block-head--light .c-block-head__en {
  font-family: roboto, sans-serif;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.25);
}
.c-block-head--light .c-block-head__title,
.c-block-head--light .c-block-head__lead {
  color: #ffffff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* ==========================================================================
   Large Links
   ========================================================================== */
.c-large-link-group {
  display: flex;
  margin-top: 64px;
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
}
@media (max-width: 767.98px) {
  .c-large-link-group {
    flex-direction: column;
    margin-top: 48px;
  }
}

.c-large-link {
  flex: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 56px 40px;
  background-color: #ffffff;
  transition: background-color 0.3s ease;
}
.c-large-link:first-child {
  border-right: 1px solid #e0e0e0;
}
@media (max-width: 767.98px) {
  .c-large-link:first-child {
    border-right: none;
    border-bottom: 1px solid #e0e0e0;
  }
}
.c-large-link:hover {
  background-color: #fcfcfc;
}
.c-large-link:hover .c-large-link__icon {
  background-color: var(--color-main);
  color: #ffffff;
  transform: translateX(4px);
}
.c-large-link__text {
  display: flex;
  flex-direction: column;
}
.c-large-link__text .en {
  font-family: var(--font-en);
  font-size: 32px;
  font-weight: 500;
  color: var(--color-main); /* #273B2B */
  line-height: 1.2;
  margin-bottom: 8px;
}
@media (max-width: 767.98px) {
  .c-large-link__text .en {
    font-size: 28px;
  }
}
.c-large-link__text .ja {
  font-family: var(--font-ja);
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.1em;
}
.c-large-link__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--color-bg-pattern);
  color: var(--color-main);
  transition: all 0.3s ease;
}
@media (max-width: 767.98px) {
  .c-large-link__icon {
    width: 40px;
    height: 40px;
  }
}
.c-large-link__icon svg {
  width: 20px;
  height: 20px;
}

/* ==========================================================================
   Floating Side Menu (Recruit / Contact)
   ========================================================================== */
.c-floating-menu {
  display: none;
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 900;
  flex-direction: column;
  gap: 24px;
}
.c-floating-menu__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 11px;
  width: 67px;
  height: 177px;
  background-color: var(--color-main);
  color: #ffffff;
  text-decoration: none;
  transition: background-color 0.3s ease;
}
.c-floating-menu__item:hover {
  background-color: var(--color-sub);
  color: #ffffff;
}
.c-floating-menu__icon {
  flex-shrink: 0;
}
.c-floating-menu__text {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-family: var(--font-ja);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.1em;
}
@media (max-width: 991.98px) {
  .c-floating-menu {
    display: none;
  }
}

/* ==========================================================================
   Page Header (Sub-page Hero)
   ========================================================================== */
.c-page-header {
  position: relative;
  padding: 160px 0 64px;
  background-color: var(--color-main);
  background-size: cover;
  background-position: center;
  text-align: center;
  overflow: hidden;
}
.c-page-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(28, 38, 34, 0.55), rgba(28, 38, 34, 0.75));
  z-index: 1;
}
.c-page-header > .container {
  position: relative;
  z-index: 2;
}
@media (max-width: 767.98px) {
  .c-page-header {
    padding: 120px 0 48px;
  }
}
.c-page-header__en {
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 16px;
}
.c-page-header__title {
  font-family: var(--font-ja);
  font-size: 40px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.15em;
  margin-bottom: 16px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
@media (max-width: 767.98px) {
  .c-page-header__title {
    font-size: 28px;
  }
}
.c-page-header__lead {
  font-size: 16px;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.9);
  max-width: 720px;
  margin: 0 auto;
}
@media (max-width: 767.98px) {
  .c-page-header__lead {
    font-size: 14px;
  }
}

/* ==========================================================================
   Breadcrumb (used inside Page Header)
   ========================================================================== */
.c-breadcrumb {
  margin-bottom: 24px;
}
.c-breadcrumb__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  letter-spacing: 0.05em;
}
.c-breadcrumb__item {
  display: flex;
  align-items: center;
  color: rgba(255, 255, 255, 0.7);
}
.c-breadcrumb__item a {
  color: rgba(255, 255, 255, 0.9);
}
.c-breadcrumb__item:not(:last-child)::after {
  content: "/";
  margin-left: 8px;
  color: rgba(255, 255, 255, 0.5);
}
.c-breadcrumb__item[aria-current=page] {
  color: #ffffff;
  font-weight: 700;
}

/* ==========================================================================
   Coming Soon (制作中ページ共通)
   ========================================================================== */
.c-coming-soon {
  padding: 160px 0;
  background-color: var(--color-bg-pattern);
  text-align: center;
}
@media (max-width: 767.98px) {
  .c-coming-soon {
    padding: 100px 0;
  }
}
.c-coming-soon__en {
  font-family: var(--font-en);
  font-size: 48px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  color: var(--color-main);
  margin: 0 0 16px;
}
@media (max-width: 767.98px) {
  .c-coming-soon__en {
    font-size: 32px;
  }
}
.c-coming-soon__title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--color-text);
  margin: 0 0 24px;
}
@media (max-width: 767.98px) {
  .c-coming-soon__title {
    font-size: 20px;
  }
}
.c-coming-soon__text {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: var(--color-text);
  margin: 0 0 40px;
}
@media (max-width: 767.98px) {
  .c-coming-soon__text {
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 32px;
  }
}
.c-coming-soon__btn {
  min-width: 240px;
  padding: 16px 32px;
}

/* ==========================================================================
   Home Page Sections
   ========================================================================== */
/* Philosophy */
.c-philosophy {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-philosophy {
    padding: 80px 0;
  }
}
.c-philosophy__inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 24px;
}
.c-philosophy__message {
  font-size: 20px;
  line-height: 2.2;
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--color-text);
}
@media (max-width: 767.98px) {
  .c-philosophy__message {
    font-size: 16px;
    line-height: 2;
    text-align: left;
  }
}

/* Group Synergy */
.c-synergy {
  padding: 120px 0;
  background-color: #faf9f5; /* Match WORKS section background */
  scroll-margin-top: 96px; /* Offset for fixed header when jumping via #group anchor */
}
@media (max-width: 767.98px) {
  .c-synergy {
    padding: 80px 0;
    scroll-margin-top: 80px;
  }
}
.c-synergy__layout {
  display: flex;
  align-items: flex-start;
  gap: 64px;
}
@media (max-width: 991.98px) {
  .c-synergy__layout {
    flex-direction: column;
    gap: 40px;
  }
}
.c-synergy__head {
  flex: 0 0 320px;
}
@media (max-width: 991.98px) {
  .c-synergy__head {
    flex: none;
    width: 100%;
  }
}
.c-synergy__title {
  font-family: var(--font-ja);
  font-size: 32px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.15em;
  margin-top: 16px;
  margin-bottom: 16px;
}
@media (max-width: 767.98px) {
  .c-synergy__title {
    font-size: 24px;
  }
}
.c-synergy__lead {
  font-size: 15px;
  color: var(--color-text);
  letter-spacing: 0.05em;
  line-height: 1.8;
}
@media (max-width: 767.98px) {
  .c-synergy__lead {
    font-size: 13px;
  }
}
.c-synergy__content {
  flex: 1;
  min-width: 0;
}
@media (max-width: 991.98px) {
  .c-synergy__content {
    /* Without an explicit width, this flex item (align-items: flex-start
       on __layout) shrink-wraps to its content's intrinsic width, which
       is driven by the fixed-width cards below — forcing the whole
       section wider than the viewport on mobile. */
    width: 100%;
  }
}
.c-synergy__chart {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (max-width: 767.98px) {
  .c-synergy__chart {
    align-items: stretch;
    gap: 24px;
  }
}
.c-synergy__parent {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  padding-bottom: 60px;
}
.c-synergy__parent::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 60px;
  background-color: #c7c4bd;
}
@media (max-width: 767.98px) {
  .c-synergy__parent {
    align-items: flex-start;
    padding-bottom: 0;
  }
  .c-synergy__parent::after {
    left: 8px;
    top: 100%;
    bottom: auto;
    transform: none;
    height: 24px;
  }
}
.c-synergy__children {
  display: flex;
  justify-content: center;
  gap: 64px;
  position: relative;
  padding-top: 60px;
}
.c-synergy__children::before {
  content: "";
  position: absolute;
  top: 0;
  left: 180px; /* Half of sub-card width (360px / 2) so the line meets each card's center */
  right: 180px;
  height: 2px;
  background-color: #c7c4bd;
}
@media (max-width: 767.98px) {
  .c-synergy__children {
    flex-direction: column;
    gap: 24px;
    padding-top: 0;
    padding-left: 32px;
    box-sizing: border-box;
    position: relative;
  }
  .c-synergy__children::before {
    display: none;
  }
}
.c-synergy__child {
  position: relative;
  /* Stretch the card link to the row height so both cards stay equal
     even when one description wraps to more lines than the other. */
  display: flex;
}
.c-synergy__child::before {
  content: "";
  position: absolute;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 60px;
  background-color: #c7c4bd;
}
@media (max-width: 767.98px) {
  .c-synergy__child {
    /* Branch line: connects the trunk (::after) to this card */
  }
  .c-synergy__child::before {
    top: 50%;
    left: -24px;
    width: 24px;
    height: 2px;
    transform: translateY(-50%);
  }
  .c-synergy__child {
    /* Trunk segment: runs from the top of this card down to its own
       branch point (the last card stops here, so the trunk ends exactly
       at the final branch instead of overshooting past it). Non-last
       cards instead run their full height plus the gap below, so the
       line continues unbroken into the next card's own segment. */
  }
  .c-synergy__child::after {
    content: "";
    position: absolute;
    top: 0;
    left: -24px;
    width: 2px;
    height: 50%;
    background-color: #c7c4bd;
  }
  .c-synergy__child:not(:last-child)::after {
    height: calc(100% + 24px);
  }
}
.c-synergy__card {
  display: flex;
  flex-direction: column;
  width: 320px;
  max-width: 100%;
  background-color: #ffffff;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.c-synergy__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
  color: inherit;
}
.c-synergy__card--main {
  width: 360px;
}
.c-synergy__card {
  /* Sub cards (大和産業開発 / ダイナカ建工): match the main card width so
     copy fits on a single line and card heights stay aligned at all sizes. */
}
.c-synergy__card--sub1, .c-synergy__card--sub2 {
  width: 360px;
}
.c-synergy__card-image {
  position: relative;
  aspect-ratio: 2/1;
  overflow: hidden;
}
.c-synergy__card-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-synergy__card-num {
  display: none;
}
.c-synergy__card-body {
  padding: 24px;
  text-align: center;
}
@media (max-width: 767.98px) {
  .c-synergy__card-body {
    padding: 16px;
  }
}
.c-synergy__card-title {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 12px;
  color: var(--color-main);
}
@media (max-width: 767.98px) {
  .c-synergy__card-title {
    font-size: 16px;
  }
}
.c-synergy__card-desc {
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
  text-align: center;
}
.c-synergy__card-desc.text-left {
  text-align: left;
}
@media (max-width: 767.98px) {
  .c-synergy__card-desc {
    font-size: 13px;
  }
}
.c-synergy__value-text {
  margin-top: 24px;
  padding-left: 20px;
  border-left: 3px solid var(--color-sub);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.8;
  color: var(--color-text);
}
@media (max-width: 767.98px) {
  .c-synergy__value-text {
    font-size: 14px;
  }
}

/* ==========================================================================
   Concept
   ========================================================================== */
.c-concept {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-concept {
    padding: 80px 0;
  }
}
.c-concept__list {
  display: flex;
  flex-direction: column;
  gap: 80px;
}
@media (max-width: 767.98px) {
  .c-concept__list {
    gap: 56px;
  }
}
.c-concept__item {
  display: flex;
  align-items: center;
  gap: 64px;
}
@media (max-width: 991.98px) {
  .c-concept__item {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
  }
}
.c-concept__image {
  flex: 0 0 45%;
  aspect-ratio: 845/450;
  overflow: hidden;
  border-radius: 4px;
}
.c-concept__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-concept__body {
  flex: 1;
}
.c-concept__title {
  font-family: var(--font-ja);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-main);
  letter-spacing: 0.1em;
  padding-bottom: 24px;
  margin-bottom: 24px;
  border-bottom: 1px solid #ddd;
}
@media (max-width: 767.98px) {
  .c-concept__title {
    font-size: 22px;
  }
}
.c-concept__text {
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin-bottom: 32px;
}
@media (max-width: 767.98px) {
  .c-concept__text {
    font-size: 14px;
    line-height: 1.9;
  }
}

/* ==========================================================================
   CTA (Simple)
   ========================================================================== */
.c-cta-simple {
  padding: 64px 0;
  scroll-margin-top: 96px; /* Offset for fixed header when jumping via #cta anchor */
}
@media (max-width: 767.98px) {
  .c-cta-simple {
    padding: 48px 0;
    scroll-margin-top: 80px;
  }
}
.c-cta-simple__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  background-color: var(--color-bg-pattern);
  border-radius: 4px;
  padding: 48px 64px;
}
@media (max-width: 991.98px) {
  .c-cta-simple__inner {
    flex-direction: column;
    align-items: center;
    padding: 40px 32px;
    gap: 32px;
  }
}
.c-cta-simple__text {
  flex: 1 1 auto;
  max-width: 560px;
  font-family: var(--font-ja);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.7;
  color: var(--color-text);
  letter-spacing: 0.05em;
}
@media (max-width: 991.98px) {
  .c-cta-simple__text {
    margin: 0 auto;
    text-align: center;
  }
}
@media (max-width: 767.98px) {
  .c-cta-simple__text {
    font-size: 16px;
    line-height: 1.8;
  }
}
@media (max-width: 575.98px) {
  .c-cta-simple__text {
    font-size: 13px;
    line-height: 1.8;
  }
}
.c-cta-simple__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(160px, 200px));
  gap: 24px 32px;
  flex-shrink: 0;
}
@media (max-width: 575.98px) {
  .c-cta-simple__actions {
    grid-template-columns: 1fr;
    width: 100%;
    gap: 24px;
  }
}
.c-cta-simple__note {
  grid-column: 1/-1;
  text-align: left;
  font-family: var(--font-ja);
  font-size: 13px;
  color: var(--color-text);
  letter-spacing: 0.05em;
}
@media (max-width: 991.98px) {
  .c-cta-simple__note {
    text-align: center;
  }
}
.c-cta-simple__action {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.c-cta-simple__action .c-btn {
  min-width: 200px;
}
@media (max-width: 575.98px) {
  .c-cta-simple__action .c-btn {
    width: 100%;
    min-width: 0;
  }
}
.c-cta-simple__label {
  font-family: var(--font-ja);
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.1em;
}

/* ==========================================================================
   Services Section
   ========================================================================== */
.c-services {
  padding: 120px 0;
  background-color: #ffffff;
}
@media (max-width: 767.98px) {
  .c-services {
    padding: 80px 0;
  }
}
.c-services__lead {
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-text);
  margin-top: 16px;
  margin-bottom: 0;
}
@media (max-width: 991.98px) {
  .c-services__lead {
    margin-top: 24px;
  }
}
.c-services__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 64px;
}
@media (max-width: 991.98px) {
  .c-services__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767.98px) {
  .c-services__grid {
    grid-template-columns: 1fr;
    margin-top: 40px;
  }
}
.c-services__item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 4/3;
  padding: 24px;
  text-decoration: none;
  overflow: hidden;
  background-color: var(--color-main);
}
@media (max-width: 767.98px) {
  .c-services__item {
    aspect-ratio: 16/9;
  }
}
.c-services__item--large {
  grid-column: span 2;
  grid-row: span 2;
  padding: 48px;
}
@media (max-width: 991.98px) {
  .c-services__item--large {
    grid-column: span 2;
    grid-row: span 1;
    aspect-ratio: 21/9;
  }
}
@media (max-width: 767.98px) {
  .c-services__item--large {
    grid-column: span 1;
    aspect-ratio: 4/3;
    padding: 32px;
  }
}
.c-services__item--large .c-services__item-title {
  font-size: 32px;
}
@media (max-width: 767.98px) {
  .c-services__item--large .c-services__item-title {
    font-size: 24px;
  }
}
.c-services__item--large .c-services__item-en {
  display: block;
  font-size: 14px;
  color: #ffffff;
  opacity: 0.8;
  font-family: var(--font-en);
  margin-top: 8px;
  letter-spacing: 0.05em;
}
.c-services__item:hover .c-services__item-bg {
  transform: scale(1.05);
}
.c-services__item:hover .c-services__item-icon {
  transform: translateX(4px);
}
.c-services__item-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform 0.6s ease;
  z-index: 1;
}
.c-services__item-bg--solid {
  background-color: var(--color-main); /* Theme green */
}
.c-services__item-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 70%);
  z-index: 2;
}
.c-services__item-content {
  position: relative;
  z-index: 3;
}
.c-services__item-title {
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.4;
  margin: 0;
}
.c-services__item-en {
  display: none;
}
.c-services__item-icon {
  position: absolute;
  bottom: 24px;
  right: 24px;
  z-index: 3;
  color: #ffffff;
  transition: transform 0.3s ease;
}
@media (max-width: 767.98px) {
  .c-services__item-icon {
    bottom: 16px;
    right: 16px;
  }
}
.c-services__more {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f9f9f9;
  grid-column: span 2;
}
@media (max-width: 991.98px) {
  .c-services__more {
    grid-column: span 2;
    padding: 40px 0;
  }
}
@media (max-width: 767.98px) {
  .c-services__more {
    grid-column: span 1;
  }
}
.c-services__more .c-btn {
  width: auto;
  min-width: 160px;
}
.c-services__more .c-btn--accent {
  background-color: var(--color-btn-default);
}
.c-services__more .c-btn--accent:hover {
  background-color: var(--color-btn-hover);
}

/* ==========================================================================
   Numbers Section (Company Strengths Infographic)
   ========================================================================== */
.c-numbers {
  padding: 120px 0;
  background-color: #ffffff;
}
@media (max-width: 767.98px) {
  .c-numbers {
    padding: 80px 0;
  }
}
.c-numbers__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 64px;
}
@media (max-width: 991.98px) {
  .c-numbers__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 40px;
  }
}
.c-numbers__item {
  padding: 48px 32px;
  background-color: var(--color-bg-pattern);
  border-radius: 8px;
  text-align: center;
}
@media (max-width: 767.98px) {
  .c-numbers__item {
    padding: 32px 24px;
  }
}
.c-numbers__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background-color: rgba(30, 172, 228, 0.1);
  color: var(--color-main);
  margin-bottom: 24px;
}
.c-numbers__value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin-bottom: 16px;
  font-family: var(--font-en);
}
.c-numbers__num {
  font-size: 64px;
  font-weight: 700;
  line-height: 1;
  color: var(--color-main);
}
@media (max-width: 767.98px) {
  .c-numbers__num {
    font-size: 48px;
  }
}
.c-numbers__unit {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-text);
}
.c-numbers__title {
  font-family: var(--font-ja);
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin-bottom: 12px;
}
@media (max-width: 767.98px) {
  .c-numbers__title {
    font-size: 16px;
  }
}
.c-numbers__desc {
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
}
@media (max-width: 767.98px) {
  .c-numbers__desc {
    font-size: 13px;
  }
}

/* ==========================================================================
   Safety & Quality Section
   ========================================================================== */
.c-safety {
  padding: 120px 0;
  background-color: var(--color-bg-pattern);
}
@media (max-width: 767.98px) {
  .c-safety {
    padding: 80px 0;
  }
}
.c-safety__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
@media (max-width: 991.98px) {
  .c-safety__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}
@media (max-width: 767.98px) {
  .c-safety__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.c-safety__box {
  background-color: #ffffff;
  padding: 48px 32px;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform 0.3s ease;
}
.c-safety__box:hover {
  transform: translateY(-8px);
}
@media (max-width: 767.98px) {
  .c-safety__box {
    padding: 32px 24px;
  }
}
.c-safety__icon {
  width: 80px;
  height: 80px;
  background-color: var(--color-bg-pattern);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
}
.c-safety__icon svg {
  width: 40px;
  height: 40px;
}
.c-safety__title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--color-text);
}
.c-safety__desc {
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
  opacity: 0.8;
  margin: 0;
  text-align: left;
}

/* ==========================================================================
   Results Section
   ========================================================================== */
.c-results {
  padding: 120px 0;
  background-color: #faf9f5;
  overflow: hidden;
  /* Force full viewport width */
  width: 100vw;
  margin-left: calc(50% - 50vw);
}
@media (max-width: 767.98px) {
  .c-results {
    padding: 80px 0;
  }
}
.c-results__inner {
  display: flex;
  width: 100%;
  /* Align with Bootstrap .container left edge */
  padding-left: max(24px, (100% - 1320px) / 2 + 12px);
}
@media (max-width: 1399.98px) {
  .c-results__inner {
    padding-left: max(24px, (100% - 1140px) / 2 + 12px);
  }
}
@media (max-width: 1199.98px) {
  .c-results__inner {
    padding-left: max(24px, (100% - 960px) / 2 + 12px);
  }
}
@media (max-width: 991.98px) {
  .c-results__inner {
    padding-left: max(24px, (100% - 720px) / 2 + 12px);
  }
}
@media (max-width: 767.98px) {
  .c-results__inner {
    padding-left: max(16px, (100% - 540px) / 2 + 12px);
    flex-direction: column;
  }
}
.c-results__info {
  width: 320px;
  flex-shrink: 0;
  padding-right: 40px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 767.98px) {
  .c-results__info {
    width: 100%;
    padding-right: 12px;
    margin-bottom: 40px;
  }
}
.c-results__current {
  margin-bottom: 64px;
}
@media (max-width: 767.98px) {
  .c-results__current {
    margin-bottom: 32px;
    display: flex;
    align-items: center;
    gap: 16px;
  }
}
.c-results__current-num {
  font-family: var(--font-en);
  font-size: 80px;
  font-weight: 500;
  line-height: 1;
  color: var(--color-main);
  margin-bottom: 16px;
  transition: opacity 0.3s ease;
}
@media (max-width: 767.98px) {
  .c-results__current-num {
    font-size: 56px;
    margin-bottom: 0;
  }
}
.c-results__current-body {
  min-width: 0;
}
@media (max-width: 767.98px) {
  .c-results__current-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
}
.c-results__current-loc {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--color-text);
  white-space: nowrap;
}
@media (max-width: 767.98px) {
  .c-results__current-loc {
    margin-bottom: 0;
  }
}
@media (max-width: 767.98px) {
  .c-results__current-meta {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 12px;
  }
}
.c-results__current-type {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 8px;
  color: var(--color-text);
  opacity: 0.75;
  display: block;
}
@media (max-width: 767.98px) {
  .c-results__current-type {
    margin-bottom: 0;
    white-space: nowrap;
  }
}
.c-results__current-date {
  font-size: 13px;
  color: var(--color-text);
  opacity: 0.6;
  font-family: var(--font-en);
  display: block;
}
.c-results__nav {
  display: flex;
  gap: 16px;
}
.c-results__nav-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #ffffff;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  color: var(--color-text);
  transition: all 0.3s ease;
}
.c-results__nav-btn:hover {
  background-color: var(--color-main);
  color: #ffffff;
}
.c-results__nav-btn[disabled] {
  opacity: 0.5;
  pointer-events: none;
}
.c-results__slider-wrap {
  flex-grow: 1;
  min-width: 0;
}
.c-results__slider {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.c-results__slider::-webkit-scrollbar {
  display: none;
}
.c-results__slider {
  padding-top: 16px;
  margin-top: -16px;
  padding-right: 40px;
  padding-bottom: 24px;
}
.c-results__item {
  scroll-snap-align: start;
  width: 340px; /* Fixed width to prevent squishing */
  flex-shrink: 0;
  aspect-ratio: 3/4;
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  background-color: #e0e0e0;
  transition: transform 0.6s ease;
  transform: scale(1);
  transform-origin: center center;
}
.c-results__item.is-active {
  transform: scale(1.04);
  z-index: 10;
}
@media (max-width: 991.98px) {
  .c-results__item {
    width: 280px;
  }
}
@media (max-width: 767.98px) {
  .c-results__item {
    width: 280px;
    scroll-snap-align: center;
  }
}
.c-results__item:hover .c-results__item-bg {
  transform: scale(1.05);
}
.c-results__item-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform 0.6s ease;
  z-index: 1;
}
.c-results__item-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, transparent 25%, transparent 70%, rgba(0, 0, 0, 0.7) 100%);
  z-index: 2;
}
.c-results__item-head {
  position: absolute;
  top: 24px;
  left: 24px;
  right: 24px;
  z-index: 3;
  display: flex;
  gap: 12px;
  align-items: center;
  color: #ffffff;
}
.c-results__item-num {
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 700;
}
.c-results__item-date {
  font-size: 12px;
  font-weight: 500;
}
.c-results__item-body {
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
  z-index: 3;
}
.c-results__item-title {
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 4px;
  line-height: 1.4;
}
.c-results__item-cat {
  font-family: var(--font-en);
  font-size: 12px;
  color: #ffffff;
  opacity: 0.8;
  margin: 0;
}
.c-results__more-link {
  display: flex;
  justify-content: flex-end;
  margin-top: 40px;
}
@media (max-width: 767.98px) {
  .c-results__more-link {
    justify-content: center;
  }
}

/* ==========================================================================
   Recruit Section
   ========================================================================== */
.c-recruit {
  padding: 120px 0;
  background-color: var(--color-base);
  width: 100vw;
  margin-left: calc(50% - 50vw);
}
@media (max-width: 767.98px) {
  .c-recruit {
    padding: 80px 0;
  }
}
.c-recruit__inner {
  display: flex;
  align-items: center;
  width: 100%;
}
@media (max-width: 991.98px) {
  .c-recruit__inner {
    flex-direction: column;
    gap: 40px;
  }
}
.c-recruit__info {
  width: 50%;
  padding-left: max(24px, (100% - 1320px) / 2 + 12px);
  padding-right: 40px;
  box-sizing: border-box;
}
@media (max-width: 1399.98px) {
  .c-recruit__info {
    padding-left: max(24px, (100% - 1140px) / 2 + 12px);
  }
}
@media (max-width: 1199.98px) {
  .c-recruit__info {
    padding-left: max(24px, (100% - 960px) / 2 + 12px);
  }
}
@media (max-width: 991.98px) {
  .c-recruit__info {
    width: 100%;
    padding-left: max(24px, (100% - 720px) / 2 + 12px);
    padding-right: max(24px, (100% - 720px) / 2 + 12px);
  }
}
@media (max-width: 767.98px) {
  .c-recruit__info {
    padding-left: max(16px, (100% - 540px) / 2 + 12px);
    padding-right: max(16px, (100% - 540px) / 2 + 12px);
  }
}
.c-recruit__lead {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 24px;
  color: var(--color-text);
}
@media (max-width: 767.98px) {
  .c-recruit__lead {
    font-size: 20px;
  }
}
.c-recruit__desc {
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
  opacity: 0.8;
  margin-bottom: 40px;
}
.c-recruit__gallery {
  width: 50%;
}
@media (max-width: 991.98px) {
  .c-recruit__gallery {
    width: 100%;
    padding-left: max(24px, (100% - 720px) / 2 + 12px);
    padding-right: max(24px, (100% - 720px) / 2 + 12px);
  }
}
@media (max-width: 767.98px) {
  .c-recruit__gallery {
    padding-left: max(16px, (100% - 540px) / 2 + 12px);
    padding-right: max(16px, (100% - 540px) / 2 + 12px);
  }
}
.c-recruit__slider {
  width: 100%;
  aspect-ratio: 16/10;
  position: relative;
  border-radius: 4px 0 0 4px;
  overflow: hidden;
  margin-bottom: 16px;
}
@media (max-width: 991.98px) {
  .c-recruit__slider {
    border-radius: 4px;
  }
}
.c-recruit__slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  z-index: 1;
}
.c-recruit__slide.is-active {
  opacity: 1;
  z-index: 2;
}
.c-recruit__dots {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
}
.c-recruit__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #e0e0e0;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.c-recruit__dot.is-active {
  background-color: var(--color-sub);
}
.c-recruit__dot:hover {
  background-color: var(--color-sub);
  opacity: 0.7;
}

/* ==========================================================================
   News Section
   ========================================================================== */
.c-news {
  padding: 120px 0;
  background-color: #ffffff;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}
@media (max-width: 767.98px) {
  .c-news {
    padding: 80px 0;
  }
}
.c-news__container {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 40px;
  box-sizing: border-box;
}
@media (max-width: 767.98px) {
  .c-news__container {
    padding: 0 16px;
  }
}
.c-news__top {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 24px;
}
@media (max-width: 767.98px) {
  .c-news__top {
    justify-content: center;
  }
}
.c-news__list-box {
  background-color: var(--color-bg-pattern);
  padding: 40px;
}
@media (max-width: 767.98px) {
  .c-news__list-box {
    padding: 24px 16px;
  }
}
.c-news__list {
  display: flex;
  flex-direction: column;
}
.c-news__item {
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: var(--color-text);
  transition: opacity 0.3s ease;
}
.c-news__item:last-child {
  border-bottom: none;
}
.c-news__item:hover {
  opacity: 0.7;
}
@media (max-width: 767.98px) {
  .c-news__item {
    flex-wrap: wrap;
    gap: 8px 16px;
    padding: 16px 0;
  }
}
.c-news__item-date {
  font-size: 15px;
  color: var(--color-text);
  flex-shrink: 0;
  width: 100px;
}
@media (max-width: 767.98px) {
  .c-news__item-date {
    width: auto;
  }
}
.c-news__item-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 110px;
  padding: 6px 16px;
  font-size: 13px;
  font-weight: 700;
  color: #ffffff;
  border-radius: 4px;
  flex-shrink: 0;
  letter-spacing: 0.05em;
}
.c-news__item-tag--info {
  background-color: var(--color-main);
}
.c-news__item-tag--works {
  background-color: var(--color-sub);
}
.c-news__item-tag--csr {
  background-color: #3d6e96;
}
.c-news__item-tag--recruit {
  background-color: var(--color-accent);
}
.c-news__item-title {
  flex: 1;
  min-width: 0;
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
}
@media (max-width: 767.98px) {
  .c-news__item-title {
    width: 100%;
    flex: none;
    font-size: 14px;
  }
}

/* ==========================================================================
   Contact / CTA Section
   ========================================================================== */
.c-contact {
  position: relative;
  padding-bottom: 120px;
}
.c-contact::before {
  content: "";
  position: absolute;
  top: 100px;
  left: calc(50% - 50vw);
  width: 100vw;
  bottom: 0;
  background-image: url("../images/daiwa_dummy_005.png");
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.c-contact::after {
  content: "";
  position: absolute;
  top: 100px;
  left: calc(50% - 50vw);
  width: 100vw;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: 1;
}
@media (max-width: 767.98px) {
  .c-contact::before, .c-contact::after {
    top: 180px;
  }
}
.c-contact .container {
  position: relative;
  z-index: 2;
}
.c-contact__links {
  margin-bottom: 120px;
}
.c-contact__content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}
@media (max-width: 991.98px) {
  .c-contact__content {
    flex-direction: column;
    align-items: flex-start;
  }
}
.c-contact__info .c-block-head {
  margin-bottom: 0;
}
.c-contact__action {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}
.c-contact__action .c-btn {
  padding: 24px 64px;
  font-size: 18px;
  min-width: 320px;
}
.c-contact__action .c-contact__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
}
.c-contact__action .c-contact__btn-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  line-height: 1.2;
}
.c-contact__action .c-contact__btn-text .en {
  font-family: var(--font-en);
  font-size: 20px;
  font-weight: 700;
}
.c-contact__action .c-contact__btn-text .ja {
  font-size: 13px;
  font-weight: 700;
}
.c-contact__action .c-contact__btn-arrow {
  font-size: 20px;
  margin-top: 2px;
}
@media (max-width: 767.98px) {
  .c-contact__action {
    width: 100%;
  }
  .c-contact__action .c-btn {
    width: 100%;
    padding: 20px 0;
  }
}
.c-contact__tel {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #ffffff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}
.c-contact__tel-label {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 8px;
}
.c-contact__tel-number {
  font-size: 40px;
  font-weight: 700;
  font-family: var(--font-en);
  color: #ffffff;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 12px;
  line-height: 1;
}
@media (max-width: 767.98px) {
  .c-contact__tel-number {
    font-size: 32px;
  }
  .c-contact__tel-number svg {
    width: 24px;
    height: 24px;
  }
}
.c-contact__tel-number:hover {
  opacity: 0.8;
}

/* ==========================================================================
   Business (事業内容)
   ========================================================================== */
.c-business {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-business {
    padding: 80px 0;
  }
}
.c-business__list {
  display: flex;
  flex-direction: column;
  gap: 80px;
}
@media (max-width: 767.98px) {
  .c-business__list {
    gap: 56px;
  }
}
.c-business__item {
  display: flex;
  align-items: center;
  gap: 64px;
  scroll-margin-top: 96px;
}
@media (max-width: 991.98px) {
  .c-business__item {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
    scroll-margin-top: 80px;
  }
}
.c-business__item--reverse {
  flex-direction: row-reverse;
}
@media (max-width: 991.98px) {
  .c-business__item--reverse {
    flex-direction: column;
  }
}
.c-business__image {
  flex: 0 0 45%;
  aspect-ratio: 845/450;
  overflow: hidden;
  border-radius: 4px;
}
.c-business__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-business__body {
  flex: 1;
}
.c-business__num {
  display: block;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--text-main);
  margin-bottom: 16px;
}
.c-business__title {
  font-family: var(--font-ja);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-main);
  letter-spacing: 0.1em;
  padding-bottom: 24px;
  margin-bottom: 24px;
  border-bottom: 1px solid #e0e0e0;
}
@media (max-width: 767.98px) {
  .c-business__title {
    font-size: 22px;
  }
}
.c-business__text {
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin: 0;
}
@media (max-width: 767.98px) {
  .c-business__text {
    font-size: 14px;
    line-height: 1.9;
  }
}
.c-business__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 32px;
  margin-top: 24px;
}
.c-business__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
}
.c-business__link:hover {
  color: var(--color-sub);
  opacity: 1;
}
.c-business__link:hover .c-business__link-arrow {
  transform: translateX(4px);
}
.c-business__links .c-business__link {
  margin-top: 0;
}
.c-business__link-arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}

/* ==========================================================================
   Business Detail (事業内容 個別ページ)
   ========================================================================== */
.c-detail {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-detail {
    padding: 80px 0;
  }
}
.c-detail__lead {
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
  max-width: 840px;
  margin: 0 auto 64px;
  text-align: center;
}
@media (max-width: 767.98px) {
  .c-detail__lead {
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 40px;
    text-align: left;
  }
}
.c-detail__features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (max-width: 767.98px) {
  .c-detail__features {
    grid-template-columns: 1fr;
  }
}
.c-detail__feature {
  padding: 40px;
  background-color: var(--color-bg-pattern);
  border-radius: 4px;
}
@media (max-width: 767.98px) {
  .c-detail__feature {
    padding: 32px 24px;
  }
}
.c-detail__feature-num {
  display: block;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--color-accent);
  margin-bottom: 16px;
}
.c-detail__feature-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
  margin-bottom: 16px;
}
.c-detail__feature-text {
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
  margin: 0;
}
@media (max-width: 767.98px) {
  .c-detail__feature-text {
    font-size: 14px;
  }
}

/* Flow / Process Steps */
.c-detail-flow {
  padding: 0 0 120px;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-detail-flow {
    padding: 0 0 80px;
  }
}
.c-detail-flow__list {
  display: flex;
  flex-direction: column;
}
.c-detail-flow__item {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  padding: 32px 0;
  border-bottom: 1px solid #e0e0e0;
}
.c-detail-flow__item:first-child {
  border-top: 1px solid #e0e0e0;
}
@media (max-width: 767.98px) {
  .c-detail-flow__item {
    gap: 24px;
    padding: 24px 0;
  }
}
.c-detail-flow__num {
  flex: 0 0 auto;
  font-family: var(--font-en);
  font-size: 32px;
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1;
}
@media (max-width: 767.98px) {
  .c-detail-flow__num {
    font-size: 24px;
  }
}
.c-detail-flow__body {
  flex: 1;
  padding-top: 4px;
}
.c-detail-flow__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}
@media (max-width: 767.98px) {
  .c-detail-flow__title {
    font-size: 16px;
  }
}
.c-detail-flow__text {
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
  margin: 0;
}
@media (max-width: 767.98px) {
  .c-detail-flow__text {
    font-size: 14px;
  }
}
.c-detail-flow__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  margin-top: 20px;
  padding: 24px;
  background-color: var(--color-bg-pattern);
  border-radius: 4px;
}
@media (max-width: 767.98px) {
  .c-detail-flow__cta {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    padding: 20px;
  }
}
.c-detail-flow__cta-tel {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-en);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-main);
  text-decoration: none;
  line-height: 1;
}
.c-detail-flow__cta-tel svg {
  flex-shrink: 0;
  color: var(--color-accent);
}
.c-detail-flow__cta-tel:hover {
  color: var(--color-sub);
  opacity: 1;
}
@media (max-width: 767.98px) {
  .c-detail-flow__cta-tel {
    font-size: 24px;
    justify-content: center;
  }
}
.c-detail-flow__cta-btn {
  display: none;
  margin-left: auto;
}
@media (max-width: 767.98px) {
  .c-detail-flow__cta-btn {
    margin-left: 0;
    width: 100%;
    justify-content: center;
  }
}

/* Back to Business List */
.c-detail-back {
  padding: 0 0 120px;
  background-color: var(--color-base);
  text-align: center;
}
@media (max-width: 767.98px) {
  .c-detail-back {
    padding: 0 0 80px;
  }
}
.c-detail-back__links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
}

/* ==========================================================================
   Approach (取り組み)
   ========================================================================== */
.c-approach {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-approach {
    padding: 80px 0;
  }
}
.c-approach__list {
  display: flex;
  flex-direction: column;
  gap: 80px;
}
@media (max-width: 767.98px) {
  .c-approach__list {
    gap: 56px;
  }
}
.c-approach__item {
  display: flex;
  align-items: center;
  gap: 64px;
  scroll-margin-top: 96px;
}
@media (max-width: 991.98px) {
  .c-approach__item {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
    scroll-margin-top: 80px;
  }
}
.c-approach__item--reverse {
  flex-direction: row-reverse;
}
@media (max-width: 991.98px) {
  .c-approach__item--reverse {
    flex-direction: column;
  }
}
.c-approach__image {
  flex: 0 0 45%;
  aspect-ratio: 845/450;
  overflow: hidden;
  border-radius: 4px;
}
.c-approach__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-approach__body {
  flex: 1;
}
.c-approach__num {
  display: block;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--text-main);
  margin-bottom: 16px;
}
.c-approach__title {
  font-family: var(--font-ja);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-main);
  letter-spacing: 0.1em;
  padding-bottom: 24px;
  margin-bottom: 24px;
  border-bottom: 1px solid #e0e0e0;
}
@media (max-width: 767.98px) {
  .c-approach__title {
    font-size: 22px;
  }
}
.c-approach__text {
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin: 0;
}
@media (max-width: 767.98px) {
  .c-approach__text {
    font-size: 14px;
    line-height: 1.9;
  }
}
.c-approach__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
}
.c-approach__link:hover {
  color: var(--color-sub);
  opacity: 1;
}
.c-approach__link:hover .c-approach__link-arrow {
  transform: translateX(4px);
}
.c-approach__link-arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}

/* ==========================================================================
   Recruit Page (採用情報)
   ========================================================================== */
/* Index Navigation */
.c-recruit-index {
  padding: 64px 0 80px;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-recruit-index {
    padding: 48px 0 56px;
  }
}
.c-recruit-index__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 991.98px) {
  .c-recruit-index__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.c-recruit-index__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  background-color: var(--color-sub);
  border-radius: 4px;
  text-decoration: none;
  color: #ffffff;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.c-recruit-index__item:hover {
  background-color: var(--color-main);
  color: #ffffff;
  opacity: 1;
}
.c-recruit-index__item:hover .c-recruit-index__icon {
  background-color: #ffffff;
  color: var(--color-sub);
}
.c-recruit-index__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: #ffffff;
  color: var(--color-main);
  transition: all 0.3s ease;
}
.c-recruit-index__icon svg {
  width: 22px;
  height: 22px;
}
.c-recruit-index__label {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

/* Voice */
.c-recruit-voice {
  padding: 120px 0;
  background-color: #faf9f5;
}
@media (max-width: 767.98px) {
  .c-recruit-voice {
    padding: 80px 0;
  }
}
.c-recruit-voice__grid {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media (max-width: 767.98px) {
  .c-recruit-voice__grid {
    gap: 24px;
  }
}
.c-recruit-voice__card {
  display: flex;
  gap: 40px;
  padding: 32px;
  background-color: #ffffff;
  border-radius: 4px;
}
@media (max-width: 767.98px) {
  .c-recruit-voice__card {
    flex-direction: column;
    gap: 20px;
    padding: 24px;
  }
}
.c-recruit-voice__photo {
  flex: 0 0 320px;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 4px;
}
@media (max-width: 767.98px) {
  .c-recruit-voice__photo {
    flex: 0 0 auto;
    width: 100%;
  }
}
.c-recruit-voice__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-recruit-voice__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.c-recruit-voice__name {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-main);
  margin-bottom: 4px;
}
.c-recruit-voice__role {
  font-size: 13px;
  color: var(--color-text);
  opacity: 0.7;
  margin-bottom: 12px;
}
.c-recruit-voice__text {
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
  margin: 0 0 16px;
}
.c-recruit-voice__text:last-child {
  margin-bottom: 0;
}
.c-recruit-voice__text-title {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}

/* Company */
.c-recruit-company {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-recruit-company {
    padding: 80px 0;
  }
}
.c-recruit-company__row {
  display: flex;
  align-items: center;
  gap: 64px;
  margin-bottom: 64px;
}
@media (max-width: 991.98px) {
  .c-recruit-company__row {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
    margin-bottom: 40px;
  }
}
.c-recruit-company__image {
  flex: 0 0 45%;
  aspect-ratio: 845/450;
  overflow: hidden;
  border-radius: 4px;
}
.c-recruit-company__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-recruit-company__body {
  flex: 1;
}
.c-recruit-company__text {
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin: 0 0 16px;
}
.c-recruit-company__text:last-child {
  margin-bottom: 0;
}
@media (max-width: 767.98px) {
  .c-recruit-company__text {
    font-size: 14px;
    line-height: 1.9;
  }
}
.c-recruit-company__gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 767.98px) {
  .c-recruit-company__gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}
.c-recruit-company__photo {
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 4px;
}
.c-recruit-company__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* Person */
.c-recruit-person {
  padding: 120px 0;
  background-color: #faf9f5;
}
@media (max-width: 767.98px) {
  .c-recruit-person {
    padding: 80px 0;
  }
}
.c-recruit-person__lead {
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
  max-width: 840px;
  margin: 0 auto 56px;
  text-align: left;
}
@media (max-width: 767.98px) {
  .c-recruit-person__lead {
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 40px;
    text-align: left;
  }
}
.c-recruit-person__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
@media (max-width: 991.98px) {
  .c-recruit-person__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767.98px) {
  .c-recruit-person__grid {
    grid-template-columns: 1fr;
  }
}
.c-recruit-person__box {
  background-color: #ffffff;
  padding: 40px 24px;
  border-radius: 4px;
  text-align: center;
}
.c-recruit-person__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background-color: #faf9f5;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-main);
}
.c-recruit-person__icon svg {
  width: 32px;
  height: 32px;
}
.c-recruit-person__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-main);
  margin-bottom: 12px;
  letter-spacing: 0.05em;
}
.c-recruit-person__text {
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
  margin: 0;
}

/* Data */
.c-recruit-data {
  padding: 120px 0;
  background-color: var(--color-sub);
}
@media (max-width: 767.98px) {
  .c-recruit-data {
    padding: 80px 0;
  }
}
.c-recruit-data__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
@media (max-width: 991.98px) {
  .c-recruit-data__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767.98px) {
  .c-recruit-data__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.c-recruit-data__item {
  text-align: center;
  padding: 40px 24px;
  background-color: rgba(255, 255, 255, 0.12);
  border-radius: 4px;
}
.c-recruit-data__label {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: 0.05em;
  margin-bottom: 16px;
}
.c-recruit-data__value {
  font-family: var(--font-en);
  font-size: 48px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
}
@media (max-width: 767.98px) {
  .c-recruit-data__value {
    font-size: 40px;
  }
}
.c-recruit-data__value .unit {
  font-size: 20px;
  font-weight: 700;
  margin-left: 4px;
}
.c-recruit-data__note {
  margin: 32px 0 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
  letter-spacing: 0.05em;
}

/* Welfare */
.c-recruit-welfare {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-recruit-welfare {
    padding: 80px 0;
  }
}
.c-recruit-welfare__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 991.98px) {
  .c-recruit-welfare__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.c-recruit-welfare__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
  padding: 32px 16px;
  background-color: #faf9f5;
  border-radius: 4px;
}
.c-recruit-welfare__icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-main);
}
.c-recruit-welfare__icon svg {
  width: 28px;
  height: 28px;
}
.c-recruit-welfare__label {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin: 0;
}

/* Description (募集要項) */
.c-recruit-description {
  padding: 120px 0;
  background-color: #faf9f5;
}
@media (max-width: 767.98px) {
  .c-recruit-description {
    padding: 80px 0;
  }
}

.c-recruit-table {
  width: 100%;
  border-collapse: collapse;
  background-color: #ffffff;
  border-radius: 4px;
  overflow: hidden;
}
.c-recruit-table tr {
  border-bottom: 1px solid #e0e0e0;
}
.c-recruit-table tr:last-child {
  border-bottom: none;
}
.c-recruit-table th,
.c-recruit-table td {
  padding: 24px 32px;
  text-align: left;
  vertical-align: top;
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
}
@media (max-width: 767.98px) {
  .c-recruit-table th,
  .c-recruit-table td {
    font-size: 14px;
    padding: 16px 20px;
  }
}
.c-recruit-table th {
  width: 220px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
}
@media (max-width: 767.98px) {
  .c-recruit-table th {
    width: auto;
  }
}
@media (max-width: 767.98px) {
  .c-recruit-table tr {
    display: flex;
    flex-direction: column;
    padding: 4px 0;
  }
  .c-recruit-table th,
  .c-recruit-table td {
    padding: 8px 20px;
  }
  .c-recruit-table th {
    padding-bottom: 0;
  }
}

/* Entry */
.c-recruit-entry {
  padding: 120px 0;
  background-color: var(--color-sub);
  text-align: center;
}
@media (max-width: 767.98px) {
  .c-recruit-entry {
    padding: 80px 0;
  }
}
.c-recruit-entry .c-block-head__row {
  justify-content: center;
}
.c-recruit-entry .c-detail-flow__cta {
  max-width: 720px;
  margin: 0 auto;
  justify-content: center;
}

/* ==========================================================================
   About Page (企業情報)
   ========================================================================== */
/* Concept */
.c-corp-concept {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-corp-concept {
    padding: 80px 0;
  }
}
.c-corp-concept__lead {
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
  max-width: 880px;
  margin: 0 auto 64px;
  text-align: left;
}
@media (max-width: 767.98px) {
  .c-corp-concept__lead {
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 40px;
    text-align: left;
  }
}
.c-corp-concept__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
@media (max-width: 991.98px) {
  .c-corp-concept__grid {
    gap: 24px;
  }
}
@media (max-width: 767.98px) {
  .c-corp-concept__grid {
    grid-template-columns: 1fr;
  }
}
.c-corp-concept__box {
  background-color: #ffffff;
  padding: 48px 32px;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform 0.3s ease;
}
.c-corp-concept__box:hover {
  transform: translateY(-8px);
}
@media (max-width: 767.98px) {
  .c-corp-concept__box {
    padding: 32px 24px;
  }
}
.c-corp-concept__icon {
  width: 80px;
  height: 80px;
  background-color: var(--color-bg-pattern);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  color: var(--color-main);
}
.c-corp-concept__icon img {
  width: 60px;
  height: 60px;
  -o-object-fit: contain;
     object-fit: contain;
}
.c-corp-concept__title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--color-main);
  letter-spacing: 0.1em;
}
.c-corp-concept__desc {
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
  margin: 0;
  text-align: left;
}

/* Company Overview */
.c-corp-company {
  padding: 120px 0;
  background-color: var(--color-bg-pattern);
}
@media (max-width: 767.98px) {
  .c-corp-company {
    padding: 80px 0;
  }
}

.c-corp-table {
  width: 100%;
  border-collapse: collapse;
  background-color: #ffffff;
  border-radius: 4px;
  overflow: hidden;
}
.c-corp-table tr {
  border-bottom: 1px solid #e0e0e0;
}
.c-corp-table tr:last-child {
  border-bottom: none;
}
.c-corp-table th,
.c-corp-table td {
  padding: 24px 32px;
  text-align: left;
  vertical-align: top;
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
}
@media (max-width: 767.98px) {
  .c-corp-table th,
  .c-corp-table td {
    font-size: 14px;
    padding: 16px 20px;
  }
}
.c-corp-table th {
  width: 220px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
}
@media (max-width: 767.98px) {
  .c-corp-table th {
    width: auto;
  }
}
@media (max-width: 767.98px) {
  .c-corp-table tr {
    display: flex;
    flex-direction: column;
    padding: 4px 0;
  }
  .c-corp-table th,
  .c-corp-table td {
    padding: 8px 20px;
  }
  .c-corp-table th {
    padding-bottom: 0;
  }
}
.c-corp-table {
  /* 代表・役員: 2行を1グループとして罫線なしで隣接させる */
  /* .c-corp-table tr の汎用ルールに詳細度で負けないよう tr を明示する */
}
.c-corp-table tr.c-corp-table__row--group-top th,
.c-corp-table tr.c-corp-table__row--group-top td,
.c-corp-table tr.c-corp-table__row--group-bottom th,
.c-corp-table tr.c-corp-table__row--group-bottom td {
  padding-top: 12px;
  padding-bottom: 12px;
}
.c-corp-table tr.c-corp-table__row--group-top {
  border-bottom: none;
}
.c-corp-table tr.c-corp-table__row--group-top th,
.c-corp-table tr.c-corp-table__row--group-top td {
  padding-bottom: 4px;
}
@media (max-width: 767.98px) {
  .c-corp-table tr.c-corp-table__row--group-top {
    padding-bottom: 0;
    /* 見出し(代表)とその役職・名前は近接させる */
  }
  .c-corp-table tr.c-corp-table__row--group-top th {
    padding-bottom: 3px;
  }
  .c-corp-table tr.c-corp-table__row--group-top {
    /* 次のグループ(役員)の見出しとの間は広めに空ける */
  }
  .c-corp-table tr.c-corp-table__row--group-top td {
    padding-top: 3px;
    padding-bottom: 18px;
  }
}
.c-corp-table tr.c-corp-table__row--group-bottom th,
.c-corp-table tr.c-corp-table__row--group-bottom td {
  padding-top: 4px;
}
@media (max-width: 767.98px) {
  .c-corp-table tr.c-corp-table__row--group-bottom {
    padding-top: 0;
    /* 前のグループとの間隔はtd側の余白で確保済みなので詰める */
  }
  .c-corp-table tr.c-corp-table__row--group-bottom th {
    padding-top: 0;
    padding-bottom: 3px;
  }
  .c-corp-table tr.c-corp-table__row--group-bottom {
    /* 見出し(役員)とその役職・名前は近接させる */
  }
  .c-corp-table tr.c-corp-table__row--group-bottom td {
    padding-top: 3px;
    padding-bottom: 8px;
  }
}
.c-corp-table__office:not(:last-child) {
  margin-bottom: 20px;
}
.c-corp-table__office-name {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text);
}
@media (max-width: 767.98px) {
  .c-corp-table__office-name {
    font-size: 15px;
  }
}
.c-corp-table__office-address {
  margin: 0 0 4px;
}
.c-corp-table__office-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin: 0;
}
.c-corp-table {
  /* 顧問紹介: ラベル幅を揃えて事務所名の頭を揃える */
}
.c-corp-table__advisor-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.c-corp-table__advisor-row {
  display: flex;
  align-items: flex-start;
}
.c-corp-table__advisor-row:not(:last-child) {
  margin-bottom: 4px;
}
.c-corp-table__advisor-label {
  flex: 0 0 7em;
  white-space: nowrap;
}
.c-corp-table__advisor-name {
  flex: 1;
}
.c-corp-table__advisor-note {
  margin: 8px 0 0;
  font-size: 13px;
  text-align: right;
  color: var(--color-text);
  opacity: 0.7;
}

/* History */
.c-corp-history {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-corp-history {
    padding: 80px 0;
  }
}
.c-corp-history__list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 840px;
  margin: 0 auto;
}
.c-corp-history__item {
  display: flex;
  gap: 40px;
  padding: 24px 0;
  border-bottom: 1px solid #e0e0e0;
}
.c-corp-history__item:first-child {
  border-top: 1px solid #e0e0e0;
}
@media (max-width: 767.98px) {
  .c-corp-history__item {
    gap: 16px;
    padding: 16px 0;
  }
}
.c-corp-history {
  /* 同じ年の項目同士: 罫線を薄くして間隔を詰める */
}
.c-corp-history__item--group-top {
  padding-bottom: 12px;
  border-bottom: none;
}
@media (max-width: 767.98px) {
  .c-corp-history__item--group-top {
    padding-bottom: 8px;
  }
}
.c-corp-history__item--group-bottom {
  padding-top: 8px;
}
@media (max-width: 767.98px) {
  .c-corp-history__item--group-bottom {
    padding-top: 8px;
  }
}
.c-corp-history__year {
  flex: 0 0 140px;
  font-family: var(--font-en);
  font-size: 20px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
  white-space: nowrap;
  text-align: right;
}
@media (max-width: 767.98px) {
  .c-corp-history__year {
    flex: 0 0 108px;
    font-size: 16px;
  }
}
.c-corp-history__text {
  flex: 1;
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-text);
  margin: 0;
  padding-top: 2px;
}
@media (max-width: 767.98px) {
  .c-corp-history__text {
    font-size: 14px;
  }
}

/* Organization */
.c-corp-org {
  padding: 120px 0;
  background-color: var(--color-bg-pattern);
}
@media (max-width: 767.98px) {
  .c-corp-org {
    padding: 80px 0;
  }
}
.c-corp-org__chart {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 960px;
  margin: 0 auto;
}
.c-corp-org__top {
  padding: 20px 56px;
  background-color: var(--color-main);
  color: #ffffff;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: center;
  /* タブレット・スマホでは下のツリーが左揃えになるため、
     見出しの役割が伝わるよう幅いっぱいに広げてツリーの起点(左端)と揃える */
}
@media (max-width: 991.98px) {
  .c-corp-org__top {
    width: 100%;
    padding: 18px 24px;
    font-size: 15px;
  }
}
.c-corp-org__connector {
  width: 1px;
  height: 40px;
  background-color: #c4c4c4;
  /* ツリーの縦線(__row の border-left)と同じ左端(x=0)に揃えて連続させる */
}
@media (max-width: 991.98px) {
  .c-corp-org__connector {
    align-self: flex-start;
    height: 24px;
  }
}
.c-corp-org {
  /* 5グループを横並びにすると、タブレット幅(992px未満)では
     「天理リサイクル事業部」など長いラベルが折り返して崩れるため、
     タブレットもスマホと同じ縦ツリー表示にする（ヘッダーのハンバーガー切り替えと同じ992pxが境目） */
}
.c-corp-org__row {
  position: relative;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
  width: 100%;
  padding-top: 32px;
}
@media (max-width: 991.98px) {
  .c-corp-org__row {
    flex-direction: column;
    align-items: stretch;
    padding-top: 16px;
    padding-left: 24px;
    gap: 20px;
    border-left: 1px solid #c4c4c4;
  }
}
.c-corp-org__box {
  position: relative;
  width: 100%;
  padding: 20px 16px;
  background-color: #ffffff;
  border: 1px solid var(--color-main);
  border-radius: 4px;
  color: var(--color-main);
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.05em;
}
.c-corp-org__box::before {
  content: "";
  position: absolute;
  top: -32px;
  left: 50%;
  width: 1px;
  height: 32px;
  background-color: #c4c4c4;
}
@media (max-width: 991.98px) {
  .c-corp-org__box::before {
    content: "";
    top: 50%;
    left: -24px;
    width: 24px;
    height: 1px;
    transform: translateY(-50%);
  }
}
.c-corp-org__box::after {
  content: none;
}
@media (max-width: 991.98px) {
  .c-corp-org__box::after {
    content: "";
    position: absolute;
    top: 50%;
    left: -27px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--color-main);
    transform: translateY(-50%);
  }
}
@media (max-width: 991.98px) {
  .c-corp-org__box {
    padding: 16px 8px;
    font-size: 13px;
  }
}
.c-corp-org {
  /* 「天理リサイクル事業部」用の改行。デスクトップは各ボックス幅が狭いため改行するが、
     タブレット・スマホはボックスが全幅になり1行に収まるため改行を解除する */
}
@media (max-width: 991.98px) {
  .c-corp-org__box-break {
    display: none;
  }
}
.c-corp-org__group {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  min-width: 160px;
  padding: 0 12px;
}
.c-corp-org__group::before {
  content: "";
  position: absolute;
  top: -32px;
  left: 0;
  right: 0;
  height: 1px;
  background-color: #c4c4c4;
}
.c-corp-org__group:first-child::before {
  left: 50%;
}
.c-corp-org__group:last-child::before {
  right: 50%;
}
@media (max-width: 991.98px) {
  .c-corp-org__group {
    flex: none;
    width: 100%;
    min-width: 0;
    padding: 0;
  }
  .c-corp-org__group::before {
    content: none;
  }
  .c-corp-org__group {
    /* 縦の導線(__row の border-left)は__rowの高さいっぱいに伸びるため、
       最後の要素では接続点(丸印/中央)より下が無駄に伸びて見える。
       背景色と同じ矩形で下半分を隠して、接続点で止まっているように見せる */
    /* デスクトップ用ルール(right:50% / height:1px)を明示的に打ち消し、
       top〜bottomの範囲でしっかり高さを取らせる */
  }
  .c-corp-org__group:last-child::before {
    content: "";
    position: absolute;
    top: 50%;
    right: auto;
    bottom: 0;
    left: -25px;
    width: 3px;
    height: auto;
    background-color: var(--color-bg-pattern);
  }
}
.c-corp-org__subrow {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin-top: 24px;
}
.c-corp-org__subrow::before {
  content: "";
  position: absolute;
  top: -24px;
  left: 50%;
  width: 1px;
  height: 24px;
  background-color: #c4c4c4;
}
@media (max-width: 991.98px) {
  .c-corp-org__subrow::before {
    content: none;
  }
}
@media (max-width: 991.98px) {
  .c-corp-org__subrow {
    gap: 6px;
    margin-top: 10px;
    margin-left: 10px;
    padding-left: 16px;
    border-left: 1px dashed #c4c4c4;
  }
}
.c-corp-org__subbox {
  position: relative;
  padding: 12px 8px;
  background-color: #ffffff;
  border: 1px solid #c4c4c4;
  border-radius: 4px;
  color: var(--color-text);
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.05em;
}
@media (max-width: 991.98px) {
  .c-corp-org__subbox {
    padding: 10px 6px;
    font-size: 12px;
  }
  .c-corp-org__subbox::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -16px;
    width: 16px;
    height: 1px;
    background-color: #c4c4c4;
    transform: translateY(-50%);
  }
  .c-corp-org__subbox {
    /* サブメニューの破線(__subrow の border-left)も__subrowの高さいっぱいに伸びるため、
       最後の項目では接続点(中央)より下が無駄に伸びて見える。背景色と同じ矩形で隠す */
  }
  .c-corp-org__subbox:last-child::after {
    content: "";
    position: absolute;
    top: 50%;
    right: auto;
    bottom: 0;
    left: -17px;
    width: 3px;
    height: auto;
    background-color: var(--color-bg-pattern);
  }
}
.c-corp-org__note {
  margin-top: 48px;
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
  text-align: center;
}
.c-corp-org__note a {
  color: var(--color-main);
  font-weight: 700;
  text-decoration: underline;
}
.c-corp-org__note a:hover {
  color: var(--color-sub);
}
@media (max-width: 767.98px) {
  .c-corp-org__note {
    margin-top: 32px;
    font-size: 13px;
  }
}

/* Facility */
.c-corp-facility {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-corp-facility {
    padding: 80px 0;
  }
}
.c-corp-facility__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
@media (max-width: 767.98px) {
  .c-corp-facility__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.c-corp-facility__label {
  margin-top: 12px;
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.15em;
}
.c-corp-facility__label::before {
  content: "■";
  margin-right: 6px;
  color: var(--color-text);
}
.c-corp-facility__img {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 4/3;
}
.c-corp-facility__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-corp-facility__badge {
  position: absolute;
  top: 50%;
  right: 24px;
  transform: translateY(-50%);
  background-color: rgba(76, 175, 80, 0.88);
  color: #ffffff;
  padding: 16px 20px;
  border-radius: 4px;
  text-align: center;
  line-height: 1.3;
  min-width: 100px;
}
@media (max-width: 767.98px) {
  .c-corp-facility__badge {
    right: 16px;
    padding: 12px 14px;
    min-width: 80px;
  }
}
.c-corp-facility__badge-en {
  display: block;
  font-family: var(--font-en);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
@media (max-width: 767.98px) {
  .c-corp-facility__badge-en {
    font-size: 15px;
  }
}
.c-corp-facility__badge-initial {
  font-size: 28px;
  font-weight: 700;
}
@media (max-width: 767.98px) {
  .c-corp-facility__badge-initial {
    font-size: 22px;
  }
}
.c-corp-facility__badge-ja {
  display: block;
  font-size: 12px;
  font-weight: 700;
  margin-top: 4px;
  letter-spacing: 0.1em;
}
@media (max-width: 767.98px) {
  .c-corp-facility__badge-ja {
    font-size: 11px;
  }
}

/* Access */
.c-corp-access {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-corp-access {
    padding: 80px 0;
  }
}
.c-corp-access__office:not(:last-child) {
  margin-bottom: 64px;
}
.c-corp-access__office-name {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
  margin: 0 0 24px;
}
@media (max-width: 767.98px) {
  .c-corp-access__office-name {
    font-size: 18px;
    margin-bottom: 16px;
  }
}
.c-corp-access__row {
  display: flex;
  gap: 48px;
  align-items: stretch;
  margin-bottom: 40px;
}
@media (max-width: 991.98px) {
  .c-corp-access__row {
    flex-direction: column;
    gap: 32px;
    margin-bottom: 32px;
  }
}
.c-corp-access__row--no-photo .c-corp-access__map {
  flex: 1;
}
.c-corp-access__photo {
  flex: 1;
  border-radius: 4px;
  overflow: hidden;
  min-height: 280px;
}
.c-corp-access__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-corp-access__info {
  flex: 0 0 480px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 40px;
  background-color: var(--color-bg-pattern);
  border-radius: 4px;
}
@media (max-width: 991.98px) {
  .c-corp-access__info {
    flex: 1;
    padding: 32px 24px;
  }
}
.c-corp-access__item-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.1em;
  margin-bottom: 8px;
}
.c-corp-access__item-value {
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
  letter-spacing: 0.05em;
}
.c-corp-access__item a.c-corp-access__item-value {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-en);
  font-size: 24px;
  font-weight: 700;
  color: var(--color-accent);
  text-decoration: none;
}
.c-corp-access__item a.c-corp-access__item-value:hover {
  color: var(--color-sub);
  opacity: 1;
}
.c-corp-access__item a.c-corp-access__item-value svg {
  flex-shrink: 0;
  color: var(--color-accent);
}
.c-corp-access__map {
  border-radius: 4px;
  overflow: hidden;
  height: 450px;
}
@media (max-width: 767.98px) {
  .c-corp-access__map {
    height: 300px;
  }
}
.c-corp-access__map--inline {
  height: auto;
  min-height: 320px;
}
@media (max-width: 991.98px) {
  .c-corp-access__map--inline {
    height: 300px;
    min-height: 0;
  }
}
.c-corp-access__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ==========================================================================
   Partners Page (ご協力会社様へ)
   ========================================================================== */
/* Notice (announcement) */
.c-partners-notice {
  padding: 120px 0;
  background-color: var(--color-bg-pattern);
}
@media (max-width: 767.98px) {
  .c-partners-notice {
    padding: 80px 0;
  }
}
.c-partners-notice__lead {
  max-width: 880px;
  margin: 0 auto;
}
.c-partners-notice__lead p {
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin: 0 0 24px;
}
.c-partners-notice__lead p:last-child {
  margin-bottom: 0;
}
.c-partners-notice__lead a {
  color: var(--color-main);
  font-weight: 700;
  text-decoration: underline;
}
.c-partners-notice__lead a:hover {
  color: var(--color-sub);
}
@media (max-width: 767.98px) {
  .c-partners-notice__lead p {
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 20px;
  }
}

/* Invoice Submission Guide */
.c-partners-invoice {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-partners-invoice {
    padding: 80px 0;
  }
}
.c-partners-invoice__block {
  max-width: 880px;
  margin: 0 auto 64px;
}
.c-partners-invoice__block:last-of-type {
  margin-bottom: 0;
}
@media (max-width: 767.98px) {
  .c-partners-invoice__block {
    margin-bottom: 48px;
  }
}
.c-partners-invoice__heading {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
  padding-bottom: 16px;
  margin-bottom: 24px;
  border-bottom: 2px solid var(--color-bg-pattern);
}
@media (max-width: 767.98px) {
  .c-partners-invoice__heading {
    font-size: 17px;
  }
}
.c-partners-invoice__text {
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-text);
  margin: 0;
}
@media (max-width: 767.98px) {
  .c-partners-invoice__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.c-partners-invoice__sub {
  margin-bottom: 32px;
}
.c-partners-invoice__sub:last-child {
  margin-bottom: 0;
}
.c-partners-invoice__sub-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 12px;
}
@media (max-width: 767.98px) {
  .c-partners-invoice__sub-title {
    font-size: 15px;
  }
}
.c-partners-invoice__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: step;
}
.c-partners-invoice__steps > li {
  position: relative;
  padding-left: 40px;
  margin-bottom: 32px;
  counter-increment: step;
}
.c-partners-invoice__steps > li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: var(--color-main);
  color: #ffffff;
  font-family: var(--font-en);
  font-weight: 700;
  font-size: 14px;
  line-height: 28px;
  text-align: center;
}
.c-partners-invoice__steps > li:last-child {
  margin-bottom: 0;
}
.c-partners-invoice__file-label {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  margin: 24px 0 8px;
}
.c-partners-invoice__note {
  font-size: 13px;
  line-height: 1.7;
  color: var(--color-text);
  opacity: 0.7;
  margin: 0 0 12px;
}

/* CTA Button (請求書提出 / 操作説明資料) */
.c-partners-cta {
  text-align: center;
  margin-top: 64px;
}
.c-partners-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 24px 64px;
  font-size: 16px;
  font-weight: 700;
  color: #ffffff;
  background-color: var(--color-main);
  border-radius: 4px;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: background-color 0.3s ease;
}
.c-partners-cta__btn:hover {
  background-color: var(--color-sub);
}
@media (max-width: 767.98px) {
  .c-partners-cta__btn {
    width: 100%;
    justify-content: center;
  }
}

/* Operation Guide */
.c-partners-operation {
  padding: 120px 0;
  background-color: var(--color-bg-pattern);
}
@media (max-width: 767.98px) {
  .c-partners-operation {
    padding: 80px 0;
  }
}
.c-partners-operation__block {
  max-width: 880px;
  margin: 0 auto;
}
.c-partners-operation__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 16px;
}
@media (max-width: 767.98px) {
  .c-partners-operation__title {
    font-size: 16px;
  }
}
.c-partners-operation__text {
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-text);
  margin: 0;
}
@media (max-width: 767.98px) {
  .c-partners-operation__text {
    font-size: 14px;
    line-height: 1.8;
  }
}

/* Inquiry */
.c-partners-contact {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-partners-contact {
    padding: 80px 0;
  }
}
.c-partners-contact__grid {
  display: flex;
  flex-direction: column;
  gap: 32px;
  max-width: 880px;
  margin: 0 auto;
}
.c-partners-contact__box {
  background-color: var(--color-bg-pattern);
  border-radius: 4px;
  padding: 40px;
}
@media (max-width: 767.98px) {
  .c-partners-contact__box {
    padding: 24px;
  }
}
.c-partners-contact__title {
  font-size: 17px;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.05em;
  margin: 0 0 8px;
}
@media (max-width: 767.98px) {
  .c-partners-contact__title {
    font-size: 15px;
  }
}
.c-partners-contact__note {
  font-size: 13px;
  color: var(--color-text);
  opacity: 0.7;
  margin: 0 0 20px;
}
.c-partners-contact__name {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 12px;
}
.c-partners-contact__tel {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-en);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-main);
  text-decoration: none;
  line-height: 1;
  margin-bottom: 8px;
}
.c-partners-contact__tel svg {
  flex-shrink: 0;
  color: var(--color-accent);
}
.c-partners-contact__tel:hover {
  color: var(--color-sub);
}
@media (max-width: 767.98px) {
  .c-partners-contact__tel {
    font-size: 22px;
  }
}
.c-partners-contact__hours {
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
}
.c-partners-contact__mail {
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-text);
  margin: 16px 0 0;
}
.c-partners-contact__mail a {
  color: var(--color-main);
  word-break: break-all;
}
.c-partners-contact__mail a:hover {
  color: var(--color-sub);
}
.c-partners-contact__link-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  padding: 12px 32px;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-main);
  border: 1px solid var(--color-main);
  border-radius: 4px;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: color 0.3s ease, background-color 0.3s ease;
}
.c-partners-contact__link-btn:hover {
  color: #ffffff;
  background-color: var(--color-main);
}
@media (max-width: 767.98px) {
  .c-partners-contact__link-btn {
    width: 100%;
    justify-content: center;
  }
}

/* Download (Format Files) */
.c-partners-download__list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.c-partners-download__list:last-child {
  margin-bottom: 0;
}
.c-partners-download__item {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 32px;
  background-color: var(--color-bg-pattern);
  border-radius: 4px;
}
@media (max-width: 767.98px) {
  .c-partners-download__item {
    flex-wrap: wrap;
    gap: 12px;
    padding: 20px;
  }
}
.c-partners-download__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-main);
}
.c-partners-download__icon svg {
  width: 22px;
  height: 22px;
}
.c-partners-download__body {
  flex: 1;
  min-width: 0;
}
@media (max-width: 767.98px) {
  .c-partners-download__body {
    flex: 1 1 100%;
    order: -1;
  }
}
.c-partners-download__name {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-main);
  margin: 0 0 4px;
}
.c-partners-download__desc, .c-partners-download__date {
  font-size: 13px;
  line-height: 1.7;
  color: var(--color-text);
  opacity: 0.7;
  margin: 0;
}
.c-partners-download__date {
  font-family: var(--font-en);
}
.c-partners-download__format {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--color-main);
  border: 1px solid var(--color-main);
  border-radius: 4px;
  letter-spacing: 0.05em;
}
.c-partners-download__link {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 28px;
  font-size: 14px;
  font-weight: 700;
  color: #ffffff;
  background-color: var(--color-main);
  border-radius: 4px;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: background-color 0.3s ease;
}
.c-partners-download__link:hover {
  background-color: var(--color-sub);
}
@media (max-width: 767.98px) {
  .c-partners-download__link {
    width: 100%;
  }
}

/* ==========================================================================
   Works List Page (施工実績一覧)
   ========================================================================== */
.c-works-list {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-works-list {
    padding: 80px 0;
  }
}

/* Filters */
.c-works-filters {
  display: flex;
  flex-direction: row;
  gap: 12px;
  justify-content: center;
  margin-bottom: 40px;
}

.c-works-filter {
  position: relative;
}
.c-works-filter__toggle {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 28px;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-main);
  background-color: #ffffff;
  border: 1px solid var(--color-main);
  border-radius: 4px;
  cursor: pointer;
  letter-spacing: 0.05em;
  transition: all 0.3s ease;
}
.c-works-filter__toggle:hover {
  background-color: var(--color-main);
  color: #ffffff;
}
.c-works-filter__toggle-icon {
  flex-shrink: 0;
  transition: transform 0.3s ease;
}
.c-works-filter.is-open .c-works-filter__toggle-icon {
  transform: rotate(180deg);
}
.c-works-filter__panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: 340px;
  background-color: #ffffff;
  border-radius: 4px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
  padding: 16px 24px;
  z-index: 20;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}
@media (max-width: 767.98px) {
  .c-works-filter__panel {
    width: 280px;
  }
}
.c-works-filter.is-open .c-works-filter__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.c-works-filter__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.c-works-filter__item {
  border-bottom: 1px solid #ebe9e4;
}
.c-works-filter__item:last-child {
  border-bottom: none;
}
.c-works-filter__label-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  cursor: pointer;
}
.c-works-filter__checkbox {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  accent-color: var(--color-main);
  cursor: pointer;
}
.c-works-filter__label {
  flex: 1;
  font-size: 14px;
  color: var(--color-text);
  letter-spacing: 0.03em;
}
.c-works-filter__chevron {
  flex-shrink: 0;
  color: var(--color-text);
  opacity: 0.35;
}
.c-works-filter__actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #ebe9e4;
}
.c-works-filter__reset, .c-works-filter__apply {
  flex: 1;
  padding: 10px 0;
  font-size: 13px;
  font-weight: 700;
  border-radius: 4px;
  cursor: pointer;
  letter-spacing: 0.05em;
  transition: all 0.3s ease;
}
.c-works-filter__reset {
  background-color: #ffffff;
  border: 1px solid var(--color-main);
  color: var(--color-main);
}
.c-works-filter__reset:hover {
  background-color: var(--color-bg-pattern);
}
.c-works-filter__apply {
  background-color: var(--color-main);
  border: 1px solid var(--color-main);
  color: #ffffff;
}
.c-works-filter__apply:hover {
  background-color: var(--color-sub);
  border-color: var(--color-sub);
}

/* Card Grid */
.c-works-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px 24px;
}
@media (max-width: 991.98px) {
  .c-works-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 24px;
  }
}
@media (max-width: 767.98px) {
  .c-works-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.c-works-grid__empty {
  text-align: center;
  font-size: 15px;
  color: var(--color-text);
  opacity: 0.7;
  padding: 60px 0;
}

/* Card */
.c-works-card.is-hidden {
  display: none;
}
.c-works-card__link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.c-works-card__img {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 4px;
  background-color: #e0e0e0;
}
.c-works-card__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.6s ease;
}
.c-works-card__link:hover .c-works-card__img img {
  transform: scale(1.06);
}
.c-works-card__body {
  padding-top: 16px;
}
.c-works-card__tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
  padding: 0;
}
.c-works-card__tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 700;
  color: #ffffff;
  background-color: var(--color-main);
  border-radius: 4px;
  letter-spacing: 0.05em;
}
.c-works-card__title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--color-text);
  margin: 0;
  letter-spacing: 0.02em;
}

/* Pagination */
.c-pagination {
  display: flex;
  justify-content: center;
  margin-top: 64px;
}
@media (max-width: 767.98px) {
  .c-pagination {
    margin-top: 40px;
  }
}
.c-pagination__list {
  display: flex;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.c-pagination__item a,
.c-pagination__item span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 8px;
  border-radius: 50%;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text);
  text-decoration: none;
  transition: all 0.3s ease;
}
.c-pagination__item a:hover {
  background-color: var(--color-bg-pattern);
}
.c-pagination__item.is-current span {
  background-color: var(--color-main);
  color: #ffffff;
}
.c-pagination__item--next a {
  width: auto;
  min-width: 96px;
  border-radius: 22px;
  gap: 6px;
  padding: 0 20px;
  background-color: var(--color-bg-pattern);
}
.c-pagination__item--next a:hover {
  background-color: var(--color-main);
  color: #ffffff;
}

/* ==========================================================================
   Works Detail Page (施工実績詳細)
   ========================================================================== */
.c-work-detail {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-work-detail {
    padding: 80px 0;
  }
}
.c-work-detail__layout {
  display: flex;
  gap: 64px;
}
@media (max-width: 991.98px) {
  .c-work-detail__layout {
    flex-direction: column;
    gap: 40px;
  }
}
.c-work-detail {
  /* Gallery (Left on PC) */
}
.c-work-detail__gallery {
  flex: 0 0 58%;
}
.c-work-detail__main-img {
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 4px;
  background-color: #e0e0e0;
}
.c-work-detail__main-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-work-detail__thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
}
.c-work-detail__thumb {
  flex: 1 1 calc(20% - 9.6px);
  max-width: calc(20% - 9.6px);
  aspect-ratio: 4/3;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 4px;
  overflow: hidden;
  background: none;
  cursor: pointer;
  opacity: 0.7;
  transition: border-color 0.3s ease, opacity 0.3s ease;
}
.c-work-detail__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.c-work-detail__thumb:hover {
  opacity: 1;
}
.c-work-detail__thumb.is-active {
  border-color: #8dc556;
  opacity: 1;
}
@media (max-width: 767.98px) {
  .c-work-detail__thumb {
    flex: 1 1 calc(33.333% - 8px);
    max-width: calc(33.333% - 8px);
  }
}
.c-work-detail__arrows {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}
.c-work-detail__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 4px;
  background-color: var(--color-sub);
  color: #ffffff;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.c-work-detail__arrow:hover {
  background-color: var(--color-main);
}
.c-work-detail {
  /* Info (Right on PC) */
}
.c-work-detail__info {
  flex: 1;
}
.c-work-detail__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
}
.c-work-detail__tag {
  display: inline-flex;
  align-items: center;
  padding: 9px 20px;
  font-size: 16px;
  font-weight: 700;
  color: #ffffff;
  background-color: var(--color-main);
  border-radius: 4px;
  letter-spacing: 0.05em;
}
.c-work-detail__title {
  font-family: var(--font-ja);
  font-size: 34px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--color-text);
  letter-spacing: 0.05em;
  padding-bottom: 24px;
  margin: 0 0 24px;
  border-bottom: 1px solid #e0e0e0;
}
@media (max-width: 767.98px) {
  .c-work-detail__title {
    font-size: 24px;
  }
}
.c-work-detail__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  margin: 0 0 32px;
}
.c-work-detail__address, .c-work-detail__period {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 19px;
  color: var(--color-text);
  letter-spacing: 0.03em;
  margin: 0;
}
.c-work-detail__address svg, .c-work-detail__period svg {
  flex-shrink: 0;
  color: var(--color-accent);
}
.c-work-detail {
  /* Inquiry CTA Box */
}
.c-work-detail__contact {
  padding: 32px;
  background-color: var(--color-bg-pattern);
  border-radius: 4px;
  text-align: center;
}
@media (max-width: 767.98px) {
  .c-work-detail__contact {
    padding: 24px;
  }
}
.c-work-detail__contact-label {
  display: inline-block;
  padding: 12px 32px;
  margin: 0 0 20px;
  font-size: 17px;
  font-weight: 700;
  color: #ffffff;
  background-color: var(--color-main);
  border-radius: 24px;
  letter-spacing: 0.05em;
}
.c-work-detail__contact-tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 0 20px;
  font-family: var(--font-en);
  font-size: 34px;
  font-weight: 700;
  color: var(--color-main);
  text-decoration: none;
}
.c-work-detail__contact-form {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 16px 24px;
  background-color: var(--color-accent);
  color: #ffffff;
  font-size: 17px;
  font-weight: 700;
  border-radius: 4px;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: all 0.3s ease;
}
.c-work-detail__contact-form:hover {
  background-color: #e07335;
  opacity: 1;
  color: #ffffff;
}

/* Prev / List / Next Navigation */
.c-work-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  border-top: 1px solid #e6e4df;
  border-bottom: 1px solid #e6e4df;
}
.c-work-nav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 24px 16px;
  text-decoration: none;
  color: var(--color-text);
  border-right: 1px solid #e6e4df;
  transition: background-color 0.3s ease;
}
.c-work-nav__item:hover {
  background-color: var(--color-bg-pattern);
  opacity: 1;
}
.c-work-nav__item:last-child {
  border-right: none;
}
@media (max-width: 767.98px) {
  .c-work-nav__item {
    padding: 16px 8px;
    gap: 2px;
  }
}
.c-work-nav__item--list {
  flex-direction: row;
  gap: 10px;
  min-width: 160px;
}
@media (max-width: 767.98px) {
  .c-work-nav__item--list {
    flex-direction: column;
    gap: 2px;
    min-width: 0;
  }
  .c-work-nav__item--list svg {
    width: 16px;
    height: 16px;
  }
}
.c-work-nav__label {
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--color-accent);
}
.c-work-nav__text {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.03em;
}
@media (max-width: 767.98px) {
  .c-work-nav__text {
    font-size: 12px;
  }
}

/* ==========================================================================
   Privacy Policy Page
   ========================================================================== */
.c-privacy {
  padding: 100px 0 140px;
}
@media (max-width: 767.98px) {
  .c-privacy {
    padding: 64px 0 80px;
  }
}
.c-privacy__container {
  max-width: 840px;
  margin: 0 auto;
}
.c-privacy__lead {
  font-size: 15px;
  line-height: 2;
  color: var(--color-text);
  margin-bottom: 56px;
}
.c-privacy__article {
  padding: 32px 0;
  border-bottom: 1px solid #e5e5e5;
}
.c-privacy__article:first-of-type {
  padding-top: 0;
}
.c-privacy__article:last-of-type {
  border-bottom: none;
}
.c-privacy__title {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 0.05em;
  margin-bottom: 16px;
}
.c-privacy__title span {
  font-family: var(--font-en);
  font-size: 24px;
  font-weight: 700;
  color: var(--color-main);
}
.c-privacy__text {
  font-size: 14px;
  line-height: 2;
  color: var(--color-text);
  opacity: 0.85;
}
.c-privacy__list {
  margin: 16px 0 0;
  padding-left: 1.4em;
  font-size: 14px;
  line-height: 2;
  color: var(--color-text);
  opacity: 0.85;
}
.c-privacy__list li {
  list-style: disc;
}
.c-privacy__company {
  margin-top: 16px;
  font-size: 14px;
  line-height: 2;
  color: var(--color-text);
}

/* ==========================================================================
   News List Page (お知らせ一覧)
   ========================================================================== */
.c-news-page {
  padding: 120px 0;
  background-color: var(--color-base);
}
@media (max-width: 767.98px) {
  .c-news-page {
    padding: 80px 0;
  }
}/*# sourceMappingURL=style.css.map */