@charset "UTF-8";
* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html {
  font-size: 100%;
}

body {
  color: #fff;
  background-color: #16324f;
  font-family: "Noto Serif JP", "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Roboto, MotoyaLCedar, sans-serif;
}

@media screen and (max-width: 768px) {
  .br_pc {
    display: none;
  }
}

@media screen and (min-width: 1441px) {
  .br_sp {
    display: none;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1440px) {
  .br_sp {
    display: none;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .br_sp {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .pc {
    display: none;
  }
}

@media screen and (min-width: 1441px) {
  .sp {
    display: none;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1440px) {
  .sp {
    display: none;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .sp {
    display: none;
  }
}

.wide {
  width: 1200px;
  margin: auto;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .wide {
    width: 800px;
  }
}
@media screen and (max-width: 768px) {
  .wide {
    width: 350px;
  }
}

a, th, td {
  font-size: 1.1vw;
}

.fade-in {
  opacity: 0;
  transition-duration: 0.6s;
  transition-property: opacity, transform;
}

.fade-in-up {
  transform: translate(0, 40px);
}

.scroll-in {
  opacity: 1;
  transform: translate(0, 0);
}

p {
  font-size: 1.1vw;
  line-height: 1.8;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  p {
    font-size: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  p {
    font-size: 4vw;
  }
}

h1 {
  font-size: 3.3vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  h1 {
    font-size: 4vw;
  }
}
@media screen and (max-width: 768px) {
  h1 {
    font-size: 8vw;
  }
}

h2 {
  font-size: 2.5vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  h2 {
    font-size: 3.5vw;
  }
}
@media screen and (max-width: 768px) {
  h2 {
    font-size: 6vw;
  }
}

h3 {
  font-size: 2vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  h3 {
    font-size: 3vw;
  }
}
@media screen and (max-width: 768px) {
  h3 {
    font-size: 5vw;
  }
}

h4 {
  font-size: 1.6vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  h4 {
    font-size: 2.4vw;
  }
}
@media screen and (max-width: 768px) {
  h4 {
    font-size: 4.5vw;
  }
}

h5 {
  font-size: 1.3vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  h5 {
    font-size: 2vw;
  }
}
@media screen and (max-width: 768px) {
  h5 {
    font-size: 4.2vw;
  }
}

#lower {
  position: relative;
  margin-bottom: 3rem;
}
#lower .lower {
  width: 100%;
  height: 30vw;
  background-position: center;
  background-size: cover;
  position: relative;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #lower .lower {
    height: 40vw;
  }
}
@media screen and (max-width: 768px) {
  #lower .lower {
    height: 50vw;
  }
}
#lower .lower .lower_bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}
#lower .lower_contents {
  position: absolute;
  top: 50%;
  left: 3%;
  display: inline-block;
}
#lower .lower_contents .headline {
  color: #16324f;
  font-size: 2.5vw;
  letter-spacing: 0.4vw;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  #lower .lower_contents .headline {
    font-size: 5.5vw;
  }
}
#lower .lower_contents p {
  font-family: "Cinzel", serif;
  color: #16324f;
  font-size: 2vw;
  text-align: center;
}

.lower_headline {
  padding: 0.5vw 0;
  padding-left: 2vw;
  margin-bottom: 2vw;
  position: relative;
  color: #fff;
  font-weight: 400;
  background-color: rgba(255, 255, 255, 0.1);
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .lower_headline {
    padding: 1vw 0;
    padding-left: 1vw;
  }
}
@media screen and (max-width: 768px) {
  .lower_headline {
    padding: 2vw 0;
    padding-left: 2vw;
    font-size: 5vw;
  }
}
.lower_headline::before {
  position: absolute;
  content: "";
  width: 0.7vw;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #2f80c4;
}

.back-to-top {
  display: none;
  position: fixed;
  z-index: 9999;
  right: 5%;
  bottom: 5%;
  color: #fff;
  background-color: #1e5aa0;
  padding: 0.5rem 1rem;
  font-size: 2vw;
  display: inline-block;
  text-decoration: none;
  box-shadow: 1px 1px 2px rgba(255, 255, 255, 0.3), 1px -1px 2px rgba(255, 255, 255, 0.3), -1px 1px 2px rgba(255, 255, 255, 0.3), -1px -1px 2px rgba(255, 255, 255, 0.3);
}
@media screen and (max-width: 768px) {
  .back-to-top {
    display: none !important;
  }
}

@media screen and (min-width: 1441px) {
  .topBtnSp {
    display: none !important;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1440px) {
  .topBtnSp {
    display: none !important;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .topBtnSp {
    display: none !important;
  }
}
.topBtnSp {
  display: block;
  position: relative;
  top: 0;
  left: 0;
  color: #333;
  background-color: #fff;
  padding: 1rem;
  font-size: 3vw;
  width: 100% !important;
  text-decoration: none;
  text-align: center;
}
.topBtnSp::before {
  width: 100% !important;
  height: 20vw !important;
  border-radius: 0 !important;
}
.topBtnSp i {
  font-size: 4vw;
}
.topBtnSp p {
  font-size: 3vw;
}

.back-to-top::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-block;
  width: 70px;
  height: 70px;
  border-radius: 50px;
  z-index: -1;
}

.grecaptcha-badge {
  z-index: 99999 !important;
}

.loading {
  position: fixed;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  background-color: #16324f;
  font-size: 30px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s;
  z-index: 100;
}
.loading .loading_text {
  width: 50vw;
  height: 50vw;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-flow: column;
}
.loading .loadinglogo {
  animation: 0.5s flashing infinite;
  width: 50%;
  margin: auto;
}
@media screen and (max-width: 768px) {
  .loading .loadinglogo {
    width: 80%;
  }
}
.loading .loadinglogo img {
  width: 100%;
}

.spinner-box {
  width: 300px;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: transparent;
}
.spinner-box .pulse-container {
  width: 80px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.spinner-box .pulse-container .pulse-bubble {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #fff;
}
.spinner-box .pulse-container .pulse-bubble-1 {
  animation: pulse 0.4s ease 0s infinite alternate;
}
.spinner-box .pulse-container .pulse-bubble-2 {
  animation: pulse 0.4s ease 0.2s infinite alternate;
}
.spinner-box .pulse-container .pulse-bubble-3 {
  animation: pulse 0.4s ease 0.4s infinite alternate;
}

@keyframes pulse {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0.25;
    transform: scale(0.75);
  }
}
.loading.active {
  opacity: 1;
  visibility: visible;
}

header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 99;
  width: 100%;
}
header #header_pc {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 2vw;
}
@media screen and (max-width: 768px) {
  header #header_pc {
    display: none;
  }
}
header #header_pc .header_logo {
  width: 20%;
  padding-top: 2vw;
}
header #header_pc .header_logo img {
  width: 100%;
}
header #header_pc .header_menu {
  width: 60%;
}
header #header_pc .header_menu ul {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 100%;
}
header #header_pc .header_menu ul li {
  height: 100%;
}
header #header_pc .header_menu ul li a {
  display: block;
  height: 100%;
  text-decoration: none;
  font-size: 1vw;
  color: #fff;
  position: relative;
  padding: 0 1vw 0.5vw;
  padding-top: 2vw;
  transition: all 0.4s;
}
header #header_pc .header_menu ul li a:hover {
  color: #2f80c4;
}
header #header_pc .header_menu ul li a::after {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 2px;
  background: #2f80c4;
  bottom: 0;
  transform: scale(0, 1);
  transform-origin: center top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端*/
  transition: transform 0.3s; /*変形の時間*/
}
header #header_pc .header_menu ul li a:hover::after {
  transform: scale(1, 1); /*ホバー後、x軸方向に1（相対値）伸長*/
}
header #header_pc .header_menu ul li a.current {
  color: #2f80c4;
}
header #header_pc .header_menu ul li .new_twitter:before {
  content: "𝕏" !important;
  font-family: sans-serif !important;
  font-weight: bold;
}
@media screen and (min-width: 1441px) {
  header #header_sp {
    display: none;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1440px) {
  header #header_sp {
    display: none;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  header #header_sp {
    display: none;
  }
}
header #header_sp .header_sp {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 4vw;
  height: 60px;
}
header #header_sp .header_sp .header_logo {
  width: 40vw;
}
header #header_sp .header_sp .header_logo img {
  width: 100%;
}
header #header_sp .header_sp_bottom {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgba(33, 33, 33, 0.9);
}
header #header_sp .header_sp_bottom ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 90%;
  margin: auto;
  list-style: none;
}
header #header_sp .header_sp_bottom ul li a {
  text-decoration: none;
  color: #fff;
}
header #header_sp .header_sp_bottom ul li a .header_icon {
  text-align: center;
  margin-top: 2vw;
  height: 8vw;
  display: flex;
  justify-content: center;
  align-items: center;
}
header #header_sp .header_sp_bottom ul li a .header_icon i {
  font-size: 6vw;
}

/*　ハンバーガーボタン　*/
.hamburger {
  display: block;
  z-index: 10005;
  width: 60px;
  height: 60px;
  cursor: pointer;
  text-align: center;
  position: relative;
}

.hamburger span {
  display: block;
  position: absolute;
  width: 30px;
  height: 2px;
  left: 6px;
  background: #fff;
  transition: 0.3s ease-in-out;
}

.hamburger p {
  position: absolute;
  top: 35px;
  left: 50%;
  transform: translate(-50%, 0);
  color: #fff;
}

.hamburger span:nth-child(1) {
  top: 5px;
  left: 50%;
  transform: translate(-50%, 0);
}

.hamburger span:nth-child(2) {
  top: 15px;
  left: 50%;
  transform: translate(-50%, 0);
}

.hamburger span:nth-child(3) {
  top: 25px;
  left: 50%;
  transform: translate(-50%, 0);
}

/* ナビ開いてる時のボタン */
.hamburger.active span:nth-child(1) {
  top: 16px;
  left: 15px;
  background: #fff;
  transform: rotate(-45deg);
}

.hamburger.active span:nth-child(2),
.hamburger.active span:nth-child(3) {
  top: 16px;
  left: 15px;
  background: #fff;
  transform: rotate(45deg);
}

nav.globalMenuSp {
  position: fixed;
  z-index: 10000;
  bottom: 0;
  left: 0;
  color: #fff;
  background: rgba(33, 33, 33, 0.9);
  text-align: center;
  width: 100%;
  height: 60vh;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0.6s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-flow: column;
}

nav.globalMenuSp .ul {
  margin: auto;
  margin-top: 0 !important;
  margin-bottom: 4vw !important;
  padding: 0;
  width: 100%;
  display: flex;
  justify-content: space-around;
  align-items: center;
  flex-wrap: wrap;
}
nav.globalMenuSp .ul .new_twitter:before {
  content: "𝕏" !important;
  font-family: sans-serif !important;
  font-weight: bold;
}

.sns {
  justify-content: center !important;
}

nav.globalMenuSp .ul li {
  list-style-type: none;
  padding: 0;
  width: 45%;
  transition: 0.4s all;
  margin-bottom: 20px;
}

nav.globalMenuSp .ul li:last-child {
  padding-bottom: 0;
}

nav.globalMenuSp .ul li:hover {
  background: #2f80c4;
}

nav.globalMenuSp .ul li a {
  display: block;
  color: #fff;
  padding: 1em 0;
  font-size: 3.5vw;
  padding: 0 4vw;
  padding-bottom: 2vw;
  border-bottom: 1px solid #fff;
}
nav.globalMenuSp .ul li a i {
  margin-right: 2vw;
}

.header_sp_policy {
  text-align: center;
  margin-bottom: 8vw;
}
.header_sp_policy a {
  text-decoration: none;
  color: #fff;
  font-size: 3.5vw;
  padding: 0 4vw;
  padding-bottom: 2vw;
  border-bottom: 1px solid #fff;
}

/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
  opacity: 100;
  visibility: visible;
}

#top_main {
  overflow: hidden;
}
#top_main .top_main {
  width: 100vw;
  height: 100vh;
  position: relative;
}
@media screen and (max-width: 768px) {
  #top_main .top_main {
    height: 100vw;
  }
}
#top_main .top_main .top_main_title {
  position: absolute;
  text-align: center;
  z-index: 10;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-shadow: 1px 1px 2px #333;
}
@media screen and (max-width: 768px) {
  #top_main .top_main .top_main_title {
    width: 80%;
  }
}
#top_main .top_main .top_main_title #top_text01 {
  color: #fff;
  font-size: 3vw;
  animation: fadeIn 3s ease 2s forwards normal;
  opacity: 0;
}
@media screen and (max-width: 768px) {
  #top_main .top_main .top_main_title #top_text01 {
    font-size: 6vw;
  }
}
#top_main .top_main .top_main_title #top_text02 {
  color: #fff;
  padding-top: 1vw;
  font-size: 1.3vw;
  animation: fadeIn 3s ease 4s forwards normal;
  opacity: 0;
}
@media screen and (max-width: 768px) {
  #top_main .top_main .top_main_title #top_text02 {
    font-size: 3vw;
  }
}
#top_main .top_main .slider {
  width: 100%;
  height: 100%;
  margin-inline: auto;
  overflow: hidden; /* 画像がはみ出ないようにする */
  position: relative;
}
#top_main .top_main .slider::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(51, 51, 51, 0.5);
  top: 0;
  left: 0;
}
#top_main .top_main .slider .slick-list {
  width: 100%;
  height: 100%;
}
#top_main .top_main .slider .slick-list .slick-track {
  width: 100%;
  height: 100%;
}
#top_main .top_main .slider .slick-list .slick-track .slick-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15); /* 拡大率 */
  }
}
.add-animation {
  animation: zoomUp 10s linear 0s normal both;
}

