/* お知らせ */
.news-contents {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: contain;
  width: 100%;
  padding: 3rem 0;
}

.post-list-container article {
  display: flex;
  align-items: center;
}

.post-date {
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid #000;
}

.post-category {
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid #999;
}

.post-title {
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid #999;
}

/* page styles */
.page-header {
  padding-bottom: 3rem;
}

.hero-text2 {
  overflow: hidden;
  margin: -2.5rem 0 1.5rem 6rem;
}

.page-header h3 {
  color: #d9d9d9;
  text-align: right;
  font-size: 6.875rem;
  font-weight: 100;
  margin: 0 8rem 0.5rem 0;
  font-family: "Roboto", sans-serif;
}

.page-header h1 {
  animation: textAnime2 0.5s forwards ease-in-out;
  transform: translateY(110%);
}

@keyframes textAnime2 {
  to {
    transform: translateY(0%);
  }
}

.page-list {
  list-style: auto;
}

ol.page-list {
  list-style: none;
  padding-left: 1.3em;
  text-indent: -1.3em;
}

.page-contents {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: contain;
  width: 100%;
  padding: 4.3rem 0;
}

.page-contents2 {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: contain;
  padding-top: 3.5rem;
}

.page-main {
  background-color: #ffffff;
  padding: 5rem 5rem 3rem;
  margin-bottom: 4rem;
  max-width: 68.75rem;
  margin: 0 auto;
}

.page-h3 {
  padding-left: 0.5em;
  font-size: 1.5rem;
  font-weight: 600;
  border-left: 5px solid #3c3c3c;
}

.access .page-container {
  margin-bottom: 0;
}

.page-container {
  margin-bottom: 4rem;
}

.page-top-image {
  position: relative;
  z-index: 2;
}

.page-top-image img {
  width: 86%;
  border-radius: 0 50px 50px 0;
}

.page-title {
  padding: 4rem 18rem;
}

.green-contents2 {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: contain;
  position: relative;
  z-index: 1;
  top: -23vw;
}

.contents-container {
  padding-top: 23vw;
  margin-bottom: -23vw;
}

.company-eyecatch {
  width: 100%;
  height: 100%;
  position: relative;
  padding-top: 50%;
}

.company-eyecatch-l,
.company-eyecatch-m,
.company-eyecatch-r {
  position: absolute;
  top: 0;
  bottom: 0;
}

.company-eyecatch-l {
  left: 0;
  mix-blend-mode: overlay;
}

.company-eyecatch-m {
  left: 50%;
  transform: translateX(-50%);
}

.company-eyecatch-r {
  right: 0;
  top: auto;
  bottom: 0;
  mix-blend-mode: overlay;
}

.company-eyecatch img {
  width: 39%;
}

/* company page styles */

.company .page-title {
  padding: 4rem 3rem 1rem 3rem;
  max-width: 50rem;
  margin: 0 auto;
}

.company .page-title h2 {
  margin-bottom: 1rem;
}

.company .page-title p {
  max-width: 50rem;
}

.page-subtitle {
  text-align: center;
}

h3.page-subtitle {
  font-size: 1.875rem;
}

.page-subtitle-text {
  text-align: center;
  color: #afafaf;
  font-family: "Roboto", sans-serif;
  font-weight: 500;
}

.company-info {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin: 0 auto;
  padding: 2rem 0 0 0;
  font-size: 1.125rem;
}

.company-info dt {
  width: 20%;
  padding: 2em 0em;
  border-bottom: 1px solid #3c3c3c;
}

.company-info dd {
  width: 80%;
  padding: 2em 4em;
  border-bottom: 1px solid #d9d9d9;
}

.access-map {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin: 0 auto;
  padding: 2rem 0;
  justify-content: space-between;
}

.access-map-text {
  width: 46%;
  font-size: 1.125rem;
}

.access-map-image {
  width: 50%;
}

.access-map-image iframe {
  width: 100%;
  height: 22.5rem;
}

.access-map-text-h {
  font-weight: bold;
}

.access-map-text-p {
  padding-bottom: 2em;
  margin-bottom: 2em;
  border-bottom: 1px solid #d9d9d9;
}

.access-map-text-p:last-child {
  padding-bottom: 2em;
  margin-bottom: 0;
  border-bottom: none;
}

.contact-info {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 55rem;
  margin: 0 auto;
  padding-bottom: 4rem;
  align-items: center;
}

.contact-info-l {
  line-height: 1.2;
}

.contact-info-r a {
  margin-bottom: 1.5rem;
}

.contact-info-r a:last-child {
  margin-bottom: 0;
}

.contact-info-title {
  font-size: 1.2rem;
  font-weight: bold;
}

.contact-info-phone {
  font-family: "roboto", sans-serif;
  font-size: 2.93rem;
  font-weight: bold;
}

.contact-info-phone span {
  font-size: 4.125rem;
  font-weight: bold;
}

.contact-info-text {
  font-size: 1.6rem;
  font-weight: bold;
}

.contact-info-button {
  color: #fff;
  width: 300px;
  margin: 1rem 2rem;
}

/* 家つくりへの想い */

.desire01 {
  background: url(../img/bg_housemaking1.webp) no-repeat;
  background-size: 100% 100%;
  position: relative;
  z-index: 1;
  top: -23vw;
}

.house-making-header {
  margin-top: 5rem;
}

.house-making-header h2 {
  width: 35rem;
  margin: 0 auto 3rem;
}

.house-making-header h2 img {
  width: 100%;
}

.house-making-header p {
  width: 50rem;
  margin: 0 auto;
}

p.align-right {
  margin-top: 1.5rem;
  font-weight: 600;
}

.city {
  overflow: hidden;
  padding-top: -1.5rem;
  padding-bottom: 4rem;
}

.house-making-main {
  background: url(../img/bg_housemaking2.webp) no-repeat;
  background-size: 100% 100%;
  position: relative;
  top: -1px;
}

.house-making-main-container {
  padding: 4vw 0 11vw;
  display: flex;
  justify-content: space-between;
}

.house-making-main-l {
  width: 51%;
}

.house-making-main-l h3 {
  font-size: 2.083vw;
  font-weight: bold;
  margin-bottom: 0.5rem;
}

.house-making-main-r {
  width: 49%;
  text-align: right;
  padding-left: 6.25vw;
}

.house-making-main-r img {
  width: 100%;
}

.house-making-main-title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-left: 14.583vw;
  border-bottom: 1px solid #000;
}

.house-making-main-title dd {
  font-family: "Roboto", sans-serif;
  font-size: 1.041vw;
  font-weight: 600;
}

.house-making-main-h {
  padding-left: 14.583vw;
  font-size: 1.736vw;
  font-weight: bold;
  margin: 3.5vw 0 2vw 0;
}

.house-making-main-text {
  padding-left: 14.583vw;
  text-align: justify;
  font-size: 1.111vw;
  line-height: 2;
}

.house-making-footer {
  background: url(../img/bg_housemaking3.webp) no-repeat;
  background-size: 100% 100%;
  width: 100%;
  height: 100%;
  position: relative;
  padding-top: 44%;
  top: -1px;
  margin-bottom: -3px;
}

.house-making-footer-l,
.house-making-footer-m,
.house-making-footer-r {
  position: absolute;
  top: -5vw;
}

.house-making-footer-l {
  left: 0;
  mix-blend-mode: overlay;
  width: 40%;
}

.house-making-footer-m {
  left: 50%;
  transform: translateX(-50%);
  width: 47vw;
}

.house-making-footer-r {
  right: 0;
  top: auto;
  bottom: 0;
  mix-blend-mode: overlay;
  width: 40%;
}

/* 採用情報 */
.recruit-page-title {
  display: flex;
  margin: 6rem auto;
  max-width: 62.5rem;
}

.recruit-page-title-h {
  width: 31%;
  color: #1fbea5;
}

.recruit-page-list {
  width: 69%;
  display: flex;
  border-top: 2px solid #3c3c3c;
  border-bottom: 2px solid #3c3c3c;
  font-weight: 600;
  font-size: 1.25rem;
  justify-content: space-between;
}

.recruit-page-list-l,
.recruit-page-list-r {
  width: 47%;
}

.recruit-page-list li {
  padding: 1rem 0.5rem;
  border-bottom: 1px solid #9acbc8;
}

.recruit-page-list li:nth-child(6) {
  border: none;
}

.recruit-page-list li a::after {
  content: "";
  background: url(../img/arrow06.svg) no-repeat;
  width: 16px;
  display: inline-block;
  background-position: center center;
  background-size: contain;
  position: relative;
  transition: 0.2s;
}

.recruit-page-list li a:hover::after {
  transform: translateY(0.3rem);
}

.recruit-page-list li a {
  text-decoration: none;
  display: flex;
  justify-content: space-between;
}

.recruit-page-saibu {
  display: flex;
  flex-wrap: wrap;
  max-width: 62.5rem;
  margin: 7rem auto 0 auto;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}

.recruit-page-saibu-l {
  max-width: 27rem;
}

.recruit-page-saibu-l a {
  display: inline-block;
  margin-bottom: 1rem;
  margin-right: 1rem;
}

.recruit-page-saibu-l img {
  max-height: 2.25rem;
  width: auto;
}

.recruit-page-saibu-r {
  max-width: 29.5rem;
}

.recruit-page-saibu-r h3 {
  font-size: 1.6rem;
  margin-bottom: 0.5rem;
  line-height: 1.5;
}

.recruit-page-saibu-text {
  margin-bottom: 3rem;
  text-align: justify;
}

.tsunagi {
  width: 100%;
  margin-top: -6rem;
  position: relative;
  z-index: 1;
}

.recruit-messege-top {
  display: flex;
  align-items: center;
  max-width: 61.56rem;
  margin: 5rem auto 0 auto;
  justify-content: space-between;
}

.recruit-message-image {
  max-width: 38.375rem;
}

.recruit-message-image img {
  width: 100%;
}

.recruit-message-text {
  line-height: 2;
  max-width: 17.375rem;
}

.recruit-message-text p {
  text-align: justify;
  vertical-align: middle;
}

#anchor-message {
  display: block;
  padding-top: 40px;
  margin-top: -40px;
}

#anchor-achievements,
#anchor-benefits,
#anchor-yokou,
#anchor-qa {
  display: block;
  padding-top: 80px;
  margin-top: -80px;
}

#anchor-flow {
  display: block;
  padding-top: 200px;
  margin-top: -200px;
}

#anchor-bene1,
#anchor-bene2,
#anchor-bene3,
#anchor-bene4,
#anchor-bene5,
#anchor-bene6,
#anchor-bene7 {
  display: block;
  padding-top: 100px;
  margin-top: -100px;
}

#anchor-message1 {
  display: block;
  padding-top: 50px;
  margin-top: -50px;
  background: url(../img/bg_page.webp) repeat-y;
  background-position-x: center;
  background-size: cover;
  width: 100%;
}

#anchor-message2 {
  display: block;
  padding-top: 50px;
  margin-top: -50px;
}

#anchor-message3 {
  display: block;
}

.recruit-message {
  max-width: 62.5rem;
  margin: 6rem auto 5rem auto;
}

.ttl-a {
  display: inline-block;
}

.ttl-a:hover {
  color: #3c3c3c;
}

.recruit-message h2 {
  font-size: 1.875rem;
}

.recruit-message-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 1.3rem;
}

.recruit-message-item {
  max-width: 19rem;
}

.recruit-message-item-image {
  width: 100%;
  overflow: hidden;
}

.recruit-message-item-image img {
  width: 100%;
}

.recruit-message-item-title {
  font-size: 1.25rem;
  font-weight: bold;
  margin: 0.7rem 0;
  text-align: justify;
  line-height: 1.5;
}

.recruit-message-item-description {
  font-size: 0.9rem;
  line-height: 1.5;
  font-weight: 600;
  border-top: 1px solid #d9d9d9;
  border-bottom: 1px solid #d9d9d9;
  padding: 0.5rem 0;
  display: block;
}

p.recruit-message-item-description::after {
  content: "";
  background: url(../img/point.svg) no-repeat;
  background-size: cover;
  display: inline-block;
  width: 1.875rem;
  height: 1.875rem;
  position: relative;
  float: right;
  bottom: 0.9rem;
}

p.recruit-message-item-description:hover::after {
  content: "";
  background: url(../img/point2.svg) no-repeat;
  background-size: cover;
  display: inline-block;
  width: 1.875rem;
  height: 1.875rem;
  position: relative;
  float: right;
  bottom: 0.9rem;
}

.recruit-wlb {
  max-width: 62.5rem;
  margin: 7rem auto 0 auto;
}

a h2.recruit-wlb-title:hover {
  color: #3c3c3c;
  display: inline-block;
}

.recruit-wlb-title::after {
  content: url(../img/point.svg);
  margin-left: 0.5rem;
  vertical-align: text-bottom;
}

.recruit-wlb-container {
  display: flex;
  flex-wrap: wrap;
  margin-top: 0.5rem;
  border-top: 1px solid #d9d9d9;
  border-bottom: 1px solid #d9d9d9;
}

.recruit-wlb-item {
  text-align: center;
  width: 15.625rem;
  max-width: 15.625rem;
  padding: 1.7rem 1rem;
}

.recruit-wlb-item a {
  display: block;
}

.recruit-wlb-item a:hover {
  opacity: 0.7;
}

.recruit-wlb-item img {
  max-width: 8.4375rem;
}

@media screen and (min-width: 769px) and (max-width: 1000px) {
  .recruit-wlb-container {
    border: none;
  }

  .recruit-wlb-item {
    border: 1px solid #d9d9d9;
  }
}

.recruit-wlb-item-description {
  font-size: 1.25rem;
  line-height: 1.4;
  color: var(--primary-color);
  font-weight: bold;
  margin-top: 1rem;
}

.yokou h3::after {
  content: "";
  border-bottom: #3c3c3c 2px solid;
  display: block;
  position: relative;
  left: 50%;
  transform: translate(-50%);
  width: 1.25rem;
  padding-top: 1.5rem;
}

