@charset "utf-8"; 

/* ==================================================
   EARTH THEME TOKENS
   Sand Beige × Deep Green
   (common palette)
================================================== */
:root{
  --earth-sand: #E7D8C9;
  --earth-sand-light: #F3EDE6;
  --earth-green: #1F3A34;
  --earth-green-soft: #2E5A50;
  --earth-green-light: #3F7A6B;

  /* Mappings (legacy compatibility) */
  --theme-accent: var(--earth-green);
  --theme-primary: var(--earth-green);

  --grad-main: linear-gradient(90deg, var(--earth-green) 0%, var(--earth-green-light) 55%, var(--earth-sand) 100%);
  --grad-main-vertical: linear-gradient(0deg, var(--earth-green) 0%, var(--earth-green-light) 55%, var(--earth-sand) 100%);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  list-style: none;
  text-decoration: none;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", sans-serif;
  line-height: 1.7em;
  font-weight: 400;
  color: #111;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}

html {
}

body {
}

.wrapper {
  /* overflow-x: hidden; */
}

#top .wrapper {
  overflow-x: hidden;
}

#graduates .wrapper {
  overflow-x: hidden;
}

#career .wrapper {
  overflow-x: hidden;
}

#experienced .wrapper {
  overflow-x: hidden;
}

#message .wrapper {
  overflow-x: hidden;
}

#freshers .wrapper {
  overflow-x: hidden;
}

#colleague .wrapper {
  overflow-x: hidden;
}

#job_category .wrapper {
  overflow-x: hidden;
}

main {
}

section {
}

.section_inner {
  width: 100%;
  max-width: 1280px;
  margin: 120px auto;
}

/*.section_inner.isPlay {
  animation: opa 1.5s forwards;
} */
.opa_inner {
  opacity: 0;
}

.opa_inner.isPlay {
  animation: opa 1.5s forwards;
}

.opa {
  opacity: 0;
}

.opa.isPlay2 {
  animation: opa 1s forwards;
}

@keyframes leftmove {
  0% {
    transform: translateX(-100%);
  }

  100% {
    transform: translateX(0%);
  }
}

@keyframes rightmove {
  0% {
    transform: translateX(100%);
  }

  100% {
    transform: translateX(0%);
  }
}

a {
  transition: 0.1s;
}

/*--------button------------------------------------*/
.button {
  border: solid 1px var(--theme-primary);
  text-align: center;
  margin: 0px auto 30px;
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.05em;
  background: var(--theme-primary);
  padding: 4px;
  transition: 0.2s;
}

.button a {
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.05em;
  padding: 4px;
  transition: 0.2s;
  color: #fff;
}

.button:hover {
  border: solid 1px var(--theme-primary);
  background: #fff;
  color: #fff;
  opacity: 1;
}

.button:hover a {
  color: #fff;
  opacity: 1;
  color: var(--theme-primary);
}

/*--------button--------ここまで----------------------*/
/*--------header------------------------------------*/
header {
  width: 100%;
  height: 120px;
  display: flex;
  background: rgba(255, 255, 255, .9);
  position: fixed;
  top: 0;
  z-index: 21;
}

header.header {
  display: none;
}

.header_inner {
  width: 100%;
  max-width: 1280px;
  margin: 30px auto 0px;
  padding: 0;
}

header dl {
  display: flex;
  justify-content: space-between;
  height: 100%;
}

header dt {
}

header dt a {
  display: grid;
  place-items: center;
  height: 100%;
}

header dt a figure {
  display: flex;
  align-items: center;
  margin-right: 14px;
}

header dt a figure img {
  width: 100%;
  max-width: 264px;
  object-fit: contain;
	height:72px;
}

header dt a figure figcaption {
  font-weight: bold;
  margin-left: 16px;
}

header dd {
}

header dd>ul {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  height: 100%;
}

header dd>ul>li {
  height: 100%;
  padding: 0 20px 0 0;
  position: relative;
}

header dd>ul>li:nth-of-type(6) {
  background: var(--theme-accent);
  position: relative;
  padding: 0;
}

header dd>ul>li:nth-of-type(7) {
  background: #111;
  position: relative;
  padding: 0;
}

header dd>ul>li>a {
  transition: 0.2s;
  font-weight: bold;
  color: #111;
  text-align: center;
  font-size: 16px;
  position: relative;
  height: 100%;
  display: grid;
  align-items: center;
}

@keyframes menudropdown {
  0% {
    /* 		transform: translatey(-64px) scaleY(0%); */
    transform: scaleY(0%);
    opacity: 0;
    visibility: hidden;
  }

  100% {
    /* 		transform: translatey(0px) scaleY(100%); */
    transform: scaleY(100%);
    opacity: 1;
    visibility: visible;
  }
}

header dd>ul>li>.dropmenu_wrap {
  display: none;
}

header dd>ul>li:hover>.dropmenu_wrap {
  position: absolute;
  z-index: 111111111;
  display: block;
  width: max-content;
  animation: menudropdown 0.5s;
}

.dropmenu_wrap {
  position: relative;
  transform-origin: top;
}

.dropmenu {
  display: flex;
  padding: 20px 15px;
  background: var(--theme-accent);
  filter: drop-shadow(1px 2px 2px rgba(0, 0, 0, .2));
  gap: 40px;
  width: 100%;
}

header dd>ul>li:nth-of-type(3) .dropmenu {
  position: relative;
  right: 210px;
}

header dd>ul>li:nth-of-type(5) .dropmenu {
  position: relative;
  right: 58px;
}

header dd>ul>li:nth-of-type(6) .dropmenu {
  background: #fff;
  position: relative;
  right: 71px;
}

header dd>ul>li:nth-of-type(7) .dropmenu {
  background: #fff;
  position: relative;
  right: 230px;
}

.dropmenu dt {
}

.dropmenu dt a {
  color: #fff;
  font-weight: bold;
}

.dropmenu dt a:hover {
  opacity: 1;
  color: #111;
}

header dd>ul>li:nth-of-type(6) a {
  color: #fff;
  width: 160px;
}

header dd>ul>li:nth-of-type(7) a {
  color: #fff;
  width: 160px;
}

header dd>ul>li:hover>a {
}

header dd>ul>li:nth-of-type(6):hover {
  background: rgba(31, 58, 52, .7);
}

header dd>ul>li:nth-of-type(7):hover {
  background: rgb(35 24 21 / 70%);
}

/*--------header--------ここまで----------------------*/
/*--------top_hero_header------------------------------*/
#hero {
  position: relative;
  width: 100%;
  height: calc(100vh - 120px);
  overflow: hidden;
  margin-top: 120px;
}

.color_filter {
}

.back_block {
  background-image: url(../img/hero_bw.jpg);
  height: 100%;
  background-position: center center;
  background-size: cover;
}

.back_block img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 4;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* scale: 1.01; */
  transform-origin: center;
  /* display: none; */
  clip-path: circle(0% at 50% 50%);
  animation-name: circle;
  animation-duration: 4s;
  animation-delay: 1.5s;
  animation-fill-mode: forwards;
}

@keyframes circle {
  0% {
    clip-path: circle(0% at 50% 50%);
  }

  100% {
    clip-path: circle(100% at 50% 50%);
  }
}