#top_news {
  background-color: #f5f7fa;
  overflow: hidden;
}
#top_news .top_news {
  width: 80%;
  margin: auto;
  padding: 2vw 0;
  margin-bottom: 3rem;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #top_news .top_news {
    width: 95%;
  }
}
@media screen and (max-width: 768px) {
  #top_news .top_news {
    width: 95%;
    padding: 8vw 0;
  }
}
#top_news .top_news .top_news_flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4vw;
}
@media screen and (max-width: 768px) {
  #top_news .top_news .top_news_flex {
    margin-bottom: 8vw;
  }
}
#top_news .top_news .top_news_flex .top_headline {
  color: #2f80c4;
}
#top_news .top_news .top_news_flex .top_headline h2 {
  font-family: "Cinzel", serif;
  margin-bottom: 0.5vw;
}
@media screen and (max-width: 768px) {
  #top_news .top_news .top_news_flex .top_headline h2 {
    font-size: 8vw;
    margin-bottom: 1vw;
  }
}
#top_news .top_news .top_news_flex .top_headline p {
  text-align: center;
}
#top_news .top_news .top_news_flex .top_news_btn a {
  text-decoration: none;
  transition: all 0.2s;
}
#top_news .top_news .top_news_flex .top_news_btn a:hover {
  border-bottom: 1px solid #333;
  opacity: 0.8;
}
#top_news .top_news .top_news_flex .top_news_btn a button {
  border: none;
  background-color: rgba(0, 0, 0, 0);
  color: #333;
  letter-spacing: 0.2vw;
  cursor: pointer;
}
#top_news .top_news .top_news_flex .top_news_btn a button i {
  margin-left: 0.25rem;
}
#top_news .top_news .top_news_contents ul {
  list-style: none;
}
#top_news .top_news .top_news_contents ul a {
  text-decoration: none;
}
#top_news .top_news .top_news_contents ul a li {
  border-bottom: 2px dotted #333;
  padding-bottom: 1vw;
}
@media screen and (max-width: 768px) {
  #top_news .top_news .top_news_contents ul a li {
    padding-bottom: 2vw;
  }
}
#top_news .top_news .top_news_contents ul a li .outline {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
@media screen and (max-width: 768px) {
  #top_news .top_news .top_news_contents ul a li .outline {
    flex-flow: column;
    align-items: flex-start;
  }
}
#top_news .top_news .top_news_contents ul a li .outline .date {
  padding: 0.5vw;
  color: #fff;
  background-color: #1e5aa0;
  margin-right: 2vw;
  font-size: 0.8vw;
}
@media screen and (max-width: 768px) {
  #top_news .top_news .top_news_contents ul a li .outline .date {
    margin-right: 0;
    margin-bottom: 2vw;
    font-size: 3vw;
  }
}
#top_news .top_news .top_news_contents ul a li .outline .title {
  color: #333;
  font-size: 1.2vw;
  transition: all 0.4s;
}
@media screen and (max-width: 768px) {
  #top_news .top_news .top_news_contents ul a li .outline .title {
    font-size: 3vw;
  }
}

#top_contents {
  overflow: hidden;
}
#top_contents .top_contents {
  position: relative;
  padding: 5rem 0;
  background-size: cover;
  background-position: center center;
  background-attachment: fixed;
  background-repeat: no-repeat;
}
#top_contents .top_contents:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  z-index: 5;
}
#top_contents .top_contents .contents {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 95%;
  padding: 4vw 0;
  z-index: 10;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #top_contents .top_contents .contents {
    width: 95%;
  }
}
@media screen and (max-width: 768px) {
  #top_contents .top_contents .contents {
    width: 100%;
    flex-flow: column;
  }
}
#top_contents .top_contents .contents .contents_image {
  width: 50%;
  height: 40vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #top_contents .top_contents .contents .contents_image {
    width: 50%;
    height: 50vw;
  }
}
@media screen and (max-width: 768px) {
  #top_contents .top_contents .contents .contents_image {
    width: 100%;
    height: 70vw;
  }
}
#top_contents .top_contents .contents .contents_image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#top_contents .top_contents .contents .contents_writing {
  position: relative;
  width: 42.5vw;
  padding: 2vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #top_contents .top_contents .contents .contents_writing {
    padding: 3vw;
  }
}
@media screen and (max-width: 768px) {
  #top_contents .top_contents .contents .contents_writing {
    width: 100%;
    padding: 3rem 2rem;
  }
}
#top_contents .top_contents .contents .contents_writing .headline {
  position: relative;
  margin-bottom: 2vw;
  padding-bottom: 1rem;
}
@media screen and (max-width: 768px) {
  #top_contents .top_contents .contents .contents_writing .headline {
    margin-bottom: 8vw;
  }
}
#top_contents .top_contents .contents .contents_writing .headline::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 2px;
  background-color: #333;
  bottom: 0%;
  left: 0;
}
@media screen and (max-width: 768px) {
  #top_contents .top_contents .contents .contents_writing .headline::after {
    bottom: -10%;
  }
}
#top_contents .top_contents .contents .contents_writing .headline h2 {
  font-family: "Cinzel", serif;
  color: #333;
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: 0.25rem;
}
@media screen and (max-width: 768px) {
  #top_contents .top_contents .contents .contents_writing .headline h2 {
    width: 100%;
  }
}
#top_contents .top_contents .contents .contents_writing .headline h3 {
  color: #2f80c4;
  padding: 0 1vw;
  font-size: 1.3vw;
}
@media screen and (max-width: 768px) {
  #top_contents .top_contents .contents .contents_writing .headline h3 {
    font-size: 3.5vw;
  }
}
#top_contents .top_contents .contents .contents_writing .text p {
  color: #333;
}

#contents_divide {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  filter: grayscale(80%);
  height: 40vw;
}
@media screen and (max-width: 768px) {
  #contents_divide {
    height: 60vw;
    background-attachment: scroll;
  }
}

#bottom_contents {
  overflow: hidden;
  background: linear-gradient(#2c4a68, #16324f);
}
#bottom_contents .bottom_contents {
  padding: 5rem 0;
}
#bottom_contents .bottom_contents .contents {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 95%;
  padding: 4vw 0;
  z-index: 10;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #bottom_contents .bottom_contents .contents {
    width: 95%;
  }
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents {
    width: 100%;
    flex-flow: column;
  }
}
#bottom_contents .bottom_contents .contents .contents_image {
  width: 50%;
  height: 40vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #bottom_contents .bottom_contents .contents .contents_image {
    width: 50%;
    height: 50vw;
  }
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_image {
    width: 100%;
    height: 70vw;
  }
}
#bottom_contents .bottom_contents .contents .contents_image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#bottom_contents .bottom_contents .contents .contents_writing {
  position: relative;
  width: 42.5vw;
  padding: 2vw;
  background-color: #fff;
  box-shadow: 8px 10px 2px rgba(0, 0, 0, 0.8);
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #bottom_contents .bottom_contents .contents .contents_writing {
    padding: 3vw;
  }
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_writing {
    width: 100%;
    padding: 3rem 2rem;
  }
}
#bottom_contents .bottom_contents .contents .contents_writing .headline {
  position: relative;
  margin-bottom: 2vw;
  padding-bottom: 1rem;
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_writing .headline {
    margin-bottom: 8vw;
  }
}
#bottom_contents .bottom_contents .contents .contents_writing .headline::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 2px;
  background-color: #333;
  bottom: 0%;
  left: 0;
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_writing .headline::after {
    bottom: -10%;
  }
}
#bottom_contents .bottom_contents .contents .contents_writing .headline h2 {
  font-family: "Cinzel", serif;
  color: #333;
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: 0.25rem;
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_writing .headline h2 {
    width: 100%;
  }
}
#bottom_contents .bottom_contents .contents .contents_writing .headline h3 {
  color: #2f80c4;
  padding: 0 1vw;
  font-size: 1.3vw;
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_writing .headline h3 {
    font-size: 3.5vw;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #bottom_contents .bottom_contents .contents .contents_writing .text {
    line-height: 3.5vw;
  }
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_writing .text {
    line-height: 5vw;
  }
}
#bottom_contents .bottom_contents .contents .contents_writing .text p {
  color: #333;
}
#bottom_contents .bottom_contents .contents .contents_writing .top_recruit_btn {
  width: 50%;
  margin-top: 2rem;
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_writing .top_recruit_btn {
    width: 100%;
    margin: auto;
    margin-top: 2rem;
  }
}
#bottom_contents .bottom_contents .contents .contents_writing .top_recruit_btn a {
  text-decoration: none;
}
#bottom_contents .bottom_contents .contents .contents_writing .top_recruit_btn a button {
  width: 100%;
  font-size: 1vw;
  color: #fff;
  background-color: #1e5aa0;
  padding: 0.5vw 1vw;
  border: none;
  border-radius: 10px;
  transition: all 0.4s;
  cursor: pointer;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #bottom_contents .bottom_contents .contents .contents_writing .top_recruit_btn a button {
    font-size: 1.8vw;
    padding: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents .contents_writing .top_recruit_btn a button {
    padding: 2.5vw;
    font-size: 3.5vw;
  }
}
#bottom_contents .bottom_contents .contents .contents_writing .top_recruit_btn a button i {
  margin-left: 1rem;
}
#bottom_contents .bottom_contents .contents .contents_writing .top_recruit_btn a button:hover {
  color: #fff;
  background-color: #333;
}
#bottom_contents .bottom_contents .contents_child03 {
  margin-left: auto;
  flex-flow: row-reverse;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #bottom_contents .bottom_contents .contents_child03 {
    width: 95%;
  }
}
@media screen and (max-width: 768px) {
  #bottom_contents .bottom_contents .contents_child03 {
    width: 100%;
    flex-flow: column;
  }
}
#bottom_contents .bottom_contents .contents_child03 img {
  -o-object-position: center;
     object-position: center;
}

#flex_contents {
  overflow: hidden;
}
#flex_contents .flex_contents {
  margin-bottom: 8vw;
}
@media screen and (max-width: 768px) {
  #flex_contents .flex_contents {
    margin-bottom: 0;
  }
}
#flex_contents .flex_contents ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 20vw;
  list-style: none;
}
@media screen and (max-width: 768px) {
  #flex_contents .flex_contents ul {
    flex-flow: column;
    height: auto;
  }
}
#flex_contents .flex_contents ul li {
  width: 33.3333333333%;
  height: 100%;
  overflow: hidden;
  position: relative;
}
@media screen and (max-width: 768px) {
  #flex_contents .flex_contents ul li {
    width: 100%;
    height: 60vw;
  }
}
#flex_contents .flex_contents ul li .list {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  position: relative;
  transition: all 0.4s;
}
#flex_contents .flex_contents ul li .list:hover {
  transform: scale(1.1);
}
#flex_contents .flex_contents ul li .list .list_bg {
  position: absolute;
  width: 100%;
  height: 100%;
  transition: all 0.4s;
}
#flex_contents .flex_contents ul li .list .list_bg:hover {
  background-color: rgba(0, 0, 0, 0.5);
}
#flex_contents .flex_contents ul li .list .list_bg .wt {
  width: 65%;
  height: 1px;
  background-color: #fff;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(-100%, 0);
  transition: all 0.4s;
}
#flex_contents .flex_contents ul li .list .list_bg .wb {
  width: 30vw;
  height: 1px;
  background-color: #fff;
  position: absolute;
  top: 87%;
  left: 190%;
  transform: translate(-100%, 0);
  transition: all 0.4s;
}
#flex_contents .flex_contents ul li .list .list_bg .ht {
  width: 1px;
  height: 50%;
  background-color: #fff;
  position: absolute;
  bottom: -100%;
  left: 35%;
  transform: translate(0, -100%);
  transition: all 0.4s;
}
#flex_contents .flex_contents ul li .list .list_bg .hb {
  width: 1px;
  height: 90%;
  background-color: #fff;
  position: absolute;
  bottom: 10%;
  left: 91%;
  transform: translate(0, -100%);
  transition: all 0.4s;
}
#flex_contents .flex_contents ul li .list_headline {
  position: absolute;
  top: 60%;
  right: 10%;
  width: 50%;
  pointer-events: none;
  text-align: center;
}
@media screen and (max-width: 768px) {
  #flex_contents .flex_contents ul li .list_headline {
    width: 40%;
  }
}
#flex_contents .flex_contents ul li .list_headline h2 {
  font-family: "Cinzel", serif;
  font-size: 1.3vw;
  color: #1e5aa0;
  background-color: #fff;
  padding: 0.3vw 0;
}
@media screen and (max-width: 768px) {
  #flex_contents .flex_contents ul li .list_headline h2 {
    padding: 1vw 0;
    font-size: 3.3vw;
  }
}
#flex_contents .flex_contents ul li .list_headline p {
  padding: 0.3vw 0;
  color: #fff;
  background-color: #1e5aa0;
  font-size: 0.9vw;
}
@media screen and (max-width: 768px) {
  #flex_contents .flex_contents ul li .list_headline p {
    padding: 1vw 0;
    font-size: 1.6vw;
  }
}

#works .works {
  width: 90%;
  margin: auto;
}
#works .works .works_text {
  margin-bottom: 3rem;
}
#works .works .works_text p {
  color: #fff;
  font-size: 1.2vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #works .works .works_text p {
    font-size: 1.4vw;
  }
}
@media screen and (max-width: 768px) {
  #works .works .works_text p {
    font-size: 3.3vw;
  }
}
#works .works .works_contents ul {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  list-style: none;
  width: 100%;
}
@media screen and (max-width: 768px) {
  #works .works .works_contents ul {
    flex-flow: column;
  }
}
#works .works .works_contents ul li {
  width: 30%;
  color: #fff;
  margin: 2vw 1vw;
  padding: auto;
}
@media screen and (max-width: 768px) {
  #works .works .works_contents ul li {
    width: 100%;
    margin-bottom: 8vw;
  }
}
#works .works .works_contents ul li .thumb {
  width: 100%;
  height: 20vw;
  margin-bottom: 1vw;
  position: relative;
}
@media screen and (max-width: 768px) {
  #works .works .works_contents ul li .thumb {
    height: 50vw;
    margin-bottom: 2vw;
  }
}
#works .works .works_contents ul li .thumb::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: all 0.2s;
  background-color: rgba(0, 0, 0, 0);
}
#works .works .works_contents ul li .thumb:hover::after {
  background-color: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}
