body {
  grid-template-rows: max-content 1fr max-content;
}

.main {
  gap: 0;
  padding-bottom: 0;
}

@media (min-width: 768px) {
  .main {
    gap: 0;
    padding-bottom: 0;
  }
}

body.home .header {
  background-color: var(--contents-bg-color);
  border-radius: 0;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  position: static;
}

@media (min-width: 768px) {
  body.home .header {
    background-color: var(--contents-bg-color);
    gap: 4px;
    position: static;
  }
}

@media (min-width: 768px) and (max-width: 959px) {
  body.home .header {
    padding-top: 0;
  }
}

body.home .hamburger-menu {
  gap: 5px;
  top: 10px;
  left: auto;
  right: 20px;
}

@media (min-width: 576px) {
  body.home .hamburger-menu {
    top: 17px;
  }
}

@media (min-width: 768px) {
  body.home .hamburger-menu {
    top: 18px;
  }
}

.section-title {
  font-size: 26px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--text-strong-color);
  padding-bottom: 21px;
  line-height: 1.8;
  position: relative;
}

@media (min-width: 768px) {
  .section-title {
    padding-bottom: 28px;
    font-size: 36px;
  }
}

.section-title:after {
  content: '';
  background-color: var(--main-color);
  width: 96px;
  height: 4px;
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50%;
}

.reveal {
  opacity: 0;
  transition:
    opacity 0.7s ease-out,
    translate 0.7s ease-out;
  translate: 0 24px;
}

.reveal.is-visible {
  opacity: 1;
  translate: 0;
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transition: none;
    translate: none;
  }
}

