:root {
  --c-green: #7bcbc5;
  --c-green-dark: #51b0ac;
  --c-green-btn: #46aca0;
  --c-yellow: #ffba39;
  --c-white: #ffffff;
  --c-black: #333333;
  --c-text: #424242;
  --c-bg: #fcfefe;
  --c-cream: #fff8ed;
  --c-link: #006fff;

  --f-en: "Public Sans", sans-serif;
  --f-jp: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
  --f-futura: "Futura", "Nunito", "Public Sans", sans-serif;

  --max-w: 90rem;
  --h-header: 5.5rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: var(--f-jp);
  font-size: 1rem;
  color: var(--c-black);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
a {
  color: inherit;
  text-decoration: none;
}
ul {
  list-style: none;
}
p {
  font-size: clamp(0.9375rem, 1.1vw, 1rem);
}

.sp_only {
  display: none;
}
.tb_only {
  display: none;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
  height: var(--h-header);
  background: var(--c-green);
}
.header-inner {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  margin-inline: auto;
  padding: 0 2.9375rem;
}

.header-logo {
  width: 5.3125rem;
  display: block;
}
.header-logo a {
  width: 100%;
  height: 100%;
  display: block;
}
.header-logo a img {
  width: 100%;
  display: block;
  object-fit: contain;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.header-sns {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.header-sns a {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s;
}
.header-sns a:hover {
  opacity: 0.8;
}
.header-sns .ico-instagram {
  width: 2.25rem;
  height: 2.25rem;
}
.header-sns .ico-facebook {
  width: 2.0625rem;
  height: 2.0625rem;
}

.header-contact-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 10.5rem;
  padding: 1rem 1.7rem;
  background: var(--c-white);
  border: 0.0625rem solid var(--c-white);
  border-radius: 7rem;
  color: var(--c-green-btn);
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.0225rem;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.header-contact-btn:hover {
  opacity: 0.85;
}
.header-contact-btn img {
  width: 1.1875rem;
  height: 0.9375rem;
  flex-shrink: 0;
}

.header-hamburger {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.125rem;
  height: 3.125rem;
  background: var(--c-white);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: opacity 0.2s;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
  outline: none;
}
.header-hamburger:hover {
  opacity: 0.85;
}
.hamburger-icon {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.3125rem;
  width: 1.5rem;
}
.hamburger-icon span {
  display: block;
  height: 0.125rem;
  width: 100%;
  background: var(--c-green);
  border-radius: 0.125rem;
  transition:
    transform 0.3s,
    opacity 0.3s;
}
.site-header.is-open .hamburger-icon span:nth-child(1) {
  transform: translateY(0.4375rem) rotate(45deg) !important;
}
.site-header.is-open .hamburger-icon span:nth-child(2) {
  opacity: 0 !important;
  transform: none !important;
}
.site-header.is-open .hamburger-icon span:nth-child(3) {
  transform: translateY(-0.4375rem) rotate(-45deg) !important;
}

.mobile-nav {
  display: none;
  position: fixed;
  z-index: 200;
  background: var(--c-green);
}

@media (min-width: 48.0625rem) {
  .mobile-nav {
    display: block;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #f2efeb;
    box-shadow: 0 1px 6px rgba(119, 119, 119, 0.3);
    border-bottom-left-radius: 1rem;
    align-content: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-1.5rem);
    transition:
      opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
      visibility 0.4s cubic-bezier(0.4, 0, 0.2, 1),
      transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .mobile-nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .pc-nav__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5rem;
    padding: 8.5rem 5.5rem 4rem;
  }

  .pc-nav__links {
    display: grid;
    grid-template-columns: max-content max-content max-content;
    column-gap: 6rem;
    align-items: start;
    justify-content: end;
    width: 100%;
  }
  .pc-nav__links_left {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }
  .pc-nav__col {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
  }
  .pc-nav__col--list_right {
    gap: 1.3125rem;
  }
  .pc-nav__col--list {
    gap: 1.3125rem;
  }
  .pc-nav__link {
    display: block;
    color: var(--c-green-btn);
    text-decoration: none;
    font-family: var(--f-jp);
    font-weight: 500;
    line-height: 1.5;
    text-align: right;
    transition: opacity 0.2s;
  }
  .pc-nav__link:hover {
    opacity: 0.7;
  }
  .pc-nav__link--main {
    font-size: 1.5rem;
  }
  .pc-nav__link--sub {
    font-size: 1rem;
  }
  .pc-nav__link--sm {
    font-size: 1.5rem;
  }

  .pc-nav__contact {
    background: var(--c-white);
    border-radius: 1rem;
    padding: 2.5rem;
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
    width: auto;
    flex-direction: column;
  }
  .pc-nav__contact-info {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex-shrink: 0;
    min-width: 17rem;
  }
  .pc-nav__contact-head {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  .pc-nav__contact-en {
    font-family: var(--f-futura);
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.3;
    color: var(--c-green);
  }
  .pc-nav__contact-ja {
    font-family: var(--f-jp);
    font-size: 1.75rem;
    font-weight: 500;
    line-height: 1.5;
    color: var(--c-green-btn);
  }
  .pc-nav__contact-desc {
    font-family: var(--f-jp);
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    line-height: 2;
    color: var(--c-green-btn);
  }
  .pc-nav__contact-sns {
    display: flex;
    gap: 0.5rem;
    align-items: center;
  }
  .pc-nav__contact-sns a {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s;
  }
  .pc-nav__contact-sns a:hover {
    opacity: 0.8;
  }
  .pc-nav__contact-sns img {
    filter: invert(68%) sepia(27%) saturate(500%) hue-rotate(128deg)
      brightness(0.95);
  }
  .pc-nav__contact-btns {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    flex: 1;
    min-width: 0;
  }
  .pc-nav__contact-btns .contact-btn {
    width: 100%;
    gap: 0.75rem;
    padding: 0.875rem 1.25rem 0.875rem 2rem;
    height: auto;
  }
  .pc-nav__contact-btns .contact-btn__title {
    font-size: 0.9375rem;
    white-space: nowrap;
  }
  .pc-nav__contact-btns .contact-btn__sub {
    font-size: 0.8125rem;
  }
  .pc-nav__contact-btns .contact-btn__sep {
    height: 2.5rem;
  }

  .mobile-nav__close {
    position: absolute;
    top: calc((var(--h-header) - 3.125rem) / 2);
    right: 2.9375rem;
    width: 3.125rem;
    height: 3.125rem;
    background: var(--c-white);
    border: none;
    border-radius: 50%;
    color: var(--c-green-btn);
    font-size: 1.375rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: opacity 0.2s;
  }
  .mobile-nav__close:hover {
    opacity: 0.8;
  }

  .mobile-nav__sp-list,
  .mobile-nav__sp-contact {
    display: none !important;
  }
}

@media (min-width: 80rem) and (max-width: 90rem) {
  .pc-nav__links {
    gap: 4rem;
  }
  .pc-nav__inner {
    padding: 8.5rem 4.5rem 4rem;
  }
}
@media (min-width: 48.0625rem) and (max-width: 80rem) {
  .pc-nav__links {
    gap: 3rem;
  }
  .pc-nav__inner {
    padding: 8.5rem 3.5rem 4rem;
  }
}

@media (min-width: 48.0625rem) and (max-width: 76.875rem) {
  .pc-nav__inner {
    padding: 6.5rem 2.5rem 3rem;
    gap: 2.5rem;
  }
  .pc-nav__links {
    grid-template-columns: revert-layer;
    column-gap: 4rem;
    row-gap: 2.5rem;
    justify-content: center;
  }

  .pc-nav__contact {
    grid-column: 1 / -1;
    width: 100%;
  }

  .pc-nav__links_left {
    flex-direction: row;
    gap: 4rem;
    justify-content: flex-end;
  }
  .pc-nav__link--main {
    font-size: 1.125rem;
  }
  .pc-nav__link--sub,
  .pc-nav__link--sm {
    font-size: 1rem;
    white-space: normal;
    text-align: right;
  }

  .pc-nav__contact {
    flex-direction: column;
    gap: 1.25rem;
  }
  .pc-nav__contact-info {
    flex-direction: column;
    min-width: unset;
    width: auto;
  }
  .pc-nav__contact-desc {
    white-space: normal;
    font-size: 0.875rem;
  }

  .pc-nav__contact-btns {
    flex-direction: row;
    gap: 1rem;
    width: 100%;
  }
  .pc-nav__contact-btns .contact-btn {
    flex: 1;
    gap: 1rem;
    padding: 0.875rem 1.25rem 0.875rem 2rem;
  }
}

@media (max-width: 48rem) {
  .site-header.is-open {
    background: #f2efeb;
  }
  .mobile-nav {
    position: fixed;
    inset: 0;
    z-index: 99;
    background: #f2efeb;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    padding: 7rem 1.5rem 3rem;
    overflow-y: auto;
  }
  .mobile-nav.is-open {
    display: flex;
  }

  .pc-nav__inner {
    display: none !important;
  }

  .mobile-nav__sp-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
  }
  .mobile-nav__sp-list > li:first-child {
    border-top: 1px solid rgba(255, 255, 255, 0.25);
  }
  .mobile-nav__sp-list > li > a {
    display: block;
    padding: 0.75rem 0;
    text-align: center;
  }
  .mobile-nav__sp-list a {
    color: var(--c-green-btn);
    font-family: var(--f-jp);
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
  }

  .mobile-nav__sp-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 0.75rem 0;
  }
  .mobile-nav__sp-toggle {
    flex-shrink: 0;
    width: 1.625rem;
    height: 1.625rem;
    border-radius: 50%;
    border: none;
    background: none;
    color: var(--c-green-btn);
    font-size: 1.125rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    transition:
      transform 0.2s,
      background 0.2s;
  }
  .mobile-nav__sp-toggle[aria-expanded="true"] {
    transform: rotate(45deg);
    background: rgba(255, 255, 255, 0.15);
  }

  .mobile-nav__sp-sub {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .mobile-nav__sp-sub:not([hidden]) {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.25rem 0 0.25rem 2rem;
  }
  .mobile-nav__sp-sub a {
    font-size: 0.9375rem !important;
    opacity: 0.8;
  }

  .mobile-nav__sp-contact {
    width: 100%;
    margin-top: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  .mobile-nav__sp-contact-btns {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  .mobile-nav__sp-contact .contact-btn {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 1rem 1.375rem 1rem 2.25rem;
    gap: 0.75rem;
    max-width: 330px;
  }
  .mobile-nav__sp-contact .contact-btn__icon {
    grid-column: unset;
    grid-row: unset;
    flex-shrink: 0;
  }
  .mobile-nav__sp-contact .contact-btn__icon img {
    max-height: 1.5rem;
  }
  .mobile-nav__sp-contact .contact-btn:last-child {
    padding: 1rem 1.375rem 1rem 2.6rem;
  }
  .mobile-nav__sp-contact .contact-btn:last-child .contact-btn__icon img {
    height: 2.25rem;
    max-height: 2.25rem;
    width: auto;
  }
  .mobile-nav__sp-contact .contact-btn__text {
    grid-column: unset;
    grid-row: unset;
    flex: 1;
    align-items: flex-start;
    gap: 0.2rem;
  }
  .mobile-nav__sp-contact .contact-btn__title {
    font-size: 0.875rem;
    white-space: nowrap;
  }
  .mobile-nav__sp-contact .contact-btn__sub {
    font-size: 0.75rem;
  }
  .mobile-nav__sp-contact .contact-btn__sep {
    grid-column: unset;
    grid-row: unset;
    height: 1.75rem;
  }
  .mobile-nav__sp-contact .contact-btn__arrow {
    grid-column: unset;
    grid-row: unset;
  }

  .mobile-nav__close {
    display: none;
    position: absolute;
    top: 1.25rem;
    right: 1.5rem;
    background: none;
    border: none;
    color: var(--c-white);
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
  }
}

.page-hero {
  position: relative;
  background: var(--c-green);
  padding: 5.5rem 0 8rem 10rem;
  overflow: hidden;
}
.page-hero__inner {
  position: relative;
  z-index: 2;
}

.page-hero__en {
  font-family: var(--f-jp);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.15rem;
  color: var(--c-white);
  line-height: 1.3;
  margin-bottom: 0.5rem;
}
.page-hero__ja {
  font-family: var(--f-jp);
  font-size: 2.25rem;
  font-weight: 500;
  letter-spacing: 0.0225rem;
  color: var(--c-white);
  line-height: 1.5;
}

.page-hero__wave {
  position: absolute;
  bottom: -0.125rem;
  left: 0;
  width: 100%;
  z-index: 3;
  display: block;
  height: auto;
}

.page-hero__deco {
  position: absolute;
  right: -1.875rem;
  bottom: -12.5rem;
  width: 50%;
  z-index: 1;
  pointer-events: none;
  opacity: 0.7;
}

.error-section {
  background: var(--c-bg);
  padding: 10rem 1.5rem 12rem;
  display: flex;
  justify-content: center;
}
.error-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.5rem;
  text-align: center;
}
.error-txt {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: center;
}
.error-code {
  font-family: var(--f-jp);
  font-size: 2rem;
  font-weight: 700;
  color: var(--c-green-btn);
  letter-spacing: 0.16rem;
  line-height: 1.5;
}
.error-title {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--c-text);
  letter-spacing: 0.075rem;
  line-height: 1.8;
}
.error-body {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: var(--c-text);
  letter-spacing: 0.05rem;
  line-height: 1.8;
}
.error-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15.6875rem;
  height: 3.625rem;
  padding: 0.75rem 2.25rem;
  background: var(--c-green-btn);
  border-radius: 5rem;
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.06);
  color: var(--c-white);
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.028125rem;
  text-decoration: none;
  white-space: nowrap;
  transition:
    opacity 0.2s,
    transform 0.2s;
}
.error-btn:hover {
  opacity: 0.9;
  transform: translateY(-0.125rem);
}