#works .works .works_contents ul li .thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#works .works .works_contents ul li .thumb .search {
  position: absolute;
  top: 4%;
  right: 1%;
  z-index: 10;
}
#works .works .works_contents ul li .thumb .search i {
  transition: all 0.4s;
  color: #fff;
  font-size: 2vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #works .works .works_contents ul li .thumb .search i {
    font-size: 3vw;
  }
}
@media screen and (max-width: 768px) {
  #works .works .works_contents ul li .thumb .search i {
    font-size: 6vw;
  }
}
#works .works .works_contents ul li .title h4 {
  font-weight: 600;
  margin-bottom: 0.5vw;
  font-size: 1.2vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #works .works .works_contents ul li .title h4 {
    font-size: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #works .works .works_contents ul li .title h4 {
    font-size: 4vw;
    margin-bottom: 2vw;
  }
}
#works .works .works_contents ul li .text p {
  font-size: 1vw;
}
@media screen and (max-width: 768px) {
  #works .works .works_contents ul li .text p {
    font-size: 3.3vw;
  }
}
#works .works .works_contents p {
  color: #fff;
}
#works .works .works_contents .ba li {
  width: 45%;
  padding: 1vw;
  background-color: rgba(255, 255, 255, 0.1);
}
@media screen and (max-width: 768px) {
  #works .works .works_contents .ba li {
    width: 100%;
    padding: 3vw;
    margin-bottom: 8vw;
  }
}
#works .works .works_contents .ba li .thumb {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 15vw;
  position: relative;
}
@media screen and (max-width: 768px) {
  #works .works .works_contents .ba li .thumb {
    height: 35vw;
  }
}
#works .works .works_contents .ba li .thumb::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 0% !important;
  height: 0% !important;
  transition: all 0.2s;
  background-color: rgba(0, 0, 0, 0);
}
#works .works .works_contents .ba li .thumb:hover::after {
  background-color: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}
#works .works .works_contents .ba li .thumb .img {
  width: 45%;
  height: 100%;
  position: relative;
}
#works .works .works_contents .ba li .thumb .img::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: all 0.2s;
  background-color: rgba(0, 0, 0, 0);
}
#works .works .works_contents .ba li .thumb .img:hover::after {
  background-color: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}
#works .works .works_contents .ba li .thumb .img img {
  width: 100%;
}
#works .works .works_contents .ba li .thumb p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
#works .works .works_contents .ba li .thumb p i {
  color: #2f80c4;
  font-size: 3vw;
}
@media screen and (max-width: 768px) {
  #works .works .works_contents .ba li .thumb p i {
    font-size: 6vw;
  }
}

#modal-container {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 99;
}
#modal-container .modal-image-wrap {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}
#modal-container img {
  max-width: 70vw;
  max-height: 70vh;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
#modal-container .close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 36px;
  height: 36px;
  cursor: pointer;
  z-index: 2;
}
#modal-container .close span {
  position: absolute;
  top: 50%;
  left: 0;
  width: 36px;
  height: 2px;
  background: #fff;
}
#modal-container .close span:first-child {
  transform: translateY(-50%) rotate(45deg);
}
#modal-container .close span:last-child {
  transform: translateY(-50%) rotate(-45deg);
}
@media screen and (max-width: 768px) {
  #modal-container .close {
    top: 6px;
    right: 6px;
    width: 28px;
    height: 28px;
  }
  #modal-container .close span {
    width: 28px;
  }
}

img.popup {
  cursor: pointer;
  width: 100%;
  height: 100%;
}

#service .service {
  width: 100%;
}
#service .service .service_text {
  width: 90%;
  margin: 5rem auto;
}
@media screen and (max-width: 768px) {
  #service .service .service_text {
    width: 95%;
  }
}
#service .service .service_contents {
  margin-bottom: 5rem;
}
#service .service .service_contents ul {
  list-style: none;
}
#service .service .service_contents ul li {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  width: 100%;
  height: 60vh;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #service .service .service_contents ul li {
    height: 90vh;
  }
}
@media screen and (max-width: 768px) {
  #service .service .service_contents ul li {
    flex-flow: column;
    background-attachment: scroll;
    width: 100%;
    height: auto;
    padding: 5rem 0;
  }
}
#service .service .service_contents ul li:nth-child(odd):before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(90deg, rgb(0, 0, 0) 30%, rgba(0, 0, 0, 0) 100%);
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 768px) {
  #service .service .service_contents ul li:nth-child(odd):before {
    background: rgba(0, 0, 0, 0.4);
  }
}
#service .service .service_contents ul li:nth-child(even):before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(270deg, rgb(0, 0, 0) 30%, rgba(0, 0, 0, 0) 100%);
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 768px) {
  #service .service .service_contents ul li:nth-child(even):before {
    background: rgba(0, 0, 0, 0.4);
  }
}
#service .service .service_contents ul li:nth-child(even) {
  flex-flow: row-reverse;
}
@media screen and (max-width: 768px) {
  #service .service .service_contents ul li:nth-child(even) {
    flex-flow: column;
  }
}
#service .service .service_contents ul li .list_writing {
  width: 50%;
  padding: 3vw;
  color: #fff;
}
@media screen and (max-width: 768px) {
  #service .service .service_contents ul li .list_writing {
    width: 95%;
    margin: auto;
    padding: 3vw 1vw;
    margin-bottom: 1rem;
  }
}
#service .service .service_contents ul li .list_writing h2 {
  font-size: 2vw;
  margin-bottom: 1rem;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #service .service .service_contents ul li .list_writing h2 {
    font-size: 3vw;
  }
}
@media screen and (max-width: 768px) {
  #service .service .service_contents ul li .list_writing h2 {
    font-size: 6vw;
  }
}

#company .company {
  padding: 3rem 0;
}
#company .company .company_contents {
  width: 80%;
  margin: auto;
  margin-bottom: 5rem;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #company .company .company_contents {
    width: 90%;
  }
}
@media screen and (max-width: 768px) {
  #company .company .company_contents {
    width: 95%;
    margin-bottom: 2rem;
  }
}
#company .company .company_contents table {
  width: 100%;
  margin: auto;
  margin-bottom: 2vw;
  border-collapse: collapse;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #company .company .company_contents table {
    width: 100%;
    margin-bottom: 3vw;
  }
}
@media screen and (max-width: 768px) {
  #company .company .company_contents table {
    width: 100%;
    margin-bottom: 6vw;
  }
}
@media screen and (max-width: 768px) {
  #company .company .company_contents table tr {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-flow: column;
    border-bottom: 1px solid #fff;
  }
}
#company .company .company_contents table tr th, #company .company .company_contents table tr td {
  padding: 1.5vw;
  color: #fff;
  border-bottom: 1px solid #fff;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #company .company .company_contents table tr th, #company .company .company_contents table tr td {
    padding: 3vw;
    font-size: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #company .company .company_contents table tr th, #company .company .company_contents table tr td {
    padding: 8vw 4vw;
    font-size: 3.3vw;
    text-align: start;
    border-bottom: none;
  }
}
#company .company .company_contents table tr th {
  width: 30%;
}
@media screen and (max-width: 768px) {
  #company .company .company_contents table tr th {
    width: 100%;
    padding-bottom: 1.5vw;
  }
}
#company .company .company_contents table tr td {
  width: 70%;
}
@media screen and (max-width: 768px) {
  #company .company .company_contents table tr td {
    width: 100%;
    padding-top: 1.5vw;
  }
}
#company .company .company_contents .map {
  width: 100%;
}
#company .company .company_contents .map iframe {
  width: 100%;
}

#sales .sales {
  width: 80%;
  margin: auto;
  margin-bottom: 8vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #sales .sales {
    width: 90%;
  }
}
@media screen and (max-width: 768px) {
  #sales .sales {
    width: 95%;
  }
}
@media screen and (max-width: 768px) {
  #sales .sales .lower_headline {
    margin-bottom: 6vw;
  }
}
#sales .sales ul {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  #sales .sales ul {
    flex-flow: column;
  }
}
#sales .sales ul li {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 45%;
  margin-bottom: 2vw;
  padding-bottom: 1vw;
  border-bottom: 1px solid #fff;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #sales .sales ul li {
    width: 48%;
  }
}
@media screen and (max-width: 768px) {
  #sales .sales ul li {
    width: 100%;
  }
}
#sales .sales ul li .sales_name {
  width: 40%;
}
#sales .sales ul li .sales_name h4 {
  color: #fff;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #sales .sales ul li .sales_name h4 {
    font-size: 2vw;
  }
}
@media screen and (max-width: 768px) {
  #sales .sales ul li .sales_name h4 {
    font-size: 3.3vw;
  }
}
#sales .sales ul li .sales_contents {
  width: 60%;
}
#sales .sales ul li .sales_contents p {
  color: #fff;
  margin-bottom: 0.5vw;
}
#sales .sales ul li .sales_contents .tel {
  color: #2f80c4;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #sales .sales ul li .sales_contents .tel {
    font-size: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #sales .sales ul li .sales_contents .tel {
    font-size: 3.3vw;
  }
}
#sales .sales ul li .sales_contents .tel i {
  margin-right: 1vw;
}

#philosophy .philosophy {
  width: 80%;
  margin: auto;
  margin-bottom: 8vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #philosophy .philosophy {
    width: 90%;
  }
}
@media screen and (max-width: 768px) {
  #philosophy .philosophy {
    width: 95%;
  }
}
@media screen and (max-width: 768px) {
  #philosophy .philosophy .lower_headline {
    margin-bottom: 6vw;
  }
}
#philosophy .philosophy table {
  width: 100%;
}
#philosophy .philosophy table tbody {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
}
@media screen and (max-width: 768px) {
  #philosophy .philosophy table tbody {
    flex-flow: column;
  }
}
#philosophy .philosophy table tr {
  width: 45%;
  margin-bottom: 2vw;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 1px solid #fff;
}
@media screen and (max-width: 768px) {
  #philosophy .philosophy table tr {
    width: 100%;
    margin-bottom: 6vw;
  }
}
#philosophy .philosophy table tr th, #philosophy .philosophy table tr td {
  color: #fff;
  padding: 0.5vw;
  margin-bottom: 1vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #philosophy .philosophy table tr th, #philosophy .philosophy table tr td {
    font-size: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #philosophy .philosophy table tr th, #philosophy .philosophy table tr td {
    font-size: 3.3vw;
  }
}
#philosophy .philosophy table tr th {
  width: 40%;
}
#philosophy .philosophy table tr td {
  width: 60%;
}

#recruit {
  margin-bottom: 5rem;
}
#recruit .recruit .recruit_text {
  margin-bottom: 8vw;
}
#recruit .recruit .recruit_text p {
  font-size: 1.2vw;
}
#recruit .recruit .recruit_contents {
  width: 70%;
  margin: auto;
}
@media screen and (max-width: 768px) {
  #recruit .recruit .recruit_contents {
    width: 90%;
  }
}
#recruit .recruit .recruit_contents .recruit_content {
  color: #333;
  background-color: #f1f1f1;
  padding: 3rem;
  margin-bottom: 5rem;
}
@media screen and (max-width: 768px) {
  #recruit .recruit .recruit_contents .recruit_content {
    width: 100%;
    padding: 3rem 1rem;
    margin-bottom: 3rem;
  }
}
#recruit .recruit .recruit_contents .recruit_content h2 {
  color: #333;
  font-size: 1.8vw;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  #recruit .recruit .recruit_contents .recruit_content h2 {
    font-size: 4.5vw;
  }
}
#recruit .recruit .recruit_contents .recruit_content table {
  width: 100%;
  margin: auto;
  margin-bottom: 2vw;
  border-collapse: collapse;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit .recruit .recruit_contents .recruit_content table {
    width: 100%;
    margin-bottom: 3vw;
  }
}
@media screen and (max-width: 768px) {
  #recruit .recruit .recruit_contents .recruit_content table {
    width: 100%;
    margin-bottom: 6vw;
  }
}
@media screen and (max-width: 768px) {
  #recruit .recruit .recruit_contents .recruit_content table tr {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-flow: column;
    border-bottom: 1px solid #333;
  }
}
#recruit .recruit .recruit_contents .recruit_content table tr th, #recruit .recruit .recruit_contents .recruit_content table tr td {
  padding: 1.5vw;
  color: #333;
  border-bottom: 1px solid #333;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit .recruit .recruit_contents .recruit_content table tr th, #recruit .recruit .recruit_contents .recruit_content table tr td {
    padding: 3vw;
    font-size: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #recruit .recruit .recruit_contents .recruit_content table tr th, #recruit .recruit .recruit_contents .recruit_content table tr td {
    padding: 8vw 4vw;
    font-size: 3.3vw;
    text-align: start;
    border-bottom: none;
  }
}
#recruit .recruit .recruit_contents .recruit_content table tr th {
  width: 30%;
}
@media screen and (max-width: 768px) {
  #recruit .recruit .recruit_contents .recruit_content table tr th {
    width: 100%;
    padding-bottom: 1.5vw;
  }
}
#recruit .recruit .recruit_contents .recruit_content table tr td {
  width: 70%;
}
@media screen and (max-width: 768px) {
  #recruit .recruit .recruit_contents .recruit_content table tr td {
    width: 100%;
    padding-top: 1.5vw;
  }
}
#recruit .recruit_btn {
  width: 70%;
  margin: auto;
}
@media screen and (max-width: 768px) {
  #recruit .recruit_btn {
    width: 90%;
  }
}
#recruit .recruit_btn a {
  text-decoration: none;
}
#recruit .recruit_btn a button {
  width: 100%;
  padding: 1.5vw;
  transition: all 0.4s;
  border: none;
  color: #212121;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  #recruit .recruit_btn a button {
    padding: 3vw 2vw;
  }
}
#recruit .recruit_btn a button:hover {
  color: #fff;
  background-color: #1e5aa0;
}