.yokou-info {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin: 0 auto;
  padding: 2rem 0 0 0;
  font-size: 1.125rem;
}

.yokou-info dd {
  width: 87%;
  padding: 2em 0 2em 3vw;
  border-bottom: 1px solid #d9d9d9;
}

.yokou-info dt {
  width: 13%;
  padding: 2em 0em;
  border-bottom: 1px solid #3c3c3c;
}

.recruit-button {
  display: flex;
  justify-content: space-between;
  width: 45rem;
  margin: 0 auto;
  height: 15.375rem;
  align-items: center;
}

.recruit-button2 {
  width: 45rem;
  margin: 0 auto 4rem auto;
}

.recruit-button3 {
  display: flex;
  justify-content: space-between;
  width: 45rem;
  margin: 0 auto;
  align-items: center;
}

.recruit-btn-primary {
  width: 50%;
  margin: 0 2rem;
}

.point-color {
  color: var(--primary-color);
  font-size: 0.9rem;
}

.page-contents2 {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: contain;
}

.contents2-container {
  max-width: 68.75rem;
  margin: 0 auto;
}

.flow {
  margin-top: -7rem;
  padding-top: 6rem;
}

.flow h2 {
  margin-bottom: 1.5rem;
}

.recruit-flow {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
}

.recruit-flow-image {
  width: 74%;
}

.recruit-flow-image img {
  width: 100%;
  max-width: 54.375rem;
}

.recruit-flow-text {
  width: 23%;
  max-width: 43.75rem;
  padding-left: 2rem;
  text-align: justify;
}

.recruit-qa {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: auto;
  max-width: 68.75rem;
  margin: 0 auto;
  padding: 1.7rem 0;
}

.recruit-qa-title {
  text-align: center;
  font-size: 1.875rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
}

.qa-t1 {
  font-size: 4.25rem;
  font-family: "Roboto", sans-serif;
}

.qa-t2 {
  font-size: 3.375rem;
  font-family: "Roboto", sans-serif;
}

.faq-item {
  background-color: #fff;
  margin: 0 4.5rem 2.5rem;
  padding: 2rem 3rem;
}

.faq-question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1.2rem;
  font-weight: bold;
  color: var(--primary-color);
  cursor: pointer;
  position: relative;
  user-select: none;
  /* テキスト選択を無効化 */
  border: none;
  transition: 0.3s;
}

.question {
  padding-right: 1rem;
  font-weight: bold;
  font-size: 2.5rem;
  font-family: "Roboto", sans-serif;
}

.recruit-qa-answer-head {
  margin-right: 1rem;
  font-weight: bold;
  font-size: 2.5rem;
  font-family: "Roboto", sans-serif;
  color: var(--primary-color);
}

.recruit-qa-answer {
  text-align: justify;
  margin-top: 1.3rem;
}

.plus {
  font-size: 1.375rem;
  line-height: 1.2;
  display: flex;
  align-items: center;
  transition: 0.3s;
  position: relative;
  width: 100%;
}

.plus::before,
.plus::after {
  content: "";
  display: inline-block;
  width: 27px;
  height: 6px;
  background-color: #1fbea5;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 0.3s;
}

.plus::after {
  transform: translateY(-50%) rotate(90deg);
  transition: transform 0.3s !important;
}

.plus.show::before {
  opacity: 0;
}

.plus.show::after {
  transform: translateY(-50%) rotate(180deg) !important;
}

/* activeクラスが付与された時にアイコンをマイナスにする */
.faq-question.active .plus::before,
.faq-question.active .plus::after {
  content: "";
  display: inline-block;
  width: 27px;
  height: 6px;
  background-color: #1fbea5;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 0.3s;
}

.faq-question.active {
  border-bottom: 2px solid var(--primary-color);
}

.faq-question.show::before {
  opacity: 0;
}

.faq-question.show::after {
  transform: translateY(-50%) rotate(180deg);
}

.faq-answer {
  display: flex;
  max-height: 0;
  overflow: hidden;
  transition: 0.3s ease-out;
  /* スムーズなアニメーション */
}

.recruit-bottom {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 21.875rem;
}

.recruit-bottom::after {
  background: url(../img/recruit2026_pc.webp) no-repeat;
  background-size: cover;
  position: absolute;
  content: "";
  display: block;
  transition: 0.3s;
  top: 0;
  width: 100%;
  height: 21.875rem;
}

.recruit-bottom a {
  width: 100%;
  height: 21.875rem;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 1;
}

.recruit-bottom a img {
  padding-left: 6rem;
  position: relative;
  z-index: 2;
}

.recruit-bottom:hover::after {
  transform: scale(1.1);
}

.recruit-bethepro {
  background: url(../img/bepro_banner_pc.webp) no-repeat;
  background-size: cover;
  background-position: center;
  width: 100%;
  aspect-ratio: 1 / 0.481;
  position: relative;
}

.recruit-bethepro-container {
  width: 49.444vw;
  max-width: 712px;
  position: absolute;
  top: 5vw;
  left: 5vw;
  color: #fff;
}

.recruit-bethepro-ttl {
  width: 49.444vw;
  max-width: 712px;
}

.recruit-bethepro-container h3 {
  font-size: min(2.0833vw, 30px);
  margin: 3vw 0 1.5vw;
}

.recruit-bethepro-read {
  font-size: min(1.25vw, 18px);
  margin-bottom: 3vw;
}

/* 社員メッセージ */
.mes-title {
  padding-top: 4.5rem;
  max-width: 50rem;
  margin: 0 auto;
}

.message-top-image {
  overflow: hidden;
  background: url(../img/bg_page.webp) no-repeat;
  background-size: 100%;
  background-position: bottom;
  position: relative;
  padding-right: 10%;
}

.message-page-title-h {
  text-align: center;
  margin-bottom: 1.5rem;
}

.message-contents {
  background: url(../img/bg_message_03.webp) no-repeat,
    url(../img/bg_page-3.webp) no-repeat;
  background-size: 100%;
  background-position: top;
  padding-top: 7.777vw;
  position: relative;
  z-index: 2;
}

.message-contents2 {
  background: url(../img/bg_message_03.webp) no-repeat;
  background-size: 100%;
  background-position: top;
  padding-top: 6vw;
}

.message-contents3 {
  background: url(../img/bg_message_03.webp) no-repeat;
  background-size: 100%;
  background-position: top;
  padding-top: 5.3vw;
  margin-top: 8vw;
}

.message-contents-section {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 4.444vw;
  max-width: 88.19vw;
  justify-content: space-between;
  align-items: center;
}

.message-section-l {
  max-width: 50vw;
  width: 50vw;
}

.message-section-r {
  max-width: 31.25vw;
}

.message-section-l img,
.message-section-r img,
.message-section-r2 img {
  width: 100%;
}

.message-catch {
  font-size: 1.111vw;
  color: #f8834d;
  font-weight: bold;
  font-family: "Roboto", sans-serif;
}

.message-section-title {
  font-size: 2.0833vw;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 3.333vw;
  color: #3c3c3c;
}

.message-section-p1,
.message-section-p2 {
  font-size: 1.25vw;
  font-weight: bold;
  line-height: 1.3;
}

.message-section-p2 {
  border-bottom: 1px solid #3c3c3c;
  padding-bottom: 1.111vw;
  margin-bottom: 1.111vw;
}

.message-section-p3 {
  color: white;
  font-size: 0.9722vw;
  font-weight: 700;
  padding: 0.2083vw 1.111vw;
  margin-bottom: 0.3472vw;
  background-color: #3c3c3c;
  border-radius: 16px;
  display: inline-block;
}

.message-section-p4 {
  color: #3c3c3c;
  font-size: 1.25vw;
  font-weight: 700;
}

.message-contents-section2 {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 4.2vw;
  max-width: 88.194vw;
  justify-content: space-between;
  margin-left: auto;
}

.message-section-l2 {
  width: 31.25vw;
  margin-top: 7.0833vw;
}

.message-section-r2 {
  width: 50vw;
}

.message-section-q {
  background: url(../img/ill_message_q.svg) no-repeat;
  padding-left: 3.8194vw;
  padding-bottom: 1.111vw;
  color: #1fbea5;
  font-size: 1.5277vw;
  font-weight: bold;
  word-wrap: break-word;
  background-size: 10%;
  padding-top: 0.2777vw;
}

.message-section-a {
  text-align: justify;
  line-height: 2;
  margin-bottom: 5vw;
  font-size: 1.111vw;
}

.message-section-image img {
  margin-bottom: 2.70833vw;
}

.message-footer-image img {
  width: 100%;
}

.message-interviewer {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: contain;
}

.interviewer-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  position: relative;
  max-width: 54.125rem;
  justify-content: space-between;
  margin: 0 auto;
  padding: 5rem 0 3rem;
}

.message-interviewer-overlay {
  position: absolute;
  left: -5%;
  width: 57%;
  mix-blend-mode: overlay;
}

.message-interviewer-l {
  max-width: 17.187rem;
  text-align: center;
  z-index: 1;
}

.message-interviewer-name {
  font-size: 1rem;
  font-weight: bold;
  margin: 1rem 0;
}

.message-interviewer-l img {
  width: 100%;
}

.message-interviewer-r {
  max-width: 28.125rem;
  z-index: 1;
}

.message-interviewer-title {
  font-size: 1.625rem;
  margin-bottom: 1.5rem;
}

.message-interviewer-p {
  line-height: 2;
}

/* プロモーション動画 */
.green-contents {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: contain;
  padding-top: 0.3rem;
  padding-bottom: 1rem;
}

.video-container {
  background-color: #fff;
  margin: 4rem 8rem;
  padding: 1rem 5rem 0 5rem;
}

.video-header {
  font-size: 1.125rem;
  font-weight: bold;
  text-align: center;
  margin: 3rem 0;
}

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

.video-wrapper {
  width: 47%;
  margin-bottom: 4rem;
}

.video-wrapper video {
  width: 100%;
}

.video-title {
  font-size: 1rem;
  font-weight: bold;
}

/* 動画の処理 */
.movie {
  position: relative;
  width: 100%;
  margin: 0 auto -0.2rem auto;
}

.movie video {
  width: 100%;
}

.movie .play-btn1 {
  display: block;
  width: 18%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  cursor: pointer;
}

.movie .play-btn1.playActive {
  display: none;
}

.movie .play-btn2 {
  display: block;
  width: 18%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  cursor: pointer;
}

.movie .play-btn2.playActive {
  display: none;
}

.movie .play-btn3 {
  display: block;
  width: 18%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  cursor: pointer;
}

.movie .play-btn3.playActive {
  display: none;
}

.movie .play-btn4 {
  display: block;
  width: 18%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  cursor: pointer;
}

.movie .play-btn4.playActive {
  display: none;
}

/* contact page */
.contact-contents {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: 100%;
  padding-top: 2rem;
  padding-bottom: 4rem;
}

.contact-container {
  background-color: #fff;
  margin: 4rem auto;
  padding: 4rem;
  max-width: 68.75rem;
}

.contact-header-p {
  text-align: center;
  font-size: 1.125rem;
  font-weight: bold;
  margin-bottom: 1rem;
}

.contact-tel,
.contact-fax {
  font-family: "Roboto", sans-serif;
  font-weight: bold;
}

.contact-tel span,
.contact-fax span {
  font-size: 1.93rem;
}

.contact-text {
  margin: 2rem auto;
  text-align: center;
  font-size: 1rem;
}

.contact-text2 {
  margin: 0 auto 2rem auto;
  text-align: center;
  font-size: 1rem;
}

.contact-main {
  margin: 1rem auto;
  width: 100%;
  max-width: 800px;
}

.contact-main label {
  font-weight: 200;
}

/* プレースホルダの色を変更 */
input[type="text"]::placeholder,
input[type="email"]::placeholder {
  color: #dbdbdb;
  /* 薄い灰色 */
}

/* 入力中に色を変更 */
input[type="text"]:focus,
input[type="email"]:focus {
  color: #3c3c3c;
  /* 黒 */
}

.contact-main .contact-label {
  font-size: 1rem;
  font-weight: bold;
  margin-bottom: 3rem;
}

.contact-main .hissu {
  font-size: 0.81rem;
  color: #ce4e4e;
  padding-left: 0.5em;
}

.contact-main input {
  border: 1px solid #d9d9d9;
  border-radius: 8px;
  width: 100%;
  height: 3.5rem;
  padding-left: 0.8rem;
}

.contact-main textarea {
  border: 1px solid #d9d9d9;
  border-radius: 8px;
  width: 100%;
  margin-bottom: 3rem;
  padding: 0.8rem;
}

.check-area {
  text-align: center;
  margin: 2rem 0;
}

span.wpcf7-list-item-label {
  font-weight: 600;
  position: relative;
  top: 0.15rem;
}

span.wpcf7-list-item {
  margin: 0;
}

.check-area input {
  height: 1.5rem;
  width: auto;
}

.submit {
  width: 290px;
  height: 60px;
  background-color: var(--primary-color);
  color: var(--light-text-color);
  border-radius: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}

.submit p {
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  display: flex;
}

.submit p::after {
  content: url(../img/arrow03.svg);
  position: relative;
  left: -3rem;
  top: 1rem;
  transition: 0.2s;
}

.submit:hover.submit p::after {
  left: -2.7rem;
}

.submit input {
  border: none;
  width: 290px;
  height: 60px;
}

.previous {
  width: 290px;
  height: 60px;
  color: #3c3c3c;
  background-color: #fff;
  border: 2px solid #3c3c3c;
  border-radius: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}

.previous p {
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  display: flex;
}

.previous p::before {
  content: url(../img/arrow04.svg);
  position: relative;
  left: 2.5rem;
  top: 1rem;
  transition: 0.2s;
}

.previous:hover.previous p::before {
  left: 2rem;
}