.thanks-section {
  background: var(--c-bg);
  padding: 8.5rem 1.5rem;
  display: flex;
  justify-content: center;
  min-height: 30vh;
}
.thanks-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4.5rem;
  text-align: center;
}
.thanks-txt {
  font-family: var(--f-jp);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--c-text);
  letter-spacing: 0.0625rem;
  line-height: 2;
}

.faq-main {
  padding: 8.5rem 14.375rem 12rem;
  display: flex;
  flex-direction: column;
  gap: 4rem;
  background: var(--c-bg);
}
.faq-lead {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-text);
  text-align: center;
  line-height: 1.8;
}
.faq-inner {
  display: flex;
  gap: 7.3125rem;
  align-items: flex-start;
}

.faq-sidebar {
  position: sticky;
  top: calc(var(--h-header) + 2rem);
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  flex-shrink: 0;
}
.faq-tag {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-align: left;
  transition: opacity 0.2s;
}
.faq-tag:hover {
  opacity: 0.8;
}
.faq-tag__dot {
  width: 0.3125rem;
  height: 0.3125rem;
  border-radius: 50%;
  background: rgba(66, 66, 66, 0.3);
  flex-shrink: 0;
  transition: background 0.2s;
}
.faq-tag--active .faq-tag__dot {
  background: #1b998a;
}
.faq-tag__label {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  color: rgba(66, 66, 66, 0.7);
  line-height: 1.8;
  white-space: nowrap;
  transition:
    color 0.2s,
    font-weight 0.2s;
}
.faq-tag--active .faq-tag__label {
  font-weight: 700;
  color: #1b998a;
}

.faq-articles {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3rem;
  min-width: 0;
}
.faq-category {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.faq-category__title {
  font-family: var(--f-jp);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.8;
}
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  list-style: none;
}

.faq-item {
  border-radius: 0.625rem;
  box-shadow: 0 0 0.1875rem #7bcbc5;
  overflow: hidden;
}
.faq-item__q {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1rem 1.5rem;
  background: var(--c-white);
  cursor: pointer;
  transition: background 0.2s;
  user-select: none;
}
.faq-item__q:hover {
  background: #f4fefe;
}

.faq-q-icon,
.faq-a-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
}
.faq-q-icon {
  background: var(--c-green);
  color: var(--c-white);
}
.faq-a-icon {
  background: var(--c-white);
  color: var(--c-green-btn);
}

.faq-item__text {
  flex: 1;
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  color: var(--c-black);
  line-height: 1.5;
}

.faq-item__chevron {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.faq-item__chevron::before,
.faq-item__chevron::after {
  content: "";
  position: absolute;
  background: var(--c-text);
  border-radius: 0.0625rem;
  transition:
    transform 0.3s,
    opacity 0.3s;
}
.faq-item__chevron::before {
  width: 100%;
  height: 0.125rem;
}
.faq-item__chevron::after {
  width: 0.125rem;
  height: 100%;
}
.faq-item.is-open .faq-item__chevron::after {
  opacity: 0;
  transform: rotate(90deg);
}

.faq-item__a {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 0 1.5rem;
  background: var(--c-green);
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.faq-item.is-open .faq-item__a {
  max-height: 30rem;
  padding: 1rem 1.5rem;
}
.faq-item__a-text {
  flex: 1;
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  color: var(--c-white);
  line-height: 1.5;
}
.faq-item__a-text p + p {
  margin-top: 0.5rem;
}

.line-float-btn {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%) translateX(1.5rem);
  z-index: 90;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.875rem;
  padding: 2rem 1.25rem;
  background: #fdfcfc;
  border-radius: 0.625rem 0 0 0.625rem;
  box-shadow: 0 0 0.4375rem rgba(66, 66, 66, 0.3);
  text-decoration: none;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.line-float-btn.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%) translateX(0);
}
.line-float-btn.is-visible:hover {
  opacity: 0.85;
}
.line-float-btn__icon {
  width: 2.0625rem;
  height: 2.0625rem;
  display: block;
}
.line-float-btn__text {
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1b998a;
  text-align: center;
  letter-spacing: 0.028125rem;
  line-height: 1.5;
  writing-mode: vertical-rl;
  text-orientation: upright;
}

.page-main {
  padding: 8.5rem 15rem 12.5rem;
  display: flex;
  flex-direction: column;
  gap: 3rem;
  background: var(--c-bg);
}
.page-main__lead {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.8;
  color: var(--c-black);
}

.policy-list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.policy-item {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.policy-item__title {
  font-family: var(--f-jp);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.8;
  color: var(--c-text);
}
.policy-item__body {
  font-family: var(--f-jp);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  color: #000;
}
.policy-item__body a {
  color: var(--c-link);
  text-decoration: underline;
  text-underline-offset: 0.125rem;
}
.policy-item__body + .policy-item__body {
  margin-top: 0.5rem;
}

.policy-item__ul {
  display: flex;
  flex-direction: column;
}
.policy-item__ul li {
  font-family: var(--f-jp);
  font-size: 0.875rem;
  line-height: 1.8;
  color: #000;
  padding-left: 1em;
  position: relative;
}
.policy-item__ul li::before {
  content: "・";
  position: absolute;
  left: 0;
}

.policy-note {
  font-family: var(--f-jp);
  font-size: 0.875rem;
  line-height: 1.8;
  color: #000;
}

.fixednav {
  display: none;
}
@media (min-width: 1042px) {
  .fixednav {
    position: fixed;
    top: 7rem;
    right: 3.8rem;
    z-index: 80;
    display: block;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition:
      opacity 0.3s ease,
      visibility 0.3s ease,
      transform 0.3s ease;
    pointer-events: auto;
  }
  .fixednav.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
  }
  .fixednav__list {
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.625rem;
  }
  .fixednav__item a {
    display: block;
    font-family: var(--f-jp);
    font-size: 1.11rem;
    font-weight: 500;
    color: var(--c-white);
    text-decoration: none;
    letter-spacing: 0.03em;
    white-space: nowrap;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    transition: opacity 0.2s;
  }
  .fixednav__item a:hover {
    opacity: 0.7;
  }
}

.contact-section {
  position: relative;
  overflow: hidden;
  z-index: 2;
  margin-top: -6rem;
}

.contact-shape {
  line-height: 0;
}
.contact-shape__wave {
  width: 100%;
  height: auto;
}

.contact-section_inner {
  background: var(--c-cream);
}

.contact-section__innerItem {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 5rem 11.5rem 8.5rem 0;
  gap: 3rem;
  max-width: 1288px;
  margin: 0 auto;
}

.contact-section__imgs {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 2.3125rem;
}

.contact-img-main {
  margin-left: 3.35rem;
  transform: scaleX(-1);
  width: 17.6875rem;
  height: 11.6875rem;
  border-radius: 0.25rem;
  overflow: hidden;
}

.contact-img-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.contact-img-sub {
  transform: scaleX(-1);
  width: 13.6875rem;
  height: 9.125rem;
  border-radius: 0.25rem;
  overflow: hidden;
}

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

.contact-section__right {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  justify-content: space-between;
}
.contact-section__text {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  flex-shrink: 0;
}

.contact-heading {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.contact-heading__en {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.135rem;
  color: var(--c-green);
  line-height: 1.3;
}
.contact-heading__ja {
  font-family: var(--f-jp);
  font-size: 1.75rem;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.5;
}
.contact-desc {
  font-family: var(--f-jp);
  font-size: 1rem;
  letter-spacing: 0.04rem;
  color: var(--c-text);
  line-height: 2;
}

.contact-btns {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex-shrink: 0;
}
.contact-btn {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.375rem 1rem 2.25rem;
  width: 28.75rem;
  background: var(--c-yellow);
  border: 0.0625rem solid #ddd;
  border-radius: 1rem;
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.14);
  color: var(--c-white);
  text-decoration: none;
  transition:
    opacity 0.2s,
    transform 0.2s;
}
.contact-btn:hover {
  opacity: 0.9;
  transform: translateY(-0.125rem);
}
.contact-btn__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.contact-btn__icon img {
  height: 1.5rem;
  width: auto;
}
.contact-btn:last-child .contact-btn__icon img {
  height: 2.25rem;
}
.pc-nav__contact-btns .contact-btn:first-child .contact-btn__icon img {
  height: 1.875rem;
}
.contact-btn__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}
.contact-btn__title {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.09rem;
  line-height: 1.3;
  white-space: normal;
}
.contact-btn__sub {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1;
}
.contact-btn__sep {
  width: 0.0625rem;
  height: 4.5rem;
  background: rgba(255, 255, 255, 0.6);
  flex-shrink: 0;
}
.contact-btn__arrow {
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.028rem;
  flex-shrink: 0;
}

.site-footer {
  background: var(--c-green-dark);
  padding: 8rem 7.5rem 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.footer-inner {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 5rem;
  margin-bottom: 2.5rem;
  max-width: 1200px;
}
.footer-upper {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
}
.footer-logo {
  display: block;
  width: 9.0625rem;
  flex-shrink: 0;
}
.footer-logo img {
  width: 100%;
  height: auto;
}

.footer-nav {
  display: flex;
  gap: 3rem;
  align-items: flex-start;
  color: var(--c-white);
  font-family: var(--f-jp);
}
.footer-nav__col {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.footer-nav__h-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.footer-nav__toggle {
  display: none;
}
.footer-nav__sub {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.footer-nav__h {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.footer-nav__h a,
.footer-nav__s a {
  color: var(--c-white);
  transition: opacity 0.2s;
}
.footer-nav__h a:hover,
.footer-nav__s a:hover {
  opacity: 0.7;
}
.footer-nav__s {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  white-space: nowrap;
}

.footer-left {
  display: flex;
  flex-direction: column;
  gap: 1.875rem;
  flex-shrink: 0;
}

.footer-sns {
  display: flex;
  flex-direction: row;
  gap: 0.75rem;
}
.footer-sns a {
  display: flex;
  align-items: center;
  transition: opacity 0.2s;
}
.footer-sns a:hover {
  opacity: 0.7;
}
.footer-sns img {
  width: 2.8125rem;
  height: 2.75rem;
  object-fit: contain;
}

.footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  text-align: center;
}
.footer-pagetop {
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  transition: opacity 0.2s;
}
.footer-pagetop:hover {
  opacity: 0.7;
}
.footer-privacy {
  font-family: var(--f-jp);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--c-white);
  line-height: 1.5;
  transition: opacity 0.2s;
}
.footer-privacy:hover {
  opacity: 0.7;
}
.footer-copyright {
  font-family: var(--f-jp);
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--c-white);
}

@media (max-width: 75rem) {
  .error-section {
    padding: 12rem 1.5rem 10rem;
  }
  .thanks-section {
    padding: 6.25rem 1.5rem;
  }
  .faq-main {
    padding: 6.25rem 7.5rem 10rem;
  }
  .faq-inner {
    gap: 4rem;
  }
  .page-main {
    padding: 6.25rem 7.5rem 11rem;
  }
  .post-main {
    padding: 10rem 0 6rem;
  }
  .contact-section__inner {
    padding: 3.75rem 5rem 5rem 0;
  }
  .contact-btn {
    width: 23.75rem;
  }
}

@media (max-width: 64rem) {
  .page-hero {
    padding: 7.5rem 2.5rem 5rem 3.75rem;
  }
  .page-main {
    padding: 5rem 3.75rem 10rem;
  }
  .post-main {
    padding: 5rem 0;
  }
  .post-thumbnail {
    height: auto;
  }

  .faq-main {
    padding: 5rem 3.75rem 10rem;
  }
  .faq-inner {
    flex-direction: column;
    gap: 2rem;
    align-items: center;
  }
  .faq-sidebar {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
  }
  .line-float-btn {
    display: none;
  }

  .contact-section__inner {
    flex-direction: column;
    align-items: center;
    padding: 3.75rem 2.5rem;
  }
  .contact-section__imgs {
    display: none;
  }
  .contact-section__right {
    flex-direction: column;
    align-items: center;
    width: 100%;
  }
  .contact-section__text {
    align-items: center;
    text-align: center;
  }
  .contact-btns {
    width: 100%;
    max-width: 32.75rem;
  }
  .contact-btn {
    width: 100%;
  }
  .footer-upper {
    flex-direction: column;
    gap: 2.5rem;
  }
  .footer-nav {
    flex-wrap: wrap;
    gap: 2rem;
  }
  .footer-sns {
    flex-direction: row;
  }
}

.top-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  width: 15.6875rem;
  height: 3.625rem;
  padding: 0.75rem 1.875rem 0.75rem 2.25rem;
  border-radius: 5rem;
  font-family: var(--f-en);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.028125rem;
  white-space: nowrap;
  transition:
    opacity 0.2s,
    transform 0.2s;
}
.top-btn:hover {
  opacity: 0.85;
  transform: translateY(-0.125rem);
}
.top-btn--fill {
  background: var(--c-green-btn);
  color: var(--c-white);
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.06);
}
.top-btn--outline {
  background: var(--c-white);
  border: 0.0625rem solid var(--c-green-btn);
  color: #259e90;
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.06);
}
.top-btn--outline-wh {
  background: var(--c-white);
  border: 0.09375rem solid var(--c-white);
  color: var(--c-green-btn);
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.1);
}