#recruit_form .recruit_form {
  width: 80%;
  margin: auto;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form {
    width: 90%;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form {
    width: 95%;
  }
}
#recruit_form .recruit_form .recruit_form_text {
  margin-bottom: 8vw;
}
#recruit_form .recruit_form .recruit_form_text p {
  color: #fff;
  line-height: 2vw;
}
#recruit_form .recruit_form form {
  width: 100%;
  margin-bottom: 8vw;
}
#recruit_form .recruit_form form table {
  width: 100%;
  margin-bottom: 40px;
  border-collapse: collapse;
  border-top: 1px solid #fff;
}
#recruit_form .recruit_form form table tr {
  border-bottom: 1px solid #fff;
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr {
    display: flex;
    flex-flow: column;
  }
}
#recruit_form .recruit_form form table tr th, #recruit_form .recruit_form form table tr td {
  font-size: 1vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr th, #recruit_form .recruit_form form table tr td {
    font-size: 1.4vw;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr th, #recruit_form .recruit_form form table tr td {
    font-size: 3.3vw;
  }
}
#recruit_form .recruit_form form table tr th {
  padding: 40px 0;
  width: 35%;
  text-align: end;
  padding-right: 80px;
  color: #fff;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr th {
    width: 45%;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr th {
    width: 100%;
    border-bottom: none;
    text-align: start;
    padding: 10px 0;
    padding-top: 20px;
    padding-left: 0px;
  }
}
#recruit_form .recruit_form form table tr th span.red {
  padding: 10px;
  background-color: red;
  color: #fff;
  margin-left: 20px;
}
#recruit_form .recruit_form form table tr th span.blue {
  padding: 10px;
  background-color: blue;
  color: #fff;
  margin-left: 20px;
}
#recruit_form .recruit_form form table tr td {
  padding: 40px 0;
  width: 65%;
  padding-right: 40px;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr td {
    width: 55%;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr td {
    width: 100%;
    padding: 10px 0;
    padding-bottom: 20px;
    padding-right: 0;
  }
}
#recruit_form .recruit_form form table tr td .mushroom input {
  width: 1vw;
  height: 1vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr td .mushroom input {
    width: 2vw;
    height: 2vw;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr td .mushroom input {
    width: 4vw;
    height: 4vw;
  }
}
#recruit_form .recruit_form form table tr td .number {
  margin-top: 2vw;
}
#recruit_form .recruit_form form table tr td input {
  width: 80%;
  height: 50px;
  padding-left: 5px;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr td input {
    width: 90%;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr td input {
    width: 100%;
  }
}
#recruit_form .recruit_form form table tr td textarea {
  width: 80%;
  height: 120px;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr td textarea {
    width: 90%;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr td textarea {
    width: 100%;
  }
}
#recruit_form .recruit_form form table tr:first-child td {
  display: flex;
  color: #fff;
  width: 100%;
}
#recruit_form .recruit_form form table tr:first-child td .mwform-radio-field {
  width: 35%;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr:first-child td .mwform-radio-field {
    width: 45%;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr:first-child td .mwform-radio-field {
    width: 45%;
  }
}
#recruit_form .recruit_form form table tr:first-child td .mwform-radio-field label {
  display: flex;
  height: 20px;
}
#recruit_form .recruit_form form table tr:first-child td .mwform-radio-field input {
  width: 10%;
  height: 100%;
}
#recruit_form .recruit_form form table tr:first-child td .mwform-radio-field .mwform-radio-field-text {
  display: inline-block;
  height: 100%;
}
#recruit_form .recruit_form form table tr:last-child td {
  display: flex;
  color: #fff;
  width: 100%;
}
#recruit_form .recruit_form form table tr:last-child td .mwform-radio-field {
  width: 35%;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr:last-child td .mwform-radio-field {
    width: 45%;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr:last-child td .mwform-radio-field {
    width: 45%;
  }
}
#recruit_form .recruit_form form table tr:last-child td .mwform-radio-field label {
  display: flex;
  height: 20px;
}
#recruit_form .recruit_form form table tr:last-child td .mwform-radio-field input {
  width: 10%;
  height: 100%;
}
#recruit_form .recruit_form form table tr:last-child td .mwform-radio-field .mwform-radio-field-text {
  display: inline-block;
  height: 100%;
}
#recruit_form .recruit_form form table tr:nth-child(4) td input {
  width: 20% !important;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #recruit_form .recruit_form form table tr:nth-child(4) td input {
    width: 25% !important;
  }
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form table tr:nth-child(4) td input {
    width: 29% !important;
  }
}
#recruit_form .recruit_form form .agree {
  text-align: center;
  margin: 20px 0;
  color: #fff;
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form .agree {
    margin: 10px 0;
  }
}
#recruit_form .recruit_form form .submit {
  text-align: center;
}
#recruit_form .recruit_form form .submit input {
  padding: 20px 180px;
  font-size: 18px;
  border: none;
  color: #212121;
  background-color: #fff;
  transition: all 0.4s;
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form .submit input {
    padding: 10px 90px;
  }
}
#recruit_form .recruit_form form .submit input:hover {
  color: #fff;
  background-color: #1e5aa0;
}
#recruit_form .recruit_form form .submit input[name=submitBack] {
  padding: 20px 90px;
  margin-right: 40px;
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form .submit input[name=submitBack] {
    padding: 10px 45px;
    margin-right: 10px;
    margin-bottom: 20px;
    font-size: 12.5px;
  }
}
#recruit_form .recruit_form form .submit input[name=confirm] {
  padding: 20px 90px;
}
@media screen and (max-width: 768px) {
  #recruit_form .recruit_form form .submit input[name=confirm] {
    padding: 10px 45px;
    margin-bottom: 20px;
    font-size: 12.5px;
  }
}

#news .news .news_contents {
  width: 80%;
  margin: auto;
}
@media screen and (max-width: 768px) {
  #news .news .news_contents {
    width: 95%;
  }
}
#news .news .news_contents h4 {
  color: #fff;
  text-align: center;
  margin-bottom: 4vw;
}
@media screen and (max-width: 768px) {
  #news .news .news_contents h4 {
    text-align: left;
    margin-bottom: 8vw;
  }
}
#news .news .news_contents ul {
  width: 80%;
  margin: auto;
  list-style: none;
}
@media screen and (max-width: 768px) {
  #news .news .news_contents ul {
    width: 100%;
  }
}
#news .news .news_contents ul a {
  display: block;
  text-decoration: none;
  color: #fff;
  margin-bottom: 2vw;
}
#news .news .news_contents ul a li {
  display: flex;
  justify-content: start;
  align-items: flex-start;
  border-bottom: 1px solid #fff;
  padding-bottom: 1rem;
}
#news .news .news_contents ul a .date {
  font-size: 1vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news .news .news_contents ul a .date {
    font-size: 1.2vw;
  }
}
@media screen and (max-width: 768px) {
  #news .news .news_contents ul a .date {
    font-size: 2.5vw;
    width: 20%;
  }
}
#news .news .news_contents ul a .outline {
  margin-left: 3vw;
}
@media screen and (max-width: 768px) {
  #news .news .news_contents ul a .outline {
    width: 75%;
  }
}
#news .news .news_contents ul a .outline .sp_title {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 1vw;
  color: #fff;
}
#news .news .news_contents ul a .outline .sp_title .title {
  margin-right: 1vw;
  font-size: 1.2vw;
  font-weight: 600;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news .news .news_contents ul a .outline .sp_title .title {
    font-size: 1.8vw;
  }
}
@media screen and (max-width: 768px) {
  #news .news .news_contents ul a .outline .sp_title .title {
    font-size: 3.3vw;
  }
}
@media screen and (max-width: 768px) {
  #news .news .news_contents ul a .outline .sp_title i {
    font-size: 3vw;
  }
}
#news .news .news_contents ul a .outline .descn p {
  font-size: 1vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news .news .news_contents ul a .outline .descn p {
    font-size: 1.2vw;
  }
}
@media screen and (max-width: 768px) {
  #news .news .news_contents ul a .outline .descn p {
    font-size: 2.5vw;
  }
}

.navigation {
  margin-top: 4vw;
  margin-bottom: 2vw;
  text-align: center;
}
.navigation .current {
  border: none;
  color: #fff;
}
.navigation a {
  border: none;
  color: #fff;
}

.wp-pagenavi a, .wp-pagenavi span {
  border: none !important;
  margin-left: 20px !important;
}

#news_single .news_single {
  margin-bottom: 4vw;
}
#news_single .news_single .news_contents {
  width: 80%;
  margin: auto;
}
@media screen and (max-width: 768px) {
  #news_single .news_single .news_contents {
    width: 95%;
  }
}
#news_single .news_single .news_contents h4 {
  color: #fff;
  margin-bottom: 4vw;
}
#news_single .news_single .news_contents ul {
  width: 80%;
  margin: auto;
  list-style: none;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news_single .news_single .news_contents ul {
    width: 80%;
  }
}
@media screen and (max-width: 768px) {
  #news_single .news_single .news_contents ul {
    width: 100%;
  }
}
#news_single .news_single .news_contents ul li {
  display: block;
  text-decoration: none;
  color: #fff;
  margin-bottom: 2vw;
}
#news_single .news_single .news_contents ul li .outline .date {
  font-size: 0.8vw;
  margin-bottom: 1vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news_single .news_single .news_contents ul li .outline .date {
    font-size: 1.2vw;
    margin-bottom: 1.4vw;
  }
}
@media screen and (max-width: 768px) {
  #news_single .news_single .news_contents ul li .outline .date {
    font-size: 2.5vw;
    margin-bottom: 2.5vw;
  }
}
#news_single .news_single .news_contents ul li .outline .sp_title {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 1.5vw;
  color: #fff;
  border-bottom: 1px solid #fff;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news_single .news_single .news_contents ul li .outline .sp_title {
    margin-bottom: 2vw;
  }
}
@media screen and (max-width: 768px) {
  #news_single .news_single .news_contents ul li .outline .sp_title {
    margin-bottom: 4vw;
  }
}
#news_single .news_single .news_contents ul li .outline .sp_title .title {
  margin-right: 1vw;
  font-size: 1.4vw;
  font-weight: 600;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news_single .news_single .news_contents ul li .outline .sp_title .title {
    font-size: 1.8vw;
  }
}
@media screen and (max-width: 768px) {
  #news_single .news_single .news_contents ul li .outline .sp_title .title {
    font-size: 3.3vw;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news_single .news_single .news_contents ul li .outline .sp_title i {
    font-size: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #news_single .news_single .news_contents ul li .outline .sp_title i {
    font-size: 3vw;
  }
}
#news_single .news_single .news_contents ul li .outline .descn p {
  font-size: 1vw;
  line-height: 2vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #news_single .news_single .news_contents ul li .outline .descn p {
    font-size: 1.2vw;
    line-height: 2.5vw;
  }
}
@media screen and (max-width: 768px) {
  #news_single .news_single .news_contents ul li .outline .descn p {
    font-size: 2.5vw;
    line-height: 4vw;
  }
}

#contact .contact {
  width: 80%;
  margin: auto;
  margin-bottom: 5rem;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #contact .contact {
    width: 90%;
  }
}
@media screen and (max-width: 768px) {
  #contact .contact {
    width: 95%;
  }
}
#contact .contact .contact_text {
  margin-bottom: 3rem;
}
#contact .contact .contact_text p {
  font-size: 1.2vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #contact .contact .contact_text p {
    font-size: 1.4vw;
  }
}
@media screen and (max-width: 768px) {
  #contact .contact .contact_text p {
    font-size: 3.3vw;
  }
}
#contact .contact .form {
  width: 100%;
  margin-bottom: 8vw;
}
#contact .contact .form .wpcf7 {
  color: #333;
  background-color: #f0f0f0;
  padding: 5rem;
  border-radius: 10px;
  margin: auto;
}
@media screen and (max-width: 768px) {
  #contact .contact .form .wpcf7 {
    padding: 5rem 1rem;
  }
}
#contact .contact .form .wpcf7 label {
  display: block;
  margin-bottom: 2rem;
  font-size: 100%;
  font-weight: 600;
  color: #333333;
}
#contact .contact .form .wpcf7 label .red {
  background-color: #ff0000;
  color: #fff;
  padding: 2px 5px;
  border-radius: 3px;
  margin-left: 10px;
  font-size: 80%;
}
#contact .contact .form .wpcf7 label .blue {
  background-color: #2986ff;
  color: #fff;
  padding: 2px 5px;
  border-radius: 3px;
  margin-left: 10px;
  font-size: 80%;
}
#contact .contact .form .wpcf7 label .wpcf7-form-control-wrap input {
  width: 100%;
  margin-top: 1rem;
  padding: 1rem;
}
#contact .contact .form .wpcf7 label textarea {
  width: 100%;
  padding: 1rem;
  border: 1px solid #cccccc;
  border-radius: 5px;
  margin-top: 1rem;
  margin-bottom: 1rem;
  background-color: #ffffff;
  height: 250px;
  resize: vertical;
}
#contact .contact .form .wpcf7 label.policy {
  text-align: center;
}
#contact .contact .form .wpcf7 label.policy input {
  width: auto;
}
#contact .contact .form .wpcf7 .wpcf7 input[type=url], #contact .contact .form .wpcf7 .wpcf7 input[type=email], #contact .contact .form .wpcf7 .wpcf7 input[type=tel] {
  padding: 2rem;
  margin-bottom: 2rem;
  height: 20px;
}
#contact .contact .form .wpcf7 input[type=submit] {
  color: #fff;
  background-color: #1e5aa0;
  cursor: pointer;
  transition: background-color 0.4s ease;
  border: none;
  width: 80%;
  margin: auto 10%;
  font-size: 120%;
  font-weight: 600;
  padding: 1rem;
  border-radius: 10px;
}
#contact .contact .form .wpcf7 input[type=submit]:hover {
  opacity: 0.7;
}
#contact .contact .form .wpcf7 .wpcf7-response-output {
  font-size: 160%;
  text-align: center;
  padding: 1rem;
  color: #333;
  font-weight: 600;
}
#contact .contact .form .wpcf7 .wpcf7-form-control {
  padding: 0.5rem 1rem;
  margin-bottom: 2rem;
}
#contact .contact .form .thanks {
  text-align: center;
  font-size: 140%;
}
@media screen and (max-width: 768px) {
  #contact .contact .form .thanks {
    text-align: left;
    font-size: 100%;
  }
}

