@charset "UTF-8";
/*
Theme Name: n-kaigo-origenal-hp
Author: K.Fujitani
Description: 日本介護サービスホームページ
Version: 1.0
*/
@font-face {
  font-family: "Dela Gothic One";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./assets/fonts/DelaGothicOne-Regular-converted.woff2") format("woff2");
}
/* 主要なタイトル（ヘッダー、サービスカードなど）のフォント */
h1.page-title {
  /* .service-archive-grid .service-card__title  */
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(48px, 7vw, 64px);
  margin: 0;
  line-height: 1.2;
}

/* h2見出しの共通スタイル */
.section-title {
  position: relative;
  background-color: #ff7f00;
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(28px, 4vw, 54px);
  padding: 10px 30px;
  display: inline-block;
  margin-bottom: 30px;
  text-align: center;
  z-index: 2;
}

/* h3見出しの共通スタイル */
.subsection-title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  color: #000;
  font-weight: 400;
  z-index: 2;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "BIZ UDPGothic", sans-serif;
  line-height: 1.7;
  letter-spacing: 0.05em;
  background-image: url("assets/images/bg-pattern.png");
  background-repeat: repeat;
  background-attachment: fixed;
}

body.is-nav-open {
  overflow: hidden;
}

#page,
.site {
  background-color: transparent;
}

.container {
  position: relative;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

.site-header {
  position: relative;
  min-height: max(80vh, 120px);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.site-header--simple-bar {
  min-height: 110px;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
}

.home .site-header,
.post-type-archive-gallery .site-header,
.page-template-page-philosophy .site-header,
.site-header--no-title {
  min-height: 0;
}

.header-top-bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 0 40px;
  transition: all 0.3s ease;
  pointer-events: none;
}
.header-top-bar .site-logo,
.header-top-bar .menu-toggle,
.header-top-bar .page-title-container {
  pointer-events: auto;
}

.site-header--no-title .header-top-bar {
  align-items: center;
  height: 120px;
  padding-top: 0;
  padding-bottom: 0;
}

.header-left {
  display: flex;
  align-items: flex-end;
  gap: 20px;
  flex-shrink: 0;
}

.header-right {
  display: flex;
  align-items: flex-end;
  gap: 20px;
  flex-shrink: 0;
}

.site-logo img {
  display: block;
  height: 80px;
  width: auto;
  transition: height 0.3s ease;
}

.page-title-container {
  display: flex;
  align-items: center;
  height: 100px;
  padding: 0 40px;
  background-color: #ff7f00;
  transition: all 0.3s ease;
  max-width: calc(100vw - 40px - 80px - 20px - 90px - 40px - 20px);
  overflow: hidden;
}

h1.page-title {
  margin: 0;
  color: #fff;
  font-size: clamp(36px, 5vw, 56px);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.single-service .page-title--service-name {
  display: none !important;
}

.single-service .page-title--short {
  display: none !important;
}

.single-service .page-title--full {
  display: inline !important;
}

.site-header__headline {
  position: absolute;
  bottom: 60px;
  right: 0;
  max-width: 100%;
  padding: 15px 30px;
  border-radius: 8px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 6vw, 64px);
  line-height: 1.4;
  font-weight: 400;
  color: #fff;
  paint-order: stroke fill;
  background-color: transparent;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.9), 0 0 20px rgba(0, 0, 0, 0.8), 0 0 30px rgba(0, 0, 0, 0.5);
  white-space: pre-wrap;
  text-align: right;
}

.headline-char {
  display: inline-block;
  opacity: 1;
  transform: scale(1);
}

.site-header__headline.animate .headline-char {
  animation: headlineCharScale 1s ease forwards;
}

@keyframes headlineCharScale {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.5);
  }
  100% {
    transform: scale(1);
  }
}
.header-top-bar.is-scrolled {
  position: fixed;
  align-items: center;
  padding-top: 10px;
  padding-bottom: 10px;
  border: none;
}
.header-top-bar.is-scrolled .header-left {
  align-items: center;
}
.header-top-bar.is-scrolled .site-logo img {
  height: 50px;
}
.header-top-bar.is-scrolled .page-title-container {
  opacity: 0;
  visibility: hidden;
}

.site-header .menu-toggle {
  width: 90px;
  height: 90px;
  padding: 0;
  border-radius: 50%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
  background-color: #28a745;
  border: 2px solid #fd7e14;
  flex-shrink: 0;
}
.site-header .menu-toggle:hover {
  background-color: transparent;
  color: #fd7e14;
}
.site-header .menu-toggle:focus, .site-header .menu-toggle:active {
  outline: none;
  border: 2px solid #fd7e14;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .site-header .menu-toggle {
    width: 70px;
    height: 70px;
    font-size: clamp(14px, 1.8vw, 16px);
  }
}
@media (max-width: 767px) {
  .site-header .menu-toggle {
    width: 50px;
    height: 50px;
    font-size: clamp(12px, 1.5vw, 14px);
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .site-header--no-title {
    min-height: 0 !important;
  }
  .site-header--no-title .header-top-bar {
    height: 100px;
  }
  .header-top-bar {
    padding: 0 30px;
  }
  .site-logo img {
    height: 60px;
  }
  .page-title-container {
    height: 80px;
    padding: 0 30px;
    max-width: calc(100vw - 30px - 60px - 15px - 70px - 30px - 15px);
  }
  h1.page-title {
    font-size: clamp(28px, 4vw, 48px);
  }
  .header-top-bar.is-scrolled .site-logo img {
    height: 40px;
  }
}
@media (max-width: 767px) {
  .site-header {
    min-height: max(40vh, 100px);
  }
  .site-header--simple-bar {
    min-height: 80px;
  }
  .site-header--no-title {
    min-height: 0 !important;
  }
  .site-header--no-title .header-top-bar {
    height: 80px;
  }
  .header-top-bar {
    padding: 0 20px;
  }
  .header-left,
  .header-right {
    gap: 10px;
  }
  .site-logo img {
    height: 50px;
  }
  .page-title-container {
    height: 60px;
    padding: 0 20px;
    max-width: calc(100vw - 20px - 50px - 10px - 50px - 20px - 10px);
  }
  h1.page-title {
    font-size: clamp(20px, 4vw, 32px);
  }
  .site-header__headline {
    bottom: 30px;
    padding: 10px 20px;
    font-size: clamp(18px, 4vw, 28px);
  }
  .header-top-bar.is-scrolled {
    padding-top: 5px;
    padding-bottom: 5px;
  }
  .header-top-bar.is-scrolled .site-logo img {
    height: 35px;
  }
}
#global-nav {
  z-index: 2000;
}

.global-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100%;
  background: #f0f0cf;
  background-image: url("assets/images/menu-bottom-decoration.png"), linear-gradient(to bottom, #d6ebdc, #f0f0cf);
  background-repeat: no-repeat, no-repeat;
  background-position: bottom center, center;
  background-size: 100% auto, cover;
  display: flex;
  flex-direction: column;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0.3s, opacity 0.3s;
  z-index: 2000;
  overflow-y: auto;
  overflow-x: visible;
  box-sizing: border-box;
}
.global-nav.is-open {
  visibility: visible;
  opacity: 1;
}
.global-nav .menu-toggle {
  width: 90px;
  height: 90px;
  padding: 0;
  border-radius: 50%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1;
  font-weight: 400;
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
  background-color: #fd7e14;
  border: 2px solid #28a745;
  flex-shrink: 0;
}
.global-nav .menu-toggle:hover {
  background-color: transparent;
  color: #28a745;
}
.global-nav .menu-toggle:focus, .global-nav .menu-toggle:active {
  outline: none;
  border: 2px solid #28a745;
}

.global-nav__container {
  width: 100%;
  max-width: 1000px;
  max-height: 90vh;
  background-color: transparent;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.global-nav__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 40px;
  background-color: transparent;
  flex-shrink: 0;
}

.global-nav__logo a {
  display: flex;
  align-items: center;
  gap: 15px;
  text-decoration: none;
  color: #333;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(36px, 5vw, 56px);
  margin-left: 50px;
}
.global-nav__logo a span {
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
}
.global-nav__logo img {
  height: 50px;
  width: auto;
}

.global-nav__contact p {
  margin: 0;
  margin-left: 60px;
  font-size: clamp(16px, 2vw, 20px);
  text-align: center;
  color: #000;
}
.global-nav__contact a {
  color: #000;
  text-decoration: none;
}
.global-nav__contact a:hover {
  text-decoration: underline;
}

.global-nav__body {
  padding: 40px;
  overflow-y: auto;
  overflow-x: visible;
}

.global-nav__list {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 1000px;
  width: 100%;
  overflow: visible;
}
.global-nav__list > .menu-item {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 400;
  margin-bottom: 25px;
  display: flex;
  align-items: flex-start;
  gap: 0;
  overflow: visible;
}
.global-nav__list > .menu-item > a {
  flex-shrink: 0;
  white-space: nowrap;
  margin-left: -20px;
  width: 370px;
}
.global-nav__list a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #333;
  transition: opacity 0.2s;
}
.global-nav__list a:hover {
  opacity: 0.7;
}
.global-nav__list a span {
  font-weight: inherit;
}
.global-nav__list > .menu-item > a::before {
  content: "";
  display: block;
  width: 24px !important;
  height: 24px !important;
  background-image: url("assets/images/menu-icon.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}
.global-nav__list > .menu-item:not(.menu-item-has-children) > a::before {
  width: 24px !important;
  height: 24px !important;
  flex-shrink: 0;
}
.global-nav__list .sub-menu {
  list-style: none;
  padding: 0;
  margin: 10px 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  flex: 1;
  width: calc(100% + 280px);
}
.global-nav__list .sub-menu .menu-item {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
}
.global-nav__list .sub-menu a {
  display: flex;
  align-items: center;
  gap: 8px;
}
.global-nav__list .sub-menu a::before {
  content: "";
  display: block;
  width: 16px; /* サブメニューのアイコンは文字サイズに合わせて小さく */
  height: 16px;
  background-image: url("assets/images/menu-icon.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .global-nav .menu-toggle {
    width: 70px;
    height: 70px;
    font-size: clamp(14px, 1.8vw, 16px);
  }
  .global-nav__header {
    padding: 10px 30px;
  }
  .global-nav__logo a {
    font-size: clamp(28px, 4vw, 54px);
    margin-left: 30px;
  }
  .global-nav__logo img {
    height: 40px;
  }
  .global-nav__contact p {
    margin-left: 40px;
    font-size: clamp(16px, 2vw, 20px);
  }
  .global-nav__body {
    padding: 30px;
  }
  .global-nav__list > .menu-item {
    font-size: clamp(20px, 3vw, 28px);
    margin-bottom: 20px;
  }
  .global-nav__list > .menu-item > a {
    width: 300px;
  }
  .global-nav__list .sub-menu {
    grid-template-columns: repeat(2, 1fr);
    width: calc(100% + 200px);
  }
}
@media (max-width: 767px) {
  .global-nav .menu-toggle {
    width: 50px;
    height: 50px;
    font-size: clamp(12px, 1.5vw, 14px);
  }
  .global-nav__header {
    padding: 5px 20px;
  }
  .global-nav__logo a {
    font-size: clamp(20px, 3vw, 28px);
    margin-left: 0;
    gap: 10px;
  }
  .global-nav__logo img {
    height: 35px;
  }
  .global-nav__contact p {
    margin-left: 0;
    font-size: clamp(14px, 1.8vw, 16px);
  }
  .global-nav__body {
    padding: 20px;
  }
  .global-nav__list > .menu-item {
    font-size: clamp(16px, 2vw, 20px);
    margin-bottom: 15px;
    flex-direction: column;
    align-items: flex-start;
  }
  .global-nav__list > .menu-item > a {
    width: auto;
    margin-left: 0;
  }
  .global-nav__list > .menu-item > a::before {
    width: 20px !important;
    height: 20px !important;
  }
  .global-nav__list .sub-menu {
    grid-template-columns: 1fr;
    width: 100%;
    margin: 5px 0;
    gap: 5px;
  }
  .global-nav__list .sub-menu .menu-item {
    font-size: clamp(14px, 1.8vw, 16px);
  }
  .global-nav__list .sub-menu a::before {
    width: 14px;
    height: 14px;
  }
}
.site-footer {
  background-color: #3f9d00;
  color: #fff;
  font-size: clamp(14px, 1.8vw, 16px);
  padding: 0;
  border-top: 1px solid #96e884;
}

.footer-info {
  background-color: #3f9d00;
  padding: 30px 40px;
  text-align: center;
}

.footer-info__main {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  max-width: 1000px;
  width: 100%;
}

.footer-info__logo-area {
  flex-shrink: 0;
}
.footer-info__logo-area img {
  max-width: 120px;
  display: block;
}

.footer-info__content-area {
  flex-grow: 1;
}

.footer-info__company-name {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  margin: 0 0 10px 0;
  color: #fff;
  text-align: left;
}

.footer-info__contact {
  max-width: 95%;
  background-color: #fff;
  border-radius: 10px;
  padding: 20px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: left;
}
.footer-info__contact .contact-block {
  flex: 1;
}
.footer-info__contact .contact-block + .contact-block {
  border-left: 3px solid #4b9b24;
  margin-left: 15px;
  padding-left: 15px;
}
.footer-info__contact p {
  color: #333;
  margin: 0 0 5px 0;
  line-height: 1.7;
  font-weight: bold;
}
.footer-info__contact .contact-block__label {
  background-color: #3f9d00;
  color: #fff !important;
  padding: 4px 10px;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  display: inline-block;
  margin-top: 5px;
}
.footer-info__contact .contact-block__number {
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: bold;
  letter-spacing: 2px;
}
.footer-info__contact .contact-block__number a {
  color: inherit;
  text-decoration: none;
}
.footer-info__contact .contact-block__number a:hover {
  text-decoration: underline;
}
.footer-info__contact .contact-block__address,
.footer-info__contact .contact-block__fax-number {
  font-size: clamp(16px, 2vw, 20px);
}

.contact-block__icon {
  width: 16px;
  height: 16px;
  margin-right: 8px;
}

.contact-block__title,
.contact-block__fax-title {
  font-size: clamp(16px, 2vw, 20px);
}

.contact-block__title-main {
  display: inline-flex;
  align-items: center;
}

.footer-services {
  padding: 40px 0;
}

.footer-services__title {
  max-width: 1000px;
  margin: 0 auto 20px auto;
  padding: 0 20px;
  box-sizing: border-box;
  text-align: left;
  font-size: clamp(16px, 2vw, 20px);
}

.footer-services__layout {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 70% 30%;
  gap: 30px;
  align-items: start;
}

.footer-services__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.footer-services__grid .service-item {
  width: auto;
  aspect-ratio: 1/1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 10px;
}

.footer-services__links ul {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
}
.footer-services__links li {
  margin-bottom: 10px;
}
.footer-services__links a {
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  font-size: clamp(16px, 2vw, 20px);
}
.footer-services__links a:hover {
  text-decoration: underline;
}

.service-item {
  width: 150px;
  background-color: #fff;
  color: #333;
  padding: 20px 10px;
  border-radius: 8px;
  text-align: center;
  text-decoration: none;
  font-weight: bold;
  transition: transform 0.2s;
}
.service-item:hover {
  transform: translateY(-5px);
}

.service-item__icon {
  display: block;
  margin: 0 auto 10px;
  max-height: 64px;
  width: auto;
}

.footer-copyright {
  background-color: #96e884;
  text-align: center;
  padding: 15px;
  font-size: clamp(12px, 1.5vw, 14px);
}
.footer-copyright p {
  margin: 0;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .footer-info {
    padding: 25px 30px;
  }
  .footer-info__main {
    gap: 15px;
  }
  .footer-info__logo-area img {
    max-width: 100px;
  }
  .footer-info__contact {
    padding: 15px 30px;
    flex-direction: column;
    gap: 15px;
  }
  .footer-info__contact .contact-block + .contact-block {
    border-left: none;
    border-top: 3px solid #4b9b24;
    margin-left: 0;
    margin-top: 15px;
    padding-left: 0;
    padding-top: 15px;
  }
  .footer-services__grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .footer-services__layout {
    grid-template-columns: 65% 35%;
    gap: 20px;
  }
}
@media (max-width: 767px) {
  .footer-info {
    padding: 20px 20px;
  }
  .footer-info__main {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
  .footer-info__logo-area img {
    max-width: 100px;
  }
  .footer-info__company-name {
    text-align: center;
    font-size: clamp(14px, 1.8vw, 16px);
  }
  .footer-info__contact {
    max-width: 100%;
    padding: 15px 20px;
    flex-direction: column;
    gap: 15px;
  }
  .footer-info__contact .contact-block + .contact-block {
    border-left: none;
    border-top: 3px solid #4b9b24;
    margin-left: 0;
    margin-top: 15px;
    padding-left: 0;
    padding-top: 15px;
  }
  .footer-info__contact .contact-block__number {
    font-size: clamp(16px, 2vw, 20px);
  }
  .footer-info__contact .contact-block__address,
  .footer-info__contact .contact-block__fax-number {
    font-size: clamp(14px, 1.8vw, 16px);
  }
  .footer-services {
    padding: 30px 0;
  }
  .footer-services__layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .footer-services__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  .footer-services__grid .service-item {
    padding: 8px;
  }
  .footer-services__links {
    text-align: center;
  }
  .footer-services__links ul {
    text-align: left;
    display: inline-block;
  }
  .footer-services__links a {
    font-size: clamp(16px, 2vw, 20px);
  }
  .service-item__icon {
    max-height: 48px;
  }
  .footer-copyright {
    padding: 12px;
    font-size: clamp(11px, 1.2vw, 13px);
  }
}
.contact-section {
  background-color: #96e884;
  padding: 40px 60px 20px 60px;
  text-align: center;
  position: relative;
  overflow: hidden;
  height: 650px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contact-section__bg-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(0, -50%);
  font-family: "Bungee Outline", sans-serif !important;
  font-size: clamp(48px, 8vw, 96px);
  color: rgba(255, 255, 255, 0.5);
  z-index: 1;
  white-space: nowrap;
  user-select: none;
}
.contact-section__bg-text span {
  display: block;
  line-height: 1.3;
}

.contact-section__person-images {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  pointer-events: none;
}

.contact-person-image-wrapper {
  width: auto;
  max-width: 600px;
  position: absolute;
  bottom: 0;
  z-index: 2;
}

.person-image {
  width: 100%;
  height: 520px;
  object-fit: cover;
  border-radius: 15px;
}

.contact-person-image--left {
  left: 0;
}

.contact-person-image--right {
  right: 0;
}

.contact-section__body {
  padding: 20px;
}

.contact-section__inner {
  position: relative;
  z-index: 3;
}

.contact-section__description {
  max-width: 600px;
  margin: 40px auto;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  text-shadow: 2px 0 #fff, -2px 0 #fff, 0 2px #fff, 0 -2px #fff, 1px 1px #fff, -1px -1px #fff, 1px -1px #fff, -1px 1px #fff;
}

.contact-section__methods {
  display: flex;
  justify-content: center;
  gap: 40px;
  align-items: flex-end;
  position: relative;
  z-index: 2;
}

.contact-method {
  margin-top: 0;
  flex: 1;
  max-width: 400px;
}
.contact-method h3 {
  font-weight: bold;
  font-size: clamp(18px, 2.5vw, 24px);
  color: #000;
  text-shadow: 2px 0 #fff, -2px 0 #fff, 0 2px #fff, 0 -2px #fff, 1px 1px #fff, -1px -1px #fff, 1px -1px #fff, -1px 1px #fff;
  height: 30px;
  margin-bottom: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.contact-method__content {
  padding: 20px;
  border-radius: 8px;
  width: 500px;
}

.phone-block {
  border: 3px solid #3f9d00;
  display: inline-block;
  padding: 15px 20px;
  background-color: #fff;
  box-sizing: border-box;
}

.contact-method--phone .phone-number {
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: bold;
  color: #000;
  margin: 0 0 5px 0;
  letter-spacing: 2px;
}
.contact-method--phone .phone-number a {
  color: #000;
  text-decoration: none;
}
.contact-method--phone .phone-number a:hover {
  text-decoration: underline;
}
.contact-method--phone .reception-time {
  margin: 0;
  color: #000;
}

.contact-method--form .cta-button {
  display: inline-block;
  background-color: #ffa041;
  color: #fff;
  padding: 15px 60px;
  text-decoration: none;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(24px, 3.5vw, 32px);
  border-radius: 8px;
  border-bottom: 5px solid #ff7f00;
  transition: all 0.2s;
}
.contact-method--form .cta-button:hover {
  transform: translateY(2px);
  border-bottom-width: 3px;
  color: #fff;
}
.contact-method--form .cta-button {
  padding: 15px 10px;
  min-width: 250px;
  box-sizing: border-box;
  text-align: center;
}
.contact-method--form .cta-button__icon {
  font-family: "Segoe UI Symbol", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
  font-size: 1.2em;
  margin-right: 0.3em;
}

.contact-note {
  margin-bottom: 15px;
  font-size: clamp(14px, 1.8vw, 16px);
  color: #f57c00;
  font-weight: bold;
}
.contact-note::before {
  content: "＼";
  margin: 0 10px;
  font-weight: bold;
}
.contact-note::after {
  content: "／";
  margin: 0 10px;
  font-weight: bold;
}

.contact-one-point-image {
  position: absolute;
  width: 250px;
  object-fit: cover;
  z-index: 2;
}
.contact-one-point-image img {
  width: 100%;
  height: auto;
}

.contact-one-point-image--top-left {
  top: 10%;
  left: 15%;
}

.contact-one-point-image--top-right {
  top: 10%;
  right: 15%;
}

.contact-section.bg-pattern-1 {
  background-color: #3f9d00;
}

.contact-section.bg-pattern-2 {
  background-color: #96e884;
}

.contact-section.bg-pattern-3 {
  background-color: transparent;
}

/*--------------------------------------------------------------
 汎用セクション / Google Map (動的タブ版)
--------------------------------------------------------------*/
.map-section {
  padding: 60px 0;
}

.map-section .container {
  position: relative;
  z-index: 30;
}

.map-tab-wrapper {
  margin-top: 40px;
}

.map-tab-buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap; /* スマホ表示などで折り返す */
  gap: 10px;
  margin-bottom: -1px;
}

.map-tab-button {
  padding: 10px 25px;
  border: 1px solid #ccc;
  background-color: #f0f0f0;
  cursor: pointer;
  border-radius: 8px 8px 0 0;
  font-size: 16px;
  font-weight: bold;
}

.map-tab-button.is-active {
  background-color: #fff;
  border-bottom-color: #fff;
}

.map-tab-contents {
  border: 1px solid #ccc;
  padding: 30px;
  background-color: #fff;
}

.map-tab-content {
  display: none;
}

.map-tab-content.is-active {
  display: block;
}

.map-section__layout {
  display: flex;
  align-items: center;
  gap: 40px;
}

.map-section__map {
  flex-basis: 50%;
}

.map-section__map iframe {
  width: 100%;
  height: 400px;
  border: none;
}

.map-section__location-name {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 20px;
  display: inline-block; /* ←【追加】下線を文字幅に合わせる */
  border-bottom: 2px solid #3f9d00; /* ←【追加】3pxの緑色の下線 */
  padding-bottom: 5px; /* ←【追加】文字と下線の間の余白 */
}

.location-details-list {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
}

.location-details-list li {
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
}

.location-details-list li:last-child {
  border-bottom: none;
}

.location-details-list strong {
  display: inline-block;
  width: 150px; /* 項目の幅を揃える */
  font-weight: bold;
}

/* 拠点情報の写真 */
.location-photo {
  margin-bottom: 20px;
}

.location-photo img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

/* Mapセクション / 左側の列（写真と地図） */
.map-section__left-column {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex-basis: 40%;
}

/*--------------------------------------------------------------
 汎用セクション / Google Map (動的タブ版)
--------------------------------------------------------------*/
.map-section {
  padding: 60px 0;
}

.map-section .container {
  position: relative;
  z-index: 30;
}

.map-tab-wrapper {
  margin-top: 40px;
}

.map-tab-buttons {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: -1px;
  margin-left: 80px;
}

.map-tab-button {
  padding: 10px 25px;
  border: 1px solid #ccc;
  background-color: #f0f0f0;
  cursor: pointer;
  border-radius: 8px 8px 0 0;
  font-size: 16px;
  font-weight: bold;
}

.map-tab-button.is-active {
  background-color: #fff;
  border-bottom-color: #fff;
}

.map-tab-contents {
  border: 1px solid #ccc;
  padding: 30px;
  background-color: #fff;
  max-width: 1000px; /* ←【追加】最大幅を1000pxに */
  margin: 0 auto; /* ←【追加】中央揃えにする */
}

.map-tab-content {
  display: none;
}

.map-tab-content.is-active {
  display: block;
}

.map-section__layout {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}

.map-section__map,
.map-section__info {
  flex-basis: 60%;
  color: #000;
}

.map-section__map iframe {
  width: 100%;
  height: 400px;
  border: none;
}

.location-photo {
  margin-bottom: 20px;
}

.location-photo img {
  width: 100%;
  height: auto;
  max-height: 270px;
  border-radius: 8px;
  object-fit: cover;
  object-position: bottom;
}

.map-section__location-name {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 20px;
}

.location-details-list {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
}

.location-details-list li {
  display: flex; /* ←【変更】フレックスボックスレイアウトにする */
  align-items: flex-start; /* 上揃えにする */
  padding: 10px 0;
  border-bottom: 1px solid #f0f0f0;
}

.location-details-list li:last-child {
  border-bottom: none;
}

.location-details-list strong {
  flex-basis: 130px; /* ←【変更】1列目の幅を180pxに固定 */
  flex-shrink: 0; /* 縮まないようにする */
  font-weight: bold;
  text-align: justify; /* ←【変更】均等割り付けを指定 */
  text-align-last: justify; /* ←【追加】最終行（1行だけの場合も含む）にも適用 */
}

.location-details-list span {
  flex-grow: 1; /* 残りの幅をすべて使う */
  padding: 0 5px;
}

/*--------------------------------------------------------------
 地域別空き状況セクション
--------------------------------------------------------------*/
.service-area-availability {
  position: relative;
  overflow: hidden;
  padding: 80px 20px;
}
.service-area-availability .container {
  position: relative;
  z-index: 10;
}
.service-area-availability .section-title {
  position: relative;
  z-index: 10;
  text-align: center;
  margin-bottom: 50px;
}

.area-availability-layout {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  max-width: 1200px;
  margin: 0 auto;
}

.area-map-wrapper {
  position: relative;
  max-width: 525px;
  flex-shrink: 0;
  padding: 30px;
  border-radius: 12px;
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.area-map-description {
  flex: 1;
  position: relative;
  text-align: left;
}
.area-map-description .service-body-content {
  background-color: bisque;
  color: #000;
  padding: 20px;
  border-radius: 8px;
  margin-bottom: 30px;
}
.area-map-description .service-body-content:last-child {
  margin-bottom: 0;
}
.area-map-description .service-body-content > *:first-child {
  margin-top: 0;
}
.area-map-description .legend-note-text {
  background: #fffde8;
  box-shadow: 0px 0px 0px 10px #fffde8;
  border: dashed 2px #ffb03f;
  border-radius: 9px;
  padding: 20px;
  margin-top: 20px;
  margin-bottom: 30px;
}
.area-map-description .legend-details {
  margin-top: 30px;
}
.area-map-description .legend-details h3 {
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #3f9d00;
}
.area-map-description .legend-details ul {
  list-style: none;
  padding-left: 0;
}
.area-map-description .legend-details ul li {
  padding: 8px 0;
  line-height: 1.6;
}
.area-map-description .legend-details ul li strong {
  display: inline-block;
  min-width: 80px;
  font-weight: bold;
  background: linear-gradient(transparent 60%, #ffd700 60%);
}

.map-container {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-template-rows: repeat(6, auto);
  gap: 8px;
  width: 100%;
  margin-bottom: 30px;
}

.area-box {
  padding: 18px 10px;
  border-radius: 8px;
  font-weight: 700;
  font-size: clamp(14px, 1.8vw, 18px);
  text-align: center;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.area-box:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.area-box[data-area=fujisoka] {
  grid-column: 3;
  grid-row: 1;
}

.area-box[data-area=obara] {
  grid-column: 4;
  grid-row: 1;
}

.area-box[data-area=asahi] {
  grid-column: 5;
  grid-row: 1;
}

.area-box[data-area=inabu] {
  grid-column: 6/8;
  grid-row: 1;
}

.area-box[data-area=sanage] {
  grid-column: 3/5;
  grid-row: 2;
}

.area-box[data-area=takahashi] {
  grid-column: 4;
  grid-row: 3;
}

.area-box[data-area=asuke] {
  grid-column: 5/7;
  grid-row: 2/4;
}

.area-box[data-area=miyoshi] {
  grid-column: 1/3;
  grid-row: 3;
}

.area-box[data-area=koromo] {
  grid-column: 3;
  grid-row: 3;
}

.area-box[data-area=takaoka] {
  grid-column: 2;
  grid-row: 4;
}

.area-box[data-area=kamigo] {
  grid-column: 3;
  grid-row: 4;
}

.area-box[data-area=matsudaira] {
  grid-column: 4;
  grid-row: 4;
}

.area-box[data-area=shimoyama] {
  grid-column: 5/7;
  grid-row: 4;
}

.area-box[data-area=chiryu] {
  grid-column: 1/3;
  grid-row: 5;
}

.area-box[data-area=anjo] {
  grid-column: 3/5;
  grid-row: 5;
}

.area-box[data-area=okazaki] {
  grid-column: 5/7;
  grid-row: 5;
}

.area-box.status-vacant {
  background-color: #28a745;
  color: #fff;
}

.area-box.status-busy {
  background-color: #ffc107;
  color: #333;
}

.area-box.status-full {
  background-color: #dc3545;
  color: #fff;
}

.area-box.status-unavailable {
  background-color: #999;
  color: #fff;
}

.map-legend {
  max-width: 525px;
  margin: 0 auto;
  padding: 20px;
  background: transparent;
  border-radius: 8px;
  display: flex;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 400;
  color: #000;
}

.legend-color {
  width: 40px;
  height: 30px;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.legend-color.status-vacant {
  background-color: #28a745;
}
.legend-color.status-busy {
  background-color: #ffc107;
}
.legend-color.status-full {
  background-color: #dc3545;
}
.legend-color.status-unavailable {
  background-color: #999;
}

@media (max-width: 768px) {
  .area-availability-layout {
    flex-direction: column;
    gap: 30px;
  }
  .area-map-wrapper {
    padding: 15px;
    max-width: 100%;
    width: 100%;
  }
  .map-container {
    gap: 5px;
  }
  .area-box {
    padding: 12px 5px;
    font-size: clamp(12px, 3vw, 16px);
    min-height: 60px;
  }
  .map-legend {
    max-width: 100%;
    gap: 10px;
    padding: 15px;
  }
  .map-legend .legend-item {
    font-size: 14px;
  }
  .map-legend .legend-color {
    width: 30px;
    height: 25px;
  }
  .area-map-description {
    width: 100%;
  }
  .area-map-description .legend-details h3 {
    font-size: 18px;
  }
}
/*--------------------------------------------------------------
 曜日ごとの予約受け入れ状況セクション
--------------------------------------------------------------*/
.service-booking-schedule {
  position: relative;
  overflow: hidden;
  padding: 80px 20px;
}
.service-booking-schedule .container {
  position: relative;
  z-index: 10;
}
.service-booking-schedule .section-title {
  position: relative;
  z-index: 10;
  text-align: center;
  margin-bottom: 50px;
}

.booking-description {
  max-width: 1200px;
  margin: 0 auto 50px;
}
.booking-description .service-body-content {
  background-color: bisque;
  color: #000;
  padding: 20px;
  border-radius: 8px;
}
.booking-description .service-body-content > *:first-child {
  margin-top: 0;
}

.booking-top-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 30px;
  align-items: flex-start;
}

.booking-image-wrapper {
  flex-shrink: 0;
  width: 350px;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}
.booking-image-wrapper .booking-pose-image {
  width: 100%;
  flex: 1;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}

.booking-table-and-note {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 30px;
}

.booking-table-wrapper {
  width: 100%;
  overflow-x: auto;
}

.booking-table {
  width: 100%;
  border-collapse: collapse;
  background-color: #fff;
}
.booking-table thead {
  background-color: #f5f5f5;
}
.booking-table thead th {
  padding: 12px 8px;
  text-align: center;
  font-weight: bold;
  border: 1px solid #ddd;
  font-size: 16px;
  color: #000;
}
.booking-table thead th.table-label {
  width: 80px;
  background-color: #e8e8e8;
}
.booking-table tbody tr:nth-child(even) {
  background-color: #fafafa;
}
.booking-table tbody td {
  padding: 15px 8px;
  text-align: center;
  border: 1px solid #ddd;
  vertical-align: middle;
}
.booking-table tbody td.row-label {
  font-weight: bold;
  background-color: #f5f5f5;
  text-align: center;
  color: #000;
  font-size: 16px;
  width: 80px;
}
.booking-table tbody td.status-cell {
  font-size: 20px;
  line-height: 1.4;
}
.booking-table tbody td.status-cell .status-symbol {
  display: block;
  font-size: 28px;
  margin-bottom: 4px;
}
.booking-table tbody td.status-cell .status-label {
  display: block;
  font-size: 13px;
  color: #666;
}

.status-available {
  color: #28a745;
  font-weight: bold;
}

.status-limited {
  color: #ffc107;
  font-weight: bold;
}

.status-contact {
  color: #17a2b8;
  font-weight: bold;
}

.status-full {
  color: #dc3545;
  font-weight: bold;
}

.status-closed {
  color: #6c757d;
  font-weight: bold;
}

.booking-note {
  width: 100%;
  padding: 15px 20px;
  background-color: #fff9e6;
  border-left: 4px solid #ffa726;
  border-radius: 4px;
}
.booking-note p {
  margin: 0;
  font-size: 14px;
  color: #666;
  line-height: 1.6;
  text-align: left;
}

.booking-bottom {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 4fr 6fr;
  gap: 30px;
}

.legend-section {
  background-color: #fff;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.legend-section .legend-title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 15px;
  padding-bottom: 10px;
  border-bottom: 2px solid #3f9d00;
  color: #000;
}
.legend-section .legend-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.legend-section .legend-list .legend-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  line-height: 1.6;
}
.legend-section .legend-list .legend-item .legend-symbol {
  display: inline-block;
  width: 30px;
  text-align: center;
  font-size: 20px;
  font-weight: bold;
}
.legend-section .legend-list .legend-item .legend-text {
  flex: 1;
  font-size: 14px;
  color: #333;
}

.additional-info-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.additional-info-list .additional-info-item {
  display: flex;
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
}
.additional-info-list .additional-info-item:last-child {
  border-bottom: none;
}
.additional-info-list .additional-info-item .info-label {
  display: inline-block;
  min-width: 120px;
  font-weight: bold;
  color: #000;
}
.additional-info-list .additional-info-item .info-value {
  flex: 1;
  color: #333;
  text-align: left;
}

@media (max-width: 768px) {
  .service-booking-schedule {
    padding: 60px 15px;
  }
  .booking-description {
    margin-bottom: 30px;
  }
  .booking-description .service-body-content {
    padding: 15px;
  }
  .booking-top-container {
    flex-direction: column;
    gap: 20px;
    margin-bottom: 20px;
  }
  .booking-image-wrapper {
    display: none;
  }
  .booking-table-and-note {
    max-width: 100%;
  }
  .booking-table-wrapper {
    padding: 15px;
    overflow-x: auto;
  }
  .booking-bottom {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .booking-table {
    font-size: 14px;
  }
  .booking-table thead th {
    font-size: 14px;
    padding: 10px 5px;
  }
  .booking-table thead th.table-label {
    width: 60px;
  }
  .booking-table tbody td {
    padding: 12px 5px;
  }
  .booking-table tbody td.row-label {
    font-size: 14px;
    width: 60px;
  }
  .booking-table tbody td.status-cell .status-symbol {
    font-size: 22px;
  }
  .booking-table tbody td.status-cell .status-label {
    font-size: 11px;
  }
  .booking-note {
    padding: 12px 15px;
  }
  .booking-note p {
    font-size: 13px;
  }
  .legend-section {
    padding: 15px;
  }
  .legend-section .legend-title {
    font-size: 16px;
    margin-bottom: 12px;
  }
  .legend-section .legend-list .legend-item .legend-symbol {
    width: 25px;
    font-size: 18px;
  }
  .legend-section .legend-list .legend-item .legend-text {
    font-size: 13px;
  }
  .additional-info-list .additional-info-item {
    flex-direction: column;
    gap: 4px;
  }
  .additional-info-list .additional-info-item .info-label {
    min-width: auto;
  }
}
body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #3f9d00;
  z-index: 9998;
  pointer-events: none;
  display: none;
}

body::after {
  content: "";
  position: fixed;
  top: calc(50% - 100px);
  left: calc(50% - 100px);
  width: 200px;
  height: 200px;
  border: 8px solid rgba(255, 255, 255, 0.3);
  border-top: 8px solid #fff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  z-index: 9999;
  pointer-events: none;
  display: none;
}

body.show-loading::before,
body.show-loading::after {
  display: block;
}

.css-loading-text {
  position: fixed;
  top: calc(50% + 120px);
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 64px;
  z-index: 10000;
  pointer-events: none;
  display: none;
  text-align: center;
}

body.show-loading .css-loading-text {
  display: block;
}

.staff-loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #3f9d00;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.loading-spinner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 64px;
  font-weight: normal;
}
.loading-spinner::before {
  content: "";
  width: 200px;
  height: 200px;
  border: 8px solid rgba(255, 255, 255, 0.3);
  border-top: 8px solid #fff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.random-staff-photo {
  transition: opacity 0.3s ease-in-out;
}
.random-staff-photo:not(.is-visible) {
  opacity: 0;
}
.random-staff-photo.is-visible {
  opacity: 1;
}

/*--------------------------------------------------------------
 上へ戻るボタン（メニューボタンと同じデザイン）
--------------------------------------------------------------*/
.scroll-to-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 70px;
  height: 70px;
  background-color: #28a745;
  color: #fff;
  border: 2px solid #fd7e14;
  border-radius: 50%;
  cursor: pointer;
  z-index: 1000;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 1;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
}
.scroll-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.scroll-to-top:hover {
  background-color: transparent;
  color: #28a745;
  transform: translateY(-5px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}
.scroll-to-top:active {
  transform: translateY(-2px);
}
.scroll-to-top:focus {
  outline: 2px solid #ff7f00;
  outline-offset: 2px;
}

.scroll-to-top__text {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

@media (max-width: 767px) {
  .scroll-to-top {
    width: 50px;
    height: 50px;
    bottom: 20px;
    right: 20px;
  }
}
.fade-in,
.fade-in-up,
.fade-in-left,
.fade-in-right {
  opacity: 0;
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in.is-visible {
  opacity: 1;
}

.fade-in-up {
  transform: translateY(60px);
}
.fade-in-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-left {
  transform: translateX(-60px);
}
.fade-in-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.fade-in-right {
  transform: translateX(60px);
}
.fade-in-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.delay-1 {
  transition-delay: 0.1s;
}

.delay-2 {
  transition-delay: 0.2s;
}

.delay-3 {
  transition-delay: 0.3s;
}

.delay-4 {
  transition-delay: 0.4s;
}

.delay-5 {
  transition-delay: 0.5s;
}

.speed-slow {
  transition-duration: 1.2s;
}

.speed-fast {
  transition-duration: 0.5s;
}

@media (max-width: 768px) {
  .fade-in,
  .fade-in-up,
  .fade-in-left,
  .fade-in-right {
    transition-duration: 0.5s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fade-in,
  .fade-in-up,
  .fade-in-left,
  .fade-in-right {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
.front-page-main-visual {
  position: relative;
  height: 100vh;
  min-height: 500px;
  color: #fff;
}

.main-visual-slider,
.swiper-slide {
  width: 100%;
  height: 100%;
}

.swiper-slide {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-sizing: border-box;
  position: relative;
  display: block !important;
  padding: 40px;
}
.swiper-slide::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.4);
  z-index: 0;
}

.front-page-main-visual .swiper-slide__caption {
  display: inline-block;
  max-width: 60%;
  color: #000;
  padding: 0px 30px;
  text-align: left;
  z-index: 5;
  line-height: 1.7;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 6vw, 64px);
  position: absolute;
  z-index: 1;
}
.front-page-main-visual .swiper-slide__caption.is-bottom-right {
  bottom: 40px;
  right: 40px;
}
.front-page-main-visual .swiper-slide__caption.is-center {
  width: 90%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.front-page-main-visual .swiper-slide__caption.is-top-left {
  top: 100px;
  left: 40px;
}
.front-page-main-visual .swiper-slide__caption.is-top-right {
  top: 140px;
  right: 40px;
}
.front-page-main-visual .swiper-slide__caption.is-left-center {
  top: 50%;
  left: 40px;
}
.front-page-main-visual .swiper-slide__caption.is-bottom-left {
  bottom: 40px;
  left: 40px;
}

.caption-char {
  display: inline-block;
  opacity: 0;
  transform: scale(1);
}

.swiper-slide__caption.animate .caption-char {
  animation: captionCharScale 1s ease forwards;
}

@keyframes captionCharScale {
  0% {
    opacity: 0;
    transform: scale(1);
  }
  20% {
    opacity: 1;
  }
  50% {
    opacity: 1;
    transform: scale(1.5);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
.main-visual-slider .swiper-pagination-bullet-active {
  background-color: #fff;
}

.main-visual-pickup {
  position: absolute;
  bottom: 40px;
  left: 40px;
  display: flex;
  gap: 20px;
  max-width: 60%;
  background-color: #fff;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  outline: 2px dashed #3f9d00;
  outline-offset: -8px;
  z-index: 10;
  opacity: 0;
  transform: translateX(-20%);
  animation: slideInFromLeft 0.8s ease-out 0.5s forwards;
}
.main-visual-pickup:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

@keyframes slideInFromLeft {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.main-visual-pickup__thumbnail {
  flex-shrink: 0;
  width: 40%;
  height: 100%;
  overflow: hidden;
  border-radius: 6px;
}
.main-visual-pickup__thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.main-visual-pickup__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.main-visual-pickup__meta {
  display: flex;
  align-items: center;
  gap: 3px;
  flex-wrap: wrap;
  line-height: normal;
}

.main-visual-pickup__date {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
}

.main-visual-pickup__category {
  background-color: #3f9d00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.main-visual-pickup__source {
  background-color: #ff7f00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.main-visual-pickup__new-badge {
  background-color: #e53935;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.main-visual-pickup__title {
  margin: 0;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  line-height: 1.4;
}
.main-visual-pickup__title a {
  text-decoration: none;
  color: #333;
  transition: color 0.3s ease;
}
.main-visual-pickup__title a:hover {
  color: #3f9d00;
}

.main-visual-pickup__excerpt {
  margin-top: 10px;
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
  line-height: 1.6;
}
.main-visual-pickup__excerpt p {
  margin: 0;
}

.main-visual__title-container {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  text-align: center;
}

.main-visual__title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(48px, 7vw, 64px);
  color: #fff;
  background-color: #ff7f00;
  padding: 20px 40px;
  line-height: 1.2;
  display: inline;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.site-header--simple {
  min-height: 0;
  background-image: none !important;
}
.site-header--simple .header-top-bar {
  position: absolute;
  width: 100%;
  background-color: transparent;
  z-index: 1000;
}
.site-header--simple.is-scrolled .header-top-bar {
  position: sticky;
}
.site-header--simple .header-top-bar.is-scrolled .hamburger-icon,
.site-header--simple .header-top-bar.is-scrolled .hamburger-icon::before,
.site-header--simple .header-top-bar.is-scrolled .hamburger-icon::after {
  background-color: #fff;
}
.site-header--simple .page-title-container {
  height: auto;
}
.site-header--simple .page-title {
  font-size: clamp(48px, 7vw, 64px);
  line-height: 1.2;
  padding: 0;
}

.random-staff-photo {
  position: absolute;
  bottom: 0;
  right: 0;
  height: 80%;
  max-height: 800px;
  max-width: 50%;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}
.random-staff-photo img {
  display: block;
  height: 100%;
  width: auto;
  border-radius: 8px;
}
.random-staff-photo.is-visible {
  opacity: 1;
}

.front-page-about {
  padding: 60px 0;
}
.front-page-about .container {
  text-align: center;
  z-index: 2;
}
.front-page-about .section-title {
  margin-bottom: 40px;
}

.about-section__layout {
  display: flex;
  align-items: center;
  gap: 40px;
}

.about-section__image {
  flex: 1;
  max-width: 50%;
}
.about-section__image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

.about-section__text {
  flex: 1;
  max-width: 50%;
  text-align: left;
  background-color: #fff;
  padding: 20px;
  border-radius: 8px;
}

.about-section__subtitle {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  margin-top: 0;
  text-align: center;
}

.about-section__description {
  margin-top: 20px;
  line-height: 1.7;
}

.front-page-mission {
  padding: 60px 0 0;
  min-height: 80vh;
  display: flex;
  position: relative;
  overflow: hidden;
}
.front-page-mission .container {
  position: relative;
  z-index: 30;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.mission-deco-image {
  position: absolute;
  width: 250px;
  opacity: 1;
  z-index: 25;
}
.mission-deco-image img {
  width: 100%;
  height: auto;
}
.mission-deco-image--bl {
  bottom: 20%;
  left: 10%;
}
.mission-deco-image--tr {
  top: 20%;
  right: 15%;
}

.mission-content {
  text-align: center;
  width: 100%;
  margin-bottom: 20px;
}

.mission-subtitle {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  margin: 20px auto;
  text-align: center;
}

.mission-button-wrapper {
  margin-top: 20px;
  text-align: center;
}

.mission-pose-image {
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
  flex-shrink: 0;
}
.mission-pose-image img {
  width: 100%;
  max-height: 400px;
  height: auto;
  object-fit: contain;
  object-position: bottom;
  display: block;
}

.front-page-services {
  padding-top: 80px;
  padding-bottom: 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.front-page-services .section-title {
  white-space: nowrap;
}

.services-section__container {
  position: relative;
  z-index: 2;
}

.services-section__description {
  font-size: clamp(16px, 2vw, 20px);
  margin-top: 20px;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

.services-section__button-wrapper {
  margin-top: 30px;
}

.cta-button {
  display: inline-block;
  background-color: #ffa041;
  color: #fff;
  padding: 15px 60px;
  text-decoration: none;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(24px, 3.5vw, 32px);
  border-radius: 8px;
  border-bottom: 5px solid #ff7f00;
  transition: all 0.2s;
}
.cta-button:hover {
  transform: translateY(2px);
  border-bottom-width: 3px;
  color: #fff;
}

.services-layout {
  display: flex;
  gap: 50px;
  position: relative;
  z-index: 20;
}

.services-image-collage,
.services-text-content {
  flex-basis: 50%;
  position: relative;
  z-index: 30;
}

.services-image-collage {
  display: flex;
  align-items: center;
  flex-direction: column;
}
.services-image-collage img {
  width: 300px;
  height: 200px;
  object-fit: cover;
  object-position: top;
  display: block;
  align-items: center;
}

.collage-item {
  position: relative;
  overflow: hidden;
}

.services-text-content {
  text-align: center;
  position: relative;
  z-index: 2;
  padding-bottom: 450px;
}

.services-subtitle {
  margin-top: 15px;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
}

.services-text {
  margin: 20px 0 30px;
  text-align: center;
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  text-shadow: 2px 0 #fff, -2px 0 #fff, 0 2px #fff, 0 -2px #fff, 1px 1px #fff, -1px -1px #fff, 1px -1px #fff, -1px 1px #fff;
}

.services-button-wrapper {
  margin-top: 30px;
}

.button-pretext {
  margin-bottom: 10px;
  font-size: clamp(14px, 1.8vw, 16px);
  color: #f57c00;
  font-weight: bold;
}
.button-pretext::before {
  content: "<";
  margin-right: 10px;
}
.button-pretext::after {
  content: "\f";
  margin-left: 10px;
}

.services-pose-image {
  position: absolute;
  bottom: -80px;
  left: 50%;
  transform: translateX(-50%);
  width: 500px;
  height: 500px;
  z-index: 10;
}
.services-pose-image img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain;
  object-position: bottom;
  border-radius: 8px;
  display: block;
}

.services-one-point-image {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 400px;
  max-height: 300px;
  opacity: 0.5;
  object-fit: contain;
  z-index: 2;
}
.services-one-point-image img {
  width: 100%;
  height: auto;
}

.front-page-news {
  padding: 60px 0 120px 0;
}
.front-page-news .container {
  position: relative;
  z-index: 30;
  text-align: center;
}

.news-deco-image {
  position: absolute;
  z-index: 20;
}
.news-deco-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.news-deco-image--tl {
  top: 0;
  left: 0;
}

.news-deco-image--tr {
  top: 0;
  right: 0;
}

.news-deco-image--bl {
  bottom: 0;
  left: 0;
}

.news-deco-image--br {
  bottom: 0;
  right: min(15%, max(0%, calc((100vw - 768px) * 20% / 232px)));
  height: 280px;
  opacity: 1;
  z-index: 25;
}

.front-page-news .news-list {
  max-width: 800px;
  margin: 20px auto 60px;
  padding: 20px 30px;
  background-color: #fff;
  border-radius: 20px;
  outline: 2px dashed #3f9d00;
  outline-offset: -10px;
  position: relative;
}
.front-page-news .news-list::after {
  content: "";
  position: absolute;
  bottom: -20px;
  right: 10%;
  margin-left: -10px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 10px 0 10px;
  border-color: #fff transparent transparent transparent;
}

.news-list {
  max-width: 800px;
  margin: 0 auto 40px;
  border-top: 1px solid #ddd;
}

.front-page-news .news-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 15px 0;
  border-bottom: 1px solid #ddd;
  text-decoration: none;
  color: #333;
  transition: background-color 0.2s ease;
}
.front-page-news .news-item:last-child {
  border-bottom: none;
}
.front-page-news .news-item:hover {
  background-color: transparent;
  opacity: 0.7;
}

.front-page-news .news-item__meta-wrapper {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 8px;
}

.front-page-news .news-item__date {
  margin-right: 0;
}

.news-item {
  display: flex;
  align-items: center;
  padding: 20px 10px;
  border-bottom: 1px solid #ddd;
  text-decoration: none;
  color: #333;
  transition: background-color 0.2s ease;
}
.news-item:hover {
  background-color: #f9f9f9;
}

.news-item__meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-right: 20px;
  flex-shrink: 0;
}

.news-item__date {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
}

.news-item__category {
  background-color: #3f9d00;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.news-item__source {
  background-color: #ff7f00;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.news-item__new-badge {
  background-color: #e53935;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.news-item__title {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  text-align: left;
  margin: 0;
  flex: 1;
}

.news-section__button-wrapper {
  margin-top: 30px;
}

.button-pretext {
  margin-bottom: 10px;
  font-size: clamp(14px, 1.8vw, 16px);
  color: #f57c00;
  font-weight: bold;
}
.button-pretext::before {
  content: "＼";
  margin-right: 10px;
}
.button-pretext::after {
  content: "／";
  margin-left: 10px;
}

.front-page-content-wrapper .front-page-section:nth-child(3n+1) {
  background-color: #3f9d00;
  color: #fff;
}
.front-page-content-wrapper .front-page-section:nth-child(3n+1) .section-title {
  color: #fff;
}
.front-page-content-wrapper .front-page-section:nth-child(3n+1) .section-bg-text {
  left: 20px;
  right: auto;
  text-align: left;
}

.front-page-content-wrapper .front-page-section:nth-child(3n+2) {
  background-color: #96e884;
}
.front-page-content-wrapper .front-page-section:nth-child(3n+2) .section-bg-text {
  right: 20px;
  left: auto;
  text-align: right;
}

.front-page-content-wrapper .front-page-section:nth-child(3n+3) {
  background-color: transparent;
}
.front-page-content-wrapper .front-page-section:nth-child(3n+3) .section-bg-text {
  display: none;
}

.front-page-section {
  position: relative;
  overflow: hidden;
}

.front-page-company {
  padding: 60px 0;
}
.front-page-company .container {
  position: relative;
  z-index: 30;
  text-align: center;
}
.front-page-company .section-title {
  white-space: nowrap;
  margin-bottom: 40px;
}

.company-section__layout {
  display: flex;
  align-items: center;
  gap: 40px;
}

.company-section__text-content,
.company-section__image {
  flex-basis: 50%;
}

.company-section__image {
  height: 500px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 8px;
}

.company-section__items-list {
  margin-top: 0;
}

.company-section__item {
  margin-top: 30px;
}
.company-section__item:last-child {
  margin-top: 0;
}

.company-item__headline {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  text-align: center;
  margin-top: 40px;
}

.company-item__button-wrapper {
  margin-top: 10px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}

.company-section__pose-image {
  position: absolute;
  bottom: 0;
  left: 0;
  max-width: 350px;
  z-index: 20;
}
.company-section__pose-image img {
  width: 100%;
  height: auto;
  display: block;
}

.front-page-photo-grid .container {
  text-align: center;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
  margin-top: 40px;
  padding: 5px;
  background-color: palegoldenrod;
}

.grid-item {
  aspect-ratio: 1/1;
  border: 3px solid #28a745;
  box-sizing: border-box;
  overflow: hidden;
}
.grid-item:nth-child(1), .grid-item:nth-child(2), .grid-item:nth-child(5), .grid-item:nth-child(6) {
  border-color: #fd7e14;
}
.grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform-origin: center top;
  will-change: transform;
  backface-visibility: hidden;
  opacity: 0;
  transition: transform 0.6s ease, opacity 0.6s ease;
}
.grid-item[data-slide-from=right] img {
  transform: scale(1.8) translateX(20%) translateZ(0);
}
.grid-item[data-slide-from=bottom] img {
  transform: scale(1.8) translateY(20%) translateZ(0);
}
.grid-item[data-slide-from=left] img {
  transform: scale(1.8) translateX(-20%) translateZ(0);
}
.grid-item.animate img {
  opacity: 1;
  transform: scale(1.8) translateZ(0);
}

.service-archive-container {
  padding: 40px 0;
}

.page-header {
  display: flex;
  justify-content: center;
}

.archive-subtitle {
  text-align: center;
  font-size: clamp(48px, 8vw, 96px);
  margin-bottom: 40px;
}

.service-archive-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}
.service-archive-grid .service-card__title {
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(48px, 7vw, 64px);
  color: #ff7f00;
  -webkit-text-stroke: 2px #fff;
  text-stroke: 2px #fff;
  text-shadow: none;
  margin: 0;
  width: auto;
  line-height: 1.1;
}

.service-card {
  display: block;
  position: relative;
  height: 350px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
}

.service-card__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 20px 25px;
  box-sizing: border-box;
}

.service-card__content {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: 100%;
  position: relative;
  right: -15px;
}

.service-card__excerpt {
  margin-bottom: 15px;
  text-align: right;
}
.service-card__excerpt p {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  color: #000;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 2px 10px;
  display: inline;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  line-height: 1.7;
  letter-spacing: 0.05em;
}

.service-card__button {
  background-color: #ffa041;
  border-radius: 50%;
  width: 120px;
  height: 120px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  flex-shrink: 0;
  padding: 20px 10px 15px 10px;
  box-sizing: border-box;
  text-align: center;
  color: #fff;
  box-shadow: 0 6px 0 #ff7f00;
  transition: transform box-shadow 0.1s ease;
  position: absolute;
  right: 100px;
  bottom: 25px;
}
.service-card__button:hover {
  transform: translateY(4px);
  box-shadow: 0 2px 0 #c27a00;
}

.service-card__button-icon {
  width: 30px;
  height: 30px;
  margin-bottom: 10px;
}

.service-card__button-text {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: 400;
  line-height: 1.2;
}

.service-single-container {
  max-width: 100%;
  margin: 0;
  padding: 0;
  border-radius: 0;
}

.service-section {
  position: relative;
  overflow: hidden;
  padding: 80px 20px;
  text-align: center;
}
.service-section .container {
  position: relative;
  z-index: 10;
}
.service-section h2 {
  padding: 10px 30px;
  display: inline-block;
  margin-bottom: 30px;
  text-align: center;
  z-index: 2;
}

.section-layout {
  display: flex;
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}

.section-layout__image {
  flex-basis: 50%;
  text-align: left;
  position: relative;
}
.section-layout__image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}
.section-layout__image:has(img.acf-specific-image) {
  overflow: hidden;
  display: flex;
  align-items: stretch;
}
.section-layout__image:has(img.acf-specific-image) img.acf-specific-image {
  height: 100%;
  max-height: 1000px;
  object-fit: cover;
  object-position: center;
}
.section-layout__image img.random-fallback-image {
  object-fit: contain;
}

.section-layout__text {
  flex-basis: 50%;
  text-align: left;
  position: relative;
}

.section-bg-text {
  position: absolute;
  top: 50%;
  font-family: "Bungee Outline", sans-serif;
  font-size: 120px;
  color: rgba(255, 255, 255, 0.5);
  z-index: 0;
  transform: translateY(-50%);
  user-select: none;
}
.section-bg-text span {
  display: block;
  line-height: 1.3;
}

.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+1) {
  background-color: #3f9d00;
  padding: 80px 40px;
  border-bottom: none;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+1) h2 {
  color: #fff;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+1) .section-layout {
  align-items: center;
  flex-direction: row;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+1) .section-layout:has(img.acf-specific-image) {
  align-items: stretch;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+1) .section-layout__image img.acf-specific-image {
  max-height: 1000px;
  object-fit: cover;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+1) .section-bg-text {
  left: 20px;
  right: auto;
  text-align: left;
}

.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+2) {
  background-color: #96e884;
  padding: 80px 40px;
  border-bottom: none;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+2) .section-layout {
  align-items: center;
  flex-direction: row-reverse;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+2) .section-layout:has(img.acf-specific-image) {
  align-items: stretch;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+2) .section-layout__image img.acf-specific-image {
  max-height: 1000px;
  object-fit: cover;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+2) .section-bg-text {
  right: 20px;
  left: auto;
  text-align: right;
}

.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+3) {
  background-color: transparent;
  padding: 80px 40px;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+3) .section-layout {
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 20px;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+3) .section-layout__image {
  max-width: 35%;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+3) .section-layout__image img {
  max-height: 400px;
  object-fit: contain;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+3) .section-layout__image img.acf-specific-image {
  max-height: 1000px;
  object-fit: cover;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+3) .section-layout__text {
  max-width: 800px;
}
.service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+3) .section-bg-text {
  display: none;
}

.service-content-wrapper .service-section.service-detail:nth-child(3n+3),
.service-content-wrapper .service-section.service-pricing:nth-child(3n+3) {
  overflow: visible;
  position: relative;
}

.service-detail-deco-image {
  position: absolute;
  width: 250px;
  z-index: 1;
  opacity: 1;
}
.service-detail-deco-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

.service-detail-deco-image--tr {
  top: 5%;
  right: 10%;
}

.service-detail-deco-image--bl {
  bottom: 10%;
  left: 10%;
}

.service-content-wrapper .service-section.service-detail:nth-child(3n+3):has(.random-fallback-image),
.service-content-wrapper .service-section.service-pricing:nth-child(3n+3):has(.random-fallback-image) {
  padding-bottom: 0;
}
.service-content-wrapper .service-section.service-detail:nth-child(3n+3):has(.random-fallback-image) .section-layout,
.service-content-wrapper .service-section.service-pricing:nth-child(3n+3):has(.random-fallback-image) .section-layout {
  flex-direction: row-reverse;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 30px;
}
.service-content-wrapper .service-section.service-detail:nth-child(3n+3):has(.random-fallback-image) .section-layout__text,
.service-content-wrapper .service-section.service-pricing:nth-child(3n+3):has(.random-fallback-image) .section-layout__text {
  max-width: 800px;
  text-align: left;
  margin-bottom: 40px;
  flex-grow: 1;
}
.service-content-wrapper .service-section.service-detail:nth-child(3n+3):has(.random-fallback-image) .section-layout__image,
.service-content-wrapper .service-section.service-pricing:nth-child(3n+3):has(.random-fallback-image) .section-layout__image {
  flex-basis: auto;
  flex-shrink: 0;
  max-width: 38%;
}
.service-content-wrapper .service-section.service-detail:nth-child(3n+3):has(.random-fallback-image) .section-layout__image img,
.service-content-wrapper .service-section.service-pricing:nth-child(3n+3):has(.random-fallback-image) .section-layout__image img {
  max-height: none;
  height: auto;
  object-fit: contain;
}

.highlight-text {
  color: #000;
  width: 100%;
}

.service-body-content ul {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}
.service-body-content ul li {
  position: relative;
  padding-left: 10px;
  margin-bottom: 0;
  font-size: clamp(16px, 2vw, 20px);
}
.service-body-content ul li::before {
  content: "";
  position: absolute;
  left: -25px;
  top: 0.4em;
  width: 15px;
  height: 15px;
  background-image: url("assets/images/menu-icon.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.service-body-content ul ul li {
  padding-left: 10px;
}
.service-body-content ul ul li::before {
  width: 15px;
  height: 15px;
}

.service-body-content ol li {
  font-size: clamp(16px, 2vw, 20px);
}

.service-first-view .section-layout {
  display: flex;
  align-items: center;
  gap: 40px;
  z-index: 2;
}
.service-first-view .section-layout__image {
  flex-basis: 40%;
  z-index: 2;
}
.service-first-view .section-layout__image img {
  width: 100%;
  height: auto;
  max-height: 500px;
  object-fit: cover;
  object-position: top;
  border-radius: 8px;
}
.service-first-view .section-layout__content {
  flex-basis: 50%;
}
.service-first-view .highlight-text {
  margin-top: 30px;
  background-color: #f9f9f9;
  border-left: 5px solid #f39800;
  padding: 20px;
}

.service-content-wrapper .service-section.service-problem:has(.random-fallback-image) {
  padding-bottom: 0;
}
.service-content-wrapper .service-section.service-problem:has(.random-fallback-image) .section-layout {
  align-items: flex-end;
}
.service-content-wrapper .service-section.service-problem:has(.random-fallback-image) .section-layout__image img {
  display: block;
}
.service-content-wrapper .service-section.service-problem:has(.random-fallback-image) .section-layout__text {
  margin-bottom: 40px;
}

.service-testimonials .container {
  position: relative;
  z-index: 2;
}
.service-testimonials .testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 40px;
}

.testimonial-card {
  background-color: #fff;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 20px;
  text-align: left;
  color: #000;
}

.testimonial-card__image {
  text-align: center;
  margin-bottom: 15px;
}
.testimonial-card__image img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
}

.testimonial-card__title {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  margin: 0 0 10px 0;
}

.service-activities .container {
  position: relative;
  z-index: 2;
}
.service-activities .activity-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
}
.service-activities .activity-card {
  display: flex;
  height: 100%;
}