.sp_only {
  display: none;
}

.sec-head {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 22%;
}

.sec-head--service {
  padding-left: 4rem;
}

.sec-head--center {
  align-items: center;
  text-align: center;
}
.sec-head__en {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.135rem;
  line-height: 1.3;
  color: var(--c-green);
}
.sec-head__en--teal {
  color: var(--c-green);
}
.sec-head__en--white {
  color: var(--c-white);
}
.sec-head__ja {
  font-family: var(--f-jp);
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--c-white);
}

.service-section__ja {
  font-size: 2rem;
}

.service-section__en {
  color: var(--c-white);
}

.sec-head__ja--gray {
  color: #545353;
}
.sec-head__ja--white {
  color: var(--c-white);
}

.sec-shape {
  position: relative;
  height: 5rem;
  overflow: hidden;
}
.sec-shape--cream-to-green {
  width: 100%;
  height: auto;
}
.sec-shape--white-to-green {
  background: var(--c-white);
  margin-top: -1px;
}
.sec-shape--white-to-green::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 130%;
  height: 450%;
  border-radius: 50%;
  background: var(--c-green);
}

.sec-bg-note {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 12.9375rem;
  overflow: hidden;
  pointer-events: none;
  background-image: url(assets/img/fv__bg-note.webp);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% 17.9375rem;
}

.fv {
  position: relative;
  background: var(--c-green);
  height: 53rem;
  overflow: hidden;
}

.fv__bg-note {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 12.9375rem;
  overflow: hidden;
  pointer-events: none;
  background-image: url("assets/img/fv__bg-note.webp");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% 12.9375rem;
}
.fv__bg-note-img {
  position: absolute;
  left: 0;
}
.fv__bg-note-img--h {
  bottom: 0;
  width: 100%;
  height: auto;
}
.fv__bg-note-img--v {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(90deg);
  width: auto;
  height: 200%;
}

.fv__inner {
  position: relative;
  height: 100%;
  max-width: var(--max-w);
  margin: 0 auto;
}

.fv__catch {
  position: absolute;
  left: 10rem;
  top: 6rem;
  display: flex;
  flex-direction: row;
  gap: 1.6rem;
  align-items: flex-start;
  z-index: 1;
}
.fv__catch span {
  display: block;
  writing-mode: vertical-rl;
  font-feature-settings: "vert" 1;
  font-family: var(--f-jp);
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--c-white);
  letter-spacing: 0.48em;
}

.fv__img-cta {
  display: flex;
}

.fv__img-wrap {
  position: absolute;
  left: clamp(17rem, 26.6vw, 24rem);
  top: 6.125rem;
  width: clamp(36rem, 52.2vw, 47rem);
  height: auto;
  aspect-ratio: 752 / 558;
  overflow: hidden;
}
.fv__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fv__cta {
  position: absolute;
  right: 1.6875rem;
  top: 32rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.fv__cta-btn {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.375rem 1.875rem 1.375rem 2.25rem;
  border: 0.0625rem solid #ddd;
  border-radius: 5rem;
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.08);
  transition:
    opacity 0.2s,
    transform 0.2s;
  width: 22.75rem;
}
.fv__cta-btn:hover {
  opacity: 0.9;
  transform: translateY(-0.125rem);
}
.fv__cta-btn--primary {
  background: var(--c-yellow);
}
.fv__cta-btn--sub {
  background: #f2faf9;
}
.fv__cta-text {
  flex: 1;
  font-family: var(--f-en);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.028125rem;
  line-height: 1;
}
.fv__cta-btn--primary .fv__cta-text {
  color: var(--c-white);
}
.fv__cta-btn--sub .fv__cta-text {
  color: #1b998a;
}
.fv__cta-text small {
  font-size: 0.75rem;
}
.fv__cta-sep {
  display: block;
  width: 0.0625rem;
  height: 1.5rem;
  background: currentColor;
  opacity: 0.5;
}
.fv__cta-btn--primary .fv__cta-sep {
  background: rgba(255, 255, 255, 0.6);
}
.fv__cta-btn--sub .fv__cta-sep {
  background: rgba(27, 153, 138, 0.4);
}
.fv__cta-arrow {
  font-size: 0.9375rem;
  font-weight: 700;
}
.fv__cta-btn--primary .fv__cta-arrow {
  color: var(--c-white);
}
.fv__cta-btn--sub .fv__cta-arrow {
  color: #1b998a;
}

.fv__scroll {
  position: absolute;
  left: 4.4375rem;
  top: 38.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.fv__scroll-text {
  writing-mode: vertical-lr;
  font-family: var(--f-jp);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.14rem;
  color: var(--c-white);
  line-height: 2.52;
}
.fv__scroll-arrow {
  display: block;
  height: 5.5rem;
  width: auto;
}

.about-section {
  background: #f2efeb;
  overflow: hidden;
  background:
    linear-gradient(
      205deg,
      rgba(0, 0, 0, 0) 79.2%,
      rgba(102, 102, 102, 0.2) 123.05%
    ),
    var(--primary_bage, #f2efeb);
}
.about-section__inner {
  display: flex;
  gap: 2.5rem;
  align-items: center;
  justify-content: flex-end;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 7rem 0 1rem;
}
.about-section__txt {
  display: flex;
  gap: 4rem;
  align-items: flex-start;
  padding-bottom: 4rem;
  flex-shrink: 0;
  max-width: 60%;
  justify-content: flex-end;
}
.about-section__title {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  flex-shrink: 0;
  max-width: 19%;
}
.about-section__label {
  writing-mode: vertical-lr;
  font-family: var(--f-jp);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--c-green);
  letter-spacing: 0.15rem;
  line-height: 1.3;
  flex-shrink: 0;
}
.about-section__h2 {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  flex-shrink: 0;
}
.about-section__h2 p {
  writing-mode: vertical-rl;
  font-feature-settings: "vert" 1;
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  color: #545353;
  letter-spacing: 0.2em;
}
.about-section__body {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
  padding-top: 3.5rem;
  flex-shrink: 0;
  max-width: 74%;
}
.about-section__text {
  font-family: var(--f-jp);
  font-size: 1.075rem;
  font-weight: 500;
  color: var(--c-text);
  line-height: 2.2;
}

.about-photos {
  position: relative;
  width: clamp(22rem, 35vw, 36rem);
  aspect-ratio: 36 / 47;
}
.about-photo {
  position: absolute;
  overflow: hidden;
  border-radius: 0.5rem;
}
.about-photo--1 {
  width: 70%;
  aspect-ratio: 422 / 282;
  top: 0;
  right: 0;
}

.about-photo--2 {
  width: 60%;
  aspect-ratio: 344 / 239;
  bottom: 15%;
  left: -10px;
}

.about-photo--3 {
  width: 40%;
  aspect-ratio: 253 / 176;
  bottom: 0;
  right: 0;
}

.service-section {
  position: relative;
  background: var(--c-green);
  overflow: hidden;
  padding: 5.5rem 7.5rem 10rem;
}
.service-section__wrap {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
  align-items: flex-start;
  overflow: hidden;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
}
.service-section__bg-note {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 16.625rem;
  overflow: hidden;
  pointer-events: none;
}
.service-section__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  width: 100%;
  z-index: 1;
  margin: 0 auto;
}

.service-card {
  display: flex;
  gap: 2.5rem;
  align-items: center;
  border-radius: 1rem;
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.09);
}
.service-card--business {
  background: #f2faf9;
  padding: 3.5rem 3rem 3.5rem 5rem;
}
.service-card--personal {
  background: rgba(255, 255, 255, 0.9);
  padding: 3.5rem 8.5rem 3.5rem 5rem;
  gap: 8.5rem;
}
.service-card__text {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 40%;
  flex-shrink: 0;
}
.service-card__h3 {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  color: #1b998a;
  line-height: 1.5;
}
.service-card__body {
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  color: var(--c-text);
  line-height: 1.8;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.service-card__body-p {
  line-height: 2;
}

.service-grid {
  display: grid;
  flex: 1;
  justify-content: center;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  width: 100%;
}

.service-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  height: 10.9375rem;
  background: var(--c-green);
  border-radius: 1rem;
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.14);
  overflow: hidden;
  padding: 2.5rem 2.5rem 2rem;
  text-align: center;
  transition:
    opacity 0.2s,
    transform 0.2s,
    background 0.2s;
  cursor: pointer;
}
.service-item:hover {
  opacity: 0.9;
  transform: translateY(-0.125rem);
  background: var(--c-green-dark);
}
.service-item--coaching {
  width: 42%;
  flex-shrink: 0;
}
.service-item__num {
  position: absolute;
  top: 0;
  left: 0;
  width: 3.625rem;
  height: 3.375rem;
  background: #f2faf9;
  border-radius: 0 0 1.125rem 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-jp);
  font-size: 1.25rem;
  font-weight: 500;
  color: #1b998a;
}
.service-item__icon {
  display: block;
  max-height: 3.4375rem;
  width: clamp(2rem, 2.8vw, 3.4375rem);
  object-fit: contain;
}
.service-item__icon-wrap {
  position: relative;
  display: block;
  width: 3.3125rem;
  height: 2.5625rem;
  flex-shrink: 0;
}
.service-item__icon-wrap--coaching {
  width: 3.375rem;
  height: 3.1875rem;
}
.service-item__icon-part {
  position: absolute;
  object-fit: contain;
}
.service-item__name {
  font-family: var(--f-jp);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  font-weight: 700;
  color: var(--c-white);
  line-height: 1.5;
  letter-spacing: 0.0625rem;
  text-align: center;
}
.service-item__arrow {
  position: absolute;
  bottom: 1.25rem;
  right: 1.25rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--c-white);
  line-height: 1;
}

.works-section {
  background: var(--c-white);
  padding: 8rem 0 5.5rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  overflow: hidden;
}
.works-section__inner {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
  width: 100%;
  margin: 0 auto;
}
.works-section__head {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 0 10rem 0 14.2rem;
  gap: clamp(4rem, 7vw, 8rem);
  max-width: 98rem;
}
.works-section__lead {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  color: #545353;
  line-height: 1.8;
  letter-spacing: 0.06rem;
  padding-top: 5rem;
}

.works-photos-outer {
  width: 100%;
  overflow: hidden;
}
.works-photos {
  display: flex;
  gap: 2rem;
  align-items: center;
  width: max-content;
  animation: works-marquee 35s linear infinite;
}
.works-photos-outer:hover .works-photos,
.works-photos-outer:focus-within .works-photos {
  animation-play-state: paused;
}
@keyframes works-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .works-photos {
    animation: none;
  }
}
.works-photo {
  flex-shrink: 0;
  border-radius: 0.375rem;
  overflow: hidden;
}
.works-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.works-photo--lg {
  width: 25.8125rem;
  height: 17.1875rem;
  border-radius: 0;
}
.works-photo--md {
  width: 20rem;
  height: 13.375rem;
}
.works-photo--sm {
  width: 23.6875rem;
  height: 15.8125rem;
}

.works-section__body {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2.5rem;
  padding-right: clamp(4rem, 10vw, 15rem);
  max-width: 95rem;
}
.works-section__text {
  width: 44.5rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  color: var(--c-text);
  line-height: 2.2;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.works-section__text p {
  font-size: clamp(1rem, 1.2vw, 1.0625rem);
}

.works-section__text p span {
  font-weight: 500;
}

.voice-section {
  overflow: hidden;
  position: relative;
  z-index: 85;
}

.voice-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.5rem;
  margin: 0 auto;
  background-color: var(--c-green);
  padding: 3.5rem 7.5rem 5rem;
}
.voice-section .top-btn--outline-wh {
  align-self: center;
}

.voice-carousel {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
}
.voice-carousel__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  opacity: 0.8;
  transition: opacity 0.2s;
  flex-shrink: 0;
  display: none;
  align-items: center;
  justify-content: center;
  width: 1.125rem;
  height: 2.25rem;
}
.voice-carousel__btn::after {
  content: "";
  display: block;
  width: 0.75rem;
  height: 0.75rem;
  border-top: 2.5px solid rgba(255, 255, 255, 0.85);
  border-right: 2.5px solid rgba(255, 255, 255, 0.85);
  border-radius: 1px;
  flex-shrink: 0;
}
.voice-carousel__btn:hover {
  opacity: 1;
}
.voice-carousel__btn--prev::after {
  transform: rotate(-135deg);
}
.voice-carousel__btn--next::after {
  transform: rotate(45deg);
}
.voice-cards-wrap {
  width: 100%;
}
.voice-cards {
  display: flex;
  gap: 1.75rem;
}

