@charset "utf-8";

@font-face {
  font-family: 'HannariMincho';
  src: url('../fonts/HannariMincho-Regular.woff') format('woff');
}

html {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  scroll-behavior: smooth;
  font-size: 62.5%;
}
body {
  color: #0b0b0b;
  font-family: "HannariMincho", serif;
  background: #F1F1F1;
  margin: auto;
  width: 100%;
  font-size: 20px;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}

@media screen and (min-width: 769px) {
    body {
        display: grid;
    }
}
/*@media screen and (max-width: 389px) {
    body {
        display: grid;
    }
}*/
h1{
  margin: 0;
  font-size: 40px;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 4.5px;
}
h2 {
  margin: 0;
  font-size: 2.3438vw;
  line-height: 2.3438vw;
  font-weight: normal;
}
h3 {
  font-size: 1.5em;
  font-weight: 550;
  line-height: 1.5em;
}
p{
  font-size: 16px;
  letter-spacing:0;
}
@media only screen and (max-width: 768px) {
  p{
    font-size: 3.846vw;
  }
}
.pc {
  display: block !important;
  line-height: 0;
}
.sp {
  display: none !important;
}
@media only screen and (max-width: 768px) {
  .pc {
    display: none !important;
  }
  .sp {
    display: block !important;
  }
  }
/*---------------------------------------- ファーストビュー ----------------------------------------*/
*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}
ul{
  padding: 0;
  margin: 0;
}
li{
  list-style: none;
}
.fv{
    position: relative;
    height: calc((731 / 800) * 100vh);
    width: 73.1%;
    margin: 0 0 0 auto;
}
@media only screen and (max-width: 768px) {
    .fv{
        width: 100%;
        height: 197.7vw;
        max-height: 100vh;
    } 
}
.view{
width: 100%;
height: calc(100vh + 9.4531vw);
/*height: 921px;*/
background-color: #0b2d6c;
color: #F1F1F1;
position: relative;
}
@media only screen and (max-width: 768px) {
    .view {
        /*height: 216.41vw;*/
        height: 100vh;
    }
}
.fv_wrap {
    height: 100vh;
    position: relative;
}
.fv img{
position: absolute;
top: 0%;
right: 0%;
object-fit: cover;
height: calc((731 / 800) * 100vh);
width: 100%;
aspect-ratio: 937/731;
z-index: 1;
}
@media only screen and (max-width: 768px){
.fv img{
width: 100%;
height: 110vw;
    }
}
.fv_text{
position: absolute;
/*bottom: -5.8594vw;*/
bottom: -5vw;
left: -24.2188vw;
z-index: 1;
color: #F1F1F1;
}
@media only screen and (max-width: 768px){
    .fv_text{
        bottom: 11.2%;
        left: 3.8462vw;
    }
}
.fv_text h1{
    margin: 0;
    font-size: 3.5156vw;
    line-height: 5.0781vw;
  }
@media only screen and (max-width: 768px){
    .fv_text h1{
        font-size: 7.692vw;
        letter-spacing: 0.769vw;
        line-height: 11.538vw;
        margin-bottom: 5.385vw;
    }
  }
.fv_text p{
    width: 38.2813vw;
}
@media only screen and (max-width: 768px){
    .fv_text p{
        width: 95%;
    }
}
.view p{
line-height: 2.8125vw;
}

@media only screen and (max-width: 768px){
    .view p{
        letter-spacing: 0;
        line-height: 7.554vw;
        margin-top: 4.2vw;
        margin-bottom: 0;
    }
}
/*---------------------------------------- ヘッダーメニュー ----------------------------------------*/
header {
    position: fixed;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 6.2500vw;
    z-index: 9999;
  }
  @media only screen and (max-width: 768px){
    header {
        position: fixed;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        height: 20.51vw;
        z-index: 9999;
      }
  }
  header a {
    text-decoration: none;
  }
  .logo {
    width: 15.7813vw;
    height: 3.2812vw;
  }
  .logo img {
    width: 15.7813vw;
    height: 3.2812vw;
    margin-top: 0.1562vw;
  }
  @media only screen and (max-width: 768px){
    .logo img {
      width: 38.97vw;
      height: 8.974vw;
      margin-top: 1.282vw;
    }
  }
.header-inner{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 1.1719vw auto 0;
    max-width: 95.9375vw;
  }
  @media only screen and (max-width: 768px){
    .header-inner{
        margin: 3.846vw 3.590vw;
        max-width: 100%;
    }
  }
  .menu-wrapper{
    display: flex;
    justify-content: space-between;
    background-color: #000;
    border-radius: 100px;
    height: 3.5938vw;
    padding: 0 1.4062vw 0 1.5625vw;
    width: 100%;
    max-width: 80.7031vw;
    margin-right: 1.5625vw;
    margin-left: 0.6250vw;
  }
  @media only screen and (max-width: 768px){
    .menu-wrapper{
        width: 100%;
        max-width: 100%;
        height: 11.795vw;
        margin-right: unset;
        padding: 0 4.615vw 0 2.821vw;
        margin-left: 0;
        margin-right: 0px;
    }
  }
.menu-lists {
    height: inherit;
}
.menu-lists ul {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    height: inherit;
}
@media only screen and (max-width: 768px){
    .menu-lists ul {
        height: unset;
        margin-top: 5.641vw;
    }
}
.menu-lists ul li {
    position: relative; /* ドロップダウンメニューの基点 */
    font-size: 1.0938vw;
    letter-spacing: 0.0680vw;
    white-space: nowrap;
    margin-left: 2.1094vw;
    color: #F1F1F1;
    height: inherit;
}
@media only screen and (max-width: 768px){
    .menu-lists ul li {
        margin-right: 0;
        margin-left: unset;
        height: unset;
        font-size: 4.10vw;
        letter-spacing: 0.26vw;
    }
}
.menu-lists ul li a {
    text-decoration: none;
    color: #F1F1F1;
    display: block;
    height: inherit;
    padding-top: 1.29vw;
}
@media only screen and (max-width: 768px){
    .menu-lists ul li a {
        height: unset;
        padding-block: 5.4vw;
        letter-spacing: 0.21vw;
        padding-top: 4.10vw;
    }
}
@media only screen and (max-width: 768px){
    .menu-lists ul li .menu_accordion {
        padding-block: unset;
    }
}
.pt12{
    padding-top: 1.29vw;
}
@media only screen and (max-width: 768px){
    .pt12 {
        padding-top:2.44vw;
    }
}
/* ▼ ドロップダウンメニュー（初期状態は非表示） */
.menu-lists li ul {
    position: absolute;
    top: 4.3750vw;
    left: -17.34vw;
    background: #262626;
    padding: 0.7812vw 1.5625vw;
    border-radius: 0.9375vw;
    width: auto;
    height: auto;
    z-index: 100;
    /* ▼ 透明化して非表示 */
    opacity: 0;
    visibility: hidden;
    /* ▼ アニメーション設定 */
    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}