@keyframes over {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.catch_block_top {
  position: absolute;
  top: 49%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 17;
}

.catch_block_top img:nth-of-type(1) {
  width: 45px;
  width: 2.8vw;
  filter: drop-shadow(1px 3px 6px rgba(0, 0, 0, .2));
  opacity: 0;
  animation-name: over;
  animation-duration: 3s;
  animation-delay: 4.5s;
  animation-fill-mode: forwards;
}

.catch_block_top img:nth-of-type(2) {
  width: 2.8vw;
  margin-top: 15px;
  filter: drop-shadow(1px 3px 6px rgba(0, 0, 0, .2));
  opacity: 0;
  animation-name: over;
  animation-duration: 3s;
  animation-delay: 5s;
  animation-fill-mode: forwards;
}

.catch_block_bottom {
  z-index: 16;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.catch_block_bottom img {
  display: grid;
  place-items: center;
  width: 55%;
  filter: brightness(0.7);
  max-height: 800px;
  opacity: 0;
  animation-name: over;
  animation-duration: 3s;
  animation-delay: 4s;
  animation-fill-mode: forwards;
}

.scroll_block {
  position: absolute;
  bottom: 3%;
  left: 7vw;
  z-index: 20;
}

.scroll_block img {
  width: 25px;
}

.scroll_block svg {
  width: 25px;
}

/*--------top_hero_header--------ここまで------------------*/
/*-----------footer-------------------------------*/
footer {
  border-top: none;
  margin-top: 0;
  position: relative;
}

.footer_inner {
  margin: 0 auto;
  padding: 50px 0 15vw;
  width: 100%;
  background-image: url(../img/footer_bg.jpg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom;
  background-color: #fff;
}

.footer_link {
  max-width: 1000px;
  margin: auto;
  display: flex;
  justify-content: space-between;
}

.footer_link li {
  width: fit-content;
}

.footer_link li h4 {
  font-size: 19px;
  font-weight: bold;
  color: var(--theme-accent);
}

.footer_link li a {
  margin-top: 10px;
  font-weight: bold;
}

.footer_link li+li {
  margin-left: 20px;
  padding-left: 20px;
  border-left: solid 1px #111;
}

.footer_company {
  max-width: 940px;
  margin: 40px auto 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.footer_company dt {
}

.footer_company dt figure {
}

.footer_company dt figure img {
  width: 400px;
}

.footer_company dd {
  display: flex;
  gap: 40px;
  margin-top: 25px;
}

.footer_company dd p {
}

.footer_bottom {
  background: var(--theme-accent);
  text-align: center;
  padding: 8px 0;
}

.footer_bottom small {
  font-weight: bold;
}

/*-----------footer--------------ここまで-----------*/
/*-----------その他共通----------------------------*/
#page-top {
  position: fixed;
  bottom: 15px;
  right: 15px;
  font-size: 10px;
  z-index: 1000;
  display: none;
}

#page-top a {
  text-decoration: none;
  width: 70px;
  text-align: center;
  display: block;
  color: #fff;
  background-color: #111;
  padding-top: 21px;
  padding-right: 0;
  padding-bottom: 21px;
  padding-left: 0;
  font-size: 18px;
}

#page-top a:hover {
  text-decoration: none;
  color: #30313a;
  background-color: #fff;
  border: solid 1px #30313a;
}

.breadcrums-wrap {
  width: 100%;
  background: #eff0f5;
}

ul.breadcrums {
  display: flex;
  margin: 0 auto;
  width: 100%;
  max-width: 1200px;
  padding: 13px 0;
}

ul.breadcrums li {
  margin: 0 12px 0 0;
  font-size: 12px;
  color: #111;
}

ul.breadcrums li a {
  color: var(--theme-primary);
  font-weight: bold;
  font-size: 12px;
  border-bottom: solid 1px #eff0f5;
}

ul.breadcrums li a:hover {
  border-bottom: solid 1px var(--theme-primary);
}

.pc {
  display: block;
}

.sp {
  display: none;
}

/*-----------その他共通--------------ここまで--------------*/
/*-----SPメニュー用-----*/
.menu {
  position: relative;
  z-index: 10;
  display: none;
}

#smt_menu_wrapper {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  color: #fff;
  text-align: center;
  transform: translateY(-100%);
  transition: all 0.5s;
  width: 100%;
  visibility: hidden;
}

#smt_menu_wrapper>ul {
  margin: 0 auto 0 0;
  padding: 0px 30%;
  width: 100%;
  height: 100vh;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  background-color: rgba(0, 0, 0, .92);
  background-blend-mode: color;
  background-size: cover;
}

#smt_menu_wrapper>ul>li {
  font-size: 20px;
  list-style-type: none;
  padding: 0;
  width: 100%;
  color: #fff;
  font-weight: bold;
  text-align: center;
  margin: 20px 0;
}

#smt_menu_wrapper ul li.red a {
  color: #ffffff;
}

.cta_bg {
  width: 252px;
  height: 49px;
  text-align: center;
  line-height: 29px;
  margin: 5px 0 0 0;
  display: block;
  transition: all 0.3s ease;
}

.cta_bg:hover {
  color: #f5f5f5;
}

#smt_menu_wrapper ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

#smt_menu_wrapper ul li a {
  display: block;
  color: #fff;
  padding: 0;
  background: none;
  font-size: 20px;
}

#smt_menu_wrapper.active {
  transform: translateY(0%);
  visibility: inherit;
}

.navToggle.active span:nth-child(1) {
  top: 18px;
  left: 6px;
  transform: rotate(-45deg);
  border-color: #fff;
}

.navToggle.active span:nth-child(2), .navToggle.active span:nth-child(3) {
  top: 18px;
  transform: rotate(45deg);
  border-color: #fff;
}

.pc_none {
  display: block;
}

.navToggle {
  display: block;
  position: fixed;
  top: 30px;
  right: 20px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  z-index: 10015;
  text-align: center;
  border-radius: 2px;
}

.navToggle span:nth-child(1) {
  top: 15px;
}

.navToggle span:nth-child(2) {
  top: 24px;
}

.navToggle span {
  display: block;
  position: absolute;
  width: 30px;
  border-top: solid 3px #111;
  transition: 0.3s;
  left: 6px;
}

/*-----SPメニュー用-----*/
/*-----------トップtop_aboutus----------------------------*/
.top_aboutus_wrap {
  background: url(../img/top_about_bg.jpg);
  padding: 130px 0 130px;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100%;
}

#top_aboutus {
  /* background: url(../img/top_about_bg.jpg); */
  /* padding: 130px 0 130px; */
  /* background-attachment: fixed; */
  /* background-position: center; */
}

.top_about_comme {
  /* background: url(../img/top_about_bg.jpg); */
  /* padding: 130px 0 230px; */
  /* background-attachment: fixed; */
  /* background-position: center; */
  opacity: 0;
}

.top_about_comme.isPlay {
  animation: opa 1.5s forwards;
}

.top_about_comme_inner {
  max-width: 1000px;
  margin: auto;
  padding: 130px;
  background: #fff;
}

.top_about_comme_inner p {
  font-size: 22px;
  text-align: center;
  line-height: 2;
  font-family: YuMincho, 'Yu Mincho', serif;
  font-weight: bold;
}

.top_about_comme_inner p + p {
  margin-top: 30px;
}

.big_title {
  text-align: center;
  margin-bottom: 80px;
}

#top_aboutus_t {
  scroll-margin-top: 120px;
}

.big_title h2 {
  color: var(--theme-accent);
  font-family: "roboto", sans-serif;
  font-weight: 700;
  font-size: 97px;
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  text-align: center;
}

.big_title p {
  color: var(--theme-accent);
  font-weight: bold;
  font-size: 40px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  margin: 0;
  text-align: center;
}

.top_aboutus_2way {
  display: flex;
  align-items: end;
  margin-top: 80px;
}

.top_aboutus_2way dt {
  width: 50%;
  padding: 60px;
}

.top_aboutus_2way dt h3 {
  font-size: 40px;
  margin-bottom: 40px;
  font-weight: bold;
  line-height: 2;
}

.top_aboutus_2way dt p {
  font-size: 22px;
  text-align: justify;
  font-weight: bold
}

.top_aboutus_2way dd {
  width: 50%;
  margin-right: calc(50% - 50vw);
  flex: 1;
}

.top_aboutus_2way dd figure {
}

.top_aboutus_2way dd figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*-----------トップtop_aboutus--------------ここまで--------------*/
/*-----------トップtop_strength----------------------------*/
#top_strength {
  margin: 180px 0 180px;
  scroll-margin-top: 120px;
}

.middle_title {
  text-align: center;
}

.middle_title h2 {
  font-weight: bold;
  font-size: 50px;
  border-bottom: solid 4px var(--theme-accent);
  width: fit-content;
  margin: auto;
  line-height: 1.3;
  letter-spacing: 0.07em;
}

.top_strength_comme {
  position: relative;
  z-index: 1;
}

.top_strength_comme ul {
  display: flex;
  align-items: end;
  margin-top: 120px;
  padding: 170px 2%;
  gap: 2%;
  z-index: 2;
  position: relative;
  /*   background: url(../img/top_strength_01_bg.jpg) no-repeat;*/
}

.gradationline_left {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 2600px;
  height: 1000px;
  z-index: -1;
  opacity: 0;
  transform: translate(-50%, 0%);
  background: linear-gradient(90deg, rgba(255,0,0,1) 0%, rgba(255,81,18,1) 18%, rgba(255,158,35,1) 100%);
}

.gradationline_left.isPlay {
  animation: move 1s forwards;
}

.top60vw {
  top: 60vw!important;
}

.top-20vw {
  top: -420px!important;
}

@keyframes move {
  0% {
    opacity: 0;
    clip-path: polygon(0 40%, 0% 70%, 0% 100%);
  }

  100% {
    opacity: 1;
    clip-path: polygon(0 40%, 100% 0, 0% 100%);
  }
}

