@charset "UTF-8";



/* --------------------------------
 * base
 * -------------------------------- */


html {
  
   font-size: 62.5%;

}

body {
  
  background: #151515 url('../images/bg.png') no-repeat fixed left bottom;

  background-size: cover;
  
  color: #fff;
  
  text-align: center;
  
  font-size: 1.4rem;
  
  font-family: Raleway, "Hiragino Kaku Gothic ProN",  Meiryo,  sans-serif;

}

*, *::before, *::after {

  box-sizing: border-box;

}




/* --------------------------------
 * parts
 * -------------------------------- */


.heading {

  position: relative;

  display: inline-block;

  margin: 30px 0 15px;

  padding-bottom: 15px;

  letter-spacing: 2px;

  font-size: 4rem;

}

.heading::before,
.heading::after {

  content: '';

  position: absolute;

  right: 0;

  bottom: 0;

  left: 0;

  border-bottom: 1px solid #999;

}

.heading::before {

  bottom: 5px;

}

.button {

  display: inline-block;

  width: 200px;

  padding: 20px;

  border-radius: 4px;

  background-color: #afa58d;

  color: #fff;

  text-decoration: none;

  letter-spacing: 1px;

  font-size: 1.2rem;

}

.button:hover {

  opacity: 0.9;

}

.button-showy {

  background-color: #D29E04;

}

.button-ghost {

  border: 1px solid #fff;

  background-color: rgba(255, 255, 255, 0.15);

}



/* --------------------------------
 * header
 * -------------------------------- */

.header {

  padding: 170px 30px 80px;

}

.site-title-sub {

  margin: 0 0 30px;

  letter-spacing: 1px;

  font-size: 2.0rem;

}

.site-title-sub::before,
.site-title-sub::after {
  content: '';

  display: inline-block;

  width: 140px;

  height: 2px;

  margin: 0 30px;

  background-color: #fff;

  vertical-align: middle;

}

.site-title {

  margin: 50px 0 40px;

  font-size: 3.2rem;

}

.site-description {

  margin-bottom: 50px;

  color: #888;

  font-size: 1.6rem;

}

.buttons .button {

  margin: 10px;

}



/* --------------------------------
 * concept
 * -------------------------------- */

.about {

  padding: 80px 30px;

  background-color: #fff;

  color: #333;

}

.about-text {

  margin: 30px 0;

  line-height: 2.5;

}



/* --------------------------------
 * concerts
 * -------------------------------- */

.concerts {

  padding: 80px 0;

  background-color: #383634;

}

.concerts-wrapper {

  display: table;

  width: 100%;

  margin-top: 60px;

  table-layout: fixed;

}

.concert-box {

  position: relative;

  display: table-cell;

}

.concert-image {

  display: block;

  width: 100%;

  margin: 0 0 60%;

}

.concert-description {
  position: absolute;

  top: 50%;

  left: 0;

  z-index: 1;

  width: 100%;

  height: 50%;

  overflow-y: auto;

}

.concert-description-inner {

  display: table;

  width: 100%;

  height: 100%;

  padding: 20px;

}

.concert-text {

  display: table-cell;

  vertical-align: middle;

  font-size: 1.2rem;

  line-height: 2;

}

.concert-text .button {

  width: 60%;

  margin-top: 10px;

  padding: 3px;

}

.concert-box::after {

  content: '';

  position: absolute;

  top: 50%;

  left: 0;

  width: 100%;

  height: 50%;

  background: no-repeat;

  background-size: 100% 100%;

  opacity: 0.2;

  transform: scaleY(1);

}


.concert-box.tree::after {

  background-image: url('../images/grey.jpg');

}

.concert-box.building::after {

  background-image: url('../images/grey.jpg');

}

.concert-box.lake::after {
  background-image: url('../images/grey.jpg');

}

.concert-box.sky::after {
  background-image: url('../images/grey.jpg');

}

.concert-box:nth-child(odd) .concert-image {

  margin: 60% 0 0;

}

.concert-box:nth-child(odd) .concert-description,
.concert-box:nth-child(odd)::after {

  top: 0;

}



/* --------------------------------
 * leaflet
 * -------------------------------- */

.leaflet {

  padding: 80px 30px;

  background-color: #fff;

  color: #333;

}

.leaflet-text {

  margin: 30px 0;

  line-height: 2.5;

}


/* --------------------------------
 * Date
 * -------------------------------- */

.Date {

  padding: 80px 30px;

  background-color: #383634;

  color: #333;

}

.Date-text {

  margin: 30px 0;

  line-height: 2.5;

}



/* --------------------------------
 * movie
 * -------------------------------- */

