@charset "utf-8";/* CSS Document */*, ::before, ::after {  box-sizing: border-box;}html {  font-size: 62.5%;}body {  position: relative;  width: 100%;  margin: 0;  padding: 0;  font-family: "Kiwi Maru", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";  font-style: normal;  font-weight: normal;  font-size: 1.2rem;  color: #333;  -webkit-text-size-adjust: none;  -webkit-font-smoothing: antialiased;  z-index: 0;  font-feature-settings: "pkna"1;  overflow-x: hidden;    letter-spacing: 0.08em;    line-height: 1.8;}a {  text-decoration: none;}h1, h2, h3, h4, h5, h6 {  margin-bottom: 0;  font-weight: 400;  font-size: inherit;  font-feature-settings: "palt";  line-height: 1.65;}p {  margin-bottom: 0;}pre {  margin-bottom: 0;}dl {  margin-bottom: 0;}ul {  margin-bottom: 0;}ol {  margin-bottom: 0;  list-style: decimal;  padding-left: 1em;}img{    max-width: 100%;}/*-----------------------------------------------------------------ハンバーガーメニュー-----------------------------------------------------------------*/#g-nav{    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/    position:fixed;    z-index: 999;    /*ナビのスタート位置と形状*/  top:0;    right: -120%;  width:100%;    height: 100vh;/*ナビの高さ*/  background:#0076FA;    /*動き*/  transition: all 0.6s;}/*アクティブクラスがついたら位置を0に*/#g-nav.panelactive{    right: 0;}/*ナビゲーションの縦スクロール*/#g-nav.panelactive #g-nav-list{    /*ナビの数が増えた場合縦スクロール*/    position: fixed;    z-index: 999;     width: 100%;    height: 100vh;/*表示する高さ*/    overflow: auto;    -webkit-overflow-scrolling: touch;}/*ナビゲーション*/#g-nav ul {    /*ナビゲーション天地中央揃え*/    position: absolute;    z-index: 999;    top:50%;    left:50%;    transform: translate(-50%,-50%);    width: 100%;}/*リストのレイアウト設定*/#g-nav li{  list-style: none;    text-align: center;color: #FFFFFF;  text-decoration: none;  padding:10px;  display: block;  text-transform: uppercase;  letter-spacing: 0.1em;  font-weight: bold;    font-size: 1.6rem;}#g-nav ul li{	position: relative;}nav ul li.has-child::before{	content:'';	position: absolute;	right:30px;	top:20px;	width:6px;	height:6px;	border-top: 2px solid #FFFFFF;    border-right:2px solid #FFFFFF;    transform: rotate(45deg);}/*3階層目を持つliの矢印の設定*/nav ul ul li.has-child::before{	content:'';	position: absolute;	left:15px;	top:21px;	width:6px;	height:6px;    border-top: 2px solid #fff;    border-right:2px solid #fff;    transform: rotate(45deg);}/*== 2・3階層目の共通設定 *//*下の階層を持っているulの指定*/nav li.has-child ul{    /*絶対配置で位置を指定*/	position: absolute;	left:100%;	top:10px;	z-index: 4;    /*形状を指定*/	width:180px;    /*はじめは非表示*/	visibility: hidden;	opacity: 0;    /*アニメーション設定*/	transition: all .3s;}/*hoverしたら表示*/nav li.has-child:hover > ul,nav li.has-child ul li:hover > ul,nav li.has-child:active > ul,nav li.has-child ul li:active > ul{  visibility: visible;  opacity: 1;}/*ナビゲーションaタグの形状*/nav li.has-child ul li a{	color: #fff;	border-bottom:solid 1px rgba(255,255,255,0.6);}nav li.has-child ul li:last-child > a{ border-bottom:none; }nav li.has-child ul li a:hover,nav li.has-child ul li a:active{	background:#3577CA;}/*==3階層目*//*3階層目の位置*/nav li.has-child ul ul{	top:0;	left:182px;	background:#66ADF5;}nav li.has-child ul ul li a:hover,nav li.has-child ul ul li a:active{	background:#448ED3;}/*==768px以下の形状*/@media screen and (max-width:768px){		nav li.has-child ul,	nav li.has-child ul ul{  	position: relative;	left:0;	top:0;	width:100%;	visibility:visible;/*JSで制御するため一旦表示*/	opacity:1;/*JSで制御するため一旦表示*/	display: none;/*JSのslidetoggleで表示させるため非表示に*/	transition:none;/*JSで制御するためCSSのアニメーションを切る*/}nav .active li.has-child ul,	nav .active li.has-child ul ul    {       visibility: visible;  opacity: 1;         display: block;    }/*矢印の向き*/nav ul li.has-child::before,nav ul ul li.has-child::before{    transform: rotate(135deg);	left:24vw;}    nav ul li.has-child.active::before{    transform: rotate(-45deg);}    #g-nav .has-child ul li    {        padding: 0 10px;    }    #g-nav ul.active li ul    {        position: relative;        transform: translate(0);        top: auto;        left: auto;    }	}/*========= ボタンのためのCSS ===============*/.openbtn1{  position:fixed;    z-index: 9999;/*ボタンを最前面に*/  top:10px;  right: 10px;  cursor: pointer;    width: 50px;    height:50px;    background: #0076fa;}  /*×に変化*/  .openbtn1 span{    display: inline-block;    transition: all .4s;    position: absolute;    left: 14px;    height: 3px;    border-radius: 2px;  background-color: #FFFFFF;    width: 45%;  }.openbtn1 span:nth-of-type(1) {  top:15px; }.openbtn1 span:nth-of-type(2) {  top:23px;}.openbtn1 span:nth-of-type(3) {  top:31px;}.openbtn1.active span:nth-of-type(1) {    top: 18px;    left: 18px;    transform: translateY(6px) rotate(-45deg);    width: 30%;}.openbtn1.active span:nth-of-type(2) {  opacity: 0;}.openbtn1.active span:nth-of-type(3){    top: 30px;    left: 18px;    transform: translateY(-6px) rotate(45deg);    width: 30%;}/*==================================================メインビジュアル===================================*/.mv{    height: 43vw;    width: 100%;    margin-top: 178px;}.slider {  position:relative;	z-index: 0;	/*↑z-indexの値をh1のz-indexの値よりも小さくして背景に回す*/	height: 43vw;/*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/}/*　背景画像設定　*/.slider-item01 {    background:url("./images/mv01.png");}.slider-item02 {    background:url("./images/mv02.png");}.slider-item03 {    background:url("./images/mv03.png");}.slider-item04 {    background:url("./images/mv04.png");}.slider-item {    width: 100%;/*各スライダー全体の横幅を画面の高さいっぱい（100%）にする*/    height:43vw;/*各スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/    background-repeat: no-repeat;/*背景画像をリピートしない*/    background-position: center;/*背景画像の位置を中央に*/    background-size: cover;/*背景画像が.slider-item全体を覆い表示*/}/*矢印の設定*/.slick-prev, .slick-next {    display: none!important;    position: absolute;	z-index: 3;    top: 42%;    cursor: pointer;/*マウスカーソルを指マークに*/    outline: none;/*クリックをしたら出てくる枠線を消す*/    border-top: 2px solid #fff;/*矢印の色*/    border-right: 2px solid #fff;/*矢印の色*/    height: 25px;    width: 25px;}.slick-prev {/*戻る矢印の位置と形状*/    left:2.5%;    transform: rotate(-135deg);}.slick-next {/*次へ矢印の位置と形状*/    right:2.5%;    transform: rotate(45deg);}/*ドットナビゲーションの設定*/.slick-dots {    display: none!important;	position: relative;	z-index: 3;    text-align:center;	margin:-50px 0 0 0;/*ドットの位置*/}.slick-dots li {    display:inline-block;	margin:0 5px;}.slick-dots button {    color: transparent;    outline: none;    width:8px;/*ドットボタンのサイズ*/    height:8px;/*ドットボタンのサイズ*/    display:block;    border-radius:50%;    background:#fff;/*ドットボタンの色*/}.slick-dots .slick-active button{    background:#333;/*ドットボタンの現在地表示の色*/}/*--------------------------------------------------------------------------*/header{    display: flex;    justify-content: space-between;    width: 100%;    padding: 1rem 1rem 1rem 3rem;    background: #FFFFFF;    position: fixed;    top: 0;    left: 0;    z-index: 99;}.logo {  max-width: 26%;    font-size: max(1vw , 16px);}.h_r{    display: flex;    justify-content: flex-end;    align-items: center;    gap: 2rem;}.nav_tel{    display: flex;    justify-content: space-between;    gap: 1vw;    flex-direction: column;}.h_tel_box{    display: flex;    justify-content: flex-end;}.h_tel{    font-size: max(1.4vw , 2rem);    color: #0076FA;    padding: 0 1rem;    font-weight: 600;}.h_tel span{    font-size: max(1vw , 1.4rem);}.h_time{    font-size: 1.2rem;    text-align: center;}.gnav ul{    display: flex;    justify-content: flex-end;    gap: 1vw;    font-size: max(1vw , 1.4rem);    font-weight: 500;}.gnav li{    position: relative;}.gnav li a:hover{    border-bottom: 3px solid #0076FA;}.gnav li::after {  content: "";  position: absolute;  right: -.5vw;    top: 50%;    transform: translateY(-50%);  height: 20px;  width: 1px;  background: #333;}.gnav ul.dropdown__lists {    display: none;/*デフォルトでは非表示の状態にしておく*/    width: 450px;    position: absolute;    top: 35px;    left: -250px;}.gnav ul li:hover .dropdown__lists {    display: block;/*Gナビメニューにホバーしたら表示*/}.dropdown__list {    background-color: #0076FA;    transition: all .3s;    position: relative;}.dropdown__list:not(:first-child)::before{    content: "";    width: 100%;    height: 1px;    background-color: #3492d1;    position: absolute;    max-width: 350px;    top: 0;    left: 0;}.dropdown__list:hover {    background-color: #003E84;}.dropdown__list a {    display: flex;    justify-content: center;    align-items: center;    color: #fff;    text-decoration: none;    position: relative;    height: 100%;    padding: 10px 30px 10px 10px;}.dropdown__list a::before {    content: '';    display: block;    width: 6px;    height: 6px;    border-top: 2px solid #fff;    border-left: 2px solid #fff;    transform: rotate(135deg);    position: absolute;    right: 15px;    top: calc(50% - 5px);}.contact_btn{    margin-right: 2rem;    max-width: 20%;}section{    padding: 3% 0;}.inner1280{    max-width: calc(1280px + 6%);    margin: 0 auto;    padding: 0 3%;}.inner1660{    max-width: calc(1660px + 6%);    margin: 0 auto;    padding: 0 3%;}.head_ttl{    text-align: center;    font-size: max(2vw , 20px);    margin-bottom: 3%;    font-weight: 600;}.head_ttl span{    padding: 0 20px;}.blue{    color: #0076FA;}.h3_ttl{    text-align: center;    padding-bottom: 1rem;    border-bottom: 2px solid #0076FA;    margin-bottom: 3%;    font-weight: 600;    font-size: max(2vw , 1.8rem)}.h3_ttl span{    font-size: max(1.2vw , 16px);}.tc{    text-align: center;}.t18{    font-size: max(1vw , 1.8rem);}.mb3{    margin-bottom: 3%;}.flex{    display: flex;    justify-content: space-between;    flex-wrap: wrap;}.service .flex{    gap: 3rem;}.gap3{    gap: 3rem;}.gap3 .flex-2{    width: calc((100% - 3rem) / 2);}.gap3 .flex-3{    width: calc((100% - 6rem) / 3);}.gap3 .flex-4{    width: calc((100% - 9rem) / 4);}.gap3 .flex-5{    width: calc((100% - 12rem) / 5);}.flex-3{    width: 32%;}.red{    color: #FF0000;}.jcc{    justify-content: center;}.info_area{    background: #CDFAFF;}.btn_area{    max-width: 1080px;    margin: 0 auto 30px;}.qa-6 {    margin-bottom: 5px;    border-bottom: 2px solid #d6dde3;    font-size: max(1vw , 1.8rem);}.info_text{    text-align: center;    margin-bottom: 30px;    font-size: max(1.2vw , 20px);}.card_area{    max-width: 800px;    border: 1px solid #333333;    padding: 3vw;    text-align: center;    margin: 50px auto 0;}.label {      display: inline-block;      background-color: #007bff; /* 青色 */      color: white;      font-weight: bold;      padding: 10px 20px;      font-size: max(1.4vw,24px);      clip-path: polygon(0 0, 100% 0, 95% 100%, 0% 100%);      /* 斜め右カット */    }.pack-container {  display: flex;  flex-wrap: wrap;  justify-content: center;  gap: 20px;}.pack-card {  width: calc(33.3% - 40px);  border-radius: 8px;  box-shadow: 0 0 8px rgba(0,0,0,0.1);  background: #fff;  padding: 20px;  box-sizing: border-box;  transition: 0.3s ease;}.pack-card h3 {  font-size: max(1.4vw , 24px);  margin-bottom: 10px;    font-weight: 600;}.pack-card .price {  font-size: max(1.2vw , 20px);  font-weight: 500;  margin-bottom: 15px;}.pack-card .price span {  font-size: max(1.1vw , 18px);  color: #666;}.pack-card .desc {  background: #0072f5;  color: white;  padding: 15px;  border-radius: 4px;  font-size: max(.85vw , 14px);    min-height: 236px;}.pack-card .desc p {  margin: 0 0 10px;  line-height: 1.5;}/* Responsive */@media (max-width: 768px) {  .pack-card {    width: 100%;  }}.qa-6 summary {    display: flex;    justify-content: space-between;    align-items: center;    position: relative;    padding: 1em 2em 1em 3em;    color: #333333;    font-weight: 600;    cursor: pointer;}.qa-6 summary::before,.qa-6 p::before {    position: absolute;    left: 1em;    font-weight: 600;    font-size: 1.3em;}.qa-6 summary::before {    color: #75bbff;    content: "Q";}.qa-6 summary::after {    transform: translateY(-25%) rotate(45deg);    width: 7px;    height: 7px;    margin-left: 10px;    border-bottom: 3px solid #333333b3;    border-right: 3px solid #333333b3;    content: '';    transition: transform .5s;}.qa-6[open] summary::after {    transform: rotate(225deg);}.qa-6 p {    position: relative;    transform: translateY(-10px);    opacity: 0;    margin: 0;    padding: 1vw 1vw 1vw 4vw;    color: #333;    transition: transform .5s, opacity .5s;    background: #CDFAFF;}.qa-6[open] p {    transform: none;    opacity: 1;}.qa-6 p::before {    color: #ff8d8d;    line-height: 1.2;    content: "A";}.info_list{    display: flex;    flex-wrap: wrap;}.info_list dt{    padding: 1rem;    margin-bottom: 1rem;    border-bottom: 1px solid #333333;    width: 25%;}.info_list dd{    padding: 1rem;    margin-bottom: 1rem;    border-bottom: 1px solid #333333;    width: 75%;}.btn{    padding: 2rem 3rem;    border: 1px solid #0076FA;    display: inline-block;    text-align: center;}footer{    margin-top: 12rem;    padding-bottom: 3rem;    padding: 0 5vw 3vw;}.f_l{    width: 26%;    text-align: center;}.f_r{    width: 70%;}.f_nav {  font-size: max(1vw , 1.8rem);}.f_nav li {    padding-left: 2.5rem;    margin-left: 1rem;    position: relative;}.f_nav li::before{    content: "▶";    position: absolute;    left: 0;    top: 50%;    transform: translateY(-50%);    color: #0076FA;    font-size: 1.4rem;}.f_link_ttl{    font-size: max(1vw , 1.8rem);    margin-bottom: 1rem;}/*---------下層ページ---------*/.h2{    height: max(24vw , 300px);    display: flex;    align-items: center;    justify-content: center;    flex-direction: column;    font-size: max(3vw , 2.6rem);    color: #FFFFFF;    font-weight: 600;    margin-top: 122px;    text-align: center;}h2.service{    background: url("images/h2_service.png") no-repeat center / cover;}h2.company{    background: url("images/h2_company.png") no-repeat center / cover;}h2 span{    font-size: max(1vw , 1.8rem);}.Form {  margin-top: 80px;  margin-left: auto;  margin-right: auto;  max-width: 720px;}@media screen and (max-width: 480px) {  .Form {    margin-top: 40px;  }}.Form-Item {  padding-top: 24px;  padding-bottom: 24px;  width: 100%;  display: flex;  align-items: center;}@media screen and (max-width: 480px) {  .Form-Item {    padding-left: 14px;    padding-right: 14px;    padding-top: 16px;    padding-bottom: 16px;    flex-wrap: wrap;  }}.Form-Item:nth-child(5) {}.Form-Item-Label {  width: 100%;  max-width: 248px;  letter-spacing: 0.05em;  font-weight: bold;  font-size: 18px;}@media screen and (max-width: 480px) {  .Form-Item-Label {    max-width: inherit;    display: flex;    align-items: center;    font-size: 15px;  }}.Form-Item-Label.isMsg {  margin-top: 8px;  margin-bottom: auto;}@media screen and (max-width: 480px) {  .Form-Item-Label.isMsg {    margin-top: 0;  }}.Form-Item-Label-Required {  border-radius: 6px;  margin-right: 8px;  padding-top: 8px;  padding-bottom: 8px;  width: 48px;  display: inline-block;  text-align: center;  background: #d04444;  color: #fff;  font-size: 14px;}@media screen and (max-width: 480px) {  .Form-Item-Label-Required {    border-radius: 4px;    padding-top: 4px;    padding-bottom: 4px;    width: 32px;    font-size: 10px;  }}.Form-Item-Input {  border: 1px solid #ddd;  border-radius: 6px;  margin-left: 40px;  padding-left: 1em;  padding-right: 1em;  height: 48px;  flex: 1;  width: 100%;  max-width: 410px;  background: #eaedf2;  font-size: 18px;}@media screen and (max-width: 480px) {  .Form-Item-Input {    margin-left: 0;    margin-top: 18px;    height: 40px;    flex: inherit;    font-size: 15px;  }}.Form-Item-Textarea {  border: 1px solid #ddd;  border-radius: 6px;  margin-left: 40px;  padding-left: 1em;  padding-right: 1em;  height: 216px;  flex: 1;  width: 100%;  max-width: 410px;  background: #eaedf2;  font-size: 18px;}@media screen and (max-width: 480px) {  .Form-Item-Textarea {    margin-top: 18px;    margin-left: 0;    height: 200px;    flex: inherit;    font-size: 15px;  }}.Form-Btn {  border-radius: 6px;  margin-top: 32px;  margin-left: auto;  margin-right: auto;  padding-top: 20px;  padding-bottom: 20px;  width: 280px;  display: block;  letter-spacing: 0.05em;  background: #004aad;  color: #fff;  font-weight: bold;  font-size: 1.8rem;    text-align: center;}@media screen and (max-width: 480px) {  .Form-Btn {    margin-top: 24px;    padding-top: 8px;    padding-bottom: 8px;    width: 160px;    font-size: 16px;  }}dl.area_list {    display: flex;    flex-wrap: wrap;}.area_list dt{    width: 20%;    padding: 2rem;    margin-bottom: 2rem;    border-bottom: 1px solid #333333;}.area_list dt span{    background: #CDFAFF;    padding: 1rem 1.5rem;    border-radius: 30px;}.area_list dd{    width: 80%;    padding: 2rem;    margin-bottom: 2rem;    border-bottom: 1px solid #333333;}.box_con {  max-width: 900px;  margin: 0  auto;}@media only screen and (max-width: 768px) {  .box_con {    width: 95%;  }}.box_con form {  width: 100%;}.box_con form table {  width: 100%;    font-size: 1.8rem;    padding: 1rem;    margin-top: 5rem;}.box_con form table tr {  position: relative;}.box_con form table tr:after {  content: "";  position: absolute;  width: 100%;  left: 0;  bottom: 0;  height: 1px;  border-bottom: dotted #cdcdcd 1px;}.box_con form table tr th {  width: 30%;  font-weight: normal;  padding: 1em .5em;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;}@media only screen and (max-width: 768px) {  .box_con form table tr th {    text-align: center;    width: 100%;    display: block;    background: #0076fa;    padding: .8em .2em;    color: #fff;  }}.box_con form table tr th span {  background: #cd6f55;  padding: 0 .3em;  color: #fff;  margin-left: .5em;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;}.box_con form table tr td {  padding: 1em .5em;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;}@media only screen and (max-width: 768px) {  .box_con form table tr td {    padding: 1.5em .5em;    display: block;    width: 100%;  }}.box_con form table tr .box_br {  display: block;}.box_con form table tr select {  border: 1px solid #0076fa;}.box_con form table tr label input {  cursor: pointer;  display: none;  vertical-align: middle;}.box_con form table tr .radio02-input + label {  padding-left: 23px;  margin-right: 20px;  position: relative;}.box_con form table tr .radio02-input + label:before {  content: "";  display: block;  position: absolute;  top: 50%;  left: 0;  width: 16px;  height: 16px;  border: 1px solid #999;  border-radius: 50%;  -moz-transform: translateY(-50%);  -ms-transform: translateY(-50%);  -webkit-transform: translateY(-50%);  transform: translateY(-50%);}.box_con form table tr .radio02-input:checked + label:after {  content: "";  display: block;  position: absolute;  top: 50%;  left: 3px;  width: 12px;  height: 12px;  background: #0076fa;  border-radius: 50%;  -moz-transform: translateY(-50%);  -ms-transform: translateY(-50%);  -webkit-transform: translateY(-50%);  transform: translateY(-50%);}.box_con form table tr select, .box_con form table tr input, .box_con form table tr textarea {  width: 100%;  height: 3em;  padding: .5em;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;    background: #EEEEEE;}.box_con form table tr textarea {  height: 10em;}/*プライバシーのデザインcss↓*/.con_pri {  max-width: 700px;  margin: 0  auto;}@media only screen and (max-width: 768px) {  .con_pri {    width: 95%;  }}.con_pri .box_pri {  height: 300px;  overflow-y: scroll;  border: 1px solid #cdcdcd;  background: #f7f7f7;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;  margin-top: 20px;  padding: 20px 55px;}@media only screen and (max-width: 768px) {  .con_pri .box_pri {    margin-top: 4%;    padding: 3%;  }}@media only screen and (min-width: 769px) and (max-width: 1024px) {  .con_pri .box_pri {    padding: 4%;  }}.con_pri .box_pri .box_tori {  text-align: left;  margin-top: 40px;}@media only screen and (max-width: 768px) {  .con_pri .box_pri .box_tori {    margin-top: 4%;  }}.con_pri .box_pri .box_tori h4 {  font-weight: 600;  margin-bottom: 1rem;  font-size: 2rem;}@media only screen and (max-width: 768px) {  .con_pri .box_pri .box_tori h4 {    margin-bottom: 4%;  }}.con_pri .box_pri .box_tori .txt {  padding: 0 20px;}@media only screen and (max-width: 768px) {  .con_pri .box_pri .box_tori .txt {    padding: 0;      font-size: 1.6rem;  }}.con_pri .box_pri .box_num {  margin-top: 30px;}@media only screen and (max-width: 768px) {  .con_pri .box_pri .box_num {    margin-top: 5%;  }}.con_pri .box_pri .box_num h4 {    font-size: 2rem;    font-weight: 600;}.con_pri .box_pri .box_num .txt {  padding: 10px 0 0 20px;}@media only screen and (max-width: 768px) {  .con_pri .box_pri .box_num .txt {    padding: 3% 0 0 3%;  }}.box_num ul li {    font-size: 1.6rem;    line-height: 1.7;    list-style: square outside none;    margin: 0 0 0 4rem;    padding: 0;}.box_check {  text-align: center;  margin: 1em auto;}.box_check label {  display: inline-block;}.box_check label span {  margin-left: .3em;    font-size: 1.8rem;}.list_check li{    position: relative;    padding-left: 40px;    font-size: max(1.1vw , 18px);    line-height: 2;}.list_check li::before{    content: "";    position: absolute;    left: 0;    top: 50%;    transform: translateY(-50%);    background: url("images/check_icon.png") no-repeat center / contain;    width: 27px;    height: 27px;}p.btn {  text-align: center;    border: none;    display: block;    font-size: 1.8rem}p.btn input {  display: inline-block;  background: #0076fa;  padding: .5em 4em;  color: #FFFFFF;  text-decoration: none;  cursor: pointer;  border: none;  -moz-transition: all 0.4s;  -o-transition: all 0.4s;  -webkit-transition: all 0.4s;  transition: all 0.4s;}.btn input:hover {  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);  opacity: 0.7;}.item-grid {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));  gap: 30px;  padding: 40px 20px;  max-width: 1200px;  margin: 0 auto;}.item-box {  background: #fff;  border: 1px solid #ddd;  border-radius: 12px;  padding: 20px;  text-align: center;  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);  transition: transform 0.3s, box-shadow 0.3s;}.item-box:hover {  transform: translateY(-5px);  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);}.item-box h3 {  font-size: max(1.4vw , 24px);  margin-bottom: 15px;  letter-spacing: 0.08em;  font-weight: bold;}.item-box img {  width: 100%;  height: auto;  border-radius: 8px;  margin-bottom: 15px;}.item-box p {  font-size: max(.9vw , 16px);  line-height: 1.8;  color: #333;}.center{    text-align: center;}.red{    color: #FF0000;}/* モバイル対応（任意だが強化版） */@media (max-width: 480px) {    .item-grid {  grid-template-columns: repeat(1 , 1fr);  gap: 30px;  padding: 0;}}.alc{    align-items: center;}.jcc{    justify-content: center;}.text_left{    text-align: left;}.flex.alc .head_ttl{    margin-bottom: 0;}.step-box {  display: flex;  flex-wrap: wrap;  background: #CDFAFF;  margin-bottom: 40px;  padding: 4vw;  position: relative;}/* すでに定義されている .step-box, .step-content などはそのまま使えます */.step-number {  background: #0076FA;  color: #fff;  font-weight: bold;  text-align: center;  padding: 15px 10px;  border-radius: 50%;  width: max(calc(150 / 1920* 100vw) , 80px);  height: max(calc(150 / 1920* 100vw) , 80px);  font-size: max(1vw , 16px);  line-height: 1.2;  flex-shrink: 0;  margin-right: 20px;  display: flex;  flex-direction: column;  justify-content: center;  align-items: center;  position: relative;}.step-number span {  display: block;  font-size: max(3vw , 30px);}/* ▼ 点線枠を内側に表示するバージョン（Step 3 以降で使用） */.step-number.dotted::after {  content: '';  position: absolute;  top: 7px;  left: 7px;  width: calc(100% - 14px);  height: calc(100% - 14px);  border: 2px dotted #fff;  border-radius: 50%;  box-sizing: border-box;}.step-content {  flex: 1;  min-width: 260px;}.step-content h2 {  font-size: max(1.4vw , 24px);  margin-bottom: 10px;}.step-content h3 {  margin-top: 20px;  font-size: max(1.1vw , 18px);  font-weight: bold;}.step-content p,.step-content ul {  font-size: max(1vw, 16px);  margin-bottom: 10px;  line-height: 1.7;}.contact-box {  padding: 15px;  margin: 20px 0;  text-align: center;}.contact-box .tel {  font-size: 20px;  font-weight: bold;}.contact-box .time {  display: block;  font-size: 13px;  margin-top: 5px;}.contact-links {  display: flex;  gap: 10px;  justify-content: center;  flex-wrap: wrap;}.contact-links .btn {  display: inline-block;  padding: 12px 20px;  text-align: center;  line-height: 1.4;  cursor: pointer;    border: none;}.contact-links .email {  }.contact-links .line {  }.pack-list,.time-slots {  list-style: disc;  padding-left: 20px;}.note {  font-size: 13px;  color: #666;}@media (max-width: 600px) {  .step-box {    flex-direction: column;    align-items: center;  }  .step-number {    margin-bottom: 10px;  }  .contact-links {    flex-direction: column;    align-items: center;  }}.before-after-section {  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;  padding: 20px;  max-width: 1000px;  margin: auto;}.before-text-box {  background-color: #ccfaff;  padding: 15px;  margin-bottom: 20px;  text-align: left;  font-size: max(1vw , 16px);  line-height: 1.8;}.before-after-section .comparison {  display: flex;  align-items: center;  justify-content: center;  flex-wrap: wrap;  gap: 20px;}.before-after-section .before-box,.before-after-section .after-box {  text-align: center;}.before-after-section .before-box img,.before-after-section .after-box img {  width: 300px;  max-width: 100%;  background-color: #d8d8d8;}.before-after-section .label {  margin-top: 10px;  font-size: 18px;  color: #333;  font-family: 'Courier New', monospace;}.before-after-section .arrow {  font-size: 40px;  color: #007aff;  margin: 0 10px;}/* レスポンシブ */@media (max-width: 768px) {  .before-after-section .comparison {    flex-direction: column;  }  .before-after-section .arrow {    transform: rotate(90deg);  }}.service_wrap{    display: flex;    justify-content: space-between;    gap: 20px 30px;     margin-bottom: 30px;}.service_img{    width: calc(20% - 30px);}.service_text{    width: calc(80% - 30px);}.h4_ttl{    font-size: max(1.2vw , 20px);    padding-bottom: 10px;    margin-bottom: 20px;    border-bottom: 1px solid #333333;    font-weight: 500;}.voice-box {  border: 2px solid #000;  padding: 20px;  margin: 20px;  background: #fff;}.voice-box__inner {  display: flex;  flex-wrap: wrap;  position: relative;  gap: 20px;    align-items: center;    margin-bottom: 30px;}.voice-box__image img {  height: auto;  object-fit: cover;  border: 1px solid #ccc;}.voice-box__content {  flex: 1;  min-width: 250px;}.voice-box__title {  font-size: max(1.4vw , 22px);  font-weight: bold;  border-bottom: 1px solid #999;  padding-bottom: 10px;  margin-bottom: 10px;}.voice-box__comment {  margin-top: 50px;}.voice-box__tag {  background: #007bff;  color: #fff;  padding: 15px 20px;  text-align: center;  font-weight: 500;  font-size: max(1vw , 16px);  line-height: 1.4;}@media (max-width: 768px) {  .voice-box__inner {    flex-direction: column;    align-items: flex-start;  }  .voice-box__tag {    position: static;    margin-top: 15px;    align-self: flex-end;  }}.form-wrapper {  max-width: 1000px;  margin: auto;  padding: 30px;  border: 2px solid #707070;  box-shadow: 0 0 5px rgba(0,0,0,0.1);  background: #fff;}.form-wrapper h1 {  background: #007bff;  color: #FFFFFF;  font-size: max(1.4vw , 24px);  padding: 15px;  text-align: center;  margin-bottom: 30px;}.form-group {  margin-bottom: 20px;}label {  display: block;  font-weight: bold;  margin-bottom: 8px;    font-size: max(1vw , 16px);}input[type="text"],input[type="email"],input[type="tel"],select {  width: 100%;  padding: 8px;  font-size: max(1vw , 16px);  box-sizing: border-box;    border: 1px solid #CCCCCC;    border-radius: 5px;}.select-group {  display: flex;  gap: 10px;}.select-group select {  flex: 1;}.radio-group label {  display: block;  margin-bottom: 10px;  font-weight: normal;    padding-bottom: 10px;    border-bottom: 1px solid #CCCCCC;}.radio-group input {  margin-right: 8px;}.submit-btn {  text-align: center;   }button {  background: #d4a300;  color: white;  border: none;  padding: 12px 40px;   font-size: max(1vw , 16px);  cursor: pointer;  border-radius: 3px;}button:hover {  background: #b99100;}.f_nav{    margin-bottom: 30px;}.f_nav ul{    display: flex;    gap: 2vw;    justify-content: flex-start;    font-size: max(1vw , 16px);    flex-wrap: wrap;}.f_ttl{    font-size: max(1.2vw , 20px);    font-weight: 500;    margin-bottom: 10px;}.sub_ttl{    font-size: max(1.4vw , 18px)!important;    margin-bottom: 30px;}.recycle-table-wrapper {    max-width: 100%;    overflow-x: auto;    margin: 2em 0;  }  .recycle-table {    border-collapse: collapse;    width: 1280px;    table-layout: fixed;  }  .recycle-table th,  .recycle-table td {    border: 1px solid #999;    padding: .1vw;    font-size: max(.9vw , 14px);    text-align: center;    vertical-align: middle;  }  .recycle-table th {    background: #ff8000;    color: white;    font-weight: bold;    font-size: max(1vw , 16px);  }  .recycle-table td span.note {    color: red;    font-size: max(.9vw , 14px);    display: block;  }.pack-banner {  padding: 20px;  background: #fff;  color: #000;}.pack-banner .pack-container {  display: flex;  flex-wrap: wrap;  justify-content: center;  gap: 15px;}.pack-banner .pack-box {  flex: 1 1 390px;  max-width: 390px;  box-sizing: border-box;  border: 1px solid #0073c0;  background: #fff;}.pack-banner .pack-title {  padding: 8px;  font-weight: bold;  color: #fff;  text-align: center;    font-size: max(.9vw , 14px);}.pack-banner .blue .pack-title { background-color: #0076fa; }.pack-banner .pack-content {  padding: 12px;  background: #fff;  color: #000;    text-align: center;}.pack-banner .pack-content p {  margin: 0 0 10px;  font-size: max(.8vw , 14px);}.pack-banner .highlight {  font-weight: bold;  color: red;}.pack-banner .highlight-red {  font-weight: bold;  color: #d10000;  font-size: 1em;  text-align: center;}.pack-banner .red {  color: red;  font-weight: bold;}.pack-banner .price {  color: red;  font-weight: bold;}.pack-banner .pack-note {  margin-top: 20px;  font-size: 0.9em;  text-align: center;}/* レスポンシブ */@media (max-width: 768px) {  .pack-banner .pack-container {    flex-direction: column;    align-items: center;  }  .pack-banner .pack-box {    width: 100%;  }}.bold{    font-weight: 600;}.small{    font-size: 14px!important;}.plan-box-area {  padding: 20px;  background: #fff;  color: #000;}.plan-wrapper {  display: flex;  flex-wrap: wrap;  gap: 15px;  justify-content: space-between;}.plan-box {  flex: 1 1 300px;  border: 4px double #000;  box-sizing: border-box;  padding: 0;}.plan-header {  display: flex;  align-items: center;  background: repeating-linear-gradient(    -45deg,    #f5e458,    #f5e458 10px,    #fff 10px,    #fff 20px  );  padding: 8px;  border-bottom: 2px solid #000;}.plan-number {  background: #000;  color: #fff;  font-weight: bold;  padding: 4px 8px;  margin-right: 8px;    font-size: max(1.2vw , 20px)}.plan-title {  font-weight: bold;  font-size: max(1.2vw , 20px);}.plan-content {  background: #fff;  padding: 15px;  border-top: none;}.plan-content p {  margin: 10px 0;  font-size: max(.7vw , 14px)!important    ;}.price {  display: inline-block;  font-size: 1.5em;  color: #e60012;  font-weight: bold;}.small-price {  color: #e60012;  font-weight: bold;}.note {  font-size: max(.8vw , 14px)!important;  color: #333;}.desc {  font-size: max(.9vw , 16px)!important;  line-height: 1.4;}.red {  color: #e60012;  font-weight: bold;}.plan-footer {  text-align: center;  margin-top: 20px;  font-size: max(.9vw , 16px);  color: #0044cc;}/* レスポンシブ対応 */@media (max-width: 768px) {  .plan-wrapper {    flex-direction: column;  }  .plan-box {    width: 100%;  }}.omakase-header h2 {  font-size: 20px;  margin-bottom: 0.5em;}.omakase-header h2 span {  font-weight: bold;  font-size: 18px;}.omakase-header p {  margin-bottom: 30px;}.omakase-main {  display: flex;  flex-wrap: wrap;  gap: 30px;}.omakase-price-box, .omakase-compare-box {  flex: 1 1 400px;}.price-title {  writing-mode: vertical-rl;  background: #fff;  border: 3px solid #000;  font-weight: bold;  font-size: 18px;  padding: 5px;  float: left;  margin-right: 10px;}.price-list {  margin-left: 50px;  list-style: none;  padding: 1vw;  border: 3px solid #0076fa;}.price-list li {  font-size: 18px;  margin-bottom: 5px;}.price-list .yen {  color: #f00;  font-weight: bold;}.price-notes {  font-size: max(.8vw , 16px);  list-style: none;  padding: 0;  margin-top: 1em;}.price-notes .red {  color: red;  font-weight: bold;}.omakase-compare-box h3 {  font-size: max(1vw , 16px);  background: #e6f5ff;  padding: 5px;  margin-bottom: 1em;  text-align: center;  font-weight: 600;}.cost-label {  background: #f27ca3;  color: white;  padding: 5px;  text-align: center;}.arrow {  font-size: 24px;  text-align: center;  margin: 5px 0;}.cost-total {  display: flex;  justify-content: space-between;  background: #ffbfd3;  padding: 10px;  font-weight: bold;}.bubble {  position: absolute;  top: -10px;  right: -50px;  text-align: center;}.bubble p {  color: #ff3399;  font-weight: bold;}.circle {  background: yellow;  border-radius: 50%;  width: 100px;  height: 100px;  font-size: 14px;  line-height: 100px;  font-weight: bold;  color: #333;  margin: 0 auto;}.omakase-note {  font-size: max(1vw , 16px);  margin-top: 1.5em;}/*--------------------------------------------------------------------------PC--------------------------------------------------------------------------*/@media only screen and (min-width: 1025px) {  .sp-only {    display: none !important;  }  .tab-only {    display: none !important;  }    .tab-sp-only    {       display: none !important;     }}/*--------------------------------------------------------------------------tablet--------------------------------------------------------------------------*/@media only screen and (min-width: 768px) and (max-width: 1024px) {  .sp-only {    display: none !important;  }  .pc-only {    display: none !important;  }    }/*--------------------------------------------------------------------------sp--------------------------------------------------------------------------*/@media screen and (max-width: 767px) {    .pc-only {    display: none !important;  }  .pc-tab-only {    display: none !important;  }   .tab-only {    display: none !important;  }     header {  }    .logo {  max-width: 90%;        line-height: 0;}    .logo img    {        width: calc(300 / 767* 100vw);        max-width: 300px;    }    .mv{    width: 100%;    margin-top: 60px;    height: 150vw}.slider {  position:relative;	z-index: 0;    height: 150vw;	/*↑z-indexの値をh1のz-indexの値よりも小さくして背景に回す*/	}/*　背景画像設定　*/.slider-item01 {    background:url("./images/sp_mv01.png");}.slider-item02 {    background:url("./images/sp_mv02.png");}.slider-item03 {    background:url("./images/sp_mv03.png");}.slider-item04 {    background:url("./images/sp_mv04.png");}.slider-item {    width: 100%;/*各スライダー全体の横幅を画面の高さいっぱい（100%）にする*/    background-repeat: no-repeat;/*背景画像をリピートしない*/    background-position: center;/*背景画像の位置を中央に*/    background-size: cover;/*背景画像が.slider-item全体を覆い表示*/    height: 150vw;}    .gap3 .flex-3 {  width: 100%;}    .gap3 .flex-5 {  width: calc((100% - 3rem) / 2);}    .gap3 .flex-2 {  width: 100%;}    .gap3 .flex-4 {  width: 100%;}    .qa-6 summary {  padding: 1em 1em 1em 2em;}    .qa-6 summary::before, .qa-6 p::before {  left: 0.2em;}    .qa-6 p {  padding: 1vw 2vw 1vw 10vw;}    .f_l {  width: 100%;}    .f_r {  width: 100%;}        /*---------下層ページ--------*/    .h2_service {  margin-top: 60px;}    .h2 {  margin-top: 80px;}    .area_list dt {  width: 100%;  padding: 0rem;  margin-bottom: 2rem;  border-bottom: none;}    .area_list dd {  width: 100%;  padding: 0 0 2rem 0;  margin-bottom: 2rem;  border-bottom: 1px solid #333333;}    .sp_floating    {        position: fixed;        bottom: 0;        left: 0;        z-index: 99;    }    .sp_floating .flex-3    {        width: calc(100% / 3)    }    .arrow_r    {        transform: rotate(90deg);    }    .service_wrap {    flex-wrap: wrap;}    .service_img {    width: 100%;}    .service_text {    width:100%;}    .f_nav ul {    flex-wrap: wrap;}    #page-top {    bottom: 10vw!important;}}/*==================================================フェードイン===================================*/.fadeIn{animation-name:fadeInAnime;animation-duration:1s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeInAnime{  from {    opacity: 0;  }  to {    opacity: 1;  }}/* 下から */.fadeUp{animation-name:fadeUpAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeUpAnime{  from {    opacity: 0;  transform: translateY(100px);  }  to {    opacity: 1;  transform: translateY(0);  }}/* 上から */.fadeDown{animation-name:fadeDownAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeDownAnime{  from {    opacity: 0;  transform: translateY(-100px);  }  to {    opacity: 1;  transform: translateY(0);  }}/* 左から */.fadeLeft{animation-name:fadeLeftAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeLeftAnime{  from {    opacity: 0;  transform: translateX(-100px);  }  to {    opacity: 1;  transform: translateX(0);  }}/* 右から */.fadeRight{animation-name:fadeRightAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity:0;}@keyframes fadeRightAnime{  from {    opacity: 0;  transform: translateX(100px);  }  to {    opacity: 1;  transform: translateX(0);  }}/* スクロールをしたら出現する要素にはじめに透過0を指定　*/ .fadeInTrigger,.fadeUpTrigger,.fadeDownTrigger,.fadeLeftTrigger,.fadeRightTrigger{    opacity: 0;}/*リンクの形状*/#page-top a{	display: flex;	justify-content:center;	align-items:center;	width: 60px;	height: 60px;	text-align: center;	text-transform: uppercase; 	text-decoration: none;	transition:all 0.3s;}#page-top a:hover{}/*リンクを右下に固定*/#page-top {	position: fixed;	right: 10px;	bottom:10px;	z-index: 2;    /*はじめは非表示*/	opacity: 0;	transform: translateX(100px);}/*　左の動き　*/#page-top.LeftMove{	animation: LeftAnime 0.5s forwards;}@keyframes LeftAnime{  from {    opacity: 0;	transform: translateX(100px);  }  to {    opacity: 1;	transform: translateX(0);  }}/*　右の動き　*/#page-top.RightMove{	animation: RightAnime 0.5s forwards;}@keyframes RightAnime{  from {  	opacity: 1;	transform: translateX(0);  }  to {  	opacity: 1;	transform: translateX(100px);  }    }