@media only screen and (max-width: 768px){
    .menu-lists li ul {
        position: absolute;
        top: 6.63vh;
        left: -56.92vw;
        background: #262626;
        padding: 2.564vw 5.13vw;
        border-radius: 3.08vw;
        width: auto;
        height: auto;
        z-index: 100;
        /* ▼ 透明化して非表示 */
        opacity: 0;
        visibility: hidden;
        /* ▼ アニメーション設定 */
        transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
    }
}
/* ▼ ホバー or フォーカス時に表示 */
.menu-lists li.parent:hover > ul,
.menu-lists li.parent:focus-within > ul {
    opacity: 1;
    visibility: visible;
}
/* ▼ ホバー解除後に0.5秒の遅延 */
.menu-lists li ul {
    transition-delay: 0s, 0.2s;
    padding: 1.4062vw 2.3438vw 0.0781vw;
    gap: 2.3438vw;
}
@media only screen and (max-width: 768px){
    .menu-lists li ul {
        padding: 4.615vw 7.69vw 0.256vw;
        gap: 7.69vw;
    }
}
/* 子メニューの各項目 */
.menu-lists li ul li {
    text-align: center;
    margin-left: unset;
}
.menu-lists .dropdown li a {
    padding: unset;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.menu-lists .parent a {
    padding-block: 0.73vw;
    letter-spacing: 0.14vw;
}
@media (max-width:768px){
    .menu-lists .parent a {
        padding-block: 2.38vw;
        letter-spacing: 0.46vw;
    }
}
/* 画像のスタイル */
.menu-lists li ul li img {
    width: 10.16vw;
    height: 5.7812vw;
    height: auto;
    display: block;
}
@media (max-width:768px){
    .menu-lists li ul li img {
        width: 33.33vw;
        height: 18.974vw;
        height: auto;
        display: block;
    } 
}
.menu-lists li ul li span {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-block: 0.9375vw;
    height: 100%;
    line-height: 1.5625vw;
    letter-spacing: 0.01vw;
}
@media (max-width:768px){
    .menu-lists li ul li span {
        padding-block: 1.42vh;
        line-height: 2.370vh;
        letter-spacing: 0.036vw;
    }
}
/* リンクのホバー時の効果 */
.menu-lists li a:hover {
    opacity: 0.8;
    transition: 0.3s ease-in-out;
}
.menu-lists p{
    color: #F1F1F1;
    margin-top: 3.66vw;
    margin-bottom: 3.7500vw;
}
@media (max-width:768px){
    .menu-lists p{
        margin-top: 11.00vw;
        margin-bottom: 6.41vw;
        line-height: 6.2vw;
    }
}
.mr0{
    margin-right: 0!important;
}
  @media (max-width:768px){
    .btn{
        width: 100%;
        display: block;
        width: 10.000vw;
        height: 10.000vw;
        position: absolute;
        right: 7.436vw;
        top: 4.615vw;
        z-index: 9999;/*追記：いつも一番上*/
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-between;
    }
    .bar{
        width: 7.692vw;
        height: 0.256vw;
        display: block;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        background-color: #F1F1F1;
        transition: transform 0.3s, opacity 0.3s;
    }
    .bar-top{
      top: 2.564vw;
    }
    .bar-middle{
        margin-top: 5.128vw;
    }
    .menu-text {
        font-size: 3.077vw;
        color: #F1F1F1;
        text-align: center;
        margin-top: 6.154vw;
        transition: opacity 0.3s;
        display: block;
        font-family: "GFS Didot", serif;
        font-weight: 400;
        font-style: normal;
    }
    .btn.close .bar-top{      
        transform: translateY(1.282vw) translateX(-3.85vw) rotate(17deg);
    }  
    .btn.close .bar-middle{      
        transform: translateY(-1.282vw) translateX(-3.85vw) rotate(-19deg);
    }    
    .btn.close .menu-text {
        content: "close";
        margin-top: 6.410vw;
        transition: transform 0.3s, opacity 0.3s;
    }
    .menu-lists{
        display: none;
        background-color: #000;
        width: 100%;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        padding-top: 12.821vw;
        text-align: center;
        overflow-y: scroll;
    }
    .menu-lists ul{
        display: block;
    }
    .menu-lists a{
        text-emphasis: none;
        color: #F1F1F1;
        letter-spacing: 0.36vw;
    }
    .menu-lists .sp_last {
    margin-top: 10.00vw;
    letter-spacing: 0.19vw;
    }
    .btn_m + .btn_m {
        margin-top: 10.256vw;
    }
  }
  .toggle-btn{
    display: none;
  }
  /*  アコーディオン（スマホ時のみ表示） */
@media only screen and (max-width: 768px) {
    .accordion-008 {
        max-width: 76.92vw;
        border-radius: 1.282vw;
        margin: auto;
        padding-top: 4.872vw;
        padding-bottom: 5.128vw;
    }
    .accordion-008 p{
        font-size: 3.846vw;
    }
    .accordion-008 summary {
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0 2em;
        color: #F1F1F1;
        cursor: pointer;
    }
    .accordion-008 summary span {
        position: relative;
    }
    .accordion-008 summary::-webkit-details-marker {
        display: none;
    }
    .accordion-008 summary span::before,
.accordion-008 summary span::after {
    width: 0.256vw;
    height: 2.564vw;
    border-radius: 0.256vw;
    background-color: #F1F1F1;
    content: '';
    position: absolute;
    top: 1.026vw;
    right: -3.846vw;
    transition: transform .3s;
}

/* 初期状態 → ＋マーク */
.accordion-008 summary span::before {
    transform: rotate(0deg);
}
.accordion-008 summary span::after {
    transform: rotate(90deg);
}
/* 開いた状態余白 */
.accordion-008[open] {
    padding-bottom: 1.026vw;
}
/* 開いた状態 → ×マーク */
.accordion-008[open] summary span::before {
    transform: rotate(45deg);
}
.accordion-008[open] summary span::after {
    transform: rotate(-45deg);
}
    .accordion-008 p {
        transform: translateY(-10px);
        opacity: 0;
        margin: 0;
        padding-top: 2.308vw;
        color: #F1F1F1;
        transition: transform .5s, opacity .5s;
    }
    .accordion-008[open] p {
        transform: none;
        opacity: 1;
    }
 /* 開いた状態 下線 */
.accordion-008 summary::after {
    content: "";
    position: absolute;
    width: 16.923vw;
    height: 0.256vw;
    top: 10.769vw;
    left: 50%;
    transform: translateX(-50%) scaleX(0);
    background-color: #F1F1F1;
    transition: transform 0.3s;
}
.accordion-008[open] summary::after {
    transform: translateX(-50%) scaleX(1);
}
/* 開いた状態 一番上の余白 */
    .accordion-008 p:nth-of-type(1) {
        margin-top: 2.308vw;
    }
}
  /*ヘッダーボタン*/
  .button a {
    background: #103983;
    border-radius: 9999px;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 0 auto;
    max-width: 27.3438vw;
    width: 12.1094vw;
    height: 3.5938vw;
    color: #F1F1F1;
    line-height: 1.4062vw;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-size: 1.0938vw;
}
@media (max-width:768px){
    button a {
        background: #103983;
        border-radius: 9999px;
        position: relative;
        display: flex;
        justify-content: space-around;
        align-items: center;
        margin: 0 auto;
        max-width: 89.74vw;
        width: 39.74vw;
        height: 11.795vw;
        color: #F1F1F1;
        line-height: 4.615vw;
        text-decoration: none;
        transition: 0.3s ease-in-out;
        font-size: 3.590vw;
    }
}
.button a:hover {
    background: #F1F1F1;
    outline: 0.1562vw solid #103983;
    color: #103983;
}
@media (max-width:768px){
    .button a:hover {
        outline: 0.513vw solid #103983;
    }
}
.button a span{
    margin-right: 1.6406vw;
    letter-spacing: 0.0781vw;
    padding-top: 0.2344vw;
}
@media (max-width:768px){
    .button a span{
        margin-right: 5.385vw;
        letter-spacing: 0.256vw;
        padding-top: 0.355vh;
    }
}
.button img{
    position: absolute;
    right: 10%;
    width: 1.3281vw;
    height: 1.3281vw;
    top: 50%;
    right: 1.2500vw;
    transform: translateY(-44%);
}
@media (max-width:768px){
    .button img{
        width: 4.359vw;
        height: 4.359vw;
        right: 4.103vw;
    }
}
.button a:hover .mail-icon {
    content: url("../img/mail-hover.webp"); /* 画像を変更 */
}
.p20{
    display: flex;
    align-items: center; /* フレックスボックスで中央揃え */
    margin: 23px 0 18px 2px;
    font-size: 1.0938vw;
    letter-spacing: 0;
    font-family: 'Montserrat';
  }
.p20 span{
    font-size: 2.3438vw;
    padding: 0 2.3438vw;
    line-height: 0;
    display: inline-block;
    vertical-align: middle; /* インライン要素の高さを中央に揃える */
}
@media only screen and (max-width: 768px){
    .p20 {
        margin: 4.359vw 0 3.590vw 0;
        font-size: 3.590vw;
    }
    .p20 span{
        padding: 0 5.1282vw;
        font-size: 7.6923vw;
    }
}
.p21{
    font-size: 1.2500vw;
    line-height: 2.3438vw;
    margin-bottom: 15px;
  }
@media only screen and (max-width: 768px) {
    .p21 {
        font-size: 4.103vw;
        line-height: 7.692vw;
        margin-top: 2.564vw;
    }
}
.btn_m{
    border: 1px solid #F1F1F1;
    border-radius: 100px;
    max-width: 54.62vw;
    margin-inline: auto;
    font-size: 3.590vw;
    padding: 3.333vw 0 1.795vw;
    position: relative;
}
.btn_m img{
    position: absolute;
    top: 35%;
    left: 18%;
    width: 3.846vw;
}
.pl15{
    padding-left: 3.846vw;
    padding: 2.821vw 0 1.538vw 8.205vw;
}
.fv_mbg{
    margin: 100vh 0 0 0;
    padding: 0;
    height: 0px;
    background-color: #0b2d6c;
    width: 100%;
}
/*---------------------------------------- sec01 news ----------------------------------------*/
.sec01{
    background-color: #F1F1F1;
    padding: 0px 0 0px;
    margin: auto;
    width: 100%;
}
.small{
    font-family: 'Montserrat';
    font-size: 1.0938vw;
    font-weight: 500;
}
@media only screen and (max-width: 768px){
    .sec01{
        padding: 7.692vw 0 10.256vw;
    }
    .sec01 h2{
        font-size: 6.667vw;
    }
    .small{
        font-size: 3.077vw;
    }
}
.news_t_flex{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 2.3438vw auto 0;
    max-width: 83.2813vw;
}
@media only screen and (max-width: 768px){
    .news_t_flex{
        display: block;
        width: 100%;
        margin: 2.564vw auto 0;
        max-width: 100%;
    }
}
.ntf_left{
    width: 50%;
    text-align: left;
    margin-top: 12px;
    margin-left: 33px;
}
.ntf_left h2 {
    margin-top: 1.2500vw;
}
@media only screen and (max-width: 768px){
    .ntf_left{
        margin-top: 2.564vw;
        margin-left: 3.846vw;
    }
    .ntf_left h2 {
        margin-top: 6vw;
    }
}
.ntf_right{
    width: 50%;
    margin-right: 0;
    text-align: right;
    margin-top: 10px;
    line-height: 1;
}
.ntf_center{
    width: 80%;
    margin: 50px auto 0px;
    text-align: center;
}
@media only screen and (max-width: 768px) {
    .ntf_center {
        margin: 0px auto 0px;
    }
}
@media screen and (min-width: 769px) {
    .s04_box:nth-child(n+13) {
      display: none;
    }
  }
  /* SP */
  @media screen and (max-width: 768px) {
    .s04_box:nth-child(n+7) {
      display: none;
    }
  }
.btn03{
    border: 0.0781vw solid #000;
    border-radius: 7.8125vw;
    padding: 1.1719vw 0 0.7031vw;
   font-size: 1.0938vw;
   width: 16.6406vw;
   display: inline-block;
   text-align: center;
   line-height: 1;
}
@media screen and (max-width: 768px) {
    .btn03{
        border: 0.256vw solid #000;
        border-radius: 100px;
        padding: 3.846vw 0 2.308vw;
       font-size: 3.590vw;
       width: 54.62vw;
       display: inline-block;
       text-align: center;
       line-height: 1;
    }
}
a.btn03{
    text-decoration: none;
    color: #000;
} 
a.btn03:hover{
    background-color: #000;
    color: #F1F1F1;
    transition: 0.3s ease-in-out;
}
/*---swiper スライダー---*/
.swiper-container {
    max-width: 85.9375vw;
    margin: 3.7500vw auto 4.0625vw;
    position: relative;
    overflow: hidden;
}
@media only screen and (max-width: 768px){
    .swiper-container {
        width: 100%;
        max-width: 100%;
        margin: 11.2vw auto 10.5vw;
    }
}
.swiper-wrapper {
    display: flex;
    align-items: center;
    position: relative;
    margin: 0 3.9062vw;
}
@media only screen and (max-width: 768px){
    .swiper-wrapper {
        margin: auto!important;
    }
}
@media only screen and (min-width: 769px) {
    .center_line {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        width: 0.0781vw;
        height: 11.72vw;
        background-color: #CECECE;
        transform: translateX(-50%);
        z-index: 1;
        pointer-events: none;
    }
  }
.swiper-slide {
    display: flex;
    align-items: center;
}
@media only screen and (max-width: 768px){
    .swiper-slide {
        width: 100%!important; /* 1枚表示時に幅を100%に */
        height: 70vw!important;
        margin: auto!important; /* 余白をなくす */
    }
}
.sw_flex {
    display: flex;
    align-items: normal;
    justify-content: left;
}
@media only screen and (max-width: 768px){
    .sw_flex {
        display: block;
    }
}
@media only screen and (max-width: 768px){
    .swiper-slide a{
        margin: auto;
    }
}
.sw_flex a{
    text-decoration: none;
    color: #000;
}
.sw_flex a:hover{
    opacity: 0.8;
    transition: 0.3s ease-in-out;
}
.sw_flex img {
    width: 15.23vw;
    height: 11.41vw;
    object-fit: cover;
}
@media only screen and (max-width: 768px){
    .sw_flex img{
        display: block;
        margin: auto;
        width: 61.54vw;
        height: 46.5vw;
    }
}
.sw_day {
    font-size: 0.9375vw;
    margin-top: 1.4844vw;
    margin-bottom: 	2.0312vw;
    line-height: 0;
}
@media only screen and (max-width: 768px){
    .sw_day{
        margin-top: 7.436vw;
        margin-bottom: 2.821vw;
        font-size: 3.077vw;
    }
}
.sw_right {
    margin-left: 1.9531vw;
    font-size: 1.4062vw;
    width: 100%;
    max-width: 17.66vw;
    line-height: 2.3438vw;
}
@media only screen and (max-width: 768px){
    .sw_right{
        font-size: 4.103vw;
        border: none;
        max-width: 61.79vw;
        margin: auto;
        line-height: 7.692vw;
    }
}
/* ナビゲーションボタンの調整 */
.swiper-button-prev,
.swiper-button-next {
    top: 52%!important;
    transform: translateY(-40%)!important;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.swiper-button-prev {
    left: 1.1719vw!important; /* 左ボタンを外側に配置 */
    background-image: url("../img/arrows02_l.webp")!important;
    width: 0.7031vw!important;
    height: 0.7031vw!important;
}
@media only screen and (max-width: 768px){
    .swiper-button-prev {
        left: 3.846vw!important; /* 左ボタンを外側に配置 */
        background-image: url("../img/arrows02_l.webp")!important;
        width: 2.308vw!important;
        height: 2.308vw!important;
    }  
}
.swiper-button-next {
    right: 1.1719vw!important; /* 右ボタンを外側に配置 */
    background-image: url("../img/arrows02_r.webp")!important;
    width: 0.7031vw!important;
    height: 0.7031vw!important;
}
@media only screen and (max-width: 768px){
    .swiper-button-next {
        right: 3.846vw!important; /* 右ボタンを外側に配置 */
        background-image: url("../img/arrows02_r.webp")!important;
        width: 2.308vw!important;
        height: 2.308vw!important;
    }  
}
.swiper-button-prev::after,
.swiper-button-next::after {
  display: none;
}
/*.swiper-button-prev:after{
    content: "◀︎"!important; 
}
.swiper-button-next:after{
  content: "▶︎"!important; 
}*/
:root {
    --swiper-navigation-size: 20px!important;
    --swiper-theme-color: #6F6F6F!important;
}
/*---------------------------------------- sec02 service ----------------------------------------*/
.sec_bg{
    background-color: #0b2d6c;
    padding: 0 0 0;
    color: #F1F1F1;
    width: 100%;
}
@media only screen and (max-width: 768px){
    .sec_bg{
        padding: 30.77vw 0 0;
    }
}
.s02_head {
    max-width: 78.03vw;
    margin: auto;
}
@media only screen and (max-width: 768px) {
    .s02_head {
        width: 90%;
        max-width: inherit;
    }
}
.sec02 h2{
    /*text-align: center;*/
    letter-spacing: 0px;
    line-height: 2.1875vw;
    font-size: 2.3438vw;
    font-weight: 400;
    margin-bottom: 3.7500vw;
}
@media only screen and (max-width: 768px){
    .sec02 h2{
        /*text-align: center;*/
        letter-spacing: 0px;
        line-height: 7.179vw;
        font-size: 7.692vw;
        font-weight: 400;
    }
}
.sec02 .small{
    /*text-align: center;*/
    letter-spacing: 0;
    font-family: 'Montserrat';
    font-size: 1.0938vw;
    line-height: 1.5625vw;
    margin: 0;
    padding-bottom: 1.2500vw;
    font-weight: 500;
}
@media only screen and (max-width: 768px){
    .sec02 .small{
        /*text-align: center;*/
        letter-spacing: 0;
        font-family: 'Montserrat';
        font-size: 3.590vw;
        line-height: 5.128vw;
        margin: 0;
        padding-bottom: 4.103vw;
        font-weight: 500;
    }
}
@media only screen and (max-width: 768px) {
    .sec_bg {
            padding: 15.436vw 0 0;
    }
    .sec02 h2{
        font-size: 6.410vw;
    } 
    .sec02 .small {
        font-size: 3.077vw;
        padding-bottom: 2.821vw;
    }
}
.s02_lead h3 {
    font-size: 2.3438vw;
}
.s02_3{
    font-size: 1.6vw;
    letter-spacing: 0.15vw;
    line-height: 1.8;
    margin-bottom: 3.7500vw;
}
@media only screen and (min-width: 769px) {
    .s02_lead {
        text-align: center;
    }
}
@media only screen and (max-width: 768px){
    .s02_lead h3 {
        font-size: 6vw;
    }
    .s02_3{
        font-size: 4.615vw;
        letter-spacing: 0.46vw;
    }
}
.s02_bg{
    background-image: url(../img/service_bg.webp);
    width: 100%;
    padding: 7.77vw 0;
    margin-top: 3.8281vw;
    background-size: cover;
}
@media only screen and (max-width: 768px){
    .s02_bg{
        background-image: url(../img/service_bgsp.webp);
        padding: 10.256vw 0 1.282vw;
        margin-top: 9.487vw;
    }
}
.s02_flex{
    display: flex;
    justify-content: space-around;
    align-items: stretch; /* 高さを揃える */
    max-width: 78.03vw;
    margin: auto;
    gap: 14.06vw; /* 余白を統一 */
}
@media only screen and (max-width: 768px){
    .s02_flex{
        display: block;
        width: 100%;
        max-width: 76.92vw;
        gap: 46.15vw;
    }
}
.s02_box{
    flex: 1; /* 各ボックスの幅を均等にする */
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* コンテンツを均等配置 */
    text-align: center; /* テキストの揃えを統一 */
}
@media only screen and (max-width: 768px){
    .s02_box{
        width: 61.54vw;
        margin: 0 auto 8.974vw;
    }
}
.s02_box h3{
    font-size: 1.4062vw;
    line-height: 2.3438vw;
    text-align: left;
    margin-top: 0px;
    min-height: 4.6875vw; /* h3 の高さを統一 */
    display: flex;
    align-items: center; /* 中央揃え */
    margin-bottom: 	0.9375vw;
}
@media only screen and (max-width: 768px){
    .s02_box h3{
        font-size: 4.615vw;
        line-height: 7.692vw;
        text-align: left;
        margin-top: 0px;
        min-height: 15.385vw; /* h3 の高さを統一 */
        display: flex;
        align-items: center; /* 中央揃え */
        margin-bottom: 3.077vw;
    }
}
.s02_s{
    font-size: 	0.9375vw;
    font-family: "Montserrat";
    text-align: left;
    margin-bottom: 0.5469vw;
}
@media only screen and (max-width: 768px){
    .s02_s{
        font-size: 3.077vw;
        font-family: "Montserrat";
        text-align: left;
        margin-bottom: 1.795vw;
    }
}
.s02_box p{
    text-align: left;
    font-size: 1.0938vw;
    line-height: 2.0312vw;
    margin: 1.4062vw auto 0.2344vw;
}
@media only screen and (max-width: 768px){
    .s02_box p{
        text-align: left;
        font-size: 3.590vw;
        line-height: 6.667vw;
        margin: 4.615vw auto 0.769vw;
    }
}
.s02_box img{
    width: 16.64vw;
    height: 9.38vw;
}
@media only screen and (max-width: 768px){
    .s02_box img{
        width: 61.54vw;
        /*height: 15.99vh;*/
        height: 100%;
    }
}
.button02{
    width: 100%;
    padding: 0.9375vw 0 0.6250vw;
    text-align: center;
    border: 0.0781vw solid #F1F1F1;
    border-radius: 7.8125vw;
    display: block;
    margin-top: 0.7812vw;
    font-size: 1.0938vw;
}

.button02_phone {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-sizing: border-box;
    width: 16.64vw;
    height: 3.125vw;
    margin-bottom: 0px;
    font-size: 1.0938vw;
    letter-spacing: 0.089vw;
    text-decoration: none;
    color: #F1F1F1;
    border: 0.0781vw solid #F1F1F1;
    border-radius: 7.8125vw;
    margin-top: 0.7812vw;
}

@media only screen and (max-width: 768px) {
    .button02 {
        max-width: 54.62vw;
        margin-top: 2.564vw;
        margin-inline: auto;
        padding: 3.077vw 0 2.051vw;
        border: 0.256vw solid #F1F1F1;
        border-radius: 25.64vw;
        font-size: 3.59vw;
    }
    
    .button02_phone {
        width: 100%;
        height: 10.256vw;
        margin-bottom: 10.256vw;
        font-size: 3.590vw;
        letter-spacing: 0.33vw;
        border: 0.256vw solid #F1F1F1;
        border-radius: 25.64vw;
    }
}
a.button02{
    text-decoration: none;
    color: #F1F1F1;
}
a.button02:hover{
    background-color: #103983;
    color: #F1F1F1;
    transition: 0.3s ease-in-out;
}
.s02_bunner img{
    height: 15.63vw;
    width: 78.13vw;
    display: block;
    margin: 5.4688vw auto 9.38vw;
}
@media only screen and (max-width: 768px){
    .s02_bunner img{
        width: 92%;
        height: auto;
        margin: 3.590vw auto;
    }
}
.s02_bunner a:hover{
    opacity: 0.8;
    transition: 0.3s ease-in-out;
}
/*---------------------------------------- sec03  ----------------------------------------*/
.sec03{
    margin: 7.8125vw auto 0;
    padding-bottom: 11.88vw;
    max-width: 78.13vw;
}
@media only screen and (max-width: 768px){
    .sec03{
        max-width: 100%;
        width: 100%;
        margin: 18.974vw auto 0;
        padding-bottom: unset;
    }
}
.sec03 h2{
    font-size: 2.3438vw;
    line-height: 2.3438vw;
    margin-top: 1.2500vw;
    margin-bottom: 3.7500vw;
}
@media only screen and (max-width: 768px){
    .sec03 h2{
        font-size: 6.410vw;
        line-height: 7.692vw;
        margin-top: 4.103vw;
        margin-bottom: 2.564vw;
        width: 92%;
        margin: auto;
        letter-spacing: 0.256vw;
    }
}
@media only screen and (max-width: 768px){
.sec03 .small{
    width: 92%;
    margin-inline: auto;
    margin-bottom: 3.333vw;
}
}
.about_flex{
    display: flex;
    justify-content: flex-start;
    max-width: 78.13vw;
    margin: auto;
}
@media only screen and (max-width: 768px){
    .about_flex{
        display: block;
        max-width: 100%;
    }
}
.s03_3{
    line-height: 3.5156vw;
    margin-top: -0.7031vw;
    font-size: 1.40vw;
    letter-spacing: 0.15vw;
}
@media only screen and (max-width: 768px){
    .s03_3{
        line-height: 2.5;
        width: 92%;
        margin: 6.923vw	 auto 5.385vw;
        letter-spacing: 0.46vw;
        font-size: 4.615vw;
    }
}
.mt45{
    line-height: 3.5156vw;
}
@media only screen and (max-width: 768px){
    .mt45{
        line-height: 11.538vw;
    } 
}
.about_flex img{
    width: 31.09vw;
    height: auto;
    margin-left: 3.9844vw;
    margin-right: 0.5469vw;
}
@media only screen and (max-width: 768px){
    .about_flex img{
        width: 100%;
        margin: 15.641vw 0 0;
    }
}
.about_flex p{
    font-size: 1.0938vw;
    line-height: 2.3438vw;
    margin-top: 1.6406vw;
    margin-bottom: 0;
    letter-spacing: 0.11vw;
}
@media only screen and (max-width: 768px){
    .about_flex p{
        font-size: 3.590vw;
        line-height: 7.692vw;
        width: 92%;
        margin: auto;
        letter-spacing: 0.36vw;
    }  
}
.button03{
    width: 16.64vw;
    height: 3.1250vw;
    padding:0.3906vw;
    text-align: center;
    border: 0.0781vw solid #F1F1F1;
    border-radius: 7.8125vw;
    display: block;
    margin-top: 3.2031vw;
    font-size: 1.0938vw;
    line-height: 2.3438vw;
}
@media only screen and (max-width: 768px){
    .button03{
        display: none;
    }
}
a.button03{
    text-decoration: none;
    color: #F1F1F1;
}
a.button03:hover{
    background-color: #F1F1F1;   
    color: #103983;
    transition: 0.3s ease-in-out;
}
.about_flex02{
    display: flex;
    justify-content: flex-start;
    margin-top: 8.28vw;
}
@media only screen and (max-width: 768px){
    .about_flex02{
        display: flex; /* `block` ではなく `flex` に変更 */
        flex-direction: column-reverse; /* 画像を下、テキストを上に */
        align-items: center; /* 中央揃え */
        margin-top: 1.795vw;
    }
}
.about_flex02 h3{
    line-height: 3.5;
    margin-top: 0;
    font-size: 1.4062vw;
    letter-spacing: 0.3906vw;
}
@media only screen and (max-width: 768px){
    .about_flex02 h3{
        line-height: 2.5;
        width: 90%;
        margin: 5.128vw auto;
        font-size: 4.615vw;
    letter-spacing: 1.282vw;
    }
}
.about_flex02 img{
    width: 31.25vw;
    height: auto;
    margin-right: 4.0625vw;
}
@media only screen and (max-width: 768px){
    .about_flex02 img{
        width: 100%;
        height: 100%;
        margin: 7.692vw 0 0;
    }
}
.about_flex02 p{
    font-size: 1.089vw;
    line-height: 2.3438vw;
    margin-top: 1.5625vw;
    letter-spacing: 0.12vw;
}
@media only screen and (max-width: 768px){
    .about_flex02 p{
        font-size: 3.590vw;
        line-height: 7.692vw;
        width: 92%;
        margin: auto;
        letter-spacing: 0.38vw;
    }  
}
/*-------------- 共通カードリストスタイル  --------------*/
.common_card_list{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: stretch; /* 高さを揃える */
    max-width: 78.03vw;
    margin: auto;
    gap: 4.5vw; /* 余白を統一 */
}
@media only screen and (max-width: 768px){
    .common_card_list{
        display: block;
        width: 100%;
        max-width: 100%;
        gap: 46.15vw;
    }
}
.common_card_box{
    background-color: #fff;
    color: #000;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-decoration: none;
}
@media only screen and (min-width: 769px) {
  .common_card_box {
    max-width: 22.916vw;
    flex: inherit;
  }
}
@media only screen and (max-width: 768px){
    .common_card_box{
        width: 61.54vw;
        margin: 0 auto 8.974vw;
    }
}
.common_card_box h3{
    font-size: 1.1666vw;
    line-height: 1.6;
    margin-top: 0px;
    min-height: 4.6875vw;
    display: flex;
    align-items: center;
    margin-bottom:  1.25vw;
}
@media only screen and (max-width: 768px){
    .common_card_box h3{
        font-size: 3.764vw;
        margin-top: 0px;
        min-height: 15.385vw;
        display: flex;
        align-items: center;
        margin-bottom: 3.077vw;
    }
}
.common_card_box .text_cont {
    padding: 1.5vw 2.5vw;
}
@media only screen and (max-width: 768px){
    .common_card_box .text_cont {
        padding: 4vw 2.5vw;
    }
}
.common_card_box img {
    max-width: 100%;
    height: 15.4166vw;
    object-fit: cover;
}
@media only screen and (max-width: 768px){
    .common_card_box img {
        height: 41.333vw;
    }
}
.common_card_box .lower_cont {
    border-top: 1px solid rgb(0 0 0 / 0.2);
    font-size: 1vw;
    margin-block-end: 0;
    margin-top: 1.25vw;
    padding-top: 1.25vw;
}
@media only screen and (max-width: 768px){
    .common_card_box .lower_cont {
        font-size: 3.077vw;
        margin-top: 3.077vw;
        padding-top: 3.077vw;
    }
}
.sec_topwork .button03{
    display: block;
    height: 3.1666vw;
    font-size: 1.0938vw;
    letter-spacing: 0.089vw;
    position: relative;
    margin: 4.1666vw auto 0;
}
@media only screen and (max-width: 768px){
    .sec_topwork .button03 {
        height: auto;
        padding: 3.846vw 0 2.308vw;
        font-size: 3.590vw;
        width: 54.62vw;
        text-align: center;
        line-height: 1;
    }
}
/*---------------------------------------- TopWork  ----------------------------------------*/
.sec_topwork{
    margin: 7.8125vw auto 0;
    padding-bottom: 4.1666vw;
    max-width: 78.13vw;
}
@media only screen and (max-width: 768px){
    .sec_topwork{
        max-width: 100%;
        width: 100%;
        margin: 18.974vw auto 0;
        padding-bottom: unset;
    }
}
.sec_topwork h2{
    font-size: 2.3438vw;
    line-height: 2.3438vw;
    margin-top: 1.2500vw;
    margin-bottom: 3.7500vw;
}
@media only screen and (max-width: 768px){
    .sec_topwork h2{
        font-size: 6.410vw;
        line-height: 7.692vw;
        margin: auto;
        margin-top: 4.103vw;
        margin-bottom: 9.411vw;
        width: 92%;
        letter-spacing: 0.256vw;
    }
}
@media only screen and (max-width: 768px){
    .sec_topwork .small{
        width: 92%;
        margin-inline: auto;
        margin-bottom: 3.333vw;
    }
}
.sec_topwork .common_card_list {
    justify-content: center;
}
/*---------------------------------------- TopMedia  ----------------------------------------*/
.sec_topmedia{
    margin: 8.3333vw auto 0;
    padding-bottom: 8.3333vw;
    max-width: 78.13vw;
}
@media only screen and (max-width: 768px){
    .sec_topmedia{
        max-width: 100%;
        width: 100%;
        margin: 0 auto 0;
        padding-bottom: calc(15.36vw - 8.974vw);
    }
}
.sec_topmedia h2{
    font-size: 2.3438vw;
    line-height: 2.3438vw;
    margin-top: 1.2500vw;
    margin-bottom: 3.7500vw;
}
@media only screen and (max-width: 768px){
    .sec_topmedia h2{
        font-size: 6.410vw;
        line-height: 7.692vw;
        margin: auto;
        margin-top: 4.103vw;
        margin-bottom: 9.411vw;
        width: 92%;
        letter-spacing: 0.256vw;
    }
}
@media only screen and (max-width: 768px){
    .sec_topmedia .small{
        width: 92%;
        margin-inline: auto;
        margin-bottom: 3.333vw;
    }
}

.media_coverage {
    background-color: #F1F1F1;
    padding: 8.3333vw 0;
}
.media_coverage img {
    display: block;
    max-width: 78.13vw;
    margin: 0px auto ;
    vertical-align: bottom;
}
@media only screen and (max-width: 768px){
    .media_coverage {
        padding: 10.256vw 0;
    }
    .media_coverage img {
        max-width: 98vw;
    }
}
/*---------------------------------------- contact ----------------------------------------*/
.contact{
    background-image: url(../img/footer_pc.webp);
    background-size: cover;
    width: 100%;
    padding: 3.1250vw 0 2.1094vw;
    text-align: center;
    color: #F1F1F1;
}
@media only screen and (max-width: 768px){
    .contact{
        background-image: url(../img/footer_sp.webp);
        padding: 7.692vw 17.949vw;
        /*overflow: hidden;*/
    }
}
.contact h2{
    margin-top: 1.2500vw;
    margin-bottom: 1.6406vw;
}
.contact p{
    line-height: 2.3438vw;
    margin-top: 1.8750vw;
    margin-bottom: 1.9531vw;
    letter-spacing: 0.11vw;
    font-size: 1.0938vw;
}
@media only screen and (max-width: 768px){
    .contact p{
        font-size: 3.590vw;
        margin-top: 5.5vw;
        margin-bottom: 7.949vw;
        line-height: 7.692vw;
        letter-spacing: 0.29vw;
    }
    .contact h2{
        font-size: 6.49vw;
        margin-top: 6vw;
        margin-bottom: unset;
        letter-spacing: 0.18vw;
    }
}
.contact_flex{
    display: flex;
    justify-content: space-between;
    max-width: 56.16vw;
    margin: 0px auto 2.4219vw;
}
.contact_flex.column4 {
    max-width: 73vw;
}
@media only screen and (max-width: 768px){
    .contact_flex{
        display: block;
        max-width: 100%;
        width: 85.2%;
        margin: 0px auto 7.949vw;
        margin-bottom: unset;
    }
}
.contact .button02{
    width: 16.64vw;
    height: 3.1250vw;
    font-size: 1.0938vw;
    letter-spacing: 0.089vw;
    position: relative;
    padding-top: 0.894vw;
}
@media only screen and (max-width: 768px){
    .contact .button02{
        width: 100%;
        margin-bottom: 10.256vw;
        height: 10.256vw;
        font-size: 3.590vw;
        letter-spacing: 0.33vw;
        padding-top: 2.821vw;
    }
    .contact .button02:last-child {
        margin-bottom: 8.718vw;
    }
}
.contact .button02 img {
    width: 1.08vw;
    height: 1.08vw;
    margin-right: 1.00vw;
    position: absolute;
    top: 36%;
    left: 19%;
}

.contact .button02_phone img {
    width: 1.08vw;
    height: 1.08vw;
}

@media only screen and (max-width: 768px){
    .contact .button02 img {
        width: 3.56vw;
        height: 3.56vw;
        margin-right: 3.28vw;
        position: absolute;
        top: 36%;
        left: 19%;
    }

    .contact .button02_phone img {
        width: 3.56vw;
        height: 3.56vw;
    }
}
.contact_time{
    font-size: 1.08vw;
    letter-spacing: 0.112vw;
    line-height: 3.1250vw;
}
@media only screen and (max-width: 768px){
    .contact_time {
        margin-right: calc(50% - 50vw);
        margin-left: calc(50% - 50vw);
        max-width: 100vw;
        line-height: 1;
        font-size: 3.590vw;
    letter-spacing: 0.36vw;
    }
}
.contact_flex span{
    padding-left: 2.4219vw;
}
.contact_flex div {
    display: inline-block;
}

@media only screen and (max-width: 768px){
    .contact_flex span{
        padding-left: 7.949vw;
    } 
}
/*---------------------------------------- footer ----------------------------------------*/
footer{
    background-color: #000;
    color: #F1F1F1;
    padding: 3.7500vw 0 1.4844vw;
    font-size: 1.0938vw;
    letter-spacing: 0.1562vw;
}
@media only screen and (max-width: 768px){
    footer{
        padding: 12.308vw 0 4.872vw;
        font-size: 3.590vw;
        letter-spacing: 0.513vw;
    }
}
footer p{
    font-size: 1.0938vw;
    line-height: 1.8;
    letter-spacing: 0.0781vw;
    text-decoration: none;
    color: #F1F1F1;
}
@media only screen and (max-width: 768px){
    footer p{
        font-size: 3.590vw;
        line-height: 1.8;
        letter-spacing: 0.256vw;
    }
}
footer p a{
    color: #F1F1F1;
    text-decoration: none;
}
.f_flex{
    display: flex;
    justify-content: space-around;
    max-width: 80.16vw;
    margin: auto;
    align-items: flex-start;
}
@media only screen and (max-width: 768px){
    .f_flex{
        max-width: 100%;
    }
    footer {
        padding-top: 5.385vw;
    }
    .f_flex{
        display: block;
        width: 92.5%;
    } 
}
.f_logo img{
    width: 15.78vw;
    height: 3.2812vw;
    margin-top: 0.1562vw;
    margin-left: 1.0938vw;
}
@media only screen and (max-width: 768px){
    .f_logo img{
        display: block;
        margin: 5.128vw auto 7.179vw;
        width: 51.79vw;
        height: 10.769vw;
    }
}
.location{
    width: 28.13vw;
    margin-left: 3.9062vw;
}
@media only screen and (max-width: 768px){
    .location{
        width: 100%;
        margin-left: 0;
        margin-bottom: 13.077vw;
    }
}
.lo_underline{
    border-bottom: 0.0781vw solid #F1F1F1;
    margin-bottom: 1.8750vw;
    padding-bottom: 0.0781vw;
    line-height: 1.9531vw;
}
@media only screen and (max-width: 768px){
    .lo_underline{
        border-bottom: 0.26vw solid #F1F1F1;
        margin-bottom: 6.15vw;
        padding-bottom: 0.26vw;
        line-height: 6.41vw;
    }
}
.sitemap{
    width: 28.13vw;
    margin-left: 3.1250vw;
}
@media only screen and (max-width: 768px){
    .sitemap{
        width: 100%;
        margin-left: 0;
    }
}
.site_flex{
    display: flex;
    justify-content: space-around;
}
.site_box{
    width: 50%;
}
.site_flex a{
    text-decoration: none;
    color: #F1F1F1;
    display: block;
    padding-bottom: 1.3281vw;
    line-height: 1;
    letter-spacing: 0.09vw;
}
@media only screen and (max-width: 768px){
    .site_flex a{
        padding-bottom: 4.359vw;
        line-height: 1;
        letter-spacing: 0.31vw;
    }
}
.site_box_under a {
    padding-bottom: 1.0156vw;
}
@media only screen and (max-width: 768px){
    .site_box_under a {
        padding-bottom: 3.333vw;
    }
}
.site_flex a:hover{
    opacity: 0.8;
    transition: 0.3s ease-in-out;
}
.copy{
    text-align: right;
    font-size: 1.088vw;
    max-width: 80.16vw;
    margin: auto;
    padding-top: 1.0938vw;
    letter-spacing: 0.11vw;
}
.copy span{
    padding: 0 2.2px;
}
@media only screen and (max-width: 768px){
    .copy{
        text-align: center;
        font-size: 3.077vw;
        padding-top: 7.949vw;
        margin-bottom: 7.692vw;
        letter-spacing: 0.31vw;
        max-width: 100%;
    }
}
.f_adress{
    margin-bottom: 1.0156vw;
    font-size: 1.0938vw;
    letter-spacing: 0.11vw;
    line-height: 1;
}
@media only screen and (max-width: 768px){
    .f_adress{
        margin-bottom: 3.333vw;
    font-size: 3.590vw;
    letter-spacing: 0.36vw;
    line-height: 1;
    } 
}
.f_adress02{
    margin-bottom: 2.5781vw;
    font-size: 1.0938vw;
    letter-spacing: 0.11vw;
    line-height: 1;
}
@media only screen and (max-width: 768px){
    .f_adress02{
        margin-bottom: 8.462vw;
        font-size: 3.590vw;
        letter-spacing: 0.36vw;
        line-height: 1;
    }
}
.f_adress03{
    margin-bottom: 1.7969vw;
    font-size: 1.0938vw;
    letter-spacing: 0.11vw;
    line-height: 1;
}
@media only screen and (max-width: 768px){
    .f_adress03{
        margin-bottom: 5.897vw;
        font-size: 3.590vw;
        letter-spacing: 0.36vw;
        line-height: 1;
    }
}
.ml40{
    margin-left: 4.2969vw;
    letter-spacing: 0.1562vw;
}
@media only screen and (max-width: 768px){
    .ml40{
        margin-left: 14.103vw;
        letter-spacing: 0.513vw;
    }
}
/*---------------------------------------- news ----------------------------------------*/
.view_02{
    background: #F1F1F1;
    color: #000000;
    height: 38.67vw;
}
@media only screen and (max-width: 768px){
    .view_02{
        height: 126.6vw;
    }
}
.view02{
    width: 100%;
    background: #F1F1F1;
    color: #000000;
    position: relative;
}
.fv02{
    position: relative;
    height: 38.67vw;
    width: 70.4%;
    margin: 0 0 0 auto;
}
@media only screen and (max-width: 768px){
    .fv02{
        width: 100%;
        height: 126.6vw;
    }
}
.fv02 img{
    position: absolute;
    top: 0%;
    right: 0%;
    object-fit: cover;
    width: auto;
    width: 100%;
    height: 38.67vw;
    object-fit: cover;
    aspect-ratio: 900/495;
    z-index: 1;
    }
    @media only screen and (max-width: 768px){
    .fv02 img{
    position: relative;
    width: 100%;
    height: 126.6vw;
        }
    }
    .fv02_text{
    position: absolute;
    top: 50%;
    left: -18.67vw;
    z-index: 1;
    }
    @media only screen and (max-width: 768px){
        .fv02_text{
            top: 44%;
            left: 50%;
            transform: translate(-50%, 0);
            width: 100%;
            text-align: center;
        }
        .fv02_text .small {
            font-size: 3.590vw;
        }
    }
    .fv02_text h1{
        margin: 0;
        font-size: 2.3438vw;
        letter-spacing: 0;
        margin-top: 0.9375vw;
      }
    @media only screen and (max-width: 768px){
        .fv02_text h1{
            font-size: 7.692vw;
            letter-spacing: 0.08vw;
            line-height: 11.54vw;
            text-align: center;
            margin-top: 2.05vw;
        }
      }
    .fv02_text p{
        width: 41.41vw;
    }
    @media only screen and (max-width: 768px){
        .fv02_text p{
            width: 95%;
            text-align: center;
            margin: 0 auto 2.56vw;
        }
    }
/*---------------------------------------- sec04 ----------------------------------------*/
.sec04{
    margin: 7.8125vw 0 0 0;
    padding: 0;
    width: 100%;
}
@media only screen and (max-width: 768px){
    .sec04{
        margin: 17.7vw 0 0 0;
    }   
}
.sec04 .s04_box a{
    color: #0b0b0b;
    text-decoration: none;
    font-size: 1.2500vw;
    line-height: 2.3438vw;
}
@media only screen and (max-width: 768px){
    .sec04 .s04_box a{
        font-size: 4.103vw;
        line-height: 7.692vw;
    }
}
.sec04 a:hover{
    opacity: 0.8;
    transition: 0.3s ease-in-out;
}
.s04_flex{
    display: flex;
    flex-wrap: wrap;
    column-gap: 10.94vw;
    max-width: 78.13vw;
    margin: auto;
    justify-content: space-between;
}
@media only screen and (max-width: 768px){
    .s04_flex{
        column-gap: 35.90vw;
        max-width: 100%;
        display: block;
    }
}
.s04_box{
    width: 100%;
    max-width: 18.75vw;
    margin-bottom: 3.2812vw;
}
@media only screen and (max-width: 768px){
    .s04_box{
        width: 70%;
        max-width: 61.54vw;
        margin: 0 auto 10.769vw;
    }
}
.s04_box .sw_day {
    margin-bottom: 0.8594vw;
}
@media only screen and (max-width: 768px){
    .s04_box .sw_day {
        margin-bottom: 2.821vw;
    }
}
.mb150{
    margin-top: 5.4688vw;
    margin-bottom: 10.86vw;
}
@media only screen and (max-width: 768px){
    .s04_box .sw_day {
        margin-top: 4.872vw;
    }
    .mb150{
        margin: 15.641vw auto 15.128vw;
    }
}
.s04_box img{
    width: 18.75vw;
    height: auto;
    aspect-ratio: 240/180;
    object-fit: cover;
}
@media only screen and (max-width: 768px){
    .s04_box img{
        width: 61.54vw;
    }
}
.s04_box:nth-child(n+13) {
    display: none;
}
/*---------------------------------------- sec05　記事 ----------------------------------------*/
.sec05{
    margin: 9.30vw auto 0;
    padding: 0;
    width: 100%;
    max-width: 78.13vw;
}
@media only screen and (max-width: 768px){
    .sec05{
        margin: 17.949vw auto 0;
        width: 92%;
        max-width: 100%;
    }   
}
.s05_box{
    display: flex;
    margin: 0 auto 3.6719vw;
    justify-content: left;
    width: 78.13vw;
    border-top: 0.0781vw solid #CECECE;
    padding-top: 3.9062vw;
}
@media only screen and (max-width: 768px){
    .s05_box{
        display: block;
        width: 100%;
        margin-bottom: unset;
        margin-top: 10.000vw;
        padding-top: 9.744vw	;
        border-top: 0.256vw solid #CECECE;
    }
}
.s05_box img{
    width: 18.75vw;
}
@media only screen and (max-width: 768px){
    .s05_box img{
        width: 61.54vw;
       display: block;
       margin: 0 auto 9.487vw;
    }
}
.sec05 h1{
    font-size: 2.3438vw;
    letter-spacing: 0;
}
@media only screen and (max-width: 768px){
    .sec05 h1{
        font-size: 5.641vw;
        line-height: 9.231vw;
    }  
}
.s05_fr{
    margin-left: 3.9062vw;
}
@media only screen and (max-width: 768px){
    .s05_fr{
        margin-left: 0;
    }
}
.sec05 .sw_day {
    margin-top: 0;
    font-size: 1.0938vw;
    margin-bottom: 24px;
}
@media only screen and (max-width: 768px) {
    .sec05 .sw_day {
        font-size: 3.590vw;
        margin-bottom: unset;
    }
}
.sec05 p{
    margin-top: 2.3438vw;
    line-height: 2.2;
}
@media only screen and (max-width: 768px){
    .sec05 p {
        margin-top: 6.923vw;
    }
}
.sec05 .mb50{
margin-bottom: 3.9062vw;
font-size: 1.0938vw;
line-height: 2.3438vw;
}
@media only screen and (max-width: 768px){
    .sec05 .mb50{
        margin-bottom: 12.821vw;
        font-size: 3.590vw;
        line-height: 7.692vw;
        }
}
.sec05 h2 span{
    border-left: 0.1562vw solid #000000; 
    height: 0.1562vw;
    padding-right:0.7812vw;
}
@media only screen and (max-width: 768px){
    .sec05 h2 span{
        border-left: 0.513vw solid #000000; 
        height: 0.513vw;
        padding-right:2.564vw;
    }
}
.heading{
    border-top: 0.0781vw solid #CECECE;
    border-bottom: 0.0781vw solid #CECECE;
    font-size: 1.9531vw;
    padding: 0.7812vw 0;
    letter-spacing: 0.1562vw;
}
@media only screen and (max-width: 768px){
    .heading{
        font-size: 5.128vw;
        border-top: 0.256vw solid #CECECE;
        border-bottom: 0.256vw solid #CECECE;
        padding: 2.564vw 0;
        letter-spacing: 0.513vw;
    } 
}
.s05_boder{
    border-top: 0.0781vw solid #CECECE;
    width: 100%;
    max-width: 78.13vw;
    margin: auto;
}
@media only screen and (max-width: 768px){
    .s05_boder{
        border-top: 0.256vw solid #CECECE;
    }
}
.btn04{
    background-color: #033984;
    border-radius: 7.8125vw;
    padding: 1.0938vw 0.7812vw 0.6250vw;
    font-size: 1.0938vw;
    width: 16.64vw;
    display: inline-block;
}
@media only screen and (max-width: 768px){
    .btn04{
        border-radius: 100px;
        padding: 3.590vw 2.564vw 2.051vw;
        font-size: 3.590vw;
        width: 54.62vw;
    }
}
a.btn04{
    text-decoration: none;
    color: #F1F1F1;
} 
a.btn04:hover{
    background-color: #F1F1F1;
    color: #033984;
    border: 0.0781vw solid #033984;
    transition: 0.3s ease-in-out;
}
@media only screen and (max-width: 768px){
    a.btn04:hover{
        border: 0.256vw solid #033984;
    }
}
.ntf_center02 {
    width: 80%;
    margin: 7.8125vw auto 8.52vw;
    text-align: center;
}
@media only screen and (max-width: 768px){
    .ntf_center02{
        margin: 12.564vw auto 17.949vw;
    }
}
/*---------------------------------------- sec06　安全書類業務 ----------------------------------------*/
.view03{
    background: #002D6C;
    color: #F1F1F1;
}
.sec06{
    margin: 3.7500vw 0 11.80vw auto;
    width: calc((900 / 1280) * 100%);
    padding-right: calc((140 / 1280) * 100%);
}
@media only screen and (max-width: 768px){
    .sec06{
        margin: 3.590vw auto 14.103vw;
        padding: 3.846vw;
        width: 100%;
    }
}
/*.view03 .fv02_text {
    top: 27.1%;
}*/
.sec06 p{
    line-height: 2.5;
    font-size: 1.4062vw;
    line-height: 2.8125vw;
    margin-bottom: unset;
    margin-top: 1.2500vw;
    max-width: 59.38vw;
}
@media only screen and (max-width: 768px){
    .sec06 p{
        line-height: 2.5;
        font-size: 4.615vw;
        line-height: 9.231vw;
        margin-top: 4.103vw	;
        max-width: 194.87vw;
    }
}
.sec06 p:first-child {
    font-size: 1.5625vw;
    margin-top: unset;
}
@media only screen and (max-width: 768px){
    .sec06 p:first-child {
        font-size: 5.128vw;
    }
}
@media only screen and (max-width: 768px){
    .view03 .fv02_text {
    top: 44%;
}
    .sec06 p{
        font-size: 4.103vw;
        line-height: 7.692vw;
        margin: 3.846vw auto 5.128vw;
    }
    .sec06 p:first-child {
    font-size: 4.615vw;
}
}
.s06_box{
    background: #F1F1F1;
    display: flex;
    justify-content: center;
    gap: 3.2812vw;
    padding: 2.3438vw;
    margin-top: 3.0469vw;
    color: #0b0b0b;
    border-radius: 0.9375vw;
    max-width: 59.38vw;
}
@media only screen and (max-width: 768px){
    .s06_box{
        display: block;
        width: 100%;
        padding: 7.692vw;
        padding-bottom: 5.897vw;
        gap: 10.769vw;
        margin-top: 10.000vw;
        border-radius: 3.077vw;
        max-width: 100%;
    }
}
.s06_box + .s06_box {
    margin-top: 3.9844vw;
}
@media only screen and (max-width: 768px){
    .s06_box + .s06_box {
        margin-top: 13.077vw;
    }
}
.sec06_safety .s06_box:nth-of-type(4) {
    padding-bottom: 1.0938vw;
}
@media only screen and (max-width: 768px){
    .sec06_safety .s06_box:nth-of-type(4) {
        padding-bottom: 3.590vw;
    }  
}
.s06_box img{
    width: 23.44vw;
    height: 17.50vw;
    display: block;
    aspect-ratio: 298/224;
    object-fit: contain;
}
@media only screen and (max-width: 768px){
    .s06_box img{
        width: 76.92vw;
        height: 57.44vw;
    }
}
@media only screen and (max-width: 768px){
    .s06_box + .s06_box {
    margin-top: 10.256vw;
}
.sec06_safety .s06_box:nth-of-type(3) {
    padding-bottom: 4.615vw;
}
.sec06_safety .s06_box:nth-of-type(4) {
    padding-bottom: 5.897vw;
}
.sec06_safety .s06_box:nth-of-type(5) {
    padding-bottom: 3.846vw;
}
.sec06_safety .s06_box:nth-of-type(6) {
    margin-top: 9.231vw;
}
    .s06_box img{
        width: 100%;
        height: 100%;
    }
}
.s06_box h2{
    font-size: 1.4062vw;
    font-weight: 700;
    text-align: left;
    margin-top: 1.5625vw;
}
.sec06_safety .s06_box:nth-of-type(3) h2 {
    margin-top: 0.4688vw;
}
.sec06_safety .s06_box:nth-of-type(4) h2 {
    margin-top: -0.5469vw;
}

@media only screen and (max-width: 768px){
    .s06_box h2{
        font-size: 4.615vw;
        text-align: center;
        margin-top: 9.815vw;
        line-height: initial !important;
    }
    .sec06_safety .s06_box:nth-of-type(3) h2 {
    margin-top: 9.815vw;
    }
    .sec06_safety .s06_box:nth-of-type(4) h2 {
        margin-top: 9.815vw;
    }
}
.s06_box p{
    font-size: 1.0938vw;
    line-height: 2.0312vw;
    margin-bottom: 0;
    margin-top: 0.7031vw;
}
@media only screen and (max-width: 768px){
    .s06_box p{
        font-size: 3.590vw;
        line-height: 6.667vw;
        margin-top: 5.408vw;
    }  
}
.s06_bflex{
    display: flex;
    justify-content: space-between;
    gap: 1.3281vw 0px;
    max-width: 46.88vw;
    margin-top: 1.0938vw;
    flex-wrap: wrap;
}
@media only screen and (max-width: 768px){
    .s06_bflex{
        flex-direction: column;
        gap: 2.308vw;
        margin-top: 3.590vw;
        max-width: 100%;
    }
}
.s06_bbox{
    background: #629674;
    color: #F1F1F1;
    border-radius: 7.8125vw;
    padding: 0.4688vw 0.3906vw;
    font-size: 0.9375vw;
    text-align: center;
    max-width: 13.05vw;
    width: 100%;
    font-family: 'Montserrat';
}
@media only screen and (max-width: 768px){
    .s06_bbox{
        width: 43.1vw;
        max-width: 100%;
        margin: 0 auto 2.564vw;
        border-radius: 100px;
        padding: 1.538vw 1.282vw;
        font-size: 3.077vw;
    }
}
@media only screen and (max-width: 768px){
    .mt50{
        margin-top: 12.821vw;
    }
}
.s06_right{
    width: 100%;
}
/*---------------------------------------- 施工管理業務アウトソース事業 ----------------------------------------*/
.sec06_construction {
    margin-bottom: 12.03vw;
}

.sec06_construction .s06_box:nth-of-type(1) {
    margin-top: 4.6094vw;
}
.sec06_construction .s06_box:nth-of-type(2) .s06_2_bflex {
    margin-top: 3.0469vw;
}
.sec06_construction .s06_box:nth-of-type(4) h2 {
    margin-top: -0.5469vw;
}
.sec06_construction .s06_box:nth-of-type(4) {
    padding-bottom: 1.7969vw;
}
.sec06_construction .s06_box:nth-of-type(6) h2 {
    margin-top: 1.4062vw;
}
.s06_2_bflex{
    display: flex;
    justify-content: space-between;
    gap: 1.7188vw 0px;
    max-width: 46.88vw;
    margin-top: 1.0938vw;
    flex-wrap: wrap;
    column-gap: 1.5625vw;
}
@media only screen and (max-width: 768px){
    .sec06_construction .s06_box:nth-of-type(2) .s06_2_bflex {
        margin-top: 10.000vw;
    }
    .sec06_construction {
    margin-bottom: 13.846vw;
}
    .sec06_construction p:first-child {
       margin-bottom: 3.846vw;
    }
    .sec06_construction .s06_box:nth-of-type(1) {
    margin-top: 10.513vw;
}
.sec06_construction .s06_box:nth-of-type(4) h2 {
    margin-top: 7.436vw;
}
.sec06_construction .s06_box:nth-of-type(4) {
    padding-bottom: 8.205vw;
}
.sec06_construction .s06_box:nth-of-type(6) h2 {
    margin-top: 7.436vw;
}
.sec06_construction .s06_box {
    padding-bottom: 8.205vw;
}
    .s06_2_bflex{
        gap: 5.641vw 0px;
    max-width: 100%;
    margin-top: 3.590vw;
    flex-wrap: wrap;
    column-gap: 5.128vw;
        width: 100%;

    justify-content: center;
    column-gap: 5.128vw;
    }
    .s06_2_bbox {
        margin-inline: auto;
    }
}
.s06_2_bbox{
    background: #629674;
    color: #F1F1F1;
    border-radius: 100px;
    padding: 0.4688vw 0.3906vw;
    font-size: 0.9375vw;
    text-align: center;
    max-width: 13.05vw;
    width: 47%;
    font-family: 'Montserrat';
}
@media only screen and (max-width: 768px){
    .s06_2_bbox{
        width: 35.90vw;
        font-size: 2.821vw;
        padding-block: 0.769vw;
        border-radius: 100px;
        max-width: 100%;
    }
}
/*---------------------------------------- sec07 システム開発事業 ----------------------------------------*/
.sec07{
    margin: 5.2344vw auto 11.95vw;
    max-width: 78.13vw;
}
@media only screen and (max-width: 768px){
    .sec07{
        margin: 0px auto 17.949vw;
        padding: 0;
        width: 100%;
        max-width: 100%;
    }
}
.sec07 p.s07_text{
    line-height: 2.8125vw;
    font-size: 1.0938vw;
    text-align: left;
    max-width: 59.38vw;
    margin: 0 auto 4.6875vw;
}
@media only screen and (max-width: 768px){
    .sec07 p.s07_text{
        width: 92%;
        max-width: 100%;
        margin-bottom: 10.256vw;
        line-height: 9.231vw;
        font-size: 3.590vw;
    } 
}
.s07_tt{
    font-size: 2.0312vw;
    line-height: 3.5156vw;
    text-align: center;
    margin: 0 auto 3.4375vw;
}
@media only screen and (max-width: 768px){
    .s07_tt{
        font-size: 5.641vw;
        margin: 6.410vw auto 9.487vw;
        line-height: 11.538vw;
    }
}
.sec07 img{
    width: 100%;
    display: block;
    margin: 0 auto 7.8125vw;
}
@media only screen and (max-width: 768px){
    .sec07 img{
        margin: 0 auto 17.949vw;
    }
}
.s07_big{
    font-size: 1.4062vw;
    text-align: center;
    margin-bottom: 2.0312vw;
}
@media only screen and (max-width: 768px){
    .s07_big{
        font-size: 4.615vw;
        margin-bottom: 6.667vw;
    }
}
.sec07 h2{
    font-size: 1.4062vw;
    font-weight: 100;
    text-align: center;
    margin-bottom: 1.0938vw;
}
@media only screen and (max-width: 768px){
    .sec07 h2{
        font-size: 4.615vw;
        margin-bottom: 3.590vw;
    }
}
.s07_bflex{
    display: flex;
    justify-content: center;
    gap: 3.9062vw;
    text-align: center;
}
@media only screen and (max-width: 768px){
    .s07_bflex{
        display: block;
        gap: 12.821vw;
    }
}
.s07_bbox{
    background: #629674;
    color: #F1F1F1;
    border-radius: 7.8125vw;
    padding: 0.4688vw 0.3906vw;
    font-size: 0.9375vw;
    text-align: center;
    width: 13.05vw;
    font-family: 'Montserrat';
}
@media only screen and (max-width: 768px){
    .s07_bbox{
        margin: 0 auto 7.692vw;
        font-size: 3.077vw;
        border-radius: 100px;
        width: 42.82vw;
        padding: 1.538vw 1.282vw;
    }
}
/*---------------------------------------- sec08 私たちについて ----------------------------------------*/
.sec08{
    margin: 5.7812vw auto 2.0312vw;
    width: 100%;
}
@media only screen and (max-width: 768px){
    .sec08{
        margin: 0px auto 17.949vw;
        padding: 0;
    }
}
.s08_right{
    padding-right: 10vw;
    width: calc((900 / 1280) * 100%);
    margin: 0 0 4.6875vw auto;
}
@media only screen and (max-width: 768px){
    .s08_right{
        padding: 3.846vw;
        width: 100%;
        margin: 10.000vw auto 4.359vw;
    }
}
.s08_right h2{
    font-family: 'Montserrat';
    font-size: 2.3438vw;
    text-align: left;
}
@media only screen and (max-width: 768px){
    .s08_right h2{
        font-size: 7.692vw;
    }
}
.s08_right p{
    text-align: left;
    font-size: 1.5625vw;
    line-height: 2.8125vw;
    margin-top: 1.6406vw;
    margin-bottom: 0;
}
@media only screen and (max-width: 768px){
    .s08_right p{
        margin-top: 5.641vw;
        font-size: 4.615vw;
        line-height: 7.692vw;
        margin-top: 5.385vw;
    }
}
.s08_flex{
    display: flex;
    justify-content: left;
    gap: 2.3438vw;
    align-items: flex-start;
    width: 100%;
    max-width: 89.00vw;
    margin: 0 auto 5.4688vw;
    padding-left: 5.4688vw;
}
.s08_f_r {
    margin-top: 0.1562vw;
    max-width: 46.09vw;
    padding-right: 1.5625vw;
}
@media only screen and (max-width: 768px){
    .s08_flex{
        gap: 7.692vw;
        display: block;
        padding: 1.795vw 3.846vw;
        margin-bottom: unset;
        max-width: 100%;
    }
    .s08_f_r {
        padding-right: unset;
        margin-inline: auto;
        max-width: 100%;
    }
}
.s08_flex img{
    width: 31.25vw;
    display: block;
}
@media only screen and (max-width: 768px){
    .s08_flex {
        width: 100%;
        margin-left: unset;
    }
    .s08_flex img{
        width: 100%;
        display: block;
        margin: 0 auto 8.205vw;
    }
}
.s08_small{
    font-size: 1.0938vw;
    height: 2.5vw;
}
@media only screen and (max-width: 768px){
    .s08_small{
        font-size: 3.590vw;
        height: 6.667vw;
    }
}
.s08_name{
    font-size: 2.0312vw;
    margin: 0.7812vw auto 0.5469vw;
}
@media only screen and (max-width: 768px){
    .s08_name{
        font-size: 6.667vw;
        margin: 2.564vw auto 1.795vw;
    }
}
.s08_flex p{
    font-size: 1.0938vw;
    line-height: 2.0312vw;
    margin-top: 1.8750vw;
}
@media only screen and (max-width: 768px){
    .s08_flex p{
        font-size: 3.590vw;
        line-height: 6.667vw;
        margin-top: 6.154vw;
    } 
}
.scroll-container {
    width: 100%;
    max-width: 89.00vw;
    margin: 3.9062vw auto 5.7031vw;
    padding-left: 5.4688vw;
    overflow-x: scroll;
    /* スクロールバー非表示（任意） */
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  @media only screen and (max-width: 768px){
    .s08_flex p {
        margin-top: 6.667vw;
    }
    .scroll-container {
        width: 96vw;
        max-width: 100%;
        margin: 5.641vw 0 5.641vw 4%;
        padding-left: 0;
    }
  }
  .scroll-container::-webkit-scrollbar {
    display: none;
  }
  .scroll-wrapper {
    display: flex;
    gap: 1.6406vw;
    width: fit-content;
    padding-bottom: 0.7812vw;
    scroll-snap-type: x mandatory; 
  }
  @media only screen and (max-width: 768px){
    .scroll-wrapper {
        gap: 5.385vw;
        padding-bottom: 2.564vw;
      }
  }
  .scroll-slide {
    flex: 0 0 15.63vw;
    border-radius: 0.6250vw;
    box-sizing: border-box;
    scroll-snap-align: start;
  }
  @media only screen and (max-width: 768px){
    .scroll-slide {
        flex: 0 0 51.28vw;
        border-radius: 2.051vw;
      }
  }
  .scroll-slide img {
    width: 15.63vw;
    display: block;
    margin-bottom: 1.7188vw;
  }
  @media only screen and (max-width: 768px){
    .scroll-slide img {
        width: 51.28vw;
        margin-bottom: 5.641vw;
      }
  }
  .scroll-slide p {
    font-size: 1.0938vw;
    line-height: 2.0312vw;
    margin-top: 1.0938vw;
  }
  @media only screen and (max-width: 768px) {
      .scroll-slide p {
        margin-top: 4.103vw;
        font-size: 3.590vw;
    line-height: 6.667vw;
      }
  }
  .customers{
    background: #FFFFFF;
    color: #0b0b0b;
    width: 100%;
    text-align: center;
    padding: 4.2188vw 0;
  }
  @media only screen and (max-width: 768px){
    .customers{
        padding: 13.846vw 3.846vw 7.692vw;
    }
  }
  .customers h2{
    font-family: 'Montserrat';
    font-size: 2.3438vw;
    font-weight: 400;
  }
  @media only screen and (max-width: 768px){
    .customers h2{
        font-size: 7.692vw;
      }
  }
  .customers p {
    font-size: 1.5625vw;
    line-height: 2.8125vw;
    margin-top: 1.5625vw;
    margin-bottom: 7.5000vw;
  }
  @media only screen and (max-width: 768px){
    .customers p {
        font-size: 4.615vw;
        margin-top: 5.641vw;
        margin-bottom: 8.974vw;
        line-height: 7.692vw;
    }
  }
.scutom_flex{
    display: flex;
    justify-content: center;
    gap: 4.6875vw 3.9062vw;
    max-width: 78.13vw;
    margin: 0 auto 1.3281vw;
    flex-wrap: wrap;
}
@media only screen and (max-width: 768px){
    .scutom_flex{
        gap: 15.385vw 12.821vw;
        max-width: 100%;
        margin: 0 auto 4.359vw;
    }
}
.scutom_flex img{
    width: 21.48vw;
    height: 100%;
}
@media only screen and (max-width: 768px){
    .scutom_flex img{
        width: 70.51vw;
    }
}
.profile{
    max-width: 78.13vw;
    width: 100%;
    margin: 9.69vw auto;
}
@media only screen and (max-width: 768px){
    .profile{
        width: 92%;
        margin: 18.974vw auto 0;
        max-width: 100%;
    }
}
.profile a{
    text-decoration: none;
    color: #F1F1F1;
    border-bottom: none;
}
.profile h2{
    font-family: 'Montserrat';
    font-size: 2.3438vw;
    font-weight: 400;
    text-align: center;
    margin-bottom: 2.8125vw;
}
.p_small{
    text-align: center;
    font-size: 1.5625vw;
    margin: 0 auto;
}
@media only screen and (max-width: 768px) {
    .profile h2 {
        font-size: 7.692vw;
        margin-bottom: 6.410vw;
    }
    .p_small{
        font-size: 4.615vw;
    }
}
/* table01 */
table#table01{
    margin: 3.5156vw auto;
    font-size: 1.4062vw;
    border-spacing: 0;
    border-top: 0.0781vw solid #F1F1F1;
}
@media only screen and (max-width: 768px){
    table#table01{
        font-size: 4.103vw;
        margin: 16.667vw auto;
        border-top: 0.256vw solid #F1F1F1;
    }
}
  #table01 th,
  #table01 td {
    padding: 2.15vw 0 2.1094vw;
    border-bottom: 0.0781vw solid #F1F1F1;
    line-height: 2.3438vw;
  }
  @media only screen and (max-width: 768px){
    #table01 th,
    #table01 td {
      padding: 7.05vw 0 6.923vw;
      border-bottom: 0.256vw solid #F1F1F1;
      line-height: 7.692vw;
    }
  }
  #table01 th {
    width: 33%;
    font-weight: 100;
    text-align: right;
    padding-right: 13.44vw;
    position: relative;
  }
  @media only screen and (max-width: 768px){
    #table01 th {
        padding-right: 44.10vw;
      }
  }
  #table01 th span {
    position: absolute;
    top: 2.3438vw;
    right: 13.44vw;
  }
  @media only screen and (max-width: 768px){
    #table01 th span {
        top: 7.692vw;
        right: 44.10vw;
      }
  }
    #table01 tr:nth-of-type(3) th,
  #table01 tr:nth-of-type(3) td {
    padding-top: 2.3438vw;
    padding-bottom: 2.4219vw;
  }
  @media only screen and (max-width: 768px){
    #table01 tr:nth-of-type(3) th,
    #table01 tr:nth-of-type(3) td {
      padding-top: 7.692vw;
      padding-bottom: 7.949vw;
    }
  }
    #table01 tr:nth-of-type(2) th,
    #table01 tr:nth-of-type(4) th,
    #table01 tr:nth-of-type(5) th,
    #table01 tr:nth-of-type(6) th,
    #table01 tr:nth-of-type(2) td,
    #table01 tr:nth-of-type(4) td,
    #table01 tr:nth-of-type(5) td,
    #table01 tr:nth-of-type(6) td  {
        padding-top: 28px;
        padding-bottom: 22px;
  }
  @media only screen and (max-width: 768px){
    #table01 tr:nth-of-type(2) th,
    #table01 tr:nth-of-type(4) th,
    #table01 tr:nth-of-type(5) th,
    #table01 tr:nth-of-type(6) th,
    #table01 tr:nth-of-type(2) td,
    #table01 tr:nth-of-type(4) td,
    #table01 tr:nth-of-type(5) td,
    #table01 tr:nth-of-type(6) td  {
        padding-top: 2.1875vw;
        padding-bottom: 1.7188vw;
  }
  }
  #table01 tr:nth-of-type(7) th,
  #table01 tr:nth-of-type(7) td {
    padding-top: 1.1719vw;
    padding-bottom: 0.4688vw;
  }
  @media only screen and (max-width: 768px){
    #table01 tr:nth-of-type(7) th,
    #table01 tr:nth-of-type(7) td {
      padding-top: 3.846vw;
      padding-bottom: 1.538vw;
    }
  }
    #table01 tr:nth-of-type(8) th,
  #table01 tr:nth-of-type(8) td {
    padding-top: 0.9375vw;
    padding-bottom: 0.4688vw;
  }
  @media only screen and (max-width: 768px){
    #table01 tr:nth-of-type(8) th,
    #table01 tr:nth-of-type(8) td {
      padding-top: 3.077vw;
      padding-bottom: 1.538vw;
    }
  }
  #table01 p {
    letter-spacing: 0.15vw;
    padding-left: 2px;
  }
  @media only screen and (max-width: 768px){
    #table01 p {
        letter-spacing: 0.49vw;
        padding-left: 0.1562vw;
      } 
  }
  /* sp */
  @media only screen and (max-width: 768px) {
    #table01 th,
    #table01 td {
      width: 100%;
      display: block;
    }
    #table01 th {
      width: 100%;
      border: none;
      text-align: left;
      padding: 4.359vw 0 0 0;
    }
    #table01 td {
        padding: 0 0 3.590vw 0;
        text-align: left;
        line-height: 6.667vw;
    }
      #table01 th span {
        position: static;
      }
    #table01 tr:nth-of-type(2) th,
    #table01 tr:nth-of-type(3) th,
    #table01 tr:nth-of-type(4) th,
    #table01 tr:nth-of-type(5) th,
    #table01 tr:nth-of-type(6) th,
    #table01 tr:nth-of-type(7) th,
    #table01 tr:nth-of-type(8) th {
        padding-top: 4.615vw;
        padding-bottom: unset;
    }
    #table01 tr:nth-of-type(2) td,
    #table01 tr:nth-of-type(3) td,
    #table01 tr:nth-of-type(4) td,
    #table01 tr:nth-of-type(5) td,
    #table01 tr:nth-of-type(6) td,
    #table01 tr:nth-of-type(7) td,
    #table01 tr:nth-of-type(8) td  {
        padding-top: unset;
        padding-bottom: 3.333vw;
  }
    #table01 p {
        margin: unset;
        letter-spacing: 0.19vw;
    }
  }
  .table_flex{
    display: flex;
    justify-content: left;
    gap: 2.1875vw;
  }
  @media only screen and (max-width: 768px){
    .table_flex{
        display: block;
        gap: 7.179vw;
    }
  }
  .table_flex img{
    width: 47.7%;
    margin: 1.6406vw 0 2.4219vw;
  }
  @media only screen and (max-width: 768px) {
    .table_flex img{
        width: 100%;
        margin: 3.077vw auto 0px;
    }
    .table_flex:last-of-type img {
        margin-top: 3.590vw;
    }
  }
  a.button04  {
    outline: 0.0781vw solid #F1F1F1;
    border-radius: 9999px;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    max-width: 16.48vw;
    padding: 1.0156vw 1.5625vw 0.7812vw;
    color: #F1F1F1;
    line-height: 1.1719vw;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
    font-size: 1.0938vw;
    letter-spacing: 0.11vw;
    margin-left: 0.1562vw;
}
@media only screen and (max-width: 768px){
    a.button04  {
        outline: 0.256vw solid #F1F1F1;
        margin-left: 0;
        max-width: 54.10vw;
        padding: 3.333vw 5.128vw 2.564vw;
        line-height: 3.846vw;
        font-size: 3.590vw;
        letter-spacing: 0.36vw;
    }
}
  a.button04:first-of-type {
    margin-bottom: 3.2812vw;
  }