.voice-card {
  flex: 1 1 0;
  background: #f2faf9;
  border-radius: 1.25rem;
  box-shadow: 0 0.1875rem 0.5625rem rgba(0, 0, 0, 0.09);
  padding: 2rem 2.75rem;
  display: flex;
  flex-direction: column;
  gap: .8rem;
}
.voice-card__head {
  display: flex;
  gap: 2rem;
  align-items: flex-end;
}
.voice-card__avatar {
  object-fit: contain;
  flex-shrink: 0;
}
.voice-card__meta {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.voice-card__name {
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--c-green-btn);
  line-height: 1.8;
}
.voice-card__tag {
  font-family: var(--f-jp);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--c-green);
  line-height: 1.8;
}
.voice-card__title {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 700;
  color: #2b2b2b;
  line-height: 1.65;
  margin-top: 0.35rem;
}
.voice-card__body {
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  color: #333;
  line-height: 1.8;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.news-section {
  position: relative;
  background: var(--c-bg);
  padding: 7.5rem 7.5rem 5.5rem;
  overflow: hidden;
  position: relative;
  background-color: var(--c-bg);
  background-image: url("assets/img/news_note_bg.webp");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: auto 100%;
  padding: 7.5rem 5.5rem 12rem;
  overflow: hidden;
}

.news-section .sec-head__ja {
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  letter-spacing: normal;
  line-height: 1.5;
  white-space: nowrap;
}

.news-section__bg-note {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.news-bg {
  position: relative;
  z-index: 1;
  background: var(--c-white);
  border-radius: 1rem;
  box-shadow:
    0.0625rem 0.125rem 0.625rem rgba(0, 0, 0, 0.05),
    0 0 0.25rem #7bcbc5;
  padding: 1rem;
  max-width: 75rem;
  margin: 0 auto;
}

.news-inner {
  background: #f2faf9;
  border-radius: 1rem;
  display: flex;
  gap: 6rem;
  align-items: flex-start;
  padding: 4rem 4.5rem 3.5rem 6rem;
}
.news-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2.5rem;
  padding-top: 1rem;
  flex-shrink: 0;
}

.news-articles {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.news-item {
  display: flex;
  align-items: flex-start;
  transition: opacity 0.2s;
  gap: 1rem;
}
.news-item:hover {
  opacity: 0.8;
}
.news-item__thumb {
  flex-shrink: 0;
  width: 11.0625rem;
  height: 7.375rem;
  border-radius: 0.625rem;
  overflow: hidden;
}
.news-item__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.news-item__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-self: stretch;
}
.news-item__tag-row {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.news-item-wrapper {
  display: flex;
}

.news-item__content_right {
  justify-content: center;
}

.news-item__dot {
  display: block;
  width: 0.3125rem;
  height: 0.3125rem;
  border-radius: 50%;
  background: var(--c-green-btn);
  flex-shrink: 0;
}
.news-item__tag {
  font-family: var(--f-jp);
  font-size: 0.75rem;
  font-weight: 700;
  color: #1b998a;
  line-height: 1.8;
}

.news-item__tag-row a {
  color: var(--c-green-btn);
  font-weight: 700;
}

.news-item__title {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 700;
  color: var(--c-text);
  line-height: 1.8;
}
.news-item__date {
  display: block;
  font-family: var(--f-jp);
  font-size: 1rem;
  color: #545353;
  line-height: 1.8;
}

.news-footer__btn {
  display: none;
}

@media (max-width: 80rem) {
  .voice-cards-wrap {
    overflow: hidden;
  }
  .voice-carousel__btn {
    display: flex;
  }
  .voice-carousel__btn--prev {
    left: -2.375rem;
  }
  .voice-carousel__btn--next {
    right: -2.375rem;
  }
  .voice-cards {
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    scroll-padding-left: 7.5rem;
  }
  .voice-cards::-webkit-scrollbar {
    display: none;
  }
  .voice-cards.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
  }
  .voice-card {
    flex: 0 0 100%;
    scroll-snap-align: start;
    max-width: none;
  }
}
@media (max-width: 75rem) {
  .fv__cta {
    left: auto;
    right: 1.5rem;
  }
  .fv__scroll {
    left: 2.5rem;
  }

  .about-section__inner {
    gap: 1.5rem;
  }

  .about-section__txt {
    gap: 3.5rem;
  }

  .about-section__title {
    gap: 1rem;
  }

  .service-section {
    padding: 5.5rem 3.75rem 10rem;
  }

  .service-card {
    padding: 3.5rem 2rem 3.5rem 3rem;
  }

  .service-card--personal {
    gap: 4.5rem;
  }

  .works-section__head {
    padding: 0 6rem 0 4rem;
    gap: 3rem;
  }

  .sec-head-works {
    width: 20%;
  }

  .works-section__body {
    padding-right: 7rem;
  }
  .works-photos {
    gap: 2rem;
  }
  .news-section {
    padding: 5rem 3.75rem 10rem;
  }
  .news-inner {
    gap: 3rem;
    padding: 3rem 3rem 3rem 4rem;
  }
  .sec-bg-note {
    background-size: auto 9rem;
  }

  .contact-section__innerItem {
    gap: 2rem;
  }

  .contact-section__right {
    gap: 1rem;
  }

  .contact-section__imgs {
    width: 33%;
  }

  .site-footer {
    padding: 7rem 2rem 2.5rem;
  }

  .footer-inner {
    align-items: center;
  }

  .footer-upper {
    flex-direction: column;
    gap: 2.5rem;
    align-items: center;
    max-width: 90%;
  }

  .footer-nav {
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: center;
  }

  .footer-left {
    align-items: center;
  }
}

@media (max-width: 64rem) {
  .sec-head {
    max-width: none;
    width: 100%;
  }

  .sp_only {
    display: block;
  }
  .pc_only {
    display: none;
  }

  .fv__img-wrap {
    left: 0rem;
    top: 8rem;
    position: relative;
    width: 93%;
    max-width: 41.5rem;
    height: auto;
    aspect-ratio: 208 / 179;
    border-radius: 0;
    overflow: hidden;
    margin: 0 auto;
  }
  .fv__cta {
    top: auto;
    bottom: 6rem;
    right: 1.5rem;
    left: auto;
  }

  .about-section__inner {
    flex-direction: column;
    padding: 5rem 3.75rem 7rem;
    gap: 4rem;
    align-items: center;
  }
  .about-section__txt {
    flex-direction: column;
    gap: 2rem;
    padding-bottom: 0;
    max-width: 100%;
  }
  .about-section__title {
    flex-direction: column;
    gap: 1rem;
    max-width: 100%;
  }
  .about-section__label {
    writing-mode: horizontal-tb;
    font-size: 1.25rem;
  }
  .about-section__h2 {
    flex-direction: column-reverse;
    gap: 0.875rem;
  }
  .about-section__h2 p {
    writing-mode: horizontal-tb;
    text-orientation: initial;
    font-feature-settings: normal;
    letter-spacing: normal;
  }
  .about-section__body {
    padding-top: 0;
    max-width: 100%;
  }
  .about-section__text {
    font-size: 0.9375rem;
    line-height: 2;
  }
  .about-photos {
    width: 100%;
    height: 25rem;
  }
  .about-photo--1 {
    width: 60%;
    height: auto;
    aspect-ratio: 422/282;
  }
  .about-photo--2 {
    top: 8rem;
    width: 45%;
    height: auto;
    aspect-ratio: 344/239;
  }
  .about-photo--3 {
    top: 18rem;
    right: 0;
    width: 35%;
    height: auto;
    aspect-ratio: 253/176;
  }

  .service-section {
    padding: 3.5rem 3.75rem 8rem;
  }

  .sec-head--service {
    padding-left: 2rem;
  }
  .service-section__wrap {
    gap: 1.5rem;
  }

  .service-card--business {
    flex-direction: column;
    padding: 2.5rem;
  }
  .service-card--personal {
    flex-direction: column;
    padding: 2.5rem;
    justify-content: flex-start;
    gap: 3rem;
  }
  .service-card__text {
    width: 100%;
  }
  .service-grid {
    width: 100%;
    grid-template-columns: repeat(2, 1fr);
  }

  .top-btn_sp {
    padding: 1.1rem 1.875rem 0.75rem 2.5rem;
  }

  .service-item {
    width: 100%;
  }
  .service-item--coaching {
    width: 70%;
  }

  .works-section__head {
    flex-direction: column;
    gap: 1.5rem;
    padding: 0 3.75rem;
  }

  .sec-head-works {
    width: 100%;
  }
  .works-section__body {
    padding: 0 3.75rem;
  }

  .works-section__lead {
    padding-top: 0;
    font-size: 1.125rem;
  }
  .works-photos {
    gap: 2rem;
  }
  .works-section__body {
    padding-right: 3.75rem;
    align-items: flex-start;
  }
  .works-section__text {
    width: 100%;
  }

  .news-inner {
    flex-direction: column;
    gap: 2rem;
  }
  .news-header {
    flex-direction: row;
    align-items: center;
    width: 100%;
    justify-content: space-between;
  }

  .news-articles {
    display: block;
    flex: none;
    width: 100%;
    min-width: 0;
    gap: 0;
  }

  .contact-section__innerItem {
    gap: 2rem;
    padding: 5rem 0px 8.5rem;
  }

  .news-header .sec-head {
    width: 100%;
    max-width: 50%;
    gap: 0.5rem;
  }
}

@media (max-width: 48rem) {
  :root {
    --h-header: 4rem;
  }

  .header-inner {
    padding: 0.5rem 1rem 0.5rem 1.25rem;
  }
  .header-logo {
    left: 1rem;
    width: 3.75rem;
    height: 3.125rem;
  }
  .header-sns {
    display: none;
  }
  .header-contact-btn {
    display: none;
  }

  .error-section {
    padding: 5rem 1.5rem 10rem;
  }
  .error-section__inner {
    gap: 2.5rem;
  }
  .error-code {
    font-size: 1.5rem;
    letter-spacing: 0.12rem;
  }
  .error-title {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }
  .error-body {
    font-size: 0.9375rem;
  }

  .thanks-section {
    padding: 5rem 1.5rem;
  }
  .thanks-section__inner {
    gap: 2.5rem;
  }
  .thanks-txt {
    font-size: 1rem;
    letter-spacing: 0.05rem;
  }

  .faq-main {
    padding: 3rem 1rem 10rem;
    gap: 1.5rem;
  }
  .faq-lead {
    font-size: 1rem;
    text-align: left;
  }
  .faq-item__text {
    font-size: 0.9375rem;
  }
  .faq-item__a-text {
    font-size: 0.875rem;
  }

  .page-hero {
    padding: 1.5rem 1.5rem 4.0625rem;
  }
  .page-hero__en {
    font-size: 0.875rem;
    letter-spacing: 0.105rem;
    margin-bottom: 0;
  }
  .page-hero__ja {
    font-size: 1.5rem;
  }
  .page-hero__wave {
    height: 2.0625rem;
  }

  .page-main {
    padding: 3.75rem 1.5re 10rem;
    gap: 2rem;
  }
  .page-main__lead {
    font-size: 0.875rem;
  }
  .policy-item__title {
    font-size: 1.0625rem;
  }

  .contact-section__innerItem {
    flex-direction: column;
    align-items: flex-end;
    padding: 2rem 0 4rem;
    gap: 1.5rem;
  }
  .contact-section__imgs {
    flex-direction: row;
    width: 88vw;
    margin-inline: auto;
    display: flex;
    gap: 1.25rem;
    align-items: center;
  }
  .contact-img-main {
    width: 80%;
    height: auto;
    aspect-ratio: 351 / 256;
    margin-left: 0;
    overflow: hidden;
  }
  .contact-img-sub {
    width: 105%;
    height: auto;
    aspect-ratio: 303 / 207;
    overflow: hidden;
  }
  .contact-section__right {
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 1.5rem;
  }
  .contact-section__text {
    align-items: flex-start;
    text-align: left;
    padding: 0 0 0 1.3rem;
    gap: 1rem;
  }
  .contact-heading__ja {
    font-size: 1.75rem;
  }
  .contact-desc {
    font-size: 0.9375rem;
  }
  .contact-btns {
    padding: 0;
    gap: 0.75rem;
    max-width: 330px;
    width: 100%;
  }

  .contact-btn {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100%;
    height: auto;
    padding: 1rem 1.375rem 1rem 2.25rem;
    gap: 0.75rem;
    max-width: 330px;
  }
  .contact-btn:last-child {
    padding: 1rem 1.375rem 1rem 2.6rem;
  }
  .contact-btn__icon {
    grid-column: unset;
    grid-row: unset;
    flex-shrink: 0;
  }
  .contact-btn__icon img {
    height: 1.5rem;
    max-height: 1.5rem;
    width: auto;
  }
  .contact-btn:last-child .contact-btn__icon img {
    height: 2.25rem;
    max-height: 2.25rem;
  }
  .contact-btn__text {
    grid-column: unset;
    grid-row: unset;
    flex: 1;
    align-items: flex-start;
    gap: 0.2rem;
  }
  .contact-btn__title {
    font-size: 0.875rem;
    white-space: nowrap;
  }
  .contact-btn__sub {
    font-size: 0.75rem;
  }
  .contact-btn__sep {
    grid-column: unset;
    grid-row: unset;
    height: 1.75rem;
  }
  .contact-btn__arrow {
    grid-column: unset;
    grid-row: unset;
  }

  .site-footer {
    padding: 3.75rem 1.5rem 2rem;
  }
  .footer-inner {
    gap: 2.5rem;
  }
  .footer-left {
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
  }
  .footer-sns {
    flex-direction: row;
    gap: 0.75rem;
  }
  .footer-nav {
    flex-direction: column;
    gap: 0;
  }

  .footer-nav__col {
    gap: 0;
  }
  .footer-nav__h-row {
    padding: 0.75rem 0;
  }
  .footer-nav__col > .footer-nav__h {
    padding: 0.75rem 0;
    white-space: normal;
  }
  .footer-nav__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    width: 1.5rem;
    height: 1.5rem;
    position: relative;
    flex-shrink: 0;
  }
  .footer-nav__toggle::before,
  .footer-nav__toggle::after {
    content: "";
    position: absolute;
    background: var(--c-white);
    border-radius: 1px;
    transition:
      transform 0.3s,
      opacity 0.3s;
  }
  .footer-nav__toggle::before {
    width: 0.75rem;
    height: 0.125rem;
  }
  .footer-nav__toggle::after {
    width: 0.125rem;
    height: 0.75rem;
  }
  .footer-nav__col.is-open .footer-nav__toggle::after {
    opacity: 0;
    transform: rotate(90deg);
  }
  .footer-nav__sub {
    max-height: 0;
    overflow: hidden;
    transition:
      max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
      padding-top 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    padding-top: 0;
  }
  .footer-nav__col.is-open .footer-nav__sub {
    max-height: 20rem;
    padding-bottom: 0.5rem;
  }

  .footer-copyright {
    font-size: 0.6875rem;
  }

  .top-btn {
    width: 100%;
    max-width: 18rem;
    text-align: center;
    justify-content: center;
  }
  .sec-shape {
    height: 3rem;
  }

  .about-section__inner {
    flex-direction: column;
    padding: 5rem 0 3rem;
    gap: 3.5rem;
    align-items: center;
  }
  .about-section__txt {
    flex-direction: column;
    gap: 2.5rem;
    padding-bottom: 0;
    max-width: 100%;
  }
  .about-section__title {
    flex-direction: column;
    gap: 1rem;
    margin: 0 1rem 0 1.3rem;
    max-width: 100%;
  }
  .about-section__label {
    writing-mode: horizontal-tb;
    font-size: 1.25rem;
  }
  .about-section__h2 {
    flex-direction: column-reverse;
    gap: 0.875rem;
  }
  .about-section__h2 p {
    writing-mode: horizontal-tb;
    font-size: clamp(1.25rem, 2vw, 1.58rem);
    writing-mode: horizontal-tb;
    text-orientation: initial;
    font-feature-settings: normal;
    letter-spacing: normal;
  }
  .about-section__body {
    padding-top: 0;
    padding-bottom: 1rem;
    gap: 2.5rem;
    padding: 0 1.62rem 0 4.13rem;
    max-width: 100%;
  }
  .about-section__text {
    font-size: 0.9375rem;
    line-height: 2;
  }

  .about-photos {
    width: 100%;
    aspect-ratio: 375 / 489;
    height: auto;
    flex-shrink: 0;
  }
  .about-photo {
    border-radius: 0.375rem;
  }
  .about-photo--1 {
    width: 73.07%;
    height: auto;
    aspect-ratio: 274 / 183;
    top: 0;
    left: 26.93%;
    right: auto;
  }
  .about-photo--2 {
    width: 59.2%;
    height: auto;
    aspect-ratio: 222 / 155;
    top: 47.03%;
    left: 0;
  }
  .about-photo--3 {
    display: block;
    width: 43.73%;
    height: auto;
    aspect-ratio: 164 / 115;
    top: 76.48%;
    left: 51.2%;
  }

  .service-section {
    padding: 3rem 1.25rem 5rem;
    gap: 2rem;
  }
  .service-section__wrap {
    gap: 1.5rem;
  }

  .service-section__inner {
    gap: 1.5rem;
  }
  .sec-head--service {
    padding-left: 1rem;
  }

  .sec-head__ja {
    font-size: 1.75em;
  }

  .service-card {
    gap: 1.5rem;
  }
  .service-card--business {
    padding: 2rem 1.25rem;
  }
  .service-card--personal {
    padding: 2rem 1.25rem;
    flex-direction: column;
    justify-content: flex-start;
  }
  .service-card__text {
    width: 100%;
  }
  .service-card__h3 {
    font-size: 1.125rem;
  }
  .service-card__body {
    font-size: 0.875rem;
  }
  .service-grid {
    gap: 0.75rem;
    display: flex;
    flex-direction: column;
    width: 100%;
  }
  .service-item {
    width: 100%;
    height: 12rem;
    padding: 2rem 1rem 1.5rem;
  }
  .service-item__name {
    font-size: 1.1rem;
  }
  .service-item--coaching {
    width: 80%;
  }

  .service-item__icon {
    min-height: none;
    width: clamp(3rem, 2.8vw, 4.4375rem);
  }

  .works-section {
    padding: 4.5rem 0 5.5rem;
  }
  .works-section__inner {
    gap: 3rem;
    align-items: center;
  }
  .works-section__head {
    flex-direction: column;
    gap: 1.5rem;
    padding: 0 1.5rem;
    max-width: 540px;
  }
  .works-section .sec-head__ja {
    font-size: 1.5rem;
  }
  .works-section__lead {
    font-size: 1.3125rem;
    padding-top: 0;
  }
  .works-photos {
    gap: 1.5rem;
  }
  .works-photo--lg {
    width: 16.25rem;
    height: 10.8125rem;
  }
  .works-photo--md {
    width: 12.5rem;
    height: 8.375rem;
  }
  .works-photo--sm {
    width: 14.75rem;
    height: 9.875rem;
  }
  .works-section__body {
    padding: 0 1.5rem;
    align-items: center;
    gap: 2.5rem;
    max-width: 470px;
  }
  .works-section__text {
    width: 100%;
    font-size: 0.9375rem;
    padding-left: 3rem;
  }

  .sec-head-works {
    width: 100%;
  }

  .voice-section {
    padding: 2rem 0rem 3.5rem;
  }
  .voice-section__inner {
    padding: 0 48px 40px;
    gap: 1rem;
  }
  .voice-carousel {
    width: calc(100% + 3rem);
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }
  .voice-carousel__btn {
    display: flex;
  }
  .voice-carousel__btn--prev {
    left: -0.375rem;
  }
  .voice-carousel__btn--next {
    right: -0.375rem;
  }
  .voice-cards {
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    scroll-padding-left: 1.5rem;
  }
  .voice-cards::-webkit-scrollbar {
    display: none;
  }
  .voice-cards.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
  }
  .voice-card {
    flex: 0 0 100%;
    scroll-snap-align: start;
    max-width: none;
    padding: 24px 20px;
  }
  .voice-card__head {
    gap: 2rem;
  }
  .voice-card__body {
    font-size: 0.9375rem;
  }

  .sec-head {
    width: 100%;
  }

  .news-section {
    padding: 4.5rem 1rem 10rem;
  }
  .news-bg {
    padding: 0.625rem;
    box-shadow:
      0.0625rem 0.125rem 0.625rem rgba(0, 0, 0, 0.001),
      0 0 0.25rem #7bcbc5;
  }
  .news-inner {
    flex-direction: column;
    gap: 2rem;
    padding: 2.5rem 0.875rem;
    align-items: center;
  }
  .news-section .sec-head__ja {
    font-size: 1.5rem;
  }
  .news-header {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0;
    padding-top: 1rem;
  }
  .news-header__btn {
    display: none;
  }
  .news-footer__btn {
    display: inline-flex;
  }
  .news-articles {
    gap: 2.5rem;
  }
  .news-item {
    flex-direction: row;
    gap: 0.75rem;
    align-items: flex-start;
  }
  .news-item__thumb {
    width: 7.1875rem;
    height: 4.8125rem;
    border-radius: 0.625rem;
    flex-shrink: 0;
  }
  .news-item__content {
    gap: 0.5rem;
  }
  .news-item__title {
    font-size: 1rem;
  }
}

