@charset "utf-8";


body{
	font-family : "Yu Gothic","游ゴシック",YuGothic,"游ゴシック体","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","ＭＳ Ｐゴシック","MS PGothic","メイリオ",Meiryo,sans-serif;
	color : #454545;
	font-size : 100%;
	line-height : 1.8
}
li{
	list-style-type: none
}
img{
	max-width: 100%;
	margin: 0 auto
}
div.row{
	max-width: 750px;
	margin: 0 auto
}
/* --- 共通・PC用スタイル --- */
.form-note {
  margin-top: 10px;
  color: #454545;      /* 注意喚起に一般的な赤系（お好みで#666などに） */
  font-size: 14px;     /* PCでの標準的な注釈サイズ */
  line-height: 1.6;
  font-weight: normal;
}

/* プルダウンごとの余白用 */
.input-unit {
  margin-bottom: 15px;
}

/* パソコンで見たときは"pc"のclassがついた画像が表示される */
.pc {
    display: block !important
}
.sp {
    display: none !important
}

#floating{
	position: fixed;
    bottom: 0;
    left: 0;
	background:rgb(0 0 0 / 50%) ;
    display: block;
	width: 100%;
	height: 120px;
    z-index: 50
}
.cv_area{
	position: relative;
	max-width: 750px;
	margin: 0 auto
}
.cv_area .cv_btn_area{
	position: absolute;
	bottom: 68px;
	left: 2vw
}
.cv_btn{
	margin: 25px auto 0;
    width: 550px;
    font-weight: 600;
    text-align: center;
    border-radius: 40px;
    box-sizing: border-box;
    box-shadow: 6px 6px 2px rgb(0 0 0 / 18%);
    background-image: linear-gradient(#02c496,#00d6a8,#00d6a8,#00d6a8,#02c496)
}
.cv_btn:hover{
	opacity: 0.8;
	transition: 0.7s
}
.cv_btn a{
	position: relative;
    font-weight: 600;
    font-size: 30px;
    padding: 11px 0;
    display: block;
    z-index: 5;
    overflow: hidden;
    width: 100%;
    color: #fff;
    text-align: center;
    text-decoration: none;
    transition: .25s linear
}
.cv_btn a:before{
	content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: -800%;
    background-image: linear-gradient(130deg,rgba(255,255,255,0) 25%,rgba(255,255,255,0.8) 50%,rgba(255,255,255,0) 75%);
    animation: shine 2.5s infinite
}
@keyframes shine{100%{left:100%}}

.pageTop {
    position: fixed;
    bottom: 32px;
    right: 45px;
    display: none;
    z-index: 100;
    transform: rotate(-90deg)
}
.pageTop a {
    display: inline-block;
    border-radius: 15px;
    position: relative;
    background-image:linear-gradient(90deg,#02c496,#00d6a8,#00d6a8,#00d6a8,#02c496);
    width: 50px;
    height: 50px
}
.pageTop a:hover{
	opacity: 0.8;
	transition: 0.7s
}
.pageTop a:after {
    content: "";
    display: block;
    box-sizing: border-box;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-60%,-50%) rotate(-45deg);
    width: 15px;
    height: 15px;
    border-right: 4px solid #fff;
    border-bottom: 4px solid #fff
}
.g_map_area{
    position: relative
}
.g_map_area .g_map{
    position: absolute;
    bottom: 15px;
    left: 58px;
    width: 85%
}
.g_map_area .g_map.kitakyu{
    bottom: 130px
}
.g_map iframe {
    width: 100%;
    height: 440px
}
.tel_area li:nth-child(2){
    margin-top: 20px
}
footer{
	margin: 30px 0 0;
    padding-bottom: 30px;
    text-align: center;
	font-size: 1.8rem;
    color: #744f4a;
    font-weight: 600
}
footer a {
    font-size: 1.8rem;
    color: #744f4a;
    font-weight: 600;
    text-decoration: none
}
footer a:hover {
    text-decoration: underline
}

@media screen and (min-width:768px) and ( max-width:1024px) {
.pageTop{
	bottom: 22px	
	}
.pageTop a{
	width: 60px;
    height: 60px	
	}
}
@media screen and (min-width:768px) and ( max-width:769px) {
.cv_btn{
	width: 530px
}
.cv_btn a{
	font-size: 30px
}	
.pageTop {
	right: 20px
}
a:hover,.cv_btn:hover,.pageTop a:hover{
	opacity: 1;
	transition: unset
}
}
/* PC用：標準より少し大きめ */
.label-title {
  font-size: 14px; 
}

/* 注釈サイズ（PC） */
.form-note {
  font-size: 14px;
}
/* フォーム内の必須・任意ラベルの基本スタイル（既存のJSが生成するものに合わせる） */
span.required, span.optional {
    margin-right: 5px;
    padding: 2px 6px;
    font-size: 12px;
    border-radius: 3px;
    color: #fff;
}
span.required { background: #ff0000; } /* 必須：赤 */
span.optional { background: #999999; } /* 任意：グレー */

/* エラーメッセージのスタイル */
.error_blank {
    color: #ff0000;
    display: block;
    font-size: 12px;
    margin-top: 5px;
}

/* 第一・第二希望の入力ユニット用 */
.input-unit.required-unit .label-title::before {
    content: "必須";
    background: #ff0000;
    color: #fff;
    font-size: 10px;
    padding: 2px 4px;
    margin-right: 5px;
    vertical-align: middle;
    border-radius: 3px;
}

.input-unit:not(.required-unit) .label-title::before {
    content: "任意";
    background: #999;
    color: #fff;
    font-size: 10px;
    padding: 2px 4px;
    margin-right: 5px;
    vertical-align: middle;
    border-radius: 3px;
}
/* --responsive------------------------------------------- */

/* スマホ */
@media screen and ( max-width: 767px){
.pc {
    display: none !important
}
.sp {
    display: block !important
}
body{
	font-family : "ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","Yu Gothic","游ゴシック",YuGothic,"游ゴシック体","ＭＳ Ｐゴシック","MS PGothic","メイリオ",Meiryo,sans-serif
}
#floating{
	height: 70px
}
.cv_area .cv_btn_area{
	bottom: 10vw;
    left: 5vw
}
.cv_btn {
    margin: 3.2vw 0 0 5vw;
    width: 76vw;
	box-shadow: 4px 4px 2px rgb(0 0 0 / 18%)
}
.cv_btn:hover{
	opacity: 1;
	transition: unset
}
.cv_btn a {
	padding: 7px 0;
    font-size: 17px
}
.pageTop {
    bottom: 9px;
    right: 10px
}
.pageTop a{
	width: 45px;
    height: 45px	
}
.pageTop a:hover{
	opacity: 1;
	transition: unset
}
.g_map_area .g_map{
    position: absolute;
    bottom: -1vw;
    left: 8vw;
    width: 84vw
}
.g_map_area .g_map.kitakyu{
    bottom: 16vw
}
.g_map iframe {
    height: 60vw
}
.tel_area li:nth-child(2){
    margin-top: 10px
}
footer {
    margin: 30px 0 0;
    padding-bottom: 80px
}
}

@media screen and ( max-width: 375px){
.cv_btn {
    margin: 3.5vw 0 0 4vw
}
}
@media screen and ( max-width: 320px){
.cv_btn {
    margin: 5vw 0 0 4vw;
    width: 74vw
}
.cv_btn a{
	font-size: 14px
}
.pageTop a {
    width: 40px;
    height: 40px
}
}
/* --- スマホ用スタイル（画面幅768px以下を想定） --- */
@media screen and (max-width: 768px) {
  .form-note {
    font-size: 12px;   /* 小さすぎず、注釈だと認識できるサイズ */
    margin-top: 8px;
    letter-spacing: 0.02em; /* 視認性を高めるため少し字間を空ける */
  }
}
/* スマホ用：画面幅に合わせて調整 */
@media screen and (max-width: 768px) {
  .label-title {
    font-size: 15px; /* スマホで大きく見えつつ邪魔にならないサイズ */
  }
  
  .form-note {
    font-size: 13px;
  }
}
@media screen and (max-width: 767px) {
    .input-unit {
        margin-bottom: 15px;
    }
    
    select {
        width: 100%; /* スマホではタップしやすいよう横幅いっぱいに */
        height: 44px; /* タップ領域の確保 */
        font-size: 16px; /* iOSのズーム防止 */
    }

    .label-title {
        font-size: 14px;
        font-weight: bold;
    }
}
/* スマホ */

