@charset "UTF-8";

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 10px; }
body { color: #111; font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif; font-size: 1.6rem; line-height: 1.6; -webkit-text-size-adjust: 100%; }
img { border: 0; vertical-align: top; transition: all .3s ease; -ms-interpolation-mode: bicubic; }
button { background: transparent; border: none; appearance: none; cursor: pointer; outline: none; }
a { outline: none; transition: all .3s ease; }
a:link { color: #; text-decoration: none; }
a:visited { color: #; text-decoration: none; }
a:hover { color: #; text-decoration: underline; }
a:hover img { opacity: 0.8; }
main { display: block; }
ul, ol { list-style: none; }

/* --------------------------------------------------
	汎用クラス
-------------------------------------------------- */
.d-block { display: block; }
.d-none { display: none; }
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.clearfix::after { content: ''; display: block; clear: both; }

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

header { margin: 30px 0 50px; text-align: center; }
header h1 { font-size: 3.2rem; }
header h1 span { font-size: 2.4rem; display: block; }
main { margin: 0 auto; padding: 0 20px; width: 100%; max-width: 1000px; display: block; }
main p { margin: 1rem 0; }
form div { margin: 30px 0; }
form label { margin-bottom: 10px; font-weight: bold; display: flex; align-items: center; }
form label .required { margin-left: 10px; padding: 2px 10px; background: #c00; color: #fff; font-size: 80%; font-weight: normal; display: inline-block; }
form label.error { margin: 10px 0; padding: 5px 10px; background: #fc0; font-size: 90%; font-weight: normal; display: block; }
form input[type="text"] { padding: 8px 12px; width: 100%; border: solid 1px #aaa; font-size: 100%; }
form input[type="text"]:disabled { background: #eee; }
form select { font-size: 100%; }
#button { text-align: center; }
#button button { padding: 10px 40px; background: #333; color: #fff; font-size: 100%; display: inline-block; }
footer { margin: 50px 0 30px; text-align: center; }

@media screen and (max-width: 1024px) {
}

@media screen and (max-width: 767px) {
header h1 { font-size: 2.4rem; }
header h1 span { font-size: 2rem; }
main { width: 100%; }
}