.service-content-wrapper .service-section.service-activities .pagination {
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 40px;
  position: relative;
  z-index: 10;
}
.service-content-wrapper .service-section.service-activities .pagination .page-numbers {
  display: inline-block;
  padding: 8px 12px;
  min-width: 40px;
  text-align: center;
  text-decoration: none;
  color: #000;
  background-color: #fff;
  border: 1px solid #eee;
  border-radius: 4px;
  transition: all 0.3s;
}
.service-content-wrapper .service-section.service-activities .pagination .page-numbers:hover {
  background-color: #96e884;
  border-color: #3f9d00;
}
.service-content-wrapper .service-section.service-activities .pagination .page-numbers.current {
  background-color: #ff7f00;
  color: #fff;
  border-color: #ff7f00;
}
.service-content-wrapper .service-section.service-activities .pagination .page-numbers.dots {
  border: none;
  background: none;
}

.activity-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: #000;
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s;
}
.activity-card__link:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.activity-card__image {
  flex-shrink: 0;
}
.activity-card__image img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}

.activity-card__content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  padding: 15px;
  padding-bottom: 35px;
  text-align: left;
  position: relative;
}

.activity-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  min-height: 24px;
}

.activity-card__category {
  background-color: #ff7f00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.activity-card__new-badge {
  background-color: #e53935;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.activity-card__date {
  font-size: 12px;
  color: #757575;
  margin: 0;
  position: absolute;
  bottom: 10px;
  right: 15px;
}

.activity-card__title {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  margin: 0 0 8px 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 2.8em;
}