.previous input {
  border: none;
  width: 290px;
  height: 60px;
  text-align: center;
  font-weight: 600;
}

.wpcf7-spinner {
  display: none;
}

.confirm-m {
  margin-top: 3rem;
}

.thanks-header-p {
  text-align: center;
  font-size: 1.5rem;
  font-weight: bold;
}

.btn-thank {
  width: 290px;
  height: 60px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--primary-color);
  color: var(--light-text-color);
  border-radius: 32px;
}

.btn-thank:hover {
  color: var(--light-text-color);
}

.btn-thank:hover .btn::after {
  content: url(../img/arrow03.svg);
  position: absolute;
  padding: 1px 0 0 15px;
}

.btn-thank:hover .btn3::after {
  content: url(../img/arrow03.svg);
  position: absolute;
  padding: 1px 0 0 15px;
}

.btn-white {
  width: 290px;
  height: 60px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  color: #1fbea5;
  border-radius: 32px;
}

.btn-white:hover .btn2::after {
  content: url(../img/arrow05.svg);
  position: absolute;
  padding: 1px 0 0 15px;
}

.blue-btn {
  width: 290px;
  height: 60px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #00aaeb;
  color: var(--light-text-color);
  border-radius: 32px;
}

.blue-btn:hover {
  color: var(--light-text-color);
}

.blue-btn:hover .btn::after {
  content: url(../img/arrow03.svg);
  position: absolute;
  padding: 1px 0 0 15px;
}

.black-btn {
  width: 290px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #000;
  color: var(--light-text-color);
  border-radius: 32px;
}

.black-btn:hover {
  color: var(--light-text-color);
}

.black-btn:hover .btn::after {
  content: url(../img/arrow03.svg);
  position: absolute;
  padding: 1px 0 0 15px;
}

.invert-btn {
  width: 290px;
  height: 60px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1fbea5;
  border: #1fbea5 solid 2px;
  border-radius: 32px;
}

.invert-btn:hover .btn2::after {
  content: url(../img/arrow05.svg);
  position: absolute;
  padding: 1px 0 0 15px;
}

.contact-label-confirm {
  border-bottom: 1px solid #d9d9d9;
  font-size: 1.125rem;
  font-weight: bold;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
}

.contact-label-confirm label {
  font-size: 1rem;
  font-weight: normal;
  color: #3c3c3c;
}

/* プライバシーポリシー */
.privacy .page-h3 {
  padding-left: 0.5em;
  font-size: 1.5rem;
  font-weight: 600;
  border-left: 5px solid #3c3c3c;
  line-height: 1;
  margin-bottom: 1rem;
}

.privacy p,
.privacy li {
  line-height: 2;
}

.privacy-head {
  font-size: 1.125rem;
  font-weight: bold;
}

.privacy-p {
  text-align: justify;
}

.privacy-link {
  color: var(--primary-color);
  font-weight: 600;
}

#s1 {
  animation: s1 0.5s linear;
  animation-fill-mode: forwards;
  animation-delay: 1s;
}

@keyframes s1 {
  from {
    width: 0em;
  }

  to {
    width: 9em;
  }
}

#s2 {
  animation: s2 0.5s linear;
  animation-delay: 1.5s;
  animation-fill-mode: forwards;
}

@keyframes s2 {
  0% {
    width: 0em;
  }

  to {
    width: 12em;
  }
}

#s3 {
  animation: s3 0.5s linear;
  animation-delay: 2s;
  animation-fill-mode: forwards;
}

@keyframes s3 {
  0% {
    width: 0%;
  }

  to {
    width: 6em;
  }
}

#s4 {
  animation: s4 0.5s linear;
  animation-fill-mode: forwards;
  animation-delay: 1s;
}

@keyframes s4 {
  from {
    width: 0em;
  }

  to {
    width: 9em;
  }
}

#s5 {
  animation: s5 0.5s linear;
  animation-delay: 1.5s;
  animation-fill-mode: forwards;
}

@keyframes s5 {
  0% {
    width: 0em;
  }

  to {
    width: 5em;
  }
}

#s6 {
  animation: s6 0.5s linear;
  animation-delay: 2s;
  animation-fill-mode: forwards;
}

@keyframes s6 {
  0% {
    width: 0%;
  }

  to {
    width: 10em;
  }
}

#s7 {
  animation: s7 0.5s linear;
  animation-fill-mode: forwards;
  animation-delay: 1s;
}

@keyframes s7 {
  from {
    width: 0em;
  }

  to {
    width: 9em;
  }
}

#s8 {
  animation: s8 0.5s linear;
  animation-delay: 1.5s;
  animation-fill-mode: forwards;
}

@keyframes s8 {
  from {
    width: 0em;
  }

  to {
    width: 5em;
  }
}

#s9 {
  animation: s9 0.5s linear;
  animation-fill-mode: forwards;
  animation-delay: 1s;
}

@keyframes s9 {
  from {
    width: 0em;
  }

  to {
    width: 6em;
  }
}

#s10 {
  animation: s10 0.5s linear;
  animation-delay: 1.5s;
  animation-fill-mode: forwards;
}

@keyframes s10 {
  0% {
    width: 0em;
  }

  to {
    width: 10em;
  }
}

#s11 {
  animation: s11 0.5s linear;
  animation-delay: 2s;
  animation-fill-mode: forwards;
}

@keyframes s11 {
  0% {
    width: 0%;
  }

  to {
    width: 6em;
  }
}

/* ===============================================
   PC版
   =============================================== */
@media (min-width: 769px) {
  .contact-number {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 46.25rem;
    margin: 0 auto;
  }

  .contact-tel,
  .contact-fax {
    font-size: 2.75rem;
    line-height: 1;
    margin: 8px 0 1rem;
    border-bottom: 2px solid #3c3c3c;
  }

  .contact-tel span,
  .contact-fax span {
    font-size: 1.93rem;
  }

  .privacy-text {
    margin-top: -3rem;
  }

  .contact-btn2 {
    display: flex;
    justify-content: center;
    max-width: 618px;
    margin: 4rem auto 0 auto;
    flex-wrap: wrap;
  }

  .contact-thank-text {
    margin: 1.5rem auto 3rem auto;
    width: 50rem;
  }

  /* 会社概要 */
  .company .page-contents {
    max-width: 68.75rem;
    margin: 0 auto;
    padding: 0 0 6rem;
  }

  .adjust01 {
    margin-bottom: 2rem;
  }

  /* 家つくりの想い */
  .city img {
    max-width: 100vw;
    min-width: 90rem;
  }

  /* 豊富な福利厚生 */
  .top-catch {
    position: absolute;
    z-index: 10;
    top: auto;
    bottom: 18%;
    left: 5%;
    line-height: 1.7;
    font-family: "Sawarabi Mincho", serif;
    font-weight: normal;
  }

  h1.top-catch {
    font-size: 3.472vw;
  }

  .top-catch span {
    background: linear-gradient(transparent 43%, #fff 0%);
    background-position-y: -0.42em;
    display: inline-block;
    white-space: nowrap;
    width: 0%;
    overflow: hidden;
    position: absolute;
  }

  .benefits-read {
    background: url(../img/bg_page.webp) repeat-y;
    background-size: contain;
    position: relative;
    z-index: 1;
    top: -23vw;
  }

  .benefits-page-title {
    padding-top: 23vw;
    margin-bottom: -23vw;
  }

  .benefits-page-title-h {
    text-align: center;
    padding-top: 4rem;
    padding-bottom: 1rem;
  }

  .benefits-page-title-p {
    width: 50rem;
    margin: 0 auto;
    padding-bottom: 4rem;
  }

  .benefits-header {
    text-align: center;
    padding: 4rem 0;
  }

  .benefits-header-h1 {
    border-bottom: 6px solid var(--primary-color);
    padding-bottom: 0.3rem;
    display: inline-block;
  }

  .benefits-header-h2 {
    margin-bottom: 0;
    line-height: 0;
  }

  .benefits-header span {
    font-size: 4.5rem;
    font-weight: bold;
  }

  .benefits-contents {
    background-color: #caf8ef;
    padding-bottom: 4rem;
  }

  .benefits-container1 {
    display: flex;
    flex-wrap: wrap;
    margin: 0 auto 4rem 0;
    padding: 2rem 2rem 2rem 0;
    background-color: #fff;
    border-radius: 0 120px 120px 0;
    max-width: 87vw;
    height: 41.31vw;
    align-items: center;
  }

  .benefits-container2 {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 4rem auto;
    padding: 2rem 2rem 2rem 0;
    background-color: #fff;
    border-radius: 120px 0 0 120px;
    max-width: 87vw;
    height: 41.31vw;
    align-items: center;
  }

  #benefits-4.benefits-container2 {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 4rem auto;
    padding: 2rem 2rem 2rem 0;
    background-color: #fff;
    border-radius: 120px 0 0 120px;
    max-width: 87vw;
    height: auto;
    align-items: normal;
  }

  #benefits-4.benefits-container2 .benefits-container-l {
    margin-top: 1.5vw;
  }

  .benefits-container2 .benefits-container-l {
    margin-left: 4vw;
  }

  .benefits-container-l {
    width: 43.4vw;
  }

  .benefits-container-r {
    width: 34vw;
    padding-left: 5vw;
    padding-bottom: 8vw;
  }

  .benefits-container-r img {
    margin-top: -18.5vw;
    margin-left: -3.5vw;
  }

  .benefits-container-title {
    display: flex;
    align-items: center;
  }

  .benefits-container-p,
  .benefits-container-p2 {
    font-size: 1.111vw;
  }

  .benefits-container-l img,
  .benefits-container-r img {
    width: 100%;
  }

  #benefits-4 .benefits-container-r img {
    width: 108%;
  }

  .benefits-container-number {
    font-size: 6.944vw;
    font-weight: bold;
    font-family: "Roboto", sans-serif;
    margin-right: 0.9vw;
    line-height: normal;
  }

  .benefits-container-h3 {
    font-size: 2.083vw;
    font-weight: bold;
  }

  #benefits-1 .benefits-container-h3 {
    line-height: 1;
  }

  .benefits-container-h3 span {
    font-size: 3.472vw;
    font-weight: bold;
    font-family: "Roboto", sans-serif;
  }

  .benefits-container-p {
    text-align: justify;
    margin-top: 1vw;
  }

  .benefits-container-p2 {
    text-indent: -1em;
    padding-left: 1em;
  }

  .benefits-travel-p {
    font-size: 1.2rem;
    font-weight: bold;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
  }

  section.t-list {
    margin-top: -1vw;
  }

  .benefits-travel-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 104%;
  }

  .benefits-travel-list ul {
    width: 50%;
    font-size: 1.111vw;
  }

  #benefits-4 .benefits-container-r {
    padding-bottom: 2vw;
    padding-top: 3vw;
  }

  .benefits-container-r img {
    padding-bottom: 0;
  }

  .company-trip {
    display: flex;
  }

  /* 施工実績 */
  .archive-catch {
    top: 12% !important;
    bottom: auto !important;
  }

  .archive-read {
    width: 50rem;
    margin: 0 auto;
    padding-top: 4rem;
    padding-bottom: 4rem;
    line-height: 2.2;
  }

  /* 採用情報 */
  h2.recruit-page-title-h {
    font-family: "Roboto", sans-serif;
    font-weight: 600;
    font-size: 3.25rem;
  }

  .recruit-wlb-item:nth-child(1),
  .recruit-wlb-item:nth-child(2),
  .recruit-wlb-item:nth-child(3) {
    border-right: 1px solid #d9d9d9;
    border-bottom: 1px solid #d9d9d9;
  }

  .recruit-wlb-item:nth-child(4) {
    border-bottom: 1px solid #d9d9d9;
  }

  .recruit-wlb-item:nth-child(5),
  .recruit-wlb-item:nth-child(6),
  .recruit-wlb-item:nth-child(7) {
    border-right: 1px solid #d9d9d9;
  }

  .recruit-photo {
    max-width: 62.5rem;
    position: relative;
    top: -24rem;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: -20rem;
  }

  .recruit-photo img {
    width: 100%;
  }

  .oneday {
    position: fixed;
    top: 26vw;
    left: 10.6vw;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    z-index: -1;
    transition: 0.3s;
  }

  .oneday.fixed {
    opacity: 1;
    z-index: 9;
  }

  .oneday-kotei {
    margin-top: -10vw;
  }

  .oneday-area {
    height: 315vw;
  }
}

@media screen and (min-width: 769px) and (max-width: 860px) {

  /* ページ全体のパディング調整 */
  .page-header h3 {
    font-size: 60px;
    margin-right: 3rem;
  }
}

@media screen and (min-width: 1141px) {
  .post-list-container {
    padding: 4rem 5rem 3rem;
  }
}

/* ===============================================
   レスポンシブデザイン対応 (1140px以下)
   =============================================== */
@media screen and (min-width: 769px) and (max-width: 1140px) {

  /* ページ全体のパディング調整 */
  .page-header h3 {
    font-size: 80px;
    margin-right: 4rem;
  }

  .page-contents,
  .post-list-container,
  .single-news-content {
    padding: 2rem;
  }

  .contact-info {
    width: 100%;
  }

  /* 採用トップ */
  .recruit-top-h {
    font-size: 1.2rem;
  }

  .recruit-wlb-item {
    width: 50%;
    /* 4列から2列へ */
  }

  /* 選考フロー */
  .recruit-flow {
    flex-direction: column;
    /* 縦積みに変更 */
    align-items: center;
  }

  .recruit-flow-image {
    width: 100%;
    margin-bottom: 1.5rem;
  }

  .recruit-flow-text {
    width: 100%;
    padding-left: 0;
    text-align: center;
  }
}

/* ===============================================
   レスポンシブデザイン対応 (768px以下)
   =============================================== */