@keyframes opa {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.gradationline_right {
  content: "";
  position: absolute;
  top: 0%;
  left: 50%;
  width: 2600px;
  height: 1000px;
  z-index: -1;
  opacity: 0;
  transform: translate(-50%, 0%);
  background: linear-gradient(90deg, rgba(255,0,0,1) 0%, rgba(255,81,18,1) 18%, rgba(255,158,35,1) 100%);
}

.gradationline_right.isPlay {
  animation: move2 1s forwards;
}

@keyframes move2 {
  0% {
    opacity: 0;
    clip-path: polygon(100% 70%, 100% 40%, 100% 100%);
  }

  100% {
    opacity: 1;
    clip-path: polygon(0% 0%, 100% 40%, 100% 100%);
  }
}

.top_strength_comme:nth-of-type(2) ul {
  background: url(../img/top_strength_01_bg.jpg) no-repeat;
}

.top_strength_comme:nth-of-type(3) ul {
  background: url(../img/top_strength_02_bg.jpg) no-repeat;
}

.top_strength_comme:nth-of-type(4) ul {
  background: url(../img/top_strength_03_bg.jpg) no-repeat;
}

.top_strength_comme li.number {
  width: 16%;
}

.top_strength_comme li.text {
  width: 60%;
  text-align: center;
}

.top_strength_comme li.text h3 {
  color: #fff;
  font-size: 38px;
  font-weight: bold;
  letter-spacing: 0.05em;
}

.top_strength_comme li.text p {
  color: #fff;
  font-size: 20px;
  margin-top: 32px;
  font-weight: bold;
}

/*-----------トップtop_strength--------------ここまで--------------*/
/*-----------トップtop_photo----------------------------*/
#top_photo {
  margin-top: 180px;
  opacity: 0;
  width: 100%;
}

#top_photo.isPlay {
  animation: opa 1s forwards;
}

#top_photo ul {
  display: flex;
}

#top_photo li {
  width: 25%;
}

#top_photo figure {
}

#top_photo img {
}

/*-----------トップtop_photo--------------ここまで--------------*/
/*-----------トップtop_number----------------------------*/
#top_number {
  margin-top: 120px;
  scroll-margin-top: 120px;
}

.top_number_inner {
  width: 100%;
  max-width: 1280px;
  margin: auto;
  padding-bottom: 160px;
  background: url(./img/top_number_bg.png) no-repeat;
  background-position: top center;
  background-size: contain;
  opacity: 0;
}

.top_number_inner.isPlay {
  animation: opa 1.5s forwards;
}

.small_title {
  padding-top: 80px;
}

.small_title.center {
  text-align: center;
}

.small_title h2 {
  color: var(--theme-accent);
  font-weight: bold;
  font-size: 40px;
  line-height: 1.3;
  letter-spacing: 0.08em;
}

/*-----------トップtop_number--------------ここまで--------------*/
/*-----------トップtop_works----------------------------*/
#top_works {
  margin: 180px 0;
  scroll-margin-top: 120px;
}

.work_title {
  max-width: 1280px;
  margin: 0 auto 80px;
  display: block;
  text-align: center;
}

.work_title h2 {
  color: var(--theme-accent);
  font-family: "roboto", sans-serif;
  font-weight: 700;
  font-size: 97px;
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  text-align: center;
}

.work_title .work_title_jp {
  color: var(--theme-accent);
  font-weight: bold;
  font-size: 40px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  margin: 0 0 8px;
  text-align: center;
}

.work_title .work_title_en {
  color: var(--theme-accent);
  font-weight: bold;
  font-size: 30px;
  line-height: 1.4;
  letter-spacing: 0.14em;
  margin: 0;
  text-align: center;
  font-family: "roboto", sans-serif;
}
.top_civil_engineering {
  margin: 0px 0 100px;
  scroll-margin-top: 120px;
}

.top_work_section_head {
}

.top_civil_engineering .top_work_section_head > div {
  background: url(../img/top_work_civil_bg.jpg) no-repeat;
  background-size: cover;
  padding: 220px;
  margin-top: 60px;
  background-position: center center;
  position: relative;
}

.top_work_section_head_title {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
}

.top_work_section_head_title h3 {
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  letter-spacing: 0.2em;
}

.top_work_section_head_title p {
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.03em;
}

.top_work_section_inner {
  max-width: 800px;
  margin: 80px auto 60px;
}

.top_work_section_inner h4 {
  font-family: YuMincho, 'Yu Mincho', serif;
  font-weight: bold;
  font-size: 30px;
  text-align: center;
  line-height: 2;
}

.top_work_section_inner>figure {
  margin: 60px 0 40px;
  position: relative;
}

.top_work_section_inner>figure>img {
  position: relative;
  z-index: 2;
}

.top_work_section_inner p {
  font-size: 20px;
  padding: 0 60px;
}

ul.top_work_photo_area {
  display: flex;
}

ul.top_work_photo_area li {
  width: 25%;
}

ul.top_work_photo_area li figure {
}

ul.top_work_photo_area li figure img {
}

.top_architecture {
  margin: 100px 0;
  scroll-margin-top: 120px;
}

.top_architecture .top_work_section_head > div {
  background: url(../img/top_work_architecture_bg.jpg) no-repeat;
  background-size: cover;
  padding: 220px;
  /* margin-top: 60px; */
  background-position: center center;
  position: relative;
}

.top_report {
  margin: 100px 0 100px;
}

.top_report dl {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1280px;
  margin: auto;
  position: relative;
}

.top_report dt {
  color: #fff;
  background: #111;
  font-size: 34px;
  padding: 10px 70px 10px 20px;
  display: flex;
  align-items: center;
  line-height: 1;
  font-weight: bold;
  letter-spacing: 0.1em;
  position: absolute;
  left: 0;
  clip-path: polygon(0 0, 100% 0%, 90% 100%, 0% 100%);
  z-index: 1;
}

.top_report dt::before {
  content: url(../img/icon_report.png);
  margin-right: 14px;
}

.top_report dd {
  width: 920px;
  height: 220px;
  background: #ddd;
}

.top_report dd figure {
  overflow: hidden;
}

.top_report dd figure img {
  transition: 0.2s;
}

.top_report dd figure img:hover {
  transform: scale(1.05);
}

.top_job_category {
  margin: 100px 0;
}

.top_job_category .top_work_section_head a {
  position: relative;
  width: 100%;
  height: 530px;
  overflow: hidden;
}

.top_job_category .top_work_section_head a:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(../img/top_job_category_bg.jpg) no-repeat;
  background-size: cover;
  background-position: center center;
  transition: 0.2s;
}

.top_job_category .top_work_section_head a:hover:after {
  transform: scale(1.05);
}

.top_job_category_link {
  display: flex;
  gap: 40px;
  justify-content: center;
}

.top_job_category_link li {
  width: 37%;
}

.top_job_category_link a {
  background: var(--grad-main-vertical);
  padding: 40px 0 40px;
  display: grid;
  place-items: center;
}

.top_job_category_link h5 {
  color: #fff;
  font-size: 28px;
  font-weight: bold;
  letter-spacing: 0.04em;
}

.top_job_category_link p {
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.04em;
}

.top_job_category_workandlife {
  max-width: 1400px;
  margin: 0 auto;
}

.top_job_category_workandlife>a {
  background: url(../img/top_job_category_workandlife_bg.jpg) no-repeat;
  background-size: cover;
  background-position: center center;
  padding: 100px 0 80px;
}

.top_job_category_workandlife ul {
}

.top_job_category_workandlife li {
  width: 50%;
  margin-left: auto;
  padding: 0 100px;
}

.top_job_mid_title {
}

.top_job_mid_title h4 {
  font-size: 40px;
  font-weight: bold;
  letter-spacing: 0.04em;
}

.top_job_mid_title p {
  font-size: 30px;
  font-weight: bold;
  color: var(--theme-accent);
  letter-spacing: 0.04em;
}

.top_job_slide {
  margin-top: 40px;
  position: relative;
}

.top_job_slide div {
  font-size: 24px;
  padding: 8px 16px;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0.04em;
  max-width: 330px;
}

.top_job_slide div+div {
  margin-top: 10px
}

.top_job_slide div.first {
  background: #7cddd5;
  margin-left: 30%;
  transform: translateX(30%);
}

.top_job_slide div.first.isPlay {
  animation: rslide 1s 0.2s forwards;
}

.top_job_slide div.second {
  background: #a2d500;
  margin-left: 10%;
  transform: translateX(30%);
}

.top_job_slide div.second.isPlay {
  animation: rslide 1s 0.6s forwards;
}

.top_job_slide div.third {
  background: #7cddd5;
  margin-left: 20%;
  transform: translateX(30%);
}

.top_job_slide div.third.isPlay {
  animation: rslide 1s 1s forwards;
}