@media only screen and (max-width: 768px){
      a.button04:first-of-type {
        margin-top: 3.333vw;
        margin-bottom: 7.692vw;
  }
        a.button04:last-of-type {
        margin-top: 3.333vw;
        margin-bottom: 4.359vw;
  }
}
a.button04:hover {
    background: #F1F1F1;
    outline: 2px solid #103983;
    color: #103983;
}
@media only screen and (max-width: 768px){
    a.button04:hover {
        outline: 0.1562vw solid #103983;
    }  
}
.table_flex02{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.table_flex02 img{
    width: 93px;
    height: 95px;
}
@media only screen and (max-width: 768px){
    .table_flex02 img{
        width: 27%;
        height: 27%;
    }
}
/*---------------------------------------- sec09 よくある質問 ----------------------------------------*/
.sec09{
    margin: 3.7500vw auto 3.9062vw;
    width: 100%;
}
@media only screen and (max-width: 768px){
    .sec09{
        margin: -1.795vw auto 17.949vw	;
        padding: 0;
    }
}
.s09_text{
    padding-right: 10vw;
    width: calc((900 / 1280) * 100%);
    margin: 0 0 5.4688vw auto;
}
.fv02_text_faq {
    top: 43.9%;
    left: -18.67vw;
}
@media only screen and (max-width: 768px){
    .fv02_text_faq {
        top: 27%;
        left: 50%;
    }
    .s09_text{
        padding: 5.641vw 3.846vw 2.821vw;
        width: 100%;
        margin: 0px auto 0px;
    }
}
.s09_text p{
    line-height: 2.8125vw;
    font-size: 1.5625vw;
    margin-top: 0;
    margin-bottom: 1.5625vw;
}
@media only screen and (max-width: 768px){
    .s09_text p{
        font-size: 4.615vw;
        line-height: 7.692vw;
        margin: 3.846vw auto 5.128vw;
    } 
}
.cp_qa03{
    max-width: 78.13vw;
    margin: 7.8125vw auto;
}
@media only screen and (max-width: 768px){
    .cp_qa03{
        width: 92%;
        max-width: 100%;
        margin: 0 auto;
    }
}
.cp_qa03 .cp_actab {
    position: relative;
    width: 100%;
    margin: 0 0 2.4438vw 0;
    color: #F1F1F1;
  }
  @media only screen and (max-width: 768px){
    .cp_qa03 .cp_actab {
        margin: 0 0 7.692vw 0;
      }
  }
  .cp_qa03 .cp_actab input {
    display: none;
  }
  /* 質問 */
  .cp_qa03 .cp_actab label {
    font-size: 1.4062vw;
    line-height: 1.97vw;
    position: relative;
    display: block;
    margin: 0 0 0;
    padding: 0.8594vw 2.1875vw 0.7031vw;
    cursor: pointer;
    /*text-indent: 1em;*/
    text-indent: 1.41vw;
    background: #0b0b0b;
  }
@media only screen and (max-width: 768px){
    .cp_qa03 .cp_actab label{
        font-size: 3.590vw;
        padding: 2.821vw 7.949vw 1.67vw;
        text-indent: 0.513vw;
        box-sizing: border-box; 
        line-height: 5.128vw;
        display: flex;
        align-items: center;     /* 縦方向の中央揃え */
        min-height: 11.795vw; 
    }
}
.cp_qa03 .cp_actab label span {
   position: relative;
}
  .cp_qa03 .cp_actab label span::before {
    content: 'Q';
    font-family: 'HannariMincho';
    font-size: 1.4062vw;
    position: absolute;
    top: -0.2344vw;
    left: -3.4375vw;
  }
  @media only screen and (max-width: 768px){
    .cp_qa03 .cp_actab label span::before {
        font-size: 3.590vw;
        top: 0.256vw;
        left: -5.897vw;
    }
  }
  /* --質問の＋アイコン */
  .cp_qa03 .cp_actab label::after {
    position: absolute;
    top: 38%;
    right: 1.4062vw;
    content: '+';
    font-size: 1.4844vw;
    font-weight: bold;
    line-height: 1.48vw;
    display: inline-block;
    transition: transform 0.3s;
  }
  @media only screen and (max-width: 768px){
    .cp_qa03 .cp_actab label::after{
        top: 45%;
        right: 2.051vw;
        font-size: 1.4em;
    }
  }
  /* 答え */
  .cp_qa03 .cp_actab .cp_actab-content {
    position: relative;
    overflow: hidden;
    max-height: 0;
    padding: 0 2.7344vw;
    transition: max-height 0.3s ease, color 0.3s ease, background-color 0.3s ease;
  color: transparent;
  background-color: transparent;
  }
    @media only screen and (max-width: 768px){
        .cp_qa03 .cp_actab .cp_actab-content {
            padding: 0 5.128vw;
        }
    }
  .cp_qa03 .cp_actab .cp_actab-content::before {
    position: absolute;
    content: '';
    font-family: serif;
    font-size: 1.64vw;
    margin: 0.44vw 0 0 -1.09vw;
    padding: 0;
  }
  @media only screen and (max-width: 768px){
    .cp_qa03 .cp_actab .cp_actab-content::before {
        font-size: 1.5em;
        margin: 0.4em 0 0 -1em;
    }
  }
  .cp_qa03 .cp_actab .cp_actab-content p {
    margin: 1.4062vw 0.7812vw 1.0156vw 1.1719vw;
    line-height: 2.0312vw;
    font-size: 1.0938vw;
  }
  @media only screen and (max-width: 768px){
    .cp_qa03 .cp_actab .cp_actab-content p {
        font-size: 3.590vw;
        margin: 4.615vw 2.564vw 3.333vw 3.846vw;
        line-height: 6.667vw;
    }
  }
  /* 質問を開いた時の仕様 */
  /* --答えの高さ */
  .cp_qa03 .cp_actab input:checked ~ .cp_actab-content {
    max-height: 43.75vw;
    background: #F1F1F1;
    color: #0b0b0b;
  }
  @media only screen and (max-width: 768px){
    .cp_qa03 .cp_actab input:checked ~ .cp_actab-content{
        margin-bottom: 5.128vw;
        max-height: 100%;
    }
  }
  /* 質問をクリックした時のアイコンの動き */
  .cp_qa03 .cp_actab input:checked ~ label {
    background: #629674;
  }
  /* 質問をクリックした時の+の動き */
  .cp_qa03 .cp_actab input[type=checkbox]:checked + label::after {
    transform: rotateZ(45deg);
    transform-origin: 80% 50%;
  }
/*---------------------------------------- sec10 お問い合わせ ----------------------------------------*/
.sec10{
    margin: 2.1875vw 0 6.0156vw auto;
    padding-right: 10vw;
    width: calc((900 / 1280) * 100%);
}
@media only screen and (max-width: 768px){
    .sec10{
        margin: 2.308vw auto 12.821vw;
        padding: 3.846vw;
        width: 100%;
    }
}
.sec10 p{
    line-height: 2.8125vw;
    font-size: 1.5625vw;
    margin-bottom: 1.5625vw;
}
@media only screen and (max-width: 768px){
    .sec10 p{
        font-size: 4.615vw;
        line-height: 7.692vw;
        margin: 3.846vw auto 5.128vw;
    } 
}
/*フォーム*/
form {
    width: 100%;
    max-width: 59.38vw;
    border-radius: 1.5625vw;
    margin: 4.2188vw auto 5.4688vw 0;
  }
  @media only screen and (max-width: 768px){
    form{
      min-width: 64.10vw;
      max-width: 100%;
      width: 100%;
      margin-top: 11.026vw;
      margin-bottom: 1.282vw;
    }
  }
  .form-row{
    margin-bottom: 2.8125vw;
  }
  .form-row:nth-of-type(3) {
    margin-bottom: 2.9688vw;
  }
  .form-row:nth-of-type(4) {
    margin-bottom: 2.5000vw;
  }
  .form-row:nth-of-type(5) {
    margin-bottom: 1.7188vw;
  }
  .form-row:last-of-type {
    margin-bottom: 2.0312vw;
  }
    @media only screen and (max-width: 768px) {
    .form-row,
    .form-row:nth-of-type(3) {
        margin-bottom: 7.949vw;
    }
    .form-row:nth-of-type(4) {
        margin-bottom: 8.205vw;
      }
      .form-row:nth-of-type(5) {
    margin-bottom: 5.641vw;
  }
  .form-row:last-of-type {
    margin-bottom: 6.667vw;
  }
  }
  .form-label {
    display: flex;
    align-items: center;
    width: 100%;
    font-size: 1.4062vw;
    margin-bottom: 1.1719vw;
  }
  @media only screen and (max-width: 768px){
    .form-label {
        font-size: 4.615vw;
        margin-bottom: 3.846vw;
      }
  }
  .form-label span  {
    margin-left: 0.7812vw;
    margin-bottom: 0.4688vw;
    padding: 0.1562vw 0.7812vw;
    border-radius: 0.3906vw;
    font-size: 0.9375vw;
    font-weight: bold;
    color: #F1F1F1;
    background-color: #103983;
  }
  @media only screen and (max-width: 768px){
    .form-label span  {
        margin-left: 2.564vw;
        margin-bottom: 1.538vw;
        padding: 0.513vw 2.564vw;
        border-radius: 1.282vw;
        font-size: 3.077vw;
      }
  }
  .s_white{
    margin-right: 0.7812vw;
    padding: 0.1562vw 0.4688vw;
    border-radius: 0.2344vw;
    font-size: 0.9375vw;
    font-weight: bold;
    background: #F1F1F1;
    color: #262626;
  }
  @media only screen and (max-width: 768px){
    .s_white{
        margin-right: 2.564vw;
        padding: 0.513vw 1.538vw;
        border-radius: 0.769vw;
        font-size: 3.077vw;
      }
  }
  /* フォームパーツのデザイン */
  input, textarea {
    width: 100%;
    max-width: 59.38vw;
    background-color: #FFF;
    border: 0.0781vw solid #E2E2E2;
    border-radius: 0.2344vw;
    padding: 1.4844vw 1.4844vw 1.0938vw;
    font-size: 1.0938vw;
    line-height: 1.5625vw;
    color: #333;
    font-family: 'HannariMincho';
  }
  @media only screen and (max-width: 768px){
    input, textarea {
        max-width: 194.87vw;
        border: 0.256vw solid #E2E2E2;
        border-radius: 0.769vw;
        padding: 4.872vw 4.872vw 3.590vw;
        font-size: 3.590vw;
        line-height: 5.128vw;
      }
  }
  textarea {
    height: 15.63vw;
  }
  @media only screen and (max-width: 768px){
    textarea {
        height: 51.28vw;
      }
  }
  input::placeholder,
  textarea::placeholder {
    color: #999;
    font-size: 1.0938vw;
  }
  @media only screen and (max-width: 768px){
    input::placeholder,
    textarea::placeholder {
      font-size: 3.590vw;
    }
  }
  select {
    background-color: #f2f4f5;
    border: none;
    border-radius: 0.2344vw;
    padding: 1.1719vw 1.5625vw;
    font-size: 1.2500vw;
    color: #262626;
  }
  @media only screen and (max-width: 768px){
    select {
        border-radius: 0.769vw;
        padding: 3.846vw 5.128vw;
        font-size: 4.103vw;
      }
  }
  .radio-3 {
    border: none;
}
.radio-3 {
    display: flex;
    align-items: center;
    gap: 0 1.09vw;
    position: relative;
    width: 100%;
    max-width: 59.38vw;
    margin-bottom: 0.7812vw;
    padding: 1.4844vw 2.0312vw 1.0938vw;
    border-radius: 0.2344vw;
    border: 0.0781vw solid #E2E2E2;
    background-color: #FFF;
    cursor: pointer;
    font-size: 1.0938vw;
    line-height: 1.5625vw;
}
@media only screen and (max-width: 768px){
    .radio-3 {
        gap: 0 1.0em;
        max-width: 194.87vw;
        margin-bottom: 2.564vw;
        padding: 4.872vw 6.667vw 3.590vw;
        border-radius: 0.769vw;
        border: 0.256vw solid #E2E2E2;
        font-size: 3.590vw;
        line-height: 5.128vw;
    }
}
.radio-3:has(:checked) {
    background-color: #103983;
    color: #F1F1F1;
}
.radio-3::before,
.radio-3:has(:checked)::after {
    border-radius: 50%;
    content: '';
}
.radio-3::before {
    width: 1.0938vw;
    height: 1.0938vw;
    background-color: #E2E2E2;
        position: relative;
    top: -0.1562vw;
    right: 0.4688vw;
}
@media only screen and (max-width: 768px){
    .radio-3::before {
        width: 3.590vw;
        height: 3.590vw;
        top: -0.513vw;
        right: 1.538vw;
    }
}
.radio-3:has(:checked)::after {
    position: absolute;
    top: 50%;
    left: 2.1094vw;
    transform: translate(-50%, -50%);
    width: 0.5469vw;
    height: 0.5469vw;
    background-color: #103983;
}
@media only screen and (max-width: 768px){
    .radio-3:has(:checked)::after {
        left: 6.923vw;
        width: 1.795vw;
        height: 1.795vw;
    }
}
.radio-3 input {
    display: none;
}
.check02{
    width: 2.3438vw;
    height: 2.3438vw;
    margin-right: 0.7812vw;
}
@media only screen and (max-width: 768px){
    .check02{
        width: 7.692vw;
        height: 7.692vw;
        margin-right: 2.564vw;
        border-radius: 0;
    }
}
.form-label02 {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 59.38vw;
    font-size: 1.4062vw;
    margin-bottom: 1.5625vw;
  }
  @media only screen and (max-width: 768px){
    .form-label02 {
        max-width: 100%;
        font-size: 4.615vw;
        margin-bottom: 5.128vw;
      }
  }
  .form-label02 label {
    font-size: 1.4062vw;
    margin-top: 0.3906vw;
  }
  @media only screen and (max-width: 768px){
    .form-label02 label {
        font-size: 4.615vw;
        margin-top: 1.282vw;
        white-space: nowrap;
      }
  }
  .form-label02 span  {
    padding: 0 0.4688vw;
    margin-bottom: 0.4688vw;
    border-radius: 0.2344vw;
    font-size: 0.8594vw;
    font-weight: bold;
    color: #B70000;
  }
  @media only screen and (max-width: 768px){
    .form-label02 span  {
        padding: 0 1.538vw;
        margin-bottom: 1.538vw;
        border-radius: 0.769vw;
        font-size: 2.821vw;
      }
  }
  .button06  {
    background: #000;
    border-radius: 9999px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: auto;
    max-width: 213px;
    width: 100%;
    padding: 0.6250vw 1.5625vw 0.2344vw;
    color: #F1F1F1;
    line-height: 1.8;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
    font-size: 1.0938vw;
    letter-spacing: 0.11vw;
    font-family: 'HannariMincho';
}
@media only screen and (max-width: 768px){
    .button06 {
        margin: 5.128vw auto 0px;
        max-width: 213px;
        width: 100%;
        padding: 2.051vw 5.128vw 0.769vw;
        font-size: 3.590vw;
        letter-spacing: 0.36vw;
    }
}
.button06:hover {
    background: #F1F1F1;
    outline: 0.0781vw solid #0b0b0b;
    color: #000000;
}
@media only screen and (max-width: 768px){
    .button06:hover {
        outline: 0.256vw solid #0b0b0b;
    }
}
.button06 img{
    width: 1.1719vw;
    position: absolute;
    right: 8%;
    top: 33%;
}
@media only screen and (max-width: 768px){
    .button06 img{
        width: 3.846vw;
    }
}
.button06:disabled {
    background-color: #ccc;
    color: #999;
    cursor: not-allowed;
  }
  #type-error {
    color: #B70000;
    font-size: 0.98vw;
    display: none;
    margin-top: 0.3906vw;
  }
  @media only screen and (max-width: 768px){
    #type-error {
        font-size: 0.9em;
        margin-top: 1.282vw;
      }
  }
