@charset "UTF-8";


/* 共通
-------------------------------------------------------------- */


#luxy {
  min-height: 100vh;
  position: relative;
  overflow: visible;
}

html {
    font-size: 100%;
    padding:0;
    margin:0;
    height:100%
}
body{
    font-family:"Noto Sans JP", sans-serif;
    line-height: 2.0;
    color:;
    padding:0;
    margin:0;
    height:100%;

}


.grecaptcha-badge {
  visibility: hidden;
}



/* リンク hover 中の指カーソルを消す */
a:hover {
  cursor: none;
}


p{
    font-size: 16px;
    letter-spacing: .03em;
    line-height: 1.75em;
    font-weight: 400;
}

.vh{
    min-height: 100vh;
}

.m-nav ul li a{
    font-size: 20px;
    font-weight: 600;
}

a{
    text-decoration: none;
    transition: opacity 0.4s ease-out;
    font-size: 12px;
    display: block;
}

a:hover{
    opacity: 0.25;
    transition: opacity 0.4s ease-out;
}

.pan-tag{
    width: 100px;
    background: black;
    color: white;
    text-align: center;
    display:inline-block;
}

.pan-tag02{
    width: 100px;
    background: rgb(206, 206, 206);
    color: rgb(0, 0, 0);
    text-align: center;
    display:inline-block;
}

.text-black{
    color:#000;
}

.bg-black{
    background:#000000;
}

.text-white{
    color:#fff;
}

.text-green{
    color:#004e29;
}


.bg-white{
    background-color:#fff;
}



.bg-beige{
    background: #F0EEE9;
}


dd{
    display: block;
    margin-inline-start: 35px;
    width: 75%;
}


h1{
    color:#fff;
}


h2{
    font-size: 1rem;
    font-weight: 100;
    letter-spacing: 2px;
    color: white;
}

h3{
    font-size:75px;
    letter-spacing:5px;
}

h4{
    font-size: 35px;
    letter-spacing: 3px;
}


h5{
    font-size: 10px;
    letter-spacing: 1px;
    font-weight: 800;
    /* background: #969696; */
    width: 100px;
    text-align: center;
    /* color: #ffffff; */
    border: 1px solid #000;
    padding:5px;
}
h6{
    font-size: 20px;
    letter-spacing:0.8px;
}


.h6-mini{
    font-size: 16px;
    letter-spacing:1px;
}

.service-title{
    font-size: 25px;
    letter-spacing:1px;
}

.fd-text01a{
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    border: ;
    padding: 10px;
    width: 135px;
    text-align: center;
    border-radius: 28px;
    margin: 0 auto;
    /* background: #000; */
    border: 1px solid #000;
    color: #000000;
}


.fd-text01b{
    font-size: 40px;
    font-weight: 100;
    color: #000000;
    line-height: 1.25;
    margin-bottom: 25px;
    text-align: center;
}


.fd-text01c{
    font-size: 16px;
    font-weight: 600;
    color: #000000;
    line-height: 1.25;
}


.fd-text01d{
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
    /* line-height: 1.5; */
    border-radius: 50px;
    background: #000;
    padding: 15px;
}

.fd-text01e{
    font-size: 18px;
    font-weight: 800;
    color: #000000;
    line-height: 1.5;
    text-underline-offset: unset;
}

.underline {
    display: inline;
    background: linear-gradient(#000000, #000000);
    background-size: 100% 5px;
    background-repeat: no-repeat;
    background-position: -1px 100%;
    padding: 4px 0.2em;
}


.noto{
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: bold;
  font-style: normal;
}


.main{
    font-size: 2.35rem;
    letter-spacing: 3px;
    /*margin-bottom: 45px; */
    color: #fff;
    font-weight:600;
}

.main-service{
    font-size: 2.35rem;
    letter-spacing: 3px;
    /*margin-bottom: 45px; */
    color: #fff;
    font-weight:800;
}

.p-menu{
    position: absolute;
    top: 35px;
    left: 10px;
    color: #fff;
    font-size: 0.7rem;
    letter-spacing: 0.05em;
}

.small{
    font-size:0.8rem;
    font-weight: 600;
}

.service-text-small{
    font-size: 10px;
    letter-spacing: 0.25px;
}

.service-text-small02{
    font-size: 15px;
    letter-spacing: 0.25px;
}

.service-text-mid{
    font-size: 13px;
    letter-spacing: .03em;
    line-height: 1.75em;
    font-weight: 400;
}

.service-text-mini{
    font-size: 15px;
    letter-spacing: .03em;
    line-height: 1.75em;
    font-weight: 400;
    height: 65px;
}

.service-text-large{
    font-size: 16px;
    letter-spacing: .03em;
    line-height: 2em;
    font-weight: 400;
}

.service-text-big{
    font-size: 18px;
    letter-spacing: .03em;
    line-height: 2em;
    font-weight: 600;
}

.policy-link a {
  display: inline-block;
  position: relative;
  color: #ffffff;
  text-decoration: none;
  padding-bottom: 2px;
}

/* 常時下線（細い） */
.policy-link a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;           /* 通常の線の太さ */
  width: 100%;
  background: #ffffff;
  transition: height 0.25s ease;
}