.activity-card__excerpt {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
  line-height: 1.6;
  margin: 0;
  margin-top: auto;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.service-activities__more {
  text-align: center;
  margin-top: 30px;
}

.service-activities__more-link {
  display: inline-block;
  background-color: #3f9d00;
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(20px, 3vw, 28px);
  padding: 15px 40px;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.3s ease;
}
.service-activities__more-link:hover {
  background-color: rgb(42.5350318471, 106, 0);
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.service-faq {
  margin-bottom: 60px;
}
@media (min-width: 768px) {
  .service-faq {
    margin-bottom: 80px;
  }
}

.service-faq .container {
  position: relative;
  z-index: 2;
}

.faq-accordion {
  max-width: 800px;
  margin: 40px auto 0;
  border-top: 1px solid #ddd;
}

.faq-item {
  border-bottom: 1px solid #ddd;
}

.faq-question {
  width: 100%;
  background-color: transparent;
  border: none;
  padding: 20px 50px;
  text-align: left;
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: clamp(18px, 2.2vw, 20px);
  font-weight: bold;
  background-color: #fff;
}

.faq-q-icon {
  color: #ff7f00;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(18px, 2.5vw, 24px);
  margin-right: 15px;
}

.faq-question-text {
  flex-grow: 1;
}

.faq-toggle-icon {
  width: 12px;
  height: 12px;
  border-right: 3px solid #ff7f00;
  border-bottom: 3px solid #ff7f00;
  transform: rotate(45deg);
  transition: transform 0.3s;
  margin-left: 15px;
  flex-shrink: 0;
}

.faq-item.is-open .faq-toggle-icon {
  transform: rotate(-135deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease-out, padding 0.4s ease-out;
  background-color: #fff;
}

.faq-answer-content {
  padding: 0 15px 0 50px;
  line-height: 1.7;
}

.faq-item.is-open .faq-answer {
  padding-bottom: 25px;
  max-height: 500px;
  color: #000;
}

.service-solution .container {
  position: relative;
  z-index: 2;
}

.service-solution .solution-text-wrapper {
  background-color: rgba(255, 255, 255, 0.8);
  padding: 10px 20px;
  border-radius: 8px;
  margin: 0 auto 30px;
  max-width: 800px;
}

.solution-features-grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 900px;
  margin: 40px auto 0;
}

.feature-card {
  display: flex;
  align-items: center;
  gap: 25px;
  background: #fffde8;
  box-shadow: 0px 0px 0px 10px #fffde8;
  border: dashed 2px #ffb03f;
  border-radius: 9px;
  margin-left: 10px;
  margin-right: 10px;
  padding: 16px;
  margin-bottom: 20px;
}

.feature-card__icon {
  flex: 0 0 200px;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.feature-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.feature-card__text-content {
  flex: 1;
  text-align: left;
}

.feature-card__title {
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  margin: 0 0 10px 0;
}

.feature-card__description {
  margin: 0;
  line-height: 1.7;
}
.feature-card__description p {
  margin-bottom: 0;
}

.service-staff-list {
  padding: 60px 20px;
  background-color: #f9f9f9;
}

.staff-list-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 40px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

.staff-profile-card {
  background-color: #fff;
  border-radius: 8px;
  border: 1px solid #ddd;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.staff-profile-card__header {
  display: flex;
  flex-direction: column;
}

.staff-profile-card__image {
  width: 100%;
  height: 280px;
}
.staff-profile-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}

.staff-profile-card__info {
  padding: 20px 20px 0;
}

.staff-profile-card__bio-section {
  padding: 0 20px 20px;
}

.staff-profile-card__meta {
  margin-bottom: 15px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.staff-meta-tag {
  display: block;
  font-size: clamp(12px, 1.5vw, 14px);
  padding: 4px 10px;
  border-radius: 4px;
  font-weight: bold;
  border: 1px solid;
}

.staff-meta-tag--position {
  background-color: #e0f2f1;
  border-color: #26a69a;
  color: #26a69a;
}

.staff-meta-tag--cert {
  background-color: #fff3e0;
  border-color: #ff9800;
  color: #ff9800;
}

.staff-profile-card__name {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(28px, 4vw, 54px);
  font-weight: 400;
  margin: 0 0 15px;
}

.staff-profile-card__bio {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(14px, 1.8vw, 16px);
  line-height: 1.7;
  letter-spacing: 0.05em;
  margin: 0;
  color: #555;
  text-align: left;
}

.service-body-content {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  font-size: clamp(16px, 2vw, 20px);
}
.service-body-content::after {
  content: "";
  display: table;
  clear: both;
}

.service-first-view .service-body-content,
.service-problem .service-body-content,
.service-section.service-detail .service-body-content {
  background-color: bisque !important;
  color: #000 !important;
  padding: 20px;
  border-radius: 8px;
}

.service-first-view .service-body-content > *:first-child,
.service-problem .service-body-content > *:first-child {
  margin-top: 0 !important;
}

.service-body-content h1 {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 400;
  color: #000;
  margin-top: 40px;
  margin-bottom: 20px;
  border-bottom: 4px solid #3f9d00;
  padding-bottom: 10px;
}

.service-body-content h2 {
  background-color: #ff7f00;
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400 !important;
  font-size: clamp(24px, 3.5vw, 32px);
  padding: 10px 20px;
  display: inline-block;
  border-radius: 5px;
  margin-top: 40px;
  margin-bottom: 20px;
}

.service-body-content h2 strong,
.service-body-content h2 b {
  font-weight: 400;
}

.service-body-content h3 {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  color: #000;
  position: relative;
  display: inline-block;
  padding-bottom: 5px;
  margin-top: 40px;
  margin-bottom: 20px;
  z-index: 1;
}
.service-body-content h3::after {
  content: "";
  position: absolute;
  bottom: 4px;
  left: 1em;
  width: 100%;
  height: 8px;
  background-color: #ff7f00;
  z-index: -1;
}

.service-body-content h4 {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  color: #000;
  margin-top: 40px;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
}

.service-body-content ul,
.service-body-content ol {
  background: #fffde8;
  box-shadow: 0px 0px 0px 10px #fffde8;
  border: dashed 2px #ffb03f;
  border-radius: 9px;
  margin-left: 10px;
  margin-right: 10px;
  margin-bottom: 30px;
  padding: 0.5em 0.5em 0.5em 2em;
}

.service-body-content strong,
.service-body-content b {
  font-weight: bold;
  background: linear-gradient(transparent 60%, #ffd700 60%);
  position: relative;
  z-index: 1;
}

.service-body-content img {
  height: auto;
  max-width: 100%;
}

.service-body-content .alignleft {
  float: left;
  margin: 0.5em 1.5em 1em 0;
}

.service-body-content .alignright {
  float: right;
  margin: 0.5em 0 1em 1.5em;
}

.service-body-content .aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0.5em;
  margin-bottom: 1em;
}

.service-body-content .alignnone {
  margin: 0.5em 0 1em 0;
}

.service-availability {
  padding: 60px 0;
}
.service-availability .service-body-content {
  margin-bottom: 30px;
  position: relative;
  background-color: #fff;
  border-radius: 16px;
  padding: 24px 28px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  align-items: center;
  min-height: 80px;
}
.service-availability .service-body-content::before {
  content: "";
  position: absolute;
  left: 60px;
  bottom: -20px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 15px 0 15px;
  border-color: #fff transparent transparent transparent;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.05));
}
.service-availability .service-body-content p {
  margin: 0;
}

.availability-content-area {
  display: flex;
  gap: 0;
  align-items: flex-end;
  justify-content: center;
  margin: 0 auto;
  max-width: 100%;
}

.availability-image-wrapper {
  flex-shrink: 0;
  width: 250px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: -1; /* 追加 */
}

.availability-pose-image {
  display: block;
  width: 100%;
  flex: 1;
  object-fit: cover;
  object-position: center;
}

.availability-table-wrapper {
  width: 800px;
  max-width: 100%;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  flex-shrink: 0;
  margin-bottom: 30px;
}

.availability-table {
  width: 100%;
  border-collapse: collapse;
  background-color: #fff;
  table-layout: fixed;
}
.availability-table thead th {
  background-color: #4a90e2;
  color: #fff;
  padding: 16px 12px;
  font-weight: 600;
  text-align: center;
  font-size: 1rem;
  border: 1px solid #3a7bc8;
}
.availability-table thead th.table-label {
  background-color: #357abd;
  width: 60px;
  min-width: 60px;
}
.availability-table tbody td {
  padding: 16px 12px;
  text-align: center;
  border: 1px solid #e0e0e0;
  font-size: 1.1rem;
}
.availability-table tbody td.row-label {
  background-color: #f0f4f8;
  font-weight: 600;
  color: #555;
  text-align: center;
  padding: 16px 8px;
  width: 60px;
}

.status-cell {
  text-align: center;
  vertical-align: middle;
  padding: 12px 8px;
}
.status-cell > * {
  display: block;
  margin: 3px auto;
}

.status-symbol {
  font-size: 32px;
  line-height: 32px;
  height: 32px;
  font-weight: 700;
}

.status-label {
  font-size: 0.85rem;
  color: #666;
  font-weight: 500;
}

.status-available {
  background-color: #e8f5e9;
}
.status-available .status-symbol {
  color: #28a745;
}

.status-limited {
  background-color: #fff8e1;
}
.status-limited .status-symbol {
  color: #ffc107;
}

.status-contact {
  background-color: #ffe0b2;
}
.status-contact .status-symbol {
  color: #ff9800;
}

.status-full {
  background-color: #ffebee;
}
.status-full .status-symbol {
  color: #dc3545;
}

.status-closed {
  background-color: #f5f5f5;
}
.status-closed .status-symbol {
  color: #999;
}

.bathing-cell {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
  padding: 12px 8px;
  border: 1px solid #e0e0e0;
}
.bathing-cell > * {
  display: block;
  margin: 3px auto;
}

.bathing-icon {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.bathing-label {
  font-size: 0.85rem;
  color: #666;
  font-weight: 500;
}

.bathing-aki {
  background-color: #e8f5e9;
}

.bathing-kon {
  background-color: #fff8e1;
}

.bathing-man {
  background-color: #ffebee;
}

.bathing-closed {
  background-color: #f5f5f5;
}

.availability-bottom {
  display: flex;
  gap: 24px;
  align-items: stretch;
  margin-top: 0;
}

.facility-info-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.facility-info-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 0;
  border-bottom: 1px solid #ddd;
}
.facility-info-item:last-child {
  border-bottom: none;
}
.facility-info-item .info-label {
  font-weight: 600;
  color: #666;
  font-size: 0.9rem;
}
.facility-info-item .info-value {
  color: #333;
  font-size: 1rem;
}

.legend-section {
  flex: 1;
  background-color: #fff;
  padding: 24px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.legend-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #4a90e2;
}

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

.legend-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #ddd;
}
.legend-item:last-child {
  border-bottom: none;
}

.legend-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  font-size: 1.2rem;
  font-weight: 700;
  border-radius: 4px;
  flex-shrink: 0;
}
.legend-symbol.status-available {
  color: #28a745;
}
.legend-symbol.status-limited {
  color: #ffc107;
}
.legend-symbol.status-contact {
  color: #ff9800;
}
.legend-symbol.status-full {
  color: #dc3545;
}
.legend-symbol.status-closed {
  color: #999;
}

.legend-icon {
  width: 32px;
  height: 32px;
  object-fit: contain;
  flex-shrink: 0;
}

.legend-text {
  font-size: 0.9rem;
  color: #555;
  line-height: 1.5;
  text-align: left;
}

.service-pricing .section-layout {
  align-items: stretch;
}
.service-pricing .section-layout__image {
  flex-basis: 35%;
  max-width: 400px;
  display: flex;
  align-items: stretch;
}
.service-pricing .section-layout__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.service-pricing .section-layout__text {
  flex-basis: 65%;
  flex-grow: 1;
}
.service-pricing .service-body-content {
  background-color: bisque;
  color: #000;
  padding: 20px;
  border-radius: 8px;
}

.service-content-wrapper .service-section.service-pricing:has(.random-fallback-image) {
  padding-bottom: 0;
}
.service-content-wrapper .service-section.service-pricing:has(.random-fallback-image) .section-layout {
  align-items: flex-end;
}
.service-content-wrapper .service-section.service-pricing:has(.random-fallback-image) .section-layout__image img {
  display: block;
}
.service-content-wrapper .service-section.service-pricing:has(.random-fallback-image) .section-layout__text {
  margin-bottom: 40px;
}

@media print {
  .service-availability .availability-table-wrapper {
    width: 100%;
    box-shadow: none;
  }
  .service-availability .availability-table {
    font-size: 0.75rem;
    page-break-inside: avoid;
  }
  .service-availability .availability-table thead th,
  .service-availability .availability-table tbody td {
    padding: 6px 4px;
  }
  .service-availability .availability-table .status-symbol {
    font-size: 24px;
    line-height: 24px;
    height: 24px;
  }
  .service-availability .availability-table .status-label,
  .service-availability .availability-table .bathing-label {
    font-size: 0.7rem;
  }
  .service-availability .availability-image-wrapper {
    display: none;
  }
  .service-availability .availability-content-area {
    gap: 0;
  }
  .service-availability .service-body-content {
    display: none;
  }
  .section-bg-text {
    display: none;
  }
  .service-section {
    page-break-inside: avoid;
  }
}
.service-minimal-container {
  max-width: 100%;
  margin: 0;
  padding: 0;
}

.sm-faq, .sm-testimonials, .sm-flow, .sm-reasons, .sm-concerns, .sm-intro {
  padding: 80px 24px;
}
@media (min-width: 768px) {
  .sm-faq, .sm-testimonials, .sm-flow, .sm-reasons, .sm-concerns, .sm-intro {
    padding: 120px 24px;
  }
}

.sm-testimonials__inner, .sm-flow__inner, .sm-reasons__inner, .sm-concerns__inner, .sm-intro__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.sm-faq__label, .sm-testimonials__label, .sm-flow__label, .sm-concerns__label, .sm-intro__label {
  color: #3f9d00;
  font-family: "BIZ UDPGothic", sans-serif;
  font-weight: 500;
  font-size: clamp(12px, 1.5vw, 14px);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.sm-faq__title, .sm-testimonials__title, .sm-flow__title, .sm-reasons__title, .sm-concerns__title, .sm-intro__title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(28px, 4vw, 54px);
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.3;
  position: relative;
  display: inline-block;
  z-index: 1;
}
.sm-faq__title::after, .sm-testimonials__title::after, .sm-flow__title::after, .sm-reasons__title::after, .sm-concerns__title::after, .sm-intro__title::after {
  content: "";
  position: absolute;
  left: 0.5em;
  top: calc(1.3em - 16px);
  right: -0.5em;
  height: 14px;
  background-color: #ff7f00;
  z-index: -1;
}

.sm-hero {
  position: relative;
  overflow: hidden;
}
.sm-hero--split {
  min-height: calc(100vh - 110px);
  display: flex;
}
.sm-hero__split-grid {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: calc(100vh - 110px);
}
@media (min-width: 1024px) {
  .sm-hero__split-grid {
    flex-direction: row;
  }
}
.sm-hero__content-side {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(255, 255, 255, 0.85);
  padding: 80px 24px;
  order: 2;
}
@media (min-width: 1024px) {
  .sm-hero__content-side {
    flex: 0 0 50%;
    padding: 80px 64px;
    order: 1;
  }
}
@media (min-width: 1280px) {
  .sm-hero__content-side {
    padding: 80px 80px 80px 120px;
  }
}
.sm-hero__content {
  max-width: 540px;
  width: 100%;
  text-align: center;
}
@media (min-width: 1024px) {
  .sm-hero__content {
    text-align: left;
  }
}
.sm-hero__label {
  color: #3f9d00;
  font-family: "BIZ UDPGothic", sans-serif;
  font-weight: 600;
  font-size: clamp(12px, 1.5vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 24px;
  display: inline-block;
  position: relative;
}
.sm-hero__label::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background-color: #3f9d00;
}
@media (min-width: 1024px) {
  .sm-hero__label::after {
    left: 0;
    transform: none;
  }
}
.sm-hero__title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(28px, 5vw, 52px);
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.3;
  margin-bottom: 32px;
  margin-top: 16px;
}
.sm-hero__title br {
  display: none;
}
@media (min-width: 768px) {
  .sm-hero__title br {
    display: block;
  }
}
.sm-hero__description {
  font-size: clamp(18px, 2.2vw, 20px);
  color: #6b7280;
  line-height: 1.9;
  margin-bottom: 48px;
}
.sm-hero__description p {
  margin: 0;
}
.sm-hero__cta-wrapper {
  margin-bottom: 0;
}
.sm-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background-color: #ff7f00;
  color: #fff;
  font-family: "BIZ UDPGothic", sans-serif;
  font-weight: 600;
  font-size: clamp(16px, 2vw, 20px);
  padding: 18px 36px;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 16px rgba(255, 127, 0, 0.3);
}
.sm-hero__cta:hover {
  background-color: rgb(214.2, 106.68, 0);
  box-shadow: 0 8px 32px rgba(255, 127, 0, 0.4);
  transform: translateY(-3px);
}
.sm-hero__cta-arrow {
  transition: transform 0.3s ease;
}
.sm-hero__cta:hover .sm-hero__cta-arrow {
  transform: translateX(6px);
}
.sm-hero__image-side {
  flex: 1;
  position: relative;
  min-height: 50vh;
  background-color: rgba(228, 245, 223, 0.85);
  order: 1;
}
@media (min-width: 1024px) {
  .sm-hero__image-side {
    flex: 0 0 50%;
    min-height: calc(100vh - 110px);
    order: 2;
  }
}
.sm-hero__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sm-hero__placeholder {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #6b7280;
  background: linear-gradient(135deg, rgba(228, 245, 223, 0.85) 0%, rgba(211.6071428571, 238.9285714286, 203.5714285714, 0.85) 100%);
}
.sm-hero__placeholder-icon {
  margin-bottom: 16px;
  opacity: 0.5;
}
.sm-hero__placeholder-text {
  font-size: clamp(16px, 2vw, 20px);
  opacity: 0.5;
}
.sm-hero__scroll-indicator {
  display: none;
}
@media (min-width: 1024px) {
  .sm-hero__scroll-indicator {
    display: block;
    margin-top: 48px;
    animation: bounce 2s infinite;
  }
}
.sm-hero__scroll-mouse {
  width: 26px;
  height: 42px;
  border: 2px solid rgba(26, 26, 26, 0.2);
  border-radius: 13px;
  display: flex;
  justify-content: center;
  padding-top: 8px;
}
.sm-hero__scroll-wheel {
  width: 4px;
  height: 12px;
  background-color: #3f9d00;
  border-radius: 2px;
  animation: scroll-wheel 2s infinite;
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateX(-50%) translateY(0);
  }
  40% {
    transform: translateX(-50%) translateY(-8px);
  }
  60% {
    transform: translateX(-50%) translateY(-4px);
  }
}
@keyframes scroll-wheel {
  0% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    transform: translateY(8px);
  }
}
.sm-intro {
  background-color: rgba(228, 245, 223, 0.85);
}
.sm-intro__header {
  display: grid;
  gap: 48px;
  align-items: center;
  margin-bottom: 80px;
}
@media (min-width: 1024px) {
  .sm-intro__header {
    grid-template-columns: 1fr 1fr;
    gap: 64px;
  }
}
.sm-intro__text {
  order: 1;
}
@media (min-width: 1024px) {
  .sm-intro__text {
    order: 2;
  }
}
.sm-intro__image-wrapper {
  order: 2;
  aspect-ratio: 4/3;
  border-radius: 16px;
  overflow: hidden;
  background-color: rgba(255, 255, 255, 0.85);
  border: 1px solid #e5e5e5;
}
@media (min-width: 1024px) {
  .sm-intro__image-wrapper {
    order: 1;
  }
}
.sm-intro__title {
  margin-bottom: 24px;
}
.sm-intro__description {
  color: #6b7280;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.8;
}
.sm-intro__description p {
  margin: 0;
}
.sm-intro__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sm-intro__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #6b7280;
}
.sm-intro__placeholder p {
  margin-top: 16px;
  font-size: clamp(12px, 1.5vw, 14px);
}
.sm-intro__features {
  display: grid;
  gap: 32px;
}
@media (min-width: 768px) {
  .sm-intro__features {
    grid-template-columns: repeat(3, 1fr);
  }
}
.sm-intro__feature-card {
  background-color: rgba(255, 255, 255, 0.85);
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  padding: 32px;
  transition: all 0.3s ease;
}
.sm-intro__feature-card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.sm-intro__feature-icon {
  width: 48px;
  height: 48px;
  background-color: rgba(63, 157, 0, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  transition: background-color 0.3s ease;
}
.sm-intro__feature-icon img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}
.sm-intro__feature-icon--default span {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  color: #3f9d00;
}
.sm-intro__feature-card:hover .sm-intro__feature-icon {
  background-color: rgba(63, 157, 0, 0.15);
}
.sm-intro__feature-title {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 12px;
}
.sm-intro__feature-description {
  font-size: clamp(16px, 2vw, 20px);
  color: #6b7280;
  line-height: 1.7;
  margin: 0;
}

.sm-concerns {
  background-color: rgba(255, 255, 255, 0.85);
}
.sm-concerns__grid {
  display: grid;
  gap: 64px;
  align-items: center;
}
@media (min-width: 1024px) {
  .sm-concerns__grid {
    grid-template-columns: 1fr 1fr;
  }
}
.sm-concerns__title {
  margin-bottom: 24px;
}
.sm-concerns__title br {
  display: none;
}
@media (min-width: 768px) {
  .sm-concerns__title br {
    display: block;
  }
}
.sm-concerns__description {
  color: #6b7280;
  font-size: clamp(14px, 1.8vw, 16px);
  line-height: 1.7;
  margin-bottom: 24px;
}
.sm-concerns__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sm-concerns__item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
}
.sm-concerns__check {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  background-color: rgba(63, 157, 0, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}
.sm-concerns__check svg {
  color: #3f9d00;
  width: 12px;
  height: 12px;
}
.sm-concerns__item-text {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #1a1a1a;
  line-height: 1.5;
}
.sm-concerns__quote-card {
  background-color: rgba(228, 245, 223, 0.85);
  border-radius: 12px;
  padding: 32px;
  border: none;
}
@media (min-width: 768px) {
  .sm-concerns__quote-card {
    padding: 40px;
  }
}
.sm-concerns__quote-mark {
  font-size: 56px;
  font-family: serif;
  color: rgba(63, 157, 0, 0.3);
  line-height: 1;
  margin-bottom: -28px;
}
.sm-concerns__quote-text {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.4;
  margin-bottom: 32px;
}
.sm-concerns__quote-text br {
  display: none;
}
@media (min-width: 768px) {
  .sm-concerns__quote-text br {
    display: block;
  }
}
.sm-concerns__quote-emphasis {
  color: #3f9d00;
}
.sm-concerns__quote-description {
  font-size: clamp(16px, 2vw, 20px);
  color: #6b7280;
  line-height: 1.8;
  margin: 0;
}
.sm-concerns__quote-footer {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(63, 157, 0, 0.2);
}
.sm-concerns__quote-author {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #6b7280;
  margin: 0;
}

.sm-reasons {
  background-color: rgba(63, 157, 0, 0.85);
  overflow: visible;
}
.sm-reasons__grid {
  display: block;
  position: relative;
}
@media (min-width: 1024px) {
  .sm-reasons__grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 0;
    align-items: stretch;
  }
}
.sm-reasons__image-area {
  position: relative;
  z-index: 1;
}
.sm-reasons__content {
  background-color: #fff;
  border-radius: 0;
  padding: 32px;
  margin-top: -40px;
  position: relative;
  z-index: 2;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
}
@media (min-width: 768px) {
  .sm-reasons__content {
    padding: 40px;
    margin-top: -60px;
    margin-left: 24px;
    margin-right: 24px;
  }
}
@media (min-width: 1024px) {
  .sm-reasons__content {
    margin: 0;
    margin-left: -100px;
    padding: 48px;
  }
}
.sm-reasons__label {
  color: #ff7f00;
  font-family: "BIZ UDPGothic", sans-serif;
  font-weight: 600;
  font-size: clamp(12px, 1.5vw, 14px);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.sm-reasons__title {
  margin-bottom: 32px;
}
.sm-reasons__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.sm-reasons__item {
  display: flex;
  gap: 32px;
}
.sm-reasons__number {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: 600;
  color: #fff;
  background-color: #3f9d00;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sm-reasons__item-content {
  flex: 1;
}
.sm-reasons__item-title {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(18px, 2.2vw, 20px);
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 4px;
}
.sm-reasons__item-description {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #6b7280;
  line-height: 1.7;
  margin: 0;
}
.sm-reasons__image-area {
  position: relative;
  border-radius: 0;
  overflow: hidden;
  background-color: #96e884;
}
@media (min-width: 1024px) {
  .sm-reasons__image-area {
    align-self: stretch;
    margin-top: -50px;
    margin-bottom: -50px;
  }
}
.sm-reasons__image {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  object-position: center center;
  display: block;
}
@media (min-width: 768px) {
  .sm-reasons__image {
    min-height: 420px;
  }
}
@media (min-width: 1024px) {
  .sm-reasons__image {
    position: absolute;
    top: 0;
    left: 0;
    min-height: 100%;
    object-position: calc(50% - 50px) center;
  }
}
.sm-reasons__placeholder {
  min-height: 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: rgba(63, 157, 0, 0.5);
}
@media (min-width: 768px) {
  .sm-reasons__placeholder {
    min-height: 420px;
  }
}
@media (min-width: 1024px) {
  .sm-reasons__placeholder {
    min-height: 500px;
  }
}
.sm-reasons__placeholder p {
  margin-top: 16px;
  font-size: clamp(16px, 2vw, 20px);
}

.sm-flow {
  background-color: rgba(228, 245, 223, 0.85);
}
.sm-flow__header {
  text-align: center;
  margin-bottom: 64px;
}
.sm-flow__steps {
  display: grid;
  gap: 32px;
}
@media (min-width: 768px) {
  .sm-flow__steps {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
}
.sm-flow__step {
  position: relative;
  text-align: center;
}
.sm-flow__connector {
  display: none;
}
@media (min-width: 768px) {
  .sm-flow__connector {
    display: block;
    position: absolute;
    top: 32px;
    left: calc(50% + 32px);
    width: calc(100% - 32px);
    height: 1px;
    background-color: #e5e5e5;
  }
}
.sm-flow__step-content {
  position: relative;
  z-index: 1;
}
.sm-flow__step-number {
  width: 64px;
  height: 64px;
  background-color: #3f9d00;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(18px, 2.2vw, 20px);
  font-weight: 500;
  margin: 0 auto 24px;
}
.sm-flow__step-title {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 12px;
}
.sm-flow__step-description {
  font-size: clamp(16px, 2vw, 20px);
  color: #6b7280;
  line-height: 1.7;
  margin: 0;
}

.sm-testimonials {
  background-color: rgba(255, 255, 255, 0.85);
}
.sm-testimonials__header {
  text-align: center;
  margin-bottom: 64px;
}
.sm-testimonials__grid {
  display: grid;
  gap: 32px;
}
@media (min-width: 768px) {
  .sm-testimonials__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.sm-testimonials__card {
  background-color: rgba(228, 245, 223, 0.85);
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  padding: 32px;
}
@media (min-width: 768px) {
  .sm-testimonials__card {
    padding: 40px;
  }
}
.sm-testimonials__quote-icon {
  color: rgba(63, 157, 0, 0.3);
  margin-bottom: 24px;
}
.sm-testimonials__content {
  font-size: clamp(18px, 2.2vw, 20px);
  color: #1a1a1a;
  line-height: 1.8;
  margin-bottom: 24px;
}
.sm-testimonials__author {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sm-testimonials__avatar {
  width: 40px;
  height: 40px;
  background-color: #e5e5e5;
  border-radius: 50%;
  flex-shrink: 0;
}
.sm-testimonials__author-name {
  font-size: clamp(14px, 1.8vw, 16px);
  font-weight: 500;
  color: #1a1a1a;
  margin: 0;
}
.sm-testimonials__author-relation {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #6b7280;
  margin: 0;
}

.sm-faq {
  background-color: rgba(228, 245, 223, 0.85);
}
.sm-faq__inner {
  max-width: 768px;
  margin: 0 auto;
}
.sm-faq__header {
  text-align: center;
  margin-bottom: 64px;
}
.sm-faq__accordion {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sm-faq__item {
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  background-color: rgba(255, 255, 255, 0.85);
  overflow: hidden;
}
.sm-faq__question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  color: #1a1a1a;
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: 400;
  transition: background-color 0.3s ease;
}
.sm-faq__question:hover {
  background-color: rgba(63, 157, 0, 0.03);
}
.sm-faq__question-text {
  flex: 1;
  padding-right: 16px;
}
.sm-faq__toggle-icon {
  width: 12px;
  height: 12px;
  border-right: 2px solid #6b7280;
  border-bottom: 2px solid #6b7280;
  transform: rotate(45deg);
  transition: transform 0.3s ease;
  flex-shrink: 0;
}
.sm-faq__item.is-open .sm-faq__toggle-icon {
  transform: rotate(-135deg);
}
.sm-faq__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease-out;
}
.sm-faq__item.is-open .sm-faq__answer {
  max-height: 500px;
}
.sm-faq__answer-content {
  padding: 0 24px 24px;
  color: #6b7280;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.7;
}
.sm-faq__answer-content p {
  margin: 0;
}

.service-minimal-wrapper .service-case-studies {
  background-color: transparent;
}

.service-minimal-wrapper .service-staff-list {
  background-color: rgba(228, 245, 223, 0.85);
}

@media (max-width: 767px) {
  .sm-hero__split-grid {
    min-height: auto;
  }
  .sm-hero__content-side {
    padding: 48px 20px;
  }
  .sm-hero__image-side {
    min-height: 40vh;
  }
  .sm-hero__title {
    font-size: 28px;
  }
  .sm-hero__cta-wrapper {
    margin-bottom: 0;
  }
  .sm-intro,
  .sm-concerns,
  .sm-reasons,
  .sm-flow,
  .sm-testimonials,
  .sm-faq {
    padding: 60px 16px;
  }
}
.service-staff-list {
  padding: 60px 20px;
  background-color: #f9f9f9;
}

.staff-list-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 40px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

.staff-profile-card {
  background-color: #fff;
  border-radius: 8px;
  border: 1px solid #ddd;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.staff-profile-card__header {
  display: flex;
  flex-direction: column;
}

.staff-profile-card__image {
  width: 100%;
  height: 280px;
}
.staff-profile-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}

.staff-profile-card__info {
  padding: 20px 20px 0;
}

.staff-profile-card__bio-section {
  padding: 0 20px 20px;
}

.staff-profile-card__meta {
  margin-bottom: 15px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.staff-meta-tag {
  display: block;
  font-size: clamp(11px, 1.2vw, 13px);
  padding: 4px 10px;
  border-radius: 4px;
  font-weight: bold;
  border: 1px solid;
}
.staff-meta-tag--position {
  background-color: #e0f2f1;
  border-color: #26a69a;
  color: #26a69a;
}
.staff-meta-tag--cert {
  background-color: #fff3e0;
  border-color: #ff9800;
  color: #ff9800;
}

.staff-profile-card__name {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(18px, 2.2vw, 20px);
  font-weight: 400;
  margin: 0 0 15px;
}

.staff-profile-card__bio {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.7;
  letter-spacing: 0.05em;
  margin: 0;
  color: #555;
  text-align: left;
}

.service-body-content {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.service-body-content h1 {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 400;
  color: #000;
  margin-top: 40px;
  margin-bottom: 20px;
  border-bottom: 4px solid #3f9d00;
  padding-bottom: 10px;
}
.service-body-content h2 {
  background-color: #ff7f00;
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400 !important;
  font-size: clamp(24px, 3.5vw, 32px);
  padding: 10px 20px;
  margin-top: 40px;
  margin-bottom: 20px;
}

.service-first-view .service-body-content,
.service-problem .service-body-content {
  background-color: bisque !important;
  padding: 20px;
  border-radius: 8px;
}
.service-first-view .service-body-content > *:first-child,
.service-problem .service-body-content > *:first-child {
  margin-top: 0 !important;
}

.service-schedule {
  position: relative;
  padding: 0;
  overflow: hidden;
  border-top: 10px solid #3f9d00;
  border-bottom: 10px solid #3f9d00;
}

.service-schedule .section-bg-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: clamp(100px, 15vw, 200px);
  font-weight: 900;
  color: rgba(0, 0, 0, 0.02);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.schedule-container {
  position: relative;
  display: flex;
  gap: 0;
  z-index: 1;
}

.schedule-title-wrapper {
  position: sticky;
  top: 80px;
  align-self: stretch;
  flex-shrink: 0;
  background-color: #3f9d00;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 40px;
  padding-bottom: 60px;
  min-height: 100%;
  width: 90px;
}

.schedule-vertical-title {
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(36px, 5vw, 48px);
  padding: 10px 5px;
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing: 0.1em;
  line-height: 1;
  margin: 0;
}

.schedule-title-wrapper .section-title {
  display: none;
}

.schedule-timeline {
  flex: 1;
  padding: 40px 20px 60px 30px;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
}

.schedule-card {
  background-color: #fff;
  border: 2px solid #e0e0e0;
  padding: 24px 28px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.3s ease;
  max-width: 1000px;
  width: 100%;
  text-align: left;
}
.schedule-card:hover {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.schedule-card__header {
  display: inline-flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 20px;
  position: relative;
  margin-left: 0.5em;
}

.schedule-card__header::after {
  content: "";
  position: absolute;
  left: 0.5em;
  bottom: 5px;
  right: -0.5em;
  height: 18px;
  background-color: attr(data-underline-color);
  z-index: 0;
}

.schedule-card__header:not([data-underline-color])::after {
  background-color: #96e884;
}

.schedule-card__header[data-underline-color="#96e884"]::after {
  background-color: #96e884;
}

.schedule-card__header[data-underline-color="#ffd699"]::after {
  background-color: #ffd699;
}

.schedule-card__time {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 400;
  color: #000;
  margin: 0;
  white-space: nowrap;
  position: relative;
  z-index: 1;
}

.schedule-card__activity {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 400;
  color: #000;
  margin: 0;
  flex: 1;
  position: relative;
  z-index: 1;
}

.schedule-card__contents {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px 60px;
  margin: 0 -28px -24px -28px;
}

.schedule-content-pair {
  display: flex;
  gap: 60px;
  align-items: flex-start;
}

.schedule-content-pair__image {
  flex-shrink: 0;
  width: 250px;
  height: 250px;
  overflow: hidden;
}
.schedule-content-pair__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.schedule-content-pair__text {
  flex: 1;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.8;
  color: #333;
  text-align: left;
}

.schedule-pose-image-wrapper {
  position: absolute;
  bottom: 20px;
  right: 20px;
  width: 150px;
  height: 150px;
  z-index: 0;
  opacity: 0.3;
}

.schedule-pose-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (max-width: 767px) {
  .service-schedule {
    padding: 40px 0 60px 0;
    border-top: none;
    border-bottom: none;
  }
  .schedule-container {
    flex-direction: column;
    gap: 20px;
    padding: 0 20px;
  }
  .schedule-title-wrapper {
    position: relative;
    top: 0;
    align-self: center;
    background-color: transparent;
    padding-top: 0;
    padding-bottom: 0;
    width: auto;
  }
  .schedule-vertical-title {
    display: none !important;
  }
  .schedule-title-wrapper .section-title {
    display: inline-block !important;
    writing-mode: horizontal-tb;
  }
  .schedule-timeline {
    padding: 0;
    width: 100%;
  }
  .schedule-card__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}
.service-section--training {
  position: relative;
  background-color: #3f9d00;
  padding: 40px;
  border-bottom: none;
}
.service-section--training .section-bg-text {
  position: absolute;
  top: 50%;
  font-family: "Bungee Outline", sans-serif;
  font-size: 120px;
  color: rgba(255, 255, 255, 0.5);
  z-index: 0;
  transform: translateY(-50%);
  user-select: none;
}
.service-section--training .section-bg-text span {
  display: block;
  line-height: 1.3;
}
.service-section--training .section-bg-text {
  left: 20px;
  right: auto;
  text-align: left;
}
.service-section--training .service-section__inner {
  position: relative;
  z-index: 1;
}

.training-items {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1000px;
  margin: 0 auto;
}

.training-item {
  position: relative;
  z-index: 2;
}

.training-item__content {
  display: flex;
  align-items: center;
  gap: 40px;
  z-index: 2;
}

.training-item:nth-child(odd) .training-item__content {
  flex-direction: row;
}

.training-item:nth-child(even) .training-item__content {
  flex-direction: row-reverse;
}

.training-item__image {
  flex-basis: 50%;
  z-index: 2;
  position: relative;
}
.training-item__image img {
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
}

.training-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 8px;
}

.training-slider__track {
  display: flex;
  transition: transform 0.4s ease-in-out;
  width: 100%;
}

.training-slider__slide {
  min-width: 100%;
  width: 100%;
  flex-shrink: 0;
  flex-grow: 0;
}
.training-slider__slide img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 500px;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
}

.training-slider__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 10;
  transition: all 0.3s;
  font-size: 0;
  color: transparent;
  outline: none;
  opacity: 0;
  padding: 0;
}
.training-slider__btn--prev {
  left: 10px;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  border-right: 15px solid #ff7f00;
}
.training-slider__btn--prev:hover {
  border-right-color: rgb(204, 101.6, 0);
}
.training-slider__btn--next {
  right: 10px;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  border-left: 15px solid #ff7f00;
}
.training-slider__btn--next:hover {
  border-left-color: rgb(204, 101.6, 0);
}

.training-slider:hover .training-slider__btn {
  opacity: 1;
}

.training-slider__dots {
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 10;
}

.training-slider__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: rgba(255, 127, 0, 0.3);
  border: 2px solid rgba(255, 127, 0, 0.5);
  cursor: pointer;
  transition: all 0.3s ease;
  padding: 0;
}
.training-slider__dot:hover {
  background-color: rgba(255, 127, 0, 0.6);
  transform: scale(1.2);
}
.training-slider__dot.is-active {
  background-color: #ff7f00;
  border-color: #ff7f00;
  transform: scale(1.3);
}

.training-item__text {
  flex-basis: 50%;
}

.training-item__title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 400;
  color: #000;
  margin: 0 0 20px 0;
  position: relative;
  display: block;
  width: fit-content;
  z-index: 1;
}
.training-item__title::after {
  content: "";
  position: absolute;
  left: 0.5em;
  bottom: 2px;
  right: -0.5em;
  height: 14px;
  background-color: #ff7f00;
  z-index: -1;
}

.training-item__text {
  background-color: bisque;
  padding: 20px;
  text-align: left;
  color: #000;
  border-radius: 8px;
}
.training-item__text .service-body-content p {
  font-size: clamp(16px, 2vw, 20px);
  margin-bottom: 1.2em;
  line-height: 1.7;
}
.training-item__text .service-body-content ul,
.training-item__text .service-body-content ol {
  margin-top: 20px;
  margin-bottom: 20px;
  padding-left: 2em;
  list-style-position: outside;
}
.training-item__text .service-body-content ul + ul,
.training-item__text .service-body-content ol + ol,
.training-item__text .service-body-content ul + ol,
.training-item__text .service-body-content ol + ul {
  margin-top: 0.75em;
}

@media (max-width: 767px) {
  .service-section.service-section--training {
    padding: 30px 16px;
  }
  .training-items {
    gap: 30px;
  }
  .training-item__content {
    flex-direction: column !important;
    gap: 20px;
  }
  .training-item__image {
    flex-basis: 100%;
  }
  .training-item__image img {
    max-height: 300px;
  }
  .training-item__text {
    flex-basis: 100%;
    padding: 15px;
  }
  .training-item__title {
    font-size: clamp(20px, 3vw, 28px);
    margin-bottom: 10px;
  }
  .training-slider__btn {
    opacity: 1;
  }
}
.service-section--additional-info {
  position: relative;
  padding: 60px 40px;
  background-color: #fff;
}
.service-section--additional-info .section-bg-text {
  position: absolute;
  top: 50%;
  font-family: "Bungee Outline", sans-serif;
  font-size: 120px;
  color: rgba(255, 255, 255, 0.5);
  z-index: 0;
  transform: translateY(-50%);
  user-select: none;
}
.service-section--additional-info .section-bg-text span {
  display: block;
  line-height: 1.3;
}
.service-section--additional-info .service-section__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
}

.additional-info-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 30px;
  position: relative;
}

.additional-info-nav__btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background-color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  padding: 5px 10px;
  transition: background-color 0.4s ease, opacity 0.4s ease;
  outline: none;
}
.additional-info-nav__btn:hover {
  background-color: rgb(255, 242.2, 229.5);
}
.additional-info-nav__btn--prev {
  justify-content: flex-start;
}
.additional-info-nav__btn--next {
  justify-content: flex-end;
}

.nav-arrow {
  width: 0;
  height: 0;
  flex-shrink: 0;
}

.additional-info-nav__btn--prev .nav-arrow {
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid #ff7f00;
}

.additional-info-nav__btn--next .nav-arrow {
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 10px solid #ff7f00;
}

.nav-title {
  font-size: clamp(12px, 1.8vw, 16px);
  font-weight: bold;
  color: rgba(0, 0, 0, 0.5);
  max-width: 400px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.additional-info-content {
  position: relative;
  overflow: hidden;
}

.additional-info-track {
  position: relative;
  width: 100%;
}

.additional-info-page {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease-in-out, visibility 0.6s ease-in-out;
}
.additional-info-page.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
}

.additional-info-layout {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

.additional-info-layout__image {
  flex: 0 0 45%;
  max-width: 45%;
  height: 500px;
}
.additional-info-layout__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
}

.additional-info-layout__text {
  flex: 1;
  background-color: bisque;
  padding: 30px;
  border-radius: 8px;
  min-height: 500px;
  text-align: left;
}

.additional-info-page__title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 400;
  color: #000;
  margin: 0 0 20px 0;
  position: relative;
  display: inline-block;
  z-index: 1;
}
.additional-info-page__title::after {
  content: "";
  position: absolute;
  left: 0.5em;
  bottom: 2px;
  right: -0.5em;
  height: 14px;
  background-color: #ff7f00;
  z-index: -1;
}

.additional-info-layout__text .service-body-content {
  font-size: clamp(16px, 2vw, 20px);
}
.additional-info-layout__text .service-body-content > *:first-child {
  margin-top: 0 !important;
}
.additional-info-layout__text .service-body-content > *:last-child {
  margin-bottom: 0 !important;
}
.additional-info-layout__text .service-body-content p {
  margin-bottom: 1.2em;
}
.additional-info-layout__text .service-body-content ul,
.additional-info-layout__text .service-body-content ol {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}

.additional-info-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 30px;
}

.additional-info-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.additional-info-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: rgba(255, 127, 0, 0.3);
  border: 2px solid rgba(255, 127, 0, 0.5);
  cursor: pointer;
  transition: all 0.5s ease;
  padding: 0;
}
.additional-info-dot:hover {
  background-color: rgba(255, 127, 0, 0.6);
  transform: scale(1.2);
}
.additional-info-dot.is-active {
  background-color: #ff7f00;
  border-color: #ff7f00;
  transform: scale(1.3);
}

.additional-info-arrow-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.4s ease;
  padding: 8px 12px;
  outline: none;
}
.additional-info-arrow-btn--prev::before {
  content: "◀";
  color: #ff7f00;
  font-size: 16px;
}
.additional-info-arrow-btn--next {
  flex-direction: row-reverse;
}
.additional-info-arrow-btn--next::before {
  content: "▶";
  color: #ff7f00;
  font-size: 16px;
}
.additional-info-arrow-btn:hover {
  opacity: 0.7;
}

.arrow-btn-text {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 400;
  color: #000;
}

@media (max-width: 767px) {
  .service-section--additional-info {
    padding: 40px 16px;
  }
  .additional-info-nav {
    margin-bottom: 20px;
  }
  .additional-info-nav__btn {
    width: 170px;
    height: 40px;
  }
  .nav-title {
    font-size: 12px;
    font-weight: bold;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .additional-info-layout {
    flex-direction: column;
    gap: 40px;
  }
  .additional-info-layout__image {
    flex: 0 0 100%;
    max-width: 100%;
    height: 300px;
  }
  .additional-info-layout__image img {
    height: 100%;
  }
  .additional-info-layout__text {
    padding: 20px;
    min-height: auto;
  }
  .additional-info-page__title {
    font-size: clamp(20px, 3vw, 28px);
    margin-bottom: 15px;
  }
}
.service-proposals {
  background: bisque;
}
.service-proposals .proposals-list {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 60px;
}
.service-proposals .proposal-item {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 40px;
  background: bisque;
  border-radius: 10px;
}
.service-proposals .proposal-problem {
  text-align: left;
}
.service-proposals .proposal-problem__title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 400;
  color: #000;
  margin: 0 0 20px 0;
  position: relative;
  display: block;
  width: fit-content;
  z-index: 1;
}
.service-proposals .proposal-problem__title::after {
  content: "";
  position: absolute;
  left: 0.5em;
  bottom: 2px;
  right: -0.5em;
  height: 14px;
  background-color: #ff7f00;
  z-index: -1;
}
.service-proposals .proposal-problem__content {
  display: flex;
  gap: 30px;
  align-items: flex-start;
  background-color: #fff;
  padding: 10px 30px;
  border-radius: 10px;
}
.service-proposals .proposal-problem__image {
  flex-basis: 40%;
  flex-shrink: 0;
}
.service-proposals .proposal-problem__image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}
.service-proposals .proposal-problem__description {
  flex: 1;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.8;
  color: #333;
}
.service-proposals .proposal-problem__description strong,
.service-proposals .proposal-problem__description b {
  position: relative;
  font-weight: bold;
  background: linear-gradient(transparent 60%, #ffeb3b 60%, #ffeb3b 90%, transparent 90%);
}
.service-proposals .proposal-solution__layout {
  display: flex;
  gap: 40px;
  align-items: end;
  text-align: left;
}
.service-proposals .proposal-solution__staff-image {
  flex-basis: 300px;
  flex-shrink: 0;
  order: 2;
}
.service-proposals .proposal-solution__staff-image img {
  width: 100%;
  height: auto;
  border-radius: 0;
  border: none;
  box-shadow: none;
}
.service-proposals .proposal-solution__description {
  flex: 1;
  order: 1;
  position: relative;
  background: #fff;
  padding: 30px 30px;
  border-radius: 30px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.8;
  color: #333;
}
.service-proposals .proposal-solution__description::after {
  content: "";
  position: absolute;
  right: -20px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 20px 0 20px 20px;
  border-color: transparent transparent transparent #fff;
}
.service-proposals .proposal-solution__description p:first-child {
  margin-top: 0;
}
.service-proposals .proposal-solution__description p:last-child {
  margin-bottom: 0;
}
.service-proposals .proposal-solution__description strong,
.service-proposals .proposal-solution__description b {
  position: relative;
  font-weight: bold;
  background: linear-gradient(transparent 60%, #ffeb3b 60%, #ffeb3b 90%, transparent 90%);
}
.service-proposals .proposal-products__title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 400;
  color: #000;
  margin: 0 0 20px 0;
  position: relative;
  display: inline-block;
  width: fit-content;
  text-align: left;
  z-index: 1;
}
.service-proposals .proposal-products__title::after {
  content: "";
  position: absolute;
  left: 0.5em;
  bottom: 2px;
  right: -0.5em;
  height: 14px;
  background-color: #ff7f00;
  z-index: -1;
}
.service-proposals .proposal-products__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.service-proposals .proposal-product-card {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.3s ease;
  height: 250px;
}
.service-proposals .proposal-product-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}
.service-proposals .proposal-product-card__link {
  display: flex;
  flex-direction: row;
  text-decoration: none;
  color: inherit;
  align-items: stretch;
  height: 100%;
}
.service-proposals .proposal-product-card__image {
  flex-shrink: 0;
  width: 40%;
  height: 100%;
  overflow: hidden;
  background: #f8f9fa;
}
.service-proposals .proposal-product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.service-proposals .proposal-product-card__info {
  flex: 1;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}