@media (max-width: 48rem) {
  .fv {
    position: relative;
    height: auto;
    background: var(--c-green);
    overflow: hidden;
  }

  .fv__inner {
    position: relative;
    height: auto;
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 0 0 10.625rem;
  }

  .fv__bg-note {
    height: 8.4375rem;
    background-size: auto 8.4375rem;
    background-repeat: repeat-x;
    background-position: center bottom;
  }

  .fv__catch {
    position: absolute;
    left: 1.5rem;
    top: 4.125rem;
    z-index: 3;
    display: flex;
    flex-direction: row;
    gap: 1.125rem;
    align-items: flex-start;
  }
  .fv__catch span {
    writing-mode: vertical-rl;
    font-size: 1.3125rem;
    font-weight: 700;
    letter-spacing: 0.34em;
    line-height: 1.35;
    color: var(--c-white);
  }

  .fv__img-cta {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 4.3rem;
    align-items: center;
  }

  .fv__img-wrap {
    position: relative;
    width: 93%;
    max-width: 41.5rem;
    height: auto;
    aspect-ratio: 488 / 424;
    border-radius: 0;
    overflow: hidden;
    z-index: 2;
  }

  .fv__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .fv__cta {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    max-width: 500px;
    padding: 0 3rem 0 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    z-index: 4;
    bottom: -7rem;
  }

  .fv__cta-btn {
    width: 100%;
    min-height: 3.875rem;
    padding: 1rem 1.125rem 1rem 1.5rem;
    border-radius: 5rem;
    gap: 0.875rem;
  }

  .fv__cta-text {
    font-size: 0.9375rem;
    line-height: 1.2;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .fv__cta-text small {
    font-size: 0.6875rem;
  }

  .fv__cta-sep {
    height: 1.625rem;
  }

  .fv__cta-arrow {
    font-size: 0.875rem;
  }

  .fv__scroll {
    display: none;
  }
}

@keyframes vs-fade-up {
  from {
    opacity: 0;
    transform: translateY(1.5rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes vs-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fv__catch {
  animation: vs-fade-up 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both;
}
.fv__img-wrap {
  animation: vs-fade-in 1.1s ease 0.35s both;
}
.fv__cta {
  animation: vs-fade-up 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.6s both;
}
.fv__scroll {
  animation: vs-fade-in 0.8s ease 1s both;
}

.fade-up {
  opacity: 0;
  transform: translateY(1rem);
  transition:
    opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.fade-in {
  opacity: 0;
  transition: opacity 1.1s ease-in-out;
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}
.fade-in.visible {
  opacity: 1;
}

.delay-1 {
  transition-delay: 0.2s;
}
.delay-2 {
  transition-delay: 0.4s;
}
.delay-3 {
  transition-delay: 0.6s;
}

.top-btn.fade-up.visible:hover {
  opacity: 0.85;
  transform: translateY(-0.125rem);
}
.news-item.fade-up.visible:hover {
  opacity: 0.8;
}

.svc-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5rem;
  padding-top: 5.5rem;
  padding-bottom: 11.5rem;
}

.svc-page-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.125rem;
  width: 100%;
  padding-inline: 6.25rem;
}
.svc-page-nav__row {
  display: flex;
  gap: 1rem;
  align-items: center;
}
.svc-page-nav__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  min-width: 21.3125rem;
  height: 3.625rem;
  padding: 0.75rem 2.375rem 0.75rem 2.75rem;
  background: var(--c-green);
  color: #fff;
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  border-radius: 5rem;
  box-shadow: 0 3px 4.5px rgba(0, 0, 0, 0.12);
  transition:
    opacity 0.2s,
    background 0.2s;
  white-space: nowrap;
}
.svc-page-nav__btn:hover {
  opacity: 0.85;
  background: var(--c-green-dark);
}
.svc-page-nav__btn--outline {
  background: #fff;
  color: var(--c-green-btn);
  border: 1px solid var(--c-green-btn);
  box-shadow: 0 3px 4.5px rgba(0, 0, 0, 0.06);
  min-width: 24.25rem;
}
.svc-page-nav__arrow {
  font-size: 0.9375rem;
}

.svc-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5rem;
  width: 100%;
}

.svc-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4rem;
  width: min(83.75rem, 100% - 4rem);
  border-radius: 1rem;
  box-shadow: 0 0 1.5px rgba(123, 203, 197, 0.7);
  scroll-margin-top: var(--h-header);
}
.svc-card--bg {
  background: #f7fcfb;
  padding: 4rem 0 4.5rem;
}
.svc-card--white {
  background: #fff;
  padding: 4.5rem 0;
}

.svc-card__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  text-align: center;
}
.svc-card__title {
  font-family: var(--f-jp);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--c-green-btn);
  line-height: 1.8;
}
.svc-card__lead {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 1.8;
  max-width: 30.6875rem;
}