.policy_contents {
  width: 80%;
  margin: auto;
  padding: 3rem 0;
}
@media screen and (max-width: 768px) {
  .policy_contents {
    width: 90%;
  }
}
.policy_contents h2 {
  font-size: 1.4vw;
  margin-bottom: 1rem;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .policy_contents h2 {
    font-size: 1.8vw;
  }
}
@media screen and (max-width: 768px) {
  .policy_contents h2 {
    font-size: 4vw;
  }
}
.policy_contents p {
  margin-bottom: 3rem;
}

#footer_contact {
  position: relative;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
#footer_contact:before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 1;
}
#footer_contact .footer_contact_contents {
  position: relative;
  z-index: 10;
  padding: 3rem 1rem;
}
#footer_contact .footer_contact_contents .headline {
  color: #2f80c4;
  text-align: center;
  margin-bottom: 3rem;
}
#footer_contact .footer_contact_contents .headline h2 {
  font-family: "Cinzel", serif;
}
#footer_contact .footer_contact_contents .headline p {
  text-align: center;
}
#footer_contact .footer_contact_contents .footer_contact_content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 80%;
  margin: auto;
  margin-bottom: 4vw;
}
@media screen and (max-width: 768px) {
  #footer_contact .footer_contact_contents .footer_contact_content {
    flex-flow: column;
  }
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form {
  width: 40%;
}
@media screen and (max-width: 768px) {
  #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form {
    width: 90%;
  }
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel a, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form a {
  text-decoration: none;
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel a button, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form a button {
  width: 100%;
  padding: 1vw;
  border: none;
  letter-spacing: 0.2vw;
  font-size: 1.2vw;
  transition: all 0.4s;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel a button, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form a button {
    font-size: 1.8vw;
    padding: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel a button, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form a button {
    padding: 2.5vw;
    font-size: 4vw;
  }
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel a button i, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form a button i {
  margin-right: 1vw;
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel button, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button {
  width: 100%;
  font-family: "Cinzel", serif;
  font-size: 1.2vw;
  font-weight: 600;
  padding: 1vw;
  line-height: 1;
  border: none;
  transition: all 0.4s;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel button, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button {
    font-size: 1.8vw;
    padding: 1.6vw;
  }
}
@media screen and (max-width: 768px) {
  #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel button, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button {
    padding: 2.5vw;
    font-size: 3.5vw;
  }
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_tel button i, #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button i {
  margin-right: 1vw;
}
@media screen and (max-width: 768px) {
  #footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form {
    margin-top: 4vw;
  }
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button {
  color: #1e5aa0;
  background-color: #fff;
  transition: all 0.4s;
  cursor: pointer;
}
#footer_contact .footer_contact_contents .footer_contact_content .footer_contact_form button:hover {
  color: #fff;
  background-color: #1e5aa0;
}
#footer_contact .footer_contact_contents .text {
  text-align: center;
  color: #fff;
  margin-bottom: 0.5vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  #footer_contact .footer_contact_contents .text {
    margin-bottom: 1.5vw;
  }
}
@media screen and (max-width: 768px) {
  #footer_contact .footer_contact_contents .text {
    font-size: 90%;
    margin-bottom: 2.5vw;
  }
}

footer {
  background-color: rgba(0, 0, 0, 0.7);
}
@media screen and (max-width: 768px) {
  footer {
    height: 70vw;
  }
}
footer .footer_menu {
  padding-top: 4vw;
}
@media screen and (max-width: 768px) {
  footer .footer_menu {
    padding-top: 8vw;
  }
}
footer .footer_menu ul {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 80%;
  margin: auto;
  margin-bottom: 2vw;
  list-style: none;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  footer .footer_menu ul {
    margin-bottom: 3vw;
  }
}
@media screen and (max-width: 768px) {
  footer .footer_menu ul {
    width: 95%;
    flex-wrap: wrap;
  }
}
@media screen and (max-width: 768px) {
  footer .footer_menu ul li {
    margin-bottom: 4vw;
  }
}
footer .footer_menu ul li a {
  font-size: 1vw;
  color: #fff;
  text-decoration: none;
  padding: 0 2vw;
  transition: all 0.4s;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  footer .footer_menu ul li a {
    font-size: 1.2vw;
  }
}
@media screen and (max-width: 768px) {
  footer .footer_menu ul li a {
    font-size: 3vw;
    padding: 0 4vw;
  }
}
footer .footer_menu ul li a:hover {
  color: #2f80c4;
}
footer .footer_menu ul li .new_twitter:before {
  content: "𝕏" !important;
  font-family: sans-serif !important;
  font-weight: bold;
}
footer .copyright {
  text-align: center;
  padding-bottom: 2vw;
}
@media screen and (max-width: 768px) {
  footer .copyright {
    padding-bottom: 4vw;
    padding-top: 8vw;
  }
}
footer .copyright p {
  color: #fff;
  font-size: 0.8vw;
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  footer .copyright p {
    font-size: 1vw;
  }
}
@media screen and (max-width: 768px) {
  footer .copyright p {
    font-size: 2.5vw;
  }
}/*# sourceMappingURL=style.css.map */
/* ===== 誠央総建：追加要素（お問い合わせ電話ボックス・works注記） ===== */
#contact .contact .contact_tel_box{
  display:flex;
  justify-content:center;
  gap:3vw;
  flex-wrap:wrap;
  margin-bottom:3rem;
}
#contact .contact .contact_tel_box .box{
  border:1px solid rgba(255,255,255,.35);
  padding:1.5rem 2.5rem;
  text-align:center;
  min-width:280px;
}
#contact .contact .contact_tel_box .label{
  color:#2f80c4;
  letter-spacing:.1em;
  margin-bottom:.5rem;
  font-size:1vw;
}
#contact .contact .contact_tel_box .num{
  color:#fff;
  font-size:1.7vw;
  font-weight:600;
}
#contact .contact .contact_tel_box .num a{ color:#fff; }
#contact .contact .contact_tel_box .num i{ color:#2f80c4; margin-right:.6rem; }
#contact .contact .contact_tel_box .note{
  color:rgba(255,255,255,.7);
  font-size:.85vw;
  margin-top:.4rem;
}
#works .works .works_contents .works_note{
  text-align:center;
  color:rgba(255,255,255,.7);
  font-size:.9vw;
  margin-top:2.5rem;
}
@media screen and (min-width:769px) and (max-width:1024px){
  #contact .contact .contact_tel_box .label{ font-size:1.6vw; }
  #contact .contact .contact_tel_box .num{ font-size:2.4vw; }
  #contact .contact .contact_tel_box .note{ font-size:1.4vw; }
  #works .works .works_contents .works_note{ font-size:1.6vw; }
}
@media screen and (max-width:768px){
  #contact .contact .contact_tel_box{ flex-flow:column; align-items:center; gap:4vw; }
  #contact .contact .contact_tel_box .box{ width:90%; min-width:auto; padding:5vw; }
  #contact .contact .contact_tel_box .label{ font-size:3vw; }
  #contact .contact .contact_tel_box .num{ font-size:5vw; }
  #contact .contact .contact_tel_box .note{ font-size:3vw; }
  #works .works .works_contents .works_note{ font-size:3vw; }
}

/* =========================================================================
   誠央総建：ライトテーマ上書き（モックアップ準拠・白基調）
   ベーステンプレΒ（ダーク基調）をモックの白基調プレミアム系へ変換。
   style.css 末尾に追記＝最後のカスケードで基のダーク指定を上書きする。
   ========================================================================= */
/* 全体：白背景＋ダークテキスト */
body{ background-color:#fff; color:#333; }

/* 下層ヒーロー：見出しを白・中央寄せ */
#lower .lower_contents{ top:62%; left:50%; transform:translate(-50%,-50%); text-align:center; width:90%; }
#lower .lower_contents .headline{ color:#fff; text-shadow:1px 1px 6px rgba(0,0,0,.5); }
#lower .lower_contents p{ color:#2f80c4; }

/* セクション見出し（.lower_headline）：ネイビー文字＋ライトブルー地 */
.lower_headline{ color:#16324f; background-color:rgba(30,90,160,.07); }

/* 事業内容：白カード化＋オーバーレイを軽く */
#service .service .service_contents ul li{ min-height:340px; height:auto; padding:44px 0; }
#service .service .service_contents ul li:nth-child(odd)::before,
#service .service .service_contents ul li:nth-child(even)::before{ background:rgba(12,28,46,.4); }
#service .service .service_contents ul li .list_writing{
  width:auto; max-width:560px; margin:0 6%;
  background:rgba(255,255,255,.95); color:#333;
  padding:34px 38px; box-shadow:0 12px 34px rgba(0,0,0,.25);
}
#service .service .service_contents ul li .list_writing h2{
  color:#16324f; border-bottom:1px solid #1e5aa0; padding-bottom:12px;
}
#service .service .service_contents ul li .list_writing p{ color:#333; }

/* 会社概要テーブル：ダーク文字＋ライトブルー見出し */
#company .company .company_contents table tr th,
#company .company .company_contents table tr td{ color:#333; border-bottom:1px solid #dfe6ee; }
#company .company .company_contents table tr th{ background:rgba(30,90,160,.08); color:#16324f; }

/* 営業所：ネイビー名札＋ダーク本文 */
#sales{ background:#f5f7fa; }
#sales .sales ul li{ border-bottom:1px solid #dfe6ee; }
#sales .sales ul li .sales_name{ background:#16324f; padding:1.2rem; }
#sales .sales ul li .sales_name h4{ color:#fff; }
#sales .sales ul li .sales_contents p{ color:#333; }
#sales .sales ul li .sales_contents .tel{ color:#16324f; }

/* 採用：応募ボタンをブルー */
#recruit .recruit .recruit_btn a button{ background-color:#1e5aa0; color:#fff; }
#recruit .recruit .recruit_btn a button:hover{ background-color:#16324f; color:#fff; }

/* 施工事例：白カード＋ダーク文字 */
#works .works .works_text p{ color:#333; }
#works .works .works_contents ul li{ color:#333; background:#fff; box-shadow:0 6px 24px rgba(22,50,79,.12); }
#works .works .works_contents ul li .thumb{ margin-bottom:0; }
#works .works .works_contents ul li .outline{ padding:16px 18px 20px; }
#works .works .works_contents ul li .title h4{ color:#16324f; }
#works .works .works_contents .works_note{ color:#777; }

/* お問い合わせ 電話ボックス：ライト用に反転 */
#contact .contact .contact_tel_box .box{ border:1px solid #dfe6ee; }
#contact .contact .contact_tel_box .label{ color:#1e5aa0; }
#contact .contact .contact_tel_box .num{ color:#16324f; }
#contact .contact .contact_tel_box .num a{ color:#16324f; }
#contact .contact .contact_tel_box .num i{ color:#1e5aa0; }
#contact .contact .contact_tel_box .note{ color:#777; }