.service-proposals .proposal-product-card__name {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  color: #333;
  line-height: 1.4;
  margin: 0 0 10px 0;
}
.service-proposals .proposal-product-card__specs {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
  line-height: 1.4;
  margin: 0 0 10px 0;
}
.service-proposals .proposal-product-card__price {
  font-size: clamp(18px, 2.2vw, 20px);
  font-weight: bold;
  color: #ff7f00;
  margin: 0 0 10px 0;
}
.service-proposals .proposal-product-card__comment {
  font-size: clamp(14px, 1.8vw, 16px);
  line-height: 1.6;
  color: #757575;
  margin: 0;
}

@media (max-width: 767px) {
  .service-proposals .proposal-item {
    padding: 30px 20px;
    gap: 30px;
  }
  .service-proposals .proposal-problem__title {
    font-size: 1.3rem;
  }
  .service-proposals .proposal-problem__content {
    flex-direction: column;
    padding: 20px;
  }
  .service-proposals .proposal-problem__image {
    flex-basis: auto;
    width: 100%;
  }
  .service-proposals .proposal-solution__layout {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 30px;
  }
  .service-proposals .proposal-solution__staff-image {
    order: 2;
    flex-basis: auto;
    width: 200px;
  }
  .service-proposals .proposal-solution__description {
    order: 1;
  }
  .service-proposals .proposal-solution__description::after {
    right: 50%;
    top: auto;
    bottom: -20px;
    transform: translateX(50%);
    border-width: 20px 20px 0 20px;
    border-color: #fff transparent transparent transparent;
  }
  .service-proposals .proposal-products__list {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .service-proposals .proposal-product-card {
    height: 250px;
  }
  .service-proposals .proposal-product-card__image {
    width: 40%;
  }
  .service-proposals .proposal-product-card__info {
    padding: 6px 8px;
  }
}
@media (max-width: 767px) {
  .service-proposals .proposals-list {
    gap: 40px;
  }
  .service-proposals .proposal-item {
    padding: 20px 15px;
    gap: 25px;
  }
  .service-proposals .proposal-problem__title {
    font-size: 1.2rem;
  }
  .service-proposals .proposal-problem__content {
    padding: 15px;
  }
  .service-proposals .proposal-solution__staff-image {
    width: 150px;
  }
  .service-proposals .proposal-solution__description {
    padding: 20px;
  }
  .service-proposals .proposal-products__title {
    font-size: 1.2rem;
  }
  .service-proposals .proposal-products__list {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .service-proposals .proposal-product-card {
    height: 180px;
  }
  .service-proposals .proposal-product-card__image {
    width: 40%;
  }
  .service-proposals .proposal-product-card__info {
    padding: 5px 6px;
  }
}
.page-template-page-philosophy .site-main {
  padding-top: 0;
}

.philosophy-hero {
  min-height: 100vh;
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  display: flex;
  align-items: center;
}

.philosophy-hero__overlay {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.6);
  z-index: 0;
  position: absolute;
}

.philosophy-hero__container {
  position: relative;
  z-index: 2;
  text-align: left;
  padding-bottom: 60px;
}

.philosophy-hero__headline {
  width: 700px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 96px;
  line-height: 1.7;
  margin: 0 0 40px 100px;
  color: #000;
  text-align: justify;
  text-align-last: justify;
  font-weight: 400;
}
.philosophy-hero__headline span {
  background: linear-gradient(transparent 65%, #ff7f00 65%);
  padding: 0 5px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.philosophy-hero__main-text {
  font-size: 18px;
  line-height: 2;
  max-width: 700px;
  margin: 150px auto 60px auto;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: 36px;
  color: #000;
}

.philosophy-hero__scroll-text {
  position: absolute;
  bottom: 20px;
  right: 20px;
  writing-mode: vertical-rl;
  font-size: 14px;
}

.philosophy-hero__bg-text {
  position: absolute;
  font-family: "Yuji Syuku", serif;
  font-size: 150px;
  color: rgba(255, 255, 255, 0.5);
  z-index: 1;
  user-select: none;
  line-height: 1.7;
}

.p-bg-text--1 {
  top: 5%;
  right: 5%;
  font-size: 400px;
}

.p-bg-text--2 {
  top: 35%;
  left: 10%;
}

.p-bg-text--3 {
  bottom: 5%;
  right: 5%;
}

.philosophy-motto {
  padding: 80px 0;
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-position: top;
  color: #fff;
  text-align: left;
}
.philosophy-motto .section-title {
  display: block;
  text-align: left;
  width: 600px;
  padding: 5px 200px 5px 200px;
  margin-bottom: 20px;
  text-align-last: justify;
}

.philosophy-motto__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.philosophy-motto__container {
  position: relative;
  z-index: 2;
  margin-left: 0;
  padding-left: 0;
  padding-right: 0;
  max-width: 100vw;
}

.philosophy-motto__item {
  margin-bottom: 50px;
  text-align: center;
}
.philosophy-motto__item:last-child {
  margin-bottom: 0;
}

.philosophy-motto__text {
  font-family: "Yuji Syuku", serif;
  font-size: 64px;
  font-weight: normal;
  line-height: 1;
  color: #fff;
  position: relative;
  display: inline-block;
  padding: 10px 0;
  text-align: left;
}
.philosophy-motto__text::before {
  content: "";
  display: block;
  background-color: #ff7f00;
  height: 40px;
  width: 100%;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: -1;
}

.motto-text--spaced {
  font-family: "Yuji Syuku", serif;
  font-size: 96px;
  font-weight: normal;
  line-height: 1.7;
  color: #fff;
  text-align: center;
  background-color: none;
}
.motto-text--spaced::before {
  display: none;
}

.philosophy-principles {
  padding: 80px 0;
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-position: top;
  color: #fff;
}
.philosophy-principles .section-title {
  text-align: center;
  display: block;
  text-align: left;
  width: 600px;
  padding: 5px 0 5px 200px;
  margin-bottom: 20px;
}

.philosophy-principles__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
}

.philosophy-principles__container {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 0;
}

.principles-list {
  margin-top: 40px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.principles-item {
  margin-bottom: 30px;
}

.principles-item__headline {
  font-family: "Dela Gothic One", sans-serif;
  font-size: 48px;
  font-weight: 400;
  margin-bottom: 10px;
}

.principles-item__number {
  font-family: "Dela Gothic One", sans-serif;
  margin-right: 10px;
}

.principles-item__text {
  padding-left: 80px;
  font-size: 32px;
  line-height: 1.7;
}

.page-id-682 .site-main {
  background-color: rgba(255, 255, 224, 0.65);
  padding: 40px 0;
}

.company-page-container {
  padding: 60px 0;
}

.company-page-article .section-title {
  display: block;
  text-align: center;
}

.company-info-list {
  margin-top: 30px;
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
}
.company-info-list dt,
.company-info-list dd {
  padding: 15px 0;
  margin: 0;
}
.company-info-list dt {
  font-weight: bold;
  background-color: transparent;
  border-bottom: 2px solid #3f9d00;
}
.company-info-list dd {
  border-bottom: 1px solid #3f9d00;
}
@media (min-width: 768px) {
  .company-info-list {
    display: grid;
    grid-template-columns: 200px 3px 1fr;
    gap: 0 2px;
  }
  .company-info-list dt {
    border-right: none;
    display: flex;
    align-items: center;
  }
  .company-info-list dt::after {
    content: "";
    display: none;
  }
  .company-info-list dd {
    grid-column: 3/4;
    display: flex;
    align-items: center;
  }
  .company-info-list dd::before {
    content: "";
    display: block;
    width: 3px;
    background-color: transparent;
    grid-column: 2/3;
    grid-row: inherit;
  }
}

.history-section {
  margin-top: 60px;
}

.history-timeline {
  border-left: 3px solid #3f9d00;
  margin-top: 30px;
  padding-left: 30px;
  position: relative;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.history-item {
  display: flex;
  gap: 60px;
  position: relative;
  padding-bottom: 40px;
}
.history-item:last-child {
  padding-bottom: 0;
}
.history-item::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background-color: #ff7f00;
  border-radius: 50%;
  position: absolute;
  left: -41px;
  top: 5px;
  border: 3px solid #fff;
  box-shadow: 0 0 0 3px #3f9d00;
}

.history-item__date {
  flex-shrink: 0;
  width: 120px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.history-item__date span {
  font-weight: bold;
  display: block;
}
.history-item__date .history-year {
  font-size: clamp(18px, 2.2vw, 20px);
}
.history-item__date .history-month {
  font-size: clamp(16px, 2vw, 20px);
}

.history-item__content {
  flex: 1;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.7;
}

.company-certifications {
  position: relative;
  padding: 60px 0;
}

.certification-item .post-thumbnail,
.certification-item .entry-thumbnail {
  display: none;
}

.certifications-pose-image {
  position: absolute;
  bottom: 5%;
  right: 5%;
  width: 200px;
  z-index: 5;
  opacity: 0.9;
}
.certifications-pose-image img {
  width: 100%;
  height: auto;
  display: block;
}

.certifications-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.certification-item {
  background-color: bisque;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.certification-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.certification-item__content {
  padding: 20px;
  background-color: bisque;
}

.certification-item__title {
  font-size: clamp(20px, 3vw, 28px);
  font-weight: bold;
  color: #333;
  margin: 0 0 15px 0;
  line-height: 1.4;
}

.certification-item__image {
  width: 100%;
  margin-bottom: 15px;
}
.certification-item__image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 5px;
}

.certification-item__description {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
  line-height: 1.6;
}
.certification-item__description p {
  margin: 0 0 10px 0;
}
.certification-item__description p:last-child {
  margin-bottom: 0;
}

.no-certifications {
  text-align: center;
  color: #757575;
  font-size: clamp(16px, 2vw, 20px);
  margin: 40px 0;
}

/*--------------------------------------------------------------
 Gallery Archive Page
--------------------------------------------------------------*/
/* Main container */
.gallery-container {
  padding: 30px;
  background-color: rgba(255, 255, 255, 0.8);
}

/* Gallery archive header - height set to 110px */
.post-type-archive-gallery .site-header {
  min-height: 110px;
}

/* Gallery archive / Simple bar header */
.gallery-header-simple .header-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 0px 40px;
}
.gallery-header-simple .header-left {
  display: flex;
  align-items: flex-end;
  gap: 20px;
}
.gallery-header-simple .site-logo img {
  height: 80px;
  width: auto;
  display: block;
}
.gallery-header-simple .page-title-container {
  background-color: #ff7f00;
  padding: 0 40px;
  height: 100px;
  display: flex;
  align-items: center;
}
.gallery-header-simple .page-title {
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: 64px;
  color: #fff;
  margin: 0;
  line-height: 1.2;
  text-align: left;
}
.gallery-header-simple .hamburger-icon,
.gallery-header-simple .hamburger-icon::before,
.gallery-header-simple .hamburger-icon::after {
  background-color: #000;
}

/* Gallery archive / Filters */
.gallery-filters,
.news-filters,
.activity-filters {
  background-color: #f0f0f0;
  padding: 20px;
  margin-bottom: 40px;
  border-radius: 8px;
}

.gallery-filters__form,
.news-filters__form,
.activity-filters__form {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}

.filter-group {
  display: flex;
  flex-direction: column;
}
.filter-group__label {
  font-weight: bold;
  font-size: 18px;
  margin-bottom: 5px;
  color: #000;
}
.filter-group__select {
  appearance: none;
  -webkit-appearance: none;
  min-width: 220px;
  padding: 10px 40px 10px 15px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  font-size: 16px;
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%208l5%205%205-5z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}
.filter-group__button {
  padding: 10px 25px;
  background-color: #ff7f00;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  cursor: pointer;
  align-self: flex-end;
}

/* Gallery archive / Grid layout */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.gallery-card {
  background-color: #fff;
  border: 1px solid #ddd;
  text-decoration: none;
  color: #333;
  display: block;
  transition: box-shadow 0.2s;
}
.gallery-card:hover {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
.gallery-card__image {
  width: 100%;
  aspect-ratio: 4/3;
  position: relative;
}
.gallery-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gallery-card__content {
  padding: 15px;
  position: relative;
  padding-bottom: 35px;
}
.gallery-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
  line-height: 1;
}
.gallery-card__term {
  background-color: #ff7f00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
  display: inline-block;
  width: fit-content;
  line-height: 1;
}
.gallery-card__meta:nth-of-type(2) .gallery-card__term {
  background-color: #3f9d00;
}
.gallery-card__title {
  font-size: 18px;
  font-weight: bold;
  margin: 10px 0 5px 0;
  line-height: 1.2;
}
.gallery-card__creator {
  font-size: 14px;
  color: #333;
  margin: 5px 0;
  font-weight: normal;
}
.gallery-card__date {
  font-size: 12px;
  color: #757575;
  margin: 0;
  position: absolute;
  bottom: 10px;
  right: 15px;
}
.gallery-card__new-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background-color: #e53935;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 3px 10px;
  border-radius: 4px;
  z-index: 1;
}

/* Gallery archive / Pagination */
.pagination-wrapper {
  margin-top: 50px;
  text-align: center;
}
.pagination-wrapper .nav-links {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.pagination-wrapper .page-numbers {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid #ddd;
  background-color: #fff;
  text-decoration: none;
  color: #3f9d00;
  font-weight: bold;
  border-radius: 50%;
}
.pagination-wrapper .page-numbers:not(.current):hover {
  background-color: #f0f0f0;
}
.pagination-wrapper .page-numbers.current {
  background-color: #3f9d00;
  color: #fff;
  border-color: #3f9d00;
}
.pagination-wrapper .page-numbers.dots {
  border: none;
  background-color: transparent;
  padding: 8px 0;
}
.pagination-wrapper .pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

/*--------------------------------------------------------------
 Gallery single page
--------------------------------------------------------------*/
.gallery-single-container {
  max-width: 900px;
  margin: 40px auto;
  padding: 20px;
}

.gallery-single-article {
  background-color: #fff;
  padding: 30px 40px;
  border: 1px solid #ddd;
}

.gallery-single-header {
  border-bottom: 2px solid #f0f0f0;
  margin-bottom: 30px;
  padding-bottom: 20px;
}

.gallery-single-title {
  font-size: 36px;
  font-weight: bold;
  margin: 0 0 15px 0;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.gallery-single-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  color: #555;
}

.creator-name {
  font-weight: bold;
}

.meta-tags a {
  text-decoration: none;
}
.meta-tags .gallery-card__term {
  display: inline-block;
  margin-left: 8px;
}

.gallery-single-image {
  margin-bottom: 30px;
}
.gallery-single-image img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.gallery-single-comment {
  background-color: #f7f7f7;
  border-left: 5px solid #ff7f00;
  padding: 20px 25px;
  margin-bottom: 30px;
}
.gallery-single-comment .comment-title {
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 10px 0;
}
.gallery-single-comment p {
  margin: 0;
  line-height: 1.7;
}

.gallery-single-content {
  line-height: 1.7;
}

/* Gallery single / Back to list link */
.gallery-back-link-wrapper {
  text-align: center;
  margin-top: 40px;
  padding-top: 30px;
  border-top: 1px solid #f0f0f0;
}

.gallery-back-link {
  display: inline-block;
  padding: 12px 30px;
  background-color: #757575;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  font-weight: bold;
  transition: background-color 0.2s;
}
.gallery-back-link:hover {
  background-color: #555;
}

/* Gallery single / Navigation */
.gallery-single-container .post-navigation-top,
.gallery-single-container .post-navigation-bottom {
  position: relative;
  margin: 30px 0;
  max-width: 100%;
  min-height: 40px;
}

/* 前の作品ボタン（左端固定） */
.gallery-single-container .post-navigation-top .nav-previous,
.gallery-single-container .post-navigation-bottom .nav-previous {
  position: absolute;
  left: 0;
  top: 0;
}

/* 一覧へ戻るボタン（中央固定） */
.gallery-single-container .post-navigation-top .nav-archive,
.gallery-single-container .post-navigation-bottom .nav-archive {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}

/* 次の作品ボタン（右端固定） */
.gallery-single-container .post-navigation-top .nav-next,
.gallery-single-container .post-navigation-bottom .nav-next {
  position: absolute;
  right: 0;
  top: 0;
}

/* ボタンが存在しない場合は非表示 */
.gallery-single-container .post-navigation-top .nav-previous:empty,
.gallery-single-container .post-navigation-top .nav-next:empty,
.gallery-single-container .post-navigation-top .nav-archive:empty,
.gallery-single-container .post-navigation-bottom .nav-previous:empty,
.gallery-single-container .post-navigation-bottom .nav-next:empty,
.gallery-single-container .post-navigation-bottom .nav-archive:empty {
  display: none;
}

/* ボタンの基本スタイル */
.gallery-single-container .post-navigation-top a,
.gallery-single-container .post-navigation-bottom a {
  display: inline-block;
  text-decoration: none;
  font-weight: bold;
  color: #fff;
  background-color: #3f9d00;
  border-radius: 5px;
  font-size: 16px;
  padding: 8px 15px;
  white-space: nowrap;
  transition: background-color 0.3s ease;
  border: none;
  box-sizing: border-box;
  overflow: hidden;
}
.gallery-single-container .post-navigation-top a:hover,
.gallery-single-container .post-navigation-bottom a:hover {
  background-color: rgb(42.5350318471, 106, 0);
}

/*--------------------------------------------------------------
 ケアマネジャー向け情報ページ専用スタイル
--------------------------------------------------------------*/
/* フィルターエリア（サイドバー内に配置） */
.care-manager-info-filters {
  margin: 0;
  background: none;
  padding: 0;
}

.care-manager-info-filters__form {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 15px;
}

/* 2カラムレイアウトの確実な実装 */
.two-column-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 40px;
  margin-top: 40px;
  align-items: flex-start;
}

/* メインコンテンツエリア */
.main-content {
  min-height: 400px;
}

/* 記事リスト */
.care-manager-info-list {
  /* 既存の news-list スタイルをベースにする */
}

/* 記事アイテム（カード型レイアウト） */
.care-manager-info-list-item {
  display: flex;
  gap: 20px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 30px;
  padding: 20px;
  text-decoration: none;
  color: inherit;
  position: relative;
  transition: box-shadow 0.2s, border-color 0.2s;
  align-items: stretch; /* 子要素の高さを揃える */
  min-height: 120px; /* 最小高さを確保 */
}

.care-manager-info-list-item:hover {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  border-color: #ccc;
}

/* 左端の画像枠（カード全体の高さに合わせる） */
.list-item__image-frame {
  flex-shrink: 0;
  width: 120px;
  align-self: stretch; /* 親の高さに合わせて伸縮 */
  border: 2px solid #ddd;
  border-radius: 4px;
  overflow: hidden;
  background-color: #f9f9f9;
  display: flex;
  align-items: center;
  justify-content: center;
}

.list-item__image-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.list-item__image-frame--empty {
  background-color: #f5f5f5;
  border-style: dashed;
}

.list-item__image-frame--empty::after {
  content: "画像なし";
  font-size: 12px;
  color: #999;
}

/* テキストコンテンツ */
.list-item__text-content {
  flex: 1;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* 上下のスペースを均等配分 */
}

/* タイトルと抜粋のラッパー */
.list-item__main-content {
  flex: 1;
}

/* メタ情報（カテゴリとサービスと日付を下部に配置） */
.list-item__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 15px;
  flex-wrap: wrap;
}

.list-item__category {
  background-color: #3f9d00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 3px 10px;
  border-radius: 4px;
}

.list-item__services {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.list-item__service {
  background-color: #ff7f00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 3px 8px;
  border-radius: 4px;
}

/* タイトル */
.list-item__title {
  font-size: 20px;
  font-weight: bold;
  margin: 0 0 15px 0;
  line-height: 1.2;
}

.list-item__title a {
  text-decoration: none;
  color: inherit;
}

.list-item__title a:hover {
  text-decoration: underline;
}

/* 抜粋 */
.list-item__excerpt {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid #f0f0f0;
  font-size: 15px;
  color: #555;
  line-height: 1.7;
}

.list-item__excerpt p {
  margin: 0;
}

/* 投稿日（関連サービスと同じ高さに配置） */
.list-item__date {
  font-size: 14px;
  color: #757575;
  background-color: #f9f9f9;
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid #eee;
  white-space: nowrap;
}

/* 画像なしの場合の調整 */
.care-manager-info-list-item.no-thumbnail .list-item__text-content {
  padding-top: 25px;
}

/*--------------------------------------------------------------
 ケアマネジャー向け情報ページ専用スタイル
--------------------------------------------------------------*/
/* フィルターエリア（サイドバー内に配置） */
.care-manager-info-filters {
  margin: 0;
  background: none;
  padding: 0;
}

.care-manager-info-filters__form {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 15px;
}

.filter-links {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 10px;
}

.filter-link {
  display: block;
  padding: 8px 12px;
  text-decoration: none;
  color: #333;
  border-radius: 4px;
  font-size: 14px;
  transition: background-color 0.2s, color 0.2s;
  border: 1px solid transparent;
}

.filter-link:hover {
  background-color: #f0f0f0;
  color: #ff7f00;
}

.filter-link.current {
  background-color: #ff7f00;
  color: #fff;
  font-weight: bold;
}

.filter-link .count {
  float: right;
  font-size: 12px;
  opacity: 0.7;
}

/* 2カラムレイアウトの確実な実装 */
.two-column-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 40px;
  margin-top: 40px;
  align-items: flex-start;
}

/* メインコンテンツエリア */
.main-content {
  min-height: 400px;
}

/* 記事リスト */
.care-manager-info-list {
  /* 既存の news-list スタイルをベースにする */
}

/* 記事アイテム（カード型レイアウト） */
.care-manager-info-list-item {
  display: flex;
  gap: 0; /* ギャップを削除して画像を隙間なく */
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 30px;
  padding: 0;
  text-decoration: none;
  color: inherit;
  position: relative;
  transition: box-shadow 0.2s, border-color 0.2s;
  align-items: stretch;
  min-height: 140px;
}

.care-manager-info-list-item:hover {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  border-color: #ccc;
}

/* 左端の画像枠（余白なし） */
.list-item__image-frame {
  flex-shrink: 0;
  width: 140px;
  align-self: stretch;
  border: none;
  border-radius: 8px 0 0 8px;
  overflow: hidden;
  background-color: #f9f9f9;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0; /* マージンを削除 */
}

.list-item__image-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; /* inline要素のデフォルト余白を削除 */
}

.list-item__image-frame--empty {
  background-color: #f5f5f5;
  border: 2px dashed #ddd;
  border-radius: 8px 0 0 8px;
}

.list-item__image-frame--empty::after {
  content: "画像なし";
  font-size: 12px;
  color: #999;
}

/* テキストコンテンツ */
.list-item__text-content {
  flex: 1;
  padding: 15px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* タイトルと抜粋のラッパー */
.list-item__main-content {
  flex: 1;
}

/* メタ情報（左右に分けて配置） */
.list-item__meta {
  display: flex;
  justify-content: space-between; /* 左右に分けて配置 */
  align-items: center;
  margin-top: 10px; /* 間隔を縮小 */
}

.list-item__meta-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.list-item__meta-right {
  flex-shrink: 0;
}

.list-item__category {
  background-color: #3f9d00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 3px 10px;
  border-radius: 4px;
}

.list-item__services {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.list-item__service {
  background-color: #ff7f00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 3px 8px;
  border-radius: 4px;
}

/* タイトル */
.list-item__title {
  font-size: 20px;
  font-weight: bold;
  margin: 0 0 15px 0;
  line-height: 1.4;
}

.list-item__title a {
  text-decoration: none;
  color: inherit;
}

.list-item__title a:hover {
  text-decoration: underline;
}

/* 抜粋 */
.list-item__excerpt {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid #f0f0f0;
  font-size: 15px;
  color: #555;
  line-height: 1.7;
}

.list-item__excerpt p {
  margin: 0;
}

/* 投稿日（関連サービスと同じ高さに配置） */
.list-item__date {
  font-size: 14px;
  color: #757575;
  background-color: #f9f9f9;
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid #eee;
  white-space: nowrap;
}

/* 画像なしの場合の調整 */
.care-manager-info-list-item.no-thumbnail .list-item__text-content {
  padding-top: 25px;
}

/*
==============================================================
 サイドバーデザイン【最終版】
==============================================================
*/
/* --- 1. ウィジェット全体の共通スタイル --- */
.sidebar .sidebar-widget {
  background-color: #f9f9f9;
  border-radius: 20px;
  outline: 2px dashed #3f9d00;
  outline-offset: -10px;
  padding: 20px;
  margin-bottom: 30px;
}

/* --- 2. ウィジェットタイトルの共通スタイル --- */
.sidebar .sidebar-widget__title {
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 15px 0;
  border-bottom: 1px solid #ddd;
  padding-bottom: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sidebar .sidebar-widget__title::before,
.sidebar .sidebar-widget__title::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url("assets/images/menu-icon.png");
  background-size: contain;
  background-repeat: no-repeat;
  margin: 0 10px;
}

/* --- 3. 「情報の種類で探す」リンクのスタイル --- */
.sidebar .filter-link {
  display: block;
  padding: 8px 12px;
  text-decoration: none;
  color: #333;
  border-radius: 4px;
  font-size: 14px;
  /* font-weight: bold; */
  border: 1px solid transparent;
  transition: background-color 0.2s, color 0.2s;
}

.sidebar .filter-link:hover {
  background-color: #f0f0f0;
  color: #ff7f00;
}

.sidebar .filter-link.current {
  background-color: #ff7f00;
  color: #fff;
  border-color: #ff7f00;
}

/*
==============================================================
 ケアマネジャー向け情報ページ専用 サイドバータグ上書き
==============================================================
*/
.post-type-archive-care-manager-info .sidebar .sidebar-tag {
  background-color: transparent; /* 背景を透明に */
  color: #333; /* 文字色を黒に */
  font-size: 14px; /* フォントサイズを小さく */
  font-weight: normal; /* 太字を通常に */
  border: 1px solid transparent;
}

/* ホバー時のスタイル */
.post-type-archive-care-manager-info .sidebar .sidebar-tag:hover {
  background-color: #f0f0f0;
  color: #ff7f00;
  opacity: 1;
}

/* 選択中のタグのスタイル */
.post-type-archive-care-manager-info .sidebar .sidebar-tag.current {
  background-color: #ff7f00;
  color: #fff;
  font-weight: bold;
  border-color: #ff7f00;
}

/* --- 5. 「最新の情報」リストのスタイル --- */
.sidebar .sidebar-widget ul {
  list-style: none; /* ← !important を追記 */
  padding-left: 0;
}

.sidebar .sidebar-widget ul li a {
  display: flex;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid #eee;
  text-decoration: none;
  color: #333;
  font-weight: normal; /* BOLDなし（通常）に変更 */
  font-size: 14px; /* フォントサイズを14pxに指定 */
}

.sidebar .sidebar-widget ul li:last-child a {
  border-bottom: none;
}

.sidebar .sidebar-widget ul li a:hover {
  color: #ff7f00;
}

.sidebar .sidebar-widget ul li a::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  background-image: url("assets/images/menu-icon.png");
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 8px;
}

/* ケアマネジャー向け情報ページにだけ適用される、より具体的な指定 */
.post-type-archive-care-manager-info .sidebar-tag {
  background-color: transparent;
}

/*--------------------------------------------------------------
 ケアマネジャー向け情報 詳細ページ
--------------------------------------------------------------*/
/* ページ全体のコンテナ */
.cm-info-single-container {
  padding-top: 40px;
  padding-bottom: 60px;
}

/* 記事ヘッダー（タイトルエリア） */
.cm-info-single-header {
  box-sizing: border-box; /* 計算基準を統一 */
  max-width: 900px;
  width: 100%; /* 基本は親要素に合わせる */
  margin: 0 auto 20px;
  background-color: #fff;
  padding: 30px 30px 60px;
  border-radius: 8px;
  position: relative;
  text-align: center;
  overflow: hidden;
}

/* メタ情報（日付やカテゴリ） */
.cm-info-single-meta {
  display: flex;
  align-items: center;
  justify-content: center; /* 中央に配置 */
  gap: 15px;
  flex-wrap: wrap;
}

/* 本文エリア */
.cm-info-single-content {
  box-sizing: border-box; /* 計算基準を統一 */
  max-width: 900px;
  width: 100%; /* 基本は親要素に合わせる */
  margin: 0 auto;
  padding: 30px;
  background-color: #fff;
  border-radius: 8px;
  line-height: 1.7;
}

/* アイキャッチ画像 */
.cm-info-single-thumbnail {
  margin-bottom: 30px;
}

.cm-info-single-thumbnail img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

/*--------------------------------------------------------------
 目次 (Table of Contents)
--------------------------------------------------------------*/
.toc-container {
  width: fit-content; /* 中身のテキスト幅に合わせてボックス幅を縮小 */
  margin-left: auto; /* 左の余白を自動で設定 */
  margin-right: auto; /* 右の余白を自動で設定 (左右autoで中央揃え) */
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  border-left: 5px solid #ff7f00;
  border-right: 5px solid #ff7f00;
  padding: 20px 60px;
  margin-bottom: 30px;
  border-radius: 8px;
}

.toc-title {
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 15px 0;
  text-align: center;
}

/* ▼▼▼ ここから変更 ▼▼▼ */
.toc-list {
  list-style: none; /* デフォルトの数字を消す */
  padding-left: 5px; /* 左の余白を調整 */
  margin: 0;
}

.toc-item a {
  text-decoration: none;
  color: #333;
}

.toc-item a:hover {
  text-decoration: underline;
}

/* h2見出しのスタイル */
.toc-item--h2::before {
  content: "●"; /* h2の先頭に●を追加 */
  color: #3f9d00; /* ●の色をオレンジに */
  margin-right: 8px; /* ●と文字の間の隙間 */
}

/* h3見出しのスタイル（字下げのみ） */
.toc-item--h3 {
  margin-left: 25px; /* h2の●の分、少し多めに字下げ */
  font-size: 0.9em;
}

/*--------------------------------------------------------------
 ケアマネジャー向け情報 詳細ページ / デザイン調整
--------------------------------------------------------------*/
.post-navigation-top {
  /* 横幅と配置を下のタイトル枠と揃える */
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
}

/* ★変更点: 太い緑色の波線 */
.cm-info-single-header::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 20px; /* 波線の高さを20pxに太くしました */
  background: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 20" preserveAspectRatio="none"%3E%3Cpath d="M0,10 C25,20 75,0 100,10 L100,20 L0,20 Z" fill="%2366b266"/%3E%3C/svg%3E'); /* 太い波線SVG */
  background-size: 50px 20px;
}

/* 記事タイトル */
.cm-info-single-title {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: 36px;
  font-weight: bold;
  margin-bottom: 5px;
  line-height: 1.2;
  letter-spacing: 0.05em;
}

/* ★変更点: メタ情報（カテゴリと日付の配置） */
.cm-info-single-meta {
  position: absolute;
  bottom: 25px; /* 配置を微調整 */
  left: 20px;
  right: 20px;
  width: calc(100% - 40px);
  display: flex;
  align-items: center;
  gap: 8px; /* カテゴリ間の隙間 */
}

/* ★変更点: 日付エリアを右寄せにする */
.date-wrapper {
  margin-left: auto;
  white-space: nowrap; /* 日付が途中で改行されるのを防ぐ */
}

.post-date {
  /* display: block; を削除 */
  font-size: 13px;
  color: #757575;
}

/* カテゴリの見た目 */
.list-item__category,
.list-item__service {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 13px;
  line-height: 1;
}

.list-item__category {
  background-color: #e0f2f1;
  color: #26a69a;
}

.list-item__service {
  background-color: #e3f2fd;
  color: #2196f3;
}

/*--------------------------------------------------------------
 詳細ページ / ヘッダーの重なり順を修正
--------------------------------------------------------------*/
.site-main {
  position: relative;
  /* z-index: 2001; */
}

/*======================================================================
  中古福祉用具 - 一覧ページ
======================================================================*/
/* 中古福祉用具専用スタイル - にっかいギャラリーと同じスタイル */
.welfare-equipment-archive-container {
  padding: 40px 20px !important;
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 auto !important;
}

/* ページヘッダー */
.welfare-equipment-archive-container .page-header {
  margin: 0 130px 30px 130px !important;
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
}

.welfare-equipment-archive-container .page-header .section-title {
  text-align: center !important;
  margin-bottom: 0 !important;
  flex: 0 0 60% !important;
}

.welfare-equipment-archive-container .page-header .archive-description {
  text-align: left !important;
  margin: 0 !important;
  flex: 1 !important;
}

/* フィルター */
.equipment-filters {
  background-color: #f0f0f0;
  padding: 20px;
  margin-bottom: 40px;
  border-radius: 8px;
}

.equipment-filters__form {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}

.filter-group {
  display: flex;
  flex-direction: column;
}

.filter-group__label {
  font-weight: bold;
  font-size: 18px;
  margin-bottom: 5px;
  color: #000;
}

.filter-group__select {
  appearance: none;
  -webkit-appearance: none;
  min-width: 220px;
  padding: 10px 40px 10px 15px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  font-size: 16px;
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%208l5%205%205-5z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}

.filter-group__button {
  padding: 10px 25px;
  background-color: #ff7f00;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  cursor: pointer;
  align-self: flex-end;
}

.filter-group__button:hover {
  background-color: #e67300;
}

/* アーカイブページの2カラムレイアウト */
.equipment-archive-layout {
  display: grid !important;
  grid-template-columns: 320px 1fr !important;
  gap: 40px !important;
  margin-top: 30px !important;
}

.equipment-archive-sidebar {
  position: sticky !important;
  top: 20px !important;
}

.equipment-archive-sidebar .sidebar-widget {
  background-color: #f9f9f9 !important;
  border-radius: 20px !important;
  outline: 2px dashed #3f9d00 !important;
  outline-offset: -10px !important;
  padding: 20px !important;
  margin-bottom: 20px !important;
}

.equipment-archive-sidebar .sidebar-widget:last-child {
  margin-bottom: 0 !important;
}