@keyframes rslide {
  0% {
    transform: translateX(30%);
  }

  100% {
    transform: translateX(0%);
  }
}

#top_interview {
  margin: 180px 0;
}

.top_interview_crosstalk {
  margin: 200px 0;
}

.top_interview_crosstalk .top_work_section_head a {
  position: relative;
  width: 100%;
  height: 530px;
  overflow: hidden;
  margin-top: 60px;
}

.top_interview_crosstalk .top_work_section_head a::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(../img/top_interview_crosstalk_bg.jpg) no-repeat;
  background-size: cover;
  background-position: center center;
  transition: 0.2s;
}

.top_interview_crosstalk .top_work_section_head a:hover:after {
  transform: scale(1.05);
}

ul.top_interview_crosstalk_head_title {
  max-width: 1280px;
  margin: auto;
  display: flex;
  justify-content: center;
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}

ul.top_interview_crosstalk_head_title li {
}

ul.top_interview_crosstalk_head_title li:nth-of-type(1) {
  /* flex: 1; */
  padding: 0 10px;
  width: 41%;
}

ul.top_interview_crosstalk_head_title li:nth-of-type(2) {
  width: 18%;
  display: grid;
  place-content: center;
}

ul.top_interview_crosstalk_head_title li:nth-of-type(3) {
  /* flex: 1; */
  padding: 0 10px;
  width: 41%;
}

ul.top_interview_crosstalk_head_title h3 {
  font-size: 100px;
  color: #fff;
  line-height: 1;
  font-family: "roboto", sans-serif;
  font-weight: bold;
  margin-top: 30px;
}

ul.top_interview_crosstalk_head_title p {
  color: #fff;
  font-size: 24px;
  font-weight: bold;
  margin-top: 10px;
}

span.cross {
  display: block;
  position: relative;
  width: 215px;
  height: 215px;
}

span.cross::before, span.cross::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 53%;
  width: 1px;
  height: 280px;
  background: #fff;
}

span.cross::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

span.cross::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.float_right {
  float: right;
}

.top_interview_leader_message {
  margin: 120px auto 50px;
}

.top_interview_leader_message a {
  max-width: 1000px;
  margin: auto;
}

.top_interview_leader_message a:hover img {
  transform: scale(1.05);
}

.top_interview_leader_message dl {
  display: flex;
  position: relative;
  height: 340px;
}

.top_interview_leader_message dt {
  display: flex;
  position: relative;
  width: 80%;
}

.top_interview_leader_message ul {
  display: flex;
  height: 100%;
  width: 100%;
}

.top_interview_leader_message li {
  background: linear-gradient(155deg, rgba(255, 255, 255, 1) 42%, rgba(26, 26, 26, 1) 100%);
  width: calc(100% / 3);
}

.top_interview_leader_message figure {
  height: 100%;
  overflow: hidden;
}

.top_interview_leader_message li:nth-of-type(1) {
  width: 28%;
}

.top_interview_leader_message li:nth-of-type(2) {
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  margin-left: -10%;
}

.top_interview_leader_message li:nth-of-type(3) {
  clip-path: polygon(25% 0%, 100% 0%, 100% 100%, 0% 100%);
  margin-left: -10%;
}

.top_interview_leader_message img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.2s;
}

.top_interview_leader_message li:nth-of-type(1) img {
  object-position: -66px;
}

.top_messege_catch {
  position: absolute;
  left: 20px;
  bottom: 20px;
  color: rgb(255 255 255 / 60%);
  font-size: 40px;
  line-height: 1;
  font-family: "roboto", sans-serif;
  font-weight: bold;
}

.top_interview_leader_message dd {
  background: #000;
  width: 48%;
  display: grid;
  place-items: center;
  clip-path: polygon(16% 0%, 100% 0%, 100% 100%, 0% 100%);
  padding: 90px 0px 90px 60px;
  margin-left: -10%;
  position: absolute;
  right: 0;
  height: 340px;
}

.top_interview_leader_message dd h4 {
  color: #fff;
  font-size: 20px;
  font-family: "roboto", sans-serif;
}

.top_interview_leader_message dd h3 {
  color: #fff;
  font-size: 40px;
  font-feature-settings: "palt";
  font-weight: bold;
}

.top_interview_leader_message dd h5 {
  color: #fff;
  font-size: 30px;
  font-weight: bold;
}

.top_interview_leader_message dd p {
  color: #fff;
  font-size: 20px;
  font-family: YuMincho, 'Yu Mincho', serif;
}

.top_message_inner {
}

.top_interview_personnel_message {
  margin: 50px 0;
}

.top_interview_personnel_message a {
  max-width: 1000px;
  margin: auto;
  background: #ddd;
  padding: 40px 50px 20px;
}

.top_interview_personnel_message a:hover img {
  transform: scale(1.03);
}

.top_interview_personnel_message dl {
  display: flex;
}

.top_interview_personnel_message dt {
  width: 50%;
  display: grid;
  place-items: center;
}

.personnel_catch {
}

.top_interview_personnel_message h2 {
  font-size: 36px;
  font-family: YuMincho, 'Yu Mincho', serif;
  font-weight: bold;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
}

.top_interview_personnel_message h3 {
  position: relative;
  font-size: 20px;
  font-weight: bold;
  color: var(--theme-accent);
  font-family: "roboto", sans-serif;
}

.top_interview_personnel_message h3::after {
  content: "";
  position: absolute;
  width: 29vw;
  border-bottom: solid 1px #111;
  left: 0;
  bottom: 0;
}

.top_interview_personnel_message h4 {
  font-size: 40px;
  font-weight: bold;
}

.top_interview_personnel_message dd {
  width: 50%;
}

.top_interview_personnel_message figure {
}

.top_interview_personnel_message img {
  z-index: 2;
  position: relative;
  transition: 0.2s;
}

.top_interview_faq_message {
  margin: 50px 0;
}

.top_interview_faq_message a {
  max-width: 1000px;
  margin: auto;
  background: var(--grad-main-vertical);
  padding: 24px;
  text-align: center;
}

.top_interview_faq_message h2 {
  font-size: 40px;
  color: #fff;
  font-weight: bold;
}

.top_interview_faq_message h3 {
  font-size: 26px;
  color: #fff;
  font-weight: bold;
}

/*-----------トップtop_works--------------ここまで--------------*/
/*-----------sns_bnr_block----------------------------*/
#sns_bnr_block {
  margin: 60px 0;
}

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

.sns_bnr_block_inner a {
}

.sns_bnr_block_inner a img {
}

/*-----------sns_bnr_block--------------ここまで--------------*/
/*-----------recruit_bnr_block----------------------------*/
#recruit_bnr_block {
  margin: 60px 0 120px;
}

.recruit_bnr_block_inner {
  max-width: 1000px;
  margin: auto;
}

.recruit_bnr_block_inner dl {
  display: flex;
}

.recruit_bnr_block_inner dt {
  width: 50%;
  position: relative;
}

.recruit_bnr_entry {
  padding: 40px;
}

dt .recruit_bnr_entry {
  background: var(--theme-accent);
  position: relative;
}

dt .recruit_bnr_entry:after {
  content: "";
  position: absolute;
  left: -10px;
  bottom: 20px;
  width: 95%;
  height: 20px;
  border-bottom: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: skew(45deg);
}

.recruit_bnr_block_inner dt:hover>.recruit_wrap {
  display: block;
  transition: 0.1s;
  position: absolute;
  width: 100%;
}

dd .recruit_bnr_entry {
  background: #111;
}

dd .recruit_bnr_entry:after {
  content: "";
  position: absolute;
  left: -10px;
  bottom: 20px;
  width: 95%;
  height: 20px;
  border-bottom: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: skew(45deg);
}

.recruit_bnr_block_inner dd:hover>.recruit_wrap2 {
  display: block;
  transition: 0.1s;
  position: absolute;
  width: 100%;
}

.recruit_bnr_entry h3 {
  color: #fff;
  font-weight: bold;
  font-size: 35px;
  line-height: 1;
}

.recruit_bnr_entry p {
  color: #fff;
  font-weight: bold;
  font-size: 20px;
}

.recruit_bnr_entry:active {
  color: #fff;
  font-weight: bold;
  font-size: 20px;
}

.recruit_wrap {
  transition: 0.1s;
  filter: drop-shadow(1px 2px 4px rgba(0, 0, 0, .3));
  display: none;
}

.recruit_wrap2 {
  transition: 0.1s;
  filter: drop-shadow(1px 2px 4px rgba(0, 0, 0, .3));
  display: none;
}