@media (max-width: 768px) {

  /* ページヘッダー */
  .page-header {
    width: 88%;
    margin: 0 auto;
    padding-bottom: 1rem;
  }

  .page-header h3 {
    font-size: 2.6rem;
    margin-right: 0;
  }

  h3.text-long {
    font-size: 9.5vw;
  }

  .hero-text2 {
    font-size: 1.68rem;
    margin: -1rem 0 1.1rem 0;
  }

  .page-header h1 {
    font-size: 1.68rem;
  }

  /* ページ全体のパディング調整 */
  .page-contents {
    padding: 1.3rem 1.3rem;
    background-size: auto;
    background-position-x: center;
  }

  .page-container {
    margin-bottom: 2rem;
  }

  .page-container:last-child {
    margin-bottom: -1rem;
  }

  .page-main {
    padding: 1.5rem;
    margin-bottom: 2rem;
  }

  /* 会社概要 */
  .page-top-image img {
    width: 91%;
    border-radius: 0 20px 20px 0;
  }

  .page-contents .mb-company {
    margin-bottom: 2rem;
  }

  .green-contents2 {
    background-size: auto;
    background-position-x: center;
    top: -39vw;
  }

  .contents-container {
    padding-top: 39vw;
    margin-bottom: -39vw;
  }

  .company .page-title h2 {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
  }

  .company-eyecatch {
    padding: 10.7rem 0;
    overflow: hidden;
  }

  .company-eyecatch img {
    width: 71%;
  }

  img.company-eyecatch-l {
    width: 58%;
    left: -2.5rem;
    top: -1rem;
  }

  img.company-eyecatch-r {
    width: 69%;
    right: -5rem;
  }

  .company .page-contents {
    width: 87%;
    margin: 0 auto;
    padding: 0 0 1rem;
  }

  .company .page-contents dl {
    font-size: 0.875rem;
  }

  h2.page-subtitle {
    font-size: 1.375rem;
    margin-top: 0.5rem;
  }

  p.page-subtitle-text {
    font-size: 0.75rem;
  }

  .company-info {
    padding: 0;
  }

  .company-info dt,
  .company-info dd {
    width: 100%;
    /* 横並びから縦積みへ */
    padding: 1.5em 0em;
  }

  .company-info dt {
    border-bottom: none;
    padding-bottom: 0em;
    font-weight: bold;
  }

  .company-info dd {
    padding-top: 0;
    padding-bottom: 1.5em;
  }

  .company-info dd:last-child {
    border: none;
  }

  .access-map {
    flex-direction: column-reverse;
    padding: 1rem 0;
  }

  .access-map-text {
    width: 100%;
    padding-top: 1.5rem;
  }

  .access-map-text-p {
    padding-bottom: 1em;
    margin-bottom: 1em;
  }

  .access-map-text-p:last-child {
    margin-bottom: 0.5rem;
    padding-bottom: 0;
  }

  .access-map-image {
    width: 100%;
  }

  .access-map-image iframe {
    height: 15.93rem;
  }

  /* 家つくりの想い */

  .desire01 {
    background: url(../img/bg_housemaking1_sp.webp) no-repeat;
    background-size: 100% 100%;
    top: -39vw;
  }

  .house-making-header {
    margin-top: 2.5rem;
  }

  .house-making-header h2 {
    width: 80%;
    margin: 0 auto 2rem;
  }

  .house-making-header p {
    width: 85%;
    line-height: 1.9;
  }

  .city {
    margin-top: -1rem;
    padding-bottom: 2rem;
  }

  .city img {
    width: 100%;
  }

  .house-making-main {
    background: url(../img/bg_housemaking2_sp.webp) no-repeat;
    background-size: 100% 100%;
  }

  .house-making-main-container {
    padding: 4rem 0 0 0;
    display: block;
  }

  .house-making-main-l {
    width: 93%;
  }

  .house-making-main-title {
    padding-left: 7.5%;
  }

  .house-making-main-l h3 {
    font-size: 1.375rem;
  }

  .house-making-main-title dd {
    font-size: 0.75rem;
  }

  .house-making-main-ht {
    width: 92.5%;
    margin: 0 0 0 auto;
  }

  .house-making-main-h {
    padding-left: 0;
    font-size: 1.125rem;
    margin-top: 2rem;
  }

  .house-making-main-text {
    padding-left: 0;
    font-size: 0.875rem;
    margin-bottom: 2rem;
  }

  .house-making-main-r {
    width: 100%;
    padding-left: 0;
  }

  .house-making-footer {
    background: url(../img/bg_housemaking3_sp.webp) no-repeat;
    background-size: 100% 100%;
    padding-top: 25.8rem;
    margin-bottom: -3px;
    overflow: hidden;
  }

  .house-making-footer-l {
    left: -4rem;
    width: 57%;
    top: 0.5rem;
  }

  .house-making-footer-r {
    right: -1.5rem;
    top: auto;
    bottom: 0;
    width: 52%;
  }

  .house-making-footer-m {
    width: 24rem;
    padding-top: 2rem;
  }

  /* お問い合わせ */
  .contact-info {
    padding-bottom: 2.5rem;
    padding-top: 2.5rem;
  }

  .contact-info-l {
    width: 100%;
    margin-bottom: 1.5rem;
  }

  .contact-info-l p {
    text-align: center;
  }

  .contact-info-title {
    font-size: 0.875rem;
  }

  .contact-info-phone {
    font-size: 1.69rem;
  }

  .contact-info-phone span {
    font-size: 2.375rem;
  }

  .contact-info-text {
    font-size: 1.125rem;
  }

  .contact-info-r {
    width: 100%;
    text-align: center;
  }

  /* 採用トップ */
  .recruit-top-image img {
    width: 100%;
    /* 画像を画面幅いっぱいに */
    border-radius: 0;
  }

  .recruit-top-h {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    text-align: center;
  }

  /* 採用インデックス */
  .recruit-page-title {
    flex-direction: column;
    /* 縦積みに変更 */
  }

  .recruit-page-title-h {
    font-size: 1.75rem;
    margin-bottom: 0;
    font-family: "Roboto", sans-serif;
    font-weight: 600;
  }

  .recruit-page-title {
    margin: 2.2rem auto 0;
  }

  .recruit-page-list {
    width: 100%;
    font-size: 1rem;
    display: block;
  }

  .recruit-page-list li {
    padding: 0.7rem 0.5rem;
  }

  .recruit-page-list-l,
  .recruit-page-list-r {
    width: 100%;
  }

  .recruit-page-list li {
    width: 100%;
    /* 2列から1列へ */
  }

  /* 西部ガスグループについて */
  .recruit-page-saibu {
    flex-direction: column;
    /* 縦積みに変更 */
    margin: 2rem auto 0 auto;
  }

  .recruit-page-saibu-l,
  .recruit-page-saibu-r {
    width: 100%;
    margin-bottom: 1rem;
  }

  .recruit-page-saibu-l a {
    margin-bottom: 0.5rem;
    margin-right: 0;
  }

  .recruit-page-saibu-l img {
    padding-right: 0;
    /* 画像のパディングを削除 */
  }

  .recruit-page-saibu-r h3 {
    font-size: 1.25rem;
    margin-bottom: 0.3rem;
  }

  .recruit-page-saibu-text {
    margin-bottom: 2rem;
  }

  .tsunagi {
    width: 100vw;
    margin-top: -5rem;
    margin-left: calc(50% - 50vw);
  }

  .recruit-messege-top {
    flex-direction: column;
    width: 85%;
    margin: 2.5rem auto 0;
  }

  .recruit-message h2 {
    font-size: 1.375rem;
  }

  .recruit-message-image {
    width: 100%;
    margin-right: 0;
    margin-bottom: 2rem;
  }

  .recruit-message-text {
    max-width: 100%;
  }

  .recruit-message {
    width: 100%;
    margin: 4rem 0 0 0;
  }

  .recruit-message .ttl-a,
  .recruit-message p.news-description {
    padding-left: 8%;
  }

  .recruit-message-list {
    display: block;
    margin-top: 1.7rem;
    width: 100%;
  }

  .item1 img {
    border-radius: 0 20px 20px 0;
  }

  .item2 img {
    border-radius: 20px 0 0 20px;
  }

  .mt1 {
    margin-top: 0;
    margin-left: auto;
  }

  .recruit-message-item-text {
    width: 88%;
  }

  .item1 .recruit-message-item-text {
    margin-left: auto;
  }

  .item2 .recruit-message-item-text {
    margin-right: auto;
  }

  .recruit-message-item {
    width: 100%;
    margin-bottom: 3.5rem;
  }

  .recruit-wlb {
    max-width: 90%;
    margin: 2rem auto 0 auto;
  }

  .recruit-wlb-item {
    text-align: center;
    width: 50%;
    max-width: 50%;
    padding: 1.2rem 0.5rem;
    border-bottom: 1px solid #d9d9d9;
  }

  .recruit-wlb-item img {
    max-width: 7rem;
  }

  .recruit-wlb-item-description {
    font-size: 1.0625rem;
    margin-top: 0.7rem;
    text-align: center;
  }

  .recruit-wlb-item:nth-child(odd) {
    border-right: 1px solid #d9d9d9;
  }

  .recruit-wlb-item:last-child {
    border-bottom: none;
  }

  h3.page-subtitle {
    font-size: 1.375rem;
  }

  .yokou {
    margin-top: 1rem;
  }

  .yokou h3::after {
    content: "";
    border-bottom: #3c3c3c 2px solid;
    width: 0.9375rem;
    padding-top: 1rem;
  }

  .yokou-info {
    margin: 0 auto;
    padding: 1rem 0 0 0;
    font-size: 1rem;
  }

  .yokou-info dt {
    width: 100%;
    padding: 1rem 0 0 0;
    border: none;
    line-height: 1.5;
  }

  .yokou-info dd {
    width: 100%;
    padding: 0 0 1rem 0;
    border-bottom: 1px solid #d9d9d9;
    line-height: 1.7;
  }

  .company-info {
    width: 100%;
  }

  .contents2-container {
    max-width: 85%;
    margin: 0 auto;
    padding-top: 2.5rem;
    padding-bottom: 7rem;
  }

  .recruit-photo {
    width: 85%;
    margin: 0 auto -9rem;
    position: relative;
    top: -7rem;
  }

  .recruit-photo img {
    width: 100%;
  }

  .recruit-flow {
    display: block;
  }

  .flow h2 {
    margin-bottom: 1rem;
    font-size: 1.375rem;
    text-align: center;
  }

  .recruit-flow-text {
    width: 100%;
    padding: 1.5rem 0.7rem;
  }

  .recruit-qa-title {
    font-size: 1.375rem;
  }

  .qa-t1 {
    font-size: 3.125rem;
  }

  .qa-t2 {
    font-size: 2.5rem;
  }

  /* 福利厚生 */
  h1.top-catch {
    font-size: 1.375rem;
  }

  .top-catch {
    position: absolute;
    z-index: 10;
    top: auto;
    bottom: 17%;
    left: 6%;
    line-height: 1.7;
    font-family: "Sawarabi Mincho", serif;
    font-weight: normal;
  }

  .top-catch span {
    background: linear-gradient(transparent 43%, #fff 0%);
    background-position-y: -0.42em;
    display: inline-block;
    white-space: nowrap;
    width: 0%;
    overflow: hidden;
    position: absolute;
  }

  .benefits-read {
    background: url(../img/bg_page.webp) repeat-y;
    background-size: auto;
    background-position-x: center;
    position: relative;
    top: -39vw;
    z-index: 1;
  }

  .benefits-page-title {
    padding-top: 39vw;
    margin: 0 auto -39vw auto;
    width: 83%;
    line-height: 2;
  }

  .benefits-page-title-h {
    padding-top: 2.5rem;
    padding-bottom: 0.8rem;
    font-size: 1.375rem;
  }

  .benefits-page-title-p {
    padding-bottom: 2.3rem;
  }

  .benefits-contents {
    background-color: #caf8ef;
    padding-bottom: 0.8rem;
  }

  .benefits-contents h3 {
    font-size: 1.25rem;
  }

  .benefits-header {
    text-align: center;
    padding: 3rem 0 2rem;
  }

  .benefits-header-h1 {
    border-bottom: 5px solid var(--primary-color);
    padding-bottom: 0.2rem;
    display: inline-block;
    font-size: 1.562rem;
    line-height: 1.2;
  }

  .benefits-header span {
    font-size: 2.5rem;
    font-weight: bold;
  }

  .benefits-header-h2 {
    margin-bottom: 0;
    line-height: 0;
    font-size: 1.125rem;
  }

  .benefits-container1 {
    display: block;
    background-color: #fff;
    border-radius: 0 50px 50px 0;
    width: 93.5%;
    padding: 2rem;
    overflow: hidden;
    margin-bottom: 1.5rem;
  }

  .benefits-container2 {
    display: block;
    margin-left: auto;
    background-color: #fff;
    border-radius: 50px 0 0 50px;
    width: 93.5%;
    padding: 2rem;
    overflow: hidden;
    margin-bottom: 1.5rem;
  }

  #benefits-1 img {
    width: 23.5rem;
    position: relative;
    top: -1rem;
    left: -4rem;
    z-index: 3;
  }

  #benefits-2 img {
    width: 23.2rem;
    position: relative;
    top: 0rem;
    left: -1rem;
    z-index: 3;
  }

  #benefits-3 img {
    width: 24.5rem;
    position: relative;
    top: 0.7rem;
    left: -4.2rem;
    z-index: 3;
  }

  #benefits-4 .benefits-container-l img {
    width: 23.7rem;
    position: relative;
    top: 0.7rem;
    left: -1.3em;
    z-index: 3;
  }

  #benefits-5 img {
    width: 24rem;
    position: relative;
    top: 0.7rem;
    left: -4rem;
    z-index: 3;
  }

  #benefits-6 img {
    width: 23rem;
    position: relative;
    top: 0.7rem;
    left: -1rem;
    z-index: 3;
  }

  #benefits-7 img {
    width: 23.8rem;
    position: relative;
    top: 0.7rem;
    left: -4rem;
    z-index: 3;
  }

  #benefits-2 .benefits-container-r {
    margin-top: -9.5rem;
    position: relative;
    z-index: 4;
    padding-bottom: 2rem;
  }

  #benefits-3 .benefits-container-r {
    margin-top: -9rem;
    position: relative;
    z-index: 4;
    padding-bottom: 0;
  }

  #benefits-4 .benefits-container-r {
    margin-top: -7.2rem;
    position: relative;
    z-index: 4;
    padding-bottom: 0;
  }

  #benefits-5 .benefits-container-r {
    margin-top: -9.5rem;
    position: relative;
    z-index: 4;
    padding-bottom: 0.5rem;
  }

  #benefits-6 .benefits-container-r {
    margin-top: -7.5rem;
    position: relative;
    z-index: 4;
    padding-bottom: 0.5rem;
  }

  #benefits-7 .benefits-container-r {
    margin-top: -12rem;
    position: relative;
    z-index: 4;
    padding-bottom: 4.5rem;
  }

  #benefits-4 .benefits-container-r img {
    position: relative;
    margin-top: 7.2rem;
    z-index: 3;
    margin-bottom: 0.7rem;
    width: 103%;
  }

  .company-trip {
    display: flex;
    flex-direction: column-reverse;
  }

  .benefits-container-title {
    display: flex;
    align-items: center;
  }

  #benefits-1 .benefits-container-title {
    margin-bottom: 0.5rem;
  }

  .benefits-container-number {
    font-size: 4.0625rem;
    font-weight: bold;
    font-family: "Roboto", sans-serif;
    margin-right: 0.5rem;
    line-height: normal;
  }

  #benefits-1 .benefits-container-h3 {
    line-height: 1;
  }

  .benefits-container-p2 {
    text-indent: -1em;
    padding-left: 1em;
  }

  .benefits-contents img {
    width: 100%;
  }

  .benefits-container-h3 {
    padding-top: 0.3rem;
  }

  .benefits-container-h3 span {
    font-size: 2.187rem;
    font-weight: bold;
    font-family: "Roboto", sans-serif;
  }

  .benefits-travel-p {
    font-size: 1.0625rem;
    font-weight: bold;
  }

  .benefits-travel-list {
    font-size: 0.875rem;
    padding-bottom: 1rem;
  }

  /* 採用情報 */
  .recruit-button {
    width: 100%;
    height: 13.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 1.6em 0;
  }

  .recruit-bottom {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 12.5rem;
  }

  .recruit-bottom::after {
    background: url(../img/recruit2026_sp.webp) no-repeat;
    background-size: cover;
    position: absolute;
    content: "";
    display: block;
    transition: 0.3s;
    top: 0;
    width: 100%;
    height: 12.5rem;
  }

  .recruit-bottom a {
    width: 100%;
    height: 12.5rem;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 1;
  }

  .recruit-bottom a img {
    padding-left: 1.5rem;
    position: relative;
    z-index: 2;
    width: 15.5rem;
  }

  .recruit-qa {
    width: 90%;
    margin: 0 auto;
    background-position-x: center;
    padding: 1rem 0;
  }

  .recruit-button2 {
    width: auto;
    margin: 0.5rem auto 4.5rem auto;
  }

  .recruit-button3 {
    display: block;
    margin: 0 auto;
    width: 100%;
  }

  .faq-item {
    width: 90%;
    margin: 0 auto 1.3rem;
    padding: 1rem 1rem 1.2rem;
  }

  .recruit-page-saibu-l img {
    max-height: 1.6875rem;
  }

  .faq-question h4 {
    font-size: 1.125rem;
    padding-right: 1em;
  }

  .faq-question h4::before {
    font-size: 1.8rem;
  }

  .question {
    padding-right: 0.2em;
    font-size: 2.125rem;
  }

  .plus {
    font-size: 1.375rem;
    line-height: 1.2;
    display: flex;
    align-items: center;
    transition: 0.3s;
    position: relative;
    width: 100%;
  }

  .plus::before,
  .plus::after {
    width: 15px;
    height: 3px;
  }

  /* activeクラスが付与された時にアイコンをマイナスにする */
  .faq-question.active .plus::before,
  .faq-question.active .plus::after {
    width: 15px;
    height: 3px;
  }

  .faq-question.active {
    border-bottom: 1px solid var(--primary-color);
    padding-bottom: 0.5rem;
  }

  .recruit-qa-answer {
    margin-top: 1rem;
  }

  .recruit-bethepro {
    background: url(../img/bepro_banner_sp.webp) no-repeat;
    background-size: cover;
    background-position: center;
    width: 100%;
    aspect-ratio: 1 / 1.838;
    position: static;
  }

  .recruit-bethepro-container {
    width: 88%;
    margin: 0 auto;
    color: #fff;
    position: static;
    padding-top: 33px;
  }

  .recruit-bethepro-ttl {
    width: 170px;
  }

  .recruit-bethepro-container h3 {
    font-size: 24px;
    margin: 23px 0 7px;
    line-height: 1.6;
  }

  .recruit-bethepro-read {
    font-size: 14px;
    margin-bottom: 23px;
  }

  .black-btn {
    margin: 0 auto;
  }

  /* 社員メッセージ */
  .mes-title {
    padding-top: 2.3rem;
  }

  .message-page-title-h {
    text-align: left;
    margin-bottom: 1rem;
    font-size: 1.375rem;
    line-height: 1.4;
  }

  .message-contents {
    background: url(../img/bg_message_03_sp.webp) no-repeat,
      url(../img/bg_page.webp) no-repeat;
    background-size: 100%, auto;
    background-position: top, top center;
    padding-top: 1rem;
  }

  .message-contents-section {
    display: block;
    margin-bottom: 1rem;
    max-width: 100%;
    width: 100%;
  }

  .message-section-l {
    max-width: 100%;
    width: 82%;
    margin-top: 1.8rem;
  }

  .message-section-image img {
    margin-bottom: 1.2rem;
  }

  .message-section-r {
    max-width: 100%;
    width: 85%;
    margin: 0.2rem auto 1.2rem;
  }

  .message-catch {
    font-size: 0.875rem;
  }

  .message-section-title {
    font-size: 1.25rem;
    margin-bottom: 1rem;
  }

  .message-section-p1,
  .message-section-p2 {
    font-size: 1rem;
  }

  .message-section-p3 {
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0rem 0.5rem;
    margin-bottom: 0.3rem;
    border-radius: 10px;
    margin-top: 0.5rem;
  }

  .message-section-p4 {
    font-size: 1rem;
  }

  .message-contents-section2 {
    display: block;
    width: 100%;
    max-width: 85%;
    margin: 0 auto;
  }

  .message-section-l2 {
    width: 100%;
    margin-top: 1rem;
  }

  .message-section-q {
    padding-left: 2.3rem;
    padding-bottom: 0.5rem;
    font-size: 1.125rem;
    background-size: 2rem;
    padding-top: 0.2rem;
    line-height: 1.4;
    text-align: left;
  }

  .message-section-a {
    margin-bottom: 2rem;
    font-size: 0.875rem;
  }

  .message-section-r2 {
    width: calc(100% + 8.7%);
    overflow: hidden;
  }

  .message-contents2 {
    background: url(../img/bg_message_03_sp.webp) no-repeat;
    background-size: 100%;
    background-position: top;
    padding-top: 1rem;
    margin-top: 2rem;
  }

  .message-contents3 {
    background: url(../img/bg_message_03_sp.webp) no-repeat;
    background-size: 100%;
    background-position: top;
    padding-top: 1rem;
    margin-top: 2rem;
  }

  .message-footer-image img {
    margin-top: 1.5rem;
  }

  .message-interviewer {
    background-size: auto;
    background-position-x: center;
  }

  .interviewer-container {
    display: block;
    position: relative;
    max-width: 100%;
    margin: 0 auto;
    padding: 2.5rem 0;
  }

  .message-interviewer-l {
    margin: 0 auto;
  }

  .message-interviewer-l img {
    width: 48.5%;
  }

  .message-interviewer-name {
    font-size: 1rem;
    margin: 1rem 0;
    text-align: center;
  }

  .message-interviewer-r {
    max-width: 85%;
    z-index: 1;
    margin: 2rem auto 0;
  }

  .message-interviewer-title {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
  }

  .message-interviewer-overlay {
    left: -5%;
    width: 100%;
  }

  /* プロモーション動画 */
  .green-contents {
    background-size: auto;
    padding-top: 1rem;
    padding-bottom: 1.1rem;
  }

  .video-container {
    background-color: #fff;
    margin: 0.5rem 1.5rem;
    padding: 1.3rem 1.3rem;
  }

  .video-header {
    font-size: 1rem;
    font-weight: bold;
    text-align: left;
    margin-top: 0;
    margin-bottom: 1.2rem;
  }

  .video-wrapper {
    width: 100%;
    margin-bottom: 2rem;
  }

  .video-wrapper:last-child {
    margin-bottom: 0;
  }

  .video-title {
    font-size: 0.875rem;
    font-weight: bold;
  }

  /* お問い合わせ */
  .contact-contents {
    background-size: 100%;
    padding-top: 1rem;
    padding-bottom: 2rem;
  }

  .contact-container {
    background-color: #fff;
    margin: 0.5rem 1.5rem;
    padding: 1.3rem 1.3rem;
  }

  .contact-header-p {
    font-size: 1rem;
    text-align: justify;
    margin-bottom: 0;
  }

  .contact-tel,
  .contact-fax {
    font-size: 2rem;
    text-align: center;
  }

  .contact-tel span,
  .contact-fax span {
    font-size: 1.4rem;
  }

  .contact-number {
    display: block;
  }

  .contact-tel p,
  .contact-fax p {
    font-size: 2rem;
    line-height: 1;
    border-bottom: 2px #3c3c3c solid;
    display: inline-block;
  }

  .contact-tel span,
  .contact-fax span {
    font-size: 1.41rem;
  }

  .contact-main textarea {
    margin-bottom: 0.5rem;
  }

  .contact-text {
    margin: 1.2rem 0;
    font-size: 0.875rem;
    text-align: justify;
  }

  .contact-text2 {
    margin: 0 0 1.2rem 0;
    font-size: 0.875rem;
    text-align: justify;
  }

  .contact-main .hissu {
    font-size: 0.75rem;
  }

  .contact-main {
    width: auto;
  }

  .contact-main .contact-label {
    font-size: 1rem;
    font-weight: bold;
    margin-bottom: 2rem;
  }

  .contact-btn2 {
    display: flex;
    flex-direction: column-reverse;
    margin-top: 2.2rem;
  }

  .contact-label-confirm {
    font-size: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
  }

  .contact-label-confirm label {
    font-size: 0.875rem;
  }

  .check-area p {
    text-align: center;
  }

  .submit {
    width: 230px;
    height: 54px;
    background-color: var(--primary-color);
    color: var(--light-text-color);
    border-radius: 27px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
  }

  .submit p {
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    display: flex;
  }

  .submit p::after {
    content: url(../img/arrow03.svg);
    position: relative;
    left: -2rem;
    top: 1rem;
    transition: 0.2s;
  }

  .submit:hover.submit p::after {
    left: -1.7rem;
  }

  .submit input {
    border: none;
    width: 230px;
    height: 54px;
  }

  .previous {
    width: 230px;
    height: 54px;
    color: #3c3c3c;
    background-color: #fff;
    border: 2px solid #3c3c3c;
    border-radius: 27px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
  }

  .previous p {
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    display: flex;
  }

  .previous p::before {
    content: url(../img/arrow04.svg);
    position: relative;
    left: 2rem;
    top: 1rem;
    transition: 0.2s;
  }

  .previous:hover.previous p::before {
    left: 1.5rem;
  }

  .previous input {
    border: none;
    width: 230px;
    height: 54px;
  }

  .check-area {
    font-size: 1rem;
  }

  .contact-btn2 section {
    margin: 0 auto;
  }

  section.previous {
    margin-top: 1.5rem;
  }

  .confirm-m {
    margin-top: 1.5rem;
  }

  .thanks-header-p {
    font-size: 1rem;
    text-align: justify;
    margin-bottom: 0;
  }

  .contact-thank-text {
    margin: 0.7rem 0 1.5rem 0;
  }

  .btn-thank {
    width: 230px;
    height: 54px;
    border-radius: 27px;
  }

  .btn-white,
  .blue-btn,
  .black-btn,
  .invert-btn {
    width: 230px;
    height: 54px;
    border-radius: 27px;
  }

  /* プライバシーポリシー */
  .privacy .page-h3 {
    padding-left: 0.5em;
    font-size: 1.125rem;
    font-weight: 600;
    border-left: 5px solid #3c3c3c;
    line-height: 1.5;
    margin-bottom: 0.7rem;
  }

  .privacy p,
  .privacy li {
    line-height: 1.8;
  }

  .adjust01 {
    margin-bottom: 1rem;
  }

  .m-adjust01 {
    margin-bottom: 1.5rem;
  }

  /* お知らせ */
  .news-contents {
    padding: 1.3rem 1.3rem 2rem 1.3rem;
    background-size: auto;
    background-position-x: center;
  }

  .category-buttons {
    margin-top: 0.5rem;
  }

  .category-buttons li:first-child {
    width: 100%;
    font-size: 0.8125rem;
    line-height: 0.5;
  }

  .category-buttons {
    margin-bottom: 1rem;
  }

  .cat-button {
    padding: 0.3em 1em;
    min-width: 5em;
    text-align: center;
  }

  .info-news-category span {
    font-size: 0.8125rem;
  }

  .news-line {
    padding: 2rem 0 0 0;
  }

  h1.entry-title {
    font-size: 1.25rem;
    margin-top: 0.5rem;
    padding-bottom: 0.8rem;
  }

  span.posted-on {
    margin-right: 0.5rem;
  }

  /* 施工実績 */
  .archive-catch {
    top: 11% !important;
    bottom: auto !important;
  }

  .archive-read {
    padding: 2rem 0;
  }

  .page-contents2 {
    background-size: auto;
    background-position-x: center;
    padding: 0;
  }

  .oneday {
    display: none;
  }
}