/* ホバー時に太く */
.policy-link a:hover::after {
  height: 3px;           /* ホバー時の線の太さ */
}


.heading-line {
    position: relative;
    display: inline-block;
    font-weight: bold;
    font-size: 12px;
    padding-right: 1em;
}

.heading-line::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 100%;
    transform: translateY(-50%);
    width: 350px;
    height: 1px;
    background-color: #000000;
}

.top-info_date{
    opacity: 0.7;
    margin-right: 40px;
}

.info-new{
    background: #000;
    color: #fff;
    width: 50px;
    text-align: center;
    font-size: 0.7rem;
    padding: 3px;
    font-weight: 800;
    letter-spacing: 1px;
    display:inline;
    vertical-align: middle;
}

.info a{
    vertical-align: middle;
}

.info span{
    color:#000;
    margin-right:15px;
}

.top-sns-title span {
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    margin-top: 0;
    padding-left: 70px;
    position: relative;
}

.top-sns-title span:before {
    background-color: rgb(0, 0, 0);
    height: 1px;
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    left: 10px;
    bottom: 3px;
    width: 45px;
    font-size: 1rem;
    display: block;
}

.menu-sub{
    position: absolute;
    top: 20px;
    left: 0px;
    font-size: 0.5rem;
    opacity: 0.8;
}

.footer-address p{
    font-size:0.8rem;
}

.date{
    padding-bottom: 10px;
    padding-top: 10px;
    border-bottom: 1px solid rgb(202, 202, 202);
}

.dd{
    font-weight: bold;
    color: #000000;
    letter-spacing: 0.7px;
    width: 60px;
}

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


.step-box {
  display: ;
  align-items: ;
  gap: ;
}

.step-num {
  font-size: 65px;
  font-weight: bold;
  line-height: 1;
}

.step-title {
  font-size: 30px;
    font-weight: bold;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    white-space: nowrap;
    line-height: 1.3;
    margin-top: 15px;
}




/* 画像 */

img {
    max-width: 100%;
}

.img-shadow{
    box-shadow: 7px 7px 9px 0px #00000096;
    border-radius: 15px;
}

.img-bd{
    border-right:3px solid #000;
    border-bottom:3px solid #000;
    border-radius: 70px 0px 70px 0;
}