.equipment-archive-sidebar .sidebar-widget__title {
  font-size: 18px !important;
  font-weight: bold !important;
  margin: 0 0 15px 0 !important;
  border-bottom: 1px solid #ddd !important;
  padding-bottom: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.equipment-archive-sidebar .recent-equipment-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.equipment-archive-sidebar .recent-equipment-list li {
  border-bottom: 1px solid #ddd !important;
}

.equipment-archive-sidebar .recent-equipment-list li:last-child {
  border-bottom: none !important;
}

.equipment-archive-sidebar .recent-equipment-list li a {
  display: block !important;
  padding: 10px 0 !important;
  text-decoration: none !important;
  color: #333 !important;
  transition: color 0.3s !important;
}

.equipment-archive-sidebar .recent-equipment-list li a:hover {
  color: #ff7f00 !important;
}

.equipment-archive-sidebar .recent-equipment-name {
  display: block !important;
  font-size: 14px !important;
  margin-bottom: 5px !important;
  text-align: left !important;
}

.equipment-archive-sidebar .recent-equipment-price {
  display: block !important;
  font-size: 13px !important;
  color: #666 !important;
  font-weight: bold !important;
  text-align: right !important;
}

/* フィルターセクション */
.equipment-archive-sidebar .filter-section {
  margin-bottom: 20px !important;
  padding-bottom: 20px !important;
  border-bottom: 1px solid #ddd !important;
}

.equipment-archive-sidebar .filter-section:last-of-type {
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

.equipment-archive-sidebar .filter-section-title {
  font-size: 16px !important;
  font-weight: bold !important;
  margin: 0 0 10px 0 !important;
  color: #333 !important;
}

.equipment-archive-sidebar .category-checkbox-list,
.equipment-archive-sidebar .stock-checkbox-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.equipment-archive-sidebar .category-checkbox-list li,
.equipment-archive-sidebar .stock-checkbox-list li {
  margin-bottom: 10px !important;
}

.equipment-archive-sidebar .category-checkbox-list label,
.equipment-archive-sidebar .stock-checkbox-list label {
  display: flex !important;
  align-items: center !important;
  cursor: pointer !important;
  font-size: 14px !important;
}

.equipment-archive-sidebar .category-checkbox-list input[type=checkbox],
.equipment-archive-sidebar .stock-checkbox-list input[type=checkbox] {
  margin-right: 8px !important;
}

.equipment-archive-sidebar .price-range-inputs {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.equipment-archive-sidebar .price-input {
  width: 100px !important;
  padding: 8px !important;
  border: 1px solid #ddd !important;
  border-radius: 4px !important;
  font-size: 14px !important;
}

.equipment-archive-sidebar .btn-filter-submit {
  width: 100% !important;
  padding: 12px 20px !important;
  background-color: #ff7f00 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  font-family: "Dela Gothic One", sans-serif !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  transition: background-color 0.3s !important;
}

.equipment-archive-sidebar .btn-filter-submit:hover {
  background-color: #e67300 !important;
}

.equipment-archive-main {
  min-width: 0 !important;
}

/* グリッド */
.welfare-equipment-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.equipment-card {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  text-decoration: none !important;
  color: #333 !important;
  display: block !important;
  transition: box-shadow 0.2s !important;
}

.equipment-card:hover {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
}

.equipment-card__link {
  text-decoration: none !important;
  color: inherit !important;
  display: block !important;
}

.equipment-card__image-wrapper {
  width: 100% !important;
  aspect-ratio: 4/3 !important;
  position: relative !important;
  overflow: hidden !important;
  background-color: #f5f5f5 !important;
}

.equipment-card__image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.equipment-card__no-image {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: #e0e0e0 !important;
  color: #999 !important;
}

.equipment-card__new-label {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  border-radius: 4px;
  background-color: #ff0000;
  color: #fff;
}

.equipment-card__type {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  border-radius: 4px;
  background-color: #2196f3;
  color: #fff;
}

.equipment-card__type--new {
  background-color: #2196f3;
}

.equipment-card__type--used {
  background-color: #ff9800;
}

.equipment-card__type--like_new {
  background-color: #9c27b0;
}

.equipment-card__status {
  position: absolute;
  bottom: 10px;
  right: 10px;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  border-radius: 4px;
  background-color: #4caf50;
  color: #fff;
}

.equipment-card__status--negotiating {
  background-color: #ff9800;
}

.equipment-card__status--sold {
  background-color: #9e9e9e;
}

.equipment-card__status--order {
  background-color: #03a9f4;
}

.equipment-card__content {
  padding: 15px !important;
}

.equipment-card__inquiry-number {
  font-size: 14px !important;
  color: #757575 !important;
  margin: 5px 0 !important;
}

.equipment-card__inquiry-number span {
  font-weight: bold !important;
}

.equipment-card__title {
  font-size: 18px !important;
  font-weight: normal !important;
  margin: 10px 0 !important;
  line-height: 1.2 !important;
}

.equipment-card__price {
  font-size: 16px !important;
  color: #000 !important;
  font-weight: bold !important;
  margin: 5px 0 !important;
  text-align: right !important;
}

/* 商品がない場合 */
.no-equipment {
  text-align: center !important;
  padding: 60px 20px !important;
  color: #999 !important;
  font-size: 16px !important;
}

/*======================================================================
  中古福祉用具 - 詳細ページ
======================================================================*/
.welfare-equipment-single-container {
  padding-top: 40px;
}

/*--------------------------------------------------------------
 お問い合わせフォーム (Contact Form 7) のスタイル
--------------------------------------------------------------*/
/* フォーム全体を中央寄せ */
.wpcf7 {
  max-width: 500px; /* フォームの最大幅を700pxに設定 */
  margin: 0 auto; /* 左右の余白を自動にして中央に配置 */
}

/* 各入力欄のスタイル */
.wpcf7-form-control:not([type=submit]) {
  width: 500px;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 5px;
  margin-bottom: 15px;
  box-sizing: border-box; /* paddingを含めて幅を100%にする */
}

/* 送信ボタンのスタイル */
.wpcf7 input[type=submit] {
  display: block; /* ブロック要素にして... */
  margin: 20px auto 0; /* ...中央に配置 */
  background-color: #ffa041;
  color: #fff;
  padding: 15px 60px;
  font-weight: bold;
  font-size: 20px;
  border-radius: 8px;
  border: none;
  border-bottom: 5px solid #ff7f00;
  cursor: pointer;
  transition: all 0.2s;
}

.wpcf7 input[type=submit]:hover {
  transform: translateY(2px);
  border-bottom-width: 3px;
}

/*--------------------------------------------------------------
 お問い合わせフォーム / 同意チェックボックスの枠線を消す
--------------------------------------------------------------*/
/* 同意チェックボックス自体を狙って、枠線を消す */
.wpcf7-acceptance input[type=checkbox] {
  border: none; /* ← 枠線をなくす */
}

/*--------------------------------------------------------------
 お問い合わせフォーム / プライバシーポリシー同意欄のスタイル
--------------------------------------------------------------*/
/* 同意チェック欄全体を中央に配置 */
.wpcf7-acceptance {
  display: block; /* 中央揃えの基準とするためブロック要素に */
  text-align: center; /* 中のテキストとチェックボックスを中央に */
  margin-top: 20px; /* 上の項目との間に余白を設ける */
}

/* テキストとチェックボックスの縦位置を微調整 */
.wpcf7-acceptance .wpcf7-list-item-label {
  vertical-align: middle; /* テキストをチェックボックスの中央の高さに合わせる */
}

/*--------------------------------------------------------------
 お問い合わせページ / 説明文エリアのスタイル
--------------------------------------------------------------*/
/* 説明文全体を囲む白いボックス */
.form-infobox {
  max-width: 700px; /* フォームの幅と合わせる */
  margin: 0 auto 30px; /* 中央寄せと、フォームとの下の余白 */
  padding: 25px;
  background-color: #fff;
  border-radius: 8px;
  border: 1px solid #eee; /* 全体に薄い枠線を追加 */
}

/* ボックス内の段落の余白を調整 */
.form-infobox p {
  padding-bottom: 0; /* 古い指定をリセット */
  margin-bottom: 0;
  font-size: 14px;
}

/* 営業メールお断りの文章（区切り線を追加） */
.form-infobox .sales-disclaimer {
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  border-top: 1px solid #ddd; /* ← 細いグレーの区切り線 */
  padding-top: 20px; /* 線との上の余白 */
  margin-top: 20px; /* 説明文との下の余白 */
  background-color: transparent; /* 古い背景色をリセット */
  border: none; /* 古い枠線をリセット */
  padding-left: 0; /* 古い余白をリセット */
  padding-right: 0;
  padding-bottom: 0;
}

/*--------------------------------------------------------------
 お問い合わせフォーム / 同意チェック欄の「外枠」を消す
--------------------------------------------------------------*/
.wpcf7-form-control.wpcf7-acceptance {
  border: none; /* ← 枠線をなくす */
  padding: 0; /* ← 内側の余白もなくす */
}

.wpcf7-response-output {
  background-color: #fff;
}

/* お問い合わせページのタイトルをオレンジ白抜きに */
.page-slug-contact .site-header .page-title {
  /* ← クラス名を修正 */
  color: #ff7f00;
  -webkit-text-stroke: 2px #fff;
  text-stroke: 2px #fff;
}

/*--------------------------------------------------------------
 プライバシーポリシーページ / 本文のスタイル
--------------------------------------------------------------*/
.privacy-policy .entry-content {
  max-width: 1000px; /* 最大幅を1000pxに設定 */
  margin: 0 auto; /* ブロック全体を中央に配置 */
  padding: 40px 50px; /* 内側に上下40px、左右50pxの余白を作成 */
  background-color: #fff; /* 背景を白に */
  border: 1px solid #eee; /* 薄いグレーの枠線 */
  border-radius: 8px; /* 角を少し丸める */
}

/*--------------------------------------------------------------
 トップページ / 16枚フォトグリッドセクション
--------------------------------------------------------------*/
.front-page-photo-grid .container {
  text-align: center;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* 4列のグリッド */
  gap: 5px; /* 写真の間の隙間 */
  margin-top: 40px;
  padding: 5px;
  background-color: palegoldenrod;
}

.grid-item {
  aspect-ratio: 1/1; /* 枠を正方形に保つ */
  border: 3px solid #28a745; /* デフォルトの枠線は緑 */
  box-sizing: border-box;
  overflow: hidden; /* 枠からはみ出た画像を隠す */
}

/* 特定の順番の枠だけをオレンジ色に上書き */
.photo-grid .grid-item:nth-child(1),
.photo-grid .grid-item:nth-child(2),
.photo-grid .grid-item:nth-child(5),
.photo-grid .grid-item:nth-child(6) {
  border-color: #fd7e14; /* オレンジ色 */
}

.grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform-origin: center top; /* ← 追加：拡大の基準を「中央上部」に設定 */
  transform: scale(1.8);
  transition: transform 0.3s ease;
}

/*--------------------------------------------------------------
　■ レスポンシブ対応（スマホ表示）

--------------------------------------------------------------*/
@media (max-width: 767px) {
  /* ヘッダー */
  h1.page-title {
    font-size: clamp(20px, 5vw, 32px);
    white-space: nowrap;
  }
  /* コンテナの左右余白をリセット（セクションのpaddingで統一） */
  .service-section .container {
    padding-left: 0;
    padding-right: 0;
  }
  .page-title-container {
    padding: 0 20px;
    height: 50px;
    display: flex;
    align-items: center;
  }
  /*--------------------------------------------------------------
   レスポンシブ対応 / ヘッダー
  --------------------------------------------------------------*/
  /* トップバーの基本設定 - 常に同じサイズ */
  .header-top-bar {
    padding: 0 15px;
    align-items: center;
    height: 70px !important; /* 常に70px固定 */
  }
  /* 通常時もスクロール時も同じサイズに統一 */
  .header-top-bar .site-logo img {
    height: 40px !important; /* 常に40px固定 */
  }
  .header-top-bar .menu-toggle {
    width: 50px !important; /* 常に50px固定 */
    height: 50px !important;
    font-size: 11px !important;
  }
  /* 以下、念のため個別指定も上書き */
  .header-top-bar:not(.is-scrolled) {
    height: 70px;
  }
  .header-top-bar:not(.is-scrolled) .site-logo img {
    height: 40px;
  }
  .header-top-bar:not(.is-scrolled) .menu-toggle {
    width: 50px;
    height: 50px;
    font-size: 11px;
  }
  .header-top-bar.is-scrolled {
    height: 70px;
    padding-bottom: 0;
  }
  .header-top-bar.is-scrolled .site-logo img {
    height: 40px;
  }
  .header-top-bar.is-scrolled .menu-toggle {
    width: 50px;
    height: 50px;
    font-size: 11px;
  }
  /* トップページのページタイトルコンテナの高さを調整 */
  .home .page-title-container {
    display: flex;
    height: auto;
    padding: 0;
    flex: 0 1 auto;
    max-width: calc(100% - 80px);
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  /* トップページのページタイトル */
  .home .page-title {
    font-size: 25px;
    text-align: center;
    white-space: normal;
    line-height: 1.3;
    margin: 0;
    padding: 0 10px;
    max-width: 100%;
  }
  .service-archive-grid .service-card__title {
    font-size: 32px;
  }
  /* 上段エリア：ロゴと右側コンテンツを縦積みに変更 */
  .footer-info__main {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .header-left {
    align-items: center;
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / トップページ　メインビジュアル
  --------------------------------------------------------------*/
  /* メインビジュアルの高さを調整 */
  .front-page-main-visual {
    height: 60vh; /* 画面の高さの60%に設定 */
    min-height: 400px; /* 最小の高さは400pxを確保 */
  }
  /* キャプションを非表示 */
  .front-page-main-visual .swiper-slide__caption {
    display: none;
  }
  /* スタッフ写真を大きく表示 */
  .random-staff-photo {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 80%;
    max-width: 400px;
  }
  /* ピックアップを中央配置 */
  .main-visual-pickup {
    left: 20px;
    right: 20px;
    transform: none;
    max-width: none;
    width: auto;
  }
}
/*--------------------------------------------------------------
 プライバシーポリシーページ / 本文のスタイル
--------------------------------------------------------------*/
.privacy-policy .entry-content {
  max-width: 1000px; /* 最大幅を1000pxに設定 */
  margin: 0 auto; /* ブロック全体を中央に配置 */
  padding: 40px 50px; /* 内側に上下40px、左右50pxの余白を作成 */
  background-color: #fff; /* 背景を白に */
  border: 1px solid #eee; /* 薄いグレーの枠線 */
  border-radius: 8px; /* 角を少し丸める */
}

/*--------------------------------------------------------------
 トップページ / 16枚フォトグリッドセクション
--------------------------------------------------------------*/
.front-page-photo-grid .container {
  text-align: center;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* 4列のグリッド */
  gap: 5px; /* 写真の間の隙間 */
  margin-top: 40px;
  padding: 5px;
  background-color: palegoldenrod;
}

.grid-item {
  aspect-ratio: 1/1; /* 枠を正方形に保つ */
  border: 3px solid #28a745; /* デフォルトの枠線は緑 */
  box-sizing: border-box;
  overflow: hidden; /* 枠からはみ出た画像を隠す */
}

/* 特定の順番の枠だけをオレンジ色に上書き */
.photo-grid .grid-item:nth-child(1),
.photo-grid .grid-item:nth-child(2),
.photo-grid .grid-item:nth-child(5),
.photo-grid .grid-item:nth-child(6) {
  border-color: #fd7e14; /* オレンジ色 */
}

.grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform-origin: center top; /* ← 追加:拡大の基準を「中央上部」に設定 */
  transform: scale(1.8);
}

.sdgs-page-container {
  padding: 0;
}

.sdgs-page-article {
  max-width: 100%;
  margin: 0 auto;
}

.sdgs-hero-section {
  text-align: center;
  padding: 0 140px;
  background: #fff;
  margin-bottom: 0; /* ロゴと最初のセクションを接地 */
  width: 100%;
}

.sdgs-hero-logo {
  display: flex;
  justify-content: center;
  align-items: center;
}

.sdgs-main-logo {
  max-width: 1450px;
  max-height: 250px;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.sdgs-section {
  margin-bottom: 30px; /* 80px → 30px に削減（半分以下） */
  padding: 40px 20px;
}
.sdgs-section:last-child {
  margin-bottom: 0;
}
.sdgs-section .section-title {
  margin-bottom: 40px;
}

.sdgs-section-container {
  max-width: 1200px;
  margin: 0 auto;
}

.sdgs-commitment-section {
  background: linear-gradient(135deg, rgba(150, 232, 132, 0.1) 0%, rgba(63, 157, 0, 0.05) 100%);
  padding: 60px 40px;
  border-radius: 8px;
}

.sdgs-commitment-content {
  display: flex;
  gap: 40px;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
}

.sdgs-commitment-image {
  flex-basis: 50%;
}
.sdgs-commitment-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.sdgs-commitment-text {
  flex-basis: 50%;
  text-align: left;
}
.sdgs-commitment-text p {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.8;
  margin-bottom: 20px;
}

.sdgs-commitment-date {
  text-align: right;
  font-size: clamp(16px, 2vw, 20px);
  margin-top: 30px !important;
  margin-bottom: 10px !important;
}

.sdgs-commitment-signature {
  text-align: right;
  font-weight: bold;
  margin-top: 10px !important;
  font-size: clamp(18px, 2.2vw, 20px);
}

.sdgs-goals-section {
  background-color: transparent;
  padding: 60px 40px;
  border-radius: 8px;
}

.sdgs-goals-content {
  max-width: 1000px;
  margin: 0 auto;
}

.sdgs-goals-grid {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.sdgs-goal-item {
  background: #fffde8;
  box-shadow: 0px 0px 0px 10px #fffde8;
  border: dashed 2px #ffb03f;
  border-radius: 9px;
  margin-left: 10px;
  margin-right: 10px;
  padding: 1.5em 2em;
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

.sdgs-goal-icons {
  flex-shrink: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
  width: 45%;
}

.sdgs-icon {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.sdgs-goal-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.sdgs-goal-title {
  display: inline-flex;
  align-items: baseline;
  margin-bottom: 20px;
  position: relative;
  margin-left: 0.5em;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 400;
  color: #000;
  z-index: 1;
}
.sdgs-goal-title::after {
  content: "";
  position: absolute;
  left: 0.5em;
  bottom: 0px;
  right: 10.5em;
  height: 18px;
  background-color: #ffb03f;
  z-index: -1;
}

.sdgs-goal-description {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.sdgs-goal-description p {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.8;
  margin-top: 0;
  margin-bottom: 15px;
}
.sdgs-goal-description p:first-child {
  margin-top: 0;
}
.sdgs-goal-description p:last-child {
  margin-bottom: 0;
}

.sdgs-note {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
  font-style: italic;
}

.sdgs-certificate-section {
  background: linear-gradient(135deg, rgba(255, 127, 0, 0.05) 0%, rgba(255, 160, 65, 0.1) 100%);
  padding: 60px 40px;
  border-radius: 8px;
}

.sdgs-certificate-content {
  display: flex;
  justify-content: center;
  max-width: 1000px;
  margin: 0 auto;
}

.certificate-image img {
  width: 100%;
  max-height: 800px;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.sdgs-activities-section {
  background-color: rgba(96, 232, 132, 0.1);
  padding: 60px 40px;
  border-radius: 8px;
}

.sdgs-activities-content {
  max-width: 1000px;
  margin: 0 auto;
}

.activities-text {
  margin-bottom: 40px;
}
.activities-text p {
  font-size: clamp(18px, 2.2vw, 20px);
  line-height: 1.8;
  background-color: #fff;
  padding: 25px;
  border-radius: 8px;
  border-left: 5px solid #3f9d00;
}

.activities-images {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

.activity-image-item img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

@media (max-width: 767px) {
  .sdgs-hero-section {
    padding: 0 20px;
  }
  .sdgs-main-logo {
    max-width: 100%;
  }
  .sdgs-commitment-content {
    flex-direction: column;
  }
  .sdgs-goal-item {
    flex-direction: column;
    padding: 1em;
    gap: 20px;
  }
  .sdgs-goal-icons {
    width: 100%;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  .sdgs-certificate-content {
    flex-direction: column;
  }
  .activities-images {
    grid-template-columns: 1fr;
  }
}
.case-study-archive-container {
  padding: 40px 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.case-study-archive-content {
  margin-top: 40px;
}

.case-study-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 40px;
}

.case-study-card, .service-case-study-card {
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
}
.case-study-card:hover, .service-case-study-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.case-study-card__image, .service-case-study-card__image {
  width: 100%;
  height: 250px;
  overflow: hidden;
  background-color: #f8f9fa;
}
.case-study-card__image img, .service-case-study-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.case-study-card__content, .service-case-study-card__content {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 280px;
}

.case-study-card__product-name, .service-case-study-card__title, .service-case-study-card__product-name {
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  color: #333;
  margin: 0 0 15px 0;
  line-height: 1.4;
}

.case-study-card__meta, .service-case-study-card__meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 15px;
  font-size: clamp(16px, 2vw, 20px);
  color: #757575;
}
.case-study-card__meta .meta-item, .service-case-study-card__meta .meta-item {
  display: flex;
  align-items: baseline;
}
.case-study-card__meta .meta-item strong, .service-case-study-card__meta .meta-item strong {
  color: #333;
  margin-right: 5px;
  flex-shrink: 0;
}

.case-study-card__problem-preview, .service-case-study-card__problem-preview {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
  line-height: 1.6;
  margin-bottom: 15px;
  flex: 1;
}

.case-study-card__info-row, .service-case-study-card__info-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.case-study-card__label, .service-case-study-card__label {
  font-size: 0.75rem;
  color: #757575;
  white-space: nowrap;
  flex-shrink: 0;
}

.case-study-card__badges, .service-case-study-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  flex: 1;
}

.case-study-card__badge, .service-case-study-card__badge {
  display: inline-block;
  background-color: #3f9d00;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.case-study-card__info-row:nth-child(3) .case-study-card__badge, .case-study-card__info-row:nth-child(3) .service-case-study-card__badge, .service-case-study-card__info-row:nth-child(3) .case-study-card__badge, .service-case-study-card__info-row:nth-child(3) .service-case-study-card__badge {
  background-color: #ff7f00;
}

.case-study-card__value, .service-case-study-card__value {
  color: #333;
  font-size: clamp(12px, 1.5vw, 14px);
  flex: 1;
  text-align: center;
}

.case-study-card__button, .service-case-study-card__button {
  background-color: #ff7f00;
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 12px 20px;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(20px, 3vw, 28px);
  cursor: pointer;
  transition: background-color 0.3s ease;
  width: 100%;
  text-align: center;
  margin-top: auto;
}
.case-study-card__button:hover, .service-case-study-card__button:hover {
  background-color: rgb(204, 101.6, 0);
}
.case-study-card__button:active, .service-case-study-card__button:active {
  transform: scale(0.98);
}

.case-study-card__date, .service-case-study-card__date {
  font-size: clamp(12px, 1.5vw, 14px);
  color: #757575;
  text-align: right;
  margin-top: 10px;
  opacity: 0.7;
}

.case-study-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  display: none;
}
.case-study-modal.is-open {
  display: flex;
  align-items: center;
  justify-content: center;
}

.case-study-modal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  cursor: pointer;
}

.case-study-modal__content {
  position: relative;
  background-color: #fff;
  border-radius: 10px;
  width: 90%;
  max-width: 900px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  z-index: 1;
  display: flex;
  flex-direction: column;
}

.case-study-modal__close {
  position: absolute;
  top: 15px;
  right: 15px;
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  z-index: 10;
  transition: background-color 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.case-study-modal__close:hover {
  background-color: rgba(0, 0, 0, 0.7);
}

.case-study-modal__images {
  width: 100%;
  background-color: #f8f9fa;
  padding: 40px 20px 20px;
}

.modal-image-slider {
  position: relative;
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
}

.modal-slider__track {
  position: relative;
  width: 100%;
  height: 500px;
  overflow: hidden;
  border-radius: 8px;
  background-color: #fff;
}

.modal-slider__slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
}
.modal-slider__slide.is-active {
  opacity: 1;
  visibility: visible;
}
.modal-slider__slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.modal-slider__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: transparent;
  border: none;
  width: auto;
  height: auto;
  cursor: pointer;
  z-index: 10;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.modal-slider__btn::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
}
.modal-slider__btn--prev {
  left: 10px;
}
.modal-slider__btn--prev::before {
  border-width: 15px 20px 15px 0;
  border-color: transparent #ff7f00 transparent transparent;
}
.modal-slider__btn--prev:hover {
  transform: translateY(-50%) translateX(-3px);
}
.modal-slider__btn--next {
  right: 10px;
}
.modal-slider__btn--next::before {
  border-width: 15px 0 15px 20px;
  border-color: transparent transparent transparent #ff7f00;
}
.modal-slider__btn--next:hover {
  transform: translateY(-50%) translateX(3px);
}
.modal-slider__btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.modal-slider__btn:disabled:hover {
  transform: translateY(-50%);
}

.modal-slider__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
  padding: 0;
  list-style: none;
}

.modal-slider__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.2);
  border: none;
  cursor: pointer;
  transition: opacity 0.3s ease;
  padding: 0;
  opacity: 0.5;
}
.modal-slider__dot.is-active {
  background-color: #ff7f00;
  opacity: 1;
}
.modal-slider__dot:hover:not(.is-active) {
  opacity: 0.7;
}

.case-study-modal__info {
  padding: 30px;
}

.modal-product-name {
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: bold;
  color: #333;
  margin: 0 0 20px 0;
  border-bottom: 3px solid #ff7f00;
  padding-bottom: 10px;
}

.modal-meta-equipment {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
  padding: 16px;
  background-color: #f8f8f8;
  border-radius: 4px;
}
.modal-meta-equipment .modal-meta-item {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.modal-meta-row1 {
  display: flex;
  flex-wrap: wrap;
  gap: 15px 30px;
  margin-bottom: 15px;
  font-size: clamp(16px, 2vw, 20px);
  color: #757575;
}

.modal-meta-row2 {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 30px;
  font-size: clamp(16px, 2vw, 20px);
  color: #757575;
}
.modal-meta-row2 .modal-meta-item {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.modal-badges {
  display: flex;
  gap: 10px;
}

.insurance-badge {
  display: inline-block;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(12px, 1.5vw, 14px);
  padding: 4px 12px;
  border-radius: 4px;
  white-space: nowrap;
  transition: all 0.3s ease;
}
.insurance-badge--rental.insurance-badge--on {
  background-color: #ff7f00;
  color: #fff;
}
.insurance-badge--purchase.insurance-badge--on {
  background-color: #3f9d00;
  color: #fff;
}
.insurance-badge--off {
  background-color: #E0E0E0;
  color: #999;
}

.modal-meta-item {
  display: flex;
  align-items: baseline;
}
.modal-meta-item strong {
  color: #333;
  margin-right: 8px;
}

.modal-section {
  margin-bottom: 30px;
}
.modal-section:last-child {
  margin-bottom: 0;
}

.modal-section-title {
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  color: #ff7f00;
  margin: 0 0 15px 0;
  padding-left: 15px;
  border-left: 4px solid #ff7f00;
}

.modal-problem,
.modal-solution {
  font-size: clamp(16px, 2vw, 20px);
  color: #333;
  line-height: 1.8;
  margin: 0;
  padding: 15px;
  background-color: #f8f9fa;
  border-radius: 4px;
}

.modal-close-button-wrapper {
  margin-top: 40px;
  text-align: center;
  padding-bottom: 20px;
}

.modal-close-button {
  background-color: #757575;
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 12px 40px;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(18px, 2.2vw, 20px);
  cursor: pointer;
  transition: all 0.3s ease;
}
.modal-close-button:hover {
  background-color: #333;
}
.modal-close-button:active {
  transform: scale(0.98);
}

.no-results {
  text-align: center;
  font-size: clamp(18px, 2.5vw, 24px);
  color: #757575;
  padding: 60px 20px;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .case-study-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
  }
  .modal-slider__track {
    height: 400px;
  }
  .case-study-modal__content {
    width: 95%;
  }
  .service-case-studies__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}
.service-case-studies {
  background-color: #fff;
  padding: 60px 0;
}

.service-case-studies__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
  margin-bottom: 40px;
}

.service-case-study-card__product-name {
  font-size: clamp(16px, 2vw, 20px);
}

.service-case-study-card__title {
  font-size: clamp(16px, 2vw, 20px);
}

.service-case-studies__description {
  text-align: center;
  font-size: clamp(16px, 2vw, 20px);
  color: #757575;
  line-height: 1.8;
  margin-bottom: 30px;
  padding: 0 20px;
}

.service-case-studies__pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
  margin-bottom: 20px;
}

.pagination-btn {
  display: inline-block;
  background-color: #ff7f00;
  color: #fff;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  padding: 12px 24px;
  border-radius: 4px;
  text-decoration: none;
  transition: all 0.3s ease;
}
.pagination-btn:hover {
  background-color: rgb(204, 101.6, 0);
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.pagination-btn:active {
  transform: translateY(0);
}

.pagination-info {
  font-size: clamp(16px, 2vw, 20px);
  color: #757575;
  font-weight: bold;
}

.service-case-studies__more {
  text-align: center;
  margin-top: 30px;
}

.service-case-studies__more-link {
  display: inline-block;
  background-color: #3f9d00;
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  font-size: clamp(20px, 3vw, 28px);
  padding: 15px 40px;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 3px 0 rgb(32.3025477707, 80.5, 0);
}
.service-case-studies__more-link:hover {
  background-color: rgb(42.5350318471, 106, 0);
  transform: translateY(2px);
  box-shadow: 0 1px 0 rgb(32.3025477707, 80.5, 0);
}
.service-case-studies__more-link:active {
  transform: translateY(3px);
  box-shadow: none;
}

/* 導入事例アーカイブページ専用スタイル */
.case-study-archive-container {
  padding: 40px 20px;
  max-width: 100%;
  width: 100%;
  margin: 0 auto;
}

/* ページヘッダー */
.case-study-archive-container .page-header {
  margin: 0 130px 30px 130px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.case-study-archive-container .page-header .section-title {
  text-align: center;
  margin-bottom: 0;
  flex: 0 0 60%;
}

.case-study-archive-container .page-header .archive-description {
  text-align: left;
  margin: 0;
  flex: 1;
}

/* アーカイブページの2カラムレイアウト */
.case-archive-layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 40px;
  margin-top: 30px;
}

.case-archive-sidebar {
  position: sticky;
  top: 20px;
  align-self: start;
}

.case-archive-sidebar .sidebar-widget {
  background-color: #f9f9f9;
  border-radius: 20px;
  outline: 2px dashed #3f9d00;
  outline-offset: -10px;
  padding: 20px;
  margin-bottom: 20px;
}

.case-archive-sidebar .sidebar-widget:last-child {
  margin-bottom: 0;
}

.case-archive-sidebar .sidebar-widget__title {
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 15px 0;
  border-bottom: 1px solid #ddd;
  padding-bottom: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.case-archive-sidebar .recent-case-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.case-archive-sidebar .recent-case-list li {
  border-bottom: 1px solid #ddd;
}

.case-archive-sidebar .recent-case-list li:last-child {
  border-bottom: none;
}

.case-archive-sidebar .recent-case-list li a {
  display: block;
  padding: 10px 0;
  text-decoration: none;
  color: #333;
  transition: color 0.3s;
}

.case-archive-sidebar .recent-case-list li a:hover {
  color: #ff7f00;
}

.case-archive-sidebar .recent-case-name {
  display: block;
  font-size: 14px;
  text-align: left;
}

/* フィルターセクション */
.case-archive-sidebar .filter-section {
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #ddd;
}

.case-archive-sidebar .filter-section:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}

.case-archive-sidebar .filter-section-title {
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 10px 0;
  color: #333;
}

.case-archive-sidebar .category-checkbox-list,
.case-archive-sidebar .date-preset-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.case-archive-sidebar .category-checkbox-list li,
.case-archive-sidebar .date-preset-list li {
  margin-bottom: 10px;
}

.case-archive-sidebar .category-checkbox-list label,
.case-archive-sidebar .date-preset-list label {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 14px;
}

.case-archive-sidebar .category-checkbox-list input[type=checkbox],
.case-archive-sidebar .date-preset-list input[type=radio] {
  margin-right: 8px;
}

/* 日付フィルタ */
.case-archive-sidebar .date-presets {
  margin-bottom: 15px;
}

.case-archive-sidebar .date-range-inputs {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.case-archive-sidebar .date-input {
  width: 100%;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 14px;
}

/* フィルターボタン */
.case-archive-sidebar .filter-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.case-archive-sidebar .btn-filter-submit,
.case-archive-sidebar .btn-filter-reset {
  width: 100%;
  padding: 12px 20px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  transition: background-color 0.3s;
  text-align: center;
  text-decoration: none;
  display: block;
}

.case-archive-sidebar .btn-filter-submit {
  background-color: #ff7f00;
  color: #fff;
}

.case-archive-sidebar .btn-filter-submit:hover {
  background-color: rgb(204, 101.6, 0);
}

.case-archive-sidebar .btn-filter-reset {
  background-color: #999;
  color: #fff;
  font-size: 20px;
}

.case-archive-sidebar .btn-filter-reset:hover {
  background-color: #777;
}

.case-archive-main {
  min-width: 0;
}

/* グリッド */
.case-archive-main .case-study-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 40px;
}

/* 導入事例がない場合 */
.no-case-studies {
  text-align: center;
  padding: 60px 20px;
  color: #999;
  font-size: 16px;
}

@media (max-width: 767px) {
  .case-study-archive-container {
    padding: 30px 15px;
  }
  .case-study-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
  .case-study-card__image, .service-case-study-card__image {
    height: 200px;
  }
  .case-study-card__label,
  .service-case-study-card__label {
    display: none;
  }
  .case-study-card__info-row,
  .service-case-study-card__info-row {
    justify-content: center;
  }
  .case-study-card__content,
  .service-case-study-card__content {
    min-height: auto;
  }
  .case-study-card__button,
  .service-case-study-card__button {
    font-size: clamp(16px, 2vw, 18px);
  }
  .case-study-card__badges,
  .service-case-study-card__badges {
    flex-wrap: nowrap;
  }
  .modal-slider__track {
    height: 300px;
  }
  .modal-slider__btn {
    width: 40px;
    height: 40px;
  }
  .modal-slider__btn--prev {
    left: 5px;
  }
  .modal-slider__btn--next {
    right: 5px;
  }
  .case-study-modal__info {
    padding: 20px;
  }
  .modal-product-name {
    font-size: clamp(20px, 3vw, 28px);
  }
  .modal-meta {
    flex-direction: column;
    gap: 10px;
  }
  .modal-meta-row1,
  .modal-meta-row2 {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .modal-meta-row1 .modal-meta-item,
  .modal-meta-row2 .modal-meta-item {
    width: 100%;
  }
  .modal-meta-row2 {
    align-items: flex-start;
  }
  .modal-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
  }
  .service-case-studies__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
  .service-case-studies {
    padding: 40px 0;
  }
  .case-archive-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .case-archive-sidebar {
    position: static;
  }
  .case-study-archive-container .page-header {
    margin: 0 0 20px 0;
    flex-direction: column;
    text-align: center;
  }
  .case-study-archive-container .page-header .section-title,
  .case-study-archive-container .page-header .archive-description {
    flex: 1;
    text-align: center;
  }
  .case-archive-main .case-study-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
}
.case-study-card--renovation .case-study-card__title {
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  color: #333;
  margin: 0 0 15px 0;
  line-height: 1.4;
}

.service-case-study-card--renovation .service-case-study-card__title {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  color: #333;
  margin: 0 0 15px 0;
  line-height: 1.4;
}

.modal-construction-details {
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: bold;
  color: #333;
  margin: 0 0 20px 0;
  border-bottom: 3px solid #ff7f00;
  padding-bottom: 10px;
}

.modal-meta-renovation {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
  padding: 16px;
  background-color: #f8f8f8;
  border-radius: 4px;
}
.modal-meta-renovation .modal-meta-item {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.modal-meta-label {
  color: #757575;
  font-size: clamp(14px, 1.8vw, 16px);
  flex-shrink: 0;
  min-width: 100px;
}

.modal-meta-value {
  color: #333;
  font-size: clamp(16px, 2vw, 20px);
  flex: 1;
}

.modal-badges-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex: 1;
}

.modal-badge {
  display: inline-block;
  background-color: #3f9d00;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

.filter-section--equipment,
.filter-section--renovation {
  transition: opacity 0.3s ease, max-height 0.3s ease;
}

.modal-customer-voice {
  line-height: 1.7;
  color: #333;
}

@media (max-width: 767px) {
  .modal-meta-renovation {
    flex-direction: column;
    gap: 12px;
  }
}
.error-404-page {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
}

.error-404-container {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

.error-404-content {
  background-color: #fff;
  padding: 60px 40px;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.error-404-icon {
  margin-bottom: 30px;
}
.error-404-icon img {
  width: 100px;
  height: 100px;
  object-fit: contain;
}

.error-404-title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 400;
  color: #ff7f00;
  margin-bottom: 30px;
}

.error-404-message {
  margin-bottom: 40px;
}
.error-404-message p {
  font-size: clamp(18px, 2.2vw, 20px);
  line-height: 1.8;
  color: #555;
  margin-bottom: 15px;
}
.error-404-message p:last-child {
  margin-bottom: 0;
}

.error-404-navigation {
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: center;
}

.btn {
  display: inline-block;
  padding: 15px 40px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(20px, 3vw, 28px); /* より大きなサイズに */
  font-weight: 400;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.3s;
  cursor: pointer;
}

.btn-primary {
  background-color: #3f9d00;
  color: #fff;
  border: 2px solid #3f9d00;
}
.btn-primary:hover {
  background-color: rgb(42.5350318471, 106, 0);
  border-color: rgb(42.5350318471, 106, 0);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(63, 157, 0, 0.3);
}

.error-404-links {
  width: 100%;
  max-width: 400px;
}
.error-404-links h2 {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 400;
  color: #000;
  margin-bottom: 20px;
}
.error-404-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.error-404-links li {
  margin-bottom: 12px;
}
.error-404-links li:last-child {
  margin-bottom: 0;
}
.error-404-links a {
  display: block;
  padding: 12px 20px;
  background-color: #ff7f00;
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.3s;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(18px, 2.2vw, 20px); /* より大きなサイズに */
  font-weight: 400;
  border: 2px solid #ff7f00;
}
.error-404-links a:hover {
  background-color: rgb(204, 101.6, 0);
  border-color: rgb(204, 101.6, 0);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(243, 152, 0, 0.3);
}

@media (max-width: 767px) {
  .error-404-page {
    padding: 40px 15px;
  }
  .error-404-content {
    padding: 40px 20px;
  }
  .error-404-icon img {
    width: 80px;
    height: 80px;
  }
  .error-404-title {
    font-size: 28px;
    margin-bottom: 20px;
  }
  .error-404-message {
    margin-bottom: 30px;
  }
  .error-404-message p {
    font-size: clamp(16px, 2vw, 20px);
  }
  .btn {
    width: 100%;
    padding: 12px 30px;
  }
  .error-404-links {
    max-width: 100%;
  }
  .error-404-links h2 {
    font-size: clamp(18px, 2.5vw, 24px);
  }
}
/*--------------------------------------------------------------
 お知らせ一覧
--------------------------------------------------------------*/
/* お知らせ一覧ページ全体の背景 */
.post-type-archive-news .site-main {
  background-color: #f5f5dc; /* ベージュ色の背景 */
  padding: 40px 0;
  position: relative;
}

/* お知らせ一覧ページのコンテナ */
.post-type-archive-news .archive-container {
  position: relative;
  z-index: 10;
}

/*--------------------------------------------------------------
 # お知らせ一覧 / フィルターエリア
--------------------------------------------------------------*/
.news-filters {
  margin-bottom: 40px; /* フィルターと一覧の間の余白 */
  text-align: center;
}

.news-filters__form {
  display: flex; /* 中の要素を横並びにする */
  gap: 20px; /* 要素間の隙間を20pxに設定 */
  flex-wrap: wrap; /* 画面幅が狭い場合は折り返す */
  align-items: flex-end; /* フォーム要素の高さが違っても下揃えにする */
}

.news-filters .filter-group {
  display: flex; /* ラベルとセレクトボックスを縦並びにするため */
  flex-direction: column; /* 縦並びの方向を指定 */
  gap: 8px; /* ラベルとセレクトボックスの間の隙間 */
}

.news-filters .filter-group__label {
  font-size: clamp(14px, 1.8vw, 16px);
  font-weight: bold;
  color: #333;
  white-space: nowrap; /* ラベルが折り返さないように */
}

.news-filters .filter-group__select {
  padding: 8px 35px 8px 15px;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-size: clamp(16px, 2vw, 20px);
  min-width: 180px; /* 最低限の幅を設定 */
  min-height: 40px; /* 最小高さを設定 */
  line-height: 1.5;
  background-color: #fff;
  cursor: pointer;
  -webkit-appearance: none; /* デフォルトの矢印を非表示に */
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M7%2010L12%2015L17%2010H7Z%22%20fill%3D%22%23333333%22%2F%3E%3C%2Fsvg%3E"); /* カスタム矢印 */
  background-repeat: no-repeat;
  background-position: right 10px center;
}

.news-filters .filter-group__select option {
  padding: 8px;
  line-height: 1.5;
}

.news-filters .filter-group__button {
  background-color: #ff7f00;
  color: #fff;
  padding: 10px 30px;
  border: none;
  border-radius: 5px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 400;
  cursor: pointer;
  transition: background-color 0.3s ease;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
}

.news-filters .filter-group__button:hover {
  background-color: #e66a00; /* ホバー時の色 */
}

/* お知らせ一覧ページのニュースリスト */
.post-type-archive-news .news-list {
  max-width: 800px;
  margin: 40px auto 80px;
  background-color: #fff;
  border-radius: 20px;
  outline: 2px dashed #3f9d00;
  outline-offset: -10px;
  padding: 20px 30px;
  position: relative;
}

/* 通常のニュースリスト（他のページ用） */
.news-list {
  max-width: 800px;
  margin: 40px auto;
  border-top: 1px solid #ddd;
}

/* お知らせ一覧ページのアイテムスタイル */
.post-type-archive-news .news-list-item {
  display: flex;
  gap: 30px;
  padding: 20px 0;
  border-bottom: 1px solid #ddd;
  align-items: flex-start;
  position: relative;
}

.post-type-archive-news .news-list-item:last-child {
  border-bottom: none;
}

.post-type-archive-news .news-list-item:hover {
  background-color: transparent;
  opacity: 0.8;
}

/* 通常のニュースリストアイテム */
.news-list-item {
  display: flex;
  gap: 30px;
  padding: 30px 10px;
  border-bottom: 1px solid #ddd;
  align-items: flex-start;
  position: relative;
}

.news-list-item:hover {
  background-color: #f9f9f9;
}

/* テキストコンテンツ部分（左側） */
.news-list-item__text-content {
  flex: 1; /* 残りのスペースをすべて使う */
}

/* 日付やカテゴリのメタ情報 */
.news-list-item__meta {
  display: flex;
  align-items: center;
  gap: 15px; /* 各要素の間隔 */
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
  margin-bottom: 8px;
}

/* 情報の種類（カテゴリ）- 緑色 */
.news-list-item__category {
  background-color: #3f9d00;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

/* タイトル */
.news-list-item__title {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  margin: 0;
}

.news-list-item__title a {
  text-decoration: none;
  color: inherit;
}

.news-list-item__title a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

/* 抜粋のスタイル */
.news-list-item__excerpt {
  margin-top: 8px;
  font-size: clamp(14px, 1.8vw, 16px);
  color: #555;
  line-height: 1.7;
}

.news-list-item__excerpt p {
  margin: 0;
}

/* お知らせ一覧 / 発信元（サービスの種類）- オレンジ色 */
.news-list-item__source,
.news-item__source {
  background-color: #ff7f00;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

/* アイキャッチ画像部分（右側） */
.news-list-item__thumbnail {
  flex-basis: 200px; /* 画像の幅を250pxに固定 */
  flex-shrink: 0; /* 画像が縮まないように */
}

.news-list-item__thumbnail img {
  width: 100%;
  height: auto;
  border-radius: 8px; /* 角を少し丸める */
  display: block;
}

/* リンクのスタイル */
.news-list-item__title a,
.news-list-item__thumbnail a {
  text-decoration: none;
  color: inherit;
}

/* お知らせ一覧ページのタイトルを非表示 */
.post-type-archive-news .archive-header {
  display: none;
}

/* お知らせ一覧ページのページネーション */
.post-type-archive-news .pagination-wrapper {
  margin: 60px auto;
  text-align: center;
}

/*--------------------------------------------------------------
 会社概要ページ / 沿革タイムライン
--------------------------------------------------------------*/
.history-section {
  margin-top: 60px; /* 上のセクションとの余白 */
}

.history-timeline {
  border-left: 3px solid #3f9d00;
  margin-top: 30px;
  padding-left: 30px;
  position: relative;
  max-width: 700px; /* ←【追加】最大幅を800pxに */
  margin-left: auto; /* ←【追加】中央揃えにする */
  margin-right: auto; /* ←【追加】中央揃えにする */
}

.history-item {
  display: flex;
  gap: 60px; /* 日付と内容の間の余白 */
  position: relative;
  padding-bottom: 40px; /* 各項目の下の余白 */
}

.history-item:last-child {
  padding-bottom: 0;
}

/* タイムラインの丸いポイント */
.history-item::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background-color: #ff7f00;
  border-radius: 50%;
  position: absolute;
  left: -41px; /* 縦線の上に配置 */
  top: 5px;
  border: 3px solid #fff;
  box-shadow: 0 0 0 3px #3f9d00;
}

.history-item__date {
  flex-shrink: 0;
  width: 120px;
  /* ▼▼▼【追加】中の要素を右揃えにするためのFlexbox設定 ▼▼▼ */
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.history-item__date span {
  font-weight: bold;
  display: block; /* 念のためブロック要素に */
}

.history-item__date .history-year {
  font-size: clamp(18px, 2.2vw, 20px);
}

.history-item__date .history-month {
  font-size: clamp(16px, 2vw, 20px);
  color: #555;
}

.history-item__content {
  line-height: 1.7;
  padding-top: 5px;
}

.history-item__content p {
  margin: 0;
}

.history-item__photo {
  margin-top: 15px;
  max-width: 300px;
  height: auto;
  border-radius: 8px;
}

/*--------------------------------------------------------------
 グローバルナビゲーション v2 (デザイン適用版)
--------------------------------------------------------------*/
/* メニュー全体の背景とレイアウト */
.global-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #f0f0cf; /* 背景色 */
  background-image: url("assets/images/menu-bottom-decoration.png"), linear-gradient(to bottom, #d6ebdc, #f0f0cf); /* グラデーション */
  background-repeat: no-repeat, no-repeat;
  background-position: bottom center, center;
  background-size: 100% auto, cover;
  display: flex;
  flex-direction: column; /* ヘッダーとボディを縦に並べる */
  visibility: hidden;
  opacity: 0;
  transition: visibility 0.3s, opacity 0.3s;
  z-index: 2000;
  overflow-y: auto; /* コンテンツが多い場合にスクロール */
}

.global-nav.is-open {
  visibility: visible;
  opacity: 1;
}

/* 中央のコンテナ */
.global-nav__container {
  width: 100%;
  max-width: 1000px; /* ← 最大幅を1000pxに設定 */
  max-height: 90vh; /* 画面の高さの90%まで */
  background-color: transparent;
  /* コンテンツがはみ出た場合にスクロールさせる */
  display: flex;
  flex-direction: column;
  overflow: hidden; /* 角丸を維持するため */
}

/* メニュー内部のヘッダー */
.global-nav__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 40px;
  background-color: transparent; /* ← 背景色を透明に */
  flex-shrink: 0;
}

/* グローバルナビのスタイル - layout/_navigation.scssで定義済みのためコメントアウト */
/* .global-nav__logo a {
  display: flex;
  align-items: center;
  gap: 15px;
  text-decoration: none;
  color: #333;
  font-weight: bold;
  font-size: $font-size-h3;
  margin-left: 50px;
}
.global-nav__logo img {
  height: 50px;
  width: auto;
}
.global-nav__contact p {
  margin: 0;
  margin-left: 60px;
  font-size: $font-size-h6;
  text-align: center;
  color: #000;
}
.global-nav__contact a {
  color: #000;
  text-decoration: none;
}
.global-nav__contact a:hover {
  text-decoration: underline;
} */
/* メニューリスト本体 */
.global-nav__body {
  padding: 40px;
  overflow-y: auto; /* 残りの高さをすべて使う */
}

.global-nav__list {
  list-style: none;
  padding: 0;
  margin: 0 auto; /* ← 左右のautoで中央揃え */
  max-width: 1000px; /* ← 最大幅を1000pxに設定 */
  width: 100%;
}

/* グローバルナビのメニュー項目スタイル - layout/_navigation.scssで定義済みのためコメントアウト */
/* .global-nav__list > .menu-item {
  font-size: $font-size-h5;
  font-weight: bold;
  margin-bottom: 25px;
  display: flex;
  align-items: flex-start;
  gap: 20px;
}

.global-nav__list a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #333;
  transition: opacity 0.2s;
}

.global-nav__list > .menu-item > a {
  flex-shrink: 0;
  white-space: nowrap;
  margin-left: -20px;
  width: 370px;
}

.global-nav__list a:hover {
  opacity: 0.7;
} */
/* グローバルナビのアイコン - layout/_navigation.scssで定義済みのためコメントアウト */
/* .global-nav__list a::before {
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  background-image: url("assets/images/menu-icon.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
} */
/* サブメニュー（階層下）のレイアウト - layout/_navigation.scssで定義済みのためコメントアウト */
/* .global-nav__list .sub-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
  flex: 1;
}
.global-nav__list .sub-menu .menu-item {
  font-size: $font-size-body;
  font-weight: normal;
}
.global-nav__list .sub-menu a {
  display: flex;
  align-items: center;
} */
/*--------------------------------------------------------------
 活動記録アーカイブページ
--------------------------------------------------------------*/
.archive-container {
  padding: 40px 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.page-header {
  text-align: center;
  margin-bottom: 20px;
}
.page-header .section-title {
  font-size: clamp(28px, 4vw, 54px);
  margin-bottom: 10px;
}
.page-header .archive-description {
  color: #757575;
  font-size: clamp(16px, 2vw, 20px);
}

.activity-filters {
  background-color: #fff;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  margin-bottom: 30px;
}

.activity-filters__form {
  display: flex;
  gap: 15px;
  align-items: center;
  justify-content: center;
}

.filter-group {
  display: flex;
  align-items: center;
  gap: 0;
}

.filter-group__select {
  padding: 8px 12px;
  border: 1px solid #eee;
  border-radius: 4px;
  font-size: clamp(16px, 2vw, 20px);
  min-width: 200px;
}

.filter-group__button {
  padding: 10px 30px;
  background-color: #3f9d00;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.filter-group__button:hover {
  background-color: rgb(42.5350318471, 106, 0);
}

.activity-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
}

.activity-card {
  display: flex;
  height: 100%;
  width: 100%;
  min-width: 0;
}

.activity-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  text-decoration: none;
  color: #000;
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s;
}
.activity-card__link:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.activity-card__image {
  flex-shrink: 0;
  width: 100%;
  position: relative;
}
.activity-card__image img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}

.activity-card__new-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background-color: #e53935;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 4px 10px;
  border-radius: 4px;
  z-index: 2;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.activity-card__content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  padding: 15px;
  padding-bottom: 35px;
  text-align: left;
  position: relative;
  width: 100%;
  min-width: 0;
}

.activity-card__service-badge {
  margin-bottom: 10px;
}
.activity-card__service-badge .service-badge {
  display: inline-block;
  background-color: #ff7f00;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 4px 12px;
  border-radius: 4px;
  line-height: 1.4;
}

.activity-card__date {
  font-size: 12px;
  color: #757575;
  margin: 0;
  position: absolute;
  bottom: 10px;
  right: 15px;
}

.activity-card__title {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  margin: 0 0 8px 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 2.8em;
  word-break: break-word;
  overflow-wrap: break-word;
}

.activity-card__excerpt {
  font-size: clamp(14px, 1.8vw, 16px);
  color: #757575;
  line-height: 1.6;
  margin: 0;
  margin-top: auto;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  word-break: break-word;
  overflow-wrap: break-word;
}

.pagination-wrapper {
  margin-top: 40px;
  text-align: center;
}

/*--------------------------------------------------------------
 お知らせ・活動記録 詳細ページ【再統合・修正版】
--------------------------------------------------------------*/
/* --- ページ全体のコンテナ（共通）--- */
.news-single-container,
.activity-single-container {
  padding-top: 20px;
  padding-bottom: 60px;
}

/* --- 記事のヘッダーエリア --- */
.news-single-header,
.activity-single-header {
  margin-bottom: 30px;
  border-bottom: 2px solid #f0f0f0;
  padding-bottom: 20px;
}

/* お知らせページ独自のヘッダースタイル */
.news-single-header,
.activity-single-header {
  background-color: #fff;
  padding: 20px;
  max-width: calc(100vw - 140px - 130px - 40px);
  margin-left: auto;
  margin-right: auto;
}

/* --- 記事タイトル（共通）--- */
.news-single-title,
.activity-single-title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(28px, 4vw, 54px);
  font-weight: 400;
  margin-bottom: 15px;
}

/* --- メタ情報（共通）--- */
.news-single-meta,
.activity-single-meta {
  display: flex;
  align-items: center;
  gap: 15px;
}

.activity-single-category {
  background-color: #007bff;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
}

/* 活動記録のサービスラベル - オレンジ色 */
.activity-single-service-tag {
  background-color: #ff7f00;
  color: #fff;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  padding: 2px 10px;
  border-radius: 4px;
  text-decoration: none;
  transition: background-color 0.3s ease;
}

.activity-single-service-tag:hover {
  background-color: rgb(204, 101.6, 0);
}

/* --- 2カラムレイアウト（共通）--- */
.news-single-layout,
.activity-single-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 40px;
  align-items: flex-start;
}

/* --- 本文（左カラム）（共通）--- */
.news-single-content,
.activity-single-content {
  line-height: 1.7;
  background-color: #fff;
  padding: 30px;
  border-radius: 8px;
}

.news-single-thumbnail,
.activity-single-thumbnail {
  margin-bottom: 20px;
}

.news-single-thumbnail img,
.activity-single-thumbnail img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

/* --- サイドバー（右カラム）--- */
/* お知らせ・活動記録ページ共通のサイドバー */
.news-single-sidebar .sidebar-widget,
.activity-single-sidebar .sidebar-widget {
  background-color: #f9f9f9;
  border-radius: 20px;
  outline: 2px dashed #3f9d00;
  outline-offset: -10px;
  padding: 20px;
}

/* --- サイドバー内の要素（共通）--- */
.sidebar-widget__title {
  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
  margin: 0 0 15px 0;
  border-bottom: 1px solid #ddd;
  padding-bottom: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sidebar-widget__title::before,
.sidebar-widget__title::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url("assets/images/menu-icon.png"); /* ★アイコンパス */
  background-size: contain;
  background-repeat: no-repeat;
  margin: 0 10px;
}

.news-single-sidebar ul,
.activity-single-sidebar ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.news-single-sidebar li a,
.activity-single-sidebar li a {
  display: flex;
  align-items: center;
  padding: 8px 0;
  text-decoration: none;
  color: #333;
  border-bottom: 1px solid #eee;
}

.news-single-sidebar li a::before,
.activity-single-sidebar li a::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  background-image: url("assets/images/menu-icon.png"); /* ★アイコンパス */
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 8px;
}

.news-single-sidebar li:last-child a,
.activity-single-sidebar li:last-child a {
  border-bottom: none;
}

.news-single-sidebar li a:hover,
.activity-single-sidebar li a:hover {
  color: #ff7f00;
}

/* --- サイドバー内の関連サービスタグクラウド --- */
.sidebar-tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-start; /* 左寄せ */
}