/* ===============================================
   レスポンシブデザイン対応 (480px以下)
   =============================================== */
@media (max-width: 480px) {

  /* 採用トップ */
  .recruit-top-h {
    font-size: 1rem;
    line-height: 160%;
  }

  .recruit-message-item-title {
    font-size: 1.1rem;
  }

  .recruit-qa-answer-head {
    font-size: 1.8rem;
    margin-right: 0.5rem;
  }
}

/* ===============================================
   レスポンシブデザイン対応 (320px以下)
   =============================================== */
@media (max-width: 320px) {

  /* ページヘッダー */
  .page-header h3 {
    font-size: 32px;
  }

  /* 採用トップ */
  .recruit-top-h {
    font-size: 0.9rem;
  }

  .recruit-top-h span {
    padding: 0.1rem;
  }
}

/* 追加7/28 */

/* achievements page styles */
.archive-top-image {
  overflow: hidden;
  background: url(../img/bg_page.webp) no-repeat;
  background-size: 100%;
  background-position: bottom;
  position: relative;
  padding-right: 10%;
}

.archive-top-image img {
  width: 100%;
  border-radius: 0 32px 32px 0;
}

.archive-top-h {
  position: absolute;
  z-index: 10;
  top: 15%;
  left: 5%;
  line-height: 180%;
  font-family: "Sawarabi Mincho", serif;
  font-weight: normal;
}