.img-box {
  width: 100%;
    margin: 5% auto;
    height: 400px;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

.img-box02 {
  width: 90%;
  height: 1200px;
  margin: 0 auto;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.img-line01{
    width: 25px;
    display: inline-block;
    height: 30px;
    padding-bottom: 5px;
    vertical-align: bottom;
}


.img-line02 {
    width: 20px;
    display: inline-block;
    height: 25px;
    padding-bottom: 4px;
    vertical-align: bottom;
    margin-right: 5px;
}

.img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;/* 画像をフィットさせて中央配置 */
}

.img-property-top img{
    height:650px;
    object-fit: cover;
}

.mask img{
    height:320px;
}


.img-height400{
    height:400px;
}


.sv-img-container {
  /* 親要素を基準（relative）にして、子要素（画像）を絶対位置（absolute）で配置できるようにする */
  position: relative;
  /* コンテナの幅と高さを、表示したい画像のサイズに合わせる（ここでは例として同じサイズと仮定） */
  width: Xpx; /* 適切な幅に置き換えてください */
  height: 325px; /* 適切な高さに置き換えてください */
}

.sv-img-back,
.sv-img-ov {
  /* 画像を絶対位置で配置する */
  position: absolute;
  /* 画像の左上をコンテナの左上に合わせる */
  top: 0;
  left: 0;
}

.sv-img-ov {
  /* 背景画像は下側なので、z-indexは低くする */
  z-index: 1;
}

.sv-img-back {
  /* 背景画像は下側なので、z-indexは低くする */
  z-index: 0;
}

.img-senario{
    width:100%;
}

.img-senario02{
    width:0%;
    display: none;
}


.img-icon{
    width: 15%;
    margin: auto;
}



.logo {
    width: 350px;
}

.logo125 {
    width: 125px;
}

.logo75 {
    width: 75px;
}

.content img{
    width: 90%;
    margin: 3% auto;
    display: block;
}

.icon-link{
    width: 15px;
    position: relative;
    top: 3px;
    left: 5px;
}


.radius-l{
    border-radius: 70px 0 0 0;
    border-left: 3px solid;
    border-top: 3px solid;
}

.radius-l02{
    border-radius: 70px 0 0 0;
    border-right: 3px solid;
}

.radius-r{
    border-radius: 0px 70px 0px 0px;
    border-right:3px solid;
    border-top: 3px solid;
}
.full-width-image {
  width: 100%;
  height: 450px;
  background-image: url("../img/service01a.jpg");
  background-size: cover;      /* 画面いっぱいに広げる */
  background-position: center; /* 画像の中央を固定 */
  background-repeat: no-repeat;
}




/* 文字 */


.text{
    margin:35px 0 10px;
}

.text p{
    font-size: 15px;
    font-weight: bold;
}


.text-small{
    margin:5px 0;
}

.text-small p{
    font-size:10px;
    font-weight: 400;
}


.text-title span{
    display: block;
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    margin-top: 0;
    padding-left: 70px;
    position: relative;
}

.text-title span:before{
    background-color: #707070;
    height: 1px;
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    left: 10px;
    bottom: 0;
    width: 40px;
    font-size: 1rem;
    vertical-align: middle;
    display: block;
}

hr{
    color:#000;
    border-style: solid;
    border-width: 0.5px;
}

.hr-50{
    width:50px;
    margin:35px 0;
}

.bd-top-green{
    border-top:5px solid #004e29;
}

.bd-top-black{
    border-top:5px solid #000000;
}

.bd-top{
    border-top:1px solid #000000;
}

.bd-top0{
    border-top:1px solid #000000;
}

.bd-topw{
    border-top:1px solid #ffffff;
}

.bd-bottom{
    border-bottom:1px solid #000;
}



.bd-bottom5{
    border-bottom:5px solid #000;
    width:90%;
}

.bd-right{
    border-right:1px solid #000;
}

.bd-left{
    border-left: 1px solid #000;
}

.bd-bottom99{
    width: 99%;
    border-bottom: 1px solid #000;
}

.bd-both{
    border-top: 0.25px solid;
    padding-top: 8px;
    border-bottom: 0.25px solid;
    padding-bottom: 8px;
}

.bd-round{
    border:;
    border-radius: 50%;
}


/* レイアウト */

dl{
    grid-gap: 5px 10px;
    -ms-grid-columns: auto 10px 1fr;
    align-items: baseline;
    display: grid;
    display: -ms-grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto;
    width: 100%;
}


.profile{
    border: 1px solid;
    padding: 5%;
}

.service-text{
    position: absolute;
    background: #ffffff;
    right: 0%;
    bottom: -5%;
    padding: 5% 0 10%;
}

.service-text02{
    position: absolute;
    background: #ffffff;
    left: 0%;
    bottom: -5%;
    padding: 10% 0 ;
}


.top-info_ul{
    width:100%;
    list-style: none;
    border-top: 1px solid #c9c9c9;
}

.top-info_li{
    border-bottom: 1px solid #c9c9c9;
    padding: 15px;
}

.z-index9999{
    z-index: 9999;
}

.relative{
    position: relative;
}

.absolute{
    position: absolute;
}

.top-about{
    padding:5%;
    position: relative;
}

.top-search{
    padding:5%;
    position: relative;
}

.top-title{
    text-align:center;
}

.why-subtitle{
    font-size: 25px;
    font-weight: 800;
    margin: 5% auto;
    padding-left: 5%;
    border-top: ;
    border-bottom: 3px solid #000;
}

.service-subtitle-mini{
    font-size: 20px;
    font-weight: 800;
  color: white; /* 中身の色 */
  -webkit-text-stroke: 0.8px #000; /* 線の太さと色 */
  /* 非対応ブラウザでは中身の色がそのまま表示されます */
}

.service-subtitle{
    font-size: 35px;
    font-weight: 800;
    line-height: 1;
}

.ul{
    list-style-type: none;
}


.ul-yoko{
    display: flex;
    list-style-type: none;
}

.ul-yoko li:nth-child(2){
    margin-left:25px;
}

.ul-yoko li:nth-child(3){
    margin-left:25px;
}

.top-sns-icon{
    font-size:35px;
}

 .display-in-bl{
        display: inline-block;
    }


.flex{
    display:flex;
    list-style:none;
}

.flex-center{
    display: flex;
    list-style: none;
    justify-content: center;
}

.img-wide{
    max-width: 1100px;
    padding: 0% 3% 0%;
    margin: 0 auto;
}

.img-search{
    max-width: 1100px;
    margin: 0 auto;
}


.img-property-top{
    max-width: 1100px;
    margin: 0 auto;
}

.img-property-map{
    max-width: 1000px;
    margin: 0 auto;
}

.img-property-image{
    max-width: 1000px;
    padding: 5%;
    margin: 5% auto;
    background: #000;
}


.wrapper-main{
    margin: 15% auto;
    width: 50%;
    text-align: center;
}

.wrapper_search{
    max-width: 1100px;
    padding: 0px 3%;
    margin: 2% auto;
}

.wrapper {
    max-width: 1100px;
    margin: 5% auto 0;
    padding: 0% 2% 0% 2%;
}



.wrapper_contact {
    max-width: 1100px;
    padding: 5% 10%;
    border-radius: 25px;
    margin: 0 auto;
    background: #00000057;
    background: rgb(105 105 105 / 35%);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}


/* 外側のエッジをふんわりぼかす */
.wrapper_contact::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: inherit;
  filter: blur(20px);
  opacity: 0.7;
  z-index: -1;
}