.recruit_bnr_block_inner dt ul {
  transition: 0.1s;
  display: flex;
  border-radius: 4px;
  width: 94%;
  margin: -12px auto 0;
  background: #fff;
  padding: 45px 20px 25px;
  justify-content: space-around;
  clip-path: polygon(0 20%, 45% 20%, 50% 0, 55% 20%, 100% 20%, 100% 100%, 0 100%);
}

.recruit_bnr_block_inner dt ul li {
}

.recruit_bnr_block_inner dt ul a {
}

.recruit_bnr_block_inner dt ul a img {
}

.recruit_bnr_block_inner dd {
  width: 50%;
  position: relative;
}

.recruit_bnr_block_inner dd ul {
  display: flex;
  border-radius: 4px;
  width: 94%;
  margin: -12px auto 0;
  background: #fff;
  padding: 45px 20px 25px;
  justify-content: space-around;
  clip-path: polygon(0 20%, 45% 20%, 50% 0, 55% 20%, 100% 20%, 100% 100%, 0 100%);
}

.recruit_bnr_block_inner dd ul li {
}

.recruit_bnr_block_inner dd ul a {
}

.recruit_bnr_block_inner dd ul a img {
}

/*-----------recruit_bnr_block--------------ここまで--------------*/
/*--------title_header------------------------------*/
#title_header {
  display: grid;
  place-items: center;
  height: 470px;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

body#culture #title_header {
  background: url(../img/culture/culture_bg.jpg);
  background-position: center center;
  background-size: cover;
}

.title_header_inner {
  text-align: center;
  margin-top: 75px;
}

.title_header_inner h1 {
  font-size: 80px;
  font-weight: bold;
  margin: 0;
  letter-spacing: 0.04em;
  font-family: "roboto", sans-serif;
  color: #fff;
}

.title_header_inner p {
  font-size: 24px;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.04em;
}

#title_header_sub {
  display: grid;
  place-items: center;
  height: 250px;
  margin-top: 120px;
}

#title_header_sub_short {
  display: grid;
  place-items: center;
  height: 150px;
  margin-top: 120px;
}

.title_header_sub_inner {
  text-align: center;
}

.title_header_sub_inner h1 {
  font-size: 50px;
  font-weight: bold;
  margin: 0;
  letter-spacing: 0.04em;
}

.title_header_sub_inner h2 {
  font-size: 27px;
  font-weight: bold;
  margin: 0;
  letter-spacing: 0.04em;
}

.title_header_sub_inner p {
  font-size: 30px;
  font-weight: bold;
  color: var(--theme-accent);
  letter-spacing: 0.04em;
}

/*--------top_hero_header--------ここまで------------------*/
/*--------category_navi------------------------------*/
.category_navi {
}

.category_navi ul {
  display: flex;
  justify-content: center;
  gap: 60px;
}

.category_navi li {
}

.category_navi a {
  font-size: 20px;
  font-weight: bold;
}

/*--------category_navi--------ここまで------------------*/
/*--------category_navi------------------------------*/
.job_category_unit {
  margin: 180px 0;
  scroll-margin-top: 170px;
  position: relative;
}

.job_category_unit h2 {
  position: absolute;
  top: 0%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #111;
  color: #fff;
  font-weight: bold;
  padding: 20px 80px;
  font-size: 40px;
  letter-spacing: 0.04em;
}

.job_category_unit_inner {
  max-width: 1148px;
  margin: auto;
  filter: drop-shadow(0px 4px 8px rgba(0, 0, 0, .3));
  background: #fff;
  padding: 100px 80px 80px;
  position: relative;
}

.job_category_unit dl {
  display: flex;
  gap: 3%;
  border-bottom: solid 1px #ddd;
  padding-bottom: 40px;
}

.job_category_unit dl:nth-last-of-type(1) {
  border: none;
  padding-bottom: 0;
}

.job_category_unit dl+dl {
  margin-top: 40px;
}

.job_category_unit dt {
  width: 27%;
}

.job_category_unit dt figure {
}

.job_category_unit dt figure img {
}

.job_category_unit dd {
  width: 70%;
}

.job_category_unit dd h3 {
  font-size: 20px;
  font-weight: bold;
}

.job_category_unit dd h4 {
  margin-top: 20px;
  padding: 10px 20px;
  color: #fff;
  font-weight: bold;
}

#job_category_construction_management dd h4 {
  background: #3366ff;
  font-weight: bold;
}

#job_category_design dd h4 {
  background: #0099cc;
}

#job_category_sales dd h4 {
  background: #333399;
}

#job_category_safety dd h4 {
  background: #006600;
}

#job_category_technology dd h4 {
  background: #336699;
}

#job_category_management dd h4 {
  background: #339999;
}

.job_category_unit dd p {
  font-size: 14px;
  text-align: justify;
  margin-top: 20px;
}

/*--------category_navi--------ここまで------------------*/
/*--------recruitment_guidelines--------------------------*/
#recruit {
}

.recruitment_unit {
}

.recruitment_unit_block {
  max-width: 1020px;
  margin: auto;
}

.recruitment_unit_block+.recruitment_unit_block {
  margin-top: 40px;
}

.recruitment_unit h3 {
  border-left: solid 13px var(--theme-accent);
  padding: 10px 20px;
  margin-bottom: 20px;
  font-size: 35px;
  line-height: 1;
  font-weight: bold;
  letter-spacing: 0.04em;
}

.recruitment_unit dl {
  display: flex;
  border-bottom: solid 1px #808080;
}

.recruitment_unit dt {
  background: #efefef;
  width: 23%;
  padding: 30px 10px 30px 60px;
  line-height: 2;
  font-size: 18px;
  font-weight: bold;
}

.recruitment_unit dd {
  width: 77%;
  padding: 30px 0px 30px 60px;
  line-height: 2;
  font-size: 18px;
}

.recruitment_unit dd table {
}

.recruitment_unit dd a {
  color: var(--theme-accent);
  font-weight: bold;
}

.recruitment_unit dd table {
  border-top: solid 1px #808080;
  border-left: solid 1px #808080;
  width: 100%;
}

.recruitment_unit dd tr {
  border-bottom: solid 1px #808080;
}

.recruitment_unit dd td {
  border-right: solid 1px #808080;
  padding: 10px 10px;
  font-size: 16px;
  text-align: center;
}

.recruit_mail {
  display: inline-block;
}

#faq {
  margin-top: 180px;
  scroll-margin-top: 120px;
}

.faq_title {
  text-align: center;
}

.faq_title h3 {
  margin-bottom: 20px;
  font-size: 80px;
  line-height: 1;
  font-weight: bold;
  letter-spacing: 0.04em;
  color: var(--theme-accent);
  font-family: "roboto", sans-serif;
}

.faq_title p {
  font-size: 28px;
  font-weight: bold;
}

.faq_back_inner {
}

.faq_back_inner_bg {
  position: sticky;
  top: 20px;
  z-index: -1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
}

.faq_back_inner_bg img {
  position: absolute;
  z-index: 0;
  width: 90%;
  margin: 20px auto;
  /* width: 100%; */
  display: block;
}

.faq_inner {
  border: solid 1px var(--theme-accent);
  max-width: 1280px;
  margin: 0px auto 0;
  padding: 80px;
}

dl.question {
  display: flex;
  align-items: center;
  max-width: 900px;
  margin: auto;
  padding: 0 20px 20px;
}

dl.question dt {
  font-size: 50px;
  font-family: "roboto", sans-serif;
  line-height: 1;
  margin-right: 20px;
  color: var(--theme-accent);
  font-weight: bold;
}

dl.question dd {
  font-size: 20px;
  color: var(--theme-accent);
  font-weight: bold;
}

dl.answer {
  display: flex;
  border-bottom: solid 1px var(--theme-accent);
  padding: 0 20px 20px;
  max-width: 900px;
  margin: 0px auto 40px;
}

dl.answer dt {
  font-size: 50px;
  font-family: "roboto", sans-serif;
  line-height: 1;
  margin-right: 20px;
  font-weight: bold;
}

dl.answer dd {
}

dl.answer dd p {
}

dl.answer dd p.down {
  padding-top: 13px;
}

/*--------recruitment_guidelines--------ここまで----------*/
/*--------construction--------------------------*/
#construction {
}

#construction_title_header {
  background: url(../img/construction/construction_bg.jpg);
  background-position: center center;
  background-size: cover;
  height: 658px;
  display: grid;
  place-content: end center;
  height: 810px;
  margin-top: 120px;
}

.construction_title_header_inner {
  text-align: center;
}

.construction_title_header_inner h1 {
  font-size: 40px;
  margin: 0;
  color: #fff;
  font-weight: bold;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-top: solid 1px #fff;
  border-bottom: solid 1px #fff;
  padding: 20px;
  width: fit-content;
  margin: auto;
}