.svc-list {
  display: flex;
  flex-direction: column;
  gap: 5rem;
  width: min(67.0625rem, 100% - 4rem);
}

.svc-box {
  display: flex;
  align-items: flex-start;
  gap: 3rem;
  flex-direction: row-reverse;
  scroll-margin-top: var(--h-header);
}

.svc-box__text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex: 1;
  min-width: 0;
}

.svc-box__ttl {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  width: 100%;
}
.svc-box__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.625rem;
  height: 3.375rem;
  padding: 0.5rem 1rem 0.5rem 0.75rem;
  background: var(--c-green-btn);
  color: #fff;
  font-family: var(--f-jp);
  font-size: 1.25rem;
  font-weight: 500;
  border-radius: 0 0 1.125rem 0;
  flex-shrink: 0;
  line-height: 1;
}
.svc-box__icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  width: 3rem;
}
.svc-box__icon img {
  width: 100%;
  height: auto;
  display: block;
}
.svc-box__icon--lg {
  width: 3.375rem;
}
.svc-box__h3-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1;
  min-width: 0;
}
.svc-box__h3 {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--c-text);
  line-height: 1.5;
}
.svc-box__h3-sub {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 700;
  color: var(--c-text);
  line-height: 1.5;
}
.svc-box__subtitle {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 500;
  color: #545353;
  line-height: 1.8;
}
.svc-box__desc {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 1.8;
}
.svc-box__img {
  flex: 0 0 48%;
  max-width: 30.5625rem;
  height: auto;
  aspect-ratio: 489 / 306;
  border-radius: 0.375rem;
  min-width: 0;
  overflow: hidden;
}
.svc-box__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.svc-card--white .svc-list {
  align-items: center;
}

.svc-details {
  display: flex;
  gap: 5rem;
  align-items: flex-start;
  width: min(67.0625rem, 100% - 4rem);
  justify-content: center;
}
.svc-details__heading {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.8;
  margin-bottom: 0.25rem;
}
.svc-details__list {
  list-style: none;
  font-family: var(--f-jp);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 1.8;
}
.svc-details__list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.svc-details__list li::before {
  content: "";
  display: block;
  width: 0.3125rem;
  height: 0.3125rem;
  border-radius: 50%;
  background: var(--c-green-btn);
  flex-shrink: 0;
}
.svc-details__list li + li {
  margin-top: 0;
}

.svc-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  width: min(78.5rem, 100% - 4rem);
  padding: 3.5rem 8rem;
  background: #f2efeb;
  border-radius: 1rem;
  box-shadow: 0 2px 3.5px rgba(0, 0, 0, 0.14);
}
.svc-cta__text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}
.svc-cta__heading {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.svc-cta__en {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-green);
  letter-spacing: 0.12em;
  line-height: 1.3;
}
.svc-cta__ja {
  font-family: var(--f-jp);
  font-size: 1.75rem;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.5;
}
.svc-cta__desc {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 2;
  letter-spacing: 0.04em;
}
.svc-cta__desc p + p {
  margin-top: 0;
}

.svc-cta__btn {
  display: flex;
  align-items: center;
  gap: 2rem;
  width: 30.5625rem;
  height: 7.25rem;
  padding: 1.375rem 1.875rem 1.375rem 2.25rem;
  background: var(--c-yellow);
  border: 1px solid #ddd;
  border-radius: 1rem;
  box-shadow: 0 2px 4.5px rgba(0, 0, 0, 0.1);
  color: #fff;
  min-width: 0;
  transition: opacity 0.2s;
}
.svc-cta__btn:hover {
  opacity: 0.85;
}
.svc-cta__btn--line {
  width: 31.125rem;
}
.svc-cta__btn-icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.svc-cta__btn-icon img {
  display: block;
}
.svc-cta__btn-label {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.06em;
  line-height: 1.3;
  text-align: center;
  flex: 1;
}
.svc-cta__btn-sep {
  display: block;
  width: 1px;
  height: 4.5rem;
  background: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
}
.svc-cta__btn-arrow {
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
  .fv__catch,
  .fv__img-wrap,
  .fv__cta,
  .fv__scroll {
    animation: none;
  }
  .fade-up,
  .fade-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

.about-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5.5rem;
  padding-top: 6.5rem;
  padding-bottom: 5.5rem;
}

.about-page-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.125rem;
  width: 100%;
  padding-inline: 6.25rem;
}
.about-page-nav__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  align-items: center;
}
.about-page-nav__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  width: 21.3125rem;
  height: 3.625rem;
  padding: 0.75rem 2.375rem 0.75rem 2.75rem;
  background: var(--c-green);
  color: #fff;
  font-family: var(--f-en);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  border-radius: 5rem;
  box-shadow: 0 3px 4.5px rgba(0, 0, 0, 0.12);
  transition: opacity 0.2s;
}
.about-page-nav__btn:hover {
  opacity: 0.85;
}
.about-page-nav__arrow {
  font-family: var(--f-jp);
  font-size: 0.9375rem;
}

.about-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6.5rem;
  width: 100%;
}

.about-section-heading {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.about-section-heading--center {
  align-items: center;
  text-align: center;
}
.about-section-heading__en {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-green);
  letter-spacing: 0.12em;
  line-height: 1.3;
}
.about-section-heading__ja {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 500;
  color: #545353;
  line-height: 1.5;
}
.about-section-heading--white .about-section-heading__en,
.about-section-heading--white .about-section-heading__ja {
  color: #fff;
}

.about-vision {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6rem;
  width: min(67.0625rem, 100% - 4rem);
  min-height: 14.75rem;
  padding: 3.5rem 2rem;
  background: #f2faf9;
  border-radius: 1rem;
  box-shadow: 0 0 1.5px rgba(123, 203, 197, 0.7);
}
.about-vision__text {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 1.8;
  max-width: 30.6875rem;
}
.about-vision__text p + p {
  margin-top: 0;
}

.about-message {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5rem;
  width: min(67.0625rem, 100% - 4rem);
  padding-inline: 0;
  scroll-margin-top: var(--h-header);
}
.about-message__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  text-align: center;
  width: 100%;
}
.about-message__lead {
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  color: #545353;
  line-height: 1.8;
}
.about-message__contents {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  width: 100%;
}

.about-message__row {
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
}

.about-message__row--2 {
  flex-direction: row-reverse;
  gap: 3rem;
}

.about-message__row--3 {
  justify-content: space-between;
}

.about-message__box {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex: 1;
}
.about-message__row--3 .about-message__box {
  flex: none;
  max-width: 32.125rem;
}
.about-message__box-heading {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-text);
  line-height: 1.8;
}
.about-message__box-body {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 2;
}
.about-message__box-body p {
  margin: 0;
}

.about-message__photo {
  flex-shrink: 0;
  border-radius: 0.375rem;
  overflow: hidden;
}
.about-message__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.about-message__photo--1 {
  width: 30.625rem;
  height: 18.4375rem;
}
.about-message__photo--2 {
  width: 30.125rem;
  height: 21.1875rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
}
.about-message__photo--3 {
  width: 32.375rem;
  height: 21.5rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
}

.about-profile {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  align-items: center;
  width: min(67.0625rem, 100% - 4rem);
  padding: 4rem 3rem 4.5rem;
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 0 1.5px rgba(123, 203, 197, 0.7);
}
.about-profile__heading-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
  padding-bottom: 0.5rem;
}
.about-profile__text-lead {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-text);
  line-height: 1.8;
}
.about-profile__body {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  width: 100%;
}
.about-profile__photo-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
  overflow: hidden;
}
.about-profile__photo {
  width: 25rem;
  aspect-ratio: 4 / 4;
  overflow: hidden;
  border-radius: 0.375rem;
}
.about-profile__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-profile__name {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  text-align: center;
}
.about-profile__name-main {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.8;
}
.about-profile__name-sub {
  font-family: var(--f-jp);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 1.8;
}
.about-profile__text-col {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 1.8;
  flex: 1;
}
.about-profile__career {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-self: flex-start;
  padding-left: 1.5rem;
  width: 100%;
}
.about-profile__career-title {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-green-btn);
  line-height: 1.8;
}
.about-profile__career-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.about-profile__career-item {
  display: flex;
  align-items: flex-start;
  gap: 0rem;
  font-size: 1rem;
}
.about-profile__career-year {
  font-family: var(--f-jp);
  font-weight: 700;
  color: #1b998a;
  line-height: 1.8;
  width: 5rem;
  flex-shrink: 0;
}
.about-profile__career-desc {
  font-family: var(--f-jp);
  font-weight: 400;
  color: var(--c-text);
  line-height: 1.8;
}
.about-profile__career-desc p + p {
  margin-top: 0;
}

@media (min-width: 789px) and (max-width: 950px) {
  .about-profile__body {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }
  .about-profile__photo-col {
    width: 100%;
    align-items: center;
  }
  .about-profile__photo {
    width: 28.4375rem;
    height: 23rem;
  }
  .about-profile__text-col {
    width: 100%;
  }
}

.about-company {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  align-items: center;
  width: min(67.0625rem, 100% - 4rem);
  padding: 3.5rem 3rem 5rem 4rem;
  background: #f7fcfb;
  border-radius: 1rem;
  box-shadow: 0 0 1.5px rgba(123, 203, 197, 0.7);
}
.about-company__table {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}
.about-company__row {
  display: flex;
  align-items: center;
  gap: 4rem;
  padding: 0 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(123, 203, 197, 0.4);
}
.about-company__row:last-child {
  border-bottom: none;
}
.about-company__label {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  color: #1b998a;
  line-height: 1.8;
  width: 7.5rem;
  flex-shrink: 0;
}
.about-company__value {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: var(--c-text);
  line-height: 1.8;
  flex: 1;
}
.about-company__biz-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  list-style: none;
}
.about-company__biz-list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.about-company__biz-list li::before {
  content: "";
  display: block;
  width: 0.3125rem;
  height: 0.3125rem;
  border-radius: 50%;
  background: var(--c-green-btn);
  flex-shrink: 0;
}

.about-support {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
.about-support__shape {
  width: 100%;
  line-height: 0;
  margin-bottom: -1px;
}
.about-support__shape img {
  width: 100%;
  display: block;
}
.about-support__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  width: 100%;
  background: var(--c-green);
  padding: 0 10rem 5rem;
  margin-bottom: 5.5rem;
}
.about-support__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  width: 100%;
  padding: 3rem 5.5rem;
  background: #f2faf9;
  border-radius: 1.25rem;
  box-shadow: 0 3px 4.5px rgba(0, 0, 0, 0.09);
}
.about-support__card-title {
  font-family: var(--f-jp);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-green-btn);
  line-height: 1.8;
}
.about-support__card-text {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: #000;
  line-height: 1.8;
  width: 100%;
}
.about-support__card-text p + p {
  margin-top: 0.5rem;
}
.about-support__card-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  height: 3.625rem;
  padding: 0.75rem 1.875rem 0.75rem 2.25rem;
  background: #fff;
  border: 1.5px solid var(--c-green-btn);
  border-radius: 5rem;
  box-shadow: 0 3px 4.5px rgba(0, 0, 0, 0.1);
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  font-weight: 700;
  color: #259e90;
  letter-spacing: 0.03em;
  transition: opacity 0.2s;
}
.about-support__card-btn:hover {
  opacity: 0.8;
}

.news-main {
}
.news-main .news-inner {
  display: flex;
  gap: 7.3125rem;
  align-items: flex-start;
  max-width: var(--max-w);
  margin: 0 auto;
  background: #ffffff;
  padding: 8.5rem 14.375rem 13rem;
}

.news-sidebar {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 4rem;
  align-items: center;
  position: sticky;
  top: var(--h-header);
}

.news-cat-list {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  align-items: flex-start;
  padding-top: 3rem;
}
.news-cat-item {
  display: flex;
  gap: 0.375rem;
  align-items: center;
  justify-content: center;
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  color: rgba(66, 66, 66, 0.7);
  line-height: 1.8;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s;
}
.news-cat-item:hover {
  color: #1b998a;
}
.news-cat-item--active {
  font-weight: 700;
  color: #1b998a;
}
.news-cat-item__dot {
  display: inline-block;
  width: 0.3125rem;
  height: 0.3125rem;
  border-radius: 50%;
  background: rgba(66, 66, 66, 0.35);
  flex-shrink: 0;
}
.news-cat-item--active .news-cat-item__dot {
  background: #1b998a;
}

.news-year-filter {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}
.news-year-item {
  font-family: var(--f-jp);
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(66, 66, 66, 0.7);
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s;
}
.news-year-item:hover {
  color: #1b998a;
}
.news-year-sep {
  display: block;
  width: 1px;
  height: 0.875em;
  background: rgba(66, 66, 66, 0.35);
  flex-shrink: 0;
}

.news-articles {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  align-items: flex-start;
  min-width: 0;
}

.news-articles__title {
  font-family: var(--f-jp);
  font-size: 1.75rem;
  font-weight: 700;
  color: #46aca0;
  line-height: 1.8;
  white-space: nowrap;
}

.news-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 100%;
}

.news-item__link {
  display: flex;
  align-items: flex-start;
  text-decoration: none;
  color: inherit;
}