.wrapper_company01 {
    max-width: 1880px;
    margin: 5% auto 0;
    padding: 0% 2% 0% 2%;
}

.wrapper_service0 {
    max-width: 1880px;
    margin:  auto 0;
    padding: 0% 2% 0% 2%;
}

.wrapper_service01 {
    max-width: 1680px;
    margin: 0 auto;
    padding: 0% 2% 0% 2%;
}

.wrapper_service02 {
    max-width: 1480px;
    margin: 5% auto 0;
    padding: 0% 2% 0% 2%;
}

.wrapper_service03 {
    max-width: 1280px;
    margin: 5% auto 0;
    padding: 0% 2% 0% 2%;
}

.wrapper_service-img {
    max-width: 1400px;
    margin: 5% auto 0;
}

.wrapper_service-text {
    max-width: 1280px;
    margin: 5% auto 0;
    padding: 0% 5%;
}

.wrapper_profile {
    max-width: 1000px;
    padding:2% 5%;
    margin: 0 auto;
}

.wrapper_service {
    max-width: 1000px;
    padding:2% 5%;
    margin: 0 auto;
}



.wrapper_detail {
    max-width: 1000px;
    padding:5% 5%;
    margin: 0 auto;
    background-color: #fff;
}

.wrapper_subnavi{
    max-width: 400px;
    padding: 0;
    margin: 5% auto;
}

.wrapper_subnavi02{
    max-width: 500px;
    padding: 0;
    margin: 0 auto;
}

.wrapper_subtitle{
    max-width: 1100px;
    padding: 0 12%;
    margin: 5% auto -2%;
}

.wrapper_map{
    max-width: 1100px;
    margin: -200px auto 0;
}

.wrapper_footer {
    width: 65%;
    padding: 0 5%;
    margin: 4% auto;
    border-top: 5px solid #fff;
    border-bottom: 5px solid #fff;

    display: flex;
    justify-content: space-around;/* 左右に配置 */
    align-items: center;            /* 高さを揃える */
    flex-wrap: wrap;                /* スマホで折り返し対応 */
    gap: 20px;                      /* 任意の間隔 */
}

.wrapper_footer02 {
    width: 65%;
    padding: 0 5%;
    margin: 4% auto 0;
    border-top: 5px solid #000;
    border-bottom: 5px solid #000;

    display: flex;
    justify-content: space-around;/* 左右に配置 */
    align-items: center;            /* 高さを揃える */
    flex-wrap: wrap;                /* スマホで折り返し対応 */
    gap: 20px;                      /* 任意の間隔 */
}


.wrapper_copy {
    padding: 5% 5%;
    margin: 0 auto;
    text-align: center;
    background:#004e29;
}

.wrapper_copy02 {
    padding: 5% 5%;
    margin: 0 auto;
    text-align: center;
    color:#000;
}

.wrapper_copy03 {
    padding: 5% 5%;
    margin: 0 auto;
    text-align: center;
    background:#ffffff;
}

.wrapper_footer-mb {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    padding: 15px;
    color: #fff;
}

.wrapper_footer-gn {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 10%;
    /* text-align: right; */
    /* padding: 15px; */
    margin-left: 10%;
    color: #fff;
}

.text-top{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left:0;
    margin: auto;
    width: 80%;
    height: 3.2rem;
}

