@charset "utf-8";
h1, h2, h3, h4, h5, h6 {
    line-height: 1.5;
    font-family: 'UDKakugo_LargePr6N-B', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP';
    font-weight: 600;
}
.header-nav__item--prod > a:after { left: 0; width: 100%;}
a.accordion-toggle:after { font-family: 'FontAwesome';   content: "\f146"; float: left; }
a.accordion-toggle.collapsed::after { content: "\f0fe"; }

.area-ttl {
  background: url('/img/darkblue-bg.jpg') no-repeat center 50%;
  background-size: cover;
}
.area-ttl__ttl {
    background: url('/vul-hammer/img/icon-mvh.png') no-repeat 50% 0;
    background-size: 38px auto;
    color: #f0f0f0;
}
.area-ttl__ttl a { color: #f0f0f0 !important;}
.area-ttl__ttl a:hover {
  text-decoration: none !important; 
}
.navbar { padding: 0.1rem;}
.title-drop-shadow{filter: drop-shadow(0px 0px 7px rgba(255 255 255 / 66%));}
.mvh_navbar {
    border-color: rgb(85, 139, 47);
    background-color: #008837 !important;
    box-shadow: inset 0px -50px 50px -50px rgb(0 0 0 / 20%);
}
.navbar-light .navbar-nav .nav-link { color: #FFF;}
.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { color: #cceaaa;}
.navbar-light .navbar-nav .nav-link.active{color:#ffeb3b;}

.mvh_navbar li { border-left: 1px solid #2EAF62; border-right: 1px solid #2EAF62;}
.menu1200 {
    width: 1200px;
    max-width: 1200px;
    margin: 0 auto;
}



.text-mvh{color:#008837;}
.bg-mvh{background-color:#008837 !important;}


.mvh-jumbotron {
  background: linear-gradient(to top, rgb(216 225 235 / 60%) 0%, rgb(255 255 255 / 90%) 100%), url(/vul-hammer/img/mvh-cover.jpg) left center !important;
  background-size: cover !important;
  color:#fff;
  margin-bottom:0;
  padding: 3em 0 3em;
  min-height:480px;
  display:flex;
  align-items:center;
}

/*
----------------------------------------------------------- */
/* 追加
----------------------------------------------------------- */
.table-responsive th {
white-space: nowrap;
}

.mvh-contact {
  background: #D6ECD3 !important;
}
.mvh-hook {
  background: linear-gradient(#2E7D32, #8BC34A);
  background: -ms-linear-gradient(top, #2E7D32, #8BC34A);
}

.mvh-hook-textarea {
  padding: 2em;
  color: #fff;
}
.mvh_navbar {
  border-color: rgb(85, 139, 47);
  background-color: #008837 !important;
  box-shadow: inset 0px -50px 50px -50px rgb(0 0 0 / 20%);
}
.navbar-expand-lg .navbar-nav .nav-link {padding-right:1.5rem;}
.mvh_navbar #mvh-link {
  color: #FFF;
}
.mvh_navbar #mvh-link:hover {opacity: 0.5 ; background-color: #000;}
.mvh_navbar .show>#mvh-link {color: #02953D;}
.mvh_navbar #mvh-link.active {color: #3E2723;}

.mvh-navbar .navbar-nav .nav-link.active {color: #3E2723;}

.nav-item .fa {
  margin-right: 0.5rem;
}

.mvh_navbar li {
  border-left: 1px solid #2EAF62;
  border-right: 1px solid #2EAF62;
}
.mvh_navbar li+ li {
  border-left: 0;
  border-right: 1px solid #2EAF62;
}
@media (min-width: 992px) {
}
@media only screen and (max-width: 768px){
}
@media only screen and (max-width: 575px){
}
.mvh-card{
  background-color: #FFF;
  border-radius: 10px;
  box-shadow: rgba(15, 75, 55, 0.2) 0px 7px 29px 0px;
  padding: 20px 15px;
}
@media only screen and (max-width: 768px){
  .mvh-card{
    margin: 0px 20px;
  }
}
@media only screen and (max-width: 575px){
  .mvh-card{
    margin: 0px 10px;
  }
}
.mvh__feature {
  padding: 3em 0;
  background-color: #008837;
  box-shadow: inset 0px -50px 50px -50px rgb(0 0 0 / 20%);
}
.card-layout {
  list-style: none;
  padding: 0;
}
.card-layout>* {
  width: 23%;
  margin: 24px 0 0 auto;
}
.card-layout>:nth-child(4n+1) {
  margin-left: 0px;
}


@media only screen and (max-width: 768px){
  .card-layout>* {
    width: 45%;
    margin: 8px auto;
  }
  .card-layout>:nth-child(4n+1) {
    margin-left: auto;
  }
  
}

@media only screen and (max-width: 575px){
  .card-layout>* {
    width: 88%;
  }
}

.mvh-case {
  background: url(/vul-hammer/img/mvh-case01-bg.jpg) top 45% center / cover no-repeat;
}
.mvh-case-imagearea {
  min-height: 240px;
  background: url(https://www.cybertrust.co.jp/case/img/smde_logo.png) no-repeat;
  background-size: contain;
  background-position-x: 50%;
  background-color: #FFF;
  box-shadow: inset 0px -50px 50px -50px rgb(0 0 0 / 20%);
}
.mvh-case-textarea {
  color: #FFF;
  text-shadow: 0px 0px 18px #000;
}
.mvh-case-textarea a:hover {
  opacity: 0.8;
}
.mvh-checksheet-block {
  background: linear-gradient(#3E4265, #22253c);
}
.mvh-EM-block {
  background: #008837;
  padding: 3em 0;
}
.mvh-EM-block tbody >* {
  background: #E0F1E7;
}

.vul-management {
  background: #008837;
  padding: 3em 0;
}

.flow-wrapper {
  border: solid 2px #008837;
  padding: 24px;
  border-radius: 15px;
  margin: 16px 32px 80px;
}
@media only screen and (max-width: 575px){
  .flow-wrapper {
    padding: 8px;
    margin: 8px 16px 80px;
  }
  
}
.flow-box {
  margin: 0px 16px 32px;
  width: 320px;
  max-width: 100%;
  padding: 10px;
  background-color: #008837;
  color: #fff;
  position: relative;
  font-size: 1.6em; /* テキストの指定 */
  font-weight: bold; /* テキストの指定 */
  line-height: 1.4; /* テキストの指定 */ 
  text-align: center;
}

.flow-box-after {
  border-top: 30px solid #008837;
  border-left: 160px solid transparent;
  border-right: 160px solid transparent;
  content: "";
  position: absolute;
  bottom: -30px; /* 三角形の高さ＋ボックスのボーダーをマイナスに */
  left: 22%;/* 中央寄せに使用 */
  margin-left: -70px; /* 中央寄せに使用 */
}

@media only screen and (max-width: 575px){

  .flow-box {
    width: 160px;
    margin: auto auto 32px;
  }
  
  .flow-box-after {
    border-left: 80px solid transparent;
    border-right: 80px solid transparent;
    left: 45%;/* 中央寄せに使用 */
    margin-left: -70px; /* 中央寄せに使用 */
  }
  
}
.step-box {
  position: relative;
  width: 240px;
  max-width: 100%;
  height: auto;
  border: solid #008837 3px;
  background: #fff;
}

.step-box::after {
  border-left: 25px solid #b0d392; /* 右向きの三角形を作るため左のボーダーに色を付ける */
  border-top: 44px solid transparent; /* 上のボーダーを透過に指定 */
  border-bottom: 40px solid transparent; /* 下のボーダーを透過に指定 */
  content: "";
  position: absolute;
  left: 50%; /* 一旦中央へ寄せる */
  top: 20%;
  margin-left: 136px; /* 四角形の幅の半分右へ移動する */
}

.step-box:last-child:after {
  border: none; /* 最後のボックスだけ三角形を表示しない */
}

@media (max-width: 992px) {
  .step-box {
    width: 640px;
    margin-bottom: 60px;
  }
  
  .step-box::after {
    border-top: 25px solid #b0d392; /* 右向きの三角形を作るため左のボーダーに色を付ける */
    border-left: 40px solid transparent; /* 上のボーダーを透過に指定 */
    border-right: 40px solid transparent; /* 下のボーダーを透過に指定 */
    left: 22%; /* 一旦中央へ寄せる */
    top: 120%;
  }
}
@media only screen and (max-width: 575px){
  .step-box::after {
    left: -5%; /* 一旦中央へ寄せる */
    top: 120%;
  }
  
}

.step-box-ttl {
  position: relative;
  background: #008837;
  color: #fff;
  text-align: center;
  font-weight: bold;
  padding: 4px;
}

.step-box-ttl h4 {
  margin: 0px;
}
.box-label {
  position: absolute;
  left: 10px;
  width: 32px;
  height: 32px;
  line-height: 32px;
  border-radius: 50%;
  background: #fff;
  color: #008837;
  font-size: 0.8rem;
  text-align: center;
  font-weight: bold;
  text-transform: uppercase;
}



.step-box-inner {
  padding: 8px 5px 16px;
}
.point-box {
    display: flex;
    padding: 8px 16px;
    width: 100px;
    height: 80%;
    max-width: 100%;
    min-height: 80px;
    color: #FFF;
    background-color: #008837;
    border-radius: 10px;
    box-shadow: rgba(4, 85, 58, 0.8) 0px 4px 18px 0px;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.2em;
    letter-spacing: 0.16em;
    justify-content: center;
    align-items: center;
}
@media only screen and (max-width: 768px){
  .point-box {
    font-size: 1.3em;
  }
  #strength  h3 {
    font-size: 1.5em;
  }
}
.steps-title {
  width: 80%;
  margin: 0 .5em 1em 0em;
  background: #008837;
  text-decoration: none;
  color: #444;
  position: relative;
  height: 100px;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-flow: column nowrap;
  font-weight: bold;
}
.form-explain {
  min-height: 5em;
}
.steps-title::after {
  content: " ";
  display: block;
  width: 0;
  height: 0;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
  border-left: 30px solid #008837;
  position: absolute;
  top: 50%;
  margin-top: -50px;
  left: 100%;
  z-index: 2;
}
.steps-title:hover {
  opacity: 0.8;
}

@media print, screen and (max-width: 768px) {
  .steps-title {
    width: 80%;
    margin: 0 auto 30px;
    background: #008837;
    text-decoration: none;
    color: #444;
    position: relative;
    height: auto;
    text-align: center;
    padding: 10px;
  }
  .steps-title::after {
    content: "";
    display: block;
    border-top: 20px solid #008837 !important;
    border-right: 38vw solid transparent !important;
    border-left: 38vw solid transparent !important;
    border-bottom: none;
    position: absolute;
    width: 0;
    height: 0;
    bottom: -20px !important;
    top: auto !important;
    left: 50%;
    margin-top: 0 !important;
    margin-left: -38vw;
  }
}
.col-15, .col-sm-15, .col-md-15, .col-lg-15 {
	position: relative;
	min-height: 1px;
	padding-right: 15px;
	padding-left: 15px;
	width: 100%;
}
@media (min-width: 768px) {
  .col-sm-15 {
    width: 20%;
    flex: 0 0 20%;
  }
}
@media (min-width: 992px) {
  .col-md-15 {
    width: 20%;
    flex: 0 0 20%;
  }
}
@media (min-width: 1200px) {
  .col-lg-15 {
    width: 20%;
    flex: 0 0 20%;
  }
}
.col-15{
  width: 20%;
  flex: 0 0 20%;
}

.recommendation_list {
  padding: 40px 15px 0px;
  background-color: #FFF;
}

.recommendation_list figure {
  width: 120px;
  height: 120px;
  line-height: 120px;
  margin: 0 auto 20px;
  border-radius: 100%;
  color: #FFF;
  font-size: 50px;
  text-align: center;
  background: #008837;
}

.green-box {
  position: relative;
  display: inline-block;
  margin: 1.5em 0;
  padding: 8px 16px;
  min-width: 120px;
  max-width: 100%;
  color: #008837;
  font-size: 16px;
  background: #FFF;
  border: solid 2px #008837;
  box-sizing: border-box;
  border-radius: 8px;
  font-size: 16px;
}

.mvh-price {
  padding: 3em 0;
  background-color: #FFF;
}

.mvh-price a>*:hover {
  opacity: 0.6;
}



/* table set */
.mvh-price table {
  border-collapse: collapse;
  margin: 0 auto;
  padding: 0;
  table-layout: auto;
  width: 100%;
}

.mvh-price table tr {
  background-color: #E0F1E7;
  padding: .35em;
  border-bottom: 2px solid #fff;
}

.mvh-price table th,
.mvh-price table td {
  padding: 1em 10px 1em 1em;
  border-right: 2px solid #fff;
}

.mvh-price table th {
  font-size: .85em;
}

.mvh-price table thead tr {
  background-color: #FFF;
  color: #fff;
  text-align: center;
}

.mvh-price table thead tr span {
  position: relative;
  display: inline-block;
  background-color: #FFF;
  color: #008837;
  padding: 8px 16px;
  border: solid 2px #008837;
  white-space: nowrap;
}

.mvh-price table thead tr span::before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 50%;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
}

.mvh-price table thead tr span::after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 50%;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #008837;
  z-index: 1;
}

.mvh-price table tbody th {
  background: #E0F1E7;
  text-align: center;
}

.mvh-price table tbody th span {
  background-color: #FFF;
  color: #008837;

}

.price {
  text-align: center;
  color: #008837;
  font-weight: bolder;

}

.price span {
  font-size: 12px;
}

.nomal-price {
  text-align: center;
  font-size: .9em;
  font-weight: bold;
}

.nomal-price span {
  font-size: 10px;
}

.non {
  background: #fff
}

@media screen and (max-width: 940px) {
  .mvh-price table {
      border: 0;
      width: 100%
  }

  .mvh-price table th {
      display: block;
      border-right: none;
  }

  .mvh-price table thead {
      border: none;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
  }

  .mvh-price table tr {
      display: block;
      margin-bottom: .625em;
  }

  .mvh-price table td {
      border-bottom: 1px solid #FFF;
      display: block;
      font-size: .8em;
      text-align: right;
      position: relative;
      padding: .625em .625em .625em 4em;
      border-right: none;
  }

  .mvh-price table td::before {
      content: attr(data-label);
      font-weight: bold;
      position: absolute;
      left: 10px;
      color: #008837;
  }

  .mvh-price table td:last-child {
      border-bottom: 0;
  }

  .mvh-price table tbody th {
      color: #008837;
  }

  .price {
      font-size: .9em;
  }

}

/* table set */

.mvh-catalog {
  background: #058137;
  box-shadow: inset 0px -50px 50px -50px rgb(0 0 0 / 20%);
}
.mvh-catalog-textarea {
  padding: 2em;
  color: #fff;
}

#mvh-sup a:hover {
  opacity: 0.7;
}
.mvh-estimate {
  background: #058137;
  box-shadow: inset 0px -50px 50px -50px rgb(0 0 0 / 20%);
}
.mvh-estimate-textarea {
  padding: 2em;
  color: #fff;
}
/*=====================================================
mvh modal window
======================================================*/
.works_item {
  position: relative;
  background-color: #FFF;
  border-radius: 10px;
  box-shadow: rgba(4, 85, 58, 0.8) 0px 4px 18px 0px;
  padding: 20px 15px;
  text-decoration: none;
}
.works_item h3 {
  margin-top: 16px;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 32px;
  text-align: center;
  font-size: 1.2rem;
  color: #008837;
  line-height: 1.1;
  font-weight: 700;  
}
@media only screen and (max-width: 768px){
  .works_item h3{
    font-size: 0.9rem;
    margin-top: 5px;
  }
}

.works_modal_open {
  height: 100px;
  text-align: center;
}
.works_modal_content {
  text-align: center;
}
.works_image_mask {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  opacity: 0;
  background-color: rgba(10, 138, 27, 0.356);
  border-radius: 10px;
  transition: all 0.6s ease;
}
.works_image:hover .works_image_mask {
  opacity: 0.9;
}

/* ------works_modal css------ */
.works_modal_wrapper {
  position: fixed;
  display: flex;
  align-items: center;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  border: none;
  opacity: 0;
  z-index: -1;
}

.works_modal_window {
  width: 420px;
  /*max-width: 1000px;*/
  max-height: 180px;
  margin: auto;
  padding: 15px;
  background: #fff;
  border-radius: 10px;
  border: solid 3px #008837;
  z-index: 1;
  overflow-y: hidden;
}

.works_modal_content {
  margin: 0 auto;
  width: 80%;
  height: 80%;
}

.works_modal_mask {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
}

.works_modal_close {
  z-index: 300;
  position: absolute;
  top: 0;
  right: 10px;
  color: #808080;
  font-size: 1.5rem;
  cursor: pointer;
}

.works_modal_close:hover {
  color: #000;
  transition: all .5s;
}

html.is_open,
body.is_open {
  overflow: hidden;
}

.works_modal_wrapper.is_open {
  animation: works_modal_wrapper_open .5s ease forwards;
}

.works_modal_wrapper.is_open .works_modal_window {
  animation: works_modal_window_open .5s ease forwards;
}

.works_modal_wrapper.is_close {
  animation: works_modal_wrapper_close .5s ease forwards;
}

.works_modal_wrapper.is_close .works_modal_window {
  animation: works_modal_window_close .5s ease forwards;
}

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

  100% {
    opacity: 1;
    z-index: 300;
  }
}

@keyframes works_modal_window_open {
  0% {
    opacity: 0;
    transform: translateY(-30px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes works_modal_wrapper_close {
  0% {
    z-index: 300;
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes works_modal_window_close {
  0% {
    opacity: 1;
    transform: translateY(0);
  }

  100% {
    transform: translateY(-30px);
    opacity: 0;
  }
}

/*MVH評価版DL装飾*/
.ss_trial {
  background: linear-gradient(#2E7D79, #4AC3BD);
}

.ss_trial_textarea{
  padding:2em;
  color:#fff;
}

.ss_trial_imagearea{
  background: url(https://www.cybertrust.co.jp/zabbix/img/zbx-evaluation.png) no-repeat 50% !important;
  background-size:cover !important;
  height:300px;
}

/* FAQアコーディオン  */
.accordion {margin-bottom:1rem;}
.accordion .card-header{padding: .5rem;}
.accordion .card-header .btn-link:hover,  .accordion .card-header .btn-link:focus {text-decoration:none;}

/*===========================================2407 MVH Web css===========================================*/
            .contents p {
                line-height: 1.8;
            }
/* ========= ヘッダー ========== */
#header{
  height:70px; width:100%;
  background:#FFF; color:#3C968B; text-align:center;
  transition:top .3s;
}
.header-wrap{
  max-width:1200px; display:flex; margin:0 auto; padding:8px; align-items:center;
}
@media (max-width:991px){ .header-wrap{ justify-content:space-between; } }

.header_logo{ margin-right:24px; }
.header_logo img{ width:200px; }

#header.fixed{
  position:fixed; top:0; left:0; z-index:999;
  background:#FFF; width:100%; box-shadow:0 2px 5px rgba(0,0,0,.1);
}

/* ========= PCナビ ========== */
.navi-inner{  position: relative; flex-grow:1; display:flex; justify-content:space-between; align-items:center; }

#header nav ul{ list-style:none; display:flex; align-items:center; margin-bottom:0; }
#header nav ul li{ position:relative; }
#header nav ul li a{
  text-decoration:none; font-weight:600; color:#666; padding:10px 20px; transition:all .3s; white-space: nowrap;
}
@media (max-width:1200px){ #header nav ul li a{ padding:10px 16px; } }

#g-navi .dropdown-menu{
  visibility:hidden; opacity:0; position:absolute; top: calc(100% + 16px); left:0; padding: 0 !important;
  background:#FFF; width: 100%;  z-index:1000;
  min-width:240px; list-style:none; padding:8px 0; transition:visibility 0s, opacity .2s linear;
  flex-direction:column; 
}
.dropdown-menu li {
    width: 100%;
    display: block;
    
}
.dropdown-toggle::after { margin-left: 12px;}

#g-navi li:hover > .dropdown-menu, #g-navi li.current > .dropdown-menu{ visibility:visible; opacity:1; }
#g-navi .dropdown-menu li a{ padding:16px 24px; color:#666; display:block; text-decoration:none; font-size:13px; }
.dropdown-menu li a:hover{ background:#f5f5f5; }

#header #g-navi li a:hover, #header #g-navi li.current a{ color:#3C968B; }
#header #g-navi li:hover::after, #header #g-navi li.current::after{
  content:''; position:absolute; top: calc(100% + 16px); left:0; bottom:0; width:100%; height:2px; background:#3C968B;
}
.dropdown-menu > li:hover::after {
    top: 100% !important;
    background: #3C968B !important;;
}

/* ========= CTAボタン ========= */
#r-navi{ display:flex; }
.nav-btn, .nav-g-btn{
  height:40px; font-weight:600; font-size:13px; border-radius:30px;
  text-decoration:none; transition:opacity .5s; white-space:nowrap;
}
.nav-btn{ background:#F38F1D; color:#FFF !important; border:3px solid #F38F1D; }
.nav-g-btn{ background:#FFF !important; color:#3C968B !important; border:3px solid #3C968B; }
.nav-btn:hover{ opacity:.7; box-shadow:0 2px 3px rgba(0,0,0,.3); }
.nav-g-btn:hover{ background:#3C968B !important; color:#FFF !important; }
@media (max-width:1200px){
  .nav-btn, .nav-g-btn{ display:block; height:auto; max-width:320px; margin:8px auto; }
}

/* ========= ハンバーガー（3本線→×、中央で交差） ========= */
.hamburger-menu{
  display:none; width:30px; height:30px; background:transparent; border:0; cursor:pointer;
  padding:0; position:relative; z-index:1200;
}
.hamburger-menu span{
  position:absolute; left:0; right:0; margin:0 auto;
  width:24px; height:3px; background:#3C968B; border-radius:2px;
  transform-origin:50% 50%; transition:transform .25s ease, opacity .2s ease;
}
.hamburger-menu span:nth-child(1){ top:6px; }
.hamburger-menu span:nth-child(2){ top:13.5px; }
.hamburger-menu span:nth-child(3){ top:21px; }
.hamburger-menu.open span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.hamburger-menu.open span:nth-child(2){ opacity:0; }
.hamburger-menu.open span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* ========= モバイルメニュー ========== */
.dropdown-menu-mobile{
  display:none; position:fixed; top:0; left:0; width:100%;
  background:#FFF; box-shadow:0 8px 16px rgba(0,0,0,.2); z-index:1000; transition:max-height .3s ease;
}
.menu-backdrop{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.32); z-index:900; }
.menu-backdrop.show{ display:block; }

/* ========= 991px以下 ========= */
@media (max-width:991px){
  .navi-inner{ display:none !important; }
  .hamburger-menu{ display:flex !important; }
  #header{ position:relative; z-index:1100; }

  .dropdown-menu-mobile.open{ display:block; }
  .dropdown-menu-mobile ul{ list-style:none; margin:0; padding:0; }
  .dropdown-menu-mobile > ul > li{ border-bottom:1px solid #f2f2f2; }

  .dropdown-menu-mobile a{
    display:block; padding:16px; line-height:1.5; color:#333; font-weight:600; text-decoration:none;
    position:relative; transition:color .2s ease;
  }
  /* ホバー色＋下線スライド（トグル以外） */
  #dropdown-menu-mobile a:hover, #dropdown-menu-mobile a:focus-visible{ color:#3C968B; }
  #dropdown-menu-mobile a:not(.dropdown-toggle)::before{
    content:""; position:absolute; left:16px; right:16px; bottom:6px; height:2px; background:#3C968B;
    transform:scaleX(0); transform-origin:left center; transition:transform .18s ease; pointer-events:none;
  }
  #dropdown-menu-mobile a:not(.dropdown-toggle):not(.nav-g-btn):not(.nav-btn):hover::before,
  #dropdown-menu-mobile a:not(.dropdown-toggle):focus-visible::before{ transform:scaleX(1); }
  #dropdown-menu-mobile .mobile-submenu a:not(.dropdown-toggle)::before{ left:28px; }
  #dropdown-menu-mobile a:active{ opacity:.85; }

  /* サブメニュー（アコーディオン） */
  #dropdown-menu-mobile .mobile-submenu{ display:none; position:static; background:#f7f7f7; }
  #dropdown-menu-mobile .mobile-dropdown.open > .mobile-submenu{ display:block; }
  #dropdown-menu-mobile .mobile-submenu > li{ border-bottom:1px solid #ededed; }
  #dropdown-menu-mobile .mobile-submenu li a{ padding:14px 16px 14px 28px; font-weight:500; color:#555; }

  /* ▼ トグル矢印（サイズ14pxにUP） */
  #dropdown-menu-mobile .mobile-dropdown > .dropdown-toggle{ position:relative; }
  #dropdown-menu-mobile .mobile-dropdown > .dropdown-toggle::after{
    content:""; position:absolute; right:18px; top:50%; width:14px; height:14px;
    transform:translateY(-50%) rotate(0deg); transition:transform .2s ease; background-color:#6a6a6a;
    -webkit-mask:url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\
<path d="M9 6l6 6-6 6"/></svg>') no-repeat center / contain;
            mask:url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\
<path d="M9 6l6 6-6 6"/></svg>') no-repeat center / contain;
  }
  #dropdown-menu-mobile .mobile-dropdown.open > .dropdown-toggle::after{
    transform:translateY(-50%) rotate(90deg);
  }

  @media (prefers-reduced-motion:reduce){
    #dropdown-menu-mobile a, #dropdown-menu-mobile a::before{ transition:none; }
  }
}
  


/*-- ナビCSSここまで --*/

            /*==========TOP===========*/
            .top-wrapper {
                padding: 80px 0 32px 0;
                box-shadow: inset 0px -15px 10px -10px rgb(0 0 0 / 20%);
                background: #3C968B url(/vul-hammer/img/top-background.png) center no-repeat;
            }
            
            .top-content {
                display: flex;
                flex-direction: column;
                justify-content: center;
                max-width: 500px;

            }
            .top-content h1 {
                text-align: center;
                font-size: 1.5em;
                color: #3C968B;
                letter-spacing: .3rem;
            }
            @media (max-width: 768px) {
                .top-content h1 {
                    font-size: 24px;
                }
            }

            .top-content img {
                max-width: 360px;
                width: 100%;
            }

            .top-content-subttl {
                font-size: 22px;
                color: #3C968B;
            }
            .top-label > span {
                color: #3C968B;
                font-weight: bold;
                margin: 0px;
                font-size: 80%;
                padding: 4px 16px;
                background: #fdff75;
                border-radius: 8px;

            }

            .top-button_01 a {
                display: inline-block;
                outline: none;
                cursor: pointer;
                font-size: 22px;
                line-height: 1;
                border-radius: 500px;
                transition-property: background-color, border-color, color, box-shadow, filter;
                transition-duration: .3s;
                border: 1px solid transparent;
                letter-spacing: 2px;
                text-transform: uppercase;
                white-space: normal;
                font-weight: 700;
                text-align: center;
                padding: 16px 14px 18px;
                color: #fff;
                background-color: #FF9500;
                height: 56px;
                width: 480px;
            }

            .top-button_01 :hover {
                background-color: #f7ae48
            }

            .top-button_02 a {
                display: inline-block;
                outline: none;
                cursor: pointer;
                font-size: 22px;
                line-height: 1;
                border-radius: 500px;
                transition-property: background-color, border-color, color, box-shadow, filter;
                transition-duration: .3s;
                border: 3px solid transparent;
                border-color: #3C968B;
                letter-spacing: 2px;
                text-transform: uppercase;
                white-space: normal;
                font-weight: 700;
                text-align: center;
                padding: 16px 14px 18px;
                color: #3C968B;
                background-color: #FFF;
                height: 56px;
                width: 480px;

            }

            .top-button_02 :hover {
                color: #fff;
                background-color: #3C968B;
            }

            @media (max-width: 768px) {

                .top-button_01 a,
                .top-button_02 a {
                    width: 90vw;
                    margin: auto;
                    justify-content: center;
                }
            }

            .top-button_01-sub {
                display: inline-block;
                position: relative;
                z-index: 2;
                margin: 0 auto -8px;
                outline: none;
                cursor: pointer;
                font-size: 14px;
                border-radius: 500px;
                transition-property: background-color, border-color, color, box-shadow, filter;
                transition-duration: .3s;
                letter-spacing: 2px;
                text-transform: uppercase;
                white-space: normal;
                font-weight: 700;
                text-align: center;
                padding: 4px 24px;
                box-shadow: inset 0 0 0 3px #FF9500;
                background-color: #fff;
                height: auto;
            }
            .top-button_02-sub {
                display: inline-block;
                position: relative;
                z-index: 2;
                margin: 0 auto -8px;
                outline: none;
                cursor: pointer;
                font-size: 14px;
                border-radius: 500px;
                transition-property: background-color, border-color, color, box-shadow, filter;
                transition-duration: .3s;
                letter-spacing: 2px;
                text-transform: uppercase;
                white-space: normal;
                font-weight: 700;
                text-align: center;
                padding: 4px 24px;
                box-shadow: inset 0 0 0 3px #3C968B;
                background-color: #fff;
                height: auto;
            }

            .cv-wrapper {
                padding: 40px 0px 24px;
            } 

            .banner-wrapper {
                padding: 40px;
                background: #e1eee5;
            }
            .banner-wrapper a {
                color: inherit;
                text-decoration: none;
            }
            .banner-wrapper a:hover {
                opacity: 0.6;
            }
            .banner-card {
                width: 720px;
                max-width: 100%;
                padding: 8px;
                margin: auto;
                background: #FFF;
                box-shadow: 0px 0px 15px -5px #bdbdbd;
                border-radius: 4px;
            }
            .banner-card img {
                width: 120px;
            }
            .b-card-ttl {
                max-width: 380px;
                font-weight: bold;
                letter-spacing: 0.1em;
                color: #464646;
            }
            .banner-arrow {
                width: 0;
                height: 0;
                border-top: 20px solid transparent;
                border-bottom: 20px solid transparent;
                border-left: 20px solid #3C968B; 
                margin-left: 20px;
                }

            .feature {
                padding: 80px 0px;
                position: relative;
            }

            .feature >.contents span {
                color: #3C968B;
            }

            .feature-txt {
                max-width: 500px;
            }
            @media (max-width: 1056px) {
                .feature-txt {
                    padding-top: 32px;
                    
                }
            }

            .feature::before {
                content: '';
                position: absolute;
                bottom: 0;
                left: 50%;
                width: 0;
                height: 0;
                border-top: 40px solid #ffffff;
                border-right: 120px solid transparent;
                border-left: 120px solid transparent;
                border-bottom: 0px solid transparent;
                transform: translateX(-50%) translateY(100%);
            }


            .intro {
                padding: 80px 0px;
                background: #F2F5F4;
            }
            
            .intro-ttl {
                text-align: center;
            }
            .intro-ttl img {
                width: 360px;
                max-width: 100%;
                padding-bottom: 32px;
                margin-right: 16px;
            }
            .intro-box {
                display: flex;
                width: 300px;
                height: 360px;
                background: #FFF;
                border-radius: 300px;
                justify-content: center;
            }

            .intro-con {
                position: relative;
                text-align: center;
                width: 230px;
                padding: 10px 0px;
                background-position: 50%  30%;
                background-size: auto;

            }

            /* 各intro-con要素に異なる背景画像を指定 */
            .intro-box:nth-of-type(1) .intro-con {
                background-image: url('/vul-hammer/img/intro-icon_01.png');
                background-repeat: no-repeat;
                background-size: auto 140px;
            }

            .intro-box:nth-of-type(2) .intro-con {
                background-image: url('/vul-hammer/img/intro-icon_02.png');
                background-repeat: no-repeat;
                background-size: auto 140px;
            }

            .intro-box:nth-of-type(3) .intro-con {
                background-image: url('/vul-hammer/img/intro-icon_03.png');
                background-repeat: no-repeat;
                background-size: auto 140px;
            }

            
            .intro-con h3 {
                display: flex;
                flex-direction: column;
                color: #3C968B;
                margin-bottom: 0px;
            }

            .intro-box:nth-of-type(2) h3 {
                line-height: 1;
                padding-top: 8px;
            }
            @media (max-width: 1056px) {
                .intro-box:nth-of-type(2) h3 {
                    font-size: 150%;
                }
            }
            .num {
                padding-bottom: 120px;
                font-size: 48px;
            }

            .intro-box:nth-of-type(2) .num {
                padding-bottom: 140px;
            }
            @media (max-width: 1056px) {
                .intro-box:nth-of-type(2) .num {
                    padding-bottom: 130px;
                }
            }

            @media (max-width: 1056px) {
                .intro-box { width: 270px; height: 330px; max-width: 270px; }
                .intro-con { width: 230px; padding: 40px 0px; background-position: 50%  36%; }
                .intro-con p { font-size: 13px; }   
                .num { padding-bottom: 120px; font-size: 32px; }
            }
            .intro-contents {
                padding: 80px 0px;
                background: #F2F5F4;
                max-width: 1200px;
                margin: 0 auto;
                position: relative;
                overflow: hidden;
                z-index: 0;
            }

            .intro-con01 {
                position: relative;
                z-index: 1;
            }

            .intro-con02 {
                position: relative;
                display: flex;
                flex-direction: row-reverse;
                margin-top: 160px;
                z-index: 1;
            }
            .intro-con03 {
                position: relative;
                display: flex;
                margin-top: 160px;
                z-index: 1;
            }
            .intro-con-box {
                box-shadow: 5px 1px 18px -8px #777777;
                margin-top: 100px;
                padding: 80px 80px;
                background: #FFF;
                border-radius: 8px;
                max-width: 560px;
            }

            .intro-con-box h3 {
                color: #3C968B;
            }
            
            .intro-con01 > .intro-con-box::after {
                content: "";
                background: url('/vul-hammer/img/intro-con01_img.png') no-repeat;
                background-position: 150%;
                height: 580px;
                width: 100%;
                background-size: auto 580px;
                align-items: center;
                margin-top: -400px;
                padding: 0px;
                display: block;
                position: absolute;
                z-index: -1;
            }
            
            .intro-con02 > .intro-con-box::after {
                content: "";
                background: url('/vul-hammer/img/intro-con02_img.png') no-repeat;
                background-position: left center;
                background-size: auto 480px;
                height: 580px;
                width: 100%;
                margin-top: -400px;
                padding: 0px;
                display: block;
                left: 0;
                position: absolute;
                z-index: -1;
                
            }

            .intro-con03 > .intro-con-box::after {
                content: "";
                background: url('/vul-hammer/img/intro-con03_img.png') no-repeat;
                background-position: 80%;
                height: 580px;
                width: 100%;
                background-size: auto 480px;
                align-items: center;
                margin-top: -400px;
                padding: 0px;
                display: block;
                position: absolute;
                z-index: -1;
            }
            
            @media (max-width: 840px) {
                .intro-con01 > .intro-con-box::after {
                    background-position: center top;
                    background-size: 100% auto;
                    margin-top: -430px;
                    left: 0;
                    z-index: -2;
                }
                .intro-con02 > .intro-con-box::after {
                    background-position: center top;
                    background-size: 50% auto;
                    margin-top: -430px;
                    left: 0;
                }
            
                .intro-con03 > .intro-con-box::after {
                    background-position: center top;
                    background-size: 50% auto;
                    margin-top: -460px;
                    left: 0;
                }

                .intro-con-box {
                    max-width: unset;
                    padding: 30px 20px;
                    margin: 160px 8px 10px;
                }
            }
            .link-btn {
                    background: #F38F1D; /* 背景色 */
                    color: #fff; /* 文字色 */
                    font-weight: 600;
                    padding: 8px 40px; /* 上下の余白、左右の余白 */
                    text-decoration: none; /* デフォルトで入る下線を消す */
                    border-radius: 30px; /* 角を丸くする */
                    transition-property: opacity;
                    　-webkit-transition-property: opacity;
                    transition-duration: .5s;
                    -webkit-transition-duration: .5s;
                }
            .link-btn:hover {
                opacity: .7;
            }


            .cv-banner {
                padding: 50px 0;
            }

            .cv-box {
    margin: 0 auto;
    max-width: 800px;
    box-shadow: 0px 0px 15px -5px #777777;
    border-radius: 10px; /* 全体の角丸を指定 */
    overflow: hidden; /* 内部要素に角丸を適用 */
    position: relative; /* 画像の位置調整のために relative を追加 */
}

.cvbox-ttl {
    display: flex;
    align-items: center;
    background: #3C968B;
    color: #FFF;
    padding: 16px 24px;
    position: relative; /* 画像の位置調整のために relative を追加 */
    justify-content: flex-start; /* タイトルが右によらないように調整 */
}

.cvbox-ttl h3 {
    font-size: 1.5rem;
    margin-left: 8px;
    margin-bottom: 0;
    text-align: left; /* タイトルを左揃えに設定 */
}

@media only screen and (max-width: 767px) {
    .cvbox-ttl h3 {
        font-size: 16px;
    }
}

.cvbox-ttl p {
    color: #F38F1D;
    font-weight: 600;
    background: #FFF;
    padding: 6px 24px;
    border-radius: 600px;
    margin-bottom: 0;
}

.cvbox-txt {
    padding: 30px 24px;
    font-size: 120%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding-left: 240px; /* 画像の幅を考慮してパディングを追加 */
}

.cvbox-txt h4 {
    font-size: 90%;
    flex-grow: 1;
    margin-right: 16px;
    text-align: left;
}

.cvbox-txt .cvbox-link {
    flex-shrink: 0;
}

.cvbox-link a {
    white-space: nowrap;
}

.cvbox-img {
    position: absolute;
    top: 50%; /* タイトルと本文の中央に画像を配置 */
    left: 32px;
    transform: translateY(-50%); /* 垂直方向に中央に配置 */
    width: 180px;
    height: auto;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* 画像にシャドウを追加 */
}

@media only screen and (max-width: 767px) {
    .cvbox-txt {
        flex-direction: column;
        text-align: center;
        padding-left: 16px; /* モバイル時のパディングを調整 */
    }

    .cvbox-txt h4 {
        margin-bottom: 16px;
    }

    .cvbox-img {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        margin-bottom: 16px;
    }
}

@media only screen and (max-width: 318px) {
    .cvbox-txt {
        padding-left: 48px; 
    }
}
            .sbom-consul {
                background: url('/vul-hammer/img/sbom-consul_bg.png');
                padding: 80px 0px;
                text-align: center;
            }
            .sbom-consul h3 {
                color: #3C968B;
            }
            .sbom-con-ttl {
                font-size: 80%;
            }
            .sbon-con-txt {
                max-width: 560px;
                margin: 20px auto;
            }
            .flow {
                padding: 80px 0px;
            }
            .flow h3 {
                color: #3C968B;
                text-align: center;
            }
            .stepbar {
                margin: 0 auto;
                width: 70%;
                }

                .stepbar .stepbarwrap {
                margin: 2em 0;
                position: relative;
                }

                .stepbar .stepbarwrap .steptitle {
                display: inline-flex;
                align-items: center;
                }

                .stepbar .stepbarwrap .steptitle .stepcircle {
                display: inline-block;
                width: 5em;
                height: 5em;
                content: "";
                border-radius: 50%;
                background-color: #3C968B;
                color: #fff;
                text-align: center;
                }

                .stepbar .stepbarwrap .steptitle .stepcircle span {
                display: inline-block;
                line-height: 1.1em;
                font-size: 1.8em;
                font-weight: bold;
                position: relative;
                top: 0.9em;
                }

                .stepbar .stepbarwrap .steptitle .title {
                margin: 0.5em;
                font-weight: bold;
                font-size: 1.2em;
                }

                /*.stepbar .stepbarwrap {
                padding-left: 4.5em;
                }*/
                .steptxt {
                    padding: 20px;
                    box-shadow: 0px 0px 15px -5px #777777;
                    border-radius: 10px;
                    margin-left: 6em;
                }

                .stepbar .stepbarwrap .steptxt .txt {
                font-size: 0.9em;
                }

                .stepbar .stepbarwrap .stepline {
                    width: 1px;
                    height: calc(100% + 2em);
                    background-color: #3C968B;
                    position: absolute;
                    top: 1em;
                    left: 2.5em;
                    z-index: -1;
                }

                .stepbarwrap:last-of-type .stepline:last-of-type {
                    display: none;
                }

                @media screen and (max-width: 960px) {
                .stepbar {
                    width: 90%;
                }
                }
                .doc-link {
                    padding: 80px 0px;
                    background: #D6ECD3;
                }
                .doc-link h3 {
                    text-align: center;
                    color: #3C968B;
                    margin-bottom: 32px;
                }
                .doc-link h4 {
                    margin: 16px 0px;
                    font-size: 120%;
                }
                .doc-thumb {
                    display: block;
                    max-width: 370px;
                    height: 240px;
                    background: #FFF;
                    margin-left: auto; /* 左側の余白を自動調整 */
                    margin-right: auto; /* 右側の余白を自動調整 */
                }
                .doc-thumb img {
                    max-height: 320px;
                    padding-bottom: 40px;
                }
                .doc-btn {
                    background: #F38F1D; /* 背景色 */
                    color: #fff; /* 文字色 */
                    font-weight: 600;
                    padding: 8px 40px; /* 上下の余白、左右の余白 */
                    text-decoration: none; /* デフォルトで入る下線を消す */
                    border-radius: 30px; /* 角を丸くする */
                    transition-property: opacity;
                    　-webkit-transition-property: opacity;
                    transition-duration: .5s;
                    -webkit-transition-duration: .5s;
                }
                .doc-btn:hover {
                    opacity: .7;
                }

                .news {
                    padding: 80px 0px;
                }

                .mvh-inqury {
                    padding: 80px 0px;
                    background:  #F2F5F4;
                }

                .cv-wrapper {
                    padding: 20px 0;
                }
/*===========================================2410 MVH オンプレ Web css===========================================*/
.onpre-top-wrapper {
  padding: 80px 0 32px 0;
  box-shadow: inset 0px -15px 10px -10px rgb(0 0 0 / 20%);
  background: #008837 url(/vul-hammer/img/onpre-top-background.png) center no-repeat;
}

.onpre-top-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 600px;

}
.onpre-top-content h1 {
  text-align: center;
}
.onpre-top-content h1 span {
  color: #F38F1D;
}
.onpre-top-content img {
  max-width: 560px;
  width: 100%;
}

.onpre-top-content-subttl {
  font-size: 22px;
  color: #008837;
}

.onpre-top-button_01 a {
  display: inline-block;
  outline: none;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  border-radius: 500px;
  transition-property: background-color, border-color, color, box-shadow, filter;
  transition-duration: .3s;
  border: 1px solid transparent;
  letter-spacing: 2px;
  text-transform: uppercase;
  white-space: normal;
  font-weight: 700;
  text-align: center;
  padding: 16px 14px 18px;
  color: #fff;
  background-color: #FF9500;
  height: 56px;
  width: 480px;
}

.onpre-top-button_01 :hover {
  background-color: #f7ae48
}

.onpre-top-button_02 a {
  display: inline-block;
  outline: none;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  border-radius: 500px;
  transition-property: background-color, border-color, color, box-shadow, filter;
  transition-duration: .3s;
  border: 3px solid transparent;
  border-color: #008837;
  letter-spacing: 2px;
  text-transform: uppercase;
  white-space: normal;
  font-weight: 700;
  text-align: center;
  padding: 16px 14px 18px;
  color: #008837;
  background-color: #FFF;
  height: 56px;
  width: 480px;

}

.onpre-top-button_02 :hover {
  color: #fff;
  background-color: #008837;
}

@media (max-width: 768px) {

  .top-button_01 a,
  .onpre-top-button_02 a {
      width: 90vw;
      margin: auto;
      justify-content: center;
  }
}

.onpre-top-button_01-sub {
  display: inline-block;
  position: relative;
  z-index: 2;
  margin: 0 auto -8px;
  outline: none;
  cursor: pointer;
  font-size: 14px;
  border-radius: 500px;
  transition-property: background-color, border-color, color, box-shadow, filter;
  transition-duration: .3s;
  letter-spacing: 2px;
  text-transform: uppercase;
  white-space: normal;
  font-weight: 700;
  text-align: center;
  padding: 4px 24px;
  box-shadow: inset 0 0 0 3px #FF9500;
  background-color: #fff;
  height: auto;
}
.onpre-top-button_02-sub {
  display: inline-block;
  position: relative;
  z-index: 2;
  margin: 0 auto -8px;
  outline: none;
  cursor: pointer;
  font-size: 14px;
  border-radius: 500px;
  transition-property: background-color, border-color, color, box-shadow, filter;
  transition-duration: .3s;
  letter-spacing: 2px;
  text-transform: uppercase;
  white-space: normal;
  font-weight: 700;
  text-align: center;
  padding: 4px 24px;
  box-shadow: inset 0 0 0 3px #008837;
  background-color: #fff;
  height: auto;
}

.onpre-cv-wrapper {
  padding: 40px 0px 24px;
} 


#feature span {
  color: #008837;
}

#feature feature-txt {
  max-width: 500px;
}
@media (max-width: 1056px) {
  #feature feature-txt {
      padding-top: 32px;
      
  }
}
/*================= 2411 プチ改修===================*/

.top-content-subtxt >ul {
  list-style:none;
}

.info-btn {
  display: inline-block;
  position: relative;
  width: 340px;
  padding: 12px 25px;
  border-radius: 30px;
  color: #000;
  font-size: 12px;
  text-align: left;
  background: #eee;
}

.info-btn:after {
  content: "\F285";
  position: absolute;
  top: 50%;
  right: 15px;
  font-family: 'bootstrap-icons';
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.info-btn:hover {
  color: inherit;
  text-decoration: none;
  background: #ccc;
}

/*================== 2410 問い合わせフォーム ==================*/
.bubble-container {
    position: relative;
    padding: 20px;
    background-color: #fcfffd;
    border-radius: 10px;
    display: inline-block; /* 吹き出しのサイズをコンテンツに合わせる */
}
.bubble {
    font-size: 16px;
    line-height: 1.5;
}

.bubble-arrow {
    position: absolute;
    bottom: -20px; /* 下に配置 */
    left: 20px;    /* 左右位置を調整 (任意で変更可能) */
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 20px solid #fcfffd; /* 上向きの三角形 */
}

/* モバイル対応 */
@media screen and (max-width: 768px) {
    .bubble-container {
        margin-bottom: 20px;
    }
}


