@charset "utf-8";

dl,dt,dd,ul,ol,li,form,fieldset,input,textarea,th,td{
	margin: 0;
	padding: 0;
}
fieldset,img{
	border: 0;
	vertical-align : middle;
}

/* --------------------------------------------- */

form#mail_form{
	width : auto;
	background : rgba(255, 255, 255, 0.3);
	border : 1px solid #EEE;
	border-radius : 7px;
	margin-top: 10px;
	margin-right: auto;
	margin-bottom: 20px;
	margin-left: auto;
	padding-top: 20px;
	padding-right: 0;
	padding-bottom: 20px;
	padding-left: 0;
}
form#mail_form dl{
	width : 90%;
	max-width: 800px;
	overflow : hidden;
	margin-top: 0;
	margin-right: auto;
	margin-bottom: 0;
	margin-left: auto;
}
form#mail_form dl dt{
    clear : both;
    width : 40%;
    float : left;
    border-top : 1px solid #cccccc;
    text-align : right;
    overflow : hidden;
    padding-top: 20px;
    padding-right: 2%;
    padding-bottom: 15px;
    padding-left: 8%;
}
form#mail_form dl dd{
	width : 60%;
	float : right;
	border-top : 1px solid #cccccc;
	padding-top: 20px;
	padding-right: 5%;
	padding-bottom: 15px;
	padding-left: 5%;
}
form#mail_form dl dt:first-child,
form#mail_form dl dt:first-child+dd{
	border : none;
}
form#mail_form dl dt span{
	display : block;
	font-size : 80%;
	color : #648EB0;
	line-height: 120%;
}



/* -- for JavaScript ここから -------------------------------------------------------------------------------- */

form#mail_form dl dt span.required,
form#mail_form dl dt span.optional{
	display : inline-block;
	float : left;
	font-weight : bold;
	color : #ffffff;
	padding : 3px 5px;
	border-radius : 3px;
}
form#mail_form dl dt span.required{
	background-color: #DD3C3C;
}
form#mail_form dl dt span.optional{
	background-color: #527EA3;
}
form#mail_form dl dd span{
	display : block;
	color : #EE3939;
	-webkit-animation: blink 0.5s ease-in-out infinite alternate;
	-moz-animation: blink 0.5s ease-in-out infinite alternate;
	animation: blink 0.5s ease-in-out infinite alternate;
	font-size: 14px;
	line-height: 22px;
	padding: 5px;
	font-weight: bold;
	margin: 5px;
}
@-webkit-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@-moz-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}

/* -- for JavaScript ここまで -------------------------------------------------------------------------------- */




form#mail_form input{
	height : 1.8em;
	border : 1px solid #cccccc;
	border-radius : 3px;
	background : #fafafa;
}
form#mail_form textarea{
	width : 400px;
	height : 200px;
	resize : vertical;
	border : 1px solid #cccccc;
	border-radius : 3px;
	background : #fafafa;
}
form#mail_form input:focus,
form#mail_form textarea:focus{
	box-shadow : 0px 0px 5px #55ccff;
	border : 1px solid #55ccff;
	background : #ffffff;
}
form#mail_form input#name_1,
form#mail_form input#name_2{
	width : 300px;
}
form#mail_form input#read_1,
form#mail_form input#read_2{
	width : 300px;
}
form#mail_form input#mail_address,
form#mail_form input#mail_address_confirm{
	width : 300px;
}
form#mail_form ul li{
	list-style-type : none;
	margin-bottom : 5px;
}
form#mail_form ul li label:hover{
	cursor : pointer;
}
form#mail_form ul li input{
	height : auto;
	margin-right : 0.5em;
}
form#mail_form input#postal{
	width : 100px;
}
form#mail_form input#address_1,
form#mail_form input#address_2{
	display : block;
	width : 400px;
	margin-bottom : 7px;
}
form#mail_form input#phone{
	width : 300px;
}
form#mail_form input#day{
	width : 160px;
}
form#mail_form input#mail_submit_button{
	display: block;text-decoration: none;
	width: fit-content;
	margin: 0 auto;
	background: #FFFFCF;	/*背景色*/
	color: var(--bg-inverse-color);	/*文字色*/
	padding: 1rem 3rem;	/*ボタン内の余白。上下に0.5文字分、左右に3文字分。*/
	border-radius: 100px;	/*角を丸くする指定。大きければ適当でOK。*/
	letter-spacing: 0.1em;	/*文字間隔を少しだけ広く*/
	box-shadow: 0px 0px 20px rgba(0,0,0,0.1);	/*ボタンの影。右に、下に、ぼかす量、0,0,0は黒のことで0.1は色が10%出た状態。*/
	justify-content: left;
}