.section_title{
    max-width: 1100px;
    margin: 25px auto;
    padding: 0 5%;
    position: relative;
}

.left{
    margin:15px 0;
}

.center{
  display: flex;
  justify-content: center; /* 横中央 */
  align-items: center;     /* 縦中央 */
  height: 95vh;
}

.center02{
  text-align: center;
}


.pad-bottom{
    padding-bottom:100px;
}

.pad-bottom5{
    padding-bottom:5%;
}

.pad-3{
    padding:3%;
}

.pad-3{
    padding:3%;
}

.pad-0-5{
    padding:0 5%;
}

.pad-5-0{
    padding:5% 0;
}

.pad-5{
    padding:5%;
}

.pad-top25{
    padding:25px;
}

.pad-5-0{
    padding:5% 0;
}

.pad-0-10{
    padding:0 10%;
}

.pad-10{
    padding:10%;
}

.pad-left5{
    padding-left:5%;
}

.pad-right5{
    padding-right:5%;
}

.mg-left3{
    margin-left:3%;
}

.mg-left25{
    margin-left:25px;
}

.mg-5-0{
    margin:5% auto;
}

.mg-top3{
    margin-top:3%;
}

.mg-top5{
    margin-top:5%;
}

.mg-top10{
    margin-top:10%;
}

.mg-top10-20{
    margin-top:10%;
}

.mg-top20{
    margin-top:20%;
}

.mg-top15{
    margin-top:15px;
}

.mg-top25{
    margin-top:25px;
}

.mg-bottom3{
    margin-bottom:3%;
}

.mg-bottom5{
    margin-bottom:5%;
}

.mg-bottom10{
    margin-bottom:10%;
}

.mg-left{
    margin-left:5%;
}

.mg-left5{
    margin-left:5%;
}

.cl{
    clear:both;
}

.page{
    padding-top: 25px;
    width: 50%;
    margin: 0 auto;
    text-align: center;
    color: #000;
}

#about {
    background-color: ;
    min-height: 100vh;
    padding: ;
}

#contact {
    background-color: ;
    min-height: 100vh;
    padding:;
}

#location {
    margin:5% 0;
}

#faq {
    margin:10% 0;
}

#icon-wb{
    width: 35px;
    position: relative;
    top: 9px;
    left: 5px;
}

#icon-map{
    width: 20px;
    position: relative;
    top: 5px;
    left: 5px;
}


.box-video{
    width:100%;
    height:auto;
    display:block;
}

#box-video{
    background: url(../img/test06.jpg) no-repeat center;
    background-size: cover;
    width:100%;
    height:auto;
}



/* カラムレイアウト */

.flex-box{
    display: flex;
    justify-content: space-between;
}

.flex-box02{
    display: flex;
    justify-content: space-evenly;
}

.flex-box03 {
    display: flex;
    justify-content: space-around;
}

.flex-box04 {
    display: flex;
    align-items: center;
}



.w-5 {
    width:6%;
}

.w-10 {
    width:8%;
}

.w-15 {
    width:10%;
}

.w-25 {
    width:22%;
}

.w-30{
    width:30%;
}

.w-35{
    width:35%;
}

.w-45 {
    width:42%;
}

.w-50 {
    width:50%;
}

.w-55 {
    width:55%;
}

.w-65 {
    width:65%;
}

.w-75 {
    width:72%;
}

.w-80{
    width:80%;
}

.w-90 {
    width:85%;
}

.w-33 {
    width:30%;
}




/* ページトップ */


#page-top {
    position: fixed;
    bottom: 20px;
    right: 3%;
    z-index: 99;
}
#page-top a {
    text-decoration: none;
    width: 55px;
    padding: 30px 0;
    text-align: center;
    display: block;
    color: #000;
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    transition: opacity 0.4s ease-out;
}
#page-top a:hover {
    opacity:0.25;	
}

/* 見出し */
.page-title {
    font-size: 5rem;
    font-family: 'Philosopher', serif;
    text-transform: uppercase;
    font-weight: normal;
}
.sub-title {
    font-size: 1rem;
    font-weight: normal;
    margin-bottom: 10px;
}

/* ボタン */
/* ===============================
   ボタン（通常）
================================== */
.btn-center {
  margin: 0 auto;
  display: block;
  align-items: center;
  padding: 14px 40px;
  background: #000;
  color: #fff;
  border: 2px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  width: 250px;
  overflow: hidden;

  /* フェードや色の変化 */
  transition:
    background 0.8s ease,
    color 0.8s ease,
    border-color 0.8s ease,
    box-shadow 0.8s ease,
    opacity 0.8s ease;
}