/*---------------------------------------- sec11 サンクスページ ----------------------------------------*/
.sec11{
    margin: 9.45vw auto 18.7vh;
    width: 100%;
    max-width: 78.13vw;
    text-align: center;
    background: #FFF;
    padding: 4.7656vw 1.5625vw;
}
@media only screen and (max-width: 768px){
    .sec11{
        margin: 10.513vw auto 17.949vw;
        width: 92%;
        padding: 11.795vw 7.692vw 12.821vw;
        max-width: 100%;
    }   
}
.sec11 h2{
    font-size: 1.8750vw;
    line-height: 2.8125vw;
    margin-bottom: 2.7344vw;
}
@media only screen and (max-width: 768px){
    .sec11 h2{
        font-size: 4.615vw;
        line-height: 9.231vw;
        margin-bottom: 3.846vw;
    }
}
.s011_text{
    font-size: 1.2500vw;
    line-height: 2.8125vw;
    margin-bottom: 2.3438vw;
}
.s011_text:first-of-type {
    margin-bottom: 2.8125vw;
}
@media only screen and (max-width: 768px){
    .s011_text{
        font-size: 3.590vw;
        margin-bottom: 6.923vw;
        width: 95%;
        margin-inline: auto;
        margin-top: 3.846vw;
        line-height: 7.692vw;
    }
    .s011_text:first-of-type {
    margin-bottom: 30px;
}
}
.thanks_box{
    background: #033984;
    border-radius: 0.9375vw;
    color: #F1F1F1;
    font-size: 2.3438vw;
    font-family: 'Montserrat';
    font-weight: 500;
    letter-spacing: 0.2344vw;
    padding: 2.3438vw 2.3438vw 2.1875vw;
    max-width: 59.38vw;
    margin: 3.4375vw auto 4.6875vw;
    display: block;
    text-decoration: none;
}
@media only screen and (max-width: 768px){
    .thanks_box{
        font-size: 5.128vw;
        padding: 5.128vw 0;
        letter-spacing: 0.513vw;
        margin-top: 9.487vw;
        margin-bottom: 12.564vw;
        max-width: 74.36vw;
    }
}
.thanks_box:hover{
    opacity: 0.7;
    transition: 0.3s ease-in-out;
}
.thanks_small{
    font-size: 1.0938vw;
    letter-spacing: 0.11vw;
    margin-top: 1.3281vw;
    margin-bottom: 0;
    font-family:  "HannariMincho", serif;
}
@media only screen and (max-width: 768px){
    .thanks_small{
        font-size: 3.077vw;
        letter-spacing: 0.31vw;
        margin-top: 3.077vw;
    }
}
a.button05  {
    background: #0b0b0b;
    border-radius: 9999px;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: auto;
    max-width: 16.64vw;
    padding: 0.7812vw 1.5625vw 0.3906vw;
    color: #F1F1F1;
    line-height: 1.8;
    text-decoration: none;
    transition: 0.3s ease-in-out;
    font-weight: 500;
    font-size: 1.0938vw;
    letter-spacing: 0.11vw;
}
@media only screen and (max-width: 768px){
    a.button05 {
        margin: 5.128vw auto 0px;
        max-width: 54.62vw;
        padding: 2.564vw 5.128vw 1.282vw;
        font-size: 3.590vw;
        letter-spacing: 0.36vw;
    }
}
a.button05:hover {
    background: #F1F1F1;
    outline: 0.1562vw solid #0b0b0b;
    color: #000000;
}
@media only screen and (max-width: 768px){
    a.button05:hover{
        outline: 0.513vw solid #0b0b0b;
    }
}
/*---------------------------------------- sec12 情報セキュリティ方針 ----------------------------------------*/
.sec12{
    margin: 3.7500vw auto 18.9vh;
    width: 100%;
}
@media only screen and (max-width: 768px){
    .sec12{
        margin: 9.487vw auto 10.513vw;
        width: 92%;
    }   
    .fv02_privacy h1 {
        letter-spacing: 0;
    }
}
.s12_box{
    background: #FFF;
    width: 100%;
    max-width: 78.13vw;
    margin: 3.0469vw auto 0;
    padding: 2.0312vw 2.3438vw 1.6406vw;
}
@media only screen and (max-width: 768px){
    .s12_box{
        margin: 4.615vw auto;
        padding: 6.667vw 7.692vw 5.385vw;
        max-width: 100%;
    } 
    .sec12_security {
        margin-bottom: 17.949vw;
    }
    .sec12_security .s12_box {
    margin-top: 4.615vw;
}
}
.s12_box p{
    text-align: left;
    font-size: 1.0938vw;
    margin-top: 0;
    margin-bottom: 2.3438vw;
    line-height: 2.3438vw;
}
@media only screen and (max-width: 768px){
    .s12_box p{
        font-size: 3.590vw;
        margin-bottom: 7.692vw;
        line-height: 7.692vw;
    }
}
.s12_box p:last-child {
    margin-bottom: unset;
}
.sec12_security p:last-of-type {
    margin-bottom: 4.4531vw;
}
.sec12 h2{
    font-size: 1.5625vw;
    line-height: 2.8125vw;
    text-align: center;
}
@media only screen and (max-width: 768px){
    .sec12_security p:last-of-type {
    margin-bottom: 6.923vw;
}
    .sec12 h2{
        font-size: 4.615vw;
        line-height: 9.231vw;
    }
}
.s12_right{
    text-align: right;
    line-height: 2.3438vw;
    font-size: 1.0938vw;
}
@media only screen and (max-width: 768px){
    .s12_right{
        line-height: 7.692vw;
        font-size: 3.590vw;
    }
}
/*---------------------------------------- sec13 Works index ----------------------------------------*/
.sec13{
    margin: 7.8125vw 0;
    padding: 0;
    width: 100%;
}
.sec13 > h2 {
    line-height: 1.6;
    margin: 0 0 7.8125vw;
    text-align: center;
}
@media only screen and (max-width: 768px){
    .sec13{
        margin: 17.7vw 0;
    }
    .sec13 > h2 {
        font-size: 4.8vw;
    }
}
.sec13 .common_card_box{
    color: #0b0b0b;
    text-decoration: none;
    font-size: 1.2500vw;
    line-height: 2.3438vw;
}
@media only screen and (max-width: 768px){
    .sec13 .common_card_box{
        font-size: 4.103vw;
        line-height: 7.692vw;
    }
}
.sec13 a:hover{
    opacity: 0.8;
    transition: 0.3s ease-in-out;
}
.sec13 .common_card_list{
    flex-wrap: wrap;
    max-width: 78.13vw;
    margin: auto;
    justify-content: space-between;
}
.sec13 .common_card_list::after {
    content: '';
    display: block;
    max-width: 22.916vw;
    width: 100%;
    order: 2;
}
@media only screen and (min-width: 769px) {
    .sec13 .common_card_box {
        max-width: 22.916vw;
        flex: inherit;
    }
}
/*---------------------------------------- sec14 Works detail ----------------------------------------*/
.view04{
    width: 100%;
    background-color: #fff;
}
.view04 .fv02 {
    height: 23.67vw;
}
.view04 .fv02_text {
    top: 80%;
}
@media only screen and (max-width: 768px) {
    .view04 .fv02 {
        height: 56.3vw;
    }
    .view04 .fv02_text {
        top: calc(100% - 3em);
    }
}
.sec14{
    margin: 9.30vw auto 0;
    padding: 0 0 4.1666vw;
    width: 100%;
    max-width: 78.13vw;
}
.sec14 img {
    display: block;
    max-width: 100%;
}
@media only screen and (max-width: 768px){
    .sec14{
        width: 92%;
        margin: 17.949vw auto 0;
        width: 92%;
        max-width: 100%;
    }
}
.s14_box_ttl{
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 2.5vw;
    margin: 0 auto 3.6719vw;
    justify-content: left;
    width: 69.1666vw;
}
.s14_box_ttl h1 {
    font-size: 2.3438vw;
}
.s14_box_ttl img {
  height: 20.1666vw;
  width: 100%;
  object-fit: cover;
  object-position: top;
}
@media only screen and (max-width: 768px){
    .s14_box_ttl{
        grid-template-columns: 1fr;
        width: 100%;
        margin-top: 10.000vw;
    }
    .s14_box_ttl h1 {
        font-size: 5.641vw;
        line-height: 9.231vw;
        margin-bottom: 10px;
    }
    .s14_box_ttl img  {
        height: auto;
    }
}
.s14_box {
    margin: 0 auto;
    max-width: 50vw;
}
@media only screen and (max-width: 768px){
    .s14_box {
        max-width: 100%;
    }
}
.s14_box h2 {
    font-size: 1.666vw;
    line-height: 1.6;
    margin: 28px 0;
}
@media only screen and (max-width: 768px){
    .s14_box h2 {
        font-size: 4.615vw;
    }
}
.s14_box p, .s14_box ul {
    font-size: 1.1666vw;
    line-height: 1.6;
}
@media only screen and (max-width: 768px){
    .s14_box p, .s14_box ul {
        font-size: 3.590vw;
    }
}
.s14_box .mtb {
    margin: 3.3333vw 0;
}
@media only screen and (max-width: 768px){
    .s14_box .mtb {
        margin: 10.666vw 0;
    }
}
.s14_boder {
  border-top: 1px solid #0b0b0b;
  width: 100%;
  margin: 3.3333vw 0;
}
@media only screen and (max-width: 768px){
    .s14_boder {
        margin: 10.666vw 0;
    }
}
.s14_company {
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: 30px;
}
.s14_company .text_group {
    line-height: 1.2;
}
.s14_company .co_img {
    width: 70px;
    height: 70px;
    object-fit: cover;
}
.s14_company .co_name {
    display: inline-block;
    font-size: 1.333vw;
    margin: 0;
}
@media only screen and (max-width: 768px){
    .s14_company .co_name {
        font-size: 4vw;
    }
}
.s14_company a {
    color: #0b0b0b;
    display: inline-block;
    font-size: 0.8vw;
    text-decoration: none;
}
@media only screen and (max-width: 768px){
    .s14_company a {
        font-size: 2.1333vw;
    }
}
.s14_company a .ico {
    display: inline-block;
    margin-left: 6px;
}
/*---------------------------------------- sec15 Works other ----------------------------------------*/
.sec15 {
    margin: 7.8125vw auto;
    width: 78.13vw;
}
.sec15 h2 {
    font-size: 2.3438vw;
    line-height: 2.3438vw;
    margin-top: 1.2500vw;
    margin-bottom: 3.7500vw;
}
@media only screen and (max-width: 768px){
    .sec15 {
        margin: 15.128vw  auto;
    }
    .sec15 h2  {
        font-size: 6.410vw;
        line-height: 7.692vw;
        letter-spacing: 0.256vw;
        margin-bottom: 9.411vw;
        width: 92%;
    }
}
.sec15 .common_card_list {
    justify-content: center;
}
@media only screen and (min-width: 769px) {
  .sec15 .common_card_box {
    max-width: 22.916vw;
    flex: inherit;
  }
}
.sec15 .to_index {
    margin-top: 2.5vw;
    text-align: right;
}
.sec15 .to_index a {
    color: #0b0b0b;
    display: inline-block;
    font-size: 1.1666vw;
    text-decoration: none;
}
@media only screen and (max-width: 768px){
    .sec15 .to_index a {
        font-size: 3.077vw;
    }
}
/*---------------------------------------- 調整 ----------------------------------------*/
.fv03_text{
    top: 44%;
}