.sidebar-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background-color: #3f9d00;
  color: #fff;
  text-decoration: none;
  border-radius: 5px;
  font-size: clamp(12px, 1.5vw, 14px); /* フォントサイズを小さく */
  transition: background-color 0.3s ease, opacity 0.3s ease;
}

.sidebar-tag:hover {
  background-color: rgb(42.5350318471, 106, 0);
  opacity: 0.9;
}

.sidebar-tag__icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.sidebar-tag span {
  font-size: clamp(12px, 1.5vw, 14px); /* サービス名のフォントサイズを小さく */
  line-height: 1.2;
}

/*--------------------------------------------------------------
 記事ナビゲーション（タイトルと本文の間）
--------------------------------------------------------------*/
/* タイトルと本文の間のナビゲーション */
.post-navigation-top {
  position: relative;
  margin: 30px 0;
  max-width: calc(100% - 340px); /* 2カラムレイアウトの左カラム幅に合わせる（サイドバー300px + gap 40px） */
  min-height: 40px; /* ボタンの高さを確保 */
}

/* 前の記事ボタン（左端固定） */
.post-navigation-top .nav-previous {
  position: absolute;
  left: 0;
  top: 0;
}

/* 一覧へ戻るボタン（中央固定） */
.post-navigation-top .nav-archive {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
}

/* 次の記事ボタン（右端固定） */
.post-navigation-top .nav-next {
  position: absolute;
  right: 0;
  top: 0;
}

/* ボタンが存在しない場合は非表示 */
.post-navigation-top .nav-previous:empty,
.post-navigation-top .nav-next:empty,
.post-navigation-top .nav-archive:empty {
  display: none;
}

/* ボタンの基本スタイル */
.post-navigation-top a {
  display: inline-block;
  text-decoration: none;
  font-weight: bold;
  color: #fff;
  background-color: #3f9d00;
  border-radius: 5px;
  font-size: clamp(14px, 1.8vw, 16px);
  padding: 8px 15px;
  white-space: nowrap;
  transition: background-color 0.3s ease;
  border: none;
  box-sizing: border-box;
  overflow: hidden;
}
.post-navigation-top a:hover {
  background-color: rgb(42.5350318471, 106, 0);
}

/*--------------------------------------------------------------
 記事ナビゲーション（本文下）
--------------------------------------------------------------*/
/* 本文下のナビゲーション */
.post-navigation-bottom {
  position: relative;
  margin: 30px 0;
  max-width: calc(100% - 340px); /* 2カラムレイアウトの左カラム幅に合わせる */
  min-height: 40px; /* ボタンの高さを確保 */
}

/* 前の記事ボタン（左端固定） */
.post-navigation-bottom .nav-previous {
  position: absolute;
  left: 0;
  top: 0;
}

/* 一覧へ戻るボタン（中央固定） */
.post-navigation-bottom .nav-archive {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
}

/* 次の記事ボタン（右端固定） */
.post-navigation-bottom .nav-next {
  position: absolute;
  right: 0;
  top: 0;
}

/* ボタンが存在しない場合は非表示 */
.post-navigation-bottom .nav-previous:empty,
.post-navigation-bottom .nav-next:empty,
.post-navigation-bottom .nav-archive:empty {
  display: none;
}

/* ボタンの基本スタイル */
.post-navigation-bottom a {
  display: inline-block;
  text-decoration: none;
  font-weight: bold;
  color: #fff;
  background-color: #3f9d00;
  border-radius: 5px;
  font-size: clamp(14px, 1.8vw, 16px);
  padding: 8px 15px;
  white-space: nowrap;
  transition: background-color 0.3s ease;
  border: none;
  box-sizing: border-box;
  overflow: hidden;
}
.post-navigation-bottom a:hover {
  background-color: rgb(42.5350318471, 106, 0);
}