/* ===============================
   テキストフェード（強弱調整可）
================================== */
.btn-label {
    font-size: 18px;
    letter-spacing: 1px;
  display: inline-block;
  transition: opacity 0.8s ease;
}

/* フェードの強さ（ここを調整可能） */
.btn-center:hover .btn-label {
  opacity: 0.5;     /* ← 強さ変更：0.9=弱い、0.5=強い */
}


/* ===============================
   ボタン（ホバー時）
================================== */
.btn-center:hover {
  background: #c9c9c900; /* 明るく変化 */
  color: #ffffff;
  border-color: #ffffff;
  opacity: 0.9;

  /* 微妙な影 + 外側の淡いグロー */
  box-shadow:
    0 4px 14px rgba(0, 0, 0, 0.15), /* シャドウ */
}




.btn-dl{
    width: 25px;
    vertical-align: middle;
    margin-left: 0px;
}


.btn:hover {
    background:;
}


.btn-wb{
    display: block;
    width: 90%;
    padding: 35px;
    border-radius: 5px;
    text-align: center;
    border: 1px solid #fff;
    color: #fff;
    background: none;
    transition: opacity 0.4s ease-out;
}

.btn-wb:hover {
    background: #444444;
}


.btn-text{
    color:#000;
    letter-spacing: 1px;
    font-size:0.9rem;
    transition: opacity 0.4s ease-out;
}

.btn-text:hover {
    opacity:0.25;	
    transition: opacity 0.4s ease-out;
}




/* HEADER
------------------------------- */
.header {
    display: flex;
    justify-content: space-between;
    right: 5%;
}

.page-header {
    padding: 35px 10% 15px 5%;
    display: flex;
    width: 100%;
    background: #fff;
    justify-content: space-between;
}


.page-header02 {
    padding: 1% 4% 1% 4%;
    display: flex;
    width: 100%;
    background: #004e29;
    justify-content: space-between;
    align-items: center;
}



.main-nav {
    display: flex;
    font-size: 1.25rem;
    text-transform: uppercase;
    margin-top: 34px;
    list-style: none;
}
.main-nav li {
    margin-left: 36px;
}
.main-nav a {
    color: #432;
}
.main-nav a:hover {
    color: #0bd;
}




/*==================================================
メニューホバー
===================================*/

/* 
.gnavi li a {
  position: relative;
  display: inline-block;
  padding: 8px 20px;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
  transition: color 0.3s ease;
}
*/

.gnavi li a::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  pointer-events: none;
}

.gnavi li a:hover::after {
  animation: ripple 0.8s ease-out forwards;
}

@keyframes ripple {
  0% {
    transform: translate(-50%, -50%) scale(0.2);
    opacity: 0.8;
  }
  70% {
    opacity: 0.4;
  }
  100% {
    transform: translate(-50%, -50%) scale(5);
    opacity: 0;
  }
}

.gnavi li.current a::before {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fff;
  transform: translateX(-50%);
}


/*========= 背景白 =========*/

/* 
.gv-black li a {
  position: relative;
  display: inline-block;
  padding: 8px 20px;
  color: #000000;
  text-decoration: none;
  overflow: hidden;
  transition: color 0.3s ease;
}
*/

.gv-black li a::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  pointer-events: none;
}

.gv-black li a:hover::after {
  animation: ripple 0.8s ease-out forwards;
}

@keyframes ripple {
  0% {
    transform: translate(-50%, -50%) scale(0.2);
    opacity: 0.8;
  }
  70% {
    opacity: 0.4;
  }
  100% {
    transform: translate(-50%, -50%) scale(5);
    opacity: 0;
  }
}

/* 第一階層の current のみ */
.gv-black > li.current > a {
  position: relative;
}

.gv-black > li.current > a::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #000;
  transform: translateX(-50%);
}


/* CONTACT
-------------------------------------------------------------- */

/* フォーム */
form div {
    margin-bottom: 25px;
}

.caption-text{
    font-size:0.7rem;
    letter-spacing: 2px;
}

.btn-text{
    font-size:0.7rem;
    letter-spacing: 0.5px;
    color:#fff;
    font-weight:100;
}

#fname{
    width: 49%;
    float: left;
}

#lname{
    width: 49%;
    margin-left: 2%;
    float: left;
}

#mailadd{
    clear:left;
}

label {
    font-size: 1.125rem;
    margin-bottom: 10px;
    display: block;
}
input[type="text"],
input[type="email"],
textarea {
    background: rgba(255, 255, 255);
    border: 1px rgb(0, 0, 0) solid;
    padding: 10px;
    font-size: 1rem;
}
input[type="text"],
input[type="email"] {
    width: 100%;
    max-width: ;
}
textarea {
    width: 100%;
    max-width: ;
    height: 6rem;
}
input[type="submit"] {
    border: ;
    cursor: pointer;
    line-height:;
}