.news-content-title {
  margin-top: 28px;
  font-weight: bold;
  font-size: 1.0938vw;
  line-height: 2.3438vw;
  display: block;
}
@media only screen and (max-width: 768px){
  .news-content-title {
    margin-top: 28px;
    font-weight: bold;
    font-size: 3.590vw;
    line-height: 7.692vw;
    display: block;
  }
}

.anzen-format-img {
    margin-top: 10px;
    margin-bottom: 10px;
    width: 100%;
    object-fit: contain;
}


.customers-grid {
  display: grid;
  gap: 2vw 2vw;
  max-width: 78.13vw;
  margin: 0 auto;
  align-items: center;
  justify-items: center;
}

.customers-grid-4 {
    grid-template-columns: repeat(4, 1fr);
}
.customers-grid-8 {
    grid-template-columns: repeat(8, 1fr);
}
.customers-grid-12 {
    grid-template-columns: repeat(12, 1fr);
}
.customers-grid-break {
  margin-top: 48px;
}



@media only screen and (max-width: 768px){
  .customers-grid {
    gap: 7.692vw;
    max-width: 100%;
    padding: 0 3.846vw;
  }
  .customers-grid-4 {
    grid-template-columns: 1fr;
  }
  .customers-grid-8 {
    grid-template-columns: 1fr;
  }
  .customers-grid-12 {
    grid-template-columns: 1fr;
  }
  .customers-grid-break {
    margin-top: 0vw;
  }
}
.customers-grid .img-large {
  width: 100%;
  max-width: 22vw; /* PC版では統一的なサイズに */
  height: auto; /* 高さも統一 */
  object-fit: contain;
}

.customers-grid .img-small {
  width: 100%;
  max-width: 10.75vw; /* PC版では統一的なサイズに */
  height: auto; /* 高さも統一 */
  object-fit: contain;
}

@media only screen and (max-width: 768px){
  .customers-grid .img-large {
    max-width: 70.51vw;
    height: auto; /* モバイルでは高さを自動調整 */
  }

  .customers-grid .img-small {
    max-width: 40.51vw;
    height: auto; /* モバイルでは高さを自動調整 */
  }
}