/*--------------------------------------------------------------
　■ レスポンシブ対応（モバイル・タブレット表示）
　■ mixinを使用: @include mobile, @include tablet
--------------------------------------------------------------*/
@media (max-width: 767px) {
  /* 横スクロール防止 */
  html,
  body {
    overflow-x: hidden;
    max-width: 100vw;
  }
  /* ヘッダー */
  h1.page-title {
    font-size: clamp(20px, 5vw, 32px);
    white-space: nowrap;
  }
  /* コンテナの左右余白をリセット（セクションのpaddingで統一） */
  .service-section .container {
    padding-left: 0;
    padding-right: 0;
  }
  .page-title-container {
    padding: 0 20px;
    height: 50px;
    display: flex;
    align-items: center;
  }
  /*--------------------------------------------------------------
   レスポンシブ対応 / ヘッダー
  --------------------------------------------------------------*/
  /* ギャラリーヘッダーの高さ調整 */
  .site-header--simple-bar {
    min-height: 70px;
  }
  /* トップバーの基本設定 - 常に同じサイズ */
  .header-top-bar {
    padding: 0 15px;
    align-items: center;
    height: 70px !important; /* 常に70px固定 */
  }
  /* 通常時もスクロール時も同じサイズに統一 */
  .header-top-bar .site-logo img {
    height: 40px !important; /* 常に40px固定 */
  }
  .header-top-bar .menu-toggle {
    width: 50px !important; /* 常に50px固定 */
    height: 50px !important;
    font-size: clamp(10px, 1vw, 12px) !important;
  }
  /* 以下、念のため個別指定も上書き */
  .header-top-bar:not(.is-scrolled) {
    height: 70px;
  }
  .header-top-bar:not(.is-scrolled) .site-logo img {
    height: 40px;
  }
  .header-top-bar:not(.is-scrolled) .menu-toggle {
    width: 50px;
    height: 50px;
    font-size: clamp(10px, 1vw, 12px);
  }
  .header-top-bar.is-scrolled {
    height: 70px;
    padding-bottom: 0;
  }
  .header-top-bar.is-scrolled .site-logo img {
    height: 40px;
  }
  .header-top-bar.is-scrolled .menu-toggle {
    width: 50px;
    height: 50px;
    font-size: clamp(10px, 1vw, 12px);
  }
  /* スマホ版：トップページのタイトルをヘッダーバーの下に配置 */
  .home .page-title-container {
    position: absolute;
    top: 70px; /* ヘッダーバーの高さ分下 */
    left: 15px;
    right: 15px;
    display: flex;
    height: auto;
    padding: 10px 15px;
    flex: none;
    max-width: none;
    align-items: center;
    justify-content: center;
    overflow: visible; /* 2行表示を許可 */
    margin: 0;
    z-index: 999; /* ヘッダーバーより下 */
  }
  /* トップページのページタイトル */
  .home .page-title {
    font-size: 20px;
    text-align: center;
    white-space: normal; /* 改行を許可 */
    line-height: 1.3;
    margin: 0;
    padding: 0;
    max-width: 100%;
  }
  .service-archive-grid .service-card__title {
    font-size: clamp(24px, 3.5vw, 32px);
  }
  /* 上段エリア：ロゴと右側コンテンツを縦積みに変更 */
  .footer-info__main {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .header-left {
    align-items: center;
  }
  /* サービスページなど：header-leftの調整 */
  .site-header:not(.home) .header-left {
    gap: 10px; /* ロゴとタイトルの間に10px余白 */
    flex: 1;
    margin-right: 10px; /* メニューボタンとの間に10px余白 */
  }
  /* サービスページなど：page-title-containerにオレンジ背景 */
  .site-header:not(.home) .page-title-container {
    background-color: #ff7f00;
    padding: 10px 10px; /* 上下左右10px */
    max-width: none; /* 幅制限を解除 */
    height: auto;
    flex: 1; /* 残りスペースを使う */
  }
  /* サービスページなど：page-titleのスタイル調整 */
  .site-header:not(.home) .page-title {
    font-size: 20px;
    white-space: normal; /* 2行表示を許可 */
    line-height: 1.3;
    overflow: visible;
    text-overflow: clip;
  }
  /* サービスページ：ロゴのサイズ調整 */
  .site-header:not(.home) .site-logo img {
    height: 40px;
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / トップページ　メインビジュアル
  --------------------------------------------------------------*/
  /* メインビジュアルの高さを調整 */
  .front-page-main-visual {
    height: 90vh; /* 画面の高さの90%に設定 */
    min-height: 90vh; /* 最小の高さも90vhに */
  }
  /* キャプションをタイトル下から写真上までの空間に配置 - ピックアップがある時も常に表示 */
  .front-page-main-visual .swiper-slide__caption {
    display: block !important; /* 常に表示 */
    position: absolute !important;
    top: 130px !important; /* ヘッダー70px + タイトル50px + 間隔10px */
    bottom: 50% !important; /* 写真上辺まで（写真は下から50%の位置） */
    left: 15px !important;
    right: 15px !important;
    transform: none !important;
    width: auto;
    max-width: none;
    text-align: center;
    z-index: 10 !important; /* ピックアップより前面に */
    font-size: clamp(24px, 6vw, 64px);
    padding: 0 20px;
    white-space: normal; /* 通常の折り返し（<br>タグのみ有効） */
    word-wrap: break-word; /* 長い単語を折り返す */
    overflow-wrap: break-word; /* 長い単語を折り返す */
  }
  /* 画面の高さが狭い場合（550px以下）はキャプションを非表示 */
}
@media (max-width: 767px) and (max-height: 550px) {
  .front-page-main-visual .swiper-slide__caption {
    display: none !important;
  }
  /* スタッフ写真を大きく表示（画面いっぱいに） */
  .random-staff-photo {
    width: 90% !important;
    max-width: 500px !important;
  }
}
@media (max-width: 767px) {
  /* スタッフ写真を大きく表示 */
  .random-staff-photo {
    left: 50%;
    right: auto;
    bottom: 0 !important; /* メインビジュアルの下端まで */
    transform: translateX(-50%);
    width: 80%;
    max-width: 400px;
    height: auto !important; /* 高さを自動調整 */
  }
  /* ピックアップを中央配置 */
  .main-visual-pickup {
    bottom: 20px !important; /* 下端から20px */
    left: 20px;
    right: 20px;
    transform: none;
    max-width: none;
    width: auto;
  }
  /* ピックアップのサムネイル画像を狭く */
  .main-visual-pickup__thumbnail {
    width: 30% !important;
  }
  /* ピックアップの発信元ラベルを非表示 */
  .main-visual-pickup__source {
    display: none;
  }
  /* ピックアップの抜粋を非表示 */
  .main-visual-pickup__excerpt {
    display: none;
  }
}
/*======================================================================
  中古福祉用具 - 一覧ページ
======================================================================*/
/* 中古福祉用具専用スタイル - にっかいギャラリーと同じスタイル */
.welfare-equipment-archive-container {
  padding: 40px 16px 40px 16px !important; /* 上部にヘッダー分の余白（40px）、左右16px */
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 auto !important;
}

/* ページヘッダー */
.welfare-equipment-archive-container .page-header {
  margin: 0 130px 30px 130px !important;
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
}

.welfare-equipment-archive-container .page-header .section-title {
  text-align: center !important;
  margin-bottom: 0 !important;
  flex: 0 0 60% !important;
}

.welfare-equipment-archive-container .page-header .archive-description {
  text-align: left !important;
  margin: 0 !important;
  flex: 1 !important;
}

/* フィルター */
.equipment-filters {
  background-color: #f0f0f0;
  padding: 20px;
  margin-bottom: 40px;
  border-radius: 8px;
}

.equipment-filters__form {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}

.filter-group {
  display: flex;
  flex-direction: column;
}

.filter-group__label {
  font-weight: bold;
  font-size: clamp(16px, 2vw, 20px);
  margin-bottom: 5px;
  color: #000;
}

.filter-group__select {
  appearance: none;
  -webkit-appearance: none;
  min-width: 220px;
  padding: 10px 40px 10px 15px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  font-size: clamp(16px, 2vw, 20px);
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%208l5%205%205-5z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}

.filter-group__button {
  padding: 10px 25px;
  background-color: #ff7f00;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  font-weight: 400;
  cursor: pointer;
  align-self: flex-end;
}

.filter-group__button:hover {
  background-color: #e67300;
}

/* アーカイブページの2カラムレイアウト */
.equipment-archive-layout {
  display: grid !important;
  grid-template-columns: 320px 1fr !important;
  gap: 40px !important;
  margin-top: 30px !important;
}

.equipment-archive-sidebar {
  position: sticky !important;
  top: 20px !important;
}

.equipment-archive-sidebar .sidebar-widget {
  background-color: #f9f9f9 !important;
  border-radius: 20px !important;
  outline: 2px dashed #3f9d00 !important;
  outline-offset: -10px !important;
  padding: 20px !important;
  margin-bottom: 20px !important;
}

.equipment-archive-sidebar .sidebar-widget:last-child {
  margin-bottom: 0 !important;
}

.equipment-archive-sidebar .sidebar-widget__title {
  font-size: clamp(16px, 2vw, 20px) !important;
  font-weight: bold !important;
  margin: 0 0 15px 0 !important;
  border-bottom: 1px solid #ddd !important;
  padding-bottom: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.equipment-archive-sidebar .recent-equipment-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.equipment-archive-sidebar .recent-equipment-list li {
  border-bottom: 1px solid #ddd !important;
}

.equipment-archive-sidebar .recent-equipment-list li:last-child {
  border-bottom: none !important;
}

.equipment-archive-sidebar .recent-equipment-list li a {
  display: block !important;
  padding: 10px 0 !important;
  text-decoration: none !important;
  color: #333 !important;
  transition: color 0.3s !important;
}

.equipment-archive-sidebar .recent-equipment-list li a:hover {
  color: #ff7f00 !important;
}

.equipment-archive-sidebar .recent-equipment-name {
  display: block !important;
  font-size: clamp(14px, 1.8vw, 16px) !important;
  margin-bottom: 5px !important;
  text-align: left !important;
}

.equipment-archive-sidebar .recent-equipment-price {
  display: block !important;
  font-size: clamp(11px, 1.2vw, 13px) !important;
  color: #666 !important;
  font-weight: bold !important;
  text-align: right !important;
}

/* フィルターセクション */
.equipment-archive-sidebar .filter-section {
  margin-bottom: 20px !important;
  padding-bottom: 20px !important;
  border-bottom: 1px solid #ddd !important;
}

.equipment-archive-sidebar .filter-section:last-of-type {
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

.equipment-archive-sidebar .filter-section-title {
  font-size: clamp(16px, 2vw, 20px) !important;
  font-weight: bold !important;
  margin: 0 0 10px 0 !important;
  color: #333 !important;
}

.equipment-archive-sidebar .category-checkbox-list,
.equipment-archive-sidebar .stock-checkbox-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.equipment-archive-sidebar .category-checkbox-list li,
.equipment-archive-sidebar .stock-checkbox-list li {
  margin-bottom: 10px !important;
}

.equipment-archive-sidebar .category-checkbox-list label,
.equipment-archive-sidebar .stock-checkbox-list label {
  display: flex !important;
  align-items: center !important;
  cursor: pointer !important;
  font-size: clamp(14px, 1.8vw, 16px) !important;
}

.equipment-archive-sidebar .category-checkbox-list input[type=checkbox],
.equipment-archive-sidebar .stock-checkbox-list input[type=checkbox] {
  margin-right: 8px !important;
}

.equipment-archive-sidebar .price-range-inputs {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.equipment-archive-sidebar .price-input {
  width: 100px !important;
  padding: 8px !important;
  border: 1px solid #ddd !important;
  border-radius: 4px !important;
  font-size: clamp(14px, 1.8vw, 16px) !important;
}

.equipment-archive-sidebar .btn-filter-submit {
  width: 100% !important;
  padding: 12px 20px !important;
  background-color: #ff7f00 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  font-family: "Dela Gothic One", sans-serif !important;
  font-size: clamp(24px, 3.5vw, 32px) !important;
  font-weight: 400 !important;
  transition: background-color 0.3s !important;
}

.equipment-archive-sidebar .btn-filter-submit:hover {
  background-color: #e67300 !important;
}

.equipment-archive-main {
  min-width: 0 !important;
}

/* グリッド */
.welfare-equipment-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.equipment-card {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  text-decoration: none !important;
  color: #333 !important;
  display: block !important;
  transition: box-shadow 0.2s !important;
}

.equipment-card:hover {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
}

.equipment-card__link {
  text-decoration: none !important;
  color: inherit !important;
  display: block !important;
}

.equipment-card__image-wrapper {
  width: 100% !important;
  aspect-ratio: 4/3 !important;
  position: relative !important;
  overflow: hidden !important;
  background-color: #f5f5f5 !important;
}

.equipment-card__image {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.equipment-card__no-image {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: #e0e0e0 !important;
  color: #999 !important;
}

.equipment-card__new-label {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 3px 10px;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  line-height: 1;
  border-radius: 4px;
  background-color: #ff0000;
  color: #fff;
}

.equipment-card__type {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 3px 10px;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  line-height: 1;
  border-radius: 4px;
  background-color: #2196f3;
  color: #fff;
}

.equipment-card__type--new {
  background-color: #2196f3;
}

.equipment-card__type--used {
  background-color: #ff9800;
}

.equipment-card__type--like_new {
  background-color: #9c27b0;
}

.equipment-card__status {
  position: absolute;
  bottom: 10px;
  right: 10px;
  padding: 3px 10px;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: bold;
  line-height: 1;
  border-radius: 4px;
  background-color: #4caf50;
  color: #fff;
}

.equipment-card__status--negotiating {
  background-color: #ff9800;
}

.equipment-card__status--sold {
  background-color: #9e9e9e;
}

.equipment-card__status--order {
  background-color: #03a9f4;
}

.equipment-card__content {
  padding: 15px !important;
}

.equipment-card__inquiry-number {
  font-size: clamp(14px, 1.8vw, 16px) !important;
  color: #757575 !important;
  margin: 5px 0 !important;
}

.equipment-card__inquiry-number span {
  font-weight: bold !important;
}

.equipment-card__title {
  font-size: clamp(16px, 2vw, 20px) !important;
  font-weight: normal !important;
  margin: 10px 0 !important;
  line-height: 1.2 !important;
}

.equipment-card__price {
  font-size: clamp(16px, 2vw, 20px) !important;
  color: #000 !important;
  font-weight: bold !important;
  margin: 5px 0 !important;
  text-align: right !important;
}

/* 商品がない場合 */
.no-equipment {
  text-align: center !important;
  padding: 60px 20px !important;
  color: #999 !important;
  font-size: clamp(16px, 2vw, 20px) !important;
}

/*======================================================================
  中古福祉用具 - 詳細ページ
======================================================================*/
.welfare-equipment-single-container {
  padding: 40px 16px 40px 16px; /* 上部にヘッダー分の余白（40px）、左右16px */
}

.equipment-detail__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ヘッダー部分（画像+基本情報） */
.equipment-detail__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-bottom: 60px;
}

/* 画像エリア */
.equipment-detail__images {
  position: sticky;
  top: 100px;
  align-self: start;
}

.equipment-main-image-wrapper {
  position: relative;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  background-color: #f5f5f5;
  margin-bottom: 15px;
}

.equipment-main-image {
  width: 100%;
  height: auto;
  display: block;
  transition: opacity 0.3s ease-in-out;
}

.equipment-main-image.fade-out {
  opacity: 0;
}

/* 売約済みオーバーレイ */
.sold-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
}

.sold-label {
  font-size: 48px;
  font-weight: bold;
  color: #fff;
  transform: rotate(-15deg);
  border: 5px solid #fff;
  padding: 20px 40px;
}

/* サムネイルギャラリー */
/* サムネイルギャラリーのスクロールコンテナ */
.equipment-thumbnail-container {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
}

.equipment-thumbnail-gallery {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE and Edge */
  flex: 1;
}

.equipment-thumbnail-gallery::-webkit-scrollbar {
  display: none; /* Chrome, Safari, Opera */
}

.equipment-thumbnail {
  flex-shrink: 0;
  width: 100px;
  height: 100px;
  object-fit: contain;
  border-radius: 4px;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color 0.3s;
}

.equipment-thumbnail:hover,
.equipment-thumbnail.active {
  border-color: #ff7f00;
}

/* メイン画像の左右ナビゲーションボタン */
.main-image-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 10;
  transition: all 0.3s;
  font-size: 0;
  color: transparent;
  outline: none;
}

.main-image-nav-prev {
  left: 10px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid #ff7f00;
}

.main-image-nav-prev:hover {
  border-right-color: #e67300;
}

.main-image-nav-next {
  right: 10px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 10px solid #ff7f00;
}

.main-image-nav-next:hover {
  border-left-color: #e67300;
}

/* サムネイルのスクロールボタン */
.thumbnail-scroll-btn {
  width: 0;
  height: 0;
  background: none;
  border: none;
  cursor: pointer;
  transition: all 0.3s;
  flex-shrink: 0;
  font-size: 0;
  color: transparent;
  outline: none;
}

.thumbnail-scroll-prev {
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid #ff7f00;
}

.thumbnail-scroll-prev:hover {
  border-right-color: #e67300;
}

.thumbnail-scroll-next {
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 10px solid #ff7f00;
}

.thumbnail-scroll-next:hover {
  border-left-color: #e67300;
}

.thumbnail-scroll-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

/* 基本情報エリア */
.equipment-detail__info {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.equipment-detail__title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: 32px;
  margin: 0 0 20px 0;
  color: #333;
}

.equipment-detail__meta p {
  margin: 15px 0;
  font-size: 16px;
  line-height: 1.8;
}

.equipment-detail__meta strong {
  display: inline-block;
  min-width: 120px;
  color: #666;
}

.inquiry-number-value {
  font-size: 20px;
  font-weight: bold;
  color: #ff7f00;
}

.price-value {
  font-size: 20px;
  font-weight: bold;
  color: #000;
}

.equipment-price {
  text-align: right;
}

.equipment-sale-price {
  text-align: right;
}

.equipment-retail-price {
  text-align: right;
}

.retail-price-value {
  font-size: 16px;
  color: #999;
  text-decoration: line-through;
}

/* 在庫ステータスバッジ */
.status-badge {
  display: inline-block;
  padding: 5px 15px;
  border-radius: 3px;
  font-weight: bold;
  color: #fff;
}

.status-available .status-badge {
  background-color: #4caf50;
}

.status-negotiating .status-badge {
  background-color: #ff9800;
}

.status-sold .status-badge {
  background-color: #9e9e9e;
}

/* 問い合わせボタン */
.equipment-inquiry-button-wrapper {
  margin: 30px 0;
}

.equipment-inquiry-button-wrapper--bottom {
  text-align: center;
  margin: 60px 0 40px 0;
}

.btn-inquiry {
  display: inline-block;
  padding: 15px 40px;
  background-color: #ff7f00;
  color: #fff;
  text-decoration: none;
  border-radius: 5px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  transition: all 0.3s;
}

.btn-inquiry:hover {
  background-color: #e67300;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 127, 0, 0.3);
}

/* セクション */
.equipment-section {
  margin-bottom: 60px;
}

.equipment-section .section-title {
  font-size: 28px;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 3px solid #ff7f00;
}

.equipment-section .section-content {
  line-height: 1.8;
  font-size: 16px;
}

/* 仕様テーブル */
.specifications-table table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
}

.specifications-table th,
.specifications-table td {
  padding: 12px;
  border: 1px solid #ddd;
  text-align: left;
}

.specifications-table th {
  background-color: #f5f5f5;
  font-weight: bold;
  width: 30%;
}

/* 戻るリンク */
.equipment-back-link {
  text-align: center;
  margin: 40px 0;
}

.btn-secondary {
  display: inline-block;
  padding: 12px 30px;
  background-color: #666;
  color: #fff;
  text-decoration: none;
  border-radius: 5px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  transition: all 0.3s;
}

.btn-secondary:hover {
  background-color: #555;
}

/* 画像なしの場合 */
.equipment-no-image {
  width: 100%;
  height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #e0e0e0;
  color: #999;
  font-size: 18px;
  border-radius: 8px;
}

/*======================================================================
  レスポンシブ対応 - 中古福祉用具
======================================================================*/
@media (min-width: 768px) and (max-width: 1023px) {
  .welfare-equipment-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .welfare-equipment-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .welfare-equipment-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .equipment-detail__header {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .equipment-detail__images {
    position: static;
  }
  .equipment-detail__title {
    font-size: 24px;
  }
  .sold-label {
    font-size: 32px;
    padding: 15px 30px;
  }
  .specifications-table th {
    width: 40%;
    height: auto;
  }
  .random-staff-photo img {
    width: 100%;
    height: auto;
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / トップページ　私たちについて（About）
  --------------------------------------------------------------*/
  .about-section__layout {
    flex-direction: column;
    gap: 30px;
  }
  .about-section__image,
  .about-section__text {
    flex: none;
    max-width: 100%;
  }
  .about-section__text {
    padding: 15px;
  }
  .about-section__subtitle {
    font-size: 20px;
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / トップページ　お知らせ（news）
  --------------------------------------------------------------*/
  /* 装飾画像の表示制御 - 4つ全て表示 */
  .news-deco-image--tl {
    width: 120px; /* 左上の装飾画像 */
    top: 3%;
    left: 0;
  }
  .news-deco-image--tr {
    width: 120px; /* 右上の装飾画像 */
    top: 3%;
    right: 0;
  }
  .news-deco-image--bl {
    width: 120px; /* 左下の装飾画像 */
    bottom: 10%;
    left: 0;
  }
  .news-deco-image--br {
    width: 250px; /* 右下のスタッフ画像 */
    bottom: -30px;
    right: 0;
  }
  /* お知らせリストの吹き出し尻尾を非表示 */
  .news-list::after {
    display: none;
  }
  /* お知らせアイテムを縦積みレイアウトに変更 */
  .news-item {
    flex-direction: column;
    align-items: flex-start;
    padding: 15px 10px;
  }
  .news-item__date {
    margin-right: 0;
    margin-bottom: 8px;
    font-size: 14px;
  }
  .news-item__meta {
    margin-left: 0;
    margin-bottom: 8px;
    flex-wrap: wrap;
  }
  .news-item__source {
    display: none;
  }
  .news-item__title {
    font-size: 16px;
    margin-top: 0;
  }
  /* ボタン周りの調整 */
  .news-section__button-wrapper {
    text-align: center;
  }
  .button-pretext {
    font-size: 14px;
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / トップページ　想い（mission）
  --------------------------------------------------------------*/
  /* 装飾画像を縮小 */
  .mission-deco-image {
    width: 100px; /* 250pxから100pxに縮小 */
  }
  .mission-deco-image--bl {
    bottom: 15%;
    left: 5%;
  }
  .mission-deco-image--tr {
    top: 15%;
    right: 5%;
  }
  /* スタッフ写真は現状維持（レスポンシブ対応済み） */
  .mission-pose-image {
    max-width: 100%; /* スマホでは画面幅に合わせる */
  }
  .mission-pose-image img {
    max-height: 300px; /* 高さを少し調整 */
  }
  /* テキストコンテンツの調整 */
  .mission-subtitle {
    font-size: 18px;
  }
  .mission-button-wrapper {
    margin-top: 15px;
  }
  .button-pretext {
    font-size: 14px;
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / トップページ　サービス（services）
  --------------------------------------------------------------*/
  /* セクション全体の調整 */
  .front-page-services {
    padding: 40px 16px 0 16px;
    position: relative;
  }
  /* コンテナの左右パディングを削除 */
  .front-page-services .container {
    padding-left: 0;
    padding-right: 0;
    display: flex;
    flex-direction: column;
  }
  /* 縦並びレイアウト */
  .services-layout {
    flex-direction: column;
    gap: 30px;
    align-items: stretch;
  }
  /* タイトルをセクションの左右一杯に配置 */
  .front-page-services .section-title {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 20px;
    white-space: normal;
    line-height: 1.2;
    text-align: center;
    padding: 0;
  }
  /* 画像コラージュを画面幅いっぱいに横並び配置 */
  .services-image-collage {
    flex-basis: auto;
    width: 100%;
    margin: 0;
    display: flex;
    flex-direction: row;
    gap: 0;
  }
  /* テキストコンテンツ - ポーズ写真分の余白を確保 */
  .services-text-content {
    flex: none;
    width: 100%;
    padding: 0;
    margin: 0;
    padding-bottom: 270px;
  }
  /* 3枚のサービス写真を横並び、縦長トリミング */
  .services-image-collage img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    object-position: center;
    display: block;
  }
  .collage-item {
    flex: 1;
    margin: 0;
    padding: 0;
    line-height: 0;
  }
  /* ポーズ画像をセクション下端に接地 */
  .services-pose-image {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 250px;
    height: 250px;
    margin: 0;
    z-index: 10;
  }
  .services-pose-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: bottom;
  }
  /* 右上のワンポイント画像を縮小 */
  .services-one-point-image {
    width: 100px;
    top: 10px;
    right: 5px;
  }
  /* レイアウトを縦並びに変更 */
  .company-section__layout {
    flex-direction: column;
    gap: 30px;
  }
  .company-section__text-content,
  .company-section__image {
    flex-basis: auto;
  }
  /* 背景画像の高さを調整 */
  .company-section__image {
    height: 250px;
    order: -1; /* 画像を上に移動 */
  }
  /* アイテムリストの調整 */
  .company-section__item {
    margin-top: 25px;
  }
  .company-item__headline {
    font-size: 18px;
    margin-top: 25px;
  }
  /* ボタン周りの調整 */
  .company-item__button-wrapper {
    margin-top: 8px;
  }
  .button-pretext {
    font-size: 14px;
  }
  .cta-button {
    font-size: clamp(20px, 3vw, 28px);
    padding: 8px 15px;
  }
  /* ポーズ画像のサイズと位置調整 */
  .company-section__pose-image {
    width: 250px;
    bottom: 0;
    left: 0;
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / トップページ　会社情報（company）
  --------------------------------------------------------------*/
  /* タイトルを中央配置 */
  .front-page-company .section-title {
    text-align: center;
    white-space: normal; /* 改行を許可 */
  }
  /* レイアウトを縦並びに変更 */
  .company-section__layout {
    flex-direction: column;
    gap: 30px;
  }
  .company-section__text-content,
  .company-section__image {
    flex-basis: auto;
  }
  /* 1. 会社写真を確実に表示 */
  .company-section__image {
    height: 250px !important;
    order: -1; /* 画像を上に移動 */
    display: block !important; /* 強制的に表示 */
    visibility: visible !important; /* 確実に見える状態に */
    opacity: 1 !important; /* 透明度を確実に1に */
    background-size: cover;
    background-position: center;
    border-radius: 8px;
    width: 100%;
  }
  /* アイテムリストの調整 */
  .company-section__item {
    margin-top: 25px;
  }
  .company-item__headline {
    font-size: 18px;
    margin-top: 25px;
  }
  /* ボタン周りの調整 */
  .company-item__button-wrapper {
    margin-top: 8px;
  }
  .button-pretext {
    font-size: 14px;
  }
  .cta-button {
    font-size: clamp(20px, 3vw, 28px);
    padding: 8px 15px;
  }
  /* 2. スタッフ写真を画面左端に配置、サイズを250pxに */
  .company-section__pose-image {
    width: 250px;
    bottom: 0;
    left: 0; /* 画面左端に設置 */
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / マップ（map-section）
  --------------------------------------------------------------*/
  /* セクション全体の調整 */
  .map-section {
    padding: 40px 0;
  }
  /* タイトルを中央配置 */
  .map-section .section-title {
    text-align: center;
  }
  /* タブボタンを横スクロール可能に */
  .map-tab-buttons {
    justify-content: flex-start; /* 左揃えに変更 */
    margin-left: 0;
    gap: 5px;
    flex-wrap: nowrap; /* 折り返しを無効化 */
    overflow-x: auto; /* 横スクロールを有効 */
    padding: 0 15px; /* 左右にパディング */
    scrollbar-width: none; /* Firefox用スクロールバー非表示 */
    -ms-overflow-style: none; /* IE用スクロールバー非表示 */
  }
  /* Webkit系ブラウザ用スクロールバー非表示 */
  .map-tab-buttons::-webkit-scrollbar {
    display: none;
  }
  .map-tab-button {
    padding: 8px 15px;
    font-size: 14px;
    flex-shrink: 0; /* ボタンが縮まないように */
    white-space: nowrap; /* テキストの折り返しを防ぐ */
  }
  /* タブコンテンツの調整 */
  .map-tab-contents {
    padding: 20px 15px;
    max-width: none; /* 最大幅制限を解除 */
    border-top: none; /* 上の境界線を削除してタブと繋げる */
  }
  /* レイアウトを縦並びに変更 */
  .map-section__layout {
    flex-direction: column;
    gap: 25px;
  }
  /* 左カラム（写真・地図）の調整 */
  .map-section__left-column {
    order: -1; /* 上に移動 */
    width: 100%;
    flex-basis: 100%;
    gap: 15px;
  }
  /* 地図のサイズ調整 */
  .map-section__map,
  .map-section__info {
    flex-basis: auto;
  }
  .map-section__map iframe {
    height: 250px; /* 高さを縮小 */
  }
  /* 写真のサイズ調整 */
  .location-photo img {
    max-height: 180px;
  }
  /* 拠点名の調整 */
  .map-section__location-name {
    font-size: 20px;
    margin-bottom: 15px;
    text-align: center;
  }
  /* 詳細リストの調整 */
  .location-details-list {
    font-size: 14px;
  }
  .location-details-list li {
    display: flex !important;
    align-items: flex-start !important;
    margin-bottom: 10px;
    padding-bottom: 8px;
  }
  .location-details-list strong {
    flex-basis: 90px !important; /* 項目列の幅を90pxに */
    flex-shrink: 0 !important;
    margin-bottom: 0;
    color: #333;
    text-align: justify !important;
    text-align-last: justify !important;
  }
  .location-details-list span {
    flex-grow: 1;
    padding-left: 10px;
  }
  /*--------------------------------------------------------------
  レスポンシブ対応 / 問い合わせセクション
  --------------------------------------------------------------*/
  /* セクション全体の調整 */
  .contact-section {
    padding: 30px 16px;
    position: relative; /* 絶対配置の基準点を明確に */
    overflow: visible !important; /* タイトルが切れないようにする */
  }
  .contact-section .container {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
  }
  /* タイトルを中央配置（既に中央だが確実に） */
  .contact-section .section-title {
    text-align: center;
    font-size: 24px;
    padding-top: 10px; /* タイトル上部に余白を追加 */
    margin-top: 40px;
  }
  /* 説明文の調整 */
  .contact-section__description {
    font-size: 16px;
    margin: 20px auto;
    max-width: 90%;
  }
  /* 背景テキストのサイズ調整 */
  .contact-section__bg-text {
    font-size: 8rem; /* 小さくする */
    opacity: 0.1; /* より薄くする */
  }
  /* 装飾画像を縮小 */
  .contact-one-point-image {
    width: 40%;
  }
  .contact-one-point-image--top-left {
    top: 5%;
    left: 5%;
  }
  .contact-one-point-image--top-right {
    top: 5%;
    right: 5%;
  }
  /* スタッフ写真の親コンテナも調整 */
  .contact-section__person-images {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
  }
  /* スタッフ写真：左側を非表示、右側をセクション下端・右端に */
  .contact-person-image--left {
    display: none; /* 左側は非表示 */
  }
  .contact-person-image--right {
    position: absolute;
    bottom: 0 !important; /* セクションの下端に配置 */
    right: 0 !important; /* セクションの右端に配置 */
    top: auto; /* topの指定を無効化 */
    left: auto; /* leftの指定も無効化 */
    width: 180px !important; /* サイズを小さく */
    height: auto;
  }
  .contact-person-image--right .contact-person-image-wrapper {
    height: auto !important;
  }
  .contact-person-image--right .person-image {
    width: 100%;
    height: auto;
    object-fit: contain; /* トリミングをなくして全体を表示 */
    display: block;
  }
  /* お問い合わせ方法を縦並びに */
  .contact-section__methods {
    flex-direction: column;
    gap: 25px;
    align-items: center;
  }
  .contact-method {
    max-width: 100%;
    width: 100%;
  }
  .contact-method__content {
    width: 100%;
    padding: 15px;
  }
  .contact-method h3 {
    font-size: 20px;
    margin-bottom: 15px;
  }
  /* 電話番号の調整 */
  .contact-method--phone .phone-number {
    font-size: 20px !important; /* 1行で表示するためにサイズを縮小 */
    letter-spacing: 0.5px !important;
    white-space: nowrap !important; /* 改行させない */
  }
  .contact-method--phone .phone-block {
    width: 100% !important; /* 枠を広く */
    max-width: 100% !important;
    padding: 12px 10px !important; /* パディングを調整 */
  }
  .contact-method--phone .reception-time {
    font-size: 14px;
  }
  /* ボタンの調整 */
  .contact-method--form {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  .contact-method--form .cta-button {
    font-size: clamp(20px, 3vw, 28px);
    padding: 12px 25px;
    width: auto;
    display: block !important;
    margin: 0 auto !important; /* 中央配置 */
  }
  .contact-method--form .cta-button__icon {
    font-size: 1.5em;
  }
  .contact-note {
    font-size: 12px;
    margin-bottom: 10px;
    text-align: center !important;
    word-break: keep-all !important; /* 単語の途中で改行しない */
    white-space: normal !important;
  }
  .contact-note::before {
    content: "＼" !important;
    margin: 0 5px !important;
  }
  .contact-note::after {
    content: "／" !important;
    margin: 0 5px !important;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / 企業理念ページ
    --------------------------------------------------------------*/
  /* トップセクション */
  .philosophy-hero {
    min-height: 60vh;
  }
  .philosophy-hero__container {
    padding-top: 100px; /* ヘッダ領域分下へ移動 */
  }
  .philosophy-hero__headline {
    font-size: 32px;
    width: auto;
    margin: 0 0 20px 20px;
    line-height: 1.5;
    text-align: left; /* 左寄せに変更 */
    text-align-last: left; /* 均等割り付けを解除 */
  }
  .philosophy-hero__main-text {
    font-size: 20px;
    margin: 80px 20px 40px 20px;
    line-height: 1.7;
  }
  /* 背景テキストを非表示 */
  .philosophy-hero__bg-text {
    display: none;
  }
  /* 理念・社訓セクション */
  .philosophy-motto .section-title {
    width: auto;
    padding: 5px 20px;
    font-size: 24px;
  }
  .philosophy-motto__text {
    font-size: 28px;
    padding: 10px 20px;
  }
  .philosophy-motto__text::before {
    height: 20px;
  }
  .motto-text--spaced {
    font-size: 36px;
    line-height: 1.5;
    padding: 0 20px;
  }
  /* 行動指針セクション */
  .philosophy-principles .section-title {
    width: auto;
    padding: 5px 20px;
    font-size: 24px;
  }
  .principles-item__headline {
    font-size: 24px;
    padding: 0 20px;
  }
  .principles-item__text {
    font-size: 18px;
    padding-left: 30px;
    padding-right: 20px;
    line-height: 1.6;
  }
  /* 理念・社訓セクション */
  .philosophy-motto .section-title {
    width: auto;
    max-width: 50%; /* 画面の半分に制限 */
    padding: 5px 20px;
    font-size: 24px;
    text-align: justify; /* 均等割り付け */
    text-align-last: justify; /* 最終行も均等割り付け */
  }
  .philosophy-motto__text {
    font-size: 28px;
    padding: 10px 20px;
  }
  .philosophy-motto__text::before {
    height: 20px;
  }
  .motto-text--spaced {
    font-size: 30px;
    line-height: 1.5;
    padding: 0 20px;
    display: block; /* 縦並びに変更 */
    white-space: normal; /* 改行を有効にする */
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / フッター
    --------------------------------------------------------------*/
  /* 上段エリア全体のpadding調整 */
  .footer-info {
    padding: 20px 15px; /* PC版の30px 40pxから縮小 */
  }
  .footer-info__logo-area {
    margin-right: 0;
    margin-bottom: 20px;
  }
  .footer-info__content-area {
    width: 100%;
  }
  .footer-info__company-name {
    text-align: center;
  }
  /* 上段エリア：白いボックスの中身を縦積みに変更 */
  .footer-info__contact {
    flex-direction: column;
    text-align: center;
    padding: 15px 20px; /* PC版の20px 40pxから縮小 */
    margin: auto;
  }
  .contact-block {
    margin-left: 0;
    margin-bottom: 20px;
  }
  .contact-block:last-child {
    margin-bottom: 0;
  }
  /* 上段エリア：スマホ表示では区切り線を横線に変更 */
  .footer-info__contact .contact-block + .contact-block {
    border-left: none;
    border-top: 1px solid #eee;
    margin-left: 0;
    padding-left: 0;
    margin-top: 15px;
    padding-top: 15px;
  }
  /* タイトルのサイズ調整 */
  .contact-block__title,
  .contact-block__fax-title {
    font-size: 18px; /* PC版の20pxから縮小 */
  }
  /* 電話番号のサイズ調整 */
  .footer-info__contact .contact-block__number {
    font-size: 28px; /* PC版の36pxから縮小 */
  }
  /* 住所・FAX番号のサイズ調整 */
  .footer-info__contact .contact-block__address,
  .footer-info__contact .contact-block__fax-number {
    font-size: 16px; /* PC版の20pxから縮小 */
  }
  /* 中段エリア：2カラムレイアウトを1列に */
  .footer-services__layout {
    display: block; /* スマホ版ではグリッドを解除 */
    padding: 0 15px;
  }
  /* 中段エリア：サービス一覧を横2列に変更 */
  .footer-services__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 5px;
    justify-items: center;
  }
  .footer-services__grid .service-item {
    width: 80%;
    aspect-ratio: 1/1;
    padding: 10px;
  }
  .service-item__icon {
    max-height: 48px;
  }
  /* リンクのサイズ調整 */
  .footer-services__links a {
    font-size: 16px; /* PC版の20pxから縮小 */
  }
  .service-item {
    width: auto;
  }
  /* 中段エリア：リンクリストの左余白とアイコンとの間隔 */
  .footer-services__links {
    padding-left: 15px; /* アイコンボタンの左余白に合わせる */
    margin-top: 30px; /* アイコンボタンとの間隔を広げる */
  }
  .footer-services__links ul {
    text-align: left; /* 左揃えを確保 */
    padding-left: 0; /* ulのデフォルトpaddingをリセット */
  }
  /* 電話・FAXアイコンの位置調整 */
  .contact-block__icon {
    vertical-align: middle; /* 縦中央揃え */
  }
  .contact-block__title,
  .contact-block__fax-title {
    display: flex;
    align-items: baseline; /* 確実に中央揃え */
  }
  /*--------------------------------------------------------------
  　トップページ / レスポンシブ対応　背景文字列のサイズ変更
  --------------------------------------------------------------*/
  /* 各セクションの背景テキストのサイズと行間調整 */
  .section-bg-text {
    font-size: 4rem; /* サイズを小さく */
  }
  .section-bg-text span {
    line-height: 1.1; /* 行間を狭く */
  }
  /* 問い合わせセクションの背景テキストのサイズ調整 */
  .contact-section__bg-text {
    font-size: 6rem; /* さらに小さくする（8rem → 4rem） */
    opacity: 0.1;
  }
  .contact-section__bg-text span {
    line-height: 1.1; /* 行間を狭く */
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / グローバルナビゲーション（メニュー画面）
    --------------------------------------------------------------*/
  /* メニュー内のヘッダー調整 */
  .global-nav__header {
    padding: 15px;
    flex-wrap: wrap;
    gap: 10px;
  }
  /* ロゴとサイト名 */
  .global-nav__logo {
    margin-left: 0 !important;
  }
  .global-nav__logo a {
    gap: 10px;
  }
  .global-nav__logo img {
    height: 40px;
  }
  .global-nav__logo span {
    font-size: 20px;
  }
  /* 電話番号とお問い合わせリンク */
  .global-nav__contact {
    order: 3;
    width: 100%;
    margin-left: 0 !important;
    text-align: center;
  }
  .global-nav__contact p {
    margin-left: 0 !important;
    font-size: 16px;
  }
  /* 「とじる」ボタン - 正円を維持 */
  .global-nav .menu-toggle {
    width: 50px;
    height: 50px;
    font-size: 11px;
    flex-shrink: 0;
  }
  /* メニューリスト本体 */
  .global-nav__body {
    padding: 20px 15px;
  }
  /* メニューリストの幅を制限 */
  .global-nav__list {
    max-width: 100%;
    width: 100%;
    padding-left: 20px; /* 左側に余白を追加 */
  }
  /* メニュー項目のフォントサイズ調整 */
  .global-nav__list > .menu-item {
    font-size: 18px;
    margin-bottom: 15px;
    display: block;
    width: 100%;
  }
  .global-nav__list > .menu-item > a {
    width: auto;
    margin-left: 0;
    max-width: 100%;
  }
  .global-nav__list a {
    gap: 8px;
  }
  /* 2階層目のメニュー項目 */
  .global-nav__list .sub-menu .menu-item {
    font-size: 16px;
    margin-bottom: 10px;
    width: 100%;
  }
  .global-nav__list .sub-menu {
    padding-left: 20px;
    margin-left: 0;
    display: block;
    margin-top: 10px;
    grid-template-columns: 1fr;
    width: 100%;
    max-width: 100%;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / サービス一覧ページ（ハブページ）
    --------------------------------------------------------------*/
  /* コンテナの余白調整 */
  .service-archive-container {
    padding: 80px 0 20px 0; /* 上部にヘッダー分の余白（80px）、左右0 */
  }
  /* ページヘッダー（「サービスを選択してください」） */
  .page-header {
    padding: 0 15px; /* 左右に余白を追加 */
    margin-top: 0;
    margin-bottom: 20px;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / ヘッダテキスト（page_headline）
    --------------------------------------------------------------*/
  .site-header__headline {
    bottom: 5px;
    left: 50%; /* 中央配置のため */
    right: auto; /* PC版のrightをリセット */
    transform: translateX(-50%); /* 中央配置 */
    width: 100%;
    padding: 10px 15px;
    font-size: clamp(24px, 6vw, 64px);
    text-align: right; /* テキストを中央揃え */
  }
  .page-header .section-title {
    font-size: 24px; /* 28px → 24px にさらに縮小 */
    padding: 8px 15px; /* 左右のパディングも調整 */
    margin-bottom: 20px;
    max-width: 100%; /* 幅を制限 */
    width: 250px;
  }
  /* サービスカードのグリッド */
  .service-archive-grid {
    gap: 20px;
    padding: 0; /* 左右の余白をなくす */
  }
  /* サービスカード全体 */
  .service-card {
    height: 250px; /* 350px → 250px */
    border-radius: 0; /* 角を四角くして画面いっぱいに */
  }
  /* サービスカードのオーバーレイ */
  .service-card__overlay {
    padding: 15px;
  }
  /* 抜粋テキスト */
  .service-card__excerpt p {
    font-size: 14px;
    padding: 2px 8px;
    line-height: 1.5;
  }
  /* サービスカードのタイトル（既存の設定を上書き） */
  .service-archive-grid .service-card__title {
    font-size: 28px; /* 32px → 28px */
    -webkit-text-stroke: 1px #fff; /* 2px → 1px に細く */
    text-stroke: 1px #fff;
  }
  /* 「詳しく見る」ボタン */
  .service-card__button {
    width: 80px; /* 120px → 80px */
    height: 80px;
    right: 15px; /* 100px → 15px */
    bottom: 15px; /* 25px → 15px */
  }
  .service-card__button-icon {
    width: 20px; /* 30px → 20px */
    height: 20px;
    margin-bottom: 5px;
  }
  .service-card__button-text {
    font-size: 14px; /* 18px → 14px */
  }
  /* ボタンの下部コンテンツエリア */
  .service-card__bottom-content {
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / サービス詳細ページ
    --------------------------------------------------------------*/
  /* サービス詳細ページのタイトル - スマホではサービス名（投稿タイトル）を表示 */
  .single-service .page-title--service-name {
    display: inline !important;
  }
  .single-service .page-title--full {
    display: none !important;
  }
  .single-service .page-title--short {
    display: none !important;
  }
  /* セクション全体の余白調整 */
  .service-section {
    padding: 60px 16px;
  }
  /* 3nパターンのpaddingもスマホ版では左右16pxに統一 */
  .service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+1),
  .service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+2),
  .service-content-wrapper .service-section:not(.service-schedule):nth-child(3n+3) {
    padding: 60px 16px;
  }
  /* セクションタイトル */
  .service-section .section-title {
    font-size: clamp(28px, 4vw, 54px);
    padding: 8px 20px;
    margin-bottom: 20px;
  }
  /* サービス詳細ページのボタンのフォントサイズを最低20pxに */
  .service-section button,
  .service-section .nav-title {
    font-size: clamp(12px, 1.8vw, 16px);
  }
  /* 背景テキストを非表示 */
  /* .section-bg-text {
    display: none !important;
  } */
  /* レイアウトを縦積みに変更 */
  .section-layout {
    flex-direction: column !important;
    gap: 20px;
  }
  .section-layout__image,
  .section-layout__text {
    flex-basis: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    background-color: transparent !important;
  }
  .section-layout__image img {
    max-height: 300px;
  }
  /* ポーズ画像の場合のみ、本文との隙間をなくす */
  .section-layout__image:has(.random-fallback-image) {
    margin-bottom: -30px;
  }
  /* 3パターンの背景色を統一（スマホでは区別をシンプルに） */
  .service-content-wrapper .service-section:nth-child(3n+1),
  .service-content-wrapper .service-section:nth-child(3n+2),
  .service-content-wrapper .service-section:nth-child(3n+3) {
    padding: 60px 16px;
  }
  /* ファーストビューセクション */
  .service-first-view .section-layout {
    gap: 20px;
  }
  .service-first-view .section-layout__image {
    width: 100%;
    margin: 0;
  }
  .service-first-view .section-layout__image img {
    max-height: 250px;
    width: 100%;
    object-fit: cover;
  }
  .service-first-view .highlight-text {
    margin-top: 20px;
    padding: 15px;
  }
  /* 解決策と特長セクション */
  /* 解決策と特長セクションの本文がはみ出さないように */
  .service-solution .solution-text-wrapper {
    width: auto;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
  }
  .solution-text-wrapper .service-body-content {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }
  .solution-text-wrapper .service-body-content p {
    margin: 0;
    padding: 0;
    width: 100%;
  }
  .solution-features-grid {
    gap: 15px;
    margin: 20px auto 0;
  }
  .feature-card {
    flex-direction: column;
    gap: 15px;
    padding: 16px;
    margin-left: 10px;
    margin-right: 10px;
    margin-bottom: 15px;
    text-align: center;
  }
  .feature-card__icon {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    padding: 0;
    box-sizing: border-box;
  }
  .feature-card__icon img {
    width: 100%;
    height: auto;
  }
  .feature-card__text-content {
    text-align: left;
    padding: 0;
  }
  .feature-card__title {
    font-size: 20px;
  }
  /* 利用者の声セクション */
  .service-testimonials .testimonials-grid {
    grid-template-columns: 1fr; /* 3列 → 1列 */
    gap: 20px;
    margin-top: 20px;
  }
  .testimonial-card {
    padding: 15px;
  }
  .testimonial-card__image img {
    width: 60px;
    height: 60px;
  }
  .testimonial-card__title {
    font-size: 16px;
  }
  .testimonial-card__text {
    font-size: 14px;
  }
  /* よくある質問セクション */
  .faq-question {
    padding: 15px 20px; /* 左右のpaddingを調整 */
    font-size: 16px;
  }
  .faq-q-icon {
    font-size: 18px;
    margin-right: 10px;
  }
  .faq-answer-content {
    padding: 0 15px 0 20px; /* 左右のpaddingを調整 */
    font-size: 14px;
  }
  .faq-toggle-icon {
    width: 10px;
    height: 10px;
  }
  /* スタッフセクション */
  .staff-grid {
    grid-template-columns: 1fr !important;
    gap: 20px;
  }
  /* 担当スタッフ紹介セクション - スマホ専用スタイル */
  .service-staff-list {
    padding: 40px 15px;
  }
  .staff-list-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 30px;
  }
  /* スマホ時：カード全体 */
  .staff-profile-card {
    background-color: #fff;
    border-radius: 8px;
    border: 1px solid #ddd;
    overflow: hidden;
  }
  /* 上側：写真と氏名・役職・資格 */
  .staff-profile-card__header {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 15px;
    padding: 15px;
  }
  .staff-profile-card__image {
    width: 120px;
    height: 150px;
  }
  .staff-profile-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
  }
  .staff-profile-card__info {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }
  /* 名前とメタ情報のエリア */
  .staff-profile-card__name {
    font-size: 20px;
    margin-bottom: 10px;
  }
  .staff-profile-card__meta {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .staff-meta-tag {
    font-size: 11px;
    padding: 3px 8px;
  }
  /* 下側：自己紹介 */
  .staff-profile-card__bio-section {
    border-top: 1px solid #e0e0e0;
    padding: 15px;
  }
  .staff-profile-card__bio {
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
  }
  /* 活動セクション */
  .activities-grid {
    grid-template-columns: repeat(2, 1fr); /* 2列表示 */
    gap: 15px;
  }
  .service-activities .activity-grid {
    grid-template-columns: repeat(1, 1fr); /* 2列表示 */
    gap: 15px;
  }
  .service-body-content h3 {
    font-size: 20px;
  }
  .service-body-content ul li {
    padding-left: 10px;
  }
  /* ファーストビューと課題提起セクションのみbisque背景を適用 */
  .service-first-view .service-body-content,
  .service-problem .service-body-content {
    background-color: bisque;
    padding: 15px; /* bisque背景の内側にpaddingを追加 */
    border-radius: 8px;
  }
  /* 本文エリアの最初の要素の上マージンを0にしてpaddingを有効に */
  .service-first-view .service-body-content > *:first-child,
  .service-problem .service-body-content > *:first-child {
    margin-top: 0 !important;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / サービス詳細ページ - 導入事例セクション
    --------------------------------------------------------------*/
  /* 事例の一覧のgap */
  .service-case-studies__grid {
    gap: 8px;
  }
  /* 導入事例の一覧の外側padding */
  .service-case-study-card__content {
    padding: 8px;
  }
  /* 詳細を見るボタンのpadding（左右）*/
  .service-case-study-card__button {
    padding: 12px 10px;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / お知らせ一覧ページ
    --------------------------------------------------------------*/
  /* お知らせ一覧ページのコンテナ */
  .post-type-archive-news .archive-container {
    padding-left: 0;
    padding-right: 0;
  }
  /* フィルターエリア */
  .news-filters {
    padding: 15px;
    margin-bottom: 20px;
  }
  .news-filters__form {
    flex-direction: column;
    gap: 15px;
  }
  .news-filters .filter-group {
    width: 100%;
  }
  .news-filters .filter-group__select {
    width: 100%;
  }
  .news-filters .filter-group__button {
    width: 100%;
    padding: 12px;
    font-size: 18px;
    height: auto;
  }
  /* お知らせリスト */
  .post-type-archive-news .news-list {
    margin: 20px 15px;
    padding: 15px;
    border-radius: 20px;
  }
  /* 吹き出しの尻尾を非表示 */
  .news-list::after {
    display: none;
  }
  /* お知らせアイテムを縦積みに */
  .news-list-item {
    flex-direction: column;
    gap: 15px;
    padding: 20px 10px;
  }
  /* メタ情報 */
  .news-list-item__meta {
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12px;
  }
  /* タイトル */
  .news-list-item__title {
    font-size: 16px;
  }
  /* 抜粋 */
  .news-list-item__excerpt {
    font-size: 14px;
  }
  /* サムネイル画像 */
  .news-list-item__thumbnail {
    flex-basis: auto;
    width: 100%;
  }
  .news-list-item__thumbnail img {
    max-height: 200px;
    object-fit: cover;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / お知らせ詳細ページ
    --------------------------------------------------------------*/
  /* コンテナの余白調整 */
  .news-single-container {
    padding-top: 100px;
    padding-bottom: 30px;
  }
  /* ヘッダーエリア */
  .news-single-header {
    padding: 15px;
    margin-bottom: 20px;
    max-width: 100%;
  }
  /* タイトル */
  .news-single-title {
    font-size: 24px;
    margin-bottom: 10px;
  }
  /* メタ情報 */
  .news-single-meta {
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12px;
  }
  /* 2カラムを1カラムに変更 */
  .news-single-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  /* 本文エリア */
  .news-single-content {
    padding: 20px 15px;
  }
  .news-single-content h2 {
    font-size: 20px;
  }
  .news-single-content h3 {
    font-size: 18px;
  }
  .news-single-content p {
    font-size: 15px;
  }
  /* サムネイル画像 */
  .news-single-thumbnail {
    margin-bottom: 15px;
  }
  .news-single-thumbnail img {
    max-height: 250px;
    object-fit: cover;
  }
  /* サイドバー */
  .news-single-sidebar {
    order: -1; /* サイドバーを上に移動 */
  }
  .news-single-sidebar .sidebar-widget {
    padding: 15px;
    margin-bottom: 20px;
  }
  .news-single-sidebar .sidebar-widget__title {
    font-size: 18px;
  }
  /* ナビゲーション */
  .post-navigation-top,
  .post-navigation-bottom {
    position: relative !important;
    display: block !important;
    max-width: 100% !important;
    min-height: 40px !important;
    margin: 20px 0 !important;
  }
  .post-navigation-top a,
  .post-navigation-bottom a {
    text-align: center;
    font-size: 12px;
    padding: 8px 12px;
    white-space: nowrap;
  }
  /* 前の記事ボタン（左端固定） */
  .post-navigation-top .nav-previous,
  .post-navigation-bottom .nav-previous {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    transform: none !important;
  }
  /* 一覧へ戻るボタン（中央固定） */
  .post-navigation-top .nav-archive,
  .post-navigation-bottom .nav-archive {
    position: absolute !important;
    left: 50% !important;
    top: 0 !important;
    transform: translateX(-50%) !important;
    justify-content: center;
  }
  /* 次の記事ボタン（右端固定） */
  .post-navigation-top .nav-next,
  .post-navigation-bottom .nav-next {
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    transform: none !important;
  }
  /* 空のボタンは非表示 */
  .post-navigation-top .nav-previous:empty,
  .post-navigation-top .nav-next:empty,
  .post-navigation-bottom .nav-previous:empty,
  .post-navigation-bottom .nav-next:empty {
    display: none !important;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / 活動記録詳細ページ
    --------------------------------------------------------------*/
  /* コンテナの余白調整 */
  .activity-single-container {
    padding-top: 100px;
    padding-bottom: 30px;
  }
  /* ヘッダーエリア */
  .activity-single-header {
    padding: 15px;
    margin-bottom: 20px;
    max-width: none;
  }
  /* タイトル */
  .activity-single-title {
    font-size: 24px;
    margin-bottom: 10px;
  }
  /* メタ情報 */
  .activity-single-meta {
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12px;
  }
  /* サービスタグ */
  .activity-single-service-tag {
    font-size: 12px;
    padding: 3px 10px;
  }
  /* 2カラムを1カラムに変更 */
  .activity-single-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  /* 本文エリア */
  .activity-single-content {
    padding: 20px 15px;
  }
  .activity-single-content h2 {
    font-size: 20px;
  }
  .activity-single-content h3 {
    font-size: 18px;
  }
  .activity-single-content p {
    font-size: 15px;
  }
  /* サムネイル画像 */
  .activity-single-thumbnail {
    margin-bottom: 15px;
  }
  .activity-single-thumbnail img {
    max-height: 250px;
    object-fit: cover;
  }
  /* サイドバー */
  .activity-single-sidebar {
    display: none; /* スマホ版では非表示 */
  }
  /* サイドバーのタグクラウド */
  .sidebar-tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .sidebar-tag {
    font-size: 12px;
    padding: 5px 10px;
  }
  .sidebar-tag__icon {
    width: 16px;
    height: 16px;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / にっかいギャラリー
    --------------------------------------------------------------*/
  /* コンテナ */
  .gallery-container {
    padding: 15px 10px;
  }
  /* フィルターエリア */
  .gallery-filters {
    padding: 15px;
    margin-bottom: 20px;
  }
  .gallery-filters__form {
    flex-direction: column;
    gap: 15px;
  }
  .gallery-filters .filter-group {
    width: 100%;
  }
  .gallery-filters .filter-group__select {
    width: 100%;
  }
  .gallery-filters .filter-group__button {
    width: 100%;
    padding: 12px;
    font-size: 18px;
    height: auto;
  }
  /* ギャラリーグリッド - 2列表示、間隔を狭く */
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr); /* 3列 → 2列 */
    gap: 8px; /* 30px → 8px に縮小 */
    padding: 0;
  }
  /* ギャラリーカード */
  .gallery-card {
    border-radius: 8px;
    overflow: hidden;
  }
  .gallery-card__image {
    aspect-ratio: 1/1; /* 4:3 → 1:1（正方形）に変更 */
  }
  .gallery-card__content {
    padding: 10px;
    padding-bottom: 30px;
  }
  .gallery-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    margin-bottom: 3px;
    line-height: 1;
  }
  .gallery-card__term {
    font-size: 10px;
    padding: 2px 6px;
    line-height: 1;
  }
  .gallery-card__creator {
    font-size: 12px;
    margin-bottom: 5px;
  }
  .gallery-card__date {
    font-size: 11px;
    bottom: 8px;
    right: 10px;
  }
  .gallery-card__title {
    font-size: 14px;
  }
  /* NEWバッジ */
  .gallery-card__new-badge {
    top: 5px;
    left: 5px;
    font-size: 10px;
    padding: 3px 8px;
  }
  /* ページネーション */
  .gallery-container .pagination-wrapper {
    margin-top: 20px;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / ギャラリー詳細ページ
    --------------------------------------------------------------*/
  /* コンテナ */
  .gallery-single-container {
    margin: 20px auto;
    padding: 10px;
  }
  /* 記事エリア */
  .gallery-single-article {
    padding: 20px 15px;
  }
  /* タイトル */
  .gallery-single-title {
    font-size: 24px;
    margin-bottom: 10px;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }
  /* 作者名 */
  .gallery-single-creator {
    font-size: 14px;
    margin-bottom: 15px;
  }
  /* 画像 */
  .gallery-single-image {
    margin-bottom: 20px;
  }
  .gallery-single-image img {
    width: 100%;
    height: auto;
  }
  /* 本人のコメント */
  .gallery-single-comment {
    padding: 15px;
    margin-bottom: 20px;
  }
  .gallery-single-comment h2 {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .gallery-single-comment p {
    font-size: 14px;
  }
  /* 本文 */
  .gallery-single-content {
    font-size: 15px;
  }
  .gallery-single-content h2 {
    font-size: 20px;
  }
  .gallery-single-content h3 {
    font-size: 18px;
  }
  /* メタ情報 */
  .gallery-single-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  /* ナビゲーション - 上下とも3つボタンを左・中央・右に配置 */
  .gallery-single-container .post-navigation-top,
  .gallery-single-container .post-navigation-bottom {
    position: relative !important;
    display: block !important;
    max-width: 100% !important;
    min-height: 40px !important;
    margin: 20px 0 !important;
  }
  /* 前の作品ボタン（左端固定） */
  .gallery-single-container .post-navigation-top .nav-previous,
  .gallery-single-container .post-navigation-bottom .nav-previous {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
  }
  /* 一覧へ戻るボタン（中央固定） */
  .gallery-single-container .post-navigation-top .nav-archive,
  .gallery-single-container .post-navigation-bottom .nav-archive {
    position: absolute !important;
    left: 50% !important;
    top: 0 !important;
    transform: translateX(-50%) !important;
  }
  /* 次の作品ボタン（右端固定） */
  .gallery-single-container .post-navigation-top .nav-next,
  .gallery-single-container .post-navigation-bottom .nav-next {
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
  }
  .gallery-single-container .post-navigation-top a,
  .gallery-single-container .post-navigation-bottom a {
    font-size: 11px !important;
    padding: 6px 8px !important;
    white-space: nowrap !important;
    max-width: 30vw !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / 会社概要ページ
    --------------------------------------------------------------*/
  /* コンテナ */
  .company-page-container {
    padding: 30px 0;
  }
  /* セクションタイトル */
  .company-page-article .section-title {
    font-size: 28px;
    padding: 8px 20px;
    margin-bottom: 20px;
  }
  /* 会社情報リスト - 縦並びに変更 */
  .company-info-list {
    display: block;
    padding: 0 15px;
  }
  .company-info-list dt {
    font-size: 14px;
    padding: 10px 0;
  }
  .company-info-list dd {
    font-size: 14px;
    padding: 10px 0 15px 0;
    margin-bottom: 10px;
  }
  /* 沿革セクション */
  .history-section {
    margin-top: 40px;
    padding: 0 15px;
  }
  .history-timeline {
    padding-left: 20px;
    border-left-width: 2px;
    max-width: 100%;
  }
  /* 沿革アイテム - 縦積みに変更 */
  .history-item {
    flex-direction: column;
    gap: 10px;
    padding-bottom: 30px;
  }
  /* タイムラインのポイント */
  .history-item::before {
    width: 16px;
    height: 16px;
    left: -29px;
    top: 0;
  }
  /* 日付エリア */
  .history-item__date {
    width: 100%;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-start;
    gap: 10px;
  }
  .history-item__date .history-year {
    font-size: 18px;
  }
  .history-item__date .history-month {
    font-size: 16px;
  }
  /* 内容エリア */
  .history-item__content {
    padding-top: 0;
    font-size: 14px;
  }
  .history-item__photo {
    max-width: 100%;
    margin-top: 10px;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / プライバシーポリシーページ
    --------------------------------------------------------------*/
  /* プライバシーポリシー本文エリア */
  .privacy-policy .entry-content {
    max-width: 100%;
    padding: 20px 15px;
    margin: 0;
    border-radius: 0;
  }
  .privacy-policy .entry-content h2 {
    font-size: 20px;
    margin-top: 30px;
    margin-bottom: 15px;
  }
  .privacy-policy .entry-content h3 {
    font-size: 18px;
    margin-top: 20px;
    margin-bottom: 10px;
  }
  .privacy-policy .entry-content p {
    font-size: 14px;
    line-height: 1.7;
    margin-bottom: 15px;
  }
  .privacy-policy .entry-content ul,
  .privacy-policy .entry-content ol {
    font-size: 14px;
    padding-left: 25px;
  }
  .privacy-policy .entry-content li {
    margin-bottom: 10px;
  }
  /* 一般的な固定ページ用のコンテナ */
  .page-container {
    padding: 20px 0;
  }
  .page-container .entry-content {
    padding: 20px 15px;
    font-size: 15px;
  }
  .page-container .entry-content h2 {
    font-size: 22px;
  }
  .page-container .entry-content h3 {
    font-size: 18px;
  }
  /*--------------------------------------------------------------
    レスポンシブ対応 / Contact Form 7（お問い合わせフォーム）
    --------------------------------------------------------------*/
  /* フォーム全体 */
  .wpcf7 {
    max-width: 100%;
    padding: 0 15px;
  }
  /* 入力欄を画面幅に収める */
  .wpcf7-form-control:not([type=submit]) {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }
  /* テキストエリア */
  .wpcf7 textarea {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }
  /* セレクトボックス */
  .wpcf7 select {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }
  /* 送信ボタン */
  .wpcf7 input[type=submit] {
    width: 100%;
    max-width: 300px;
    padding: 12px 20px;
    font-size: 16px;
  }
  /* ラベルとフィールドの余白 */
  .wpcf7 p {
    margin-bottom: 15px;
  }
  /* チェックボックスエリア */
  .wpcf7-acceptance {
    margin-top: 15px;
    padding: 0 10px;
  }
  /*--------------------------------------------------------------
   サービス詳細 / 利用状況
  --------------------------------------------------------------*/
  .service-availability {
    padding: 60px 0;
  }
  .service-availability .service-body-content::before {
    content: none;
  }
  .availability-table-wrapper {
    margin: 0;
    border-radius: 0;
  }
  .availability-table {
    font-size: 0.9rem;
  }
  .availability-table thead th {
    padding: 12px 6px;
    font-size: 0.85rem;
  }
  .availability-table tbody td {
    padding: 12px 6px;
    font-size: 0.95rem;
  }
  .status-cell {
    font-size: 1.2rem;
  }
  .status-symbol {
    font-size: 24px;
    line-height: 24px;
    height: 24px;
  }
  .bathing-icon {
    width: 24px;
    height: 24px;
  }
  .bathing-label {
    font-size: 0.75rem;
  }
  .availability-info,
  .bathing-types {
    font-size: 0.85rem;
    padding: 12px 16px;
  }
  /* テーブルと画像のコンテナを縦並びに */
  .availability-content-area {
    flex-direction: column;
    gap: 20px;
  }
  /* 画像を非表示または小さく */
  .availability-image-wrapper {
    display: none;
  }
  /* 凡例エリアを縦並びに */
  .availability-bottom {
    flex-wrap: wrap;
    gap: 20px;
  }
  /* 施設情報は100%幅 */
  .legend-section.facility-info {
    width: 100%;
    flex-basis: 100%;
  }
  /* デイサービス空き状況と入浴状況も100%幅 */
  .availability-bottom .legend-section:nth-child(2),
  .availability-bottom .legend-section:nth-child(3) {
    width: 100%;
    flex-basis: 100%;
  }
  .legend-title {
    font-size: 18px;
  }
  .legend-text {
    font-size: 14px;
  }
  /* 凡例セクションのpaddingを減らす */
  .legend-section {
    padding: 12px;
  }
  /* 施設情報の項目を横並びに */
  .facility-info-item {
    flex-direction: row;
    gap: 8px;
  }
  .facility-info-item .info-label {
    flex-shrink: 0;
  }
  /*--------------------------------------------------------------
   ケアマネジャー向け情報ページ / レスポンシブ対応
  --------------------------------------------------------------*/
  /* 2カラムレイアウトを1カラムに */
  .two-column-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  /* フィルターフォームを縦並びに */
  .care-manager-info-filters__form {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
  }
  .filter-group {
    width: 100%;
  }
  .filter-group__select {
    min-width: 100%;
  }
  /* サイドバーのタグクラウドを調整 */
  .sidebar-tag-cloud {
    justify-content: center;
  }
  .sidebar-tag {
    font-size: 18px;
    padding: 6px 14px;
  }
  .sidebar-tag__icon {
    width: 28px;
    height: 28px;
  }
  /*--------------------------------------------------------------
   中古福祉用具一覧ページ / レスポンシブ対応
  --------------------------------------------------------------*/
  /* ページヘッダーをロゴとメニューボタンの間に配置 */
  .welfare-equipment-archive-container .page-header {
    margin: 0 !important;
    padding: 0 15px !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 !important;
  }
  .welfare-equipment-archive-container .page-header .section-title {
    margin: 0 !important;
    padding: 5px 15px !important;
    font-size: 18px !important;
    white-space: nowrap !important;
  }
  .welfare-equipment-archive-container .page-header .archive-description {
    margin: 0 !important;
    text-align: center !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
  /* レイアウトを1カラムに */
  .equipment-archive-layout {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  /* サイドバーのスティッキーを解除 */
  .equipment-archive-sidebar {
    position: static !important;
  }
  /* サイドバーウィジェット全体を折りたたみ式に */
  .sidebar-widget-content {
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.3s ease !important;
  }
  .sidebar-widget-content.is-open {
    max-height: 2000px !important;
  }
  /* 絞り込みフィルター内のセクションも折りたたみ式に */
  .filter-widget .filter-section-title {
    cursor: pointer !important;
    position: relative !important;
    padding-right: 30px !important;
  }
  .filter-widget .filter-section-title::after {
    content: "▼" !important;
    position: absolute !important;
    right: 0 !important;
    transition: transform 0.3s !important;
  }
  .filter-widget .filter-section-title.is-open::after {
    transform: rotate(180deg) !important;
  }
  .filter-widget .filter-section-content {
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.3s ease !important;
  }
  .filter-widget .filter-section-content.is-open {
    max-height: 1000px !important;
  }
  /* 絞り込みボタン */
  .equipment-archive-sidebar .btn-filter-submit {
    font-size: 20px !important;
  }
  /* 商品グリッドを1列表示 */
  .welfare-equipment-grid {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
  }
  /* 商品カードを横並びレイアウトに */
  .equipment-card__link {
    display: grid !important;
    grid-template-columns: 150px 1fr !important;
    gap: 15px !important;
  }
  .equipment-card__image-wrapper {
    width: 150px !important;
    height: 150px !important;
    aspect-ratio: 1/1 !important;
  }
  .equipment-card__content {
    padding: 10px 10px 10px 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 5px !important;
  }
  .equipment-card__inquiry-number {
    font-size: 12px !important;
    margin: 0 !important;
  }
  .equipment-card__title {
    font-size: 14px !important;
    margin: 0 !important;
    line-height: 1.3 !important;
  }
  .equipment-card__price {
    font-size: 14px !important;
    text-align: left !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  /* ラベルのサイズ調整 */
  .equipment-card__new-label,
  .equipment-card__status {
    font-size: 10px !important;
    padding: 3px 8px !important;
  }
  /*--------------------------------------------------------------
   中古福祉用具 詳細ページ・問い合わせページ / レスポンシブ対応
  --------------------------------------------------------------*/
  /* 左カラム（サイドバー）を非表示 */
  .equipment-single-sidebar,
  .equipment-inquiry-sidebar {
    display: none !important;
  }
  /* メインコンテンツを全幅に */
  .equipment-single-layout,
  .equipment-inquiry-layout {
    grid-template-columns: 1fr !important;
  }
  /* 商品エリア全体を上に詰める */
  .welfare-equipment-single-container .equipment-single-article {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  .welfare-equipment-single-container .equipment-single-layout {
    margin-top: 60px !important;
    padding-top: 0 !important;
  }
  .equipment-single-main {
    padding: 15px !important;
  }
  /* 商品タイトル */
  .equipment-product-title {
    font-size: 20px !important;
    padding: 5px 8px !important;
    margin-top: 0 !important;
    margin-bottom: 15px !important;
  }
  /* 商品画像と情報エリア */
  .equipment-product-header,
  .equipment-inquiry-header {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin-bottom: 20px !important;
  }
  .equipment-images-area,
  .equipment-inquiry-images-area {
    width: 100% !important;
    order: 1;
  }
  .equipment-main-image-wrapper {
    margin-bottom: 8px !important;
  }
  .equipment-info-area,
  .equipment-inquiry-info-area {
    width: 100% !important;
    padding: 8px !important;
    order: 2;
    display: flex !important;
    flex-direction: column !important;
  }
  .equipment-info-area .equipment-badges {
    order: 1;
    margin-bottom: 8px !important;
  }
  .equipment-info-area .equipment-sale-price {
    order: 2;
    margin-bottom: 2px !important;
  }
  .equipment-info-area .equipment-sale-price .price-value {
    font-size: 32px !important;
    font-weight: bold !important;
    color: #ff0000 !important;
  }
  .equipment-info-area .equipment-retail-price {
    order: 3;
    margin-bottom: 10px !important;
    font-size: 12px !important;
  }
  .equipment-info-area .equipment-inquiry-section {
    order: 4;
    margin: 10px 0 3px 0 !important;
    padding: 10px !important;
  }
  .equipment-info-area .equipment-meta-info {
    order: 5;
  }
  .equipment-info-area .equipment-meta-info .meta-item {
    margin-bottom: 5px !important;
  }
  /* サムネイルギャラリー */
  .equipment-thumbnail-gallery {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 5px !important;
  }
  /* 問い合わせボタン */
  .btn-inquiry-main {
    font-size: 18px !important;
    padding: 8px 10px !important;
  }
  /* 商品詳細セクション */
  .equipment-section {
    padding: 10px 8px !important;
    margin-bottom: 20px !important;
  }
  .equipment-section .section-title {
    font-size: 20px !important;
  }
  .equipment-details-sections {
    margin-top: 20px !important;
  }
  /* 仕様テーブル */
  .specifications-table th,
  .specifications-table td {
    font-size: 14px !important;
    padding: 10px 8px !important;
  }
  /* ナビゲーション - 上部のみヘッダーに配置 */
  .welfare-equipment-single-container .post-navigation-top {
    position: absolute !important;
    top: 15px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 1001 !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    gap: 0 !important;
  }
  .welfare-equipment-single-container .post-navigation-top .nav-previous,
  .welfare-equipment-single-container .post-navigation-top .nav-next {
    display: none !important;
  }
  .welfare-equipment-single-container .post-navigation-top .nav-archive {
    width: auto !important;
    text-align: center !important;
  }
  .welfare-equipment-single-container .post-navigation-top .nav-archive a {
    display: inline-block !important;
    text-align: center !important;
  }
  /* 下部ナビゲーション - 中古商品ページ専用 */
  .welfare-equipment-single-container .post-navigation-bottom {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important; /* 横方向中央配置 */
    gap: 10px !important;
    padding: 15px !important;
    margin-left: 0 !important;
    padding-left: 15px !important;
  }
  .welfare-equipment-single-container .nav-previous,
  .welfare-equipment-single-container .nav-next,
  .welfare-equipment-single-container .nav-archive {
    width: 100% !important;
    text-align: center !important;
  }
  .welfare-equipment-single-container .nav-archive a {
    display: inline-block !important;
    width: auto !important;
    padding: 12px 30px !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    position: static !important;
    right: auto !important;
    transform: none !important;
    border-radius: 5px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  .welfare-equipment-single-container .post-navigation-top a,
  .welfare-equipment-single-container .post-navigation-bottom a {
    font-size: 16px !important;
  }
  /* 商品問い合わせページ - 電話番号のフォントサイズ */
  .phone-link-large {
    font-size: 28px !important;
  }
}
/* レスポンシブ対応：タブレット以下 */
@media (max-width: 767px) {
  .service-content-wrapper .service-section.service-schedule:nth-child(3n+1) {
    background-color: #3f9d00;
    border-top: none;
    border-bottom: none;
  }
  .service-content-wrapper .service-section.service-schedule:nth-child(3n+1) .section-title {
    color: #fff;
  }
  .service-content-wrapper .service-section.service-schedule:nth-child(3n+2) {
    background-color: #96e884;
    border-top: none;
    border-bottom: none;
  }
  .service-content-wrapper .service-section.service-schedule:nth-child(3n+3) {
    background-color: transparent;
    border-top: none;
    border-bottom: none;
  }
  .service-schedule {
    padding: 30px 16px 60px 16px;
  }
  .schedule-container {
    flex-direction: column;
    gap: 0;
    padding: 0;
  }
  .schedule-title-wrapper {
    position: relative;
    top: 0;
    align-self: center;
    background-color: transparent;
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 20px;
  }
  /* スマホ時は縦書きを非表示 */
  .schedule-vertical-title {
    display: none;
  }
  /* スマホ時は.section-titleを表示 */
  .schedule-title-wrapper .section-title {
    display: inline-block;
    font-size: clamp(28px, 4vw, 54px);
    margin-bottom: 0;
  }
  .schedule-timeline {
    padding: 0;
  }
  /* カード全体のpadding調整 */
  .schedule-card {
    padding: 20px;
  }
  /* 時刻と活動名を縦並びに */
  .schedule-card__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .schedule-card__time,
  .schedule-card__activity {
    font-size: 24px;
  }
  /* コンテンツエリアのパディング調整 */
  .schedule-card__contents {
    padding: 20px;
  }
  .schedule-content-pair {
    flex-direction: column;
    gap: 10px;
  }
  .schedule-content-pair__image {
    width: 100%;
    height: 200px;
  }
}
/*======================================================================
  中古福祉用具 - 詳細ページ専用CSS
======================================================================*/
/* 2カラムレイアウト（左：サイドバー、右：商品情報） */
.equipment-single-layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 40px;
  align-items: flex-start;
  margin-top: 30px;
}

/* 左カラム：メインコンテンツ */
.equipment-single-main {
  background-color: #fff;
  padding: 30px;
  border-radius: 8px;
}

/* 商品タイトル */
.equipment-product-title {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 30px;
  padding-bottom: 15px;
  border-bottom: 2px solid #ff7f00;
}

/* 商品ヘッダー（画像と情報の横並び） */
.equipment-product-header {
  display: grid;
  grid-template-columns: 50% 50%;
  gap: 30px;
  margin-bottom: 40px;
}

/* 画像エリア */
.equipment-images-area {
  position: relative;
}

.equipment-main-image-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 8px;
  margin-bottom: 15px;
  border: 1px solid #ddd;
}

.equipment-main-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.sold-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
}

.sold-label {
  color: #fff;
  font-size: 36px;
  font-weight: bold;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.equipment-thumbnail-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.equipment-thumbnail {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 4px;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color 0.3s;
}

.equipment-thumbnail:hover,
.equipment-thumbnail.active {
  border-color: #ff7f00;
}

.equipment-no-image {
  width: 100%;
  aspect-ratio: 4/3;
  background-color: #e0e0e0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  border-radius: 8px;
}

/* 情報エリア */
.equipment-info-area {
  display: flex;
  flex-direction: column;
  padding-right: 30px;
}

/* バッジエリア */
.equipment-badges {
  display: flex;
  gap: 8px;
  margin-bottom: 15px;
  flex-wrap: wrap;
}

.badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
}

.badge-new {
  background-color: #e53935;
}

.badge-rank {
  background-color: #666;
}

.badge-rank-s {
  background-color: #ffd700;
  color: #333;
}

.badge-rank-a {
  background-color: #4caf50;
}

.badge-rank-b {
  background-color: #2196f3;
}

.badge-rank-c {
  background-color: #ff9800;
}

.badge-rank-d {
  background-color: #9e9e9e;
}

/* 新品希望小売価格 */
.equipment-retail-price {
  margin-bottom: 10px;
  font-size: 14px;
}

.equipment-retail-price .label {
  color: #666;
}

.retail-price-value {
  color: #999;
  text-decoration: line-through;
  margin-left: 5px;
}

/* 販売価格 */
.equipment-sale-price {
  margin-bottom: 20px;
}

.equipment-sale-price .price-value {
  font-size: 24px;
  font-weight: bold;
  color: #ff0000;
}

/* 問い合わせセクション */
.equipment-inquiry-section {
  margin-bottom: 30px;
  padding: 20px;
  background-color: #f9f9f9;
  border-radius: 8px;
}

/* 問い合わせボタン（シンプル版） */
.equipment-inquiry-section {
  margin: 20px 0;
}

.btn-inquiry-main {
  display: block;
  width: 100%;
  padding: 15px 20px;
  background-color: #ff7f00;
  color: #fff;
  text-align: center;
  text-decoration: none;
  border-radius: 8px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  transition: all 0.3s;
}

.btn-inquiry-main:hover {
  background-color: #e67300;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 127, 0, 0.3);
}

/* 問い合わせ詳細セクション */
.inquiry-detail-section {
  padding: 20px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  margin-top: 15px;
}

.inquiry-detail-section h4 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 15px;
  color: #333;
}

.inquiry-detail-section p {
  margin-bottom: 15px;
  line-height: 1.6;
}

/* メール問い合わせボタン */
.btn-inquiry-submit {
  display: block;
  width: 100%;
  padding: 15px 20px;
  background-color: #ff7f00;
  color: #fff;
  text-align: center;
  text-decoration: none;
  border-radius: 8px;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  transition: background-color 0.3s;
}

.btn-inquiry-submit:hover {
  background-color: #e67300;
  color: #fff;
}

/* 電話問い合わせ情報 */
.phone-inquiry-content {
  text-align: center;
}

.phone-number {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 10px;
}

.phone-icon {
  font-size: 32px;
  margin-right: 10px;
}

.phone-link {
  color: #ff7f00;
  text-decoration: none;
  transition: color 0.3s;
}

.phone-link:hover {
  color: #e67300;
}

.phone-hours {
  font-size: 14px;
  color: #666;
  margin-bottom: 20px;
}

.inquiry-note {
  font-size: 14px;
  padding: 15px;
  background-color: #fff9e6;
  border-left: 4px solid #ff7f00;
  border-radius: 4px;
  margin-top: 20px;
}

.inquiry-note strong {
  color: #ff7f00;
}

/* レスポンシブ */
@media (max-width: 767px) {
  .inquiry-method-buttons {
    grid-template-columns: 1fr;
  }
  .phone-number {
    font-size: 24px;
  }
}
/* 商品メタ情報 */
.equipment-meta-info {
  font-size: 14px;
}

.meta-item {
  margin-bottom: 10px;
}

.meta-label {
  color: #666;
  font-weight: bold;
}

.meta-value {
  margin-left: 5px;
}

/* 価格表示の縮小対応 */
.equipment-retail-price {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  overflow: hidden;
  white-space: nowrap;
  font-size: clamp(14px, 3vw, 18px);
  text-align: right;
}

.equipment-sale-price {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  overflow: hidden;
  text-align: right;
}

.price-value {
  white-space: nowrap;
  display: inline-block;
  max-width: 100%;
  font-size: clamp(16px, 4vw, 24px);
}

/* 商品詳細セクション */
.equipment-details-sections {
  margin-top: 40px;
}

/*======================================================================
  中古福祉用具 - 問い合わせページ
======================================================================*/
/* 問い合わせページのタイトル */
.inquiry-page-main-title {
  background-color: #ff7f00;
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  padding: 20px;
  text-align: center;
  border-radius: 8px;
  margin-bottom: 30px;
}

/* 問い合わせページの商品情報エリア */
.equipment-info-area-inquiry {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding-right: 30px;
}

.equipment-info-area-inquiry .equipment-meta-info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.equipment-info-area-inquiry .meta-item {
  margin: 0;
  padding: 8px 10px;
  font-size: 14px;
  display: flex;
  align-items: baseline;
}

.equipment-info-area-inquiry .meta-label {
  font-size: 13px;
  min-width: 70px;
  flex-shrink: 0;
}

.equipment-info-area-inquiry .meta-value {
  font-size: 15px;
  flex: 1;
}

/* 問い合わせ番号の強調表示 */
.inquiry-number-emphasized {
  background-color: #fff9e6;
  padding: 12px 10px !important;
  margin: 0 0 8px 0 !important;
  border-radius: 8px;
  border: 3px solid #ffd700;
  box-shadow: 0 2px 8px rgba(255, 215, 0, 0.3);
}

.inquiry-number-emphasized .meta-value {
  font-size: 24px;
  font-weight: bold;
  color: #ff7f00;
  font-family: "Dela Gothic One", sans-serif;
}

/* 金額の強調 */
.equipment-info-area-inquiry .price-highlight {
  font-size: 18px;
  font-weight: bold;
  color: #ff7f00;
}

/* 右カラム：問い合わせフォーム */
.inquiry-form-area {
  background-color: #fff;
  padding: 30px;
  border-radius: 8px;
  border: 2px solid #e0e0e0;
}

.inquiry-form-title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: 32px;
  font-weight: 400;
  margin-bottom: 20px;
  color: #333;
  padding-bottom: 10px;
  border-bottom: 3px solid #ff7f00;
}

.email-icon {
  margin-right: 10px;
}

.equipment-inquiry-form .form-group {
  margin-bottom: 20px;
}

.equipment-inquiry-form .form-label {
  display: block;
  font-weight: bold;
  margin-bottom: 8px;
  color: #333;
}

.equipment-inquiry-form .form-label.required::after {
  content: "必須";
  margin-left: 8px;
  padding: 2px 8px;
  background-color: #e53935;
  color: #fff;
  font-size: 11px;
  border-radius: 3px;
}

.equipment-inquiry-form .form-control {
  width: 100%;
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 16px;
  box-sizing: border-box;
}

.equipment-inquiry-form .form-control:focus {
  outline: none;
  border-color: #ff7f00;
  box-shadow: 0 0 0 2px rgba(255, 127, 0, 0.1);
}

.equipment-inquiry-form .form-control[readonly] {
  background-color: #f5f5f5;
  color: #666;
}

.equipment-inquiry-form textarea.form-control {
  resize: vertical;
  min-height: 100px;
}

.btn-inquiry-submit-main {
  display: block;
  width: 100%;
  padding: 15px;
  background-color: #ff7f00;
  color: #fff;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s;
}

.btn-inquiry-submit-main:hover {
  background-color: #e67300;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 127, 0, 0.3);
}

/* 区切り線 */
.inquiry-divider {
  margin: 40px 0;
  height: 2px;
  background: linear-gradient(to right, transparent, #ddd, transparent);
}

/* 電話問い合わせセクション */
.inquiry-phone-section {
  margin-top: 30px;
}

.inquiry-phone-title {
  font-family: "Dela Gothic One", sans-serif;
  font-size: 32px;
  font-weight: 400;
  margin-bottom: 20px;
  color: #333;
  padding-bottom: 10px;
  border-bottom: 3px solid #3f9d00;
}

.phone-icon-title {
  margin-right: 10px;
}

.phone-number-large {
  text-align: center;
  margin: 30px 0;
}

.phone-icon {
  font-size: 32px;
  margin-right: 10px;
}

.phone-link-large {
  font-size: 36px;
  font-weight: 400;
  color: #3f9d00;
  text-decoration: none;
  font-family: "Dela Gothic One", sans-serif;
}

.phone-link-large:hover {
  text-decoration: underline;
}

.phone-hours-info {
  text-align: center;
  font-size: 20px;
  color: #666;
  margin-bottom: 30px;
}

.phone-inquiry-number {
  background-color: #fff9e6;
  padding: 20px;
  border-radius: 8px;
  border: 2px solid #ffd700;
  text-align: center;
}

.phone-inquiry-note {
  font-size: 20px;
  color: #666;
  margin-bottom: 15px;
}

.phone-inquiry-number-display {
  margin: 0;
}

.phone-inquiry-label {
  display: block;
  font-size: 14px;
  color: #666;
  margin-bottom: 8px;
}

.phone-inquiry-id {
  display: block;
  font-size: 32px;
  font-weight: bold;
  color: #ff7f00;
  font-family: "Dela Gothic One", sans-serif;
}

.equipment-section {
  margin-bottom: 40px;
}

.equipment-section:last-child {
  margin-bottom: 0;
}

/* H2タイトル（商品説明、商品の状態、基本仕様） - オレンジの下線 */
.equipment-section h2.section-title {
  font-family: "BIZ UDPGothic", sans-serif;
  font-size: 24px;
  font-weight: bold;
  color: #000;
  margin-bottom: 20px;
  display: inline-block;
  position: relative;
  padding: 0; /* paddingを削除 */
  background: none; /* 背景を削除 */
  border: none; /* ボーダーを削除 */
}

.equipment-section h2.section-title::after {
  content: "";
  position: absolute;
  left: 0.5em; /* 右に半文字分ずらす */
  bottom: -1px; /* 文字の下部分と重ねる */
  right: -0.5em; /* 文字列と同じ長さ */
  height: 10px; /* ラインの太さ */
  background-color: #ff7f00; /* オレンジ */
  z-index: -1;
}

.equipment-section .section-content {
  font-size: 20px;
  line-height: 1.8;
}

/* 基本仕様テーブル */
.specifications-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}

.specifications-table th,
.specifications-table td {
  padding: 12px 15px;
  border: 1px solid #ddd;
  text-align: left;
  font-size: 20px;
}

.specifications-table th {
  background-color: #f5f5f5;
  font-weight: bold;
  width: 150px;
}

.other-specifications h3 {
  font-size: 18px;
  margin-bottom: 10px;
}

/* 中古福祉用具専用ナビゲーション */
.welfare-equipment-single-container .post-navigation-top,
.welfare-equipment-single-container .post-navigation-bottom {
  display: flex;
  justify-content: flex-start;
  gap: 60px;
  margin-left: 320px; /* サイドバー幅 + gap分 */
  padding-left: 40px; /* 商品側の左端に合わせる */
}

.welfare-equipment-single-container .post-navigation-top {
  margin-top: 20px;
  margin-bottom: 10px;
}

.welfare-equipment-single-container .post-navigation-bottom {
  margin-top: 40px; /* 問い合わせセクションとの隙間 */
  margin-bottom: 30px;
}

.welfare-equipment-single-container .post-navigation-top a,
.welfare-equipment-single-container .post-navigation-bottom a {
  text-decoration: none;
  font-weight: bold;
  color: #fff;
  background-color: #3f9d00;
  border-radius: 5px;
  font-size: 20px;
  padding: 10px 20px;
}

.welfare-equipment-single-container .post-navigation-top a:hover,
.welfare-equipment-single-container .post-navigation-bottom a:hover {
  text-decoration: underline;
}

/* 右カラム：サイドバー */
.equipment-single-sidebar {
  position: sticky;
  top: 20px;
}

.equipment-single-sidebar .sidebar-widget {
  background-color: #f9f9f9;
  border-radius: 20px;
  outline: 2px dashed #3f9d00;
  outline-offset: -10px;
  padding: 20px;
  margin-bottom: 20px;
}

.equipment-single-sidebar .sidebar-widget:last-child {
  margin-bottom: 0;
}

/* サイドバータイトル */
.sidebar-widget__title {
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 15px 0;
  border-bottom: 1px solid #ddd;
  padding-bottom: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 新着商品リスト */
.recent-equipment-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.recent-equipment-list li {
  border-bottom: 1px solid #ddd;
}

.recent-equipment-list li:last-child {
  border-bottom: none;
}

.recent-equipment-list li a {
  display: block;
  padding: 10px 0;
  text-decoration: none;
  color: #333;
  transition: color 0.3s;
}

.recent-equipment-list li a:hover {
  color: #ff7f00;
}

.recent-equipment-name {
  display: block;
  font-size: 14px;
  margin-bottom: 5px;
  text-align: left;
}

.recent-equipment-price {
  display: block;
  font-size: 13px;
  color: #666;
  font-weight: bold;
  text-align: right;
}

/* フィルターセクション */
.filter-section {
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #ddd;
}

.filter-section:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}

.filter-section-title {
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 10px 0;
  color: #333;
}

/* チェックボックスリスト */
.category-checkbox-list,
.stock-checkbox-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.category-checkbox-list li,
.stock-checkbox-list li {
  margin-bottom: 10px;
}

.category-checkbox-list label,
.stock-checkbox-list label {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 14px;
}

.category-checkbox-list input[type=checkbox],
.stock-checkbox-list input[type=checkbox] {
  margin-right: 8px;
}

/* 価格絞り込み */
.price-range-inputs {
  display: flex;
  align-items: center;
  gap: 10px;
}

.price-input {
  width: 100px;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 14px;
}

/* 絞り込みボタン */
.btn-filter-submit {
  width: 100%;
  padding: 12px 20px;
  background-color: #ff7f00;
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-family: "Dela Gothic One", sans-serif;
  font-size: 28px;
  font-weight: 400;
  transition: background-color 0.3s;
}

.btn-filter-submit:hover {
  background-color: #e67300;
}

@media (max-width: 767px) {
  .equipment-thumbnail-gallery {
    grid-template-columns: repeat(3, 1fr);
  }
  .equipment-product-title {
    font-size: 22px;
  }
  .equipment-sale-price .price-value {
    font-size: 28px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .service-archive-container {
    padding-top: 100px;
  }
  .welfare-equipment-archive-container {
    padding-top: 40px;
  }
  .welfare-equipment-single-container {
    padding-top: 40px;
  }
  .equipment-single-layout {
    grid-template-columns: 1fr;
  }
  .equipment-single-sidebar {
    position: static;
  }
  .equipment-product-header {
    grid-template-columns: 1fr;
  }
}