.news-item__thumb {
  flex: 0 0 11.0625rem;
  height: 7.375rem;
  border-radius: 0.625rem;
  overflow: hidden;
}
.news-item__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-item__thumb--noimg {
  background: #f2efeb;
  box-shadow: 0 0 0.375rem rgba(0, 0, 0, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}
.news-item__thumb--noimg img {
  width: 3.9375rem;
  height: auto;
  object-fit: contain;
}

.news-item__body {
  flex: 1 0 0;
  min-width: 1px;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: flex-start;
}

.news-item__meta {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  align-items: flex-start;
  width: 100%;
}
.news-item__meta-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  width: 100%;
}

.news-item__cat {
  display: flex;
  gap: 0.375rem;
  align-items: center;
  justify-content: center;
  font-family: var(--f-jp);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--c-green-btn);
  line-height: 1.8;
  white-space: nowrap;
}
.news-item__cat::before {
  content: "";
  display: inline-block;
  width: 0.3125rem;
  height: 0.3125rem;
  border-radius: 50%;
  background: var(--c-green-btn);
  flex-shrink: 0;
}
.news-item__cat a {
  color: var(--c-green-btn);
}

.news-item__title {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 700;
  color: #424242;
  line-height: 1.8;
  transition: opacity 0.15s;
}
.news-item__link:hover .news-item__title {
  opacity: 0.7;
}

.news-item__date {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  color: #545353;
  line-height: 1.8;
}

.news-pagination {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

/* WordPress paginate_links (type=list) の ul/li をリセット */
.news-pagination ul.page-numbers {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  justify-content: flex-start;
  list-style: none;
  margin: 0;
  padding: 0;
}
.news-pagination ul.page-numbers li {
  display: flex;
}

/* ページ番号・前後リンク共通 */
.news-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 700;
  color: #46aca0;
  text-decoration: none;
  text-align: center;
  border-radius: 1.4375rem;
  transition: opacity 0.15s;
}
.news-pagination .page-numbers:hover {
  opacity: 0.75;
}
.news-pagination .page-numbers.current {
  background: #46aca0;
  color: #fff;
}
.news-pagination .page-numbers.prev,
.news-pagination .page-numbers.next {
  font-size: 1.125rem;
}

.post-main {
  background: #ffffff;
  padding: 5rem 0 13rem;
  display: flex;
  justify-content: center;
}

.post-inner {
  width: 48.375rem;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 0 1.5rem;
  box-sizing: border-box;
}

.post-header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.post-title {
  font-family: var(--f-jp);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--c-black);
  line-height: 1.8;
  width: 100%;
}

.post-header__meta {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.post-date {
  font-family: var(--f-jp);
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(66, 66, 66, 0.6);
  line-height: 1.5;
  white-space: nowrap;
}

.post-cat {
  display: flex;
  gap: 0.375rem;
  align-items: center;
  justify-content: center;
  font-family: var(--f-jp);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--c-green);
  line-height: 1.8;
  white-space: nowrap;
}
.post-cat::before {
  content: "";
  display: inline-block;
  width: 0.3125rem;
  height: 0.3125rem;
  border-radius: 50%;
  background: var(--c-green);
  flex-shrink: 0;
}

.post-thumbnail {
  width: 100%;
  height: 26.1875rem;
  border-radius: 0.625rem;
  overflow: hidden;
  flex-shrink: 0;
}
.post-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.post-body {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 2.5rem 0 0;
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: #424242;
  line-height: 1.5;
}
.post-body h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #424242;
  line-height: 1.5;
  width: 100%;
}
.post-body h3 {
  font-size: 1.125rem;
  font-weight: 700;
  color: #424242;
  line-height: 1.5;
  width: 100%;
}
.post-body p {
  line-height: 1.5;
  width: 100%;
}
.post-body ul,
.post-body ol {
  padding-left: 1.5rem;
}
.post-body li {
  margin-bottom: 0.375em;
}
.post-body img {
  max-width: 100%;
  height: auto;
  border-radius: 0.625rem;
  box-shadow: 0 0 0.75rem rgba(0, 0, 0, 0.12);
}
.post-body a {
  color: var(--c-link);
  text-decoration: underline;
}
.post-body a:hover {
  opacity: 0.75;
}

.post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.post-tag {
  display: inline-flex;
  align-items: center;
  padding: 0;
  border-radius: 5rem;
  font-family: var(--f-jp);
  font-size: 0.8125rem;
  font-weight: 700;
  color: #46aca0;
  line-height: 1.6;
}

.post-back-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15.6875rem;
  height: 3.625rem;
  padding: 0.75rem 2.25rem;
  background: var(--c-green-btn);
  border-radius: 5rem;
  box-shadow: 0 0.1875rem 0.28125rem rgba(0, 0, 0, 0.06);
  color: var(--c-white);
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.028125rem;
  text-decoration: none;
  white-space: nowrap;
  align-self: center;
  transition:
    opacity 0.2s,
    transform 0.2s;
}
.post-back-btn:hover {
  opacity: 0.9;
  transform: translateY(-0.125rem);
}

.cf-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6.5rem;
  padding: 8.5rem 1.5rem;
  background: var(--c-bg);
}

.cf-line-section {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 61.25rem;
  max-width: 100%;
  background: #f2efeb;
  border-radius: 1rem;
  box-shadow: 0 0.125rem 0.21875rem rgba(0, 0, 0, 0.14);
  padding: 3.5rem 2.5rem;
  gap: 5rem;
}

.cf-line-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex-shrink: 0;
}
.cf-line-title {
  font-family: var(--f-jp);
  font-size: 1.75rem;
  font-weight: 500;
  color: #424242;
  line-height: 1.5;
  white-space: nowrap;
}
.cf-line-desc {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: #424242;
  line-height: 2;
  letter-spacing: 0.04rem;
}

.cf-line-btn {
  display: flex;
  align-items: center;
  width: 27rem;
  height: 7.25rem;
  background: #ffba39;
  border: 0.0625rem solid #ddd;
  border-radius: 1rem;
  box-shadow: 0 0.125rem 0.28125rem rgba(0, 0, 0, 0.1);
  padding: 1.375rem 1.875rem 1.375rem 2.25rem;
  text-decoration: none;
  color: var(--c-white);
  flex-shrink: 0;
  transition:
    opacity 0.2s,
    transform 0.2s;
}
.cf-line-btn:hover {
  opacity: 0.9;
  transform: translateY(-0.125rem);
}
.cf-line-btn__icon {
  flex-shrink: 0;
  width: 3.0625rem;
  height: 3.0625rem;
  display: block;
}
.cf-line-btn__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.cf-line-btn__label {
  flex-shrink: 0;
  margin-left: 2.5rem;
  font-family: var(--f-jp);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--c-white);
  text-align: center;
  letter-spacing: 0.09rem;
  line-height: 1.3;
  white-space: nowrap;
}
.cf-line-btn__sep {
  display: block;
  width: 0.0625rem;
  height: 4.5rem;
  background: rgba(255, 255, 255, 0.6);
  flex-shrink: 0;
  margin-left: auto;
}
.cf-line-btn__arrow {
  font-size: 0.9375rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-left: 2.5rem;
}

.cf-form-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.9375rem;
  width: 50rem;
  scroll-margin-top: var(--h-header);
  max-width: 100%;
}

.cf-form-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.5rem;
  text-align: center;
}
.cf-form-title {
  font-family: var(--f-jp);
  font-size: 1.75rem;
  font-weight: 700;
  color: #424242;
  line-height: 1.8;
  white-space: nowrap;
}
.cf-form-desc {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 400;
  color: #424242;
  line-height: 1.8;
}

.cf-form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.5rem;
  width: 40rem;
  max-width: 100%;
}

.cf-fields {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 40rem;
}

.cf-field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}

.drop{
  width: 55%;
}

.cf-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.cf-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.5rem;
  border-radius: 0.625rem;
  font-family: var(--f-jp);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  flex-shrink: 0;
}
.cf-badge--required {
  background: var(--c-green);
  color: var(--c-white);
}
.cf-badge--optional {
  background: var(--c-white);
  border: 0.0625rem solid #999;
  color: #999;
}

.cf-label__text {
  font-family: var(--f-jp);
  font-size: 1rem;
  font-weight: 500;
  color: #424242;
  line-height: 1.5;
  white-space: nowrap;
}

.cf-input {
  width: 100%;
  height: 2.875rem;
  background: #f3f3f3;
  border: none;
  border-radius: 0.5rem;
  padding: 0 1rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  color: #424242;
  outline: none;
  transition: box-shadow 0.2s;
}
.cf-input:focus {
  box-shadow: 0 0 0 2px var(--c-green);
}

.cf-textarea {
  width: 100%;
  height: 15rem;
  background: #f3f3f3;
  border: none;
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  color: #424242;
  outline: none;
  resize: vertical;
  line-height: 1.8;
  transition: box-shadow 0.2s;
}
.cf-textarea:focus {
  box-shadow: 0 0 0 2px var(--c-green);
}

.cf-select {
  width: 100%;
  height: 2.875rem;
  background: #f3f3f3;
  border: none;
  border-radius: 0.5rem;
  padding: 0 2.5rem 0 1rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  color: #424242;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23999' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  cursor: pointer;
  transition: box-shadow 0.2s;
}
.cf-select:focus {
  box-shadow: 0 0 0 2px var(--c-green);
}

/* カスタムセレクト */
.cf-select-wrap {
  position: relative;
  width: 100%;
}
.cf-select-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  height: 2.875rem;
  background: #f3f3f3;
  border: none;
  border-radius: 0.5rem;
  padding: 0 1rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  color: #424242;
  text-align: left;
  cursor: pointer;
  outline: none;
  transition: box-shadow 0.2s ease, border-radius 0.18s ease;
}
.cf-select-trigger:focus,
.cf-select-wrap.is-open .cf-select-trigger {
  box-shadow: 0 0 0 2px var(--c-green);
}
.cf-select-wrap.is-open .cf-select-trigger {
  border-radius: 0.5rem 0.5rem 0 0;
}
.cf-select-trigger__text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cf-select-trigger--placeholder .cf-select-trigger__text {
  color: #9e9e9e;
}
.cf-select-arrow {
  flex-shrink: 0;
  transition: transform 0.22s ease;
}
.cf-select-wrap.is-open .cf-select-arrow {
  transform: rotate(180deg);
}
.cf-select-list {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  list-style: none;
  background: #fff;
  border-radius: 0 0 0.5rem 0.5rem;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08), 0 0 0 2px var(--c-green);
  overflow: hidden;
  z-index: 200;
  opacity: 0;
  transform: translateY(-0.375rem);
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.cf-select-wrap.is-open .cf-select-list {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.cf-select-option {
  padding: 0.8125rem 1rem;
  font-family: var(--f-jp);
  font-size: 1rem;
  color: #424242;
  cursor: pointer;
  transition: background 0.12s;
}
.cf-select-option + .cf-select-option {
  border-top: 0.0625rem solid #eeeeee;
}
.cf-select-option:hover {
  background: #f5f5f5;
}
.cf-select-option.is-selected {
  color: var(--c-green-btn);
  font-weight: 500;
  background: #f0f7f3;
}

.cf-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  width: 15.6875rem;
  height: 3.625rem;
  padding: 0.75rem 1.875rem 0.75rem 2.25rem;
  background: var(--c-green-btn);
  border: none;
  border-radius: 5rem;
  box-shadow: 0 0.1875rem 0.28125rem rgba(0, 0, 0, 0.06);
  color: var(--c-white);
  font-family: var(--f-jp);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.028125rem;
  white-space: nowrap;
  cursor: pointer;
  transition:
    opacity 0.2s,
    transform 0.2s;
}
.cf-submit:hover {
  opacity: 0.9;
  transform: translateY(-0.125rem);
}

.wpcf7 form p:has(.cf-submit) {
  display: flex;
  justify-content: center;
  margin-top: 56px;
}

@media (max-width: 75rem) {
  .cf-line-section {
    width: 100%;
    max-width: 61.25rem;
  }
  .cf-line-btn {
    width: auto;
    flex: 1;
    min-width: 0;
  }

  .svc-cta {
    padding: 3.5rem 3rem;
  }
}
@media (max-width: 64rem) {
  .svc-cta {
    padding: 3rem 3rem;
    gap: 1.5rem;
    flex-direction: column;
  }
  .svc-cta__btn,
  .svc-cta__btn--line {
    gap: 1.25rem;
    padding: 1rem 1.25rem;
    height: auto;
    min-height: 5rem;
  }
  .svc-cta__btn-label {
    font-size: 1.25rem;
  }
  .svc-cta__btn-sep {
    height: 3.5rem;
  }

  .cf-line-section {
    flex-direction: column;
    align-items: center;
    width: 80%;
    gap: 1.5rem;
  }
  .cf-line-btn {
    width: 100%;
  }
  .cf-form-section {
    width: 100%;
  }
  .cf-form {
    width: 100%;
  }
}
@media (max-width: 48rem) {
  .pc_only {
    display: none;
  }

  .cf-main {
    padding: 4rem 1.25rem;
    gap: 3rem;
  }

  .cf-line-text {
    align-items: center;
  }

  .cf-line-section {
    align-items: center;
    padding: 2rem 1rem;
    width: 100%;
    gap: 1rem;
  }

  .cf-line-title {
    font-size: 1.25rem;
    white-space: normal;
  }

  .cf-line-desc {
    font-size: 0.9375rem;
  }
  .cf-line-btn {
    gap: 0;
    height: auto;
    min-height: 4rem;
    padding: 1rem 1.25rem;
  }
  .cf-line-btn__label {
    font-size: 1.125rem;
  }
  .cf-form-title {
    white-space: normal;
    font-size: 1.4rem;
  }
  .cf-form-desc {
    font-family: var(--f-jp);
    font-size: 1rem;
    line-height: 1.8;
    text-align: left;
  }

  .cf-form {
    width: 100%;
    max-width: 100%;
    align-items: stretch;
  }

  .cf-fields {
    width: 100%;
    max-width: 100%;
  }

  .cf-input,
  .cf-textarea {
    width: 100%;
  }
}