form#mail_form input#mail_submit_button:hover{
	background: #666666;	/*背景色*/
	color: #fff;		/*文字色*/
	box-shadow: none;	/*ボタンの影を消す*/
}

/* 戻るボタン */
form#mail_form input#mail_return_button{
	width : auto;
	height : auto;
	vertical-align : middle;
	border-radius : 3px;
	font-family : inherit;
	padding-top: 10px;
	padding-right: 35px;
	padding-bottom: 10px;
	padding-left: 35px;
	font-size: 18px;
	line-height: 26px;
	color: #FFF;
	background-color: #666666;
	box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 1px 0px;
	-webkit-box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 1px 0px;
	-moz-box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 1px 0px;
	border: 1px solid #FFF;
	border-radius: 10px;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	-webkit-transition: 0.2s linear;
	-moz-transition: 0.2s linear;
	transition: 0.2s linear;
}
form#mail_form input#mail_return_button:hover{
	cursor : pointer;
	background-color: #000;
}


/* --responsive------------------------------------------- */

/* 640pixel start */
@media screen and (max-width : 640px){

form#mail_form{
	width : 95%;
}
form#mail_form dl{
	width : 90%;
}
form#mail_form dl dt{
	width : auto;
	float : none;
	text-align : left;
	padding : 10px 0 5px;
	font-weight : bold;
}
form#mail_form dl dd{
	width : auto;
	float : none;
	border-top : none;
	padding : 0px 0 13px 0px;
}
form#mail_form dl dt span{
	font-weight : normal;
}

/* -- for JavaScript ここから -------------------------------------------------------------------------------- */

form#mail_form dl dt span.required,
form#mail_form dl dt span.optional{
	margin-right : 1em;
}

/* -- for JavaScript ここまで -------------------------------------------------------------------------------- */


form#mail_form input{
	height : 25px;
}
form#mail_form input#name_1,
form#mail_form input#name_2,
form#mail_form input#read_1,
form#mail_form input#read_2,
form#mail_form input#mail_address,
form#mail_form input#mail_address_confirm,
form#mail_form input#postal,
form#mail_form input#address_1,
form#mail_form input#address_2,
form#mail_form input#phone,
form#mail_form input#day,
form#mail_form textarea{
	max-width : 98%;
	-webkit-appearance : none;
}


}
/* 640pixel end */

/* --- お問い合わせフォーム：dt/dd を grid に変更 --- */
form#mail_form dl{
  display: grid;
  grid-template-columns: 40% 60%; /* 今の比率に合わせる */
  width: 90%;
  max-width: 800px;
  margin: 0 auto;
  overflow: visible; /* gridならhidden不要 */
}

/* floatレイアウトを無効化 */
form#mail_form dl dt,
form#mail_form dl dd{
  float: none;
  width: auto;
  clear: none;
}

/* 余白・罫線は今の見た目を維持 */
form#mail_form dl dt{
  text-align: right;
  padding: 20px 2% 15px 8%;
  border-top: 1px solid #ccc;
}
form#mail_form dl dd{
  padding: 20px 5% 15px 5%;
  border-top: 1px solid #ccc;
}

/* ぶち抜き（fullが付いてる行だけ） */
form#mail_form dl .full{
  grid-column: 1 / -1;
}

/* ぶち抜き行のdtを消したい場合（いまdtにボタンが入ってるので不要なら） */
form#mail_form dl dt.full{
  padding: 0;
  border-top: 1px solid #ccc; /* 必要なら残す */
}