.construction_title_header_inner h1::before {
  content: "";
  width: 54px;
  height: 54px;
  background-image: url(../img/civil/civil_title_mark.png);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  display: block;
  margin-right: 0.5em;
}

.construction_title_header_inner p {
  font-size: 130px;
  font-weight: bold;
  color: rgb(255 255 255 / 50%);
  line-height: 1;
  font-family: "roboto", sans-serif;
  transform: skewX(-15deg);
  margin-top: 14%;
}

.construction_main {
}

.construction_main_inner {
  max-width: 1280px;
  margin: 80px auto 0;
}

.construction_main h2 {
  border-bottom: solid 2px #111;
  font-size: 50px;
  text-align: center;
  padding-bottom: 20px;
  font-family: YuMincho, 'Yu Mincho', serif;
  font-weight: bold;
  letter-spacing: 0.1em;
}

.construction_main h3 {
  text-align: center;
  margin: 30px 0;
  font-size: 38px;
  font-weight: bold;
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
}

.construction_main p {
  text-align: justify;
  font-size: 18px;
}

.construction_main figure {
  margin-top: 30px;
}

.construction_main figure img {
}

.construction_photo {
  /* margin-top: 60px; */
}

.construction_photo figure {
}

.construction_photo figure img {
}

.construction_photo_2way {
  display: flex;
  margin-top: 80px;
}

.construction_photo_2way figure {
  position: relative;
}

.construction_photo_2way figure img {
}

.construction_photo_2way figure figcaption {
  position: absolute;
  right: 0;
  bottom: 0px;
  background: #111;
  color: #fff;
  padding: 5px 20px;
  font-size: 25px;
}

.construction_photo_2way figure figcaption.fig_left {
  left: 0;
  right: inherit;
}

.construction_photo_grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  margin-top: 80px;
}

.construction_photo_grid figure {
  position: relative;
}

.construction_photo_grid figure:nth-of-type(1) {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}

.construction_photo_grid figure:nth-of-type(2) {
  grid-column: 3 /4;
  grid-row: 1 / 2;
}

.construction_photo_grid figure:nth-of-type(3) {
  grid-column: 3 /4;
  grid-row: 2 / 3;
}

.construction_photo_grid figure img {
}

.construction_photo_grid figure figcaption {
  position: absolute;
  left: 0;
  bottom: 0px;
  background: #111;
  color: #fff;
  padding: 5px 20px;
  font-size: 25px;
}

.construction_photo_grid figure:nth-of-type(1) figcaption {
  margin-left: calc(calc(100vw - 1280px) / 2);
}

.construction_comment {
  margin-top: 80px;
}

.construction_comment_inner {
  max-width: 1280px;
  margin: auto;
}

.construction_comment h3 {
  font-size: 44px;
  font-weight: bold;
  margin-bottom: 30px;
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
}

.construction_comment p {
  font-size: 18px;
  text-align: justify;
}

.construction_report_last {
  margin: 80px 0;
}

.construction_report_last_wrap {
  background-image: url(../img/construction/construction_photo_11.jpg);
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 800px;
}

.construction_report_last_inner {
  padding: 60px 0;
  max-width: 1280px;
  margin: auto;
}

.construction_report_last figure {
}

.construction_report_last figure img {
}

.construction_report_last_catch {
  /* background: rgb(255 255 255 / 90%); */
}

.construction_report_last_title {
  background: var(--theme-accent);
  width: 100%;
  clip-path: polygon(0 0, 75% 0%, 85% 100%, 0% 100%);
}

.construction_report_last_title_inner {
  background: var(--theme-accent);
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  width: 100%;
  padding: 20px 60px;
  max-width: 1280px;
  margin: auto;
}

.construction_report_last_title h3 {
  font-size: 36px;
  color: #fff;
  font-weight: bold;
  font-family: "roboto", sans-serif;
  line-height: 1;
  letter-spacing: -0.02em;
}

.construction_report_last_title p {
  font-size: 19px;
  font-weight: bold;
  margin-left: 1em;
}

.construction_report_last_text {
  padding: 40px 60px;
  max-width: 850px;
  background: rgb(255 255 255 / 90%);
}

.construction_report_last_text + .construction_report_last_text {
  margin-top: 30px;
}

.construction_report_last_text h4 {
  font-size: 28px;
  font-weight: bold;
  line-height: 1;
}

.construction_report_last_text p {
  font-size: 20px;
  margin-top: 30px;
  text-align: justify;
}

/*--------construction--------ここまで------------------*/

/* heroのSVGを強制表示（暫定 or 本番） */
#hero .catch_block_top,
#hero .catch_block_bottom {
  opacity: 1 !important;
}
/* ページャー
--------------------------------------------*/
.pagination{
  text-align: center;
}
a.page-numbers, 
.pagination .current{
  background: #fff;
  border: solid 1px #ccc;
  padding:5px 8px;
  margin:0 2px;
  text-decoration: none;
}
.pagination .current{
  background: #000;
  border: solid 1px #000;
  color: #fff;
}
/*-----ページャー--ここまで---------------*/
/* FIX: gradation line を確実に表示（変数なし） */
/* gradation line color fix */

.gradationline_left,
.gradationline_right{
  background: linear-gradient(
    90deg,
    #3E4A3F 0%,
    #6B8E75 45%,
    #D8CFC2 100%
  ) !important;
}

.gradationline_left,
.gradationline_right{
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 2600px;
  height: 1000px;
  z-index: -1;
  opacity: 0;
  transform: translate(-50%, 0);
  background: linear-gradient(90deg, #3E4A3F 0%, #6B8E75 45%, #D8CFC2 100%);
}

.gradationline_left.isPlay,
.gradationline_right.isPlay{
  animation: diagonalReveal 1s ease forwards;
}

@keyframes diagonalReveal{
  0%{
    opacity: 0;
    clip-path: polygon(0 100%, 0 100%, 0 100%, 0 100%);
  }
  100%{
    opacity: 1;
    clip-path: polygon(0 30%, 100% 0, 100% 100%, 0 100%);
  }
}
@media screen and (max-width: 767px) {
  .big_title {
    margin-bottom: 48px;
  }

  .big_title h2,
  .work_title h2 {
    font-size: 56px;
  }

  .big_title p,
  .work_title .work_title_jp {
    font-size: 24px;
  }

  .work_title .work_title_en {
    font-size: 16px;
    letter-spacing: 0.1em;
  }

  .small_title {
    padding-top: 56px;
  }
}

/* =========================
   NOTE section
========================= */
.recruit2027_note {
  padding: 120px 0 140px;
  background: #f8f8f5;
}

.recruit2027_note_inner {
  width: min(94%, 1280px);
  margin: 0 auto;
}

.recruit2027_note_lead {
  margin: 0 0 48px;
  text-align: center;
}

.recruit2027_note_lead p {
  margin: 0;
  color: var(--theme-accent);
  font-weight: bold;
  font-size: 24px;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.recruit2027_note_cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
}

.recruit2027_note_card {
  display: block;
  color: inherit;
  text-decoration: none;
  background: #ffffff;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.08);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.recruit2027_note_card:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 42px rgba(0, 0, 0, 0.14);
}

.recruit2027_note_thumb {
  margin: 0;
  overflow: hidden;
}

.recruit2027_note_thumb img {
  display: block;
  width: 100%;
  height: auto;
}

.recruit2027_note_body {
  padding: 24px 24px 28px;
}

.recruit2027_note_date {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #777;
}

.recruit2027_note_title {
  margin: 0 0 14px;
  color: var(--theme-accent);
  font-size: 22px;
  line-height: 1.5;
  font-weight: bold;
}

.recruit2027_note_text {
  margin: 0 0 18px;
  color: #555;
  font-size: 15px;
  line-height: 1.9;
}

.recruit2027_note_link {
  margin: 0;
  color: var(--theme-accent);
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.06em;
}

/* hover時に画像も少しだけ動かす */
.recruit2027_note_card:hover .recruit2027_note_thumb img {
  transform: scale(1.03);
  transition: transform 0.5s ease;
}

.recruit2027_note_thumb img {
  transition: transform 0.5s ease;
}

/* tablet */
@media screen and (max-width: 1024px) {
  .recruit2027_note {
    padding: 100px 0 120px;
  }

  .recruit2027_note_cards {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .recruit2027_note_title {
    font-size: 20px;
  }
}

/* smartphone */
@media screen and (max-width: 767px) {
  .recruit2027_note {
    padding: 80px 0 100px;
  }

  .recruit2027_note_lead {
    margin-bottom: 32px;
  }

  .recruit2027_note_lead p {
    font-size: 18px;
  }

  .recruit2027_note_body {
    padding: 20px 18px 22px;
  }

  .recruit2027_note_title {
    font-size: 18px;
  }

  .recruit2027_note_text {
    font-size: 14px;
    line-height: 1.8;
  }

  .recruit2027_note_link {
    font-size: 13px;
  }
}

.recruit2027_note_cards{
  width:90%;
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}
.recruit2027_note_cards{
  width:90%;
  max-width:1280px;
  margin:60px auto 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}

/* =========================
   YouTube section
========================= */
.recruit2027_youtube{
  padding:120px 0;
}

/* 幅だけ800に制御（ここが本題） */
.youtube_inner{
  width:90%;
  max-width:800px; /* ←ここだけ変更 */
  margin:60px auto 0;
}

/* カード */
.youtube_card{
  display:block;
  text-decoration:none;
  transition:.3s;
}

.youtube_card:hover{
  transform:translateY(-6px) scale(1.01);
  filter:brightness(1.05);
}

/* サムネイル（高さを追加） */
.youtube_thumb{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9; /* ←これ追加（432px相当） */
  overflow:hidden;
}

/* 画像 */
.youtube_thumb img{
  width:100%;
  height:100%;           /* ←追加 */
  object-fit:cover;      /* ←追加 */
  display:block;
  border-radius:10px;
}

/* 再生ボタン背景 */
.youtube_play_bg{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:90px;
  height:90px;
  background:rgba(0,0,0,0.6);
  border-radius:50%;
}

/* 再生ボタン三角 */
.youtube_play_icon{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-40%,-50%);
  border-style:solid;
  border-width:18px 0 18px 28px;
  border-color:transparent transparent transparent white;
}

/* =========================================================
  top_strength_v2
========================================================= */
#top_strength_v2 {
  padding: 120px 0;
  background: #f7f5ef;
}