.marker {
  background: linear-gradient(
    transparent 72%,
    var(--highlight-color) 72% 97%,
    transparent 97%
  );
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.more-button {
  background-color: var(--contents-bg-color);
  width: 224px;
  max-width: 100%;
  font-size: 15px;
  font-weight: var(--weight-bold);
  color: var(--text-color);
  border: 1px solid #94a3b8;
  border-radius: 9999px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 13px;
  line-height: 1.2;
  text-decoration: none;
  transition: all 0.3s;
  display: flex;
  position: relative;
}

@media (min-width: 768px) {
  .more-button {
    padding: 16px;
    font-size: 16px;
  }
}

.more-button .arrow {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.more-button:hover {
  filter: brightness(1.2);
}

.more-button--lg {
  width: 300px;
}

@media (min-width: 768px) {
  .more-button--lg {
    width: 310px;
  }
}

.round-button.outline {
  background-color: var(--contents-bg-color);
  border: 2px solid var(--main-color);
  color: var(--main-color);
}

.round-button.line {
  background-color: #06c755;
}

.home-hero {
  background: url('../image/home_bg_hero.webp') top / cover no-repeat;
  flex-direction: column;
  justify-content: center;
  min-height: 588.5px;
  padding: 70px 21px;
  display: flex;
  position: relative;
}

.home-hero:before {
  content: '';
  background: linear-gradient(
    179deg,
    rgba(255, 255, 255, 0) 4%,
    rgba(0, 0, 0, 0.02) 44%,
    rgba(0, 0, 0, 0.36) 62%,
    rgba(0, 0, 0, 0.56) 93%
  );
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

@media (min-width: 576px) {
  .home-hero {
    min-height: 496px;
  }
}

@media (min-width: 768px) {
  .home-hero {
    min-height: 609px;
    padding: 80px 24px;
  }
}

@media (min-width: 1200px) {
  .home-hero {
    min-height: 640px;
    padding-top: 96px;
  }
}

.home-hero .inner {
  flex-direction: column;
  gap: 21px;
  width: 100%;
  max-width: 1056px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  position: relative;
}

@media (min-width: 768px) {
  .home-hero .inner {
    gap: 24px;
  }
}

.home-hero .catch {
  font-size: 32px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.05em;
  color: #004a99;
  text-shadow:
    0 0 8px rgba(255, 255, 255, 0.95),
    0 0 16px rgba(255, 255, 255, 0.9),
    0 0 16px rgba(255, 255, 255, 0.85);
  flex-direction: column;
  line-height: 1.5;
  display: flex;
}

@media (min-width: 768px) {
  .home-hero .catch {
    font-size: 48px;
  }
}

.home-hero .catch em {
  color: var(--main-color);
  font-style: normal;
}

.home-hero .lead {
  font-size: 16px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.08em;
  color: var(--text-contrast-color);
  text-shadow: 0 4px 8px rgba(0, 0, 0, 0.16);
  line-height: 1.6;
}

@media (min-width: 768px) {
  .home-hero .lead {
    font-size: 18px;
  }
}

@media (max-width: 575px) {
  .home-hero .lead br {
    display: none;
  }
}

.home-hero .buttons {
  flex-direction: column;
  gap: 17.5px;
  margin-top: 21px;
  display: flex;
}

@media (min-width: 576px) {
  .home-hero .buttons {
    flex-flow: wrap;
  }
}

@media (min-width: 768px) {
  .home-hero .buttons {
    margin-top: 24px;
  }
}

.home-hero .buttons .round-button {
  border: 2px solid var(--main-color);
  width: 100%;
  padding: 14px 28px;
  font-size: 16px;
  transition: all 0.3s;
}

@media (min-width: 576px) {
  .home-hero .buttons .round-button {
    flex: 1;
    width: auto;
  }
}

@media (min-width: 768px) {
  .home-hero .buttons .round-button {
    flex: none;
    padding: 16px 40px 16px 48px;
    font-size: 18px;
  }
}

.home-hero .buttons .round-button:hover {
  filter: brightness(1.1);
}

.home-hero .buttons .round-button.outline:hover {
  filter: brightness(0.9);
}

.home-intro {
  background-color: var(--sub-color);
  padding: 56px 21px;
}

@media (min-width: 768px) {
  .home-intro {
    padding: 64px 24px;
  }
}

@media (min-width: 960px) {
  .home-intro {
    padding: 64px 40px 64px 0;
  }
}

@media (min-width: 1200px) {
  .home-intro {
    padding: 80px 40px;
  }
}

.home-intro .inner {
  flex-direction: column;
  gap: 35px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

@media (min-width: 768px) {
  .home-intro .inner {
    gap: 40px;
  }
}

@media (min-width: 960px) {
  .home-intro .inner {
    flex-direction: row;
    align-items: center;
    gap: 40px;
    max-width: none;
  }
}

@media (min-width: 1200px) {
  .home-intro .inner {
    gap: 64px;
    max-width: 1200px;
  }
}

.home-intro .image {
  order: 2;
  width: 100%;
}

.home-intro .image img {
  object-fit: cover;
  border-radius: 8px;
  width: 100%;
  height: 291px;
}

@media (min-width: 960px) {
  .home-intro .image {
    flex: 56;
    order: 0;
    width: auto;
    min-width: 0;
  }

  .home-intro .image img {
    border-radius: 0 8px 8px 0;
    height: 479px;
  }
}

@media (min-width: 1200px) {
  .home-intro .image {
    flex: none;
    width: 568px;
  }

  .home-intro .image img {
    border-radius: 8px;
    height: 379px;
  }
}

.home-intro .contents {
  flex-direction: column;
  order: 1;
  align-items: flex-start;
  gap: 21px;
  min-width: 0;
  display: flex;
}

@media (min-width: 768px) {
  .home-intro .contents {
    gap: 24px;
  }
}

@media (min-width: 960px) {
  .home-intro .contents {
    flex: 54;
  }
}

@media (min-width: 1200px) {
  .home-intro .contents {
    flex: 1;
    max-width: 568px;
  }
}

.home-intro .heading {
  font-size: 26px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.12em;
  color: var(--text-strong-color);
  line-height: 1.8;
}

@media (min-width: 768px) {
  .home-intro .heading {
    font-size: 36px;
  }
}

@media (min-width: 960px) {
  .home-intro .heading {
    font-size: min(3vw, 35px);
  }
}

@media (min-width: 1200px) {
  .home-intro .heading {
    line-height: 1.4;
  }
}

.home-intro .heading em {
  color: var(--text-point-color);
  font-style: normal;
}

.home-intro .text p {
  color: var(--text-color);
  font-size: 16px;
  line-height: 1.8;
}

.home-intro .text p + p {
  margin-top: 16px;
}

.home-intro .contents .round-button {
  align-self: center;
  width: 260px;
  height: 52px;
  font-size: 16px;
}

@media (min-width: 768px) {
  .home-intro .contents .round-button {
    align-self: flex-start;
    width: 270px;
    height: 56px;
    padding: 17px 28px;
    font-size: 18px;
  }
}

.home-intro .contents .round-button:hover {
  filter: brightness(1.1);
}

.home-worries {
  background-color: var(--contents-bg-color);
  flex-direction: column;
  align-items: center;
  gap: 48px;
  padding: 56px 21px 0;
  display: flex;
}

@media (min-width: 768px) {
  .home-worries {
    gap: 56px;
    padding: 64px 24px 0;
  }
}

@media (min-width: 960px) {
  .home-worries {
    padding: 64px 40px 0;
  }
}

@media (min-width: 1200px) {
  .home-worries {
    padding: 80px 40px 0;
  }
}

.home-worries .heading {
  font-size: 26px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--text-strong-color);
  line-height: 1.8;
}

@media (min-width: 768px) {
  .home-worries .heading {
    font-size: 36px;
  }
}

.home-worries .list {
  grid-template-columns: 1fr;
  gap: 17.5px;
  width: 100%;
  max-width: 800px;
  display: grid;
}

@media (min-width: 768px) {
  .home-worries .list {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (min-width: 960px) {
  .home-worries .list {
    gap: 32px;
  }
}

@media (min-width: 1200px) {
  .home-worries .list {
    grid-template-columns: repeat(3, 1fr);
    max-width: 1024px;
  }
}

.home-worries .item {
  background-color: var(--contents-bg-color);
  border: 2px solid var(--main-color);
  text-align: center;
  border-radius: 4px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  min-height: 95px;
  padding: 21px 8px;
  display: flex;
}

@media (min-width: 768px) {
  .home-worries .item {
    min-height: 138px;
    padding: 24px 8px;
  }
}

.home-worries .item .intro {
  font-size: 15px;
  font-weight: var(--weight-bold);
  color: var(--text-color);
  line-height: 1.6;
}

@media (min-width: 768px) {
  .home-worries .item .intro {
    font-size: 16px;
  }
}

.home-worries .item .main {
  font-size: 16px;
  font-weight: var(--weight-bold);
  letter-spacing: 1px;
  color: var(--main-color);
  line-height: 1.5;
}

@media (min-width: 768px) {
  .home-worries .item .main {
    font-size: 20px;
  }
}

.home-reasons {
  background-color: var(--sub-color);
  flex-direction: column;
  align-items: center;
  gap: 49px;
  padding: 140px 21px 56px;
  display: flex;
  position: relative;
}

@media (min-width: 768px) {
  .home-reasons {
    gap: 56px;
    padding: 160px 24px 80px;
  }
}

@media (min-width: 960px) {
  .home-reasons {
    padding: 160px 40px 80px;
  }
}

@media (min-width: 1200px) {
  .home-reasons {
    padding: 176px 40px 80px;
  }
}

.home-reasons:before {
  content: '';
  clip-path: ellipse(55% 100% at 50% 0);
  background-color: #fff;
  height: 102px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

@media (min-width: 768px) {
  .home-reasons:before {
    clip-path: ellipse(60% 100% at 50% 0);
  }
}

.home-reasons .heading {
  font-weight: var(--weight-bold);
  text-align: center;
  color: var(--text-strong-color);
  position: relative;
}

.home-reasons .heading .sub {
  letter-spacing: 0.05em;
  margin-bottom: 8px;
  font-size: 22px;
  line-height: 1.5;
  display: block;
}

@media (min-width: 768px) {
  .home-reasons .heading .sub {
    font-size: 28px;
  }
}

.home-reasons .heading .main {
  letter-spacing: 0.1em;
  font-size: 26px;
  line-height: 1.8;
  display: block;
}

@media (min-width: 768px) {
  .home-reasons .heading .main {
    font-size: 36px;
  }
}

.home-reasons .heading em {
  color: var(--text-point-color);
  font-style: normal;
}

.home-reasons .heading .keep {
  white-space: nowrap;
}

.home-reasons .list {
  grid-template-columns: 1fr;
  gap: 17.5px;
  width: 100%;
  max-width: 1200px;
  display: grid;
}

@media (min-width: 768px) {
  .home-reasons .list {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (min-width: 960px) {
  .home-reasons .list {
    gap: 32px;
  }
}

@media (min-width: 1200px) {
  .home-reasons .list {
    gap: 40px;
  }
}

.home-reasons .item {
  background-color: var(--contents-bg-color);
  filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.12));
  border-radius: 8px;
  flex-direction: column;
  gap: 24px;
  padding: 21px;
  display: flex;
}

@media (min-width: 768px) {
  .home-reasons .item {
    padding: 24px;
  }
}

.home-reasons .item .image img {
  aspect-ratio: 276 / 167;
  object-fit: cover;
  border-radius: 4px;
  width: 100%;
  height: 100%;
}

@media (min-width: 768px) {
  .home-reasons .item .image img {
    aspect-ratio: 532 / 300;
  }
}

.home-reasons .item .contents {
  flex-direction: column;
  gap: 8px;
  display: flex;
}

.home-reasons .item .title {
  font-size: 20px;
  font-weight: var(--weight-bold);
  color: var(--text-strong-color);
  line-height: 1.4;
}

@media (min-width: 960px) {
  .home-reasons .item .title {
    font-size: 24px;
  }
}

.home-reasons .item .title em {
  color: var(--main-color);
  font-style: normal;
}

.home-reasons .item .description {
  color: var(--text-color);
  font-size: 16px;
  line-height: 1.8;
}

.post-item {
  background-color: var(--contents-bg-color);
  border-radius: 8px;
}

.post-item .title {
  font-weight: var(--weight-bold);
  color: var(--text-strong-color);
}

.post-item .text {
  color: var(--text-color);
  font-size: 16px;
  line-height: 1.6;
}

.post-item.voice {
  border: 2px solid var(--main-color);
  padding: 42px 21px 18px;
  transition: opacity 0.3s;
  position: relative;
}

@media (min-width: 768px) {
  .post-item.voice {
    padding: 48px 32px 20px;
  }
}

@media (min-width: 768px) and (max-width: 959px) {
  .post-item.voice {
    padding: 48px 24px 24px;
  }
}

.post-item.voice:not(:has(.category)) {
  flex-direction: column;
  justify-content: center;
  padding-top: 18px;
  display: flex;
}

@media (min-width: 768px) {
  .post-item.voice:not(:has(.category)) {
    padding-top: 32px;
  }
}

@media (min-width: 768px) and (max-width: 959px) {
  .post-item.voice:not(:has(.category)) {
    padding: 24px;
  }
}

.post-item.voice:hover {
  opacity: 0.8;
}

.post-item.voice.blue {
  border-color: var(--text-point-color);
}

.post-item.voice.blue .category {
  background-color: var(--text-point-color);
}

.post-item.voice .link {
  gap: 20px;
  text-decoration: none;
  display: flex;
}

@media (min-width: 768px) {
  .post-item.voice .link {
    align-items: flex-start;
    gap: 32px;
  }
}

.post-item.voice .category {
  background-color: var(--main-color);
  font-size: 15px;
  font-weight: var(--weight-bold);
  color: var(--text-contrast-color);
  border-radius: 0 0 4px 4px;
  padding: 8px 18px;
  line-height: 1.2;
  position: absolute;
  top: -2px;
  left: 16px;
}

@media (min-width: 768px) {
  .post-item.voice .category {
    padding: 10px 20px;
    font-size: 16px;
    left: 27px;
  }
}

.post-item.voice .media {
  flex-direction: column;
  flex-shrink: 0;
  align-items: center;
  gap: 10px;
  width: 96px;
  display: flex;
}

.post-item.voice .media img {
  object-fit: cover;
  border-radius: 50%;
  width: 96px;
  height: 96px;
}

.post-item.voice .media .title {
  text-align: center;
  overflow-wrap: break-word;
  width: 100%;
  font-size: 14px;
  font-weight: 500;
  min-height: 2.4rem;
  line-height: 1.2;
}

.post-item.voice .body {
  flex: 1;
  align-self: center;
  min-width: 0;
  margin-bottom: 24px;
}

.post-item.voice .text {
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.post-item.voice .text {
  color: var(--text-strong-color) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
}

.post-item.voice .text :where(p, span, strong, b, em, a) {
  color: var(--text-strong-color) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
}

.post-item.faq {
  border: 2px solid var(--main-color);
  background-color: var(--sub-color);
}

.post-item.faq.blue {
  border-color: var(--text-point-color);
  background-color: #ebf5ff;
}

.post-item.faq.blue .summary .media {
  background-color: var(--text-point-color);
}

.post-item.faq.blue .body .media {
  border-color: var(--text-point-color);
  color: var(--text-point-color);
}

.post-item.faq .summary {
  cursor: pointer;
  align-items: center;
  gap: 20px;
  padding: 17px 21px;
  list-style: none;
  display: flex;
}

@media (min-width: 768px) {
  .post-item.faq .summary {
    min-height: 84px;
    padding: 20px 24px;
  }
}

.post-item.faq .summary::-webkit-details-marker {
  display: none;
}

.post-item.faq .summary .media {
  background-color: var(--main-color);
  width: 40px;
  height: 40px;
  font-size: 18px;
  font-weight: var(--weight-bold);
  color: var(--text-contrast-color);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.post-item.faq .summary .title {
  flex: 1;
  min-width: 0;
  font-size: 16px;
  line-height: 1.2;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.home-faq.js-accordion .post-item.faq.is-title-expanded .summary .title,
.home-faq:not(.js-accordion) .post-item.faq[open] .summary .title {
  overflow: visible;
  display: block;
  -webkit-box-orient: unset;
  -webkit-line-clamp: unset;
  line-clamp: unset;
}

@media (min-width: 768px) {
  .post-item.faq .summary .title {
    font-size: 18px;
  }
}

.post-item.faq .summary .chevron {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  transition: rotate 0.4s ease-in-out;
}

.home-faq.js-accordion .post-item.faq.is-open .summary .chevron,
.home-faq:not(.js-accordion) .post-item.faq[open] .summary .chevron {
  rotate: 180deg;
}

.post-item.faq .body {
  grid-template-rows: 0fr;
  margin-left: 21px;
  margin-right: 21px;
  transition: grid-template-rows 0.4s ease-in-out;
  display: grid;
  overflow: hidden;
}

.home-faq.js-accordion .post-item.faq.is-open .body,
.home-faq:not(.js-accordion) .post-item.faq[open] .body {
  grid-template-rows: 1fr;
}

.post-item.faq .body-inner {
  word-break: break-all;
  align-items: flex-start;
  gap: 20px;
  min-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  border-top: 1px solid transparent;
  transition:
    padding 0.4s ease-in-out,
    border-color 0.4s ease-in-out;
  display: flex;
  overflow: hidden;
}

.home-faq.js-accordion .post-item.faq.is-open .body-inner,
.home-faq:not(.js-accordion) .post-item.faq[open] .body-inner {
  padding-top: 17px;
  padding-bottom: 21px;
  border-top-color: var(--border-color);
}

@media (min-width: 768px) {
  .post-item.faq .body {
    margin-left: 24px;
    margin-right: 24px;
  }

  .post-item.faq .body-inner {
    padding-top: 20px;
    padding-bottom: 24px;
  }
}

.post-item.faq .body .media {
  background-color: var(--contents-bg-color);
  border: 2px solid var(--main-color);
  width: 40px;
  height: 40px;
  font-size: 18px;
  font-weight: var(--weight-bold);
  color: var(--main-color);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.post-item.faq .body .text {
  flex: 1;
  min-width: 0;
}

.post-item.faq .body .text p + p {
  margin-top: 20px;
}

.post-item.column {
  filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.12));
  border-radius: 8px;
  transition:
    translate 0.3s,
    filter 0.3s;
}

.post-item.column .link {
  text-decoration: none;
  display: block;
}

.post-item.column .media {
  aspect-ratio: 480 / 300;
  background-color: var(--bg-gray-color);
  border-radius: 8px 8px 0 0;
  overflow: hidden;
}

.post-item.column .media img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: scale 0.3s;
}

.post-item.column:hover {
  filter: drop-shadow(0 8px 6px rgba(0, 0, 0, 0.16));
  translate: 0 -4px;
}

.post-item.column:hover .media img {
  scale: 1.05;
}

.post-item.column .body {
  flex-direction: column;
  gap: 16px;
  padding: 21px;
  display: flex;
}

@media (min-width: 768px) {
  .post-item.column .body {
    padding: 24px;
  }
}

.post-item.column .title {
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  min-height: 52px;
  font-size: 16px;
  line-height: 1.6;
  display: -webkit-box;
  overflow: hidden;
}

.post-item.column .meta {
  font-size: 14px;
  font-weight: var(--weight-bold);
  color: var(--text-color);
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  display: flex;
}

.post-item.column .meta .icon {
  background-color: var(--main-color);
  width: 18px;
  height: 18px;
  color: var(--text-contrast-color);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  display: flex;
}

.post-item.column .meta .icon .mask-icon {
  width: 8px;
  height: 8px;
}

.home-voice {
  background: url('../image/home_voice_bg.webp') center / cover no-repeat;
  padding: 56px 21px;
  position: relative;
}

@media (min-width: 768px) {
  .home-voice {
    padding: 48px 24px;
  }
}

@media (min-width: 960px) {
  .home-voice {
    padding: 64px 40px;
  }
}

@media (min-width: 1200px) {
  .home-voice {
    padding: 80px 40px;
  }
}

.home-voice .inner {
  flex-direction: column;
  align-items: center;
  gap: 48px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  position: relative;
}

.home-voice .columns {
  flex-direction: column;
  gap: 42px;
  width: 100%;
  display: flex;
}

@media (min-width: 768px) {
  .home-voice .columns {
    flex-direction: row;
    align-items: flex-start;
    gap: 32px;
  }
}

.home-voice .group {
  flex-direction: column;
  flex: 1;
  align-items: center;
  gap: 28px;
  min-width: 0;
  display: flex;
}

@media (min-width: 768px) {
  .home-voice .group {
    gap: 32px;
  }
}

.home-voice .group.blue .heading em {
  color: var(--text-point-color);
}

.home-voice .group.blue .heading .mask-icon {
  color: var(--text-point-color);
}

.home-voice .group.orange .heading em {
  color: var(--main-color);
}

.home-voice .group.orange .heading .mask-icon {
  color: var(--main-color);
}

.home-voice .heading {
  font-size: 24px;
  font-weight: var(--weight-bold);
  color: var(--text-strong-color);
  justify-content: center;
  align-items: center;
  gap: 10px;
  line-height: 1.2;
  display: flex;
}

.home-voice .heading .mask-icon {
  width: 44px;
  height: 44px;
}

@media (min-width: 768px) {
  .home-voice .heading {
    font-size: 28px;
  }
}

.home-voice .heading em {
  font-style: normal;
}

.home-voice .list {
  flex-direction: column;
  gap: 20px;
  width: 100%;
  display: flex;
}

@media (min-width: 768px) {
  .home-voice .list {
    gap: 24px;
  }
}

.home-faq {
  background-color: var(--contents-bg-color);
  padding: 56px 21px;
}

@media (min-width: 768px) {
  .home-faq {
    padding: 64px 24px;
  }
}

@media (min-width: 960px) {
  .home-faq {
    padding: 64px 40px;
  }
}

@media (min-width: 1200px) {
  .home-faq {
    padding: 80px 40px;
  }
}

.home-faq .inner {
  flex-direction: column;
  gap: 42px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

@media (min-width: 768px) {
  .home-faq .inner {
    gap: 48px;
  }
}

.home-faq .columns {
  flex-direction: column;
  gap: 42px;
  display: flex;
}

@media (min-width: 768px) {
  .home-faq .columns {
    flex-direction: row;
    align-items: flex-start;
    gap: 32px;
  }
}

.home-faq .group {
  flex-direction: column;
  flex: 1;
  align-items: center;
  gap: 28px;
  min-width: 0;
  display: flex;
}

@media (min-width: 768px) {
  .home-faq .group {
    gap: 32px;
  }
}

.home-faq .group.blue .heading em {
  color: var(--text-point-color);
}

.home-faq .group.blue .heading .mask-icon {
  color: var(--text-point-color);
}

.home-faq .group.orange .heading em {
  color: var(--main-color);
}

.home-faq .group.orange .heading .mask-icon {
  color: var(--main-color);
}

.home-faq .heading {
  font-size: 24px;
  font-weight: var(--weight-bold);
  color: var(--text-strong-color);
  justify-content: center;
  align-items: center;
  gap: 10px;
  line-height: 1.2;
  display: flex;
}

.home-faq .heading .mask-icon {
  width: 44px;
  height: 44px;
}

@media (min-width: 768px) {
  .home-faq .heading {
    font-size: 28px;
  }
}

.home-faq .heading img {
  width: 44px;
  height: 44px;
}

.home-faq .heading em {
  font-style: normal;
}

.home-faq .list {
  flex-direction: column;
  gap: 20px;
  width: 100%;
  display: flex;
}

@media (min-width: 768px) {
  .home-faq .list {
    gap: 24px;
  }
}

.home-property {
  background: url('../image/home_bukken_bg_sp.webp') repeat-x center bottom
    var(--surface-subtle-color);
  background-size: 100%;
  padding: 56px 21px;
  font-family:
    Noto Sans JP,
    sans-serif;
}

@media (min-width: 576px) {
  .home-property {
    background: url('../image/home_bukken_bg.webp') repeat-x center bottom
      var(--surface-subtle-color);
    background-size: 1500px;
    padding: 64px 24px;
  }
}

@media (min-width: 960px) {
  .home-property {
    padding: 64px 40px;
  }
}

@media (min-width: 1200px) {
  .home-property {
    padding: 80px 40px;
  }
}

.home-property .inner {
  flex-direction: column;
  align-items: center;
  gap: 42px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

@media (min-width: 768px) {
  .home-property .inner {
    gap: 48px;
  }
}

.home-property .list {
  grid-template-columns: 1fr;
  gap: 17.5px;
  width: 100%;
  display: grid;
}

@media (min-width: 768px) {
  .home-property .list {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (min-width: 960px) {
  .home-property .list {
    gap: 24px;
  }
}

.home-property .item {
  display: flex;
}

.home-property .card {
  background-color: var(--contents-bg-color);
  border: 2px solid var(--main-color);
  border-radius: 7px;
  flex: 1;
  min-width: 0;
  min-height: 194px;
  text-decoration: none;
  transition: opacity 0.3s;
  display: flex;
  overflow: hidden;
}

@media (min-width: 768px) {
  .home-property .card {
    border-radius: 8px;
    min-height: 216px;
  }
}

.home-property .card:hover {
  opacity: 0.8;
}

.home-property .image {
  flex-shrink: 0;
  width: 152px;
}

@media (min-width: 576px) {
  .home-property .image {
    width: 171px;
  }
}

@media (min-width: 768px) {
  .home-property .image {
    width: 171px;
  }
}

@media (min-width: 860px) {
  .home-property .image {
    width: 211px;
  }
}

.home-property .image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}

.home-property .content {
  flex-direction: column;
  flex: 1;
  justify-content: center;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 18px 14px;
  display: flex;
}

@media (min-width: 768px) {
  .home-property .content {
    gap: 8px;
    padding: 20px 16px;
  }
}

.home-property .tags {
  flex-wrap: wrap;
  justify-content: center;
  gap: 3.5px;
  display: flex;
}

@media (min-width: 768px) {
  .home-property .tags {
    gap: 4px;
  }
}

.home-property .tag {
  background-color: var(--contents-bg-color);
  border: 1px solid var(--text-point-color);
  height: 24px;
  font-size: 12px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.04em;
  white-space: nowrap;
  color: var(--text-point-color);
  border-radius: 2px;
  align-items: center;
  padding-left: 8px;
  padding-right: 8px;
  line-height: 1.2;
  display: flex;
}

.home-property .price {
  font-size: 20px;
  font-weight: var(--weight-bold);
  color: var(--price-color);
  line-height: 1.4;
}

@media (min-width: 768px) {
  .home-property .price {
    font-size: 24px;
  }
}

.home-property .price .unit {
  letter-spacing: 0.04em;
  font-size: 12px;
}

.home-property .price .note {
  font-size: 14px;
}

@media (min-width: 768px) {
  .home-property .price .note {
    font-size: 16px;
  }
}

.home-property .specs {
  background-color: var(--sub-color);
  width: 100%;
  font-size: 12px;
  font-weight: var(--weight-bold);
  text-align: center;
  color: var(--text-strong-color);
  padding-top: 4px;
  padding-bottom: 4px;
  line-height: 1.2;
}

@media (min-width: 768px) {
  .home-property .specs {
    font-size: 14px;
  }
}

.home-property .address {
  text-align: center;
  color: var(--text-color);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
}

@media (min-width: 768px) {
  .home-property .address {
    font-size: 14px;
  }
}

.home-property .description {
  -webkit-line-clamp: 2;
  line-clamp: 2;
  width: 100%;
  min-height: 3.2em;
  color: var(--text-color);
  -webkit-box-orient: vertical;
  font-size: 12px;
  line-height: 1.6;
  display: -webkit-box;
  overflow: hidden;
}

@media (min-width: 768px) {
  .home-property .description {
    font-size: 14px;
  }
}

.home-property .empty {
  text-align: center;
  color: var(--text-color);
  font-size: 16px;
  line-height: 1.8;
}

.home-column {
  background-color: var(--sub-color);
  padding: 56px 21px;
}

@media (min-width: 768px) {
  .home-column {
    padding: 64px 24px;
  }
}

@media (min-width: 960px) {
  .home-column {
    padding: 64px 40px;
  }
}

@media (min-width: 1200px) {
  .home-column {
    padding: 80px 40px;
  }
}

.home-column .inner {
  flex-direction: column;
  align-items: center;
  gap: 42px;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

@media (min-width: 768px) {
  .home-column .inner {
    gap: 48px;
  }
}

@media (min-width: 960px) {
  .home-column .inner {
    max-width: 1080px;
  }
}

.home-column .tabs {
  flex-direction: column;
  gap: 7px;
  width: 100%;
  margin-top: 7px;
  display: flex;
}

@media (min-width: 576px) {
  .home-column .tabs {
    flex-direction: row;
    gap: 2px;
    overflow-x: auto;
  }
}

@media (min-width: 768px) {
  .home-column .tabs {
    margin-top: 8px;
  }
}

.home-column .tabs .tab {
  flex: 1;
}

.home-column .tabs .tab .link {
  border-radius: 9999px;
}

@media (min-width: 576px) {
  .home-column .tabs .tab {
    min-width: max-content;
  }

  .home-column .tabs .tab .link {
    border-radius: 0;
  }

  .home-column .tabs .tab:first-child .link {
    border-radius: 9999px 0 0 9999px;
  }

  .home-column .tabs .tab:last-child .link {
    border-radius: 0 9999px 9999px 0;
  }
}

.home-column .tabs .tab.active .link {
  background-color: var(--text-point-color);
  color: var(--text-contrast-color);
}

.home-column .tabs .link {
  background-color: var(--contents-bg-color);
  width: 100%;
  color: var(--text-color);
  cursor: pointer;
  border: 0;
  justify-content: center;
  align-items: center;
  padding: 14px 10px;
  font-family: inherit;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  display: flex;
}

@media (min-width: 768px) {
  .home-column .tabs .link {
    padding: 16px 10px;
    font-size: 18px;
  }
}

.home-column .tabs .link:hover {
  color: var(--text-point-color);
}

.home-column .list {
  grid-template-columns: 1fr;
  gap: 17.5px;
  width: 100%;
  display: grid;
}

.home-column .list[hidden] {
  display: none;
}

@keyframes columnFadeIn {
  from {
    opacity: 0;
    translate: 0 12px;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}

.home-column .list.is-fade-in {
  animation: columnFadeIn 0.4s ease-out both;
}

.home-column .list .no-posts {
  grid-column: 1 / -1;
  text-align: center;
  font-size: 16px;
  color: var(--text-color);
  padding: 40px 0;
}

@media (min-width: 768px) {
  .home-column .list {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

@media (min-width: 960px) {
  .home-column .list {
    gap: 24px;
  }
}

.home-about {
  background-color: var(--contents-bg-color);
  flex-direction: column;
  padding-bottom: 56px;
  display: flex;
}

@media (min-width: 768px) {
  .home-about {
    flex-direction: row;
    align-items: center;
    gap: 40px;
    padding-bottom: 0;
    padding-right: 40px;
  }
}

@media (min-width: 1200px) {
  .home-about {
    gap: 80px;
  }
}

.home-about .image {
  width: 100%;
}

.home-about .image img {
  object-fit: cover;
  opacity: 0.8;
  width: 100%;
  height: 199px;
}

@media (min-width: 768px) {
  .home-about .image {
    flex: 1;
    width: auto;
    min-width: 0;
  }

  .home-about .image img {
    height: 633px;
  }
}

@media (min-width: 1200px) {
  .home-about .image {
    max-width: 686px;
  }
}

.home-about .contents {
  flex-direction: column;
  align-items: flex-start;
  gap: 35px;
  padding: 35px 21px 0;
  display: flex;
}

@media (min-width: 768px) {
  .home-about .contents {
    flex-shrink: 0;
    gap: 40px;
    width: max(498px, 37vw);
    padding: 0;
  }
}

.home-about .heading {
  font-size: 26px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.1em;
  color: var(--text-strong-color);
  padding-left: 17.5px;
  line-height: 1.8;
  position: relative;
}

@media (min-width: 768px) {
  .home-about .heading {
    padding-left: 20px;
    font-size: 36px;
  }
}

.home-about .heading:before {
  content: '';
  background-color: var(--main-color);
  width: 4px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.home-about .text p {
  color: var(--text-color);
  font-size: 16px;
  line-height: 1.8;
}

.home-about .text p + p {
  margin-top: 16px;
}

.home-about .buttons {
  flex-direction: column;
  gap: 17.5px;
  width: 100%;
  display: flex;
}

@media (min-width: 768px) {
  .home-about .buttons {
    flex-flow: wrap;
    gap: 20px;
    width: auto;
  }
}

.home-about .buttons .more-button {
  width: 100%;
}

@media (min-width: 768px) {
  .home-about .buttons .more-button {
    width: 224px;
  }
}

.home-news {
  background-color: var(--sub-color);
  padding: 56px 21px;
}

@media (min-width: 768px) {
  .home-news {
    padding: 64px 24px;
  }
}

@media (min-width: 1200px) {
  .home-news {
    padding: 80px 40px;
  }
}

.home-news .inner {
  flex-direction: column;
  gap: 42px;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

@media (min-width: 768px) {
  .home-news .inner {
    flex-direction: row;
    align-items: center;
    gap: 48px;
  }
}

.home-news .section-head {
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  display: flex;
}

@media (min-width: 768px) {
  .home-news .section-head {
    flex-direction: column;
    flex-shrink: 0;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 48px;
    width: 224px;
  }
}

.home-news .section-head .heading {
  font-size: 26px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.1em;
  color: var(--text-strong-color);
  padding-left: 17.5px;
  line-height: 1.8;
  position: relative;
}

@media (min-width: 768px) {
  .home-news .section-head .heading {
    padding-left: 20px;
    font-size: 36px;
  }
}

.home-news .section-head .heading:before {
  content: '';
  background-color: var(--main-color);
  width: 4px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.home-news .section-head .more-button {
  width: auto;
  padding: 13px 24px;
}

@media (min-width: 576px) {
  .home-news .section-head .more-button {
    width: 224px;
    padding: 16px;
  }
}

.home-news .list {
  flex: 1;
  min-width: 0;
}

.home-news .item {
  border-bottom: 1px solid var(--separator-color);
}

.home-news .item .link {
  align-items: center;
  gap: 20px;
  padding-top: 17.5px;
  padding-bottom: 17.5px;
  text-decoration: none;
  display: flex;
}

@media (min-width: 768px) {
  .home-news .item .link {
    padding-top: 20px;
    padding-bottom: 20px;
  }
}

.home-news .item .link:hover .title {
  color: var(--main-color);
}

.home-news .item .contents {
  flex-direction: column;
  flex: 1;
  gap: 8px;
  min-width: 0;
  display: flex;
}

.home-news .item .date {
  color: var(--text-color);
  font-size: 14px;
  line-height: 1.6;
}

@media (min-width: 768px) {
  .home-news .item .date {
    font-size: 16px;
  }
}

.home-news .item .title {
  color: var(--text-strong-color);
  align-items: flex-start;
  gap: 8px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  transition: color 0.3s;
  display: flex;
}

@media (min-width: 768px) {
  .home-news .item .title {
    gap: 20px;
  }
}

.home-news .item .title .text {
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  min-width: 0;
  line-height: 1.6;
  display: -webkit-box;
  overflow: hidden;
}

.home-news .item .new {
  letter-spacing: 0.48px;
  color: var(--text-strong-color);
  background-color: #f5c542;
  border-radius: 2px;
  flex-shrink: 0;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
}

.home-news .item .arrow {
  color: var(--main-color);
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}

.home-cta {
  background: url('../image/cta_bg_sp.webp') center / cover no-repeat;
  padding: 56px 21px;
  position: relative;
}

@media (min-width: 768px) {
  .home-cta {
    background: url('../image/cta_bg.webp') center / cover no-repeat;
    padding: 64px 24px;
  }
}

@media (min-width: 960px) {
  .home-cta {
    padding: 64px 40px;
  }
}

@media (min-width: 1200px) {
  .home-cta {
    padding: 80px 40px;
  }
}

.home-cta .inner {
  flex-direction: column;
  align-items: center;
  gap: 42px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  position: relative;
}

@media (min-width: 768px) {
  .home-cta .inner {
    gap: 48px;
  }
}

.home-cta .heading {
  font-size: 26px;
  font-weight: var(--weight-bold);
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--text-contrast-color);
  text-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
  line-height: 1.8;
}

@media (min-width: 768px) {
  .home-cta .heading {
    font-size: 36px;
  }
}

.home-cta .cards {
  background-color: var(--contents-bg-color);
  border-radius: 12px;
  flex-direction: column;
  width: 100%;
  padding-left: 21px;
  padding-right: 21px;
  display: flex;
}

@media (min-width: 960px) {
  .home-cta .cards {
    flex-direction: row;
    align-items: stretch;
    padding: 40px 0;
  }
}

.home-cta .card {
  border-bottom: 1px solid #cbd5e1;
  flex-direction: column;
  flex: 1;
  justify-content: center;
  align-items: center;
  gap: 14px;
  min-width: 0;
  min-height: 136px;
  padding: 21px 8px;
  display: flex;
}

@media (min-width: 768px) {
  .home-cta .card {
    border-bottom: none;
    gap: 15px;
    min-height: 0;
    padding: 32px 24px;
  }

  .home-cta .card + .card {
    border-top: 1px solid var(--border-color);
  }
}

@media (min-width: 960px) {
  .home-cta .card {
    justify-content: space-between;
    padding: 0 16px;
  }

  .home-cta .card + .card {
    border-top: none;
    border-left: 1px solid var(--border-color);
  }
}

@media (min-width: 1200px) {
  .home-cta .card {
    padding: 0 40px;
  }
}

.home-cta .card .title {
  font-size: 20px;
  font-weight: var(--weight-bold);
  color: var(--text-strong-color);
  line-height: 1.4;
}

@media (min-width: 1200px) {
  .home-cta .card .title {
    font-size: 24px;
  }
}

.home-cta .card .round-button {
  border: 2px solid var(--main-color);
  width: 100%;
  max-width: 468px;
  padding: 16px 35px;
  font-size: 16px;
  transition: all 0.3s;
}

@media (min-width: 768px) {
  .home-cta .card .round-button {
    max-width: 831px;
    height: 56px;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 20px;
  }
}

@media (min-width: 960px) {
  .home-cta .card .round-button {
    white-space: nowrap;
    max-width: 320px;
  }
}

.home-cta .card .round-button:hover {
  filter: brightness(1.1);
}

.home-cta .card .round-button.line {
  border-color: #06c755;
}

.home-cta .card .round-button.line:hover {
  filter: brightness(1.1);
}

.home-cta .card .contact {
  flex-direction: column;
  align-items: center;
  gap: 4px;
  display: flex;
}

.home-cta .card .contact .tel {
  font-size: 28px;
  font-weight: var(--weight-bold);
  color: var(--text-strong-color);
  white-space: nowrap;
  align-items: center;
  line-height: 1.2;
  text-decoration: none;
  transition: color 0.3s;
  display: flex;
}

@media (min-width: 960px) {
  .home-cta .card .contact .tel {
    font-size: max(26px, min(2.8vw, 36px));
  }
}

@media (min-width: 1200px) {
  .home-cta .card .contact .tel {
    font-size: 36px;
  }
}

.home-cta .card .contact .schedule {
  color: var(--text-color);
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 10px;
  font-size: 14px;
  line-height: 1.6;
  display: flex;
}
