@charset "utf-8";

/* reset */
* { padding: 0; margin: 0; box-sizing: border-box; }
table { border-collapse: collapse; border-spacing: 0; }
fieldset, img { border: 0; }
address, caption, cite, code, dfn, em, var { font-style: normal; font-weight: normal; }
ol, ul { list-style: none; }
caption, th { text-align: left; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; }
q:before, q:after { content: ''; }
abbr, acronym { border: 0; }
section, article { display: block; }

/* base */
html { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
body { animation: fadeIn 2s ease 0s 1 normal; -webkit-animation: fadeIn 2s ease 0s 1 normal; -webkit-font-smoothing: auto; -webkit-font-feature-settings: 'palt'; font-feature-settings: 'palt'; word-wrap : break-word; overflow-wrap : break-word; font-kerning: normal; -webkit-font-kerning: normal; font-size: 15px; font-family: "じゅん 501",YuGothic, "Yu Gothic", "游ゴシック", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; text-align: center; letter-spacing: 0.15em;  box-sizing: border-box; background-color: #FFF; color: #888888; padding: 0; margin: 0; }
img { vertical-align: bottom; height: auto; width: 100%; }
::selection { background: #888888; color: #FFF; }
::-moz-selection { background: #888888; }

/* iOS */
input[type="submit"],input[type="button"] { border-radius: 0; -webkit-box-sizing: content-box; -webkit-appearance: button; appearance: button; border: none; box-sizing: border-box; cursor: pointer; }
input[type="submit"]::-webkit-search-decoration,input[type="button"]::-webkit-search-decoration { display: none; }
input[type="submit"]::focus,input[type="button"]::focus { outline-offset: -2px; }
select { -webkit-appearance: none; -moz-appearance: none; appearance: none; border: none; outline: none; background: transparent; }
button,input[type="submit"] { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding: 0; border: none; outline: none; background: transparent; }
input[type="radio"] { display: none; }
input[type="radio"]:checked + label { background: #ff0000; }

/* link */
a:link, a:visited, a:active { color: #888888; text-decoration: none; word-break: break-all !important; transition: 0.2s linear; }
a:hover { color: #888888; text-decoration: none; transition: 0.2s linear; }

/* clear */
.clear { clear: both; }
.cbox { zoom: 100%; }
.cbox:after { content: ""; clear: both; height: 0; display: block; visibility: hidden; }

/* options */
.r { border-radius: 50%; -webkit-border-radius: 50%; -moz-border-radius: 50%; overflow: hidden; }
.rl { -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; font-feature-settings : "pkna"; }
.pc { display:block; }
.sp { display:none; }
.pcbr { display:block; }
.spbr { display:inline; }
.pc_inline { display:inline; }
.sp_inline { display:none; }
.sp_menu { display:none; }

/* flex */
.flex { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; }
.fill { object-fit: cover; }

/* fadein */
.fadein { opacity : 0; transform: translateY(0); transition: all 2s; }
@keyframes fadeIn { 0% { opacity: 0 } 100% { opacity: 1 } }
@-webkit-keyframes fadeIn { 0% { opacity: 0 } 100% { opacity: 1 } }
@keyframes rot {
  0% { transform:rotate(0);}
  100% { transform:rotate(360deg); }
}

/* youtube */
.youtube { position: relative; width: 100%; padding-top: 56.25%; }
.youtube iframe { position: absolute; top: 0; right: 0; width: 100% !important; height: 100% !important; }

/* styles */
.styles {
  width:100%; height:100%;
  padding:0 0 0 0; margin:0 0 0 0;
  text-align: left; text-align: center; text-align: right; text-align:justify;
  display:block; display:inline-block; display:none;
  font-size: 1em; line-height: 1.5em; letter-spacing: 0.1em;
  border:solid 1px #888888; border-top:solid 1px #888888; border-left:solid 1px #888888; border-right:solid 1px #888888; border-bottom:solid 1px #888888;
  color:#888888; background-color: #888888;
  position: relative; position: absolute; position: fixed; position:static;
  top:0; left:0; right:0; bottom:0;
}

/* wrapper */
#wrapper { }
#wrapper .yuki { display:block; width:2.5rem; display:block; animation:5s linear infinite rot; }

/* header */
#header { position: relative; }
#header header { }
#header header h1 { position:absolute; top:0; left:0; right:0; width:100%; height:100vh; display: flex; justify-content: center; align-items: center; }
#header header h1 img { height:77vh; max-height:40rem; width:auto; margin:3em auto 0 auto; }
#header header .photo { padding:50vh 0 0 0; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: stretch; }
#header header .photo_right { order:2; width:50%; height:50vh; }
#header header .photo_right img { object-fit: cover; width:100%; height:100%; }
#header header .catch { position:absolute; top:3rem; right:3rem; margin:auto; font-size: 2em; line-height: 2.2em; text-align: left; }
#header header .photo_left { order:1; width:50%; height:50vh; }
#header header .photo_left img  { object-fit: cover; width:100%; height:100%; }
#header header .yuki { position:absolute; top:3rem; left:3rem; }

/* main */
#main { }

#main .about { padding:3em 0; }
#main .about .about_txt { padding:3em 0; margin:auto; font-size: 2em; line-height: 2.4em; text-align: left; }
#main .about .about_photo { width:65%; margin:auto; }

#main .feature { padding:10em 0; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; }
#main .feature.feature_a { flex; flex-direction: row-reverse; }
#main .feature.feature_b { }
#main .feature .txt { width:40%; padding:6em 0 0 0; display: flex; flex-direction: row-reverse; flex-wrap: wrap; justify-content: center; align-items: flex-start; }
#main .feature .txt h2 { position: relative; font-size: 2.3em; line-height: 1.8em; text-align: left; margin:0 0 0 1.5em; }
#main .feature .txt h2 .yuki { position: absolute; top:-4.5rem; right:2rem; line-height: 1em; }
#main .feature .txt .ex { height:15em; font-size: 1.4em; line-height: 2em; text-align: justify; }
#main .feature .photo { width:60%; }

#main .data { width:70%; margin:8em auto 8em auto; text-align: left; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; }
#main .data .data_left { width:60%; }
#main .data .data_left h3 { font-size: 2.5em; line-height: 1em; margin:0 0 0.75em 0; }
#main .data .data_left .data_txt { font-size: 1.5em; line-height: 1.9em; letter-spacing: 0.05em; text-align: justify; }
#main .data .data_right { width:32%; }
#main .data .data_right address {  }
#main .data .data_right address h4 { font-size: 1.8em; line-height: 1em; margin:2.8em 0 0.75em 0; }
#main .data .data_right address p { font-size: 1.1em; line-height: 2em; letter-spacing: 0.05em; }
#main .data .data_right .contact { }
#main .data .data_right .contact a { display: block; background-color:#888888; color:#fff; font-size: 1.8em; line-height: 1em; text-align: center; padding:0.5em; margin:1.25em 0 0 0; border-radius: 2em; -webkit-border-radius: 2em; -moz-border-radius: 2em; overflow: hidden; }
#main .data .data_right .contact a:hover { background-color:#eee; color:#888888; }

/* footer */
#footer { position: relative; margin:0 0; padding:0 0; }
#footer footer { }
#footer footer h1 { width:100%; height:100vh; display: flex; justify-content: center; align-items: center; }
#footer footer h1 img { height:65vh; max-height:40rem; width:auto; margin:3rem auto 0 auto; }
#footer footer .yuki_left { position:absolute; top:3rem; left:3rem; }
#footer footer .yuki_right { position:absolute; bottom:3rem; right:3rem; }

/* sp */
@media screen and (max-width: 768px) {
  #main .feature { padding:6em 0 3em 0; display: flex; flex-direction: column; flex-wrap: wrap; justify-content: space-between; align-items: center; }
  #main .feature.feature_a { flex; flex-direction: column; }
  #main .feature.feature_b { }
  #main .feature .txt { width:100%; padding:0; margin:5em 0; display: flex; flex-direction: row-reverse; flex-wrap: wrap; justify-content: center; align-items: flex-start; }
  #main .feature .txt h2 { position: relative; font-size: 2em; line-height: 1.8em; text-align: left; margin:0 0 0 1em; }
  #main .feature .txt h2 .yuki { position: absolute; top:-3.5rem; right:1.6rem; line-height: 1em; }
  #main .feature .txt .ex { height:14em; font-size: 1.4em; line-height: 2em; text-align: left; }
  #main .feature .photo { width:100%; }
  #main .data { width:80%; margin:10em auto 5em auto; text-align: left; display: flex; flex-direction: column; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; }
  #main .data .data_left { width:100%; margin:0 0 3em 0; }
  #main .data .data_left h3 { font-size: 2em; line-height: 1em; margin:0 0 1em 0; }
  #main .data .data_left .data_txt { font-size: 1.3em; line-height: 1.8em; text-align: justify; }
  #main .data .data_right { width:100%; }
  #main .data .data_right address {  }
  #main .data .data_right address h4 { font-size: 1.6em; line-height: 1em; margin:0 0 1em 0; }
  #main .data .data_right address p { font-size: 1.2em; line-height: 1.8em; }
  #main .data .data_right .contact { }
  #main .data .data_right .contact a { display: block; background-color:#888888; color:#fff; font-size: 1.5em; line-height: 1em; text-align: center; padding:0.75em; margin:1.2em 0 0 0; border-radius: 2em; -webkit-border-radius: 2em; -moz-border-radius: 2em; overflow: hidden; }
  #main .data .data_right .contact a:hover { background-color:#eee; color:#888888; }
}

/* sp */
@media screen and (max-width: 600px) {
body { font-size: 12px; }

/* options */
.pc { display:none; }
.sp { display:block; }
.pcbr { display:inline; }
.spbr { display:block; }
.pc_inline { display:none; }
.sp_inline { display:inline; }

/* wrapper */
#wrapper { }
#wrapper .yuki { display:block; width:2rem; display:block; }

/* header */
#header { position: relative; }
#header header { }
#header header h1 { position:static; width:100%; height:100vh; display: flex; justify-content: center; align-items: center; }
@supports (-webkit-touch-callout: none) { #header header h1 { height: -webkit-fill-available; } }
#header header h1 img { width:80%; height:auto; max-height:auto; margin:auto; margin:3em auto 0 auto; }
#header header .photo { padding:0; margin:-20vh 0 0 0; display: flex; flex-direction: column; }
#header header .photo_right { order:1; width:100%; height:50vh; z-index: -1; }
#header header .photo_right img { object-fit: cover; width:100%; height:100%; }
#header header .catch { order:2; position:static; font-size: 2em; padding:3em 0; line-height: 2.2em; text-align: left; }
#header header .photo_left { order:3; width:100%; height:50vh; }
#header header .photo_left img  { object-fit: cover; width:100%; height:100%; }
#header header .yuki { position:absolute; top:2rem; left:2rem; }

/* main */
#main { }

#main .about { padding:0; }
#main .about .about_txt { padding:3em 0 2em 0; margin:auto; font-size: 1.6em; line-height: 2em; text-align: left; }
#main .about .about_photo { width:100%; margin:0 auto 5em auto; }

#main .feature { padding:6em 0 3em 0; display: flex; flex-direction: column; flex-wrap: wrap; justify-content: space-between; align-items: center; }
#main .feature.feature_a { flex; flex-direction: column; }
#main .feature.feature_b { }
#main .feature .txt { width:100%; padding:0; margin:5em 0; display: flex; flex-direction: row-reverse; flex-wrap: wrap; justify-content: center; align-items: flex-start; }
#main .feature .txt h2 { position: relative; font-size: 2em; line-height: 1.8em; text-align: left; margin:0 0 0 1em; }
#main .feature .txt h2 .yuki { position: absolute; top:-3.5rem; right:1.6rem; line-height: 1em; }
#main .feature .txt .ex { height:14em; font-size: 1.4em; line-height: 2em; text-align: left; }
#main .feature .photo { width:100%; }

#main .data { width:80%; margin:10em auto 5em auto; text-align: left; display: flex; flex-direction: column; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; }
#main .data .data_left { width:100%; margin:0 0 3em 0; }
#main .data .data_left h3 { font-size: 2em; line-height: 1em; margin:0 0 1em 0; }
#main .data .data_left .data_txt { font-size: 1.3em; line-height: 1.8em; text-align: justify; }
#main .data .data_right { width:100%; }
#main .data .data_right address {  }
#main .data .data_right address h4 { font-size: 1.6em; line-height: 1em; margin:0 0 1em 0; }
#main .data .data_right address p { font-size: 1.2em; line-height: 1.8em; }
#main .data .data_right .contact { }
#main .data .data_right .contact a { display: block; background-color:#888888; color:#fff; font-size: 1.5em; line-height: 1em; text-align: center; padding:0.75em; margin:1.2em 0 0 0; border-radius: 2em; -webkit-border-radius: 2em; -moz-border-radius: 2em; overflow: hidden; }
#main .data .data_right .contact a:hover { background-color:#eee; color:#888888; }

/* footer */
#footer { position: relative; padding:0; margin:0 0 2rem 0; }
#footer footer { }
#footer footer h1 { position:static; width:100%; padding:6em 0 3em 0; height:auto; display: flex; justify-content: center; align-items: center; }
#footer footer h1 img { width:60%; height:auto; max-height:auto; margin:auto; }
#footer footer .yuki_left { position:absolute; top:0; left:2rem; }
#footer footer .yuki_right { position:absolute; bottom:0; right:2rem; }

}
@media screen and (max-width: 374px) {
body { font-size: 11px; }
}
@media screen and (min-width: 601px) and (max-width: 1280px) {
body { font-size: 12px; }
}
@media screen and (min-width: 1281px) and (max-width: 1300px) {
body { font-size: 12.18px; }
}
@media screen and (min-width: 1301px) and (max-width: 1325px) {
body { font-size: 12.36px; }
}
@media screen and (min-width: 1326px) and (max-width: 1350px) {
body { font-size: 12.54px; }
}
@media screen and (min-width: 1351px) and (max-width: 1375px) {
body { font-size: 12.72px; }
}
@media screen and (min-width: 1376px) and (max-width: 1400px) {
body { font-size: 12.9px; }
}
@media screen and (min-width: 1401px) and (max-width: 1425px) {
body { font-size: 13.08px; }
}
@media screen and (min-width: 1426px) and (max-width: 1450px) {
body { font-size: 13.26px; }
}
@media screen and (min-width: 1451px) and (max-width: 1475px) {
body { font-size: 13.44px; }
}
@media screen and (min-width: 1476px) and (max-width: 1500px) {
body { font-size: 13.62px; }
}
@media screen and (min-width: 1501px) and (max-width: 1525px) {
body { font-size: 13.8px; }
}
@media screen and (min-width: 1526px) and (max-width: 1550px) {
body { font-size: 13.98px; }
}
@media screen and (min-width: 1551px) and (max-width: 1575px) {
body { font-size: 14.16px; }
}
@media screen and (min-width: 1576px) and (max-width: 1600px) {
body { font-size: 14.34px; }
}
@media screen and (min-width: 1601px) and (max-width: 1625px) {
body { font-size: 14.52px; }
}
@media screen and (min-width: 1626px) and (max-width: 1650px) {
body { font-size: 14.7px; }
}
@media screen and (min-width: 1651px) and (max-width: 1675px) {
body { font-size: 14.88px; }
}
@media screen and (min-width: 1676px) and (max-width: 1700px) {
body { font-size: 15px; }
}