@media (max-width: 64rem) {
  .news-main .news-inner {
    flex-direction: column;
    gap: 2rem;
    padding: 3rem 1rem 10rem;
  }

  .news-sidebar {
    position: static;
    flex-direction: column;
    gap: 1.25rem;
    width: 100%;
    align-items: flex-start;
  }

  .news-cat-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0 1rem;
    align-items: center;
    padding-top: 0;
  }

  .post-thumbnail {
    height: auto;
  }
}

@media (min-width: 64rem) and (max-width: 90rem) {
  .news-main .news-inner {
    padding: 5.5rem 7.375rem 13rem;
  }
}

@media (max-width: 75rem) {
  .about-vision {
    gap: 2rem;
  }

  .about-message__title {
    width: 80%;
  }

  .about-message {
    gap: 3rem;
  }

  .about-message__row,
  .about-message__row--2,
  .about-message__row--3 {
    flex-direction: column;
    gap: 2rem;
    align-items: center;
  }

  .about-message__photo,
  .about-message__photo--2,
  .about-message__photo--3 {
    width: 40.125rem;
    height: 24.1875rem;
  }

  .about-support__body {
    padding: 0 5rem 5rem;
  }
}

@media (max-width: 48rem) {
  .about-main {
    padding-top: 3rem;
    padding-bottom: 3rem;
    gap: 3rem;
  }

  .about-page-nav {
    padding-inline: 1rem;
    gap: 0.75rem;
  }
  .about-page-nav__row {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
  }
  .about-page-nav__btn {
    width: calc(50% - 0.375rem);
    min-width: 0;
    height: 3.125rem;
    font-size: 0.875rem;
    padding: 0.5rem 0.75rem;
    white-space: normal;
    text-align: center;
    line-height: 1.4;
  }
  .about-page-nav__btn[href="#vision"] {
    font-size: 0.75rem;
  }

  .about-inner {
    gap: 3rem;
    align-items: flex-start;
  }

  .about-vision {
    flex-direction: column;
    gap: 1.5rem;
    width: 90%;
    padding: 2.5rem 1rem;
    border-radius: 1rem;
    margin: 0 auto;
  }
  .about-vision__text {
    max-width: none;
    font-size: 0.9375rem;
  }
  .about-section-heading {
    align-items: center;
  }

  .about-message {
    gap: 1.5rem;
    margin: 0 16px;
    width: auto;
  }
  .about-message__title {
    gap: 1rem;
    width: 95%;
  }
  .about-message__lead {
    font-size: 1.125rem;
    text-align: left;
    align-self: flex-start;
  }
  .about-message__contents {
    gap: 2.5rem;
  }
  .about-message__row,
  .about-message__row--2 {
    flex-direction: column;
    gap: 2rem;
  }
  .about-message__row--3 {
    justify-content: flex-start;
  }
  .about-message__box {
    flex: none;
    width: 100%;
    order: 1;
  }
  .about-message__row--3 .about-message__box {
    max-width: 100%;
  }
  .about-message__box-heading {
    font-size: 1rem;
  }
  .about-message__box-heading-br {
    display: none;
  }
  .about-message__box-body {
    font-size: 0.9375rem;
  }
  .about-message__photo--1,
  .about-message__photo--2,
  .about-message__photo--3 {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
  }

  .about-profile {
    width: auto;
    padding: 4rem 1rem 4.5rem;
    gap: 2rem;
    border-radius: 1rem;
    margin: 0 16px;
  }
  .about-profile__body {
    flex-direction: column;
    gap: 2rem;
  }
  .about-profile__photo-col {
    width: 100%;
    align-self: center;
  }
  .about-profile__photo {
    width: 100%;
    max-width: 18.4375rem;
    aspect-ratio: 295 / 227;
    border-radius: 6px;
  }
  .about-profile__photo img {
    object-fit: contain;
  }
  .about-profile__text-col {
    gap: 1.25rem;
    font-size: 0.9375rem;
  }
  .about-profile__career {
    padding-left: 0;
  }
  .about-profile__career-year {
    width: 5rem;
    font-size: 0.875rem;
  }
  .about-profile__career-desc {
    font-size: 0.875rem;
  }

  .about-company {
    width: auto;
    padding: 2.5rem 1rem;
    border-radius: 1rem;
    gap: 1.5rem;
    margin: 0 16px;
  }
  .about-company__row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.375rem;
    padding: 0 0 0.75rem;
  }
  .about-company__label {
    width: auto;
    font-size: 1rem;
  }
  .about-company__value {
    font-size: 0.9375rem;
  }

  .about-support__body {
    padding: 0 1rem 5rem;
    gap: 1.5rem;
    margin-bottom: 6rem;
  }
  .about-support__card {
    padding: 3rem 1rem;
    border-radius: 1.25rem;
    gap: 1.25rem;
  }
  .about-support__card-title {
    font-size: 1rem;
    text-align: center;
  }
  .about-support__card-text {
    font-size: 0.9375rem;
  }
  .about-support__card-btn {
    font-size: 0.875rem;
    height: auto;
    padding: 0.75rem 1.5rem;
  }

  .svc-main {
    padding-top: 1.5rem;
    padding-bottom: 5rem;
    gap: 3rem;
  }

  .svc-page-nav {
    padding-inline: 1rem;
    gap: 0.75rem;
  }
  .svc-page-nav__row {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
  }
  .svc-page-nav__btn {
    width: calc(50% - 0.375rem);
    min-width: 0;
    height: 3.125rem;
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
    white-space: normal;
    text-align: center;
    line-height: 1.4;
  }
  .svc-page-nav__btn[href="#futarigoto"] {
    font-size: 0.73rem;
  }
  .svc-page-nav__btn--outline {
    width: 100%;
    min-width: 0;
  }

  .svc-inner {
    gap: 2.5rem;
  }

  .svc-card {
    width: calc(100% - 2rem);
    gap: 2.5rem;
    border-radius: 1rem;
  }
  .svc-card--bg {
    padding: 2.5rem 0 2.5rem;
  }
  .svc-card--white {
    padding: 4.5rem 0;
  }
  .svc-card__title {
    font-size: 1.25rem;
    line-height: 1.6;
  }
  .svc-card__lead {
    font-size: 0.9375rem;
    max-width: none;
    padding-inline: 1.5rem;
    text-align: left;
  }

  .svc-list {
    width: calc(100% - 2rem);
    gap: 3rem;
    max-width: 80%;
  }

  .svc-box {
    flex-direction: column;
    gap: 1.5rem;
    align-items: center;
  }
  .svc-box__text {
    width: 100%;
    gap: 0.875rem;
  }
  .svc-box__ttl {
    gap: 1rem;
  }
  .svc-box__h3 {
    font-size: 1.125rem;
  }
  .svc-box__h3-sub {
    font-size: 0.9375rem;
  }
  .svc-box__subtitle {
    font-size: 1rem;
  }
  .svc-box__desc {
    font-size: 0.9375rem;
  }
  .svc-box__img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    border-radius: 0;
    flex-shrink: unset;
  }

  .svc-details {
    flex-direction: column;
    gap: 2rem;
    width: calc(100% - 2rem);
    padding-inline: 1.5rem;
  }

  .svc-cta {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    width: calc(100% - 2rem);
    padding: 3.5rem 1rem;
    border-radius: 1rem;
  }
  .svc-cta__ja {
    font-size: 1.3rem;
    text-align: left;
  }
  .svc-cta__desc {
    font-size: 0.9375rem;
    text-align: left;
  }
  .svc-cta__btn,
  .svc-cta__btn--line {
    width: 100%;
    height: auto;
    min-height: 4.5rem;
    padding: 1rem 1.5rem;
    gap: 1.25rem;
    border-radius: 0.75rem;
  }
  .svc-cta__btn-label {
    font-size: 1rem;
  }
  .svc-cta__btn-sep {
    height: 3rem;
  }

  .post-main {
    padding: 2.5rem 0 5rem;
  }

  .post-inner {
    width: 100%;
    padding: 0 1rem 7rem;
    gap: 1.5rem;
  }

  .post-title {
    font-size: 1.5rem;
    line-height: 1.7;
  }

  .post-thumbnail {
    height: auto;
  }

  .post-header__meta {
    gap: 1.5rem;
  }

  .post-thumbnail {
    border-radius: 0.625rem;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  }
  .post-thumbnail img {
    width: 100%;
    height: auto;
    border-radius: 0.625rem;
  }

  .post-body {
    gap: 1.5rem;
    padding: 0;
  }
  .post-body h2 {
    font-size: 1.125rem;
  }
  .post-body h3 {
    font-size: 1rem;
  }
  .post-body p {
    font-size: 0.9375rem;
    line-height: 1.9;
  }

  .post-back-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15.6875rem;
    height: 3.625rem;
    margin: 0 auto;
    border-radius: 5rem;
    font-size: 0.9375rem;
  }

  .about-message__photo,
  .about-message__photo--2,
  .about-message__photo--3 {
    width: 95%;
    height: auto;
  }

  .about-section-heading {
    width: 100%;
  }

  .news-main .news-inner {
    flex-direction: column;
    gap: 2rem;
    padding: 3rem 1rem 10rem;
  }

  .news-sidebar {
    position: static;
    flex-direction: column;
    gap: 1.25rem;
    width: 100%;
    align-items: flex-start;
  }

  .news-cat-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0 1rem;
    align-items: center;
    padding-top: 0;
  }
  .news-cat-item {
    font-size: 0.875rem;
    gap: 0.25rem;
  }

  .news-year-filter {
    gap: 1rem;
  }
  .news-year-item {
    font-size: 0.875rem;
  }

  .news-articles {
    gap: 2rem;
  }
  .news-articles__title {
    font-size: 1.25rem;
    white-space: normal;
  }

  .news-list {
    gap: 1.5rem;
  }

  .news-item__link {
    gap: 1rem;
    align-items: flex-start;
  }
  .news-item__thumb {
    flex: 0 0 7.125rem;
    height: 4.75rem;
  }
  .news-item__body {
    gap: 0.5rem;
  }
  .news-item__title {
    font-size: 0.875rem;
    line-height: 1.6;
  }
  .news-item__date {
    font-size: 0.75rem;
  }

  .news-pagination {
    width: 100%;
    justify-content: center;
    gap: 0.375rem;
  }
  .news-pagination ul.page-numbers {
    justify-content: center;
    width: 100%;
  }
  .news-pagination .page-numbers {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 0.9375rem;
  }
}

@media (hover: none) {
  *:hover {
    opacity: 1 !important;
    transform: none !important;
  }

  .faq-item__q:hover {
    background: var(--c-white) !important;
  }
  .service-item:hover,
  .svc-page-nav__btn:hover {
    background: var(--c-green) !important;
  }

  .news-cat-item:hover {
    color: rgba(66, 66, 66, 0.7) !important;
  }
  .news-year-item:hover {
    color: rgba(66, 66, 66, 0.7) !important;
  }

  .works-photos-outer:hover .works-photos {
    animation-play-state: running !important;
  }
  .news-item__link:hover .news-item__title {
    opacity: 1 !important;
  }
}

@media (max-width: 33.75rem) {
  .tb_only {
    display: inline;
  }
}

.sp-sticky-cta {
  display: none;
}

@media (max-width: 48rem) {
  .sp-sticky-cta {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 92;
    align-items: center;
    gap: 0.625rem;
    padding: 0.625rem 0.875rem;
    padding-bottom: calc(0.625rem + env(safe-area-inset-bottom, 0px));
    min-height: 4.375rem;
    background: var(--c-green);
    opacity: 0;
    pointer-events: none;
    transform: translateY(100%);
    transition:
      opacity 0.35s ease,
      transform 0.35s ease;
  }
  .sp-sticky-cta.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .sp-sticky-cta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    flex: 1;
    padding: 0.75rem 0.5rem;
    background: #fff;
    border-radius: 3rem;
    color: var(--c-green-btn);
    text-decoration: none;
    font-family: var(--f-jp);
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
    transition: opacity 0.2s;
  }
  .sp-sticky-cta__btn:active {
    opacity: 0.7;
  }
  .sp-sticky-cta__icon {
    width: 1.125rem;
    height: auto;
    flex-shrink: 0;
  }
  .sp-sticky-cta__icon--line {
    width: 1.375rem;
  }
}