/* 会社概要
-------------------------------------------------------------- */



.wrapper-cp {
    max-width: var(--container-width);
    margin:0 auto;
    width: 90%;
  }

  .section {
    background: transparent;
  }





  .info-row {
    display: grid;
    grid-template-columns: 180px 1fr;
    align-items: center;
    padding: 26px 0;
    column-gap: var(--gutter);
    border-bottom: 1px solid #666
  }

  .info-bd{
    border-bottom: 1px solid #666
  }


  .info-row:first-child { border-top: ; }

  .label {
    font-weight: 700;
    color: var(--accent);
    font-size: 1.02rem;
    padding-right: 12px;
    padding-left: 20px;
  }

  .value {
    color: var(--accent);
    font-size: 1rem;
    line-height: 1.9;
  }

  .value ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .value ul li {
    position: relative;
    margin: 12px 0;
  }






/* フッター
-------------------------------------------------------------- */
footer {
    color:#fff;
    padding: 0px 0 0;
    position: relative;
    bottom: 0;
}
footer p {
    font-size: 0.875rem;
}










/* ページTOP
-------------------------------------------------------------- */

.back-to-top {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #000;
  font-weight: bold;
  transition: opacity 0.3s ease;
}

/* 三角形の初期状態：線だけ */
.back-to-top .arrow polygon {
  fill: transparent;
  stroke: #000;
  stroke-width: 3;
  transition: all 0.4s ease;
}

/* ホバー時：全体が半透明、三角形が塗りに変化＋上下アニメーション */
.back-to-top:hover {
  opacity: 0.6;
}

.back-to-top:hover .arrow polygon {
  fill: #000;
  stroke-width: 0;
  transform: translateY(-3px);
}



.back-to-top02 {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #ffffff;
  font-weight: bold;
  transition: opacity 0.3s ease;
}

/* 三角形の初期状態：線だけ */
.back-to-top02 .arrow polygon {
  fill: transparent;
  stroke: #ffffff;
  stroke-width: 3;
  transition: all 0.4s ease;
}

/* ホバー時：全体が半透明、三角形が塗りに変化＋上下アニメーション */
.back-to-top02:hover {
  opacity: 0.6;
}

.back-to-top02:hover .arrow polygon {
  fill: #ffffff;
  stroke-width: 0;
  transform: translateY(-3px);
}


/* モバイル版
-------------------------------------------------------------- */


@media (max-width: 768px) {


      .step-title {
    writing-mode: horizontal-tb; /* 横書きに切り替え */
  }

  .step-num {
    font-size: 48px;
  }

  .step-title {
    font-size: 24px;
    margin-bottom: 15px;
    margin-top:5px;
  }

    .full-width-image {
    height: 600px; /* 好みに調整可 */
  }


    .wrap { padding-right: 16px; padding-left: 16px; }
    .info-row {
      grid-template-columns: 1fr;
      text-align: left;
      padding: 18px 0;
    }
    .label {
      margin-bottom: 8px;
      font-size: 0.98rem;
      padding-left:0px;
    }

    .page-header {
    padding: 25px 10% 15px 5%;
    display: flex;
    width: 100%;
    background: #fff;
    justify-content: space-between;
}


    .service-text-mini {
    height: 85px;
}


    .service-subtitle {
        font-size: 25px;
        font-weight: 800;
        line-height: 1.35;
}


.sv-img-container {
    position: relative;
    width: ;
    height: 225px;
}

    .heading-line::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 100%;
    transform: translateY(-50%);
    width: 250px;
        height: 1px;
        background-color: #000000;
}




.wrapper_service0 {
    max-width: 1880px;
    margin: 5% auto 0;
    padding: 0% 5% 0% 5%;
}

.wrapper_service01 {
    max-width: 1880px;
    margin: 5% auto 0;
    padding: 0% 5% 0% 5%;
}

.wrapper_service02 {
    max-width: 1280px;
    margin: 5% auto 0;
    padding: 0% 5% 0% 5%;
}

.wrapper_service03 {
    max-width: 1480px;
    margin: 5% auto 0;
    padding: 0% 5% 0% 5%;
}


.img-senario{
    width:50%;
    display:none;
}

.img-senario02{
    width: 20%;
    display: block;
    float: left;
    margin-right: 5%;
}