/* プライバシーポリシー：ダーク文字＋ネイビー見出し */
.policy_contents{ color:#333; }
.policy_contents h2{ color:#16324f; }

/* SP：下層ヒーローの余白（上部バー分） */
@media screen and (max-width:768px){
  #lower .lower{ margin-top:60px; }
}

/* ロゴ／ローディングロゴのサイズ調整（大きすぎ対策） */
header #header_pc .header_logo{ width:auto; padding-top:1.2vw; }
header #header_pc .header_logo img{ width:auto; max-width:150px; height:auto; }
header #header_sp .header_sp .header_logo{ width:auto; }
header #header_sp .header_sp .header_logo img{ width:auto; max-height:40px; }
.loading .loadinglogo{ width:auto; margin:auto; }
.loading .loadinglogo img{ width:auto; max-width:170px; height:auto; }
@media screen and (max-width:768px){
  .loading .loadinglogo img{ max-width:130px; }
}

/* ============ TOP redesign (appended, mirrors _front-page.scss) ============ */
/* ============================================================
   誠央総建 TOP リデザイン（エンジニアリング図面シート系）
   ※TOPは新規オリジナルレイアウト。フォント・色はTOP要素にのみ
   　明示指定し、下層（テンプレΒ）へ波及させない。
   ============================================================ */

/* ---------- 共通パーツ ---------- */
.grid-paper{
  background-color:#fbfcfe;
  background-image:linear-gradient(rgba(28,95,174,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(28,95,174,.05) 1px,transparent 1px);
  background-size:48px 48px;
}
.sec_label{ font-family:"IBM Plex Mono","Courier New",monospace; font-size:11px; letter-spacing:.24em; color:#1c5fae; display:flex; align-items:center; gap:14px; }
.sec_label::before{ content:""; width:34px; height:1px; background:#1c5fae; }
.sec_title{ font-family:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif; font-weight:600; font-size:30px; letter-spacing:.1em; color:#122c47; margin-top:10px; }
.link_more{ font-family:"IBM Plex Mono","Courier New",monospace; font-size:11px; letter-spacing:.18em; color:#1c5fae; display:inline-flex; align-items:center; gap:8px; }
.link_more i{ font-size:11px; }

/* ---------- duotone（CSSデュオトーン画像） ---------- */
.duotone{ position:relative; overflow:hidden; }
.duotone img{ width:100%; display:block; filter:grayscale(1) contrast(1.06); }
.duotone::after{ content:""; position:absolute; inset:0; background:linear-gradient(150deg,rgba(18,44,71,.32),rgba(28,95,174,.42)); mix-blend-mode:multiply; }
.duotone .frame{ position:absolute; inset:14px; border:1px solid rgba(255,255,255,.55); z-index:2; pointer-events:none; }

/* ---------- HERO ---------- */
#top_main{ position:relative; min-height:92vh; display:flex; align-items:center; padding:150px 6vw 110px; overflow:hidden; }
#top_main .hero_bg{ position:absolute; inset:0; }
#top_main .hero_bg img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.35) contrast(1.05); transform:scale(1.08); animation:heroZoom 16s ease-out forwards; }
@keyframes heroZoom{ to{ transform:scale(1); } }
#top_main .hero_bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(115deg,rgba(13,30,49,.85) 0%,rgba(18,44,71,.62) 48%,rgba(28,95,174,.32) 100%); }
#top_main .hero_inner{ position:relative; z-index:2; max-width:1220px; width:100%; margin:auto; }
#top_main .hero_inner>*{ opacity:0; animation:heroUp .9s ease forwards; }
#top_main .eyebrow{ animation-delay:.25s; }
#top_main .hero_title{ animation-delay:.5s; }
#top_main .hero_lead{ animation-delay:.8s; }
#top_main .hero_cta{ animation-delay:1.05s; }
@keyframes heroUp{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
#top_main .eyebrow{ font-family:"IBM Plex Mono","Courier New",monospace; font-size:10.5px; letter-spacing:.22em; color:#9fd0ff; margin-bottom:26px; display:flex; align-items:center; gap:14px; }
#top_main .eyebrow::before{ content:""; width:38px; height:1px; background:#9fd0ff; flex:none; }
#top_main .hero_title{ font-family:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif; font-weight:700; font-size:min(4.5vw,62px); line-height:1.42; letter-spacing:.08em; color:#fff; text-shadow:0 2px 20px rgba(10,24,40,.35); }
#top_main .hero_title em{ font-style:normal; color:#9fd0ff; }
#top_main .hero_lead{ margin-top:26px; font-family:"Noto Sans JP",sans-serif; font-size:14.5px; color:#dbe6f1; text-shadow:0 1px 10px rgba(10,24,40,.4); }
#top_main .hero_cta{ margin-top:38px; display:flex; gap:16px; flex-wrap:wrap; }
#top_main .btn_fill,#top_main .btn_ghost{ display:inline-flex; align-items:center; gap:12px; font-family:"Noto Sans JP",sans-serif; font-size:13.5px; letter-spacing:.14em; padding:14px 32px; transition:.3s; }
#top_main .btn_fill{ background:#fff; color:#122c47; }
#top_main .btn_fill:hover{ background:#1c5fae; color:#fff; }
#top_main .btn_ghost{ border:1px solid rgba(255,255,255,.75); color:#fff; }
#top_main .btn_ghost:hover{ background:#fff; color:#122c47; }
#top_main .hero_caption{ position:absolute; right:4vw; bottom:26px; z-index:2; font-family:"IBM Plex Mono","Courier New",monospace; font-size:10px; letter-spacing:.16em; color:rgba(255,255,255,.55); }

/* ---------- ABOUT ---------- */
#top_about{ position:relative; padding:130px 6vw; overflow:hidden; }
#top_about .sei_mark{ position:absolute; top:30px; right:-1vw; font-family:"Zen Old Mincho",serif; font-weight:900; font-size:min(30vw,400px); line-height:1; color:transparent; -webkit-text-stroke:1px rgba(28,95,174,.12); pointer-events:none; user-select:none; }
#top_about .about_grid{ max-width:1220px; margin:auto; display:grid; grid-template-columns:.92fr 1.08fr; gap:6vw; align-items:center; position:relative; z-index:2; }
#top_about .about_writing h2{ font-family:"Zen Old Mincho",serif; font-weight:600; font-size:31px; letter-spacing:.1em; color:#122c47; margin:14px 0 24px; line-height:1.6; }
#top_about .about_writing p{ font-family:"Noto Sans JP",sans-serif; font-size:14.5px; color:#4a5a6a; line-height:1.9; }
#top_about .about_link{ margin-top:30px; }
#top_about .about_link a{ font-family:"IBM Plex Mono","Courier New",monospace; font-size:11.5px; letter-spacing:.2em; color:#1c5fae; display:inline-flex; align-items:center; gap:10px; border-bottom:1px solid #1c5fae; padding-bottom:5px; transition:opacity .3s; }
#top_about .about_link a:hover{ opacity:.6; }

/* ---------- SERVICE INDEX（台帳風リスト） ---------- */
#top_service{ padding:110px 6vw 120px; background:#fff; border-top:1px solid #c9d6e4; }
#top_service .service_head{ max-width:1220px; margin:auto; display:flex; justify-content:space-between; align-items:flex-end; }
#top_service .service_index{ max-width:1220px; margin:44px auto 0; border-top:1px solid #c9d6e4; }
#top_service .service_index li a{ display:grid; grid-template-columns:74px 1fr 1.25fr 40px; align-items:center; gap:26px; padding:24px 10px; border-bottom:1px solid #c9d6e4; transition:background .3s,padding-left .3s; }
#top_service .service_index li a:hover{ background:#f2f7fc; padding-left:22px; }
#top_service .service_index .no{ font-family:"IBM Plex Mono","Courier New",monospace; font-size:12px; color:#1c5fae; letter-spacing:.1em; }
#top_service .service_index .name{ font-family:"Zen Old Mincho",serif; font-size:18.5px; letter-spacing:.06em; color:#122c47; font-weight:600; }
#top_service .service_index .desc{ font-family:"Noto Sans JP",sans-serif; font-size:12.5px; color:#68798a; }
#top_service .service_index .arw{ color:#1c5fae; text-align:right; }

/* ---------- FIELD ＝ RECRUIT（紺面） ---------- */
#top_field{ background:#122c47; color:#fff; padding:120px 6vw; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:48px 48px; }
#top_field .field_grid{ max-width:1150px; margin:auto; display:grid; grid-template-columns:1.05fr .95fr; gap:6vw; align-items:center; }
#top_field .field_block .sec_label{ color:#8fc0ee; }
#top_field .field_block .sec_label::before{ background:#8fc0ee; }
#top_field .field_block h3{ font-family:"Zen Old Mincho",serif; font-weight:600; font-size:25px; letter-spacing:.1em; margin:14px 0 20px; color:#fff; line-height:1.6; }
#top_field .field_block>p{ font-family:"Noto Sans JP",sans-serif; font-size:14px; color:#c4d3e2; line-height:1.9; }
#top_field .field_caption{ font-family:"IBM Plex Mono","Courier New",monospace; font-size:10px; letter-spacing:.16em; color:#7d97b3; margin-top:12px; text-align:right; }
#top_field .btn_ghost_w{ display:inline-flex; align-items:center; gap:12px; font-family:"Noto Sans JP",sans-serif; font-size:13px; letter-spacing:.14em; padding:13px 34px; border:1px solid rgba(255,255,255,.7); color:#fff; transition:.3s; margin-top:24px; }
#top_field .btn_ghost_w:hover{ background:#fff; color:#122c47; }

/* ---------- LINKS（2パネル） ---------- */
#top_links ul{ display:grid; grid-template-columns:1fr 1fr; }
#top_links .link_panel{ position:relative; display:block; height:320px; overflow:hidden; }
#top_links .link_panel .duotone,#top_links .link_panel img{ height:100%; }
#top_links .link_panel img{ object-fit:cover; transition:transform .8s ease; }
#top_links .link_panel:hover img{ transform:scale(1.05); }
#top_links .link_panel .panel_label{ position:absolute; left:36px; bottom:30px; z-index:3; color:#fff; }
#top_links .panel_label .en{ font-family:"IBM Plex Mono","Courier New",monospace; font-size:11px; color:#bcd8f2; display:block; margin-bottom:6px; letter-spacing:.14em; }
#top_links .panel_label .ja{ font-family:"Zen Old Mincho",serif; font-size:23px; letter-spacing:.14em; display:flex; align-items:center; gap:16px; }
#top_links .panel_label .ja i{ font-size:.7em; }

/* ---------- reduced-motion ---------- */
@media (prefers-reduced-motion:reduce){
  #top_main .hero_bg img{ animation:none; transform:none; }
  #top_main .hero_inner>*{ animation:none; opacity:1; }
}

/* ---------- SP ---------- */
@media screen and (max-width:768px){
  #top_main{ padding:120px 7vw 80px; min-height:78vh; }
  #top_main .hero_title{ font-size:9vw; }
  #top_about{ padding:80px 7vw; }
  #top_about .about_grid{ grid-template-columns:1fr; gap:40px; }
  #top_about .about_writing h2{ font-size:23px; }
  #top_service{ padding:76px 7vw; }
  #top_service .service_head{ flex-flow:column; align-items:flex-start; gap:14px; }
  #top_service .service_index li a{ grid-template-columns:44px 1fr 24px; padding:18px 4px; gap:14px; }
  #top_service .service_index .desc{ display:none; }
  #top_service .service_index .name{ font-size:15.5px; }
  #top_field{ padding:80px 7vw; }
  #top_field .field_grid{ grid-template-columns:1fr; gap:56px; }
  #top_links ul{ grid-template-columns:1fr; }
  #top_links .link_panel{ height:220px; }
}


/* ローディングの保険：JS/CDN不達でも6秒後にCSSで自動的に隠す（実ユーザーの固まり防止＆検証用） */
#loading.loading{ animation:seiouLoadingGuard .4s ease 6s forwards; }
@keyframes seiouLoadingGuard{ to{ opacity:0; visibility:hidden; } }

/* ===== 追加調整（誠央総建：ヘッダー高さ分離・見出し視認性・採用幅） ===== */
/* ヘッダー：ロゴとメニューの高さを分離。ヘッダー高を固定し、ロゴは最大高で内側に収める */
header #header_pc{ min-height:82px; align-items:center; padding:0 3vw; }
header #header_pc .header_logo{ width:auto; padding-top:0; display:flex; align-items:center; }
header #header_pc .header_logo img{ width:auto; max-width:180px; max-height:50px; height:auto; }
header #header_pc .header_menu a{ padding-top:0; padding-bottom:6px; }

/* 下層ヒーローの英字サブ見出し：青が背景と被るため、白基調＋影で視認性を確保 */
#lower .lower_contents p{ color:#d8e0e8; text-shadow:0 1px 5px rgba(0,0,0,.6); }

/* 事業内容 見出しの（英字）を別行・小さめに（段落ち防止） */
#service .service .service_contents ul li .list_writing h2 .svc_en{
  display:block; margin-top:6px; font-size:.6em; font-weight:400;
  letter-spacing:.08em; color:#1e5aa0;
  font-family:"IBM Plex Mono","Courier New",monospace;
}

/* 採用ページ：上のリード文を他ページと同じ幅（フル幅→中央寄せ90%）に */
#recruit .recruit .recruit_text{ width:90%; margin-left:auto; margin-right:auto; }

/* ============================================================
   お問い合わせフォーム（Contact Form 7）デザイン刷新
   白カード＋ネイビー見出し＋ブルーのアクセント（現行デザインに統一）
   ============================================================ */
#contact .contact .form{ width:100%; max-width:820px; margin-left:auto; margin-right:auto; }
#contact .contact .form .wpcf7{
  background:#fff; color:#2c3844;
  border:1px solid #e2e8f0; border-radius:14px;
  box-shadow:0 18px 50px rgba(22,50,79,.09);
  padding:3.4rem 3rem;
}
#contact .contact .form .wpcf7 form>p{ margin-bottom:1.6rem; }
#contact .contact .form .wpcf7 label{
  display:block; margin-bottom:0; font-weight:600; color:#16324f;
  font-size:15px; letter-spacing:.04em; font-family:"Noto Sans JP",sans-serif;
}
#contact .contact .form .wpcf7 label .red,
#contact .contact .form .wpcf7 label .blue{
  display:inline-block; font-size:11px; font-weight:500; line-height:1;
  padding:4px 9px; margin-left:10px; border-radius:3px; vertical-align:2px;
  letter-spacing:.08em; font-family:"Noto Sans JP",sans-serif;
}
#contact .contact .form .wpcf7 label .red{ background:#1c5fae; color:#fff; }
#contact .contact .form .wpcf7 label .blue{ background:#fff; color:#7a8896; border:1px solid #c7d2de; }
#contact .contact .form .wpcf7 label .wpcf7-form-control-wrap input,
#contact .contact .form .wpcf7 label .wpcf7-form-control-wrap textarea{
  width:100%; margin-top:.7rem; margin-bottom:0; padding:13px 15px; height:auto;
  border:1px solid #c7d2de; border-radius:7px; background:#fbfcfe;
  font-size:15px; color:#2c3844; font-family:"Noto Sans JP",sans-serif; line-height:1.7;
  transition:border-color .25s, box-shadow .25s, background .25s;
}
#contact .contact .form .wpcf7 label .wpcf7-form-control-wrap textarea{ height:190px; resize:vertical; line-height:1.8; }
#contact .contact .form .wpcf7 label .wpcf7-form-control-wrap input:focus,
#contact .contact .form .wpcf7 label .wpcf7-form-control-wrap textarea:focus{
  outline:none; border-color:#1c5fae; background:#fff; box-shadow:0 0 0 3px rgba(28,95,174,.13);
}
#contact .contact .form .wpcf7 label .wpcf7-form-control-wrap input::placeholder,
#contact .contact .form .wpcf7 label .wpcf7-form-control-wrap textarea::placeholder{ color:#a9b4c0; }
/* プライバシーポリシー同意チェック */
#contact .contact .form .wpcf7 label.policy{ text-align:center; margin-top:.4rem; }
#contact .contact .form .wpcf7 label.policy .wpcf7-list-item{ margin:0; }
#contact .contact .form .wpcf7 label.policy .wpcf7-list-item label{
  display:inline-flex; align-items:center; gap:9px; font-weight:400; font-size:14px; color:#2c3844; cursor:pointer;
}
#contact .contact .form .wpcf7 label.policy input[type="checkbox"]{
  width:18px; height:18px; margin:0; accent-color:#1c5fae; cursor:pointer;
}
/* 送信ボタン */
#contact .contact .form .wpcf7 input[type="submit"]{
  display:block; width:auto; min-width:290px; max-width:100%; margin:2.6rem auto 0;
  padding:16px 56px; background:#1c5fae; color:#fff; border:none; border-radius:8px;
  font-size:15px; font-weight:600; letter-spacing:.16em; cursor:pointer;
  font-family:"Noto Sans JP",sans-serif;
  transition:background .3s, transform .2s, box-shadow .3s;
}
#contact .contact .form .wpcf7 input[type="submit"]:hover{
  background:#122c47; opacity:1; transform:translateY(-2px); box-shadow:0 10px 24px rgba(18,44,71,.28);
}
#contact .contact .form .wpcf7 .wpcf7-spinner{ margin:14px auto 0; display:block; }
#contact .contact .form .wpcf7 .wpcf7-response-output{
  margin:1.6rem 0 0; padding:.9rem 1rem; border-radius:7px; font-size:14px; text-align:center;
  font-family:"Noto Sans JP",sans-serif;
}
@media screen and (max-width:768px){
  #contact .contact .form .wpcf7{ padding:2.2rem 1.3rem; border-radius:10px; }
  #contact .contact .form .wpcf7 input[type="submit"]{ min-width:0; width:100%; padding:15px 0; }
}