#top_strength_v2 .ts2_inner {
  width: min(1100px, 90%);
  margin: 0 auto;
}

#top_strength_v2 .ts2_row {
  display: flex;
  align-items: center;
  gap: 60px;
  margin-bottom: 120px;
}

#top_strength_v2 .ts2_row:last-child {
  margin-bottom: 0;
}

#top_strength_v2 .ts2_row.reverse {
  flex-direction: row-reverse;
}

#top_strength_v2 .ts2_image {
  width: 50%;
}

#top_strength_v2 .ts2_image img {
  display: block;
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 16px;
}

#top_strength_v2 .ts2_text {
  width: 50%;
}

#top_strength_v2 .ts2_no {
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 14px;
  color: #c9a063;
}

#top_strength_v2 .ts2_text h3 {
  margin-bottom: 12px;
  font-size: 28px;
  line-height: 1.5;
}

#top_strength_v2 .ts2_copy {
  margin-bottom: 18px;
  font-weight: 700;
  line-height: 1.9;
  color: #222;
}

#top_strength_v2 .ts2_text p {
  margin-bottom: 14px;
  line-height: 2;
  color: #555;
}

#top_strength_v2 .ts2_text p:last-child {
  margin-bottom: 0;
}

/* tablet */
@media screen and (max-width: 1024px) {
  #top_strength_v2 .ts2_row,
  #top_strength_v2 .ts2_row.reverse {
    flex-direction: column;
    gap: 36px;
    margin-bottom: 90px;
  }

  #top_strength_v2 .ts2_image,
  #top_strength_v2 .ts2_text {
    width: 100%;
  }

  #top_strength_v2 .ts2_image img {
    height: auto;
    aspect-ratio: 16 / 10;
  }
}

/* mobile */
@media screen and (max-width: 767px) {
  #top_strength_v2 {
    padding: 80px 0;
  }

  #top_strength_v2 .ts2_row,
  #top_strength_v2 .ts2_row.reverse {
    margin-bottom: 70px;
    gap: 28px;
  }

  #top_strength_v2 .ts2_no {
    font-size: 36px;
  }

  #top_strength_v2 .ts2_text h3 {
    font-size: 22px;
  }

  #top_strength_v2 .ts2_copy {
    font-size: 15px;
  }

  #top_strength_v2 .ts2_text p {
    font-size: 14px;
    line-height: 1.9;
  }
}

/* =========================================================
   top_strength_v2
   既存 #top_strength は残したまま下部に追加する新レイアウト
========================================================= */
/* =========================================================
   top_strength_v2
   中央基準で左右に分ける安定版
========================================================= */
#top_strength_v2{
  padding: 140px 0;
  overflow: hidden;
  background: #f7f5ef;
}

#top_strength_v2 .ts2_intro{
  width: min(1100px, calc(100% - 80px));
  margin: 0 auto 100px;
  text-align: center;
}

#top_strength_v2 .ts2_intro_en{
  margin: 0 0 12px;
  font-size: 12px;
  letter-spacing: 0.20em;
  color: #777;
}

#top_strength_v2 .ts2_intro_ttl{
  margin: 0;
  line-height: 1.4;
}

#top_strength_v2 .ts2_row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  margin: 0 0 140px;
}

#top_strength_v2 .ts2_row:last-child{
  margin-bottom: 0;
}

#top_strength_v2 .ts2_visual,
#top_strength_v2 .ts2_content_wrap{
  width: 100%;
}

#top_strength_v2 .ts2_visual{
  display: flex;
  justify-content: flex-end;
}

#top_strength_v2 .ts2_visual_inner{
  width: min(88%, 700px);
}

#top_strength_v2 .ts2_visual img{
  display: block;
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 24px;
}

#top_strength_v2 .ts2_content_wrap{
  display: flex;
  justify-content: flex-start;
}

#top_strength_v2 .ts2_content{
  width: min(88%, 480px);
  margin-left: 50px;
}

#top_strength_v2 .ts2_no{
  display: block;
  margin: 0 0 18px;
  font-size: clamp(72px, 10vw, 140px);
  line-height: 0.9;
  font-weight: 700;
  color: #c9a063;
  letter-spacing: 0.03em;
}

#top_strength_v2 .ts2_content h3{
  margin: 0 0 14px;
  font-size: 36px;
  line-height: 1.5;
}

#top_strength_v2 .ts2_copy{
  margin: 0 0 20px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.9;
  color: #222;
}

#top_strength_v2 .ts2_content p{
  margin: 0 0 14px;
  font-size: 26px;
  line-height: 2;
  color: #555;
}

#top_strength_v2 .ts2_content p:last-child{
  margin-bottom: 0;
}

#top_strength_v2 .ts2_row_reverse .ts2_visual{
  order: 2;
  justify-content: flex-start;
}

#top_strength_v2 .ts2_row_reverse .ts2_content_wrap{
  order: 1;
  justify-content: flex-end;
}

#top_strength_v2 .ts2_row_reverse .ts2_content{
  margin-left: 0;
  margin-right: 50px;
  text-align: right;
}

@media screen and (max-width: 1024px){
  #top_strength_v2{
    padding: 100px 0;
  }

  #top_strength_v2 .ts2_intro{
    width: min(100%, calc(100% - 50px));
    margin-bottom: 70px;
  }

  #top_strength_v2 .ts2_row{
    display: block;
    margin-bottom: 90px;
  }

  #top_strength_v2 .ts2_visual,
  #top_strength_v2 .ts2_row_reverse .ts2_visual{
    display: block;
  }

  #top_strength_v2 .ts2_visual_inner,
  #top_strength_v2 .ts2_row_reverse .ts2_visual_inner{
    width: calc(100% - 25px);
    margin-left: 25px;
  }

  #top_strength_v2 .ts2_visual img{
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 20px;
  }

  #top_strength_v2 .ts2_content_wrap,
  #top_strength_v2 .ts2_row_reverse .ts2_content_wrap{
    display: block;
  }

  #top_strength_v2 .ts2_content,
  #top_strength_v2 .ts2_row_reverse .ts2_content{
    width: auto;
    margin: 35px 25px 0;
    text-align: left;
  }
}