.archive-top-h span {
  background-color: #fff;
  display: inline;
  padding: 0.25rem;
}

.archive-p {
  padding: 2rem 6rem;
}

.archive-contents-header {
  margin: 6rem 8rem 1rem;
  padding-left: 1rem;
  border-left: 8px solid var(--primary-color);
}

.archive-contents-header-title {
  font-size: 3.125rem;
  font-weight: bold;
  line-height: 0.9;
  margin-bottom: 0.5rem;
}

.archive-contents-header-subtitle {
  font-size: 1.5625rem;
  font-weight: 500;
  font-family: "Roboto", sans-serif;
  color: #afafaf;
}

.archive-contents-block-title {
  background: url(../img/bg_achive_contents_block_title.webp) no-repeat;
  background-size: cover;
  padding: 1rem 8rem;
  font-size: 1.5rem;
  font-weight: bold;
}

.archive-contents-block-container {
  display: flex;
}

.archive-contents-block-container img {
  width: 100%;
  flex-shrink: 1;
}

.archive-contents-block-container2 img {
  width: 100%;
}

.archive-contents-block-subcontainer,
.archive-contents-block-subcontainer2,
.archive-contents-block-subcontainer3 {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.archive-contents-block-text {
  padding: 1.5rem 4rem 4rem;
}

.archive-contents-block-text p {
  text-align: right;
  font-weight: bold;
}

/* Pagenation */
.pagination {
  margin: 40px auto;
  /* 上下余白と中央揃え */
  font-size: 1rem;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3c3c3c;
  /* 全体の文字色 */
  font-family: "Roboto", sans-serif;
  font-weight: 600;
}

.pagination .page-numbers {
  list-style: none;
  /* リストの点を削除 */
  padding: 0;
  margin: 0;
  display: flex;
  /* Flexboxで横並び */
  align-items: center;
  justify-content: center;
  gap: 10px;
  /* 項目間のスペース */
}

.pagination .page-numbers li {
  display: flex;
  /* リンクをFlexアイテムに */
  align-items: center;
  justify-content: center;
}

.pagination .page-numbers li a,
.pagination .page-numbers li span {
  margin: 0;
  /* 不要なマージンをリセット */
  border: solid 1px #eee;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  /* 円形 */
  line-height: 40px;
  /* 垂直方向中央寄せ */
  text-align: center;
  box-sizing: border-box;
  display: flex;
  /* 内部コンテンツを中央揃え */
  align-items: center;
  justify-content: center;
  transition: 0.3s;
  /* ホバー時のアニメーション */
  text-decoration: none;
  /* 下線を削除 */
  color: #000;
  /* リンクの文字色 */
}

/* 現在のページ */
.pagination .page-numbers li span.current {
  border: none;
  /* ボーダーをなくす */
  background: #d9d9d9;
  /* 背景色 */
  color: #000;
  /* 文字色 */
  cursor: default;
  /* カーソルをデフォルトに */
}

/* 通常のページリンク */
.pagination .page-numbers li a.page-numbers {
  background: none;
  /* 背景なし */
}

/* ページリンクのホバー時 */
.pagination .page-numbers li a.page-numbers:hover {
  background: #3c3c3c;
  /* 背景色 */
  color: #fff;
  /* 文字色 */
}

/* 「次へ」リンクのスタイル */
.pagination .page-numbers li a.next {
  font-weight: bold;
  /* 太字 */
}

/* single info page */
.entry-meta {
  display: flex;
}

.posted-on {
  color: #afafaf;
  font-size: 0.9rem;
  min-width: 70px;
  margin-right: 1.2rem;
  font-weight: 600;
}

.posted-category {
  font-size: 0.85rem;
  font-weight: bold;
  min-width: 5em;
  display: block;
  margin-right: 1rem;
  border: 1px solid #afafaf;
  text-align: center;
  border-radius: 6px;
}

.entry-title {
  font-size: 1.875rem;
  font-weight: bold;
}

.single-news {
  background: url(../img/bg_page.webp) repeat-y;
  background-size: contain;
  width: 100%;
  padding: 4.3rem 0;
}

.single-news-content {
  background-color: #ffffff;
  padding: 5rem 5rem 3rem;
  margin-bottom: 4rem;
  max-width: 68.75rem;
  margin: 0 auto;
}

.nav-links {
  display: flex;
  justify-content: space-between;
  width: 45%;
  max-width: 400px;
  margin: 3rem auto 0;
  font-weight: bold;
}

.nav-previous span::before {
  content: "";
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  background: url(../img/il_prev_point.svg) no-repeat;
  background-position: center;
  background-size: contain;
  margin: 0 0.5rem 0.2rem 0;
  vertical-align: middle;
}

.nav-next span::after {
  content: "";
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  background: url(../img/il_next_point.svg) no-repeat;
  background-position: center;
  background-size: contain;
  margin: 0 0 0.2rem 0.5rem;
  vertical-align: middle;
}

.entry-title {
  padding-bottom: 2rem;
}

/* 0724 tuika */
.category-buttons {
  align-items: center;
  font-weight: 600;
}

.category-filter {
  max-width: 68.75rem;
  margin: 0 auto;
}

.post-list-container {
  background-color: #ffffff;
  margin-bottom: 4rem;
  max-width: 68.75rem;
  margin: 0 auto;
}

.category-p {
  font-family: "Roboto", sans-serif;
  font-size: 14px;
}

.cat-button.active {
  background-color: #3c3c3c;
  color: #fff;
  border-color: #3c3c3c;
}

a.cat-button:hover {
  background-color: #3c3c3c;
  color: #fff;
  border-color: #3c3c3c;
}

.category-buttons li {
  line-height: 1rem;
}

.ca-ti1 {
  display: flex;
}

.ca-ti1 dd {
  width: 100%;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--border-color);
}

.ca-ti2 {
  display: flex;
  width: 100%;
  font-size: 1.25rem;
}

.ca-ti1 dd {
  font-weight: 600;
}

.info-news-category {
  font-size: 0.85rem;
  min-width: 90px;
  padding-bottom: 4rem;
  border-bottom: 1px solid var(--border-color);
}

.info-news-category span {
  display: block;
  margin-right: 1rem;
  border: 1px solid #afafaf;
  text-align: center;
  border-radius: 6px;
}

.info-news-date {
  padding-right: 2.5rem;
  padding-bottom: 4rem;
  color: #afafaf;
  font-size: 0.9rem;
  min-width: 70px;
  border-bottom: 1px solid #3c3c3c;
}

.info-news-title {
  font-weight: bold;
}

.info-news-title a {
  position: relative;
  bottom: 0.2em;
}

/* ===============================================
   レスポンシブデザイン対応 (768px以下)
   =============================================== */
@media (max-width: 768px) {
  .category-filter {
    font-size: 0.8125rem;
  }

  .post-list-container {
    padding: 0.5rem 1rem 0.1rem 1rem;
  }

  .news-line {
    flex-direction: column;
  }

  .info-news-category,
  .info-news-date {
    padding-right: 0.7em;
    padding-bottom: 0.5rem;
    border: none;
  }

  .news-line dd {
    padding-bottom: 2rem;
  }

  .single-news {
    padding: 1.3rem 1.3rem 2rem 1.3rem;
    background-size: auto;
    background-position-x: center;
  }

  .single-news-content {
    padding: 2rem 1.2rem;
  }

  .nav-links {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin: 3rem auto 0;
  }

  /* 施工実績 */
  .archive-p {
    padding: 2rem;
  }

  .archive-contents-header {
    margin: 3rem 2rem 1rem;
    padding-left: 0.7rem;
    border-left: 5px solid var(--primary-color);
  }

  .archive-contents-header-title {
    font-size: 1.75rem;
    line-height: 0.9;
    margin-bottom: 0.5rem;
  }

  .archive-contents-header-subtitle {
    font-size: 1rem;
  }

  .archive-contents-block-title {
    background: url(../img/bg_achive_contents_block_title_sp.webp) no-repeat;
    background-size: cover;
    padding: 1rem 2rem;
    font-size: 1.25rem;
    font-weight: bold;
  }

  .archive-contents-block-container {
    flex-direction: column;
    /* 縦積みに変更 */
  }

  .archive-contents-block-subcontainer,
  .archive-contents-block-subcontainer2 {
    flex-direction: row;
    /* 横並びに戻す */
  }

  .archive-contents-block-subcontainer img {
    width: 50%;
    /* 画像の幅を調整 */
  }

  .archive-contents-block-subcontainer2 img {
    width: 100%;
    /* 画像の幅を調整 */
  }

  .archive-contents-block-text {
    flex-direction: column;
    /* 縦積みに変更 */
    padding: 1rem 2rem;
  }

  .archive-contents-block-img1,
  .archive-contents-block-img4 {
    width: 100%;
  }

  .archive-contents-block-text p {
    text-align: left;
    font-size: 0.875rem;
    margin-bottom: 1rem;
  }
}

/* 追加250805 */

.pos-relative {
  position: relative;
}

.before-pt {
  padding-top: 1rem;
  border-left: 2px solid #000;
  height: 2rem;
}

.pt0 {
  padding-top: 0 !important;
}

.pb1 {
  padding-bottom: 1rem !important;
}

.pb2 {
  padding-bottom: 2rem !important;
}

.pb3 {
  padding-bottom: 3rem !important;
}

.pb4 {
  padding-bottom: 4rem !important;
}

.ml1 {
  margin-left: 1rem !important;
}

.ml2 {
  margin-left: 2rem !important;
}

.ml3 {
  margin-left: 3rem !important;
}

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

.shadow {
  filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
}