/* お問い合わせ リード文：PCは中央揃え、SPは左揃え */
#contact .contact .contact_text{ text-align:center; }
@media screen and (max-width:768px){
  #contact .contact .contact_text{ text-align:left; }
}

/* ヘッダーロゴ：サイズUP＋白フチ（暗い背景でも視認できるように） */
header #header_pc{ min-height:92px; }
header #header_pc .header_logo img{ max-width:240px; max-height:62px; width:auto; height:auto; }
header .header_logo img{
  filter: drop-shadow(0 0 2px #fff) drop-shadow(0 0 2px #fff) drop-shadow(0 0 6px rgba(255,255,255,.55));
}

/* ヘッダーメニュー：ホバー/現在地の色を明るいブルーに＋文字影で視認性UP（暗いヒーロー対策） */
header #header_pc .header_menu ul li a{ text-shadow:0 1px 4px rgba(0,0,0,.5); }
header #header_pc .header_menu ul li a:hover,
header #header_pc .header_menu ul li a.current{ color:#9fd0ff; }
header #header_pc .header_menu ul li a::after{ background:#9fd0ff; height:2px; }

/* ヘッダーロゴ：さらに大きく（視認性優先） */
header #header_pc{ min-height:112px; }
header #header_pc .header_logo img{ max-width:320px; max-height:84px; }

/* ============================================================
   SP調整＋各種デザイン改善（誠央総建）
   ============================================================ */

/* ① TOP SERVICE INDEX：olの番号を消す＋No.の折返し防止（SP崩れ対策） */
#top_service .service_index{ list-style:none; padding-left:0; }
#top_service .service_index .no{ white-space:nowrap; }
@media screen and (max-width:768px){
  #top_service .service_index li a{ grid-template-columns:56px 1fr 16px; padding:16px 2px; gap:10px; }
  #top_service .service_index .no{ font-size:10px; }
  #top_service .service_index .name{ font-size:15px; }
}

/* ② SP下部固定バー（header_sp_bottom）を紺のプレミアム調に */
@media screen and (max-width:768px){
  header #header_sp .header_sp_bottom{ background:#122c47; box-shadow:0 -3px 16px rgba(0,0,0,.3); }
  header #header_sp .header_sp_bottom ul{ width:100%; margin:0; display:flex; }
  header #header_sp .header_sp_bottom ul li{ flex:1; text-align:center; border-right:1px solid rgba(255,255,255,.12); }
  header #header_sp .header_sp_bottom ul li:last-child{ border-right:none; }
  header #header_sp .header_sp_bottom ul li a{ display:block; color:#fff; padding:11px 0 9px; }
  header #header_sp .header_sp_bottom .header_icon{ height:6vw; margin:0 0 5px; display:flex; justify-content:center; align-items:center; }
  header #header_sp .header_sp_bottom .header_icon i{ font-size:5.2vw; color:#fff; }
  header #header_sp .header_sp_bottom p{ font-size:2.3vw; letter-spacing:.1em; color:rgba(255,255,255,.82); font-family:"IBM Plex Mono","Courier New",monospace; }
  header #header_sp .header_sp_bottom .hamburger span{ background:#fff; }
  header #header_sp .header_sp_bottom .hamburger p{ color:rgba(255,255,255,.82); font-family:"IBM Plex Mono","Courier New",monospace; font-size:2.3vw; letter-spacing:.1em; }
}

/* ③ 事業内容 見出し：SPで段落ちしないよう縮小＋カード中央寄せ */
@media screen and (max-width:768px){
  #service .service .service_contents ul li .list_writing{ margin:32px auto; width:88%; max-width:none; padding:26px 22px; }
  #service .service .service_contents ul li .list_writing h2{ font-size:4.6vw; }
  #service .service .service_contents ul li .list_writing h2 .svc_en{ font-size:.6em; }
}

/* ④ 採用 リード文：SPの文字サイズを他ページ同等に */
@media screen and (max-width:768px){
  #recruit .recruit .recruit_text p{ font-size:3.9vw; line-height:1.9; }
}

/* ⑤ 採用ページのデザイン改善：白カード＋整ったテーブル */
#recruit .recruit .recruit_contents .recruit_content{
  background:#fff; border:1px solid #e2e8f0; border-radius:14px;
  box-shadow:0 14px 40px rgba(22,50,79,.08); padding:2.8rem 2.6rem;
}
@media screen and (max-width:768px){
  #recruit .recruit .recruit_contents .recruit_content{ padding:1.8rem 1.2rem; border-radius:10px; }
}
#recruit .recruit .recruit_contents .recruit_content table tr th{
  background:rgba(30,90,160,.06); color:#16324f; border-bottom:1px solid #e4ebf2; vertical-align:top;
}
#recruit .recruit .recruit_contents .recruit_content table tr td{
  color:#2c3844; border-bottom:1px solid #e4ebf2;
}
#recruit .recruit .recruit_contents .recruit_content table tr:last-child th,
#recruit .recruit .recruit_contents .recruit_content table tr:last-child td{ border-bottom:none; }

/* ⑥ ローディングロゴ：白フチ＋グローで背景と分離（少し大きく） */
#loading .loadinglogo img{
  max-width:200px;
  filter: drop-shadow(0 0 3px #fff) drop-shadow(0 0 3px #fff) drop-shadow(0 0 13px rgba(255,255,255,.55));
}

/* 下層ページのリード文：PC/タブレットは中央揃え、SPは左揃え（お問い合わせと統一） */
#service .service .service_text,
#works .works .works_text,
#recruit .recruit .recruit_text{ text-align:center; }
@media screen and (max-width:768px){
  #service .service .service_text,
  #works .works .works_text,
  #recruit .recruit .recruit_text{ text-align:left; }
}

/* 採用ページ：リード文をメッセージ調に強調（mono小見出し＋明朝＋ネイビー） */
#recruit .recruit .recruit_text{ width:90%; max-width:920px; margin-left:auto; margin-right:auto; }
#recruit .recruit .recruit_text::before{
  content:"MESSAGE"; display:inline-block;
  font-family:"IBM Plex Mono","Courier New",monospace; font-size:11px; letter-spacing:.28em;
  color:#1c5fae; padding-bottom:.9rem; margin-bottom:1.7rem; border-bottom:2px solid #1c5fae;
}
#recruit .recruit .recruit_text p{
  font-family:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  color:#16324f; font-size:1.35vw; line-height:2.35; letter-spacing:.08em; font-weight:500;
}
@media screen and (min-width:769px) and (max-width:1024px){
  #recruit .recruit .recruit_text p{ font-size:2vw; }
}
@media screen and (max-width:768px){
  #recruit .recruit .recruit_text::before{ font-size:10px; margin-bottom:1.2rem; padding-bottom:.6rem; }
  #recruit .recruit .recruit_text p{ font-size:4.1vw; line-height:2.05; }
}

/* ロゴの再配色（えんじ→ネイビー/ブルー系）＋白フチ維持 */
header #header_pc .header_logo img,
header #header_sp .header_sp .header_logo img{
  filter:saturate(.8) drop-shadow(0 0 2px #fff) drop-shadow(0 0 2px #fff) drop-shadow(0 0 6px rgba(255,255,255,.5));
}
#loading .loadinglogo img{
  filter:saturate(.8) drop-shadow(0 0 3px #fff) drop-shadow(0 0 3px #fff) drop-shadow(0 0 13px rgba(255,255,255,.5));
}

/* デュオトーン画像を明るく（青く暗い印象を軽減） */
.duotone img{ filter: grayscale(.4) brightness(1.1) contrast(1.02); }
.duotone::after{ background: linear-gradient(150deg, rgba(18,44,71,.14), rgba(28,95,174,.2)); }

/* top_links バナー：白文字ラベルの視認性確保（下部に暗いグラデscrim） */
#top_links .link_panel::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:62%;
  background:linear-gradient(to top, rgba(8,20,34,.85) 0%, rgba(8,20,34,.4) 42%, transparent 100%);
  z-index:2; pointer-events:none;
}
#top_links .link_panel .panel_label{ z-index:3; }

/* 事業内容 各工種：アンカー着地の保険（Lenis失敗時のネイティブ移動用） */
#service .service .service_contents ul li{ scroll-margin-top: 20px; }

/* ============================================================
   SP調整パック2（メニュー崩れ / ロゴ / MENU位置 / 余白 等）
   ============================================================ */
@media screen and (max-width:768px){

  /* ① ハンバーガーメニュー（globalMenuSp）を縦並びの整ったレイアウトに */
  nav.globalMenuSp{ background:rgba(18,44,71,.97); inset:0; bottom:56px; height:auto; justify-content:center; gap:0; padding:6vw 0; }
  nav.globalMenuSp .ul{ display:block !important; width:100%; margin:0 !important; padding:0; }
  nav.globalMenuSp .ul li{ width:100% !important; text-align:center; padding:0; margin:0; }
  nav.globalMenuSp .ul li:hover{ background:transparent; }
  nav.globalMenuSp .ul li a{ display:inline-block; width:auto; border-bottom:none; padding:3.6vw 0; font-size:4.6vw; letter-spacing:.12em; }
  .header_sp_policy{ margin:3vw 0 0; }
  .header_sp_policy a{ border-bottom:none; color:rgba(255,255,255,.7); font-size:3.4vw; }

  /* ② SPヘッダーのロゴをもう少し大きく＋中央寄せ */
  header #header_sp .header_sp{ height:66px; justify-content:center; }
  header #header_sp .header_sp .header_logo{ width:auto; }
  header #header_sp .header_sp .header_logo img{ max-height:52px; width:auto; }

  /* ③ 下部バーのMENU（ハンバーガー）を他アイコンと同じ配置に（aと同じ block フローで .bars を .header_icon と同寸法に） */
  header #header_sp .header_sp_bottom .hamburger{
    position:relative; width:100%; height:auto; padding:23px 0 9px;
    display:block; text-align:center;
  }
  header #header_sp .header_sp_bottom .hamburger .bars{
    height:6vw; margin:0 0 5px;
    display:flex; flex-direction:column; justify-content:space-between; align-items:center;
  }
  header #header_sp .header_sp_bottom .hamburger .bars span{
    position:relative; top:auto !important; left:auto !important; transform:none;
    width:24px; height:2px; margin:0; display:block;
  }
  header #header_sp .header_sp_bottom .hamburger p{
    position:relative; top:auto; left:auto; transform:none; margin:0;
  }
  header #header_sp .header_sp_bottom .hamburger.active .bars span:nth-child(1){ transform:translateY(calc(3vw - 1px)) rotate(45deg); }
  header #header_sp .header_sp_bottom .hamburger.active .bars span:nth-child(2){ opacity:0; }
  header #header_sp .header_sp_bottom .hamburger.active .bars span:nth-child(3){ transform:translateY(calc(1px - 3vw)) rotate(-45deg); }

  /* ④ 施工事例の注記をSPで左揃え */
  #works .works .works_contents .works_note{ text-align:left; }

  /* ⑤ 採用ページのカード：SPの余白・はみ出しを調整 */
  #recruit .recruit .recruit_contents{ width:92%; }
  #recruit .recruit .recruit_contents .recruit_content{ padding:1.4rem 1.1rem; }
  #recruit .recruit .recruit_contents .recruit_content table{ table-layout:fixed; width:100%; }
  #recruit .recruit .recruit_contents .recruit_content table tr th,
  #recruit .recruit .recruit_contents .recruit_content table tr td{
    padding:.7rem .3rem; font-size:3.4vw; word-break:break-word; overflow-wrap:anywhere;
  }
  #recruit .recruit .recruit_contents .recruit_content table tr th{ padding-bottom:.2rem; }

  /* ⑥ ローディングロゴをSPで少し小さく */
  #loading .loadinglogo img{ max-width:140px; }
}

/* 採用テーブル：SPで完全block化してはみ出しを解消 */
@media screen and (max-width:768px){
  #recruit .recruit .recruit_contents .recruit_content table,
  #recruit .recruit .recruit_contents .recruit_content table tbody,
  #recruit .recruit .recruit_contents .recruit_content table tr{ display:block; width:100%; }
  #recruit .recruit .recruit_contents .recruit_content table tr th,
  #recruit .recruit .recruit_contents .recruit_content table tr td{
    display:block; width:100%; box-sizing:border-box; word-break:break-word; overflow-wrap:anywhere;
  }
}

/* 意図しない横スクロール（横はみ出し）防止：SPで各ページのはみ出しを解消 */
html, body{ overflow-x:hidden; }

/* 採用SP：はみ出し確実解消（幅を明示制約＋テーブルblock化） */
@media screen and (max-width:768px){
  #recruit .recruit .recruit_text{ width:88% !important; max-width:88% !important; margin:0 auto 8vw !important; }
  #recruit .recruit .recruit_text p{ max-width:100% !important; overflow-wrap:anywhere; }
  #recruit .recruit .recruit_contents{ width:90% !important; max-width:90% !important; margin:0 auto !important; }
  #recruit .recruit .recruit_contents .recruit_content{ max-width:100% !important; box-sizing:border-box; }
  #recruit .recruit .recruit_contents .recruit_content table,
  #recruit .recruit .recruit_contents .recruit_content table tbody,
  #recruit .recruit .recruit_contents .recruit_content table tr{ display:block !important; width:100% !important; max-width:100% !important; }
  #recruit .recruit .recruit_contents .recruit_content table tr th,
  #recruit .recruit .recruit_contents .recruit_content table tr td{
    display:block !important; width:100% !important; max-width:100% !important; box-sizing:border-box;
    word-break:break-all; overflow-wrap:anywhere; white-space:normal;
  }
}