@media screen and (max-width:640px){
  form#mail_form dl{
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width:640px){
  form#mail_form dl dt{
    text-align: left;
    padding: 10px 0 5px;
  }
  form#mail_form dl dd{
    padding: 0 0 13px 0;
  }

  /* 入力欄を100%に（ここが効く） */
  form#mail_form input[type="text"],
  form#mail_form input[type="email"],
  form#mail_form textarea{
    width: 100%;
    box-sizing: border-box;
  }

  /* textareaの固定幅400pxを無効化 */
  form#mail_form textarea{
    height: 180px; /* 好みで */
  }

  /* 送信ボタンを押しやすく */
  form#mail_form input#mail_submit_button{
    width: 100%;
    max-width: 320px;
    line-height: 1.2; /* 0.2は潰れます */
  }
}

@media screen and (max-width:640px){
  form#mail_form dl dt{
    line-height: 1.6;
    margin-bottom: 4px;
  }
  form#mail_form dl dt .color-check{
    margin-left: 6px;
  }
}

@media screen and (max-width:640px){
  form#mail_form input[type="text"],
  form#mail_form input[type="email"],
  form#mail_form textarea{
    padding: 10px 12px;
  }
}

@media screen and (max-width:640px){
  form#mail_form input#mail_submit_button{
    line-height: 1.4;
    font-size: 1rem;
  }
}

@media screen and (max-width:640px){
  form#mail_form dl{
    width: 90%;
  }
}
/* ---- iPhoneはみ出し対策（最終上書き） ---- */
@media screen and (max-width:640px){

  /* フォーム内は全部 border-box にして、padding分ではみ出さないように */
  form#mail_form, 
  form#mail_form *{
    box-sizing: border-box;
  }

  /* フォーム外枠の幅を安全に（左右に少し余白） */
  form#mail_form{
    width: calc(100% - 24px);
    margin: 10px auto 20px;
    padding: 16px 12px;
  }

  /* dlを100%にして、親幅と一致させる（罫線のはみ出しも止まる） */
  form#mail_form dl{
    width: 100%;
    max-width: none;
  }

  /* dt/ddの左右paddingをゼロに寄せる（右切れ予防） */
  form#mail_form dl dt,
  form#mail_form dl dd{
    padding-left: 0;
    padding-right: 0;
  }

  /* 入力系は“幅100%固定”にする（max-width:98%だとズレることがある） */
  form#mail_form input[type="text"],
  form#mail_form input[type="email"],
  form#mail_form input[type="tel"],
  form#mail_form textarea{
    width: 100%;
    max-width: 100%;
  }

  /* textareaの400px固定を確実に打ち消す */
  form#mail_form textarea{
    height: auto;
    min-height: 180px;
  }

  /* 送信ボタンをスマホ向けに安定させる（fit-contentやline-height潰れ対策） */
  form#mail_form input#mail_submit_button{
    width: 100%;
    max-width: 340px;
    height: auto;
    padding: 12px 16px;
    line-height: 1.4; /* 0.2は絶対NG */
    margin: 10px auto 0;
  }
}
@media screen and (max-width:640px){

  /* はみ出しの犯人：固定幅400pxを無効化 */
  form#mail_form input#address_1,
  form#mail_form input#address_2,
  form#mail_form textarea{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  /* ついでに他の入力も揃えて安全に */
  form#mail_form input[type="text"],
  form#mail_form input[type="email"],
  form#mail_form input[type="tel"]{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  /* dl側の余白でオーバーしないように */
  form#mail_form dl{
    width: 100%;
  }
  form#mail_form dl dd{
    padding-right: 0;
    padding-left: 0;
  }
}

form#mail_form input#mail_submit_button{
  line-height: 1.4;  /* 0.2 を上書き */
}

@media screen and (max-width:640px){
  form#mail_form input#mail_submit_button{
    width: 100%;
    max-width: 320px;
    padding: 12px 16px;
    font-size: 1rem;
    line-height: 1.4;
  }
}

/* 送信ボタンのズレ対策（最終上書き） */
form#mail_form input#mail_submit_button{
  height: auto !important;          /* 固定高さを無効化 */
  line-height: 1.4 !important;      /* 文字の縦位置を安定 */
  padding: 12px 24px !important;    /* 余白を安定（好みで） */
  -webkit-appearance: none;         /* iOSのデフォルト見た目を抑える */
  appearance: none;
}