.txtbox-shadow {
  filter: drop-shadow(1.5px 1.5px 0 #040000);
}

/* Be the Pro */

.bepro-hero {
  background: url(../img/btp_top_pc.webp) no-repeat;
  background-size: cover;
  background-position: center;
  width: 100%;
  aspect-ratio: 1 / 1.003;
  overflow: hidden;
}

.bepro-catch {
  position: relative;
  top: 4.5%;
  left: 9%;
}

.be img {
  width: 18.55vw;
  animation: textAnime2 forwards ease-in-out;
  animation-duration: 0.5s;
  transform: translateY(120%);
}

.the img {
  width: 18.55vw;
  animation: textAnime2 forwards ease-in-out;
  animation-duration: 0.5s;
  animation-delay: 0.5s;
  transform: translateY(120%);
}

.pro img {
  width: 23.25vw;
  animation: textAnime2 forwards ease-in-out;
  animation-duration: 0.5s;
  animation-delay: 0.5s;
  transform: translateY(120%);
}

.bepro-catch span {
  display: flex;
  align-items: end;
  margin-top: -2.5vw;
  gap: 3vw;
}

.bepro-read {
  display: flex;
  position: relative;
}

.bepro-read h3 img {
  top: 23%;
  left: 386%;
  width: 9.652vw;
  position: relative;
}

.bepro-text {
  position: relative;
  top: 19vw;
  left: 50%;
  width: 32.5vw;
}

.btp-top-head {
  text-align: center;
}

.btp-top-head p {
  font-size: 2.0833vw;
  font-weight: bold;
  line-height: 1.5;
}

.btp_head_bold {
  font-size: 3.125vw;
}

.btp-top-txt {
  text-align: justify;
  line-height: 2.2;
  font-size: 1.111vw;
  margin-top: 5vw;
}

.btp_bold {
  font-size: 1.5277vw;
  font-weight: bold;
}

.btp-main2 {
  background-color: #d5fa99;
}

.btp-main2-container {
  display: flex;
  width: 76.388vw;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
}

.btp-main3 {
  background: url(../img/bg-stripe.png);
  background-repeat: repeat;
}

.btp-main3-container {
  width: 68.472vw;
  margin: 0 auto;
  padding: 5vw 0;
}

.btp-main4 {
  background: url(../img/btp-main4-bg.webp) no-repeat;
  background-size: cover;
}

.btp-main4-container {
  display: flex;
  max-width: 53.125rem;
  justify-content: space-between;
  margin: 0 auto;
  padding: 1.7rem 0;
  align-items: center;
}

.btp-main5 {
  padding: 6rem 0;
  text-align: center;
  overflow: hidden;
}

.btp-comment1,
.btp-comment1b,
.btp-comment2,
.btp-comment2b {
  position: relative;
  background: #fff;
  padding: 2vw;
  border: 2.25px solid #000;
  border-radius: 2.5vw;
  line-height: 2;
  text-align: justify;
  width: 23.75vw;
  filter: drop-shadow(0.2vw 0.2vw 0 #040000);
  font-size: 1.111vw;
  position: relative;
  z-index: 2;
}

.btp-comment1::before,
.btp-comment1::after {
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  pointer-events: none;
  position: absolute;
  right: 100%;
  top: 50%;
}

.btp-comment1b::before,
.btp-comment1b::after {
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  pointer-events: none;
  position: absolute;
  right: 100%;
  top: 30%;
}

.btp-comment1::after,
.btp-comment1b::after {
  border-width: 10px 30px;
  margin-top: -10px;
  border-right-color: #fff;
}

.btp-comment1::before,
.btp-comment1b::before {
  border-width: 12px 34px;
  margin-top: -12px;
  margin-right: 1px;
  border-right-color: #000;
}

.contents1-l,
.contents1-r,
.contents2-l,
.contents2-r {
  position: relative;
}

.btp-contents2 {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.btp-contents3 {
  display: flex;
  justify-content: space-between;
  align-items: end;
}

.btp-contents2-left {
  width: 55%;
  position: relative;
  z-index: 1;
}

.btp-contents2-right {
  width: 45%;
}

.btp-comment2::before,
.btp-comment2::after,
.btp-comment2b::before,
.btp-comment2b::after {
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  pointer-events: none;
  position: absolute;
  left: 100%;
  top: 50%;
}

.btp-comment2::after,
.btp-comment2b::after {
  border-width: 12px 34px;
  margin-top: -12px;
  border-left-color: #fff;
}

.btp-comment2::before,
.btp-comment2b::before {
  border-width: 10px 28px;
  margin-top: -14px;
  margin-left: 1px;
  border-left-color: #000;
}

.btp-contents1 .contents1-l img,
.btp-contents2 .contents2-r img,
.btp-contents3 .contents2-r img,
.btp-contents3 .contents1-l img {
  width: 21.1111vw;
}

.btp-contents-list {
  font-weight: bold;
  font-size: 1.25vw;
  list-style: disc;
  margin-left: 2vw;
  position: relative;
}

ol.btp-contents-list {
  padding-left: 0;
}

.btp-contents-list li::marker {
  color: #0047b2;
}

.btp-main-b-left {
  width: 43.055vw;
  text-align: center;
}

.btp-main-b-right {
  width: 28.472vw;
}

.btp-main-b-left img {
  width: 100%;
}

.btp-main-b-h {
  font-size: 2.0833vw;
  font-weight: bold;
  color: #0047b2;
  margin-bottom: 2rem;
}

.btp-sgc-head {
  font-size: 30px;
  font-weight: bold;
  padding: 1.5vw 0;
  text-align: center;
}

.btp-main4-l {
  max-width: 10.5rem;
}

.btp-main4-l img {
  width: 100%;
}

.btp-main4-r {
  max-width: 40.3125rem;
}

.btp-main4-r-p {
  color: #fff;
  text-align: justify;
  line-height: 2;
}

.btp-main4-r-name {
  color: #fff;
  text-align: right;
  font-weight: bold;
  padding-top: 1rem;
}

.btp-main5-txt {
  padding: 2rem 0 4rem;
}

.btp-main5-txt span {
  font-size: 18px;
  font-weight: bold;
}

.btp-main5-content {
  max-width: 21.375rem;
  position: relative;
}

.btp-main5-content img {
  width: 100%;
}

.btp-main5-a {
  position: absolute;
  padding-left: 1rem;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
}

.btp-main5-content-title {
  font-size: 30px;
  font-weight: bold;
  text-align: left;
  padding-bottom: 1rem;
  padding-top: 2rem;
}

.btp-main5-content-more {
  font-weight: bold;
  text-align: right;
  position: relative;
  margin-right: 32px;
}

.btp-main5-content-more::after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 25%;
  right: -24px;
  width: 18px;
  height: 18px;
  background-image: url(../img/btp-main5-point.svg);
  background-position: center;
  background-size: contain;
}

.btp-main5-img-sub1 {
  position: absolute;
  bottom: -6%;
  left: -38%;
  width: auto !important;
}

.btp-main5-img-sub2 {
  position: absolute;
  bottom: -8%;
  right: -30%;
  width: auto !important;
}

.btp-main5-img-sub3 {
  position: absolute;
  bottom: -6%;
  left: -25%;
  width: auto !important;
}

.btp-main5-img-sub4 {
  position: absolute;
  bottom: -10%;
  left: -18%;
  width: auto !important;
}

/* netsu epi content */
.episode-hidden {
  display: none;
}

.episode-visible {
  display: block;
}

#content1,
#content2,
#content3,
#content4 {
  position: fixed;
  top: 52%;
  left: 50%;
  max-width: 730px;
  width: 55%;
  z-index: 999;
  padding: 24px 48px;
  transform: translate(-50%, -50%);
  border-radius: 40px;
  border: 1px solid #000;
  background: #fff;
  box-shadow: 8px 7px 0 0 #b71c21;
  max-height: 80vh;
  overflow: scroll;
}

.close-button {
  text-align: right;
  font-weight: bold;
}

.close {
  text-align: right;
  font-family: Roboto;
  position: relative;
  left: 86%;
}

.close::after {
  content: "";
  background: url(../img/close.svg) no-repeat;
  width: 14px;
  height: 14px;
  display: inline-block;
  background-size: contain;
  background-position-y: center;
  position: absolute;
  top: 6px;
  left: 53px;
}

.btp-episode-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0 2.5rem;
}

.btp-episode-head-logo {
  width: 210px;
}

.btp-episode-head-photo {
  width: 300px;
}

.btp-episode-h {
  color: #000;
  font-family: "Zen Kaku Gothic New";
  font-size: 28px;
  font-style: normal;
  font-weight: 700;
  line-height: 36px;
  /* 128.571% */
  margin-bottom: 15px;
}

.btp-episode-txt {
  color: #000;
  text-align: justify;
  font-family: "Zen Kaku Gothic New";
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 32px;
  /* 200% */
}

.btp-episode-name {
  color: #000;
  font-family: "Zen Kaku Gothic New";
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 25px;
  /* 178.571% */
  text-align: right;
}

.btp-episode-name span {
  color: #000;
  text-align: center;
  font-family: "Zen Kaku Gothic New";
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 25px;
  /* 125% */
}

.backpoint1 {
  background: url(../img/btp-backpoint.svg) no-repeat;
  background-position: 30% 100%;
  padding-bottom: 5vw;
}

.backpoint2 {
  background: url(../img/btp-backpoint.svg) no-repeat;
  background-position: 30% 50%;
}

.backpoint3 {
  background: url(../img/btp-backpoint.svg) no-repeat;
  background-position: 100% 100%;
}

.backpoint4 {
  background: url(../img/btp-backpoint.svg) no-repeat;
  background-position: 100% 60%;
}

.btp-hiru-point1 {
  position: absolute;
  top: -48%;
  left: 65%;
  width: 2.5vw !important;
}

.btp-hiru-point1b {
  position: absolute;
  top: -35%;
  left: 60%;
  width: 8vw !important;
}

.btp-hiru-point2 {
  position: absolute;
  top: -32%;
  right: 0;
  width: auto !important;
}

.btp-hiru-point3 {
  position: absolute;
  top: -20%;
  right: -10%;
  width: 4.5vw !important;
}

.btp-hiru-point4 {
  position: absolute;
  top: -41%;
  left: 65%;
  width: 3.5vw !important;
}

.btp-hiru-point5 {
  position: absolute;
  top: -54%;
  left: 14%;
  width: 4vw !important;
}

.btp-hiru-point6 {
  position: absolute;
  top: -70%;
  left: 72%;
  width: 6vw !important;
}

.btp-yoru-point1 {
  position: absolute;
  top: -32%;
  left: 21%;
  width: 2.5vw !important;
}

.btp-yoru-point2 {
  position: absolute;
  top: -86%;
  right: 8%;
  width: 3vw !important;
}

.btp-yoru-point3 {
  position: absolute;
  top: -61%;
  left: 66%;
  width: 4vw !important;
}

.btp-yoru-point4 {
  position: absolute;
  top: -98%;
  right: -14%;
  width: 4.5vw !important;
  z-index: 4;
}

.btp-yoru-point5 {
  position: absolute;
  top: -51%;
  left: 15%;
  width: 4vw !important;
}

.btp-yoru-point6 {
  position: absolute;
  top: -50%;
  right: 10%;
  width: 4.5vw !important;
}

.koro {
  font-size: 1.25vw;
}

.btp-main3-logo {
  display: block;
  margin: 0 auto;
  width: 38.68vw;
}

.sgc-main {
  width: 100%;
}

.atsu-logo {
  max-width: 50rem;
}

h1.be {
  overflow: hidden;
}

h1.the {
  overflow: hidden;
}

h1.pro {
  overflow: hidden;
}

/* ===============================================
   レスポンシブデザイン対応 (769px以上)
   =============================================== */