.movie {

  padding: 80px 30px;

  background-color: #383634;

  

}

.movie-text {

  margin: 30px 0;

  line-height: 2.5;

}

/* --------------------------------
 * fashion
 * -------------------------------- */

.fashion {

  padding: 80px 30px;

  background-color: #fff;

  color: #333;

}

.fashion-text {

  margin: 30px 0;

  line-height: 2.5;

}




/* --------------------------------
 * contact
 * -------------------------------- */

.contact {

  padding: 80px 0 150px;

}

.contact-form {

  width: 50%;

  margin: 50px auto 0;

}

.contact-form input[type=text],
.contact-form textarea {

  display: block;

  width: 100%;

  margin-bottom: 10px;

  padding: 15px;

  outline: none;

  border: 1px solid rgba(255, 255, 255, 0.4);

  border-radius: 0;

  background-color: rgba(255, 255, 255, 0.05);

  color: #fff;

}

.contact-form input[type=text]:focus,
.contact-form textarea:focus {

  box-shadow: 0 0 8px rgba(255, 255, 255, 0.5) inset;

}

.contact-form textarea {

  height: 150px;
}
.contact-form input[type=submit] {

  display: block;

  width: 200px;

  margin: 40px auto 0;

  padding: 15px;

  border: 1px solid rgba(255, 255, 255, 0.4);

  border-radius: 5px;

  background-color: transparent;

  color: rgba(255, 255, 255, 0.6);

  cursor: pointer;
}
.contact-form input[type=submit]:hover {
  background-color: rgba(255, 255, 255, 0.05);

}



/* --------------------------------
 * footer
 * -------------------------------- */

.footer {
  padding: 12px 0;
  font-size: 1.3rem;

}



/* --------------------------------
 * smart phone
 * -------------------------------- */

@media (max-width: 1024px) {

  body {
    background-image: none;

  }
}
@media (max-width: 768px) {

  body {
    font-size: 1.3rem;

}

.heading {

    margin-top: 20px;

    font-size: 2.5rem;

}
  
.button:hover {

    opacity: 1;

}

  
/* --- header --- */

.header {

    padding-top: 60px;

}
  
.site-title-sub {

    font-size: 1.7rem;

}
  
.site-title-sub::before,
  .site-title-sub::after {

    display: block;

    width: 80%;

    margin: 10px auto;

}

.site-title {

    margin-top: 35px;

    font-size: 5rem;

}

  
/* --- about --- */

.about-text {

    line-height: 1.8;

}

  
/* --- concerts --- */

.concerts-wrapper,
  
.concert-box {

    display: block;

}
  
.concert-image {

    display: none;

}

.concert-description {

    position: relative;

}
  
.concert-box::after {

    top: 0;

    height: 100%;

    background-size: cover;

    transform: none;

}

/* --- leaflet --- */

.leaflet-wrapper,
  .leaflet-box {

    display: block;

}
  
.leaflet-box {

    margin: 40px auto;

}
  
.leaflet-icon {

    width: 100px;

    height: 100px;

    font-size: 5rem;

    line-height: 92px;

}

.leaflet-text {
    margin: 0;

}

/* --- skills --- */

.skills-wrapper,
  .skill-box {

    display: block;

}
  
.skill-box {

    margin: 40px auto;

}
  
.skill-icon {

    width: 100px;

    height: 100px;

    font-size: 5rem;

    line-height: 92px;

}

.skill-text {
    margin: 0;

}

  /* --- contact --- */

.contact {

    padding-bottom: 80px;

}

.contact-form {

    width: 80%;

}
}



/* --------------------------------
 * challenge
 *
 * 31行目からの.heading::before, .heading::afterの
 * スタイルをコメントアウトしてから適用してください。
 * -------------------------------- */
/*


.heading::before,
.heading::after {

  content: '';

  display: inline-block;

  width: 0.3em;

  height: 0.3em;

  margin: 0 0.5em;

  border: 1px solid;

  vertical-align: 0.2em;

  -webkit-transform: rotate(45deg);

  -ms-transform: rotate(45deg);

  transform: rotate(45deg);

}

.concert-box {

  overflow: hidden;

}

.concert-image {

  transition: -webkit-transform 0.5s ease-in-out;

  transition: transform 0.5s ease-in-out;

}

.concert-box:nth-child(odd) 
.concert-image {

  -webkit-transform-origin: top center;

  transform-origin: top center;

}

.concert-box:nth-child(even) .concert-image {

  -webkit-transform-origin: bottom center;

  transform-origin: bottom center;

}

.concert-box:hover 
.concert-image {
  -webkit-transform: scale(1.1);

  transform: scale(1.1);

}


*/