.img-height400 {
    height: 200px;
}



    .wrapper_footer-gn {
        position: absolute;
        bottom: 20px;
        left: 0;
        right: 0;
        /* text-align: center; */
        /* padding: 15px; */
        color: #fff;
}



    .wrapper_footer {
    width: 0%;
    padding: 0 0%;
    margin: 4% auto;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    }

    .wrapper_footer02 {
    width: 0%;
    padding: 0 0%;
    margin: 4% auto;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    }


    .img-box02 {
    width: 90%;
    height: 800px;
    margin: 0 auto;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: unset;
    }

    .img-line01 {
    width: 18px;
    display: inline-block;
    height: 18px;
    padding-bottom: 5px;
    vertical-align: bottom;
}

    .main-service {
    font-size: 2rem;
    letter-spacing: 3px;
    /* margin-bottom: 45px; */
    color: #fff;
    font-weight: 800;
    padding: 5%;
}

.bd-right{
    border:0px solid #fff;
}

    h3 {
    font-size: 35px;
    letter-spacing: 5px;
    }
    
    h4 {
        font-size: 20px;
        letter-spacing: 0.5px;
    }

    h6 {
    font-size: 18px;
    letter-spacing: 0.5px;
    }

    .h6-mini {
        font-size: 15px;
        letter-spacing: 0.5px;
    }

    .service-text-small {
    font-size: 10px;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 15px;
    }

    .display-in-bl{
        display: block;
    }


    .flex-box {
    display: block;
    }

    .flex-box02 {
    display: block;
    }

    .flex-box03 {
    display: block;
    }

    .flex-box04 {
    display: block;
    }


    .flex{
        display: flex;
        list-style: none;
    }

    .w-25 {
        width:100%;
        margin:0 auto;
        padding: 0 5%;
    }

    .w-15{
        width: 35%;
        margin-left: 10%;
    }

    .w-30 {
        width: 80%;
        margin: 0 auto;
    }

    .w-33 {
        width:90%;
        margin:10% auto;
        padding: 1%;
    }

    .w-35 {
        width:90%;
        margin:0 auto;
        padding: 5%;
    }

    .w-45 {
        width:100%;
        margin:0 auto;
        padding: 5%;
    }


    .w-50 {
        width:100%;
        margin:0 auto;
        padding: 5%;
    }

    .w-55 {
        width:100%;
        margin:0 auto;
        padding: 5%;
    }

    .w-65 {
        width:90%;
        margin:0 auto;
        padding: 5%;
    }

    .w-75 {
        width: 100%;
        margin: 0 auto;
        padding: 0 5%;
    }

    .w-90 {
    width: 100%;
}


.pad-left5 {
    padding-left: 0%;
}

.pad-0-5 {
    padding: 0;
}

.mg-top10-20 {
    margin-top: 20%;
}

.bd-top0{
    border-top:0px solid #ffffff;
}

    .logo {
        width: 285px;
        margin-top: 0px;
        margin-left: 0%;
    }


    .wrapper {
    max-width: 1100px;
    margin: 5% 5% 0;
    }




    .wrapper_subnavi {
    max-width: 1100px;
    padding: 0 5% 0 5%;
    margin: 5% auto;
}

.wrap {
    max-width: var(--container-width);
    margin-left: auto;
    margin-right: 0;
    width: 100%;
}

.wrapper_service-text {
    max-width: 1280px;
    margin: 5% auto 0;
    padding: 0%;
}



    .page-title {
        font-size: 2.5rem;
    }
    .page-header {
        flex-direction: column;
        align-items: left;
    }

    /* HEADER */
    .main-nav {
        font-size: 1rem;
        margin-top: 10px;
    }
    .main-nav li {
        margin: 0 20px;
    }

    /* HOME */
    .home-content {
        margin-top: 20%;
    }


    /* MENU */
    .menu-content {
        margin-top: 20%;
    }

    /* CONTACT */
    #contact .page-title {
        margin-top: 40px;
    }

    /* フォーム */
    input[type="text"],
    input[type="email"],
    textarea {
        max-width: 100%;
    }

   
}



/* ▼ さらに小さい端末 */
@media (max-width: 480px) {
  .full-width-image {
    height: 160px;
  }
}




/* スクロール
-------------------------------------------------------------- */

.scroll {
    height: 150px;
    overflow-y: scroll;
    -ms-overflow-style: none;    /* IE, Edge 対応 */
    scrollbar-width: none;       /* Firefox 対応 */
}
.scroll::-webkit-scrollbar {  /* Chrome, Safari 対応 */
    display:none;
}



.is-hidden {
    visibility: hidden;
    opacity: 0;
  }