@media (min-width: 769px) {
  .btp-main {
    background: linear-gradient(180deg,
        #ffee2b 0%,
        #ffee2b 34.1%,
        #d5fa99 34.1%,
        #d5fa99 49%,
        #ffee2b 49%,
        #ffee2b 85.5%,
        #d5fa99 85.5%,
        #d5fa99 100%);
  }

  .btp-main-container {
    max-width: 86.597vw;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    padding: 4vw 0;
  }

  .btp-main-left {
    max-width: 34.583vw;
  }

  .btp-1day-repo {
    margin-top: -37vw;
  }

  .btp-1day-repo-img {
    width: 34.5833vw;
    padding-bottom: 3vw;
  }

  .kotei {
    position: relative;
    top: 0;
    left: 0.1vw;
    z-index: 4;
    padding-bottom: 34vw;
  }

  .btp-1day-repo-img2 {
    width: 26vw;
    position: absolute;
    left: 11%;
  }

  .btp-1day-repo-face {
    display: flex;
    justify-content: space-around;
    align-items: flex-end;
    margin: 1.2vw auto;
    width: 75%;
  }

  .face1 {
    width: 5.3vw;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
  }

  .face2 {
    width: 5.7vw;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
  }

  .face3 {
    width: 5.25vw;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
  }

  .btp-1day-repo-face section {
    width: 33%;
    text-align: center;
  }

  .btp-1day-repo-face-time {
    font-size: 0.9722vw;
    font-weight: bold;
    padding-top: 0.5vw;
  }

  .btp-1day-repo-face-name {
    font-size: 1.3888vw;
    font-weight: bold;
    line-height: 0.9;
  }

  .btp-1day-txt {
    margin: 3vw auto;
    width: 78%;
  }

  .btp-1day-txt h3 {
    font-size: 1.25vw;
    padding-bottom: 0.5vw;
  }

  .btp-1day-txt p {
    text-align: justify;
    font-size: 1.111vw;
  }

  .btp-main-right {
    max-width: 49.305vw;
  }

  .btp-main-timeline1 {
    padding-left: 2.9166vw;
    border-left: 2px solid #000;
    padding-bottom: 3.5vw;
  }

  .btp-main-timeline1:last-child {
    padding-bottom: 0;
  }

  .btp-main-timeline2 {
    padding-left: 2.9166vw;
    border-left: 2px dashed #000;
  }

  .btp-main-time,
  .btp-main-time2,
  .btp-main-time3 {
    font-family: "roboto", sans-serif;
    font-size: 3.4722vw;
    font-weight: bold;
    position: relative;
    padding-bottom: 0.5vw;
  }

  .btp-main-time::before {
    content: "";
    display: inline-block;
    position: absolute;
    left: -4.35vw;
    top: 1.3888vw;
    width: 2.777vw;
    height: 2.777vw;
    background-image: url(../img/btp-timeline-point1.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }

  .btp-main-time2::before {
    content: "";
    display: inline-block;
    position: absolute;
    left: -4.35vw;
    top: 1.3888vw;
    width: 2.777vw;
    height: 2.777vw;
    background-image: url(../img/btp-timeline-point2.svg);
    background-position: center;
    background-size: contain;
  }

  .btp-main-time3::before {
    content: "";
    display: inline-block;
    position: absolute;
    left: -4.35vw;
    top: 1.3888vw;
    width: 2.777vw;
    height: 2.777vw;
    background-image: url(../img/btp-timeline-point3.svg);
    background-position: center;
    background-size: contain;
  }

  .btp-main-time-span {
    font-size: 2.6388vw;
    font-weight: bold;
    font-family: "zen-kaku-gothic-new", sans-serif;
    color: #0047b2;
    display: inline;
    margin-left: 1em;
    position: relative;
    top: -0.2vw;
  }

  .btp-contents1 {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .btp-timeline-face,
  .btp-timeline-face2,
  .btp-timeline-face5 {
    position: absolute;
    z-index: 3;
    top: -4.5138vw;
    left: 9vw;
  }

  .btp-timeline-face3 {
    position: absolute;
    z-index: 3;
    top: -4.5138vw;
    left: 3.2vw;
  }

  .btp-timeline-face4 {
    position: absolute;
    z-index: 3;
    top: -4.5138vw;
    left: 15vw;
  }

  .btp-main5-container1 {
    display: flex;
    justify-content: center;
    align-items: center;
    background: url(../img/btp-main5-bg1.webp) no-repeat;
    background-position-y: 50%;
    background-position-x: 50%;
    gap: 10.416vw;
    height: 13.9375rem;
    padding-bottom: 20rem;
    background-size: cover;
    margin: 6rem 0 10rem;
  }

  .btp-main5-container2 {
    display: flex;
    justify-content: center;
    align-items: center;
    background: url(../img/btp-main5-bg2.webp) no-repeat;
    background-position-y: 50%;
    background-position-x: 50%;
    background-size: cover;
    gap: 9.375rem;
    height: 13.9375rem;
    margin: 13rem 0 7rem;
  }
}

/* ===============================================
   レスポンシブデザイン対応 (768px以下)
   =============================================== */
@media (max-width: 768px) {
  .pro img {
    animation-delay: 1s;
  }

  .bepro-hero {
    background: url(../img/btp_top_sp.webp) no-repeat;
    background-size: cover;
    background-position: center;
    width: 100%;
    aspect-ratio: 1 / 5.11;
    overflow: hidden;
  }

  .bepro-catch {
    display: inline-block;
    position: relative;
    top: 9vw;
    left: 5vw;
  }

  .be img {
    width: 35.897vw;
    margin-left: 3vw;
    margin-bottom: 7vw;
  }

  .the img {
    width: 39.487vw;
    margin-bottom: 5vw;
  }

  .pro img {
    width: 49.487vw;
    margin-left: 3vw;
  }

  .bepro-catch span {
    display: block;
  }

  .bepro-read {
    display: block;
  }

  .btp-top-txt p {
    font-size: 4.1025vw;
  }

  .bepro-read h3 img {
    top: 3vw;
    left: 63vw;
    width: 29.487vw;
    position: absolute;
  }

  .bepro-text {
    position: absolute;
    top: 207vw;
    left: 50%;
    transform: translateX(-50%);
    width: 82.051vw;
  }

  .btp-top-head p {
    font-size: 6.923vw;
  }

  .btp_head_bold {
    font-size: 9.4871vw;
  }

  .btp-top-head {
    width: 100%;
    top: 65%;
    left: 50%;
  }

  .btp-top-head p {
    font-size: 27px;
    text-align: center;
  }

  .btp-top-txt {
    left: 50%;
    transform: translateX(-50%);
    width: 82.051vw;
    top: 73%;
    line-height: 2;
    position: absolute;
    margin-top: 29vw;
  }

  .btp_bold {
    font-size: 5.641vw;
    font-weight: bold;
  }

  .btp-main {
    background: linear-gradient(180deg,
        #ffee2b 0%,
        #ffee2b 40.6%,
        #d5fa99 40.6%,
        #d5fa99 54.2%,
        #ffee2b 54.2%,
        #ffee2b 86.95%,
        #d5fa99 86.95%,
        #d5fa99 100%);
  }

  .btp-main-container {
    max-width: 100%;
    display: block;
  }

  .btp-main-left {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }

  .btp-1day-repo {
    max-width: 100%;
    position: relative;
    overflow: hidden;
  }

  .btp-1day-repo-img {
    width: 121.794vw;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 5vw;
  }

  .kotei {
    position: relative;
    top: 7vw;
    z-index: 4;
    padding-bottom: 0;
  }

  .btp-1day-repo-img2 {
    width: 88.974vw;
    position: absolute;
    left: 0;
    margin-left: 3vw;
  }

  .btp-1day-repo-face {
    width: 80vw;
    display: flex;
    justify-content: space-between;
    margin: 126vw auto 0;
    align-items: end;
  }

  .face1 {
    width: 20.512vw;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
  }

  .face2 {
    width: 21.282vw;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
  }

  .face3 {
    width: 20.512vw;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
  }

  .btp-1day-repo-face-time {
    text-align: center;
    font-size: 3.0769vw;
    font-weight: bold;
    text-align: center;
    line-height: 1;
    padding-top: 3vw;
  }

  .btp-1day-repo-face-name {
    font-size: 4.6153vw;
    font-weight: bold;
    line-height: 1.3;
    text-align: center;
  }

  .btp-1day-txt {
    padding: 2rem;
  }

  .btp-1day-txt h3 {
    font-size: 4.1025vw;
    line-height: 2;
  }

  .btp-1day-txt p {
    font-size: 3.5897vw;
    line-height: 2;
  }

  .btp-main-right {
    width: 80vw;
    margin: 0 auto;
  }

  .btp-main-timeline1 {
    padding-left: 2.9166vw;
    border-left: 1px solid #000;
    padding-bottom: 3.5vw;
  }

  .btp-main-timeline1:last-child {
    padding-bottom: 0;
  }

  .btp-main-time,
  .btp-main-time2,
  .btp-main-time3 {
    font-size: 8.2051vw;
    font-family: "Roboto", sans-serif;
    font-weight: bold;
    position: relative;
  }

  .btp-main-time-span {
    font-size: 5.641vw;
    padding-left: 1em;
    position: relative;
    top: -0.7vw;
    color: #0047b2;
  }

  .btp-main-time::before {
    content: "";
    display: inline-block;
    background-image: url(../img/btp-timeline-point1.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    position: absolute;
    background-repeat: no-repeat;
  }

  .btp-main-time2::before {
    content: "";
    display: inline-block;
    position: absolute;
    background-image: url(../img/btp-timeline-point2.svg);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
  }

  .btp-main-time3::before {
    content: "";
    display: inline-block;
    position: absolute;
    background-image: url(../img/btp-timeline-point3.svg);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
  }

  .btp-main-time::before,
  .btp-main-time2::before,
  .btp-main-time3::before {
    left: -8vw;
    top: 3.8461vw;
    width: 5.8974vw;
    height: 5.8974vw;
  }

  .btp-contents1 .contents1-l img,
  .btp-contents2 .contents2-r img,
  .btp-contents3 .contents2-r img,
  .btp-contents3 .contents1-l img {
    width: 100%;
  }

  .contents1-l,
  .contents1-r,
  .contents2-l,
  .contents2-r {
    width: 100%;
  }

  .btp-contents1 {
    flex-direction: column;
    display: flex;
  }

  .btp-contents1-left,
  .btp-contents1-right {
    width: 100%;
  }

  .btp-comment1,
  .btp-comment1b,
  .btp-comment2,
  .btp-comment2b {
    margin: 11vw 0;
    padding: 4vw;
    font-size: 3.5897vw;
    line-height: 2;
    width: 100%;
    border-radius: 5vw;
    filter: drop-shadow(1.5px 1.5px 0 #040000);
  }

  .btp-timeline-face,
  .btp-timeline-face2 {
    position: absolute;
    top: -5vw;
    z-index: 3;
    left: 59vw;
    width: 16vw;
  }

  .btp-timeline-face3 {
    position: absolute;
    top: -5vw;
    z-index: 3;
    left: 20vw;
    width: 16vw;
  }

  .btp-timeline-face4 {
    position: absolute;
    top: -5vw;
    z-index: 3;
    left: 56vw;
    width: 16vw;
  }

  .btp-timeline-face5 {
    position: absolute;
    top: -5vw;
    z-index: 3;
    left: 37.55vw;
    width: 17.3vw;
  }

  .btp-contents-list {
    font-weight: bold;
    font-size: 4.1025vw;
    list-style: disc;
    margin-left: 5vw;
    position: relative;
    margin-top: -6vw;
    margin-bottom: 8vw;
  }

  .btp-contents2 {
    flex-direction: column-reverse;
  }

  .btp-contents2-left,
  .btp-contents2-right {
    width: 100%;
  }

  .btp-main-timeline1,
  .btp-main-timeline2 {
    padding-left: 5vw;
    padding-bottom: 14vw;
  }

  .btp-comment1::before,
  .btp-comment1::after,
  .btp-comment1b::before,
  .btp-comment1b::after,
  .btp-comment2::before,
  .btp-comment2::after,
  .btp-comment2b::before,
  .btp-comment2b::after {
    bottom: 100%;
    left: 50%;
    right: auto;
    top: auto;
  }

  .btp-comment2b::before,
  .btp-comment2b::after {
    bottom: 100%;
    left: 20%;
    right: auto;
    top: auto;
  }

  .btp-hiru-point1b {
    position: absolute;
    top: -27%;
    left: 75%;
    width: 19vw !important;
  }

  .btp-contents3 {
    display: flex;
  }

  .co-rev {
    flex-direction: column-reverse;
  }

  .colu {
    flex-direction: column;
  }

  .btp-comment1::after,
  .btp-comment1b::after,
  .btp-comment2::after,
  .btp-comment2b::after {
    border-color: rgba(0, 0, 255, 0);
    border-width: 28px 14px;
    margin-left: -14px;
    border-bottom-color: #fff;
  }

  .btp-comment1::before,
  .btp-comment1b::before,
  .btp-comment2::before,
  .btp-comment2b::before {
    border-color: rgba(0, 0, 255, 0);
    border-width: 32px 16px;
    /* top/bottom: 32px, left/right: 16px */
    margin-left: -16px;
    border-bottom-color: #000;
  }

  .btp-hiru-point1,
  .btp-hiru-point3,
  .btp-hiru-point4,
  .btp-hiru-point5,
  .btp-hiru-point6,
  .btp-yoru-point1,
  .btp-yoru-point3,
  .btp-yoru-point4,
  .btp-yoru-point5,
  .btp-yoru-point6 {
    display: none;
  }

  .btp-hiru-point2 {
    width: 25% !important;
    top: -30%;
  }

  .btp-yoru-point2 {
    width: 10% !important;
    top: -134%;
    right: 2%;
  }

  .btp-main2-container {
    display: block;
    width: 96%;
    margin: 0 auto;
    padding-top: 10vw;
  }

  .koro {
    font-size: 22px;
  }

  .btp-main-b-left,
  .btp-main-b-right {
    width: 100%;
    padding: 0 0.5rem;
  }

  .btp-main-b-h {
    text-align: center;
    font-size: 5.1282vw;
    padding-top: 4vw;
  }

  .pb4 {
    padding-bottom: 10vw !important;
  }

  .btp-main3-container {
    width: 92.82vw;
    margin: 0 auto;
    padding: 12vw 0 7vw;
  }

  .btp-main3-logo {
    width: 74.358vw;
  }

  .btp-sgc-head {
    font-size: 4.615vw;
    padding: 2vw 0 5vw;
  }

  .btp-main4 {
    background: url(../img/btp-main4-bg.webp) repeat-y;
    background-size: auto;
    background-position-x: center;
  }

  .btp-main4-container {
    display: flex;
    max-width: 53.125rem;
    padding: 2rem 0 1rem;
    flex-direction: column;
  }

  .btp-main4-l,
  .btp-main4-r {
    width: 100%;
    padding: 0;
    text-align: center;
  }

  .btp-main4-r {
    padding: 1rem 2rem;
    font-size: 14px;
    line-height: 27px;
  }

  .btp-main4-l img {
    max-width: 122px;
    margin-bottom: 0.3rem;
  }

  .btp-main5 {
    padding: 2.5rem 0;
  }

  .atsu-logo {
    width: 18.5rem;
  }

  .atsu-bg1 {
    background: url(../img/city-bg01.webp) no-repeat;
  }

  .atsu-bg2 {
    background: url(../img/city-bg02.webp) no-repeat;
  }

  .atsu-bg3 {
    background: url(../img/city-bg03.webp) no-repeat;
  }

  .atsu-bg4 {
    background: url(../img/city-bg04.webp) no-repeat;
    background-size: contain;
    background-position-y: center;
    margin-bottom: 2.5rem;
  }

  .atsu-bg1,
  .atsu-bg2,
  .atsu-bg3 {
    background-size: contain;
    background-position-y: center;
    margin-bottom: 6rem;
  }

  .btp-main5-img-sub1 {
    position: absolute;
    bottom: -9%;
    left: -32%;
    width: 116px !important;
  }

  .btp-main5-img-sub2 {
    position: absolute;
    bottom: -14%;
    right: -27%;
    width: 108px !important;
  }

  .btp-main5-img-sub3 {
    position: absolute;
    bottom: -7%;
    left: -25%;
    width: 92px !important;
  }

  .btp-main5-img-sub4 {
    position: absolute;
    bottom: -12%;
    left: -18%;
    width: 97px !important;
  }

  .btp-main5-content {
    max-width: 17.5rem;
    margin: 0 auto;
  }

  .btp-main5-content-title {
    font-size: 24px;
    padding-top: 2rem;
  }

  .btp-main5-content-more {
    font-size: 14px;
  }

  .btp-main5-txt {
    width: 82%;
    margin: 0 auto;
    padding: 1.5rem 0 2.5rem;
  }

  #content1,
  #content2,
  #content3,
  #content4 {
    top: 50%;
    left: 50%;
    width: 92%;
    padding: 24px 24px;
  }

  .btp-episode-head {
    flex-direction: column;
    align-items: center;
    padding: 0.5rem 0 0;
  }

  .btp-episode-head-logo {
    margin: 0 auto;
    padding-bottom: 1.5rem;
    width: 50%;
    min-width: 177px;
  }

  .btp-episode-head-photo {
    width: 100%;
    padding-bottom: 1rem;
  }

  .btp-episode-h {
    font-size: 22px;
  }

  .btp-episode-txt {
    font-size: 14px;
    line-height: 2;
  }

  .btp-episode-name {
    font-size: 12px;
  }
}

/* ポップアップ */
.popup {
  display: none;
  height: 100vh;
  width: 100%;
  background: rgba(0, 0, 0, 0.7);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
}

.popup-content {
  background: #fff;
  width: 45.625rem;
  max-height: 77vh;
  overflow-y: scroll;
  border: 1px solid #000;
  border-radius: 40px;
  box-shadow: 8px 7px 0 0 #1fbea5;
  margin-top: 6.2%;
  padding: 1rem 0 2rem;
}

.popup-container {
  max-width: 37.5rem;
  margin: 0 auto;
}

.show {
  display: flex;
  justify-content: start;
  align-items: center;
}

.show2 {
  display: flex;
  justify-content: center;
  align-items: center;
}

body.modal-open {
  overflow: hidden;
}

@media (max-width: 768px) {
  .popup-content {
    width: 90%;
    max-height: 83vh;
    border-radius: 20px;
    margin-top: 18%;
    padding: 1rem 0 2rem;
  }

  .close {
    left: 78%;
    font-size: 14px;
    font-weight: 700;
  }

  .close::after {
    width: 11px;
    height: 11px;
    top: 5px;
    left: 48px;
  }

  .popup-container {
    max-width: 86%;
  }
}