/* 採用SP：vw基準で幅を固定してはみ出しを確実に解消 */
@media screen and (max-width:768px){
  #recruit{ overflow-x:hidden; }
  #recruit .recruit .recruit_text{ width:88vw !important; max-width:88vw !important; margin:0 auto 8vw !important; }
  #recruit .recruit .recruit_contents{ width:90vw !important; max-width:90vw !important; margin:0 auto !important; }
  #recruit .recruit .recruit_btn{ width:90vw !important; max-width:90vw !important; margin:0 auto !important; }
}

/* 採用SP：.recruitに左右padding＋子を100%幅にして中央寄せオフセットを排除 */
@media screen and (max-width:768px){
  #recruit .recruit{ padding-left:4vw !important; padding-right:4vw !important; box-sizing:border-box; overflow-x:hidden; }
  #recruit .recruit .recruit_text{ width:100% !important; max-width:100% !important; margin:0 0 8vw !important; }
  #recruit .recruit .recruit_contents{ width:100% !important; max-width:100% !important; margin:0 !important; }
  #recruit .recruit .recruit_btn{ width:100% !important; max-width:100% !important; margin:0 !important; }
  #recruit .recruit .recruit_contents .recruit_content{ padding:1.4rem 1rem !important; }
}

/* 採用SP：flex子要素のmin-width:autoによるはみ出しを解消 */
@media screen and (max-width:768px){
  #recruit .recruit .recruit_text,
  #recruit .recruit .recruit_text p,
  #recruit .recruit .recruit_contents,
  #recruit .recruit .recruit_contents .recruit_content,
  #recruit .recruit .recruit_contents .recruit_content table,
  #recruit .recruit .recruit_contents .recruit_content table tbody,
  #recruit .recruit .recruit_contents .recruit_content table tr,
  #recruit .recruit .recruit_contents .recruit_content table tr th,
  #recruit .recruit .recruit_contents .recruit_content table tr td{ min-width:0 !important; }
}

/* SP：各セクションをビューポート幅に上限固定し、横はみ出しの連鎖を断つ */
@media screen and (max-width:768px){
  #lower, #recruit, #works, #service, #company, #contact,
  #top_main, #top_about, #top_service, #top_field, #top_links, #footer_contact, footer{
    max-width:100vw !important; overflow-x:hidden;
  }
  #recruit .recruit{ max-width:100vw !important; }
}

/* SP改行ヘルパー（PCでは無効、SPのみ有効） */
.sp_br{ display:none; }
@media screen and (max-width:768px){ .sp_br{ display:inline; } }

/* 会社概要テーブル SP：過剰な縦余白（8vw）を整え、行間を均一に */
@media screen and (max-width:768px){
  #company .company .company_contents table tr{
    border-bottom:1px solid #dfe6ee !important;
    padding:3.6vw 0 !important;
  }
  #company .company .company_contents table tr:last-child{ border-bottom:none !important; }
  #company .company .company_contents table tr th,
  #company .company .company_contents table tr td{
    padding:0 1vw !important;
    font-size:3.6vw !important;
    line-height:1.7;
    border-bottom:none !important; /* SPは行(tr)の区切り線だけにして重複線を消す */
    background:transparent !important;
  }
  #company .company .company_contents table tr th{
    padding-bottom:1.4vw !important;
    font-weight:700;
    color:#16324f !important;
  }
  #company .company .company_contents table tr td{
    padding-top:0 !important;
    color:#333 !important;
  }
}

/* HERO：メインビジュアル3枚のクロスフェード（CSSのみ・テキストは前面のまま）
   ※delayを均等8s間隔にし、フェードアウト開始(33.33%)を次スライドのフェードイン開始に
     ちょうど一致させることで、切り替わり時の“暗い隙間”をなくす。
     先頭は負のdelayで読み込み時に表示済み。旧ズーム(heroZoom)がスライド画像に
     効いてカクつくため無効化。 */
#top_main .hero_bg .hero_slide{ position:absolute; inset:0; opacity:0; animation:heroCf 24s ease-in-out infinite; }
#top_main .hero_bg .hero_slide:nth-child(1){ animation-delay:-2s; }
#top_main .hero_bg .hero_slide:nth-child(2){ animation-delay:6s; }
#top_main .hero_bg .hero_slide:nth-child(3){ animation-delay:14s; }
#top_main .hero_bg .hero_slide img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.35) contrast(1.05); transform:scale(1.04); animation:none !important; }
@keyframes heroCf{
  0%      { opacity:0; }
  6%      { opacity:1; }
  33.33%  { opacity:1; }
  39.33%  { opacity:0; }
  100%    { opacity:0; }
}

/* =========================================================
   フッター リデザイン（テンプレの中央メニュー→ブランド型2カラム）
   ========================================================= */
footer.site_footer{
  height:auto !important;
  background:linear-gradient(160deg,#0d1e31 0%,#122c47 55%,#16324f 100%) !important;
  color:#c6d4e4;
  padding:74px 6vw 0;
  position:relative;
}
footer.site_footer::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,#2f80c4,#9fd0ff 50%,#2f80c4);
  opacity:.85;
}
footer.site_footer .foot_top{
  max-width:1180px; margin:0 auto; padding-bottom:52px;
  display:grid; grid-template-columns:1.25fr 1fr; gap:56px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
/* ブランド側 */
footer.site_footer .foot_en{
  font-family:"IBM Plex Mono","Courier New",monospace;
  font-size:11px; letter-spacing:.22em; color:#9fd0ff; margin-bottom:14px;
}
footer.site_footer .foot_name{
  font-family:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  font-weight:700; font-size:26px; letter-spacing:.08em; color:#fff; margin-bottom:22px; line-height:1.4;
}
footer.site_footer .foot_addr{
  font-size:13.5px; line-height:2; color:#aebfd2; margin-bottom:16px;
}
footer.site_footer .foot_tel{ margin-bottom:22px; }
footer.site_footer .foot_tel a{
  display:inline-flex; align-items:baseline; gap:10px;
  font-family:"Zen Old Mincho",serif; font-size:23px; letter-spacing:.06em; color:#fff; text-decoration:none;
}
footer.site_footer .foot_tel a span{
  font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.16em; color:#9fd0ff;
}
footer.site_footer .foot_tel a:hover{ color:#9fd0ff; }
footer.site_footer .foot_sns{ display:flex; gap:12px; list-style:none; padding:0; margin:0; }
footer.site_footer .foot_sns li a{
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.28); color:#dbe6f1; font-size:15px;
  transition:all .35s;
}
footer.site_footer .foot_sns li a:hover{ background:#2f80c4; border-color:#2f80c4; color:#fff; transform:translateY(-3px); }
footer.site_footer .foot_sns .new_twitter:before{ content:"𝕏" !important; font-family:sans-serif !important; font-weight:bold; }
/* ナビ側 */
footer.site_footer .foot_nav .foot_label{
  font-family:"IBM Plex Mono","Courier New",monospace;
  font-size:11px; letter-spacing:.22em; color:#9fd0ff; margin-bottom:22px;
  display:flex; align-items:center; gap:12px;
}
footer.site_footer .foot_nav .foot_label::before{ content:""; width:26px; height:1px; background:#9fd0ff; }
footer.site_footer .foot_nav ul{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:1fr 1fr; gap:2px 30px;
}
footer.site_footer .foot_nav ul li a{
  display:flex; align-items:center; gap:12px;
  padding:13px 4px; color:#dbe6f1; text-decoration:none; font-size:14.5px;
  border-bottom:1px solid rgba(255,255,255,.08); transition:all .3s;
}
footer.site_footer .foot_nav ul li a span{
  font-family:"IBM Plex Mono",monospace; font-size:11px; color:#6f8bb0; letter-spacing:.1em;
}
footer.site_footer .foot_nav ul li a:hover{ color:#9fd0ff; padding-left:12px; }
footer.site_footer .foot_nav ul li a:hover span{ color:#9fd0ff; }
/* 下部バー */
footer.site_footer .foot_bottom{
  max-width:1180px; margin:0 auto; padding:24px 0;
  display:flex; justify-content:space-between; align-items:center;
}
footer.site_footer .foot_bottom .copyright{
  font-family:"IBM Plex Mono","Courier New",monospace;
  font-size:11.5px; letter-spacing:.12em; color:#8ba0bd; margin:0; text-align:left;
}
footer.site_footer .foot_bottom .foot_privacy{
  font-size:12.5px; color:#aebfd2; text-decoration:none; letter-spacing:.04em; transition:color .3s;
}
footer.site_footer .foot_bottom .foot_privacy:hover{ color:#9fd0ff; }

@media screen and (max-width:768px){
  footer.site_footer{ padding:52px 7vw 0; }
  footer.site_footer .foot_top{
    grid-template-columns:1fr; gap:38px; padding-bottom:34px;
  }
  footer.site_footer .foot_name{ font-size:22px; }
  footer.site_footer .foot_tel a{ font-size:21px; }
  footer.site_footer .foot_nav ul{ gap:0 24px; }
  footer.site_footer .foot_bottom{
    flex-direction:column; gap:12px; align-items:flex-start; padding:20px 0 26px;
  }
  /* SP固定下部バー（.header_sp_bottom 約56px）とコピーライトの重なり回避 */
  footer.site_footer{ padding-bottom:72px; }
}

/* 事業内容ページ：セクション見出し（TOP調のラベル＋明朝タイトル）とカード番号 */
#service .service .service_head{
  width:90%; max-width:1180px; margin:5rem auto 2.4rem; text-align:center;
}
#service .service .service_head .sec_label{
  font-family:"IBM Plex Mono","Courier New",monospace;
  font-size:12px; letter-spacing:.24em; color:#1c5fae; margin-bottom:1.1rem;
  display:inline-flex; align-items:center; gap:14px;
}
#service .service .service_head .sec_label::before,
#service .service .service_head .sec_label::after{ content:""; width:30px; height:1px; background:#1c5fae; }
#service .service .service_head .sec_title{
  font-family:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  font-weight:700; font-size:clamp(22px,3.4vw,40px); letter-spacing:.08em; color:#16324f; line-height:1.55;
}
#service .service .service_text{ margin-top:0 !important; }   /* 見出しの直下に寄せる */

/* 各カードに No.01〜06 を自動採番（TOPのSERVICE INDEX調） */
#service .service .service_contents ul{ counter-reset:svc; }
#service .service .service_contents ul li{ counter-increment:svc; }
#service .service .service_contents ul li .list_writing::before{
  content:"No. 0" counter(svc);
  display:block;
  font-family:"IBM Plex Mono","Courier New",monospace;
  font-size:12px; letter-spacing:.18em; color:#1c5fae; margin-bottom:14px;
}
@media screen and (max-width:768px){
  #service .service .service_head{ width:90%; margin:3.4rem auto 1.8rem; text-align:left; }
  #service .service .service_head .sec_label::after{ display:none; }
  #service .service .service_contents ul li .list_writing::before{ font-size:3.2vw; margin-bottom:10px; }
}

/* 会社概要：GoogleMap 表示調整 */
#company .company .company_contents .map{ margin-top:2.6rem; width:100%; }
#company .company .company_contents .map iframe{
  width:100%; height:420px; border:0; display:block; vertical-align:bottom;
  filter:grayscale(.12);
}
@media screen and (max-width:768px){
  #company .company .company_contents .map{ margin-top:2rem; }
  #company .company .company_contents .map iframe{ height:300px; }
}

/* 事業内容ページ：リード文は長いので左揃え（読みやすさ優先／ブロックは中央寄せ） */
#service .service .service_text{ text-align:left !important; max-width:900px; margin-left:auto; margin-right:auto; }
@media screen and (max-width:768px){
  #service .service .service_text{ max-width:none; }
}
/* =========================================================
   会社概要ページ：代表挨拶（写真なし・テキストのみ）
   ========================================================= */
#greeting{
  background:#f5f7fa;
  max-width:100vw;
  overflow-x:hidden;
}
#greeting .greeting{
  width:80%;
  max-width:1000px;
  margin:0 auto;
  padding:4.4rem 0 4rem;
}
#greeting .greeting .lower_headline{
  margin-bottom:2.4rem;
}
#greeting .greeting .greeting_lead{
  font-family:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  font-weight:700;
  font-size:clamp(20px,2.4vw,30px);
  letter-spacing:.08em;
  line-height:1.75;
  color:#16324f;
  margin-bottom:2rem;
  padding-left:18px;
  border-left:3px solid #2f80c4;
}
#greeting .greeting .greeting_text p{
  color:#333;
  font-size:16px;
  line-height:2.1;
  letter-spacing:.03em;
  text-align:left;
}
#greeting .greeting .greeting_sign{
  margin-top:2.6rem;
  padding-top:1.4rem;
  border-top:1px solid #dfe6ee;
  text-align:right;
  line-height:1.9;
}
#greeting .greeting .greeting_sign .sign_company{
  display:block;
  font-size:13.5px;
  letter-spacing:.06em;
  color:#4f6d92;
}
#greeting .greeting .greeting_sign .sign_name{
  display:block;
  font-family:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:19px;
  letter-spacing:.08em;
  color:#16324f;
}
@media screen and (max-width:1024px){
  #greeting .greeting{ width:90%; }
}
@media screen and (max-width:768px){
  #greeting .greeting{ width:90%; padding:3.2rem 0 3rem; }
  #greeting .greeting .lower_headline{ margin-bottom:6vw; }
  #greeting .greeting .greeting_lead{
    font-size:5vw; line-height:1.8; margin-bottom:1.6rem; padding-left:12px; border-left-width:2px;
  }
  #greeting .greeting .greeting_text p{ font-size:3.7vw; line-height:2; }
  #greeting .greeting .greeting_sign{ margin-top:2rem; }
  #greeting .greeting .greeting_sign .sign_company{ font-size:3.2vw; }
  #greeting .greeting .greeting_sign .sign_name{ font-size:4.2vw; }
}