@media screen and (max-width: 767px){
  #top_strength_v2{
    padding: 80px 0;
  }

  #top_strength_v2 .ts2_intro{
    width: calc(100% - 30px);
    margin-bottom: 50px;
  }

  #top_strength_v2 .ts2_row{
    margin-bottom: 70px;
  }

  #top_strength_v2 .ts2_visual_inner,
  #top_strength_v2 .ts2_row_reverse .ts2_visual_inner{
    width: calc(100% - 15px);
    margin-left: 15px;
  }

  #top_strength_v2 .ts2_content,
  #top_strength_v2 .ts2_row_reverse .ts2_content{
    margin: 24px 15px 0;
  }

  #top_strength_v2 .ts2_content h3{
    font-size: 22px;
  }

  #top_strength_v2 .ts2_copy{
    font-size: 15px;
    line-height: 1.8;
  }

  #top_strength_v2 .ts2_content p{
    font-size: 14px;
    line-height: 1.9;
  }

  #top_strength_v2 .ts2_no{
    font-size: clamp(56px, 18vw, 96px);
  }
}
  #top_strength_v2 .ts2_intro{
    width: calc(100% - 30px);
    margin-bottom: 50px;
  }

  #top_strength_v2 .ts2_intro_en{
    font-size: 11px;
  }

  #top_strength_v2 .ts2_row,
  #top_strength_v2 .ts2_row_reverse{
    margin-bottom: 70px;
  }

  #top_strength_v2 .ts2_visual_inner{
    width: calc(100% - 15px);
  }

  #top_strength_v2 .ts2_row .ts2_visual_inner,
  #top_strength_v2 .ts2_row_reverse .ts2_visual_inner{
    margin-left: 15px;
  }

  #top_strength_v2 .ts2_content{
    margin: 24px 15px 0;
  }

  #top_strength_v2 .ts2_no{
    margin-bottom: 12px;
    font-size: clamp(56px, 18vw, 96px);
  }
}
/* ===== top_strength_v2 文字サイズ強制上書き ===== */
#top_strength_v2 .ts2_content h3{
  font-size: 36px !important;
  line-height: 1.5 !important;
}

#top_strength_v2 .ts2_content .ts2_copy{
  font-size: 18px !important;
  line-height: 1.9 !important;
}

#top_strength_v2 .ts2_content p{
  font-size: 16px !important;
  line-height: 2 !important;
}

@media screen and (max-width: 767px){
  #top_strength_v2 .ts2_content h3{
    font-size: 24px !important;
  }

  #top_strength_v2 .ts2_content .ts2_copy{
    font-size: 16px !important;
    line-height: 1.8 !important;
  }

  #top_strength_v2 .ts2_content p{
    font-size: 15px !important;
    line-height: 1.9 !important;
  }
}
/* ===============================
   ENTRY FORM（整理版）
=============================== */
/* ===============================
   ENTRY FORM / recruit design
=============================== */

.entryform {
  padding: 120px 0 140px;
  background: #f8f8f5;
}

.entryform .section_inner {
  max-width: 1100px;
  width: calc(100% - 40px);
  margin: 0 auto;
}

.entryform .title_wrap {
  text-align: center;
  margin-bottom: 60px;
}

.entryform .title_wrap h2 {
  color: var(--theme-accent);
  font-family: "roboto", sans-serif;
  font-weight: 700;
  font-size: 64px;
  line-height: 1;
  letter-spacing: 0.02em;
  margin: 0 0 12px;
}

.entryform .title_wrap p {
  color: var(--theme-accent);
  font-size: 28px;
  font-weight: bold;
  letter-spacing: 0.08em;
}

/* フォーム全体 */
.entryform .formCont {
  max-width: 860px;
  margin: 0 auto;
  padding: 50px 56px 60px;
  background: #fff;
  border: 1px solid #e4e1db;
  border-radius: 24px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.06);
}

/* 各項目 */
.entryform .formCont dl {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  margin: 0;
  padding: 28px 0;
  border-bottom: 1px solid #ece8e1;
}

.entryform .formCont dl:first-of-type {
  padding-top: 0;
}

.entryform .formCont dl:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}

/* 項目名 */
.entryform .formCont dt {
  width: 220px;
  flex-shrink: 0;
  font-size: 17px;
  font-weight: bold;
  line-height: 1.8;
  color: #1f3a34;
}

/* 入力欄側 */
.entryform .formCont dd {
  flex: 1;
  min-width: 0;
}

/* 必須 */
.entryform .required {
  display: inline-block;
  margin-left: 10px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--theme-accent);
  color: #fff;
  font-size: 12px;
  line-height: 1.4;
  vertical-align: middle;
}

/* テキスト入力 */
.entryform input[type="text"],
.entryform input[type="email"],
.entryform input[type="tel"],
.entryform input[type="datetime-local"],
.entryform textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #cfc8bd;
  border-radius: 10px;
  background: #fff;
  font-size: 16px;
  line-height: 1.8;
  color: #111;
  box-sizing: border-box;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.entryform input[type="text"]:focus,
.entryform input[type="email"]:focus,
.entryform input[type="tel"]:focus,
.entryform input[type="datetime-local"]:focus,
.entryform textarea:focus {
  outline: none;
  border-color: var(--theme-accent);
  box-shadow: 0 0 0 4px rgba(31, 58, 52, 0.08);
}

/* プレースホルダ */
.entryform input::placeholder,
.entryform textarea::placeholder {
  color: #999;
}

/* テキストエリア */
.entryform textarea {
  min-height: 180px;
  resize: vertical;
}

/* ラジオ・チェック */
.entryform .form_list_col2 {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 28px;
  margin: 0;
  padding: 0;
}

.entryform .form_list_col2 li {
  margin: 0;
  list-style: none;
}

.entryform .form_list_col2 label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  font-size: 16px;
  line-height: 1.8;
  font-weight: 500;
}

.entryform input[type="radio"],
.entryform input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  margin-right: 10px;
  border: 1px solid #b7b0a5;
  background: #fff;
  position: relative;
  top: 0;
  flex-shrink: 0;
}

.entryform input[type="radio"] {
  border-radius: 50%;
}

.entryform input[type="checkbox"] {
  border-radius: 4px;
}

.entryform input[type="radio"]:checked,
.entryform input[type="checkbox"]:checked {
  border-color: var(--theme-accent);
  background: var(--theme-accent);
}

.entryform input[type="radio"]:checked::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
}

.entryform input[type="checkbox"]:checked::before {
  content: "";
  position: absolute;
  top: 1px;
  left: 6px;
  width: 5px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}

/* 補足文 */
.entryform .form_help {
  display: block;
  margin-top: 10px;
  color: #777;
  font-size: 13px;
  line-height: 1.8;
}

/* 送信ボタン */
.entryform .form_submit_wrap {
  text-align: center;
  margin-top: 50px;
}

.entryform .form_submit_wrap input,
.entryform .form_submit_wrap button {
  display: inline-block;
  min-width: 320px;
  padding: 18px 36px;
  border: 1px solid var(--theme-accent);
  background: var(--theme-accent);
  color: #fff;
  font-size: 17px;
  font-weight: bold;
  letter-spacing: 0.08em;
  line-height: 1.4;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease, opacity 0.25s ease;
}

.entryform .form_submit_wrap input:hover,
.entryform .form_submit_wrap button:hover {
  background: #fff;
  color: var(--theme-accent);
  transform: translateY(-2px);
  opacity: 1;
}

/* 戻るボタンなどサブ用 */
.entryform .form_submit_wrap.sub input,
.entryform .form_submit_wrap.sub button {
  background: #fff;
  color: var(--theme-accent);
}

.entryform .form_submit_wrap.sub input:hover,
.entryform .form_submit_wrap.sub button:hover {
  background: var(--theme-accent);
  color: #fff;
}

/* 確認画面の値表示 */
.entryform .confirm_value {
  padding: 14px 16px;
  border-radius: 10px;
  background: #f7f5ef;
  border: 1px solid #e0dacf;
  line-height: 1.9;
}

/* SP */
@media screen and (max-width: 768px) {
  .entryform {
    padding: 80px 0 100px;
  }

  .entryform .section_inner {
    width: calc(100% - 30px);
  }

  .entryform .title_wrap {
    margin-bottom: 36px;
  }

  .entryform .title_wrap h2 {
    font-size: 42px;
  }

  .entryform .title_wrap p {
    font-size: 22px;
  }

  .entryform .formCont {
    padding: 30px 20px 36px;
    border-radius: 18px;
  }

  .entryform .formCont dl {
    flex-direction: column;
    gap: 10px;
    padding: 20px 0;
  }

  .entryform .formCont dt {
    width: 100%;
    font-size: 15px;
  }

  .entryform input[type="text"],
  .entryform input[type="email"],
  .entryform input[type="tel"],
  .entryform input[type="datetime-local"],
  .entryform textarea {
    font-size: 16px;
    padding: 12px 14px;
  }

  .entryform .form_list_col2 {
    gap: 10px 18px;
  }

  .entryform .form_list_col2 label {
    font-size: 15px;
  }

  .entryform .form_submit_wrap {
    margin-top: 36px;
  }

  .entryform .form_submit_wrap input,
  .entryform .form_submit_wrap button {
    width: 100%;
    min-width: 0;
    font-size: 16px;
    padding: 16px 20px;
